Nola erabili utilitate sinple bat programaren kodean ahultasunak aurkitzeko

Graudit-ek hainbat programazio-lengoaia onartzen ditu eta kode-basearen segurtasun-probak zuzenean garapen-prozesuan integratzeko aukera ematen du.

Nola erabili utilitate sinple bat programaren kodean ahultasunak aurkitzeko
Iturria: Unsplash (Markus Spiske)

Probak softwarearen garapenaren bizitza-zikloaren zati garrantzitsu bat da. Proba mota asko daude, bakoitzak bere arazoa konpontzen du. Gaur kodean segurtasun arazoak aurkitzeari buruz hitz egin nahi dut.

Jakina, software garapenaren errealitate modernoetan, garrantzitsua da prozesuen segurtasuna bermatzea. Garai batean, DevSecOps termino berezia ere sartu zen. Termino honek aplikazio bateko ahuleziak identifikatu eta ezabatzera zuzendutako prozedura batzuei egiten die erreferentzia. Estandarren arabera ahuleziak egiaztatzeko kode irekiko irtenbide espezializatuak daude OWASP, iturburu-kodeko ahultasunen mota eta portaera desberdinak deskribatzen dituztenak.

Segurtasun-arazoak konpontzeko ikuspegi desberdinak daude, hala nola, Aplikazio Estatikoen Segurtasun Proba (SAST), Aplikazioen Segurtasun Proba Dinamika (DAST), Aplikazioen Segurtasun Proba Interaktiboak (IAST), Softwarearen Konposizioaren Analisia, etab.

Aplikazio estatikoen segurtasun-probak dagoeneko idatzitako kodean akatsak identifikatzen ditu. Ikuspegi honek ez du aplikazioa exekutatzea eskatzen, horregatik analisi estatikoa deitzen zaio.

Kode estatikoko analisian zentratuko naiz eta kode irekiko tresna sinple bat erabiliko dut praktikan guztia erakusteko.

Zergatik aukeratu nuen kode irekiko tresna bat kode estatikoko segurtasun-analisirako

Hainbat arrazoi daude horretarako: lehenik eta behin, doakoa da, beste garatzaileei lagundu nahi dien antzeko pertsonen komunitate batek garatutako tresna bat erabiltzen ari zarelako. Talde edo startup txiki bat baduzu, dirua aurrezteko aukera bikaina duzu kode irekiko softwarea erabiliz zure kode-basearen segurtasuna probatzeko. Bigarrenik, aparteko DevSecOps talde bat kontratatzeko beharra ezabatzen du, kostuak gehiago murriztuz.

Kode irekiko tresna onak beti sortzen dira malgutasun-eskakizun handiagoak kontuan hartuta. Hori dela eta, ia edozein ingurunetan erabil daitezke, hainbat zeregin betez. Garatzaileentzat askoz errazagoa da tresna horiek dagoeneko eraikitako sistemarekin konektatzea beren proiektuetan lanean ari diren bitartean.

Baina baliteke aukeratutako tresnan erabilgarri ez dagoen funtzio bat behar izatea. Kasu honetan, bere kodea bifurkatzeko eta bertan oinarritutako tresna propioa garatzeko aukera duzu behar duzun funtzionalitatearekin.

Kasu gehienetan kode irekiko softwarearen garapenean komunitateak aktiboki eragiten duenez, aldaketak egiteko erabakia nahiko azkar eta punturaino hartzen da: kode irekiko proiektuaren garatzaileek erabiltzaileen iritzi eta iradokizunetan oinarritzen dira, haien txostenetan. aurkitutako akatsak eta beste arazo batzuk.

Graudit erabiltzea Kodearen Segurtasunaren Analisirako

Kode estatikoa aztertzeko kode irekiko hainbat tresna erabil ditzakezu; ez dago programazio-lengoaia guztietarako tresna unibertsala. Horietako batzuen garatzaileek OWASP gomendioak jarraitzen dituzte eta ahalik eta hizkuntza gehien estaltzen saiatzen dira.

Hemen erabiliko dugu Graudit, komando lerroko erabilgarritasun sinple bat, gure kode-basean ahultasunak aurkitzeko aukera emango diguna. Hizkuntza desberdinak onartzen ditu, baina oraindik haien multzoa mugatua da. Graudit grep utility utility-n oinarrituta garatu da, garai batean GNU lizentziapean kaleratu zena.

Kode estatikoa aztertzeko antzeko tresnak daude: Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder eta abar. Baina Graudit oso malgua da eta eskakizun tekniko minimoak ditu. Hala ere, Grauditek konpondu ezin dituen arazoak izan ditzakezu. Ondoren, hemen beste aukera batzuk bilatu ditzakezu zerrenda honetan.

Tresna hau proiektu zehatz batean integra dezakegu, edo hautatutako erabiltzaile baten eskura jarri, edo aldi berean gure proiektu guztietan erabil dezakegu. Hor ere sartzen da Graudit-en malgutasuna. Beraz, klonatu dezagun repo lehenik:

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

Orain sortu dezagun esteka sinboliko bat Graudit-ek komando formatuan erabiltzeko

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

Gehi dezagun alias bat .bashrc-i (edo erabiltzen ari zaren konfigurazio fitxategia):

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

Berrabiarazi:

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

Egiazta dezagun instalazioa arrakastatsua izan den:

$ graudit -h

Antzeko zerbait ikusten baduzu, dena ondo dago.

Nola erabili utilitate sinple bat programaren kodean ahultasunak aurkitzeko

Dauden proiektuetako bat probatuko dut. Tresna exekutatu aurretik, nire proiektua idatzita dagoen hizkuntzari dagokion datu-base bat pasatu behar zaio. Datu-baseak ~/gradit/signatures karpetan daude:

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

Beraz, nire proiektuko bi js fitxategi probatu nituen eta Graudite-k nire kodean dauden ahultasunei buruzko informazioa erakutsi zuen kontsolara:

Nola erabili utilitate sinple bat programaren kodean ahultasunak aurkitzeko

Nola erabili utilitate sinple bat programaren kodean ahultasunak aurkitzeko

Saia zaitezke zure proiektuak probatzen modu berean. Programazio-lengoaia ezberdinetarako datu-baseen zerrenda ikus dezakezu Hemen.

Graudit-en abantailak eta desabantailak

Graudit-ek programazio-lengoaia asko onartzen ditu. Hori dela eta, erabiltzaile askorentzat egokia da. Doako edo ordainpeko edozein analogorekin nahiko lehiatu daiteke. Eta oso garrantzitsua da oraindik proiektuan hobekuntzak egiten ari direla, eta komunitateak garatzaileei ez ezik, tresna asmatzen saiatzen ari diren beste erabiltzaileei ere laguntzen die.

Tresna erabilgarria da hau, baina orain arte ezin du beti zehaztu zein den arazoa kode susmagarri batekin. Garatzaileek Graudit hobetzen jarraitzen dute.

Baina, nolanahi ere, komenigarria da horrelako tresnak erabiltzean kodean izan daitezkeen segurtasun-arazoei arreta jartzea.

Hasten ...

Artikulu honetan, ahultasunak aurkitzeko modu askotariko bat aztertu dut: aplikazio estatikoen segurtasun-probak. Kode estatikoen azterketa egitea erraza da, baina hasiera besterik ez da. Zure kode-basearen segurtasunari buruz gehiago jakiteko, beste proba mota batzuk integratu behar dituzu zure softwarearen garapenaren bizi-zikloan.

Publizitatearen Eskubideei buruz

VPS fidagarria eta tarifa-planaren aukeraketa zuzenak arazo desatseginengatik garapenetik gutxiago aldentzeko aukera emango dizu - dena hutsegiterik gabe eta funtzionamendu handiko denborarekin funtzionatuko du!

Nola erabili utilitate sinple bat programaren kodean ahultasunak aurkitzeko

Iturria: www.habr.com

Gehitu iruzkin berria