A Graudit több programozási nyelvet támogat, és lehetővé teszi a kódbázis biztonsági tesztelésének közvetlenül a fejlesztési folyamatba történő integrálását.
Forrás:
A tesztelés a szoftverfejlesztési életciklus fontos része. Sokféle tesztelés létezik, mindegyik megoldja a saját problémáját. Ma arról szeretnék beszélni, hogy biztonsági problémákat találjunk a kódban.
Nyilvánvalóan a szoftverfejlesztés modern valóságában fontos a folyamatbiztonság biztosítása. Egy időben még a DevSecOps speciális kifejezést is bevezették. Ez a kifejezés olyan eljárások sorozatára utal, amelyek célja az alkalmazások sebezhetőségeinek azonosítása és megszüntetése. Léteznek speciális nyílt forráskódú megoldások a biztonsági rések szabványoknak megfelelő ellenőrzésére
Különféle megközelítések léteznek a biztonsági problémák megoldására, például statikus alkalmazásbiztonsági tesztelés (SAST), dinamikus alkalmazásbiztonsági tesztelés (DAST), interaktív alkalmazásbiztonsági tesztelés (IAST), szoftverösszetétel-elemzés stb.
A statikus alkalmazásbiztonsági tesztelés a már megírt kód hibáit azonosítja. Ez a megközelítés nem igényli az alkalmazás futtatását, ezért nevezik statikus elemzésnek.
A statikus kódelemzésre fogok koncentrálni, és egy egyszerű nyílt forráskódú eszközzel mindent bemutatok a gyakorlatban.
Miért választottam egy nyílt forráskódú eszközt a statikus kód biztonsági elemzéséhez?
Ennek számos oka van: először is ingyenes, mert egy olyan eszközt használ, amelyet egy hasonló gondolkodású emberek közössége fejlesztett ki, akik segíteni szeretnének más fejlesztőknek. Ha van egy kis csapata vagy induló vállalkozása, nagyszerű lehetőség nyílik arra, hogy pénzt takarítson meg, ha nyílt forráskódú szoftvert használ kódbázisa biztonságának tesztelésére. Másodszor, nem kell külön DevSecOps csapatot felvennie, így tovább csökkennek a költségek.
A jó nyílt forráskódú eszközöket mindig a megnövekedett rugalmassági követelmények figyelembevételével hozzuk létre. Ezért szinte bármilyen környezetben használhatók, sokféle feladatot lefedve. A fejlesztők sokkal könnyebben összekapcsolhatják az ilyen eszközöket a projektjeik során már felépített rendszerrel.
Előfordulhat azonban, hogy olyan funkcióra van szüksége, amely nem érhető el a választott eszközben. Ebben az esetben lehetősége van arra, hogy forkolja a kódját, és ez alapján saját eszközt fejlesszen ki a szükséges funkcionalitással.
Mivel a legtöbb esetben a nyílt forráskódú szoftverek fejlesztését a közösség aktívan befolyásolja, a változtatásokra vonatkozó döntés meglehetősen gyorsan és lényegre törően megszületik: a nyílt forráskódú projekt fejlesztői a felhasználók visszajelzéseire, javaslataira, a felhasználók beszámolóira hagyatkoznak. talált hibák és egyéb problémák.
A Graudit használata a kódbiztonsági elemzéshez
Különféle nyílt forráskódú eszközöket használhat statikus kódelemzéshez, nincs univerzális eszköz minden programozási nyelvhez. Egyesek fejlesztői követik az OWASP ajánlásait, és igyekeznek a lehető legtöbb nyelvet lefedni.
Itt fogjuk használni
Hasonló eszközök állnak rendelkezésre a statikus kódelemzéshez - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), hibakereső és így tovább. De a Graudit nagyon rugalmas, és minimális műszaki követelményekkel rendelkezik. Előfordulhat azonban, hogy olyan problémái vannak, amelyeket a Graudit nem tud megoldani. Akkor itt kereshet más lehetőségeket
Ezt az eszközt integrálhatjuk egy adott projektbe, vagy elérhetővé tesszük egy kiválasztott felhasználó számára, vagy egyszerre használhatjuk minden projektünkben. Itt is megjelenik a Graudit rugalmassága. Tehát először klónozzuk a repót:
$ git clone https://github.com/wireghoul/graudit
Most hozzunk létre egy szimbolikus hivatkozást, hogy a Graudit parancsformátumban használja
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
Adjunk hozzá egy álnevet a .bashrc fájlhoz (vagy bármilyen konfigurációs fájlhoz, amelyet használ):
#------ .bashrc ------
alias graudit="~/bin/graudit"
Újraindítás:
$ source ~/.bashrc # OR
$ exex $SHELL
Ellenőrizzük, hogy a telepítés sikeres volt-e:
$ graudit -h
Ha valami hasonlót lát, akkor minden rendben van.
Tesztelni fogom az egyik meglévő projektemet. Az eszköz futtatása előtt át kell adni egy adatbázist, amely megfelel annak a nyelvnek, amelyen a projektem íródott. Az adatbázisok a ~/gradit/signatures mappában találhatók:
$ graudit -d ~/gradit/signatures/js.db
Tehát teszteltem két js-fájlt a projektemből, és a Graudit információkat jelenített meg a kódom sebezhetőségeiről a konzolon:
Ugyanígy kipróbálhatja projektjeit is. Megtekintheti a különböző programozási nyelvekhez tartozó adatbázisok listáját
A Graudit előnyei és hátrányai
A Graudit számos programozási nyelvet támogat. Ezért a felhasználók széles köre számára alkalmas. Megfelelően versenyezhet bármely ingyenes vagy fizetős analóggal. És nagyon fontos, hogy a projekt fejlesztése továbbra is folyamatban van, és a közösség nem csak a fejlesztőknek segít, hanem a többi felhasználónak is, aki megpróbálja kitalálni az eszközt.
Ez egy praktikus eszköz, de egyelőre nem mindig tudja pontosan meghatározni, hogy mi a probléma egy gyanús kódrészlettel. A fejlesztők tovább fejlesztik a Graudit.
De mindenképpen érdemes odafigyelni a kód lehetséges biztonsági problémáira az ehhez hasonló eszközök használatakor.
Rajt…
Ebben a cikkben csak egyet vizsgáltam meg a sebezhetőségek felderítésének sok közül: az alkalmazások statikus biztonsági tesztelését. A statikus kódelemzés végrehajtása egyszerű, de ez csak a kezdet. Ha többet szeretne megtudni a kódbázis biztonságáról, más típusú tesztelést is integrálnia kell a szoftverfejlesztési életciklusába.
A Reklám Jogairól
Forrás: will.com