Autor: Bc. Marián Babic
Školiteľ: MSc. Terézia Mézešová
Abstrakt
Programovací jazyk JavaScript patrí k trom základným technológiám (spolu s technológiami HTML a CSS), na ktorých sú postavené moderné webové aplikácie. Aplikácie môžu obsahovať chyby, obzvlášť citlivo sú však vnímané bezpečnostné zraniteľnosti. Za zraniteľnosť aplikácie môžeme vo všeobecnosti považovať každú chybu alebo nedokonalosť v programe, ktorá môže viesť k porušeniu dôvernosti, integrity alebo dostupnosti ľubovoľnej časti systému. Následky zneužitia zraniteľnosti aplikácie môžu byť rôznorodé, k tým najzávažnejším patria znefunkčnenie aplikácie alebo únik citlivých informácií. Keďže JavaScript je použitý vo veľkej väčšine webových aplikácií, jeho zraniteľnostiam je potrebné venovať veľkú pozornosť. V tejto práci sme sa zamerali na vybrané triedy zraniteľností, predovšetkým na injekcie, Cross-Site Scripting (XSS) a podvrhnutie požiadavky medzi rôznymi stránkami (CrossSite Request Forgery). Pri týchto zraniteľnostiach sme analyzovali spôsob ich detekcie a možné prístupy k ich odstráneniu. Následne sme implementovali nástroj, ktorý tieto zraniteľnosti v zdrojovom kóde aplikácie deteguje a ponúka možnosti na ich opravu. Detekcia prebieha formou statickej analýzy zdrojového kódu v reálnom čase, pričom podporované programovacie jazyky sú JavaScript a TypeScript.
Ciele
- Analyzovať a spracovať vybrané triedy zraniteľností a spôsob ich detekcie v JavaScript webových aplikáciách
- Analyzovať a spracovať prístupy k odstráneniu vybraných tried zraniteľností v JavaScript webových aplikáciách
- Navrhnúť, implementovať, a vyhodnotiť nástroj na opravu vybraných tried zraniteľností detekovaných v JavaScript webových aplikáciách
Literatúra
- Ryu, S., Park, J., Park, J .: Towards Analysis and Bug Finding of JavaScript Web Applications in the Wild. IEEE Softw. 1-1 (2018).
- Sherman, E., Dwyer, M.B .: Structurally Defined Conditional Data-Flow Static Analysis. In: International Conference on Tools and Algorithms for the Construction and Analysis of Systems. pp. 249-265. Springer, Cham (2018).
- Saoji, T., Austin, T.H., Flanagan, C .: Using Precise Taint Tracking for Auto- sanitization. In: Proceedings of the 2017 Workshop on Programming Languages and Analysis for Security – PLAS ’17. pp. 15-24. ACM Press, New York, New York, USA (2017).
- Nicolay, J., Spruyt, V., De Roover, C .: Static Detection of User-specified Security Vulnerabilities in Client-side JavaScript. In: Proceedings of the 2016 ACM Workshop on Programming Languages and Analysis for Security – PLAS’16. pp. 3-13 (2016).
Priebeh práce
Zatiaľ nezverejnené