Sažetak | Internet je revolucionarizirao način na koji se povezujemo, komuniciramo i poslujemo u današnjem digitalnom dobu.
U središtu te međusobne povezanosti nalaze se web aplikacije, koje su postale sastavni dio naše svakodnevice. Međutim, sve veća ovisnost o web aplikacijama donosi i značajne sigurnosne izazove.
Zbog raznih grešaka i manjkavosti u implementaciji, dizajnu, upotrebi ili upravljanju web aplikacijama dolazi do ranjivosti.
Posljedice sigurnosnih propusta mogu biti razorne, rezultirajući financijskim gubicima, narušenim ugledom i povjerenjem korisnika. Stoga je ključno razvijati i održavati sigurne web aplikacije kako bi se zaštitili od potencijalnih prijetnji.
Da bi se osigurala adekvatna zaštita web aplikacija, neophodno je razumjeti greške i sigurnosne propuste koji mogu nastati prilikom njihovog razvoja, prepoznati ranjivosti koje one mogu izazvati te poznavati odgovarajuće napade i naučiti kako se zaštititi od njih.
U tom smislu penetracijsko testiranje web aplikacija postaje važna praksa u području kibernetičke sigurnosti. Radi se o sistematičnom i kontroliranom pristupu procjeni sigurnosti sustava, mreža ili aplikacija. Uključuje simulaciju stvarnih napada kako bi se otkrile ranjivosti, slabosti i potencijalne ulazne točke koje bi mogle biti iskorištene od strane zlonamjernih napadača.
U ovom radu istražene su ranjivosti nesigurne deserijalizacije te je stavljen fokus na njihov utjecaj na web aplikacije. Prikazane su smjernice i navedene dobre prakse kojih se razvojni inženjeri web aplikacija trebaju pridržavati kako ne bi uveli sigurnosne propuste vezane za deserijalizaciju u razvijane aplikacije.
Istražene su metode i tehnike detekcije i iskorištavanja ranjivosti nesigurne deserijalizacije koje se mogu upotrijebiti prilikom penetracijskog testa.
Također predstavljena su dva programska rješenja za automatizaciju tih procesa.
Prvo razvijeno programsko rješenje je dodatak za alat BurpSuite koji služi za automatsku detekciju serijaliziranih Python Pickle objekata u HTTP zahtjevima. Drugi predstavljeni alat je alat naredbenog retka koji služi za automatizaciju procesa identifikacije i iskorištavanja ranjivosti nesigurne deserijalizacije u Python aplikacijama. |
Sažetak (engleski) | The internet has revolutionized the way we connect, communicate, and conduct business in today's digital age. It serves as a vast network of interconnected devices, enabling seamless exchange of information and services. At the heart of this interconnectedness are web applications, which have become an integral part of our daily lives. However, the growing reliance on web applications also brings significant security challenges. Due to various errors in their implementation, design, usage, or management, web applications become susceptible to vulnerabilities. The consequences of security flaws can be devastating, resulting in financial losses, damaged reputation, and loss of user trust. Therefore, it is crucial to develop and maintain secure web applications to protect against potential threats. To ensure adequate protection of web applications, it is necessary to understand the errors that may arise during their development, identify the vulnerabilities they can cause, and recognize appropriate attacks while learning how to defend against them. In this regard, penetration testing of web applications becomes an important practice in the field of cybersecurity. It involves a systematic and controlled approach to assessing the security of systems, networks, or applications. It includes simulating real-world attacks to discover vulnerabilities, weaknesses, and potential entry points that could be exploited by malicious attackers. This paper explores the vulnerabilities of insecure deserialization with a focus on their impact on web applications. Guidelines and best practices are provided for web application developers to avoid introducing deserialization-related security flaws in their applications. Various methods and techniques for detecting and exploiting insecure deserialization vulnerabilities that can be utilized during penetration testing are explored. Additionally, two software solutions for automating these processes are presented. The first developed program is a Burp Suite extension that enables automatic detection of serialized Python Pickle objects in HTTP requests. The second developed tool is a command-line utility that automates the identification and exploitation of insecure deserialization vulnerabilities in Python applications. |