Automated Verification of Role-based Access Control Security Models Recovered from Dynamic Web Applications
|
|
|
- Natalie Murphy
- 10 years ago
- Views:
Transcription
1 Automated Verification of Role-based Access Control Security Models Recovered from Dynamic Web Applications Manar H. Alalfi James R. Cordy Thomas R. Dean School of Computing, Queen s University Kingston, Canada {alalfi, cordy, dean}@cs.queensu.ca Abstract This paper presents an original Model-Driven- Engineering (MDE) approach to support the verification and testing of security properties in dynamic web applications. Based on a previously recovered UML-based fine-grained security model, the approach begins by transforming the model into a Prolog-based formal model. The Prolog model is then checked to verify whether the application conforms to specified access control security properties. We demonstrate the use of our method on the popular open source bulletin board system PhpBB 2.0, in the context of three test scenarios: testing for unauthorized access, web application security maintenance, and web application re-engineering. I. INTRODUCTION Software systems are becoming increasingly complex and interconnected, which increases the challenge in keeping them secure and reliable. Vulnerabilities have been found in critical infrastructure in healthcare, finance, energy and defence. Methods have been proposed to check for vulnerabilities such as SQL injection and cross-site scripting [27], but none attempt to detect broken access control. Our previous work [5] presents a survey of models and methods for web application verification and testing. While many methods check static properties of web applications, and some check dynamic features, none is able to model the access control features of dynamic web applications. To address this lack, our own analysis framework [3] automatically recovers a UML Role-Based Access Control (RBAC) security model from dynamic web applications. In this paper we use source transformation to transform this access control security model into a formal model implemented in Prolog. The TXL language [14], primarily used for source code transformation and design recovery, has recently been applied to model transformation [25, 21] and offers the scalability and flexibility we require. Although there are several available tools to transform from UML models into formal ones (e.g., UML2Alloy [10], XMI2SMV [11]), none is both complete and UML 2.0 compliant. We have chosen Prolog to check for access control security conformance primarily for its ability to handle large scale industrial software models [29]. Opoka et al. [12] show that Prolog performance in model analysis is better than that provided by the Object Constraint Language (OCL). Störrle [29] provides a thorough comparison with other tools and approaches for UML model analysis. The key contributions of this paper are: A scalable approach and tool to transform and formally analyze recovered web application security models using Prolog. A case study of the security analysis of a real production system, PhpBB 2.0, in three analysis scenarios. We give an overview of our overall framework in Section II, and Section III presents the details of our approach. In Section IV we discuss the correctness and completeness of our analysis, and in Section V we demonstrate it on an example system, PhpBB 2.0. Section VII discusses related work. Finally, Section VIII concludes the paper and presents possible future work. II. SECURITY ANALYSIS FRAMEWORK Our security analysis framework [3] (Figure 1) comprises two main phases. The first phase (Figure 1 (A,B)) uses an automated role mining process for the dynamic web application, in which roles and related information, such as permissions, constraints, and resources are identified. This process is based on a combination of static and dynamic analysis, using pattern matching to identify relevant security elements. In previous papers [2, 4, 6, 7, 8] we have described the approaches and tools that support this phase. In the second phase (Figure 1 (C,D)), we use an MDE approach to construct a UML-based RBAC [1] security model from the security elements identified in the first phase. This phase is based on model transformation and composition, and makes use of structural and behavioural models recovered by the static and dynamic reverse engineering approaches of the first phase. The final step in this framework, Figure 1 (D), is the subject of this paper. The RBAC security model recovered from a dynamic web application using our approach conforms to the SecureUML meta-model [9]. RBAC [1] was introduced in 1992 as a means to restrict access to the operations provided by a system based on the role of the user. RBAC has subsequently been adopted by several popular software platforms, such as the Java Platform Enterprise Edition (Java EE) [27]. In
2 model checking [C3S2E 2009] Behavioral Model Reverse- Engineering Structural Model Reverse- Engineering Security Model Construction Model Transformation and Formal Verification Static Information Class Diagram Sequence Diagram (A) Dynamic (B) (C) (D) Information Figure 1. Overview of our dynamic web application security analysis framework RBAC, a permission represents the right to perform a restricted operation, and a role represents a set of permissions that can be granted to users and groups of computer systems. RBAC permissions represent security-sensitive operations, as opposed to the security-sensitive data accessed by the system. When a user attempts a restricted operation, the user must be in a role that includes the necessary permissions. SecureUML is an implementation of the Model Driven Security approach [9], a specialization of Model Driven Architecture. It explicitly integrates security aspects into the application s models and provides support for model transformation. The approach has been proposed to bridge the representation gap between the graphical languages used for specifying the application s design models, such as UML, and the textual languages used to specify the security models. It is built on a modular schema that comprises three basic elements: a language for security policy specification, a language for design model construction, and a dialect for defining integration points in the preceding languages. The abstract syntax for SecureUML is based on the RBAC metamodel. It defines a meta-model that extends RBAC with authorization constraints to enable formal specification of access control policies that depend on dynamic aspects of the system, such as the access date or values of the system s environment variables. The modeling notation for SecureUML is based on a UML profile that uses UML stereotypes and tagged values to represent the abstract syntax elements in the meta-model schema. Users, groups, and roles are represented as classes with stereotypes User, Group and Role respectively, and permission is represented as an association class with a P ermission stereotype. Figure 2 shows an example of a SecureUML model for a web forum application. The diagram shows two users in different roles who are permitted different sets of actions based on their roles. Bob, who is an anonymous user, is permitted to access the forum entities using read operations. So, Bob can access a forum via ViewForum(), read a forums topics via ViewTopic(), read topic posts via ViewTPosts(), and can register in a forum. Alice, who is a registered user of the forum, can not only perform all the operations available to Bob but is also permitted write access to the forum. Thus, she can also reply to posts via RPostReply(), edit her own posts using EditSelfPost(), and so on. III. APPROACH In this paper, we present SecureUML2Prolog, a tool that automatically transforms a serialized SecureUML model into a formal Prolog model that can then be analyzed using Prolog queries. We define a set of mappings between SecureUML meta-model constructs and Prolog facts, and then use Prolog queries to check for role-based security concerns in the target application. Our method is based on model transformations implemented in the TXL source transformation language [14]. We begin by defining a TXL grammar for the input SecureUML serialization, and a second ( override ) grammar for our target Prolog format. The main grammatical form ( [program] in TXL) allows both, but expects the Prolog part to be empty on input and full on output, and vice-versa for the SecureUML part. We used the TXL producer-consumer translation paradigm to make a set of transformation rules to produce the Prolog output while consuming the SecureUML input. The transformation begins by parsing the SecureUML serialization to insure its conformance with its meta-model, with an initially empty Prolog output. It then replaces this entire input by constructing the Prolog output beginning with an empty set of Prolog facts and transforming it into the Prolog representation of the input SecureUML model. As an example of the source transformation implementation, Figure 3 shows a TXL rule for transforming a SecureUML permission s action and condition into Prolog facts. The initial deconstructor pattern matches the SecureUML syntax to recognize an ownedoperation element and identifies the attributes of the action. The constructors PermActionF and PermActionconst then generate Prolog facts for the action and its condition, which are appended to the Prolog factbase using the replace-by transformation clause.
3 <<Permission>> AnonymousPerm <<Role> Anonymous User ViewFs(): Forum ViewTs(): Topics ViewTPosts():Posts Register():String <<User>> Bob <<Subject Assignment>> <<Entity>> Forum ForumID: int <<Entity>> Topics TopicID: Int <<Role>> Registered User <<User>> Alice SessionID: String <<Subject Assignment>> <<Permission>> RegisteredPerm RPostReply: Posts EditSelfPost(): Posts DeleteSelfPost()::Posts AddPoll: Posts SubmitVote(): Posts Logout():Forum <<Entity>> Posts PostID: int Figure 2. An example SecureUML model function IsPermAction PermissionID [charlit] RoleID [id] OwnedOperation [owned_operation] deconstruct OwnedOperation <ownedoperation xmi:type = "uml:operation" xmi:id = AttribID [stringlit] name = OpName [stringlit] precondition = PreconID [stringlit] > OwnedAttrib [XMItoken*] </ownedoperation> construct CharOpName [charlit] _ [+ OpName] construct PermActionF [Factdot] permactionassign (RoleID, PermissionID, CharOpName). construct PermActionconst [Factdot*] _ [IsPermActionConst OwnedAttrib PermissionID RoleID] replace * [Factdot*] PermActionsFactsSoFar [Factdot*] by PermActionsFactsSoFar [. PermActionF ] [. PermActionconst] end function Figure 3. A sample TXL source transformation rule for generating permission facts from SecureUML model elements Our tool generates the following categories of facts, based on mappings of each of the elements of the SecureUML meta-model (Figure 4) to Prolog. Role facts: The leftmost side of the secureuml metamodel Figure 4(A), presents the Role model element and two relations: RoleHierarchy and userassignment. The model recovery aspect of our framework generates a separate SecureUML Role element for each role assigned to a specific user name for a specific session. A RoleNum attribute is added to all Prolog facts generated from the transformation process in order to bind them to the roles representing them. Currently, the RoleHierarchy relation is not automatically identified, so we do not map it in our target Prolog fact-base. The automated identification of the hierarchy relation is part of our planned future work. For Role elements of the SecureUML model, our tool generates facts for application roles and user assignments, such as: approle (RoleNum, RoleName) : Represents the application roles and takes as parameter the name of the role. Example: approle (1, Admin ). user (UserName) : Represents the application users, and takes as parameter the user name or id. Example: user ( Alice ). userassign (UserName, RoleNum) : Represents the assignment of users to roles, and takes as parameter the role and user name. Example: userassign ( Alice, 1). Permission facts: The second part of the meta-model, Figure 4(B), has two model elements: the set of Permissions and AuthorizationConstraints, and three relations: PermissionAssignment, ActionAssignment, and ConstraintAssignment. These are mapped into the following Prolog facts: perm (RoleNum, PermissionID) : Represents each application permission. Takes as parameter the role number and the application permission id. Example: perm (1, phpbb forumsperm ). permactionconst (RoleNum, PermissionID, ActionIDIn- Code, Constraint) : Represents application permission constraints and takes as parameter the permission id, the action id in code and the action constraints. Example: permactionconst (1, phpbb forumsperm, 366, forum id = $forum id ). rolepermassign (RoleNum, RoleID, PermissionID) : Represents the application s role permission assign-
4 A B C D Figure 4. The SecureUML meta-model (adapted from [9]) ments. Takes as parameter the permission id and the role id. Example: rolepermassign (1, Anonymous, phpbb forumsperm ). permactionassign (RoleNum, PermissionID, ActionID- InCode, ActionName) : Represents the application s permission action assignments. Takes as parameter, the permission id and the permission atomic actions IDs and names. Example: permactionassign (1, phpbb forumsperm, 366, Select (viewforum, forum id = $forum id) ). Action facts: The third part of the meta-model, Figure 4(C), presents three model elements and their relations, representing the set of application Actions, where the granularity of the action (whole entity, attributes or association) and the type of access (read or write) is identified by CompositeAction and AtomicAction model elements. This category of security model elements is mapped into the following Prolog facts: permactiontype (RoleNum, PermissionID, ActionIDIn- Code, ActionType) : Represents the permission action types, that is, whether they are read or write operations. Example: permactiontype (1, phpbb topicsperm, 404, Update ). permresourceassign (RoleNum, permissionid, ResourceID) : Represents application s permission resource assignments. Takes as parameter the permission id and the resource id. Example: permresourceassign (1, phpbb forumsperm, phpbb forums ). Secure resource facts: The last part of Figure 4(D) shows the secured Resource model element. In the SecureUML notation, the representation of resources is left open, so that developers can decide later which elements of the system should be considered secure and which should have access constraints. These elements are defined using a dialect. In our model recovery framework, we identify and recover secure resources from the web applications under test and represent them as an ER diagram. Facts resulting from this category are the application s secure resources (entities), their attributes, and their relationships, such as: entity (RoleNum, ResourceID) : Represents the application s secure resources. Takes as parameter the role number and the resource name. Example: entity (1, phpbb forums ). entityattrib (RoleNum, EntityName, Attrib) : Represents the application s resource attributes. Takes as parameter the role number, the resource name and its attribute names. Example: entityattrib (1, phpbb users, username ). entityassociation (RoleNum, entityname, Association- ID1, AssociationID2 (PK)) : Represents relations between the application s resources. Takes as parameter the role number, the resource name, and the relation s end names including key attribute(s). Example: entityassociation (1, phpbb forums, phpbb auth access, phpbb auth access(forum id) ). Dynamic and contextual facts: This category of Prolog facts represents environment information, such as execution timestamps, server environment variable accesses, and so on from the recovered model. Facts from this category are represented as a set of parameters associated with the set of Action model elements presented in Figure 4(C). permactiontimes (RoleNum, PermissionID, ActionID, Timestamp) : Represents an application action timestamp. Takes as parameter the role number, the permission id, the Action id and the execution timestamp for the action. Example: permactiontimes (1, phpbb forumsperm, 366, ). permactioninpage (RoleNum, PermissionID, ActionID, PageID) : Represents an action s location in the code, that is, which page it is associated with. Example: permactioninpage (1, phpbb forumsperm, 366, 365). Return (RoleNum, ReturnAttribs, pageid) : Represents attributes returned from interacting with the secured resources. Takes as parameter the role number, the returned attributes, and the id of the page that has the interaction. Example: Return (1, u.user id, u.username, 365).
5 IV. CORRECTNESS AND COMPLETENESS OF THE RECOVERED MODEL A question that arises when analyzing security aspects of an application using a formal model is the correctness and completeness of the model. One of the advantages of using a formal source transformation system for deriving and exploring security models from source code is that it is easier to reason about these properties of the tools. By contrast with a hand-coded analyzers implemented in Java or C, source transformation rules can be tested and verified piecewise. Because source transformations are based on parsing technology, the well-formedness of the results is guaranteed. TXL transformation rules are simply incapable of producing a result that does not conform to the syntactic forms of the target grammar/meta-model. The question of the semantic soundness of the constructed security model is also made simpler using a source transformation technique. Rather than having to reason about an entire hand-coded analysis program all at once, each TXL source transformation rule can be considered independently of the others. Whether the entire transformation is correct then becomes just a question of whether the set of rules forms a complete transformation, which can be checked separately. In our system this question is addressed by separating the process into a sequence of separate source transformation steps. Because each step yields a concrete intermediate text file representation that the next step parses as input, erroneous or incomplete results of a step are typically caught immediately by the next step. For example, if the data model extracted from the web application s schema is missing anything, there will be unresolved links when integrating the models that will make this fact immediately evident in the next transformation step. Using source transformation rules to analyze the schema, source code and behavioral models also assists in guaranteeing completeness. For example, the TXL parser syntactically identifies all references to the SQL database in the source code, and the transformation rule for analyzing them simply transforms them to an instrumented form. The question of whether we have missed any database interactions in the extracted model is therefore easy to evaluate, simply by counting the number of SQL interactions in the model and comparing it to the number identified by the parser in the source. Dynamic behavioral completeness is handled by including coverage counters in the instrumentation, implemented using the DWASTIC tool discussed in [7]. V. EXPERIMENT In the remainder of this paper we demonstrate our framework on PhpBB 2.0, a popular internet bulletin board system, in the context of three scenarios. Our system currently works on web applications built using Apache, PHP and MySQL. Apache is the most deployed web server on the internet with a 65% market share [24]. PHP, used on more than 20 million websites [26], has been the most popular server-side scripting language for years. And MySQL is the fastest-growing database in the industry, with more than 10 million active installations and 65,000 daily downloads [23]. However, our approach is not tied to these choices, and could be applied to other technologies as well. VI. TESTING SCENARIOS In this experiment, we examine three sets of users (roles): anonymous users, registered users and the administrator. The web application under test is explored twice, once to collect the application s form inputs, and a second time to do the actual navigation using automated form filling. We developed site exploration test cases to implement each of these automated navigations using WATIR, Web Application Testing In Ruby, an open-source family of Ruby libraries for automating website exploration [30]. We tailored versions of each exploration for each of the three roles. The first exploration dynamically collects all of the application s form inputs, and creates an Excel spreadsheet with entries for each of these inputs. Each row in the spreadsheet includes fields for the input s ID, name, type, and value. Figure 5 describes the algorithm for this first site exploration. The resulting spreadsheet is used to later fill in the value fields for each form input. The second WATIR site exploration test case uses the spreadsheet to fill the application s input forms while navigating the application. The navigation process is similar to that described in the algorithm shown in Figure 5, but instead of collecting form inputs, it searches for forms input IDs in the navigated pages, and chooses values for the matched fields from the spreadsheet to populate the form. A. Testing for Unauthorized Access Many web applications try to implement access control polices using obscurity, where sensitive links are not presented to unauthorized users. This method of protection is not sufficient since attackers may be able to access the hidden URLs, knowing that sensitive information and operations lie behind them. In this testing scenario we show how our framework can be used to check for unauthorized access to application resources. Specifically, we check if an anonymous user can access any unauthorized content of PhpBB2.0 using the links that an administrator can see when accessing the same forum. To check for this vulnerability, we first implement and run the WATIR test case that explores and dynamically collects all the links and form inputs in all the PhpBB 2.0 pages of the administrator role, and stores them in a spreadsheet. We excluded administrator visits to the administration panel itself, which includes the forum s management s tasks. Using the data collected in the spreadsheet, we ran a second WATIR test case that uses this data to navigate the forum as an anonymous user. The execution
6 Algorithm CollectFormInputs Input: The URL of the home page of a web application Output: A spreadsheet with the application s forms elements (ids, types, and values) 1. Create a new Spreadsheet: SpS 2. Create a new internet Explorer (IE) instance: IE_ins 3. Point the instance to the web application under test 4. collect_formelements() 5. collect all links in the current page: Lns 6. navigate(lns) 7. function collect_formelements() { 8. for each Form element(fe): text field, button, radio button, hidden field in the current page do { 9. insert a new raw in SPS (FE name, FE ID, FE type, FE value) 10. if the test case is for a non Anonymous user then{ 11. if (a username text field) and 12. (a passward textfield) exist in the current page then 13. { username.value = registereduser_username 14. passward.value = registereduser_passward 15. if the login button exist 16. press the login button } } } 17. }% end function 18. function navigate (Lns: list of links) 19. for each link(i) in Lns do 20. { click link I 21. collect all links in the page generated from link I: Lns2 22. collect_formelements() 23. Navigate(Lns2) 24. } Figure 5. The CollectFormInputs algorithm for collecting the application s form input elements trace collected for the anonymous user attempting to access administrator links and data is fed to our previous PHP2XMI [4] and WAFA [6] tools to generate a sequence diagram to reflect this behaviour. We then used our PHP2SecureUML [8] to generate the SecureUML models, finally, we used the SecureUML2Prolog tool of this paper to generate the corresponding formal Prolog fact base for the scenario. The goal is compare the access control facts collected in this scenario with those collected for a legitimate visit of an anonymous user to the forum. In other words, we want to know what resources the anonymous user can access if he accidentally got to see and use the part of the user interface only intended to be available to users with higher privileges, such as registered users and administrators. To evaluate this we implemented and ran Prolog queries to compute the set differences in page access, server environment variable access, and access to application entities. Figure 6 shows some of the Prolog queries used to implement this goal, specifically to compute the set difference in page accesses. The rule AccessAdmin Actions (RoleName1, RoleName2), where RoleName1 = Anonymous and RoleName2 = Anonymous Using Administrator Links, executes another Prolog query, rolepagesactionlist(), on each role and collects the results in Bag and Bag2 respectively. The rembag() function % computes role actions per page access role PagesActions(RoleName, PageName, PageID, ActionID, RList):- approle(rolenum, RoleName), pagenameid(rolenum, PageName, PageID), return(rolenum, RList, ActionID, PageID). % computes a set of actions lists for a specific role PagesActionsList(RoleName, Bag):- setof([pagename, ActionID, RList, PageID], rolepagesactions(rolename,pagename,pageid, ActionID, RList), Bag). % computes the actions set difference between two roles AccessAdmin_Actions(RoleName1, RoleName2):- rolepagesactionslist(rolename1, Bag), rolepagesactionslist(rolename2, Bag2), rembag(bag2, Bag, [], Result), printlists(result). Figure 6. Prolog rules to check for unauthorized access to application entities then computes the set difference between Bag2 and Bag, gathering the results in the Result set, and the rolepagesactionlist() computes the set of Actions allowed for each role, grouped by page. Query results are presented in Table I. From the results of the Prolog queries, we can see that PhpBB 2.0 reacts to attempted access to unauthorized pages in three different ways: 1) Attempted access to some pages is redirected to the login page. Examples are access to the posting pages (225), privmsg pages (257), adminindex page (794), and the search pages (324). The Last eight entries in Table I show these redirections to the login page. 2) Other pages are not properly protected, as they are not redirected to the login page. Instead, an error message is returned, such as invalid session ID. Access to the modcp (145) pages, shown in Table I, are examples on this case. 3) Some pages are not protected at all, thus a guest user can access the pages and execute all actions associated with them. Access to faq (18), index (109), and the last posting (255) page are examples of this case. In addition to pages, we can also use our Prolog model to test for potential anonymous user access to secured server environment variables, actions, entities and attributes of the web application. Table II shows the result of executing the Prolog set difference query on server environment variables, and Table III shows the result of executing the Prolog set difference query on the application actions, entities and attributes. A particular risk of anonymous user unauthorized access to SQL statements, such as those shown in Table III, is enabling the unauthorized user to build on these privileges to launch another kind of attack, such as an SQL injection attack. In SQL injection, the attacker tries to modify the logic of SQL statements that accept unsanitized inputs to break the system and possibly take over site administration.
7 PID P_Name P_Parameter Link!Name PhpBB!React! 18 faq!!!?mode=bbcode!!! BBCode Full!Access 109 index?mark=forums!!! Mark!all!forums!read Full!Access 126 login?logout=true!,!sid=fd3c.. Log!out![!alalfi!] Full!Access 145 modcp?f=2!,!sid=0f206abbbc.. moderate!this!forum Error!Msg 145 modcp?f=2!,!start=0!,!sid=0f2..! moderate!this!forum Error!Msg 145 modcp?mode=ip!,!p=5!,!t=3!,!sid=fd3..! View!IP!address!of! Error!Msg 145 modcp?t=3!,!mode=delete!,!sid=0f20.. Delete!this!topic poster Error!Msg 145 modcp?t=3!,!mode=lock!,!sid=fd3c29..! lock!this!topic Error!Msg 145 modcp!?t=3!,!mode=move!,!sid=0f2..! Move!this!topic Error!Msg 145 modcp?t=3!,!mode=split!,!sid=fd3..!! Split!this!topic Error!Msg 225 posting?mode=delete!,!p=5!,!sid=0f2.. Delete!this!post Error!Msg 225 posting?mode=editpost!,!p=5!!! Edit/Delete!this!post Error!Msg 225 posting?mode=newtopic!,!f=2!!! new!topic Forced!login 225 posting!!?mode=quote!,!p=5!!! Reply!with!quote Forced!login 225 posting?mode=reply!,!t=3!!! post!reply Forced!login 225 posting?mode=smilies!!! view!moreemoticons Full!Access 257 privmsg!!!?folder=inbox!,!mode=read!,! Inbox Forced!login p=1!!! 257 privmsg?folder=inbox!,!sid=fd3c..! Log!in!to!check!your! Forced!login private!messages 257 privmsg?folder=outbox!!! Outbox Forced!login 257 privmsg!!?folder=savebox!!! Savebox Forced!login 257 privmsg!?folder=sentbox!!! Sentbox Forced!login 257 privmsg!!!?mode=post!!! newpost Forced!login 324 search!!!?search_id=egosearch!!! View!your!posts Forced!login 324 search!!!?search_id=newposts!!! View!posts!since!last! Forced!login visit 391 viewtopic!?t=3!,!start=0!,!postdays=0!,! Full!Access postorder=asc!,!highlight=!!! 391 viewtopic!!!?t=3!,!watch=topic!,! Watch!this!topic!for! Full!Access!start=0!,!sid=fd3c..!!! replies 794 adminindex!!!?sid=fd3c..!!! Forced!login 126 login?redirect=admin/index.php!,! sid=67f7242f6!!! 126 login?redirect=posting.php!,! mode=newtopic!,!f=2!!! 126 login?redirect=posting.php!,! mode=quote!,!p=5!!! 126 login?redirect=posting.php!,!!mode=reply!,!t=3!!! 126 login?redirect=privmsg.php!,!!folder=inbox!,!mode=post!!! 126 login?redirect=privmsg.php!,! folder=inbox!,!mode=read!,!p=1! 126 login!?redirect=search.php!,! search_id=egosearch!!! 126 login?redirect=search.php!,! search_id=newposts!!! Table I UNAUTHORIZED PAGE ACCESS WITH PARAMETERS FOR A GUEST USER ATTEMPTING TO ACCESS ADMININSTRATOR LINKS In Table III we have uncovered examples of such a possibility in PhpBB 2.0, with potential anonymous user access to administrator SQL statements in the actions with ActionIDs 152, 157, 226, 227, 228, 329, 341 and 393. B. Web application maintenance Our framework can also be used for maintenance of rolebased web application security. For example, this can be useful when the testing engineer has identified an access control security feature that is presently permitted to a specific role, and would like to disable this feature. Our framework can help by locating all the pages and database statements that allow this feature, as a step towards fixing the code to prevent this access in future. As an example, in PhpBB 2.0 we have noticed that an anonymous user is allowed to see registered users profile information, a feature that may lead to a privacy violation for forum members. We executed a Prolog query that searches PID P_Name Var Http!Var_Name Var_Assign Http!Var! Http!Var! _ID Value Type 18 faq!!! 19 mode!!!!!! bbcode!!! GETDT!!! 109 index 119 c!!! $viewcat!!! 1 GETDT!!! 109 index 120 mark!!! $mark_read!!! forums!!! GETDT!!! 145 modcp 191 f!!! $forum_id!!! 2 GETDT!!! 145 modcp 193 p!!! $post_id!!! 5 GETDT!!! 145 modcp!!! 200 t!!! $topic_id!!! 3 GETDT!!! 145 modcp! 209 confirm!!! $confirm!!!!!! POSTDT!!! 145 modcp!!! 210 start!!! $start!!! 0 GETDT!!! 145 modcp!!! 211 mode!!! $mode!!! ip!!! GETDT!!! 145 modcp 215 sid!!! $sid!!! 0f206abbb! GETDT!!! 225 posting!! 235 mode!!! $!$var!!! delete!!! GETDT!!! 225 posting!!! 238 p!!! $!$var!!! 5 GETDT!!! 257 privmsg 306 p!!! $privmsg_id!!! 1 GETDT!!! 257 privmsg! 308 p!!! $privmsgs_id!!! 1 GETDT!!! 319 profile!! 320 sid!!! $sid!!! fd3c29892!!!getdt!!! 324 search!! 348 search_author!!! $search_author!!! alalfi!!! GETDT!!! 324 search!! 350 search_id!!! $search_id!!! egosearch!!! GETDT!!! 365 viewforum!!! 380 mark!!! $mark_read!!! topics!!! GETDT!!! 391 viewtopic!!! 413 postorder!!! $post_order!!! asc!!! GETDT!!! Table II UNAUTHORIZED SERVER ENVIRONMENT VARIABLE ACCESS FOR A GUEST ATTEMPTING TO ACCESS ADMININSTRATOR LINKS PID P_Name Action! Action!return"value! Action_constraint Action!aliases ID 145 modcp!!! 152 t!.!topic_id!=!$topic_id!and!f!.! phpbb_topics!t,! forum_id!=!t!.!forum_id!!! phpbb_forums!f!!! 145 modcp 157 forum_name,!forum_topics!!! forum_id!=!$forum_id!!! phpbb_forums!!! 225 posting 226 *!!! forum_id!=!$forum_id!!! phpbb_forums!!! 225 posting!! 227 f.*,!t.topic_status,!t.topic_title,! t!.!topic_id!=!$topic_id!and!f!.! phpbb_forums!f,!!!!!t.topic_type!!! forum_id!=!t!.!forum_id!!! phpbb_topics!t!!! 225 posting!!! 228 f.*,!t.topic_id,!t.topic_status,! p!.!post_id!=!$post_id!and! phpbb_posts!p,! t.topic_type,!t.topic_first_post_id,!...! t!.!topic_id!=!p!.!topic_id!and! phpbb_topics!t,! p.post_id,!p.poster_id,!p.enable_html,..! f!.!forum_id!=!p!.!forum_id!and! phpbb_forums!f,! p.enable_smilies,!...! pt!.!post_id!=!p!.!post_id!and! phpbb_posts_text!pt,! pt.post_subject,!pt.post_text,...! u!.!user_id!=!p!.!poster_id!!! phpbb_users!u!!! u.username,!u.user_id,!u.user_sig,...! 225 posting!! 868 emoticon,!code,!smile_url!!!! phpbb_smilies!!! 324 search 329 post_id!!! poster_id!in!($matching_userids)! phpbb_posts!!! 324 search!! 336 topic_id!!!! topic_replies!=!0!and! phpbb_topics!!! topic_moved_id!=!0!!! 324 search!! 341 pt.post_text,!pt.bbcode_uid,! pt.post_subject,!p.*,!f.forum_id,! f.forum_name,!t.*,!u.username,! u.user_id,!u.user_sig,! u.user_sig_bbcode_uid!!! 388 viewonline! 389 forum_name,!forum_id!!!! 388 viewonline! 390 u.user_id,!u.username,! u.user_allow_viewonline,u.user_level,! s.session_logged_in,!s.session_time,!!s.session_page,!s.session_ip!!! 391 viewtopic!! 393 t.topic_id!!! p!.!post_id!in!($search_results)! and!!!pt!.!post_id!=!p!.!post_id! and!f!.!forum_id!=!!p!.!forum_id! and!p!.!topic_id!=!t!.!topic_id! and!p!.!poster_id!=!u!.!user_id!!! u!.!user_id!=!!s!.!session_user_id! and!!s!.!session_time!>=! (time!()!!"!!300)!!! t2!.!topic_id!=!$topic_id!and!t!.! forum_id!=!t2!.!forum_id!and!t!.! topic_moved_id!=!0!and!t!.! topic_last_post_id!>!t2!.! topic_last_post_id!!! Table III UNAUTHORIZED SQL STATEMENT ACCESS FOR A GUEST USER ATTEMPTING TO ACCESS AN ADMINISTRATOR S LINKS for profile information in all accesses represented in the recovered model of a registered user. The query returns information on all pages in the registered role that permit such access, and identifies SQL statements that retrieve this information. Identifying the pages and SQL statements that allow this feature will help the software engineer to update the code to restrict the guest access. Figure 7 shows one of the Prolog queries used to implement this goal, and Table IV shows the result of these queries, identifying all anonymous user actions that can gain access to registered user addresses and what pages and links allow that access. phpbb_forums!f,! phpbb_topics!t,! phpbb_users!u,! phpbb_posts!p,! phpbb_posts_text!pt!! phpbb_forums!!! phpbb_users!u,! phpbb_sessions!s!!! phpbb_topics!t,! phpbb_topics!t2!!!
8 each SQL statement and server environment variable located in any of the application serv pages. % search for pages & actions that allow a user % to access other user s anon_ _retrieved(pageid, PageName, ActionID, AcTS, RoleName) :- approle(rolnum, RoleName), return(rolnum, SelList, ActionID, PageID), split_string(sellist,,, SelAtoms), member(user_view ,selatoms), pagenameid(rolnum, PageName, PageID), permactiontimes(rolnum, _, ActionID, AcTS). Figure search posting 863 Prolog rule to check for access to user addresses message_die (GENERAL_MESSAGE, $lang ['Not_admin']); PID Page_Name Action! Action!return"value Action_constraint Action!aliases } ID if ($HTTP_GET_VARS ['sid']!= $userdata ['session_id']) 109 index 140 username,!user_id,! user_id!<>!"!1! phpbb_users user_view ,!user_posts,!!!!!!!!!!order!by!$order_by! { 139 memberlist user_regdate,user_from,! redirect ("index.$phpex?sid=".$userdata ['session_id']); 257 privmsg user_website,!user_ ,! } 319 profile!user_icq,!user_aim,! if (! $userdata ['session_admin']) user_yim,!user_msnm,! { user_avatar,...! redirect (append_sid ("login.$phpex user_avatar_type,!?redirect=admin/index.$phpex&admin=1", true)); login modcp viewtopic user_allowavatar!u.username,!u.user_id,! u.user_posts,!u.user_from,! u.user_website,! u.user_ ,!u.user_icq,! u.user_aim,!u.user_yim,! u.user_regdate,! u.user_msnm,! u.user_view ,...! u.user_rank,!u.user_sig,!!u.user_id,!u.user_ ,! u.user_sig_bbcode_uid,! u.user_lang! u.user_avatar,! u.user_avatar_type,! u.user_allowavatar,! u.user_allowsmile,!p.*,! pt.post_text,! pt.post_subject,! pt.bbcode_uid p!.!topic_id!=!$topic_id! $limit_posts_time! and!pt!.!post_id!=!p!.!post_id! and!u!.!user_id!=!p!.!poster_id! tw!.!topic_id!=!$topic_id!and! tw!.!user_id!not!in! ($userdata![user_id],!"!1,! $row![ban_userid])! and!tw!.!notify_status!=!0! and!u!.!user_id!=!tw!.!user_id Table IV LIST OF ALL PAGES AND ACTIONS THAT PERMIT ACCESS TO A USER S ADDRESS C. Web application Reengineering In PhPBB 2.0 administrator management tasks are protected by providing a valid administrator username and password on the login page. Users who provide such information can then access all the forum management tasks. This is implemented by performing role validation at the beginning of each restricted page using a call to the pagestart() PHP function. The function implements the validation using session information, deciding on the allowed level of access. Figure 6 shows the source code of the PageStart.php file and highlights the part of it that is responsible for controlling access. To address this issue along with the fact that many web applications access control is implemented using obscurity, such applications need to be reengineered to employ a strict security model not only at the level of page access but also at the level of server environment variable access and access to application entities and attributes. Using our Prolog model, by commenting out the code in pagestart(), an anonymous user was able to access all the administrator management pages, given the URL for them. With this modification, the results of the query of Figure 6 yield an exhaustive list of all of the ways that the anonymous user could gain such <?php if (! defined ('IN_PHPBB')) { die ("Hacking attempt"); } define ('IN_ADMIN', true); include ($phpbb_root_path.'common.'.$phpex); $userdata = session_pagestart ($user_ip, PAGE_INDEX); init_userprefs ($userdata); if (! $userdata ['session_logged_in']) { redirect (append_sid ("login.$phpex?redirect=admin/index.$phpex", true)); } else if ($userdata ['user_level']!= ADMIN) { phpbb_posts!p,! } phpbb_users!u,! if (empty ($no_page_header)) phpbb_posts! { _text!pt include ('./page_header_admin.'.$phpex); } ob_flush ();?> phpbb_topics! _watch!tw,! Figure 8. phpbb_users!u The PageStart.php file in PhpBB 2.0. Code that controls access to administration management pages is highlighted. access, by page, resource, and action, providing the security engineer with all of the changes that would need to be made to localize security checking in the application. In general, the security models generated by our framework can also be reviewed by a security engineer either by using any modeling tool that supports UML2.0 (such as RSA [18]), or by exploring the generated Prolog representation of the security model using queries. Either way the engineer can easily explore scenarios to check for the absence of legitimate access or the existence of unauthorized access to the web application as a result of changes or planned changes to the code. Since the recovered model provides fined-grained access information down to the level of the application s entities attributes, the software engineer can also explore the potential effect of a proposed update to the access model, either by updating the security model or by updating the Prolog representation. Once the security model is revised to reflect the new access control requirements, it can be used to restructure the application s database schema such that the security check is employed on every access to any of the application s entities attributes. Database access in the web application can be updated accordingly based on the new database structure. This is made possible by the unique numbering generated by our framework and associated with each SQL statement and server environment variable reference in any of the application s server pages.
9 VII. RELATED WORK Several methods in the literature propose tools for the translation of UML diagrams to formal models that can be checked using formal verification tools. In the context of web application verification, Castelluccia et al. [11] and Sciascio et al. [16] use the Canollen model to build a diagram for the web application to verify its design. The authors implement a component, XMI2SMV, that converts UML diagrams in XMI format into a Web Application Graph (WAG). The WAG can be translated into an SMV model, which is then given to the NuSMV model checker [13]. Bordbar and Anastasakis [10] use the Alloy [15] constraint solver to find bugs in interaction between the user and the browser in web applications. They designed a model translation tool, UML2Alloy, which maps from their proposed UML diagram, Abstract Description of Interaction, to an Alloy model, which can then be verified using the Alloy analyzer. Other model translation tools are discussed in [17]. In access control analysis research, Letarte and Merlo [20] use static analysis to extract a binary role model from PHP code, or more specifically from PHP database statements. The approach then checks if the recovered model is restrictive or permissive. Change of authorization level in the code is modeled using an inter-procedural control flow graph. The approach accounts for only two roles, admin and user, for which access to database statements may or may not be granted. It uses an application-dependent authorization pattern, and lacks for correspondence to source code. Koved et al. [19] propose an approach to automatically compute access rights requirements in Java 2.0 applications and specifically for mobile code such as applets and servlets. The authors use context sensitive data and control flow analysis to construct an Access Right Invocation graph representing the authorization model of the code. This enables identification of classes in each path that contain a call to the Java 2.0 security authorization subsystems. Pistoia et al. [28] propose an approach to detect inconsistencies in an application s RBAC policy. They statically construct a call graph to represent the flow of authorization by over-approximating method calls in the application and identifying access-restricted methods. The graph forms the basis of several security analyses, including whether the application s RBAC security policy is restrictive or permissive. Mendling et al. [22] propose a meta-model based integration approach to enhance the security features of Business Process Management Systems that operate via Web Services (BPEL). The authors use an XSTL transformation script to extract roles and permissions from a BPEL process definition based on a proposed mapping. The extracted information is stored in XML, which can be imported into the tool xorbac, which enables the definition and enforcement of RBAC policies and constraints for web services. In the area of web applications, many model-based testing techniques have been proposed. However, the main focus has been on testing structural, dynamic, or interaction aspects of web applications rather than on security testing or access control properties. A state of the art discussion of these techniques can be found on our recent survey [5]. VIII. CONCLUSIONS AND FUTURE WORK In this paper we have presented an approach and a tool to analyze RBAC security models automatically recovered from existing dynamic web applications. We used source transformation technology in SecureUML2Prolog to transform the recovered SecureUML models into Prolog. The resulting formal models can be used to check RBAC security properties in the application under test. We demonstrated our method on a production web application, PhpBB 2.0, and illustrated its use in security analysis, testing, maintenance and reengineering. In future work we are planning to conduct a larger scale evaluation to better test the effectiveness of our method, and to extend and adapt our framework to address other security analysis tasks. ACKNOWLEDGMENTS This work is supported in part by the Natural Sciences and Engineering Research Council of Canada (NSERC), and by the IBM Canada Centre for Advanced Studies. REFERENCES [1] Gail-Joon Ahn and Ravi S. Sandhu. Role-based authorization constraints specification. ACM Trans. Inf. Syst. Secur., 3(4): , [2] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. SQL2XMI: Reverse Engineering of UML- ER Diagrams from Relational Database Schemas. In WCRE, pages , [3] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. A Verification Framework for Access Control in Dynamic Web Applications. In C3S2E, pages , [4] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. Automated Reverse Engineering of UML Sequence Diagrams for Dynamic Web Applications. In ICSTW, pages , [5] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. Modeling methods for web application verification and testing: State of the art. Software Testing, Verification and Reliability, 19(4): , [6] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. WAFA: Fine-grained Dynamic Analysis of Web Applications. In WSE, pages 41 50, [7] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. Automating Coverage Metrics for Dynamic Web Applications. In CSMR, pages 51 60, 2010.
10 [8] Manar H. Alalfi, James R. Cordy, and Thomas R. Dean. Recovering Role-based Access Control Security Models from Dynamic Web Applications. In ICWE, pages , [9] David A. Basin, Manuel Clavel, and Marina Egea. A decade of model-driven security. In SACMAT, pages 1 10, [10] Behzad Bordbar and Kyriakos Anastasakis. MDA and Analysis of Web Applications. In TEAA, volume 3888 of LNCS, pages Springer, [11] Daniela Castelluccia, Marina Mongiello, Michele Ruta, and Rodolfo Totaro. WAVer: A Model Checking-based Tool to Verify Web Application Design. Electr. Notes Theor. Comput. Sci., 157(1):61 76, [12] Joanna Chimiak Opoka, Michael Felderer, Chris Lenz, and Christian Lange. Querying UML Models using OCL and Prolog: A Performance Study. ICSTW, pages 81 88, [13] Alessandro Cimatti, Edmund M. Clarke, Fausto Giunchiglia, and Marco Roveri. NUSMV: A New Symbolic Model Checker. Int. Journal on Soft. Tools for Tech. Transfer STTT, 2(4): , [14] James R. Cordy. The TXL source transformation language. Science of Computer Programming, 61(3): , [15] Daniel Jackson. Alloy: A New Technology for Software Modelling. In TACAS, volume 2280 of LNCS, page 20. Springer, [16] Eugenio Di Sciascio, Francesco M. Donini, Marina Mongiello, Rodolfo Totaro, and Daniela Castelluccia. Design Verification of Web Applications Using Symbolic Model Checking. In ICWE, volume 3579 of LNCS, pages Springer, [17] Maria Encarnación Beato Gutiérrez, Manuel Barrio- Solórzano, Carlos Enrique Cuesta Quintero, and Pablo de la Fuente. UML automatic verification tool with formal methods. Electr. Notes Theor. Comput. Sci, 127(4):3 16, [18] IBM Corp. Rational Software Architect 7.0, last access October [19] Larry Koved, Marco Pistoia, and Aaron Kershenbaum. Access rights analysis for Java. In OOPSLA, pages , [20] Dominic Letarte and Ettore Merlo. Extraction of Interprocedural Simple Role Privilege Models from PHP Code. In WCRE, pages , [21] Hongzhi Liang and Jürgen Dingel. A Practical Evaluation of Using TXL for Model Transformation. In SLE, pages , [22] Jan Mendling, Mark Strembeck, Gerald Stermsek, and Gustaf Neumann. An Approach to Extract RBAC Models from BPEL4WS Processes. In WETICE, pages 81 86, [23] MySQL. MySQL Market Share, last access Nov 26, [24] Netcraft Ltd. November 2011 web server survey, last access Nov 26, [25] Richard Paige and Alek Radjenovic. Towards Model Transformation with TXL. In First Intl. Workshop on Metamodeling for MDA, pages , [26] PHP Group. PHP usage Stats for April 2007, last access Nov 26, [27] Marco Pistoia, Satish Chandra, Stephen J. Fink, and Eran Yahav. A survey of static analysis methods for identifying security vulnerabilities in software systems. IBM Systems Journal, 46(2): , [28] Marco Pistoia, Robert J. Flynn, Larry Koved, and Vugranam C. Sreedhar. Interprocedural analysis for privileged code placement and tainted variable detection. In ECOOP, pages , [29] Harald Störrle. A PROLOG-based Approach to Representing and Querying Software Engineering Models. In VLL, pages 71 83, [30] WatirCraft. Watir, last access March 2009.
SQL2XMI: Reverse Engineering of UML-ER Diagrams from Relational Database Schemas
SQL2XMI: Reverse Engineering of UML-ER Diagrams from Relational Database Schemas Manar H. Alalfi James R. Cordy Thomas R. Dean School of Computing, Queen s University, Kingston, Canada {alalfi, cordy,
Design Authorization Systems Using SecureUML
Design Authorization Systems Using SecureUML By Rudolph Araujo & Shanit Gupta, Foundstone Professional Services February 2005 Overview This whitepaper describes the Foundstone SecureUML template, a Microsoft
INTRUSION PROTECTION AGAINST SQL INJECTION ATTACKS USING REVERSE PROXY
INTRUSION PROTECTION AGAINST SQL INJECTION ATTACKS USING REVERSE PROXY Asst.Prof. S.N.Wandre Computer Engg. Dept. SIT,Lonavala University of Pune, [email protected] Gitanjali Dabhade Monika Ghodake Gayatri
Online College Magazine
Software Requirement Specification Chennai Campus Vandalur-Kelambakkam Road, Chennai 600048 Ciphers Online College Magazine IBM TGMC-2011 Version 1.0 Team Members : Mentor: Prof. B. Sathis Kumar 1. Aanchal
Security Test s i t ng Eileen Donlon CMSC 737 Spring 2008
Security Testing Eileen Donlon CMSC 737 Spring 2008 Testing for Security Functional tests Testing that role based security functions correctly Vulnerability scanning and penetration tests Testing whether
Expert PHP and MySQL. Application Desscpi and Development. Apress" Marc Rochkind
Expert PHP and MySQL Application Desscpi and Development Marc Rochkind Apress" Contents About the Author About the Technical Reviewer Acknowledgments Introduction xvii xix xxi xxiii -Chapter 1: Project
Model-driven secure system development framework
SCIENTIFIC PAPERS, UNIVERSITY OF LATVIA, 2010. Vol. 757 COMPUTER SCIENCE AND INFORMATION TECHNOLOGIES 43 52 P. Model-driven secure system development framework Viesturs Kaugers, Uldis Sukovskis Riga Technical
LabVIEW Internet Toolkit User Guide
LabVIEW Internet Toolkit User Guide Version 6.0 Contents The LabVIEW Internet Toolkit provides you with the ability to incorporate Internet capabilities into VIs. You can use LabVIEW to work with XML documents,
CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS
66 CHAPTER 5 INTELLIGENT TECHNIQUES TO PREVENT SQL INJECTION ATTACKS 5.1 INTRODUCTION In this research work, two new techniques have been proposed for addressing the problem of SQL injection attacks, one
UML-based Test Generation and Execution
UML-based Test Generation and Execution Jean Hartmann, Marlon Vieira, Herb Foster, Axel Ruder Siemens Corporate Research, Inc. 755 College Road East Princeton NJ 08540, USA [email protected] ABSTRACT
SQL Injection January 23, 2013
Web-based Attack: SQL Injection SQL Injection January 23, 2013 Authored By: Stephanie Reetz, SOC Analyst Contents Introduction Introduction...1 Web applications are everywhere on the Internet. Almost Overview...2
Revel8or: Model Driven Capacity Planning Tool Suite
Revel8or: Model Driven Capacity Planning Tool Suite Liming Zhu 1,2, Yan Liu 1,2, Ngoc Bao Bui 1,2,Ian Gorton 3 1 Empirical Software Engineering Program, National ICT Australia Ltd. 2 School of Computer
University Data Warehouse Design Issues: A Case Study
Session 2358 University Data Warehouse Design Issues: A Case Study Melissa C. Lin Chief Information Office, University of Florida Abstract A discussion of the design and modeling issues associated with
Load testing with. WAPT Cloud. Quick Start Guide
Load testing with WAPT Cloud Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. 2007-2015 SoftLogica
Representing XML Schema in UML A Comparison of Approaches
Representing XML Schema in UML A Comparison of Approaches Martin Bernauer, Gerti Kappel, Gerhard Kramler Business Informatics Group, Vienna University of Technology, Austria {lastname}@big.tuwien.ac.at
Redpaper Axel Buecker Kenny Chow Jenny Wong
Redpaper Axel Buecker Kenny Chow Jenny Wong A Guide to Authentication Services in IBM Security Access Manager for Enterprise Single Sign-On Introduction IBM Security Access Manager for Enterprise Single
Tool Support for Model Checking of Web application designs *
Tool Support for Model Checking of Web application designs * Marco Brambilla 1, Jordi Cabot 2 and Nathalie Moreno 3 1 Dipartimento di Elettronica e Informazione, Politecnico di Milano Piazza L. Da Vinci,
How To Test Your Web Site On Wapt On A Pc Or Mac Or Mac (Or Mac) On A Mac Or Ipad Or Ipa (Or Ipa) On Pc Or Ipam (Or Pc Or Pc) On An Ip
Load testing with WAPT: Quick Start Guide This document describes step by step how to create a simple typical test for a web application, execute it and interpret the results. A brief insight is provided
Analysis of SQL injection prevention using a proxy server
Computer Science Honours 2005 Project Proposal Analysis of SQL injection prevention using a proxy server By David Rowe Supervisor: Barry Irwin Department of Computer
A Framework of Model-Driven Web Application Testing
A Framework of Model-Driven Web Application Testing Nuo Li, Qin-qin Ma, Ji Wu, Mao-zhong Jin, Chao Liu Software Engineering Institute, School of Computer Science and Engineering, Beihang University, China
1. Introduction 1.1 Methodology
Table of Contents 1. Introduction 1.1 Methodology 3 1.2 Purpose 4 1.3 Scope 4 1.4 Definitions, Acronyms and Abbreviations 5 1.5 Tools Used 6 1.6 References 7 1.7 Technologies to be used 7 1.8 Overview
10CS73:Web Programming
10CS73:Web Programming Question Bank Fundamentals of Web: 1.What is WWW? 2. What are domain names? Explain domain name conversion with diagram 3.What are the difference between web browser and web server
How to install phpbb forum on NTU student club web server
How to install phpbb forum on NTU student club web server This guide contains the step by step instructions to install phpbb (stable release 3.0.7- PL1) on NTU student club web server. It does not cover
WebSphere Business Monitor V7.0: Clustering Single cluster deployment environment pattern
Copyright IBM Corporation 2010 All rights reserved WebSphere Business Monitor V7.0: Clustering Single cluster deployment environment pattern What this exercise is about... 2 Exercise requirements... 2
PHP Code Design. The data structure of a relational database can be represented with a Data Model diagram, also called an Entity-Relation diagram.
PHP Code Design PHP is a server-side, open-source, HTML-embedded scripting language used to drive many of the world s most popular web sites. All major web servers support PHP enabling normal HMTL pages
Secure State UML: Modeling and Testing Security Concerns of Software Systems Using UML State Machines
Research Journal of Applied Sciences, Engineering and Technology 7(18): 3786-3790, 2014 ISSN: 2040-7459; e-issn: 2040-7467 Maxwell Scientific Organization, 2014 Submitted: October 26, 2013 Accepted: December
EVALUATION ONLY. WA2088 WebSphere Application Server 8.5 Administration on Windows. Student Labs. Web Age Solutions Inc.
WA2088 WebSphere Application Server 8.5 Administration on Windows Student Labs Web Age Solutions Inc. Copyright 2013 Web Age Solutions Inc. 1 Table of Contents Directory Paths Used in Labs...3 Lab Notes...4
Enhanced Model of SQL Injection Detecting and Prevention
Enhanced Model of SQL Injection Detecting and Prevention Srinivas Baggam, Assistant Professor, Department of Computer Science and Engineering, MVGR College of Engineering, Vizianagaram, India. [email protected]
WebCruiser Web Vulnerability Scanner User Guide
WebCruiser Web Vulnerability Scanner User Guide Content 1. Software Introduction...2 2. Key Features...3 2.1. POST Data Resend...3 2.2. Vulnerability Scanner...6 2.3. SQL Injection...8 2.3.1. POST SQL
Chapter 5. Regression Testing of Web-Components
Chapter 5 Regression Testing of Web-Components With emergence of services and information over the internet and intranet, Web sites have become complex. Web components and their underlying parts are evolving
MarkLogic Server. Reference Application Architecture Guide. MarkLogic 8 February, 2015. Copyright 2015 MarkLogic Corporation. All rights reserved.
Reference Application Architecture Guide 1 MarkLogic 8 February, 2015 Last Revised: 8.0-1, February, 2015 Copyright 2015 MarkLogic Corporation. All rights reserved. Table of Contents Table of Contents
Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions
Meta Model Based Integration of Role-Based and Discretionary Access Control Using Path Expressions Kathrin Lehmann, Florian Matthes Chair for Software Engineering for Business Information Systems Technische
MapReduce. MapReduce and SQL Injections. CS 3200 Final Lecture. Introduction. MapReduce. Programming Model. Example
MapReduce MapReduce and SQL Injections CS 3200 Final Lecture Jeffrey Dean and Sanjay Ghemawat. MapReduce: Simplified Data Processing on Large Clusters. OSDI'04: Sixth Symposium on Operating System Design
Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft
5.6 Copyright 2014 Jaspersoft Corporation. All rights reserved. Printed in the U.S.A. Jaspersoft, the Jaspersoft logo, Jaspersoft ireport Designer, JasperReports Library, JasperReports Server, Jaspersoft
II. PREVIOUS RELATED WORK
An extended rule framework for web forms: adding to metadata with custom rules to control appearance Atia M. Albhbah and Mick J. Ridley Abstract This paper proposes the use of rules that involve code to
Database Application Developer Tools Using Static Analysis and Dynamic Profiling
Database Application Developer Tools Using Static Analysis and Dynamic Profiling Surajit Chaudhuri, Vivek Narasayya, Manoj Syamala Microsoft Research {surajitc,viveknar,manojsy}@microsoft.com Abstract
Source Code Translation
Source Code Translation Everyone who writes computer software eventually faces the requirement of converting a large code base from one programming language to another. That requirement is sometimes driven
Bug Report. Date: March 19, 2011 Reporter: Chris Jarabek ([email protected])
Bug Report Date: March 19, 2011 Reporter: Chris Jarabek ([email protected]) Software: Kimai Version: 0.9.1.1205 Website: http://www.kimai.org Description: Kimai is a web based time-tracking application.
Application note: SQL@CHIP Connecting the IPC@CHIP to a Database
Application note: SQL@CHIP Connecting the IPC@CHIP to a Database 1. Introduction This application note describes how to connect an IPC@CHIP to a database and exchange data between those. As there are no
International Journal of Engineering Technology, Management and Applied Sciences. www.ijetmas.com November 2014, Volume 2 Issue 6, ISSN 2349-4476
ERP SYSYTEM Nitika Jain 1 Niriksha 2 1 Student, RKGITW 2 Student, RKGITW Uttar Pradesh Tech. University Uttar Pradesh Tech. University Ghaziabad, U.P., India Ghaziabad, U.P., India ABSTRACT Student ERP
Java Generation from UML Models specified with Alf Annotations
Université de Franche-Comté Supervisers : Fabien Peureux, Isabelle Jacques Java Generation from UML Models specified with Alf Annotations Supervised project report Alexandre Vernotte Jean-Marie Gauthier
Component Approach to Software Development for Distributed Multi-Database System
Informatica Economică vol. 14, no. 2/2010 19 Component Approach to Software Development for Distributed Multi-Database System Madiajagan MUTHAIYAN, Vijayakumar BALAKRISHNAN, Sri Hari Haran.SEENIVASAN,
Using weblock s Servlet Filters for Application-Level Security
Using weblock s Servlet Filters for Application-Level Security September 2006 www.2ab.com Introduction Access management is a simple concept. Every business has information that needs to be protected from
An Approach for Generating Concrete Test Cases Utilizing Formal Specifications of Web Applications
An Approach for Generating Concrete Test Cases Utilizing Formal Specifications of Web Applications Khusbu Bubna RC Junit concrete test cases suitable for execution on the implementation. The remainder
Online shopping store
Online shopping store 1. Research projects: A physical shop can only serves the people locally. An online shopping store can resolve the geometrical boundary faced by the physical shop. It has other advantages,
High Level Design Distributed Network Traffic Controller
High Level Design Distributed Network Traffic Controller Revision Number: 1.0 Last date of revision: 2/2/05 22c:198 Johnson, Chadwick Hugh Change Record Revision Date Author Changes 1 Contents 1. Introduction
Toward A Taxonomy of Techniques to Detect Cross-site Scripting and SQL Injection Vulnerabilities
NCSU CSC TR 2008-4 1 Toward A Taxonomy of Techniques to Detect Cross-site Scripting and SQL Injection Vulnerabilities Yonghee SHIN, Laurie WILLIAMS, Members, IEEE Abstract Since 2002, over half of reported
Qlik REST Connector Installation and User Guide
Qlik REST Connector Installation and User Guide Qlik REST Connector Version 1.0 Newton, Massachusetts, November 2015 Authored by QlikTech International AB Copyright QlikTech International AB 2015, All
XML Processing and Web Services. Chapter 17
XML Processing and Web Services Chapter 17 Textbook to be published by Pearson Ed 2015 in early Pearson 2014 Fundamentals of http://www.funwebdev.com Web Development Objectives 1 XML Overview 2 XML Processing
TechComplete Test Productivity Pack (TPP) Backup Process and Data Restoration
Introduction The TPP backup feature backs up all TPP data folders on to a storage device which can be used to recover data in case of problems with the TPP server. TPP data folders include TPP server data,
Web Presentation Layer Architecture
Chapter 4 Web Presentation Layer Architecture In this chapter we provide a discussion of important current approaches to web interface programming based on the Model 2 architecture [59]. From the results
MyOra 3.0. User Guide. SQL Tool for Oracle. Jayam Systems, LLC
MyOra 3.0 SQL Tool for Oracle User Guide Jayam Systems, LLC Contents Features... 4 Connecting to the Database... 5 Login... 5 Login History... 6 Connection Indicator... 6 Closing the Connection... 7 SQL
<Insert Picture Here> Hudson Security Architecture. Winston Prakash. Click to edit Master subtitle style
Hudson Security Architecture Click to edit Master subtitle style Winston Prakash Hudson Security Architecture Hudson provides a security mechanism which allows Hudson Administrators
Finding Execution Faults in Dynamic Web Application
International Journal of Information and Computation Technology. ISSN 0974-2239 Volume 4, Number 5 (2014), pp. 445-452 International Research Publications House http://www. irphouse.com /ijict.htm Finding
UML/OCL based Design and Analysis of Role-Based Access Control Policies
UML/OCL based Design and Analysis of Role-Based Access Control Policies Oliver Hofrichter, Martin Gogolla, and Karsten Sohr University of Bremen, Computer Science Department Database Systems Group, D-28334
MDA and Analysis of Web Applications
MDA and Analysis of Web Applications Behzad Bordbar and Kyriakos Anastasakis School of Computer Science, University of Birmingham, Birmingham, B15 2TT, UK {B.Bordbar,K.Anastasakis}@cs.bham.ac.uk Abstract.
CSCI110 Exercise 4: Database - MySQL
CSCI110 Exercise 4: Database - MySQL The exercise This exercise is to be completed in the laboratory and your completed work is to be shown to the laboratory tutor. The work should be done in week-8 but
CHAPTER - 3 WEB APPLICATION AND SECURITY
CHAPTER - 3 WEB APPLICATION AND SECURITY 3.1 Introduction Web application or Wepapp is the general term that is normally used to refer to all distributed web-based applications. According to the more technical
Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security
Is Drupal secure? A high-level perspective on web vulnerabilities, Drupal s solutions, and how to maintain site security Presented 2009-05-29 by David Strauss Thinking Securely Security is a process, not
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms
Using Database Metadata and its Semantics to Generate Automatic and Dynamic Web Entry Forms Mohammed M. Elsheh and Mick J. Ridley Abstract Automatic and dynamic generation of Web applications is the future
Time Monitoring Tool Software Requirements Specifications. Version <1.0>
Time Monitoring Tool Software Requirements Specifications Version Revision History Date Version Description Author First version Martin Robillard Page 2 of 18 Table of Contents
IBM Operational Decision Manager Version 8 Release 5. Getting Started with Business Rules
IBM Operational Decision Manager Version 8 Release 5 Getting Started with Business Rules Note Before using this information and the product it supports, read the information in Notices on page 43. This
ICE Trade Vault. Public User & Technology Guide June 6, 2014
ICE Trade Vault Public User & Technology Guide June 6, 2014 This material may not be reproduced or redistributed in whole or in part without the express, prior written consent of IntercontinentalExchange,
SelectSurvey.NET User Manual
SelectSurvey.NET User Manual Creating Surveys 2 Designing Surveys 2 Templates 3 Libraries 4 Item Types 4 Scored Surveys 5 Page Conditions 5 Piping Answers 6 Previewing Surveys 7 Managing Surveys 7 Survey
Sports Management Information Systems. Camilo Rostoker November 22, 2002
Sports Management Information Systems Camilo Rostoker November 22, 2002 Introduction We are in the information age The availability of technology has brought forth a new problem domain how do we manage
A COMBINED FINE-GRAINED AND ROLE-BASED ACCESS CONTROL MECHANISM HONGI CHANDRA TJAN. Bachelor of Science. Oklahoma State University
A COMBINED FINE-GRAINED AND ROLE-BASED ACCESS CONTROL MECHANISM By HONGI CHANDRA TJAN Bachelor of Science Oklahoma State University Stillwater, Oklahoma 200 Submitted to the faculty of the Graduate College
UML Modelling of Automated Business Processes with a Mapping to BPEL4WS
UML Modelling of Automated Business Processes with a Mapping to BPEL4WS Tracy Gardner IBM UK Laboratories, Hursley Park, Winchester, SO21 2JN, UK [email protected] Abstract. The Business Process Execution
SYSTEM DEVELOPMENT AND IMPLEMENTATION
CHAPTER 6 SYSTEM DEVELOPMENT AND IMPLEMENTATION 6.0 Introduction This chapter discusses about the development and implementation process of EPUM web-based system. The process is based on the system design
Development of Tool Extensions with MOFLON
Development of Tool Extensions with MOFLON Ingo Weisemöller, Felix Klar, and Andy Schürr Fachgebiet Echtzeitsysteme Technische Universität Darmstadt D-64283 Darmstadt, Germany {weisemoeller klar schuerr}@es.tu-darmstadt.de
Open Source egovernment Reference Architecture Osera.modeldriven.org. Copyright 2006 Data Access Technologies, Inc. Slide 1
Open Source egovernment Reference Architecture Osera.modeldriven.org Slide 1 Caveat OsEra and the Semantic Core is work in progress, not a ready to use capability Slide 2 OsEra What we will cover OsEra
WIRIS quizzes web services Getting started with PHP and Java
WIRIS quizzes web services Getting started with PHP and Java Document Release: 1.3 2011 march, Maths for More www.wiris.com Summary This document provides client examples for PHP and Java. Contents WIRIS
PROJECT MANAGEMENT SYSTEM
Requirement Analysis Document v.2 14.12.2009 CENG-401 SOFTWARE ENGINEER PROJECT MANAGEMENT SYSTEM (Project Manager) Ahmet Edip SEÇKİN 07010555 (Developer) Erhan ŞEN 07010507 (Developer) Semih Serdar CENGİZOĞLU
YubiKey Authentication Module Design Guideline
YubiKey Authentication Module Design Guideline Yubico Application Note Version 1.0 May 7, 2012 Introduction Disclaimer Yubico is the leading provider of simple, open online identity protection. The company
Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools
Automatic Generation of Consistency-Preserving Edit Operations for MDE Tools Michaela Rindt, Timo Kehrer, Udo Kelter Software Engineering Group University of Siegen {mrindt,kehrer,kelter}@informatik.uni-siegen.de
Getting Started Guide Testable Architecture
Getting Started Guide Testable Architecture by Gary Brown, Jeff Yu, and Jeff DeLong 1. Overview... 1 2. Installation... 2 2.1. Installation Instructions... 2 2.2. Importing Samples into Eclipse... 2 3.
FACULTY STUDENT MENTORSHIP PROGRAM. A Thesis. Presented to the. Faculty of. San Diego State University. In Partial Fulfillment
FACULTY STUDENT MENTORSHIP PROGRAM A Thesis Presented to the Faculty of San Diego State University In Partial Fulfillment of the Requirements for the Degree Master of Science in Computer Science by Pooja
Criteria for web application security check. Version 2015.1
Criteria for web application security check Version 2015.1 i Content Introduction... iii ISC- P- 001 ISC- P- 001.1 ISC- P- 001.2 ISC- P- 001.3 ISC- P- 001.4 ISC- P- 001.5 ISC- P- 001.6 ISC- P- 001.7 ISC-
IBM Unica emessage Version 8 Release 6 February 13, 2015. User's Guide
IBM Unica emessage Version 8 Release 6 February 13, 2015 User's Guide Note Before using this information and the product it supports, read the information in Notices on page 403. This edition applies to
MDA Overview OMG. Enterprise Architect UML 2 Case Tool by Sparx Systems http://www.sparxsystems.com. by Sparx Systems
OMG MDA Overview by Sparx Systems All material Sparx Systems 2007 Sparx Systems 2007 Page:1 Trademarks Object Management Group, OMG, CORBA, Model Driven Architecture, MDA, Unified Modeling Language, UML,
1. Introduction. 2. Web Application. 3. Components. 4. Common Vulnerabilities. 5. Improving security in Web applications
1. Introduction 2. Web Application 3. Components 4. Common Vulnerabilities 5. Improving security in Web applications 2 What does World Wide Web security mean? Webmasters=> confidence that their site won
Webapps Vulnerability Report
Tuesday, May 1, 2012 Webapps Vulnerability Report Introduction This report provides detailed information of every vulnerability that was found and successfully exploited by CORE Impact Professional during
Common Warehouse Metamodel (CWM): Extending UML for Data Warehousing and Business Intelligence
Common Warehouse Metamodel (CWM): Extending UML for Data Warehousing and Business Intelligence OMG First Workshop on UML in the.com Enterprise: Modeling CORBA, Components, XML/XMI and Metadata November
Detection of SQL Injection Attacks by Combining Static Analysis and Runtime Validation
Detection of SQL Injection Attacks by Combining Static Analysis and Runtime Validation Witt Yi Win, and Hnin Hnin Htun Abstract SQL injection attack is a particularly dangerous threat that exploits application
Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks
Application of XML Tools for Enterprise-Wide RBAC Implementation Tasks Ramaswamy Chandramouli National Institute of Standards and Technology Gaithersburg, MD 20899,USA 001-301-975-5013 [email protected]
Oracle Service Bus Examples and Tutorials
March 2011 Contents 1 Oracle Service Bus Examples... 2 2 Introduction to the Oracle Service Bus Tutorials... 5 3 Getting Started with the Oracle Service Bus Tutorials... 12 4 Tutorial 1. Routing a Loan
Model Driven Security: Foundations, Tools, and Practice
Model Driven Security: Foundations, Tools, and Practice David Basin, Manuel Clavel, and ETH Zurich, IMDEA Software Institute Thursday 1st, 2011 Outline I 1 Models Analysis. Types. 2 The Object Constraint
SQL Injection Protection by Variable Normalization of SQL Statement
Page 1 of 9 SQL Injection Protection by Variable Normalization of SQL Statement by: Sam M.S. NG, 0 http://www.securitydocs.com/library/3388 "Make everything as simple as possible, but not simpler." --
