Cum să utilizați un utilitar simplu pentru a găsi vulnerabilități în codul programului

Graudit acceptă mai multe limbaje de programare și vă permite să integrați testarea de securitate a bazei de cod direct în procesul de dezvoltare.

Cum să utilizați un utilitar simplu pentru a găsi vulnerabilități în codul programului
Sursa: Unsplash (Markus Spiske)

Testarea este o parte importantă a ciclului de viață al dezvoltării software. Există multe tipuri de testare, fiecare dintre ele își rezolvă propria problemă. Astăzi vreau să vorbesc despre găsirea problemelor de securitate în cod.

Evident, în realitățile moderne ale dezvoltării software, este important să se asigure securitatea procesului. La un moment dat, a fost introdus chiar și termenul special DevSecOps. Acest termen se referă la o serie de proceduri care vizează identificarea și eliminarea vulnerabilităților dintr-o aplicație. Există soluții open source specializate pentru verificarea vulnerabilităților în conformitate cu standardele OWASP, care descriu diferitele tipuri și comportamentul vulnerabilităților din codul sursă.

Există diferite abordări pentru rezolvarea problemelor de securitate, cum ar fi Testarea de securitate statică a aplicațiilor (SAST), Testarea dinamică a securității aplicațiilor (DAST), Testarea interactivă de securitate a aplicațiilor (IAST), Analiza compoziției software și așa mai departe.

Testarea statică de securitate a aplicațiilor identifică erori în codul deja scris. Această abordare nu necesită rularea aplicației, motiv pentru care se numește analiză statică.

Mă voi concentra pe analiza codului static și voi folosi un instrument simplu open source pentru a demonstra totul în practică.

De ce am ales un instrument open source pentru analiza securității codului static

Există o serie de motive pentru aceasta: în primul rând, este gratuit, deoarece utilizați un instrument dezvoltat de o comunitate de oameni care doresc să ajute alți dezvoltatori. Dacă aveți o echipă mică sau un startup, aveți o oportunitate excelentă de a economisi bani utilizând software open source pentru a testa securitatea bazei de cod. În al doilea rând, elimină necesitatea de a angaja o echipă DevSecOps separată, reducând și mai mult costurile.

Instrumentele open source bune sunt create întotdeauna ținând cont de cerințele crescute de flexibilitate. Prin urmare, ele pot fi utilizate în aproape orice mediu, acoperind o gamă largă de sarcini. Este mult mai ușor pentru dezvoltatori să conecteze astfel de instrumente cu sistemul pe care l-au construit deja în timp ce lucrează la proiectele lor.

Dar pot exista momente când aveți nevoie de o funcție care nu este disponibilă în instrumentul pe care îl alegeți. În acest caz, aveți posibilitatea de a-și bifurca codul și de a dezvolta propriul instrument pe baza acestuia, cu funcționalitatea de care aveți nevoie.

Deoarece în majoritatea cazurilor dezvoltarea de software open source este influențată activ de comunitate, decizia de a face modificări se ia destul de repede și la obiect: dezvoltatorii proiectului open source se bazează pe feedback-ul și sugestiile utilizatorilor, pe rapoartele lor de erori găsite și alte probleme.

Utilizarea Graudit pentru analiza securității codului

Puteți utiliza diverse instrumente open source pentru analiza codului static, nu există un instrument universal pentru toate limbajele de programare. Dezvoltatorii unora dintre ele urmează recomandările OWASP și încearcă să acopere cât mai multe limbi posibil.

Aici vom folosi Graudit, un simplu utilitar de linie de comandă care ne va permite să găsim vulnerabilități în baza noastră de cod. Acceptă diferite limbi, dar setul lor este limitat. Graudit este dezvoltat pe baza utilitarului grep, care a fost lansat odată sub licența GNU.

Există instrumente similare pentru analiza codului static - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder și așa mai departe. Dar Graudit este foarte flexibil și are cerințe tehnice minime. Cu toate acestea, este posibil să aveți probleme pe care Graudit nu le poate rezolva. Apoi puteți căuta alte opțiuni aici în această listă.

Putem integra acest instrument într-un anumit proiect sau îl putem pune la dispoziția unui utilizator selectat sau îl putem folosi simultan în toate proiectele noastre. Aici intervine și flexibilitatea lui Graudit. Deci, să clonăm mai întâi repo:

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

Acum să creăm o legătură simbolică pentru ca Graudit să-l folosească în format de comandă

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

Să adăugăm un alias la .bashrc (sau orice fișier de configurare pe care îl utilizați):

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

Reporniți:

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

Să verificăm dacă instalarea a avut succes:

$ graudit -h

Dacă vezi ceva asemănător, atunci totul este în regulă.

Cum să utilizați un utilitar simplu pentru a găsi vulnerabilități în codul programului

Voi testa unul dintre proiectele mele existente. Înainte de a rula instrumentul, trebuie să i se transmită o bază de date corespunzătoare limbii în care este scris proiectul meu. Bazele de date se află în folderul ~/gradit/signatures:

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

Deci, am testat două fișiere js din proiectul meu, iar Graudit a afișat informații despre vulnerabilitățile din codul meu pe consolă:

Cum să utilizați un utilitar simplu pentru a găsi vulnerabilități în codul programului

Cum să utilizați un utilitar simplu pentru a găsi vulnerabilități în codul programului

Puteți încerca să vă testați proiectele în același mod. Puteți vedea o listă de baze de date pentru diferite limbaje de programare aici.

Avantajele și dezavantajele Graudit

Graudit acceptă multe limbaje de programare. Prin urmare, este potrivit pentru o gamă largă de utilizatori. Poate concura în mod adecvat cu orice analog gratuit sau plătit. Și este foarte important că în continuare se fac îmbunătățiri în proiect, iar comunitatea nu ajută doar dezvoltatorii, ci și alți utilizatori care încearcă să descopere instrumentul.

Acesta este un instrument la îndemână, dar până acum nu poate identifica întotdeauna exact care este problema cu o bucată de cod suspectă. Dezvoltatorii continuă să îmbunătățească Graudit.

Dar, în orice caz, este util să acordați atenție potențialelor probleme de securitate din cod atunci când utilizați instrumente ca acesta.

Începând…

În acest articol, am analizat doar una dintre multele modalități de a găsi vulnerabilități - testarea statică de securitate a aplicațiilor. Efectuarea unei analize statice a codului este ușoară, dar este doar începutul. Pentru a afla mai multe despre securitatea bazei de cod, trebuie să integrați alte tipuri de testare în ciclul de viață al dezvoltării software.

Despre drepturile de publicitate

VPS de încredere iar alegerea corectă a planului tarifar vă va permite să fiți mai puțin distras de la dezvoltare de probleme neplăcute - totul va funcționa fără eșecuri și cu un timp de funcționare foarte mare!

Cum să utilizați un utilitar simplu pentru a găsi vulnerabilități în codul programului

Sursa: www.habr.com

Cumpărați găzduire de încredere pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără găzduire web fiabilă cu protecție DDoS, servere VPS VDS | ProHoster