Az OWASP Top 10 a webalkalmazások biztonsági kockázatainak legszélesebb körben hivatkozott listája, amelyet az Open Worldwide Application Security Project (OWASP) , egy elismert nonprofit szervezet ad ki. Biztonsági szakembereknek szól, de az általa leírt kockázatoknak közvetlen üzleti következményei vannak: adatszivárgás, leállás, bírságok és a bizalom elvesztése. Ez az útmutató minden kategóriát közérthetően magyaráz el, hogy a megfelelő kérdéseket tehesd fel a saját alkalmazásaidról.

Az OWASP néhány évente felülvizsgálja a listát, ahogy a támadási minták változnak. Az alábbi kategóriák a jól bevált 2021-es változatot tükrözik, amely a legtöbb csapat számára továbbra is a mérvadó hivatkozás; a mögöttes kockázatok stabilak, még ha a sorrendjük el is tolódik.

Röviden

  • Az OWASP Top 10 a webalkalmazások legkritikusabb biztonsági kockázatainak iparági szabvány listája
  • A legnagyobb kategóriák a hozzáférés-kezelésről, a gyenge titkosításról, az injekciós hibákról és a korán meghozott nem biztonságos tervezési döntésekről szólnak
  • E kockázatok többsége néhány alapvető okra vezethető vissza: hiányzó ellenőrzések, hibás konfiguráció, elavult komponensek és nem megfelelő felügyelet
  • Nem kell műszaki szakembernek lenned ahhoz, hogy elszámoltasd a csapatodat vagy a szolgáltatódat mindegyik kezeléséért

1. Hibás hozzáférés-vezérlés (Broken Access Control)

Mit jelent: A felhasználók olyasmit tehetnek vagy láthatnak, amit nem lenne szabad, például egy másik ügyfél adatainak megtekintése egy azonosító URL-ben történő módosításával, vagy egy adminisztrátori funkció elérése anélkül, hogy admin lennének.

Miért fontos: Ez következetesen az egyik leggyakoribb és legkárosabb kockázat. Közvetlenül adatszivárgáshoz és jogosulatlan műveletekhez vezet.

Kérdezd meg a csapatodat: A jogosultságokat minden kérésnél a szerveren érvényesítik, nem csak elrejtik a felületen?

2. Kriptográfiai hibák (Cryptographic Failures)

Mit jelent: Az érzékeny adatok (jelszavak, fizetési adatok, személyes információk) nincsenek megfelelően védve, például nincsenek titkosítva átvitel közben vagy nyugalmi állapotban, vagy gyenge, illetve elavult algoritmusokkal védettek.

Miért fontos: A kiszivárgott érzékeny adatok adatvédelmi incidenseket váltanak ki, és a GDPR értelmében potenciális bírságokkal és kötelező bejelentéssel járnak.

Kérdezd meg a csapatodat: Minden forgalom HTTPS-en keresztül zajlik, és az érzékeny adatok nyugalmi állapotban modern algoritmusokkal titkosítottak?

3. Injekció (Injection)

Mit jelent: A nem megbízható bemenetet parancsként kezelik, lehetővé téve a támadónak, hogy adatbázist manipuláljon (SQL injection) vagy nem kívánt műveleteket futtasson. A cross-site scripting (XSS) is ide tartozik.

Miért fontos: Az injekció egész adatbázisokat tehet közzé vagy semmisíthet meg, és eltéríthet felhasználói munkameneteket.

Kérdezd meg a csapatodat: Paraméterezett lekérdezéseket használunk, és validáljuk, valamint kódoljuk az összes felhasználói bemenetet?

4. Nem biztonságos tervezés (Insecure Design)

Mit jelent: A biztonsági gyengeség magában a tervezésben rejlik, nem csak a kódban, például egy visszaélésre alkalmas jelszó-visszaállítási folyamat, vagy egy fizetési folyamat, amely megbízik a böngésző által küldött árban.

Miért fontos: A tervezési hibákat nem lehet utólag javítással megszüntetni; a funkció újragondolását igénylik. A biztonságot már az elején figyelembe kell venni.

Kérdezd meg a csapatodat: Elvégezzük a fontos funkciók fenyegetésmodellezését, mielőtt megépítenénk őket?

5. Biztonsági félrekonfigurálás (Security Misconfiguration)

Mit jelent: Nem biztonságos alapértelmezett beállítások, feleslegesen bekapcsolva hagyott funkciók, túl részletes hibaüzenetek vagy hiányzó biztonsági fejlécek.

Miért fontos: A hibás konfiguráció rendkívül gyakori, és a támadók számára gyakran könnyű megtalálni és kihasználni.

Kérdezd meg a csapatodat: Eltávolítottuk az alapértelmezett fiókokat, letiltottuk a nem használt funkciókat, és beállítottuk a biztonsági fejléceket?

6. Sebezhető és elavult komponensek (Vulnerable and Outdated Components)

Mit jelent: Az alkalmazás olyan harmadik féltől származó könyvtárakra, keretrendszerekre vagy bővítményekre támaszkodik, amelyek ismert sebezhetőségeket tartalmaznak, és nem frissítették őket.

Miért fontos: A támadók nagy léptékben keresik az ismert sebezhető komponenseket. Sok jelentős incidens egy nem javított függőségre vezethető vissza.

Kérdezd meg a csapatodat: Nyomon követjük a függőségeinket, és haladéktalanul frissítjük őket, amikor sebezhetőségeket hoznak nyilvánosságra?

7. Azonosítási és hitelesítési hibák (Identification and Authentication Failures)

Mit jelent: Gyenge bejelentkezési rendszerek: rossz jelszószabályok, nincs védelem a nyers erővel (brute force) végzett támadások ellen, gyenge munkamenet-kezelés, vagy hiányzó többtényezős hitelesítés.

Miért fontos: A feltört fiókok közvetlen utat jelentenek az adatokhoz és a funkciókhoz.

Kérdezd meg a csapatodat: Kínálunk többtényezős hitelesítést (MFA), és védekezünk a credential stuffing és a brute force ellen?

8. Szoftver- és adatintegritási hibák (Software and Data Integrity Failures)

Mit jelent: Nem ellenőrzött forrásból származó kódban, frissítésekben vagy adatokban való megbízás, például egy nem biztonságos szoftverfrissítési mechanizmus vagy egy feltört build folyamat (ellátási lánc kockázat).

Miért fontos: Az ellátási lánc elleni támadások egyre gyakoribbak, és egyetlen megbízható csatornán keresztül egyszerre sok áldozatot veszélyeztethetnek.

Kérdezd meg a csapatodat: Ellenőrizzük a frissítések és függőségek integritását, és biztosítjuk a build és a telepítési folyamatunkat?

9. Biztonsági naplózási és felügyeleti hibák (Security Logging and Monitoring Failures)

Mit jelent: A biztonsági szempontból releváns események nem naplózása vagy nem figyelése, így a támadások hosszú ideig észrevétlenek maradnak.

Miért fontos: Nem tudsz reagálni arra, amit nem látsz. A gyenge felügyelet miatt maradnak az incidensek gyakran hónapokig felderítetlenül.

Kérdezd meg a csapatodat: Naplózzuk a biztonsági eseményeket, és riasztunk gyanús tevékenység esetén?

10. Szerveroldali kéréshamisítás (SSRF)

Mit jelent: A támadó ráveszi a szervert, hogy olyan rendszerek felé küldjön kéréseket, amelyekhez nem lenne szabad, potenciálisan olyan belső szolgáltatásokat elérve, amelyeknek nem szabadna nyilvánosnak lenniük.

Miért fontos: Az SSRF felfedheti a belső infrastruktúrát és a felhő metaadatait, és jelentős incidensekben is szerepet játszott.

Kérdezd meg a csapatodat: Validáljuk és korlátozzuk azokat a célpontokat, amelyeket a szerverünk hívhat?

Legfontosabb tanulságok

  • Az OWASP Top 10 a webalkalmazások biztonsági kockázatainak mérvadó hivatkozása; a legtöbb tétel hiányzó ellenőrzésekre, hibás konfigurációra, elavult komponensekre és gyenge felügyeletre vezethető vissza.
  • A hozzáférés-vezérlés, a titkosítás, az injekció és a nem biztonságos tervezés a legnagyobb hatású kategóriák.
  • Nem kell műszaki szakembernek lenned ahhoz, hogy elszámoltasd a csapatodat vagy a szolgáltatódat minden kockázatért; a fenti kérdések jó kiindulópontot jelentenek.
  • A legmegbízhatóbb módja annak, hogy megtudd, hol állsz, egy független teszt.

Teszteld a webhelyed az OWASP Top 10 ellen

A fenti kérdések elindítják a beszélgetést; egy professzionális teszt megadja a választ. Az alkalmazásbiztonsági tesztelés statikus kódelemzést, dinamikus futásidejű tesztelést, függőség- és ellátásilánc-auditot, valamint hitelesítési és titkosítási felülvizsgálatot egyesít, hogy megtalálja ezeket a kockázatokat a valódi alkalmazásodban, kockázat szerint besorolt megállapításokkal és javítási útmutatással. Egy élő webhely biztonságossá tételének tágabb áttekintéséért olvasd el a webhelybiztonsági audit útmutatót brit vállalkozásoknak .

Gyakran ismételt kérdések (GYIK)

Mi az OWASP Top 10? Ez a tíz legkritikusabb webalkalmazás-biztonsági kockázat rendszeresen frissített listája, amelyet az Open Worldwide Application Security Project (OWASP) ad ki. Ez az iparági szabvány hivatkozás az alkalmazásbiztonsági munka priorizálásához.

Az OWASP Top 10 egy teljes biztonsági szabvány? Nem. Ez egy tudatosító és priorizáló dokumentum, amely a legkritikusabb kockázatokat fedi le, nem pedig egy kimerítő ellenőrzőlista. Használd kiindulópontként, mélyebb tesztelés és biztonságos fejlesztési gyakorlatok mellett.

Milyen gyakran frissül az OWASP Top 10? Az OWASP néhány évente felülvizsgálja, ahogy az adatok és a támadási minták változnak. A kategóriák fejlődnek és átrendeződnek, de a mögöttes kockázatok nagyrészt stabilak maradnak, így a fogalmak a felülvizsgálatok között is relevánsak maradnak.

Melyik OWASP-kockázat a legveszélyesebb? Alkalmazásonként változik, de a hibás hozzáférés-vezérlés és az injekció történelmileg a leggyakoribbak és legkárosabbak közé tartoztak. A számodra helyes prioritás attól függ, hogyan épül fel és milyen mértékben van kitéve a konkrét alkalmazásod.

Honnan tudom, hogy az alkalmazásomat érinti-e? Az egyetlen megbízható módszer a tesztelés: statikus elemzés, dinamikus tesztelés és függőségaudit a valódi kódbázisod és futó alkalmazásod alapján. Egy professzionális alkalmazásbiztonsági teszt ezekhez a kategóriákhoz rendeli a kockázataidat, priorizált javításokkal.