Biztonságos függőségek
A modern alkalmazásokban található kód nagy része az Ön, a fejlesztő által kiválasztott kódtárakból és függőségekből áll. Ez időt és költséget kímélő, bevett gyakorlat. A hátránya azonban az, hogy ön a felelős ezért a kódért – annak ellenére, hogy mások írták –, mert ön használta a projektben. Ha egy kutató (vagy ami még rosszabb, egy hacker) felfedez egy biztonsági rést ezen külső kódtárak egyikében, ugyanez a hiba valószínűleg az alkalmazásban is jelen lesz.
Az ismert biztonsági résekkel rendelkező összetevők használata súlyos probléma ebben a szakmában. Ez annyira problémás, hogy az OWASP lett a legrosszabb webalkalmazások biztonsági réseinek 10 legjobb listája , amely évek óta a 9. helyen van.
Ismert biztonsági rések nyomkövetése
A legnagyobb kérdés, hogy értesül-e egy probléma felfedezéséről. A kódtárak és függőségek frissítése (4. a listán!) természetesen segít, de érdemes odafigyelni az azonosított biztonsági résekre, amelyek az Ön alkalmazását is érinthetik.
Fontos
Ha egy rendszer ismert sebezhetőséggel rendelkezik, sokkal valószínűbb, hogy a biztonsági rések is elérhetők, olyan kód, amellyel a felhasználók megtámadhatják ezeket a rendszereket. Ha a biztonsági rést nyilvánossá teszik, elengedhetetlen, hogy az érintett rendszerek azonnal frissülnek.
A Mitre nonprofit szervezet gondozza a Gyakori sebezhetőségek és biztonsági rések listáját (CVE). A lista alkalmazások, kódtárak és keretrendszerek ismert kiberbiztonsági sebezhetőségeit tartalmazó, nyilvánosan kereshető adathalmaz. Ha egy kódtár vagy összetevő megtalálható a CVE-adatbázisban, akkor ismert biztonsági réssel rendelkezik.
A biztonsági közösség problémákat küld, ha egy termékben vagy összetevőben biztonsági hiba található. Minden közzétett probléma el van látva azonosítóval, és a felfedezés dátumát, a biztonsági rés ismertetését, a közzétett megkerülő megoldásokra mutató hivatkozásokat és a szállítói nyilatkozatokat is tartalmazó leírással.
Hogyan állapítható meg, hogy külső forrásból származó összetevőknek van-e ismert sebezhetősége?
Napi feladatként menthetné a telefonjára, hogy nyissa meg, és nézze át a listát, de szerencsére sok olyan eszköz is létezik, amelyekkel ellenőrizni lehet a függőségek sebezhetőségét. Ezeket az eszközöket a kódbázisán is futtathatja, de még jobb, ha hozzáadja őket a CI/CD-folyamatához, hogy a fejlesztési folyamat részeként automatikusan vizsgálják a problémákat.
- Az OWASP Dependency CheckJenkins beépülő modullal rendelkezik
- A Synk ingyenes a GitHub nyílt forráskódú adattáraihoz
- A Black Duckot sok nagyvállalat használja
- A Retire.js eszköz azt ellenőrzi, hogy a JavaScript-kódtárak elavultak-e. Számos eszköz, köztük a Burp Suite beépülő moduljaként is használható
Ehhez néhány kifejezetten statikus kódelemzéshez készült eszközt is használhat.
- Biztonsági kód vizsgálata
- Puma Scan
- PT Application Inspector
- Apache Maven Dependency Plugin
- Sonatype
- És még sok más...
A biztonsági réssel rendelkező összetevők használatával járó kockázatról az ezzel a témakörrel foglalkozó OWASP-oldalon talál további információt.
Összesítés
Ha kódtárakat vagy más külső összetevőket használ az alkalmazás részeként, az esetleges kockázatokat is vállaljuk. A kockázat csökkentésének legjobb módja, ha csak olyan összetevőket használ, amelyekről tudja, hogy nem tartalmaznak ismert biztonsági réseket.