mi az OWASP?
Az Open Web Application Security Project, vagy OWASP, egy nemzetközi non-profit szervezet, amely a webes alkalmazások biztonságát szolgálja. Az OWASP egyik alapelve, hogy minden anyaguk szabadon hozzáférhető és könnyen hozzáférhető legyen a weboldalukon, így bárki számára lehetővé válik a saját webes alkalmazásbiztonságának javítása. Az általuk kínált anyagok közé tartozik a dokumentáció, eszközök, videók, fórumok. Talán legismertebb projektjük az OWASP Top 10.
mi az OWASP Top 10?,
az OWASP Top 10 egy rendszeresen frissített jelentés, amely a webes alkalmazások biztonságával kapcsolatos biztonsági aggályokat vázolja fel, a 10 legkritikusabb kockázatra összpontosítva. A jelentést a világ minden tájáról származó biztonsági szakértők csoportja állítja össze. Az OWASP a Top 10-et “figyelemfelkeltő dokumentumnak” nevezi, és azt javasolja, hogy minden vállalat építse be a jelentést folyamataiba a biztonsági kockázatok minimalizálása és/vagy csökkentése érdekében.
Az alábbiakban az OWASP Top 10 2017 jelentésben jelentett biztonsági kockázatok találhatók:
1., Injection
az injekciós támadások akkor fordulnak elő, ha nem megbízható adatokat küldenek egy kódértelmezőnek egy űrlapbemeneten vagy más adatküldésen keresztül egy webes alkalmazáshoz. Például egy támadó beírhatja az SQL adatbázis kódját egy olyan űrlapba, amely egyszerű szöveges felhasználónevet vár. Ha az űrlapbevitel nincs megfelelően rögzítve, ez azt eredményezné, hogy az SQL kód végrehajtásra kerül. Ez az úgynevezett SQL injection támadás.
az injekciós támadások megelőzhetők a felhasználó által beküldött adatok validálásával és/vagy fertőtlenítésével., (Az érvényesítés a gyanús kinézetű adatok elutasítását jelenti, míg a fertőtlenítés az adatok gyanús kinézetű részeinek megtisztítását jelenti.) Ezenkívül egy adatbázis-kezelő beállíthatja a vezérlőket, hogy minimalizálja az injekciós támadás által feltárt információk mennyiségét.
2. Törött hitelesítés
A hitelesítési (bejelentkezési) rendszerek biztonsági rései hozzáférést biztosíthatnak a támadók számára a felhasználói fiókokhoz, sőt akár egy egész rendszert veszélyeztethetnek egy admin-fiók használatával., Például, a támadó vehet egy listát, amely több ezer ismert felhasználónév / jelszó kombinációk során kapott adatok megsértése, és egy script, hogy megpróbálja az összes ilyen kombinációk A bejelentkezési rendszer, hogy ha vannak olyan, hogy a munka.
néhány, a hitelesítési sebezhetőségek enyhítésére szolgáló stratégia kéttényezős hitelesítést (2FA) igényel, valamint korlátozza vagy késlelteti az ismételt bejelentkezési kísérleteket a sebességkorlátozás használatával.
3., Érzékeny Adatexpozíció
Ha a webes alkalmazások nem védik az olyan érzékeny adatokat, mint a pénzügyi információk és jelszavak, a támadók hozzáférhetnek ezekhez az adatokhoz, és eladják azokat aljas célokra. Az érzékeny információk ellopásának egyik népszerű módja az on-path támadás használata.
az adatexpozíció kockázata minimalizálható az összes érzékeny adat titkosításával, valamint az érzékeny információk gyorsítótárazásának* letiltásával. Ezenkívül a webalkalmazás-fejlesztőknek gondoskodniuk kell arról, hogy ne tároljanak szükségtelenül érzékeny adatokat.,
*a gyorsítótárazás az adatok ideiglenes tárolásának gyakorlata. Például a webböngészők gyakran gyorsítótárazzák a weboldalakat, így ha a felhasználó egy meghatározott időtartamon belül újra felkeresi ezeket, a böngészőnek nem kell letöltenie az oldalakat az internetről.
4. XML külső entitások (XEE)
Ez egy támadás egy webes alkalmazás ellen, amely elemzi az XML* bemenetet. Ez a bemenet hivatkozhat egy külső entitásra, amely megpróbálja kihasználni az értelmező sebezhetőségét. A “külső entitás” ebben az összefüggésben egy tárolóegységre, például merevlemezre utal., Egy XML értelmező lehet becsapták küld adatokat egy jogosulatlan külső entitás, amely képes átadni érzékeny adatokat közvetlenül a támadó.
A legjobb módja, hogy megakadályozzák ONLINE támadások, hogy a webes alkalmazások elfogadni egy kevésbé komplex típusú adatokat, mint például a JSON**, vagy legalábbis, hogy patch XML ąvé, illetve letiltja a külső szervezetek XML alkalmazás.
* az XML vagy Extensible Markup Language olyan jelölőnyelv, amely mind ember számára olvasható, mind géppel olvasható. Bonyolultsága és biztonsági sebezhetősége miatt számos webes alkalmazásban fokozatosan megszűnik a használat.,
* * a JavaScript Object Notation (JSON) egy egyszerű, ember által olvasható jelölés, amelyet gyakran használnak az adatok interneten történő továbbítására. Bár eredetileg a JavaScript számára készült, a JSON nyelv-agnosztikus, és számos különböző programozási nyelv értelmezhető.
5. Törött hozzáférés-vezérlés
A hozzáférés-vezérlés olyan rendszert jelent, amely szabályozza az információkhoz vagy funkciókhoz való hozzáférést. A törött hozzáférés-vezérlők lehetővé teszik a támadók számára, hogy megkerüljék az engedélyt, és olyan feladatokat hajtsanak végre, mintha privilegizált felhasználók, például rendszergazdák lennének., Például egy webes alkalmazás lehetővé teheti a felhasználó számára, hogy megváltoztassa, hogy melyik fiókba van bejelentkezve, egyszerűen az url egy részének megváltoztatásával, más ellenőrzés nélkül.
A hozzáférési vezérlők biztosíthatók annak biztosításával, hogy egy webes alkalmazás engedélyezési tokeneket használ*, és szigorú ellenőrzéseket állít be rájuk.
*számos szolgáltatás engedélyezési tokeneket ad ki a felhasználók bejelentkezésekor. Minden kiváltságos kérés, amelyet a felhasználó tesz, megköveteli, hogy az engedélyezési token jelen legyen. Ez egy biztonságos módja annak, hogy a felhasználó az, akinek mondják, anélkül, hogy folyamatosan be kellene írnia a bejelentkezési hitelesítő adatait.
6., Biztonsági tévhit
a biztonsági tévhit a leggyakoribb biztonsági rés a listán, gyakran az alapértelmezett konfigurációk használata vagy a túlzottan bőbeszédű hibák megjelenítése. Például egy alkalmazás túlságosan leíró hibákat jeleníthet meg a felhasználó számára, amelyek sebezhetőségeket tárhatnak fel az alkalmazásban. Ez enyhíthető a kódban lévő fel nem használt funkciók eltávolításával, valamint annak biztosításával, hogy a hibaüzenetek általánosabbak legyenek.
7., Cross-Site Scripting
Cross-site scripting sebezhetőségek fordulnak elő, ha a webes alkalmazások lehetővé teszik a felhasználók számára, hogy egyéni kódot egy url elérési utat, vagy egy weboldal, amely látható lesz a többi felhasználó. Ezt a sebezhetőséget ki lehet használni rosszindulatú JavaScript kód futtatásához az áldozat böngészőjében. Például egy támadó e-mailt küldhet egy olyan áldozatnak, amely úgy tűnik, hogy egy megbízható bankból származik, egy linkkel a bank webhelyére. Ez a link lehet néhány rosszindulatú JavaScript kódot címkézett rá a végén az url., Ha a bank webhelye nincs megfelelően védve a webhelyközi szkriptek ellen, akkor a rosszindulatú kódot az áldozat böngészőjében futtatják, amikor rákattintanak a linkre.
A webhelyközi szkriptek mérséklési stratégiái közé tartozik a nem megbízható HTTP-kérések elkerülése, valamint a felhasználó által generált tartalom validálása és/vagy fertőtlenítése. A modern webfejlesztő keretrendszerek, mint a ReactJS és a Ruby on Rails használata is nyújt némi beépített Cross-site scripting védelmet.
8. Bizonytalan Deserialization
Ez a fenyegetés a számos webes alkalmazást célozza meg, amelyek gyakran sorosítják és megsemmisítik az adatokat., A szerializáció azt jelenti, hogy objektumokat veszünk az alkalmazáskódból, majd azokat más célra használható formátumba konvertáljuk, például az adatok lemezre történő tárolását vagy streamelését. Deserialization éppen az ellenkezője: konvertáló serialized adatokat vissza objektumokat az alkalmazás használhatja. A szerializáció olyan, mint a bútorok dobozokba csomagolása egy lépés előtt, a dezerializáció pedig olyan, mint a dobozok kicsomagolása és a bútorok összeszerelése a mozgás után. A bizonytalan dezerializációs támadás olyan, mintha a mozgatók a dobozok tartalmával manipulálnák, mielőtt kicsomagolnák őket.,
a nem biztonságos deserializációs exploit a megbízhatatlan forrásokból származó adatok dezerializálásának eredménye, amely olyan súlyos következményekkel járhat, mint a DDoS támadások vagy a távoli kódvégrehajtási támadások. Bár lépéseket lehet tenni, hogy megpróbálja elkapni a támadók, mint a monitoring deserialization és végrehajtási típusú ellenőrzések, az egyetlen biztos módja annak, hogy megvédje a bizonytalan deserialization támadások, hogy megtiltsák a deserialization adatok nem megbízható forrásokból.
9., Ismert sebezhetőségekkel rendelkező komponensek használata
sok modern webfejlesztő olyan összetevőket használ, mint a könyvtárak vagy a keretrendszerek a webes alkalmazásokban. Ezek az összetevők olyan szoftverek, amelyek segítenek a fejlesztőknek elkerülni a felesleges munkát, és biztosítják a szükséges funkciókat; gyakori példa a front-end keretrendszerek, például a React és a kisebb könyvtárak, amelyek megosztási ikonok vagy a/b tesztelés hozzáadására szolgáltak. Egyes támadók olyan sebezhetőségeket keresnek ezekben az összetevőkben, amelyeket ezután felhasználhatnak a támadások megszervezésére., A népszerűbb összetevők közül néhányat több százezer webhelyen használnak; egy támadó, aki biztonsági lyukat talál ezen összetevők egyikében,több százezer webhelyet sebezhetővé tehet.
A Komponensfejlesztők gyakran kínálnak biztonsági javításokat és frissítéseket az ismert sebezhetőségek csatlakoztatásához, de a webalkalmazás-fejlesztők nem mindig rendelkeznek az alkalmazásaikon futó összetevők javított vagy legfrissebb verzióival., Hogy minimálisra csökkentsék a kockázatot fut összetevők ismert sebezhetőség, a fejlesztők kell távolítsa el a nem használt alkatrészek a projektek, valamint annak biztosítása, hogy kapnak alkatrészek megbízható forrásból, valamint annak biztosítása, hogy őket naprakész.
10. Nem megfelelő naplózás és megfigyelés
sok webes alkalmazás nem tesz elegendő lépést az adatok megsértésének észlelésére. A jogsértés átlagos felfedezési ideje körülbelül 200 nap, miután megtörtént. Ez sok időt ad a támadóknak, hogy kárt okozzanak, mielőtt bármilyen válasz lenne., Az OWASP azt javasolja, hogy a webfejlesztők hajtsák végre a naplózást és a nyomon követést, valamint az eseményekre vonatkozó reagálási terveket annak biztosítása érdekében, hogy tisztában legyenek az alkalmazások elleni támadásokkal.
az OWASP Top 10 technikai és alaposabb áttekintéséhez lásd a hivatalos jelentést .