Gayathri Srinivasan edited untitled.tex  over 8 years ago

Commit id: cce81f1c4213aaec923d79eec4f1bb6814bcead5

deletions | additions      

       

\end{quote}  \section{Introduction}  Web applications are getting more an more popular these days with the advent of even replacing many of the existing desk top applications. With the development of the web-based solution it is notorious to have many hackers to get in-between the user and the system and exploit the vulnerabilities of the application. The Common Vulnerabilities Exposure (CVE) generally documents the top vulnerabilities that a web-application is exposed to, they have listed that the vulnerabilities has increased from 2% 2 percent  in 2001 to 45% 45 percent  in 2007 and is till increasing on a large scale, when the web-appliications are invloved. There were 3 main categories of vulnerabilities, HTML injection, Database code injection and Malicious File Execution. The HTML injection is that when the user injects a malicious content as a part of a user defined field. The database injection happens when the hacker injects a query along with a form data so as to introduce credentials of the hacker, which can in future aid him to login and make use of the functios provided. The Malicious File Execution is when the developer executes a file without validating its credentials, this will introduce bug inn the hosted platform there by crashing the entire system and teh data associated with the application. This was the list of vulnerabilities early in 2001, however the first two categories of the vulnerabilites are still in existince and proves threatful to the web application hosting platform. LibStranger tool is developed with a view to sliminate these kind of vulnerabilities existing in the web application development. The LibStranger implemented in C provided a rich set of functionalities for functioning with string automaton. The main focus on performing a backward analysis can be demonstrated with the help of the implementation available in these library. Complex sanitization functions available in the library aids in a concrete realization of the expected concept. The functions that forms the bridge for our analysis is discussed in the sections 4-5. Section 2-3 generalizes the specialities of LibStranger tool and focuses on the utility of that over our need, It also includes utilizing JNI (Java Native Interface) and SWIG (Smplified Wrapper Interface Generator). The main Implemetation of this existing module invloves identification of the appropriate functions for interfacing. The end result is interfacing of the approximated functions to the scala code, by using the interfacing tool. The final implementation generated will be effective to perform the backward analysis of a javascript code to verify its vulnerability. This can make the server end service provider be prepared of the situation and reject the vulnerable requests to avoid code injection \cite{Shahriar_2011}. \section{Tools and Implementation Overview}  The library has function implementation for generating a DFA to accept strings, these strings are defined in the function specification as a parameter. There are functions for generating an automata from another automata. Functions to describe automata transformations and many more. The base definition and data-structure for the constructing the DFA is derived from MONA library.The Mona Library provides the data-structures for the DFA construction and primary modeling with DFA based operations. The MONA library is linked along with the stranger library during the execution of the code. The linking process will bring together both the tool libraries and operational specifics of both MONA and LibStranger to work in-line with each other. This linking pose a challenge during our interfacing step, which will require us to write java wrapper classes for every function involving in the working of the code (when JNI is used). Luckily, this can be eliminated using the SWIG. The future work of this implementation will describe the details of the interfacing of the LibStrnager tool with the scala code. 

\\  \verb| DFA* dfaToUpperCase(DFA* M, int var, int* indices);|  \subsection{Fundaamental \subsection{Fundamental  Concept} The fundamental concept behind teh the  functioning of the entire system is based on the evaluation of the existing field entries in an application. The error pattern is recoginzed and the application entries are combined wit the error patterns. This is then evaluated for the intersection of the error pattern , if the intersection is evaluated to true then the proper steps are taken for sanitization of the operation. Sanitization can be done in 2 possible ways one is by match and block and the other one is by match and sanitize. The first category of match and block takes place for the most vulnerable category of input fields where the threat can be maximum intense. This way of sanitization will negotiate the application to cease it's function when the particular category of input vulnerability is spotted. Te other kind of sanitization takes place when the attack pattern involved is responsible for a lower impact pattern and the avoidance can be done by merely removing the occuring attack pattern from the field involved. This occurence of the attack pattern is usually reported for the learning module which can enrich the data set by adding new pattern to the existing attack patters it has.