Graudit atbalsta vairÄkas programmÄÅ”anas valodas un ļauj integrÄt koda bÄzes droŔības testÄÅ”anu tieÅ”i izstrÄdes procesÄ.
Avots:
TestÄÅ”ana ir svarÄ«ga programmatÅ«ras izstrÄdes dzÄ«ves cikla sastÄvdaļa. Ir daudz testÄÅ”anas veidu, katrs no tiem atrisina savu problÄmu. Å odien es vÄlos runÄt par droŔības problÄmu atraÅ”anu kodÄ.
AcÄ«mredzot mÅ«sdienu programmatÅ«ras izstrÄdes realitÄtÄ ir svarÄ«gi nodroÅ”inÄt procesu droŔību. Savulaik pat tika ieviests Ä«paÅ”s termins DevSecOps. Å is termins attiecas uz virkni procedÅ«ru, kuru mÄrÄ·is ir identificÄt un novÄrst lietojumprogrammas ievainojamÄ«bas. Ir specializÄti atvÄrtÄ pirmkoda risinÄjumi ievainojamÄ«bu pÄrbaudei saskaÅÄ ar standartiem
Ir dažÄdas pieejas droŔības problÄmu risinÄÅ”anai, piemÄram, statiskÄ lietojumprogrammu droŔības pÄrbaude (SAST), dinamiskÄ lietojumprogrammu droŔības pÄrbaude (DAST), interaktÄ«vÄ lietojumprogrammu droŔības pÄrbaude (IAST), programmatÅ«ras kompozÄ«cijas analÄ«ze un tÄ tÄlÄk.
StatiskÄ lietojumprogrammu droŔības pÄrbaude identificÄ kļūdas jau uzrakstÄ«tajÄ kodÄ. Å Ä« pieeja neprasa lietojumprogrammas palaiÅ”anu, tÄpÄc to sauc par statisko analÄ«zi.
Es pievÄrsÄ«Å”os statiskÄ koda analÄ«zei un izmantoÅ”u vienkÄrÅ”u atvÄrtÄ pirmkoda rÄ«ku, lai visu demonstrÄtu praksÄ.
KÄpÄc es izvÄlÄjos atvÄrtÄ pirmkoda rÄ«ku statiskÄ koda droŔības analÄ«zei
Tam ir vairÄki iemesli: pirmkÄrt, tas ir bezmaksas, jo jÅ«s izmantojat rÄ«ku, ko izstrÄdÄjusi lÄ«dzÄ«gi domÄjoÅ”u cilvÄku kopiena, kas vÄlas palÄ«dzÄt citiem izstrÄdÄtÄjiem. Ja jums ir maza komanda vai jaunuzÅÄmums, jums ir lieliska iespÄja ietaupÄ«t naudu, izmantojot atvÄrtÄ pirmkoda programmatÅ«ru, lai pÄrbaudÄ«tu savas kodu bÄzes droŔību. OtrkÄrt, tas novÄrÅ” nepiecieÅ”amÄ«bu nolÄ«gt atseviŔķu DevSecOps komandu, tÄdÄjÄdi vÄl vairÄk samazinot izmaksas.
Labi atvÄrtÄ pirmkoda rÄ«ki vienmÄr tiek radÄ«ti, Åemot vÄrÄ paaugstinÄtas elastÄ«bas prasÄ«bas. TÄpÄc tos var izmantot gandrÄ«z jebkurÄ vidÄ, aptverot plaÅ”u uzdevumu klÄstu. IzstrÄdÄtÄjiem ir daudz vieglÄk savienot Å”Ädus rÄ«kus ar sistÄmu, ko viÅi jau ir izveidojuÅ”i, strÄdÄjot pie saviem projektiem.
TaÄu var bÅ«t gadÄ«jumi, kad jums ir nepiecieÅ”ama funkcija, kas nav pieejama jÅ«su izvÄlÄtajÄ rÄ«kÄ. Å ajÄ gadÄ«jumÄ jums ir iespÄja izveidot tÄ kodu un, pamatojoties uz to, izstrÄdÄt savu rÄ«ku ar jums nepiecieÅ”amo funkcionalitÄti.
TÄ kÄ vairumÄ gadÄ«jumu atvÄrtÄ pirmkoda programmatÅ«ras izstrÄdi aktÄ«vi ietekmÄ sabiedrÄ«ba, lÄmums par izmaiÅÄm tiek pieÅemts diezgan Ätri un precÄ«zi: atvÄrtÄ pirmkoda projekta izstrÄdÄtÄji paļaujas uz lietotÄju atsauksmÄm un ieteikumiem, viÅu ziÅojumiem par atrastÄs kļūdas un citas problÄmas.
Graudit izmantoŔana koda droŔības analīzei
StatiskÄ koda analÄ«zei varat izmantot dažÄdus atvÄrtÄ pirmkoda rÄ«kus; nav universÄla rÄ«ka visÄm programmÄÅ”anas valodÄm. Dažu no tiem izstrÄdÄtÄji ievÄro OWASP ieteikumus un cenÅ”as aptvert pÄc iespÄjas vairÄk valodu.
Å eit mÄs izmantosim
Ir lÄ«dzÄ«gi rÄ«ki statiskÄ koda analÄ«zei - Rough Auditing Tool for Security (RATS), Securitycompass Web Application Analysis Tool (SWAAT), kļūdu meklÄtÄjs un tÄ tÄlÄk. Bet Graudit ir ļoti elastÄ«gs un tam ir minimÄlas tehniskÄs prasÄ«bas. TomÄr jums var rasties problÄmas, kuras Graudit nevar atrisinÄt. Tad jÅ«s varat meklÄt citas iespÄjas Å”eit
MÄs varam integrÄt Å”o rÄ«ku konkrÄtÄ projektÄ vai padarÄ«t to pieejamu izvÄlÄtam lietotÄjam, vai arÄ« izmantot to vienlaikus visos savos projektos. Å eit arÄ« izpaužas Graudit elastÄ«ba. TÄtad vispirms klonÄsim repo:
$ git clone https://github.com/wireghoul/graudit
Tagad izveidosim simbolisku saiti, lai Graudit to izmantotu komandu formÄtÄ
$ cd ~/bin && mkdir graudit
$ ln --symbolic ~/graudit/graudit ~/bin/graudit
Pievienosim aizstÄjvÄrdu .bashrc (vai jebkuram izmantotajam konfigurÄcijas failam):
#------ .bashrc ------
alias graudit="~/bin/graudit"
AtsÄknÄÅ”ana:
$ source ~/.bashrc # OR
$ exex $SHELL
PÄrbaudÄ«sim, vai instalÄÅ”ana bija veiksmÄ«ga:
$ graudit -h
Ja redzi ko lÄ«dzÄ«gu, tad viss ir kÄrtÄ«bÄ.
Es testÄÅ”u vienu no saviem esoÅ”ajiem projektiem. Pirms rÄ«ka palaiÅ”anas tam ir jÄnodod datu bÄze, kas atbilst valodai, kurÄ ir rakstÄ«ts mans projekts. Datu bÄzes atrodas mapÄ ~/gradit/signatures:
$ graudit -d ~/gradit/signatures/js.db
TÄtad, es pÄrbaudÄ«ju divus js failus no sava projekta, un Graudit konsolei parÄdÄ«ja informÄciju par ievainojamÄ«bÄm manÄ kodÄ:
JÅ«s varat mÄÄ£inÄt pÄrbaudÄ«t savus projektus tÄdÄ paÅ”Ä veidÄ. JÅ«s varat redzÄt dažÄdu programmÄÅ”anas valodu datu bÄzu sarakstu
Graudit priekŔrocības un trūkumi
Graudit atbalsta daudzas programmÄÅ”anas valodas. TÄpÄc tas ir piemÄrots plaÅ”am lietotÄju lokam. Tas var pienÄcÄ«gi konkurÄt ar visiem bezmaksas vai maksas analogiem. Un ir ļoti svarÄ«gi, ka projektÄ joprojÄm tiek veikti uzlabojumi, un kopiena palÄ«dz ne tikai izstrÄdÄtÄjiem, bet arÄ« citiem lietotÄjiem, kuri cenÅ”as izdomÄt rÄ«ku.
Tas ir Ärts rÄ«ks, taÄu lÄ«dz Å”im tas ne vienmÄr var precÄ«zi noteikt, kÄda ir problÄma ar aizdomÄ«gu koda daļu. IzstrÄdÄtÄji turpina uzlabot Graudit.
Bet jebkurÄ gadÄ«jumÄ, izmantojot Å”Ädus rÄ«kus, ir lietderÄ«gi pievÄrst uzmanÄ«bu iespÄjamÄm droŔības problÄmÄm kodÄ.
SÄkumsā¦
Å ajÄ rakstÄ es apskatÄ«ju tikai vienu no daudzajiem veidiem, kÄ atrast ievainojamÄ«bas ā statisko lietojumprogrammu droŔības testÄÅ”anu. StatiskÄ koda analÄ«zes veikÅ”ana ir vienkÄrÅ”a, taÄu tas ir tikai sÄkums. Lai uzzinÄtu vairÄk par savas kodu bÄzes droŔību, programmatÅ«ras izstrÄdes dzÄ«ves ciklÄ ir jÄintegrÄ cita veida testÄÅ”ana.
Par reklÄmas tiesÄ«bÄm
Avots: www.habr.com