Graudit toetab mitut programmeerimiskeelt ja võimaldab integreerida koodibaasi turvatesti otse arendusprotsessi.
Allikas:
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
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
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
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.
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:
Võite proovida oma projekte testida samal viisil. Näete erinevate programmeerimiskeelte andmebaaside loendit
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
Allikas: www.habr.com