Hogyan használhatunk egy egyszerű segédprogramot a programkód sebezhetőségeinek felderítésére

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.

Hogyan használhatunk egy egyszerű segédprogramot a programkód sebezhetőségeinek felderítésére
Forrás: Unsplash (Markus Spiske)

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 OWASP, amelyek leírják a forráskód sérülékenységeinek különböző típusait és viselkedését.

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 Graudit, egy egyszerű parancssori segédprogram, amely lehetővé teszi számunkra, hogy megtaláljuk a kódbázisunk biztonsági réseit. Különböző nyelveket támogat, de a készletük korlátozott. A Graudit a grep segédprogramon alapul, amelyet egykor a GNU licenc alatt adtak ki.

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 ebben a listában.

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.

Hogyan használhatunk egy egyszerű segédprogramot a programkód sebezhetőségeinek felderítésére

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:

Hogyan használhatunk egy egyszerű segédprogramot a programkód sebezhetőségeinek felderítésére

Hogyan használhatunk egy egyszerű segédprogramot a programkód sebezhetőségeinek felderítésére

Ugyanígy kipróbálhatja projektjeit is. Megtekintheti a különböző programozási nyelvekhez tartozó adatbázisok listáját itt.

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

Megbízható VPS és a díjcsomag helyes megválasztása lehetővé teszi, hogy a kellemetlen problémák kevésbé vonják el a fejlesztéstől - minden hiba nélkül és nagyon magas üzemidővel fog működni!

Hogyan használhatunk egy egyszerű segédprogramot a programkód sebezhetőségeinek felderítésére

Forrás: will.com

Hozzászólás