Kuidas kasutada lihtsat utiliiti programmikoodi haavatavuste leidmiseks

Graudit toetab mitut programmeerimiskeelt ja võimaldab integreerida koodibaasi turvatesti otse arendusprotsessi.

Kuidas kasutada lihtsat utiliiti programmikoodi haavatavuste leidmiseks
Allikas: Unsplash (Markus Spiske)

Testimine on tarkvaraarenduse elutsükli oluline osa. Teste on mitut tüüpi, igaüks neist lahendab oma probleemi. Täna tahan rääkida turvaprobleemide leidmisest koodis.

Ilmselgelt on tarkvaraarenduse kaasaegses reaalsuses oluline tagada protsesside turvalisus. Omal ajal võeti kasutusele isegi eritermin DevSecOps. See termin viitab protseduuridele, mille eesmärk on tuvastada ja kõrvaldada rakenduse haavatavused. Turvaaukude kontrollimiseks vastavalt standarditele on olemas spetsiaalsed avatud lähtekoodiga lahendused OWASP, mis kirjeldavad lähtekoodi haavatavuste erinevaid tüüpe ja käitumist.

Turvaprobleemide lahendamiseks on erinevaid lähenemisviise, näiteks staatiline rakenduste turvatestimine (SAST), dünaamiline rakenduste turbetest (DAST), interaktiivne rakenduste turvalisuse testimine (IAST), tarkvara koostise analüüs jne.

Rakenduse staatiline turvatestimine tuvastab vead juba kirjutatud koodis. See lähenemisviis ei nõua rakenduse käivitamist, mistõttu seda nimetatakse staatiliseks analüüsiks.

Keskendun staatilise koodi analüüsile ja kasutan lihtsat avatud lähtekoodiga tööriista, et kõike praktikas demonstreerida.

Miks ma valisin staatilise koodi turvaanalüüsi jaoks avatud lähtekoodiga tööriista?

Sellel on mitu põhjust: esiteks on see tasuta, kuna kasutate tööriista, mille on välja töötanud sarnaselt mõtlevate inimeste kogukond, kes soovib teisi arendajaid aidata. Kui teil on väike meeskond või idufirma, on teil suurepärane võimalus säästa raha, kasutades oma koodibaasi turvalisuse testimiseks avatud lähtekoodiga tarkvara. Teiseks välistab see vajaduse palgata eraldi DevSecOpsi meeskond, mis vähendab teie kulusid veelgi.

Head avatud lähtekoodiga tööriistad luuakse alati, võttes arvesse suurenenud nõudeid paindlikkusele. Seetõttu saab neid kasutada peaaegu igas keskkonnas, hõlmates väga erinevaid ülesandeid. Arendajatel on palju lihtsam ühendada sellised tööriistad süsteemiga, mille nad on oma projektide kallal töötades juba ehitanud.

Kuid võib juhtuda, et vajate funktsiooni, mis pole teie valitud tööriistas saadaval. Sel juhul on teil võimalus selle koodi hargida ja selle põhjal välja töötada oma tööriist koos teile vajaliku funktsionaalsusega.

Kuna enamikul juhtudel mõjutab avatud lähtekoodiga tarkvara arendust aktiivselt kogukond, tehakse muudatuste tegemise otsus üsna kiiresti ja täpselt: avatud lähtekoodiga projekti arendajad toetuvad kasutajate tagasisidele ja ettepanekutele, nende aruannetele. leitud vead ja muud probleemid.

Grauditi kasutamine koodi turvaanalüüsiks

Staatilise koodi analüüsimiseks saate kasutada erinevaid avatud lähtekoodiga tööriistu, universaalset tööriista kõigi programmeerimiskeelte jaoks pole. Mõne neist arendajad järgivad OWASP soovitusi ja püüavad katta võimalikult palju keeli.

Siin me kasutame Graudit, lihtne käsurea utiliit, mis võimaldab meil leida meie koodibaasist haavatavusi. See toetab erinevaid keeli, kuid siiski on nende komplekt piiratud. Graudit on välja töötatud grep utiliidi põhjal, mis kunagi anti välja GNU litsentsi all.

Staatilise koodi analüüsiks on sarnaseid tööriistu – Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), vealeidja ja nii edasi. Kuid Graudit on väga paindlik ja minimaalsete tehniliste nõuetega. Siiski võib teil tekkida probleeme, mida Graudit ei suuda lahendada. Siis saate siit otsida muid võimalusi selles loendis.

Saame selle tööriista integreerida konkreetsesse projekti või teha selle valitud kasutajale kättesaadavaks või kasutada seda samaaegselt kõigis oma projektides. Siin tuleb mängu ka Grauditi paindlikkus. Kloonime esmalt repo:

$ git clone https://github.com/wireghoul/graudit

Nüüd loome sümboolse lingi, et Graudit saaks seda käsuvormingus kasutada

$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit

Lisame failile .bashrc (või mis tahes kasutatavale konfiguratsioonifailile) alias:

#------ .bashrc ------
alias graudit="~/bin/graudit"

Taaskäivitamine:

$ source ~/.bashrc # OR
$ exex $SHELL

Kontrollime, kas installimine õnnestus:

$ graudit -h

Kui näete midagi sarnast, on kõik korras.

Kuidas kasutada lihtsat utiliiti programmikoodi haavatavuste leidmiseks

Testin ühte oma olemasolevatest projektidest. Enne tööriista käivitamist tuleb see läbida andmebaasi, mis vastab minu projekti kirjutatud keelele. Andmebaasid asuvad kaustas ~/gradit/signatures:

$ graudit -d ~/gradit/signatures/js.db

Testisin oma projekti kahte js-faili ja Graudit kuvas konsoolile teavet minu koodi haavatavuste kohta:

Kuidas kasutada lihtsat utiliiti programmikoodi haavatavuste leidmiseks

Kuidas kasutada lihtsat utiliiti programmikoodi haavatavuste leidmiseks

Võite proovida oma projekte testida samal viisil. Näete erinevate programmeerimiskeelte andmebaaside loendit siin.

Grauditi eelised ja puudused

Graudit toetab paljusid programmeerimiskeeli. Seetõttu sobib see paljudele kasutajatele. See suudab piisavalt konkureerida kõigi tasuta või tasuliste analoogidega. Ja on väga oluline, et projekti ikka veel täiustatakse ja kogukond ei aita mitte ainult arendajaid, vaid ka teisi kasutajaid, kes proovivad tööriista välja mõelda.

See on mugav tööriist, kuid siiani ei suuda see alati täpselt kindlaks teha, mis kahtlase koodilõigu probleem on. Arendajad jätkavad Grauditi täiustamist.

Kuid igal juhul on selliste tööriistade kasutamisel kasulik pöörata tähelepanu koodi võimalikele turvaprobleemidele.

Algus…

Selles artiklis vaatlesin vaid ühte paljudest haavatavuste leidmise viisidest – rakenduste staatilist turvatesti. Staatilise koodi analüüsi läbiviimine on lihtne, kuid see on alles algus. Koodibaasi turvalisuse kohta lisateabe saamiseks peate oma tarkvaraarenduse elutsüklisse integreerima muud tüüpi testimise.

Reklaamide õiguste kohta

Usaldusväärne VPS ja tariifiplaani õige valik võimaldab teil ebameeldivatest probleemidest vähem tähelepanu pöörata - kõik töötab tõrgeteta ja väga kõrge tööajaga!

Kuidas kasutada lihtsat utiliiti programmikoodi haavatavuste leidmiseks

Allikas: www.habr.com

Lisa kommentaar