Graudit mbështet shumë gjuhë programimi dhe lejon integimin e testimit të sigurisë së kodit direkt në procesin e zhvillimit.

Burimi: (Markus Spiske)
Testimi është një pjesë e rëndësishme e ciklit të jetës së zhvillimit të softuerit. Ekzistojnë shumë lloje testimesh, secili zgjidh problemin e vet. Sot dua të flas për gjetjen e problemeve të sigurisë në kod.
ĂshtĂ« e qartĂ« se nĂ« realitetin e sotĂ«m tĂ« zhvillimit tĂ« softuerit Ă«shtĂ« e rĂ«ndĂ«sishme tĂ« sigurohet siguria e proceseve. NjĂ«herĂ« Ă«shtĂ« futur njĂ« term i veçantĂ« DevSecOps. Me kĂ«tĂ« term kuptohen njĂ« sĂ«rĂ« procedurash qĂ« synojnĂ« identifikimin dhe eliminimin e vulnerabiliteteve nĂ« aplikacion. EkzistojnĂ« zgjidhje tĂ« specializuara open source pĂ«r verifikimin e vulnerabiliteteve nĂ« pĂ«rputhje me standartet , tĂ« cilat pĂ«rshkruajnĂ« lloje tĂ« ndryshme dhe sjelljen e vulnerabiliteteve nĂ« kodin burimor.
Ekzistojnë qasje të ndryshme për të zgjidhur problemet e sigurisë, për shembull, testimi statik i sigurisë së aplikacioneve (SAST), testimi dinamik i sigurisë së aplikacioneve (DAST), testimi interaktiv i sigurisë së aplikacioneve (IAST), analiza e komponenteve të softuerit (Software Composition Analysis) etj.
Testimi statik i sigurisë së aplikacioneve zbulohet gabime në kodin e shkruar tashmë. Ky qasje nuk kërkon ekzekutimin e aplikacionit, prandaj quhet analizë statike.
Unë do të ndalem në analizën statike të kodit dhe do të përdor një mjet të thjeshtë open source për të demonstruar gjithçka në praktikë.
Pse e zgjodha mjetin open source për analizën statike të sigurisë së kodit
Ka disa arsye: e para, është falas, pasi ju përdorni një mjet të zhvilluar nga një komunitet të atyre që dëshirojnë të ndihmojnë zhvilluesit e tjerë. Nëse keni një skuadër të vogël ose një startup, keni një mundësi të shkëlqyer për të kursyer duke përdorur softuerin me kod të hapur për të verifikuar sigurinë e bazës së kodit tuaj. E dyta, kjo ju kursen nga nevoja për të punësuar një ekip të veçantë DevSecOps, duke ulur akoma më shumë shpenzimet tuaja.
Mjetet e mira open source gjithmonë krijohen duke pasur parasysh kërkesat e larta për fleksibilitet. Prandaj, ato mund të përdoren praktikisht në çdo ambient, duke mbuluar një gamë të gjerë detyrash. Për zhvilluesit, është shumë më e lehtë të integrojnë këto mjete me sistemin që ata tashmë e kanë ndërtuar duke punuar në projektet e tyre.
Por mund të lindin situata kur ju nevojitet një funksion që nuk është në mjetin tuaj të zgjedhur. Në këtë rast, keni mundësinë të forconi kodin e tij dhe të zhvilloni një mjet të ri mbi të, me funksionalitetin që ju nevojitet.
Meqenëse në shumicën e rasteve, zhvillimi i softuerit me burim të hapur ndikohet aktivisht nga komuniteti, vendimi për të bërë ndryshime merret mjaft shpejt dhe në mënyrë të arsyeshme: zhvilluesit e projektit open source mbështeten në mendimet dhe propozimet e përdoruesve, në mesazhet e tyre për gabimet e gjetura dhe problemet e tjera.
Përdorimi i Graudit për analizimin e sigurisë së kodit
Për analizën statike të kodit, mund të përdoren mjete të ndryshme me burim të hapur; nuk ka një mënyrë universale për të gjitha gjuhët programuese. Disa nga zhvilluesit e tyre ndjekin rekomandimet OWASP dhe përpiqen të mbulojnë sa më shumë gjuhë.
Këtu ne do të përdorim , një utilitar të thjeshtë për linjën e komandës që do të na lejojë të gjejmë dobësitë në kodin tonë. Ai mbështet gjuhë të ndryshme, por sidoqoftë, grupi i tyre është i kufizuar. Graudit është zhvilluar mbi bazën e utilitarit grep, i cili në të kaluarën doli nën licencën GNU.
EkzistojnĂ« mjete tĂ« ngjashme pĂ«r analizĂ«n statike tĂ« kodit â Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), flawfinder dhe tĂ« tjera. Por Graudit Ă«shtĂ« shumĂ« fleksibĂ«l dhe ka kĂ«rkesa minimale teknike. MegjithatĂ«, mund tĂ« ketĂ« detyra qĂ« Graudit nuk mund t'i zgjidhĂ«. AtĂ«herĂ« mund tĂ« kĂ«rkoni alternativa tĂ« tjera nĂ« kĂ«tĂ« listĂ« .
Ne mund të integrojmë këtë mjet në një projekt të caktuar, ose ta bëjmë atë të disponueshëm për një përdorues të zgjedhur, ose ta përdorim atë njëkohësisht në të gjithë projektet tona. Kjo tregon gjithashtu fleksibilitetin e Graudit. Pra, le të klonojmë fillimisht repo-në:
$ git clone https://github.com/wireghoul/grauditTani do të krijojmë një lidhje simbolike për Graudit për ta përdorur në formatin e komandës
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/grauditShtojmë një alias në .bashrc (ose në ndonjë skedë tjetër konfigurimi që përdorni):
#------ .bashrc ------
alias graudit="~/bin/graudit"Rindizemi:
$ source ~/.bashrc # OSE
$ exec $SHELL
Të kontrollojmë nëse instalimi ka kaluar me sukses:
$ graudit -hNëse shihni diçka të ngjashme, atëherë gjithçka është mirë.

Unë do të provoj një nga projektet e mia ekzistuese. Para se të filloj mjetin, duhet t'i kaloj një bazë të dhënash që përputhet me gjuhën në të cilën është shkruar projekti im. Bazat e të dhënave ndodhen në dosjen ~/gradit/signatures:
$ graudit -d ~/gradit/signatures/js.dbPra, unë testova dy skedarë js nga projekti im dhe Graudit nxori në konsolë informacion mbi dobësitë në kodin tim:


Mund ta provoni në të njëjtën mënyrë për projektet tuaja. Lista e bazave të të dhënave për gjuhë të ndryshme programimi mund të shihet .
Përparësitë dhe disavantazhet e Graudit
Graudit mbështet shumë gjuhë programimi. Prandaj, ai i përshtatet një audience të gjerë përdoruesish. Ai mund të konkurojë siç duhet me çdo alternativë falas ose me pagesë. Dhe është shumë e rëndësishme që projekti ende po përmirësohet, ndërsa komuniteti jo vetëm që ndihmon zhvilluesit, por edhe përdoruesit e tjerë që përpiqen të kuptojnë mjetin.
Ky është një mjet i përshtatshëm, por për momentin nuk mund të tregojë gjithmonë saktësisht se në çfarë qëndron problemi me një pjesë të dyshimtë kodu. Zhvilluesit vazhdojnë të përmirësojnë Graudit.
Por në çdo rast është e dobishme të kushtosh vëmendje problemeve potenciale të sigurisë në kod, duke përdorur mjete të tilla.
Fillimi...
NĂ« kĂ«tĂ« artikull kam shqyrtuar vetĂ«m njĂ« nga shumĂ« mĂ«nyrat pĂ«r tĂ« gjetur dobĂ«si â testimi statik i sigurisĂ« sĂ« aplikacioneve. TĂ« bĂ«sh njĂ« analizĂ« statike tĂ« kodit Ă«shtĂ« e lehtĂ«, por kjo Ă«shtĂ« vetĂ«m fillimi. PĂ«r tĂ« mĂ«suar mĂ« shumĂ« rreth sigurisĂ« sĂ« bazĂ«s tĂ«nde tĂ« kodit, duhet tĂ« integrosh nĂ« ciklin e jetĂ«s sĂ« zhvillimit tĂ« softuerit teste tĂ« tjera.
SOF6
dhe zgjedhja e duhur e planit do t'ju lejojĂ« tĂ« pĂ«rqendroheni mĂ« pak nĂ« probleme tĂ« pakĂ«ndshme â gjithçka do tĂ« funksionojĂ« pa ndĂ«rprerje dhe me njĂ« uptime shumĂ« tĂ« lartĂ«!
Burimi: habr.com
