Zranitelnost Javy na odepření služby při vyhledávání s regulárními výrazy
Java vulnerability to regular expression denial of service
Type of document
bakalářská prácebachelor thesis
Author
Andrey Olos
Supervisor
Guth Ondřej
Opponent
Máj Petr
Field of study
Bezpečnost a informační technologieStudy program
Informatika 2009Institutions assigning rank
katedra počítačových systémůRights
A university thesis is a work protected by the Copyright Act. Extracts, copies and transcripts of the thesis are allowed for personal use only and at one?s own expense. The use of thesis should be in compliance with the Copyright Act http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf and the citation ethics http://knihovny.cvut.cz/vychova/vskp.htmlVysokoškolská závěrečná práce je dílo chráněné autorským zákonem. Je možné pořizovat z něj na své náklady a pro svoji osobní potřebu výpisy, opisy a rozmnoženiny. Jeho využití musí být v souladu s autorským zákonem http://www.mkcr.cz/assets/autorske-pravo/01-3982006.pdf a citační etikou http://knihovny.cvut.cz/vychova/vskp.html
Metadata
Show full item recordAbstract
V tomto projektu studujeme zranitelné vstupy regulárních výrazů v implementaci platformy Java, známé také jako OpenJDK. Tyto vstupy mohou způsobit útok regulárního výrazu Denial of Service na systém, který by mohl způsobit, že cílový systém nebude dostupný skutečným uživatelům. OpenJDK je považováno za chráněné proti ReDoS útoku, zejména ve verzích 9 a vyšších, kde byla přidána optimalizace algoritmů pro párování regulárních výrazů. Ale i s tímto vylepšením ukážeme, že stále existují zranitelné vstupy regulárních výrazů, které mohou způsobit exponenciální problémy za běhu a potenciálně způsobit odmítnutí služby, a to i v nejnovější verzi OpenJDK. V této práci uvidíte, které optimalizace byly přidány ve verzi 9, jak tato vylepšení ovlivňují OpenJDK dnes a co tyto optimalizace nestihly pokrýt. Pro každý ze zranitelných vstupů regulárních výrazů dostanete také vývojový diagram, který ukazuje proces párovacích algoritmů, proč dochází k exponenciálním problémům za běhu a možná řešení. In this project, we study vulnerable regular expression inputs in the Javas platform implementation, also known as OpenJDK. These inputs can cause a Regular expression Denial of Service attack on the system which could make a targeted system unavailable to actual users. OpenJDK is considered protected against ReDoS attack, especially in versions 9 and higher where optimization of the regular-expression matching algorithms was added. But even with this improvement, we will show that there are still vulnerable regex inputs, which can cause exponential run-time problems and potentially cause a denial of service, even in the latest version of OpenJDK. In this thesis, you will see which optimizations were added in version 9, how these improvements affect OpenJDK today, and what these optimizations did not manage to cover. For each of the vulnerable regex inputs you will also be given a flow chart that shows the process of the matching algorithms, why the exponential run-time problems occur, and possible solutions.
Collections
- Bakalářské práce - 18104 [348]