Kako koristiti jednostavan pomoćni program za pronalaženje ranjivosti u programskom kodu

Graudit podržava više programskih jezika i omogućuje integraciju sigurnosnog testiranja baze koda izravno u proces razvoja.

Kako koristiti jednostavan pomoćni program za pronalaženje ranjivosti u programskom kodu
Izvor: Unsplash (Markus Spiske)

Testiranje je važan dio životnog ciklusa razvoja softvera. Postoje mnoge vrste testiranja, svaka od njih rješava svoj problem. Danas želim razgovarati o pronalaženju sigurnosnih problema u kodu.

Očito je da je u suvremenoj stvarnosti razvoja softvera važno osigurati sigurnost procesa. Svojedobno je čak uveden i poseban termin DevSecOps. Ovaj pojam odnosi se na niz postupaka usmjerenih na prepoznavanje i uklanjanje ranjivosti u aplikaciji. Postoje specijalizirana open source rješenja za provjeru ranjivosti u skladu sa standardima OWASP, koji opisuju različite vrste i ponašanje ranjivosti u izvornom kodu.

Postoje različiti pristupi rješavanju sigurnosnih problema, kao što je testiranje statičke sigurnosti aplikacije (SAST), testiranje sigurnosti dinamičke aplikacije (DAST), testiranje sigurnosti interaktivne aplikacije (IAST), analiza sastava softvera i tako dalje.

Statičko testiranje sigurnosti aplikacije identificira pogreške u već napisanom kodu. Ovaj pristup ne zahtijeva pokretanje aplikacije, zbog čega se naziva statička analiza.

Usredotočit ću se na statičku analizu koda i koristiti jednostavan alat otvorenog koda kako bih sve pokazao u praksi.

Zašto sam odabrao alat otvorenog koda za analizu sigurnosti statičkog koda

Postoji više razloga za to: prvo, besplatno je jer koristite alat koji je razvila zajednica istomišljenika koji žele pomoći drugim programerima. Ako imate mali tim ili startup, imate sjajnu priliku uštedjeti novac korištenjem softvera otvorenog koda za testiranje sigurnosti vaše baze kodova. Drugo, eliminira potrebu da angažirate poseban DevSecOps tim, dodatno smanjujući vaše troškove.

Dobri alati otvorenog koda uvijek se stvaraju uzimajući u obzir povećane zahtjeve za fleksibilnošću. Stoga se mogu koristiti u gotovo svakom okruženju, pokrivajući širok raspon zadataka. Programerima je puno lakše povezati takve alate sa sustavom koji su već izgradili radeći na svojim projektima.

No ponekad vam može zatrebati značajka koja nije dostupna u alatu koji odaberete. U ovom slučaju, imate priliku račvati njegov kod i razviti vlastiti alat temeljen na njemu s funkcionalnošću koja vam je potrebna.

Budući da je u većini slučajeva razvoj softvera otvorenog koda pod aktivnim utjecajem zajednice, odluka o promjenama donosi se prilično brzo i točno: programeri projekta otvorenog koda oslanjaju se na povratne informacije i prijedloge korisnika, na njihova izvješća o pronađene greške i drugi problemi.

Korištenje Graudita za analizu sigurnosti koda

Možete koristiti različite alate otvorenog koda za statičku analizu koda; ne postoji univerzalni alat za sve programske jezike. Programeri nekih od njih slijede preporuke OWASP-a i pokušavaju pokriti što više jezika.

Ovdje ćemo koristiti Graudit, jednostavan pomoćni program naredbenog retka koji će nam omogućiti pronalaženje ranjivosti u našoj bazi kodova. Podržava različite jezike, no ipak je njihov skup ograničen. Graudit je razvijen na temelju uslužnog programa grep koji je svojedobno bio objavljen pod GNU licencom.

Postoje slični alati za statičku analizu koda - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder i tako dalje. Ali Graudit je vrlo fleksibilan i ima minimalne tehničke zahtjeve. Međutim, možete imati problema koje Graudit ne može riješiti. Zatim ovdje možete potražiti druge opcije na ovom popisu.

Ovaj alat možemo integrirati u određeni projekt, staviti ga na raspolaganje odabranom korisniku ili ga koristiti istovremeno u svim našim projektima. Ovdje također dolazi do izražaja Grauditova fleksibilnost. Pa idemo prvo klonirati repo:

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

Kreirajmo sada simboličku vezu za Graudit da je koristi u formatu naredbe

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

Dodajmo alias u .bashrc (ili bilo koju konfiguracijsku datoteku koju koristite):

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

Ponovno podizanje sustava:

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

Provjerimo je li instalacija uspjela:

$ graudit -h

Ako vidite nešto slično, onda je sve u redu.

Kako koristiti jednostavan pomoćni program za pronalaženje ranjivosti u programskom kodu

Testirat ću jedan od svojih postojećih projekata. Prije pokretanja alata potrebno mu je proslijediti bazu podataka koja odgovara jeziku na kojem je napisan moj projekt. Baze podataka nalaze se u mapi ~/gradit/signatures:

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

Dakle, testirao sam dvije js datoteke iz svog projekta, a Graudit je prikazao informacije o ranjivostima u mom kodu na konzoli:

Kako koristiti jednostavan pomoćni program za pronalaženje ranjivosti u programskom kodu

Kako koristiti jednostavan pomoćni program za pronalaženje ranjivosti u programskom kodu

Možete pokušati testirati svoje projekte na isti način. Možete vidjeti popis baza podataka za različite programske jezike здесь.

Prednosti i nedostaci Graudita

Graudit podržava mnoge programske jezike. Stoga je prikladan za široki krug korisnika. Može se adekvatno natjecati s bilo kojim besplatnim ili plaćenim analozima. Vrlo je važno da se projekt još uvijek poboljšava, a zajednica ne samo da pomaže programerima, već i drugim korisnicima koji pokušavaju shvatiti alat.

Ovo je zgodan alat, ali za sada ne može uvijek točno odrediti u čemu je problem sa sumnjivim dijelom koda. Programeri nastavljaju poboljšavati Graudit.

Ali u svakom slučaju, korisno je obratiti pozornost na potencijalne sigurnosne probleme u kodu kada koristite ovakve alate.

Početak…

U ovom sam članku pogledao samo jedan od mnogih načina za pronalaženje ranjivosti - statičko testiranje sigurnosti aplikacije. Provođenje statičke analize koda je jednostavno, ali to je samo početak. Da biste saznali više o sigurnosti vaše baze kodova, trebate integrirati druge vrste testiranja u svoj životni ciklus razvoja softvera.

O pravima oglašavanja

Pouzdan VPS a ispravan odabir tarifnog plana omogućit će vam da manje budete ometeni od razvoja neugodnim problemima - sve će raditi bez kvarova i s vrlo visokim vremenom rada!

Kako koristiti jednostavan pomoćni program za pronalaženje ranjivosti u programskom kodu

Izvor: www.habr.com

Dodajte komentar