Graudit mbështet shumë gjuhë programimi dhe lejon integrimin 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. Ka shumë lloje testimesh, secili zgjidh problemin e vet. Sot do të flas për gjetjen e problemeve të sigurisë në kod.
Është e qartë se në realitetin e sotëm të zhvillimit të softuerit, sigurimi i sigurisë së proceseve është i rëndësishëm. Njëkohësisht, është vendosur një term i veçantë DevSecOps. Ky term nënkupton një seri procedurash të orientuara për identifikimin dhe eliminimin e vulnerabiliteteve në aplikacion. Ekzistojnë zgjidhje specifike open source për shqyrtimin e vulnerabiliteteve sipas standardeve , të cilat përshkruajnë lloje të ndryshme dhe sjelljen e vulnerabiliteteve në kodin burim.
Ka janë 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ë software-it (Software Composition Analysis) dhe kështu me radhë.
Testimi statik i sigurisë së aplikacioneve identifikon gabime në kodin e shkruar tashmë. Ky qasje nuk kërkon që aplikacioni të ekzekutohet, prandaj quhet analizë statike.
Do të ndalem te analiza statike e kodit dhe do të përdor një mjet të thjeshtë open source për ta demonstruar gjithçka në praktikë.
Pse zgjodha një mjet open source për analizën statike të sigurisë së kodit
Kajohet një numër arsyeje: së pari, është falas, pasi po përdorni një mjet të zhvilluar nga një komunitet bashkëpunuesish që dëshiron të ndihmojë zhvilluesit e tjerë. Nëse keni një ekip të vogël ose një startup, keni një mundësi të shkëlqyer për të kursyer duke përdorur softuer me burim të hapur për të kontrolluar sigurinë e kodit tuaj. Së dyti, kjo ju lironn nga nevoja për të punësuar një ekip të veçantë DevSecOps, çka e ul më tej shpenzimet tuaja.
Mjetet e mira me burim të hapur gjithmonë krijohen me kërkesa të rritura për fleksibilitet. Prandaj, ato mund të përdoren praktikisht në çdo mjedis dhe mbulojnë një gamë të gjerë detyrash. Zhvilluesve u është shumë më e lehtë të integrojnë këto mjete me sistemin që ata tashmë kanë ndërtuar teksa punojnë në projektet e tyre.
Por mund të ndodhin situata kur do t'ju nevojitet një funksionalitet që nuk është në mjetin tuaj të zgjedhur. Në këtë rast, keni mundësinë të forkoni kodin e tij dhe të zhvilloni mbi të mjetin tuaj me funksionalitetin që ju nevojitet.
Pasi në shumicën e rasteve, zhvillimi i softuerëve me burim të hapur ndikohet aktivisht nga komuniteti, vendimet për ndryshime merren mjaft shpejt dhe me qëllim: zhvilluesit e projekteve open source bazohen në opinionet dhe sugjerimet e përdoruesve, në raportet e tyre për gabimet dhe problemet e tjera.
Përdorimi i Graudit për analizën e sigurisë së kodit
Për analizën statike të kodit, mund të përdoren mjete të ndryshme me burim të hapur, nuk ekziston një mjet universale për të gjitha gjuhët e programimit. Zhvilluesit e disa prej tyre ndjekin rekomandimet e OWASP dhe përpiqen të mbulojnë sa më shumë gjuhë.
Këtu do të përdorim , një utilitet i thjeshtë për linjën e komandës, i cili do na ndihmojë të gjejmë vulnerabilitete në bazën tonë të kodit. Ai mbështet gjuhë të ndryshme, por numri i tyre mbetet i kufizuar. Graudit është zhvilluar mbi bazën e utilitetit grep, i cili në atë kohë 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ë tjerë. 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 opsione të tjera në këtë listë .
Ne mund ta integrojmë këtë mjet në një projekt specifik, ose ta bëjmë atë të доступshëm për një përdorues të përzgjedhur, ose — ta përdorim atë njëkohësisht në të gjithë projektet tona. Këtu shfaqet edhe fleksibiliteti i Graudit. Pra, le t'i klonojmë së pari depo:
$ git clone https://github.com/wireghoul/grauditTani le të krijojmë një lidhje simbolike për Graudit, që ta përdorim në formatin e komandës
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/grauditShtojmë një alias në .bashrc (ose në ndonjë konfigurim tjetër që po përdorni):
#------ .bashrc ------
alias graudit="~/bin/graudit"Rivendosim:
$ source ~/.bashrc # OSE
$ exec $SHELL
Verifikojmë, nëse instalimi ka kaluar me sukses:
$ graudit -hNëse shihni diçka të ngjashme, atëherë, çdo gjë është në rregull.

Unë do të testoj një nga projektet e mia ekzistuese. Para se të filloj me instrumentin, duhet t'i kaloj bazën e të dhënave përkatëse gjuhës, në të cilën është shkruar projekti im. Baza e të dhënave ndodhen në dosjen ~/gradit/signatures:
$ graudit -d ~/gradit/signatures/js.dbPra, kam testuar dy skedarë js nga projekti im, dhe Graudit ka nxjerrë në konsolë informacionin e dobësive në kodin tim:


Mund të provoni të testoni projektet tuaja në këtë mënyrë. Lista e bazave të të dhënave për gjuhë të ndryshme programimi mund të shikohet .
Avantazhet dhe disavantazhet e Graudit
Graudit mbështet shumë gjuhë programimi. Prandaj, ai është i përshtatshëm për një gamë të gjerë përdoruesish. Ai mund të konkurrojë dinjitetshëm me çdo alternativë falas ose me pagesë. Ndërsa, është shumë e rëndësishme që projekti vazhdon të përmirësohet dhe komuniteti jo vetëm që ndihmon zhvilluesit, por edhe përdoruesit e tjerë që përpiqen të kuptojnë instrumentin.
Ky është një instrument i dobishëm, por për momentin nuk mund të përcaktojë gjithmonë saktësisht se në çfarë problemi përballet me një pjesë të dyshimtë të kodit. Zhvilluesit po vazhdojnë ta përmirësojnë Graudit.
Megjithatë, është e dobishme të kushtoni vëmendje problemeve të mundshme 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 tuaj të kodit, duhet të integrosh në ciklin e jetës së zhvillimit të softuerit lloje të tjera testimi.
Si reklamë
dhe zgjedhja e duhur e planit do të lejojë të shqetësoheni më pak për probleme të pakëndshme — gjithçka do të funksionojë pa probleme dhe me një uptime shumë të lartë!
Burimi: habr.com
