3,721 research outputs found

    Relational Constraint Driven Test Case Synthesis for Web Applications

    Full text link
    This paper proposes a relational constraint driven technique that synthesizes test cases automatically for web applications. Using a static analysis, servlets can be modeled as relational transducers, which manipulate backend databases. We present a synthesis algorithm that generates a sequence of HTTP requests for simulating a user session. The algorithm relies on backward symbolic image computation for reaching a certain database state, given a code coverage objective. With a slight adaptation, the technique can be used for discovering workflow attacks on web applications.Comment: In Proceedings TAV-WEB 2010, arXiv:1009.330

    Role-Based Access-Control for Databases

    Get PDF
    Liikudes ĂŒha enam paberivaba ari suunas, hoitakse ĂŒha enam tundlikku informatsiooni andmebaasides. Sellest tulenevalt on andmebaasid rĂŒndajatele vÀÀrtuslik sihtmĂ€rk. Levinud meetod andmete kaitseks on rollipĂ”hine ligipÀÀsu kontroll (role-based access control), mis piirab sĂŒsteemi kasutajate Ă”iguseid vastavalt neile omistatud rollidele. Samas on turvameetmete realiseerimine arendajate jaoks aeganĂ”udev kĂ€sitöö, mida teostatakse samaaegselt rakenduse toimeloogika realiseerimisega. Sellest tulenevalt on raskendatud turva vajaduste osas kliendiga lĂ€birÀÀkimine projekti algfaasides. See omakorda suurendab projekti reaalsete arenduskulude kasvamise riski, eriti kui ilmnevad turvalisuse puudujÀÀgid realisatsioonis. TĂ€napĂ€eva veebirakendustes andmebaasi ĂŒhenduste puulimine (connec-tion pooling ), kus kasutatakse ĂŒht ja sama ĂŒhendust erinevate kasutajate teenindamiseks, rikub vĂ€hima vajaliku Ă”iguse printsiipi. KĂ”ikidel ĂŒhendunud kasutajatel on ligipÀÀs tĂ€pselt samale hulgale andmetele, mille tulemusena vĂ”ib lekkida tundlik informatsioon (nĂ€iteks SQLi sĂŒstimine (SQL injection ) vĂ”i vead rakenduses). Lahenduseks probleemile pakume vĂ€lja vahendid rollipĂ”hise ligipÀÀsu kontorolli disainimiseks tarkvara projekteerimise faasis. RollipĂ”hise ligipÀÀsu kontorolli modelleerimiseks kasutame UML'i laiendust SecureUML. Antud mudelist on vĂ”imalik antud töö raames valminud vahenditega genereerida koodi, mis kontrollib ligipÀÀsu Ă”iguseid andmebaasi tasemel. Antud madaltasemekontroll vĂ€hendab riski, et kasutajad nĂ€evad andmeid, millele neil ligipÀÀsu Ă”igused puuduvad. Antud töös lĂ€biviidud uuring nĂ€itas, et mudelipĂ”hine turvalisuse arendamise kvaliteet on kĂ”rgem vĂ”rreldes programmeerijate poolt kirjutatud koodiga. Kuna turvamudel on loodud projekteerimise faasis on selle semantiline tĂ€ielikkus ja korrektsus kĂ”rge, millest tulenevalt on seda kerge lugeda ja muuta ning seda on lihtsam kasutada arendajate ja klientide vahelises suhtluses.With the constant march towards a paperless business environment, database systems are increasingly being used to hold more and more sensitive information. This means they present an increasingly valuable target for attackers. A mainstream method for information system security is Role-based Access Control (RBAC), which restricts system access to authorised users. However the implementation of the RBAC policy remains a human intensive activity, typically, performed at the implementation stage of the system development. This makes it difficult to communicate security solutions to the stakeholders earlier and raises the system development cost, especially if security implementation errors are detected. The use of connection pooling in web applications, where all the application users connect to the database via the web server with the same database connection, violates the the principle of minimal privilege. Every connected user has, in principle, access to the same data. This may leave the sensitive data vulnerable to SQL injection attacks or bugs in the application. As a solution we propose the application of the model-driven development to define RBAC mechanism for data access at the design stages of the system development. The RBAC model created using the SecureUML approach is automatically translated to source code, which implements the modelled security rules at the database level. Enforcing access-control at this low level limits the risk of leaking sensitive data to unauthorised users. In out case study we compared SecureUML and the traditional security model, written as a source code, mixed with business logic and user-interface statements. The case study showed that the model-driven security development results in significantly better quality for the security model. Hence the security model created at the design stage contains higher semantic completeness and correctness, it is easier to modify and understand, and it facilitates a better communication of security solutions to the system stakeholders than the security model created at the implementation stage
    • 

    corecore