Si të përdorni një utilitar të thjeshtë për të identifikuar dobësi në kodin programues

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

Si të përdorni një utilitar të thjeshtë për të identifikuar dobësi në kodin programues
Burimi: Unsplash (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 OWASP, 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 Graudit, 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ë 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/graudit

Tani 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/graudit

Shtojmë 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 -h

Nëse shihni diçka të ngjashme, atëherë gjithçka është mirë.

Si të përdorni një utilitar të thjeshtë për të identifikuar dobësi në kodin programues

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.db

Pra, unë testova dy skedarë js nga projekti im dhe Graudit nxori në konsolë informacion mbi dobësitë në kodin tim:

Si të përdorni një utilitar të thjeshtë për të identifikuar dobësi në kodin programues

Si të përdorni një utilitar të thjeshtë për të identifikuar dobësi në kodin programues

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 këtu.

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

VPS i besueshëm 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ë!

Si të përdorni një utilitar të thjeshtë për të identifikuar dobësi në kodin programues

Burimi: habr.com

Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS 🔥 Blini hosting të besueshëm për faqe interneti me mbrojtje nga DDoS, serverë VPS VDS | ProHoster