ProHoster > IevainojamÄ«bu skenÄÅ”ana un droÅ”a izstrÄde. 1. daļa
IevainojamÄ«bu skenÄÅ”ana un droÅ”a izstrÄde. 1. daļa
Savas profesionÄlÄs darbÄ«bas ietvaros izstrÄdÄtÄjiem, testÄtÄjiem un droŔības speciÄlistiem ir jÄsadarbojas ar tÄdiem procesiem kÄ ievainojamÄ«bas pÄrvaldÄ«ba (VM), (droÅ”Ä) SDLC.
Zem Ŕīm frÄzÄm slÄpjas dažÄdas prakses un izmantoto rÄ«ku kopas, kas ir savstarpÄji saistÄ«tas, lai gan to lietotÄji atŔķiras.
Tehniskais progress vÄl nav sasniedzis punktu, kurÄ viens rÄ«ks var aizstÄt cilvÄku, lai analizÄtu infrastruktÅ«ras un programmatÅ«ras droŔību.
Ir interesanti saprast, kÄpÄc tas tÄ ir un ar kÄdÄm problÄmÄm saskaras.
Procesi
NeaizsargÄtÄ«bas pÄrvaldÄ«bas process ir paredzÄts nepÄrtrauktai infrastruktÅ«ras droŔības un ielÄpu pÄrvaldÄ«bas uzraudzÄ«bai.
Secure SDLC process (ādroÅ”s izstrÄdes ciklsā) ir paredzÄts, lai saglabÄtu lietojumprogrammu droŔību izstrÄdes un darbÄ«bas laikÄ.
LÄ«dzÄ«ga Å”o procesu sastÄvdaļa ir Vulnerability Assessment process ā ievainojamÄ«bas novÄrtÄjums, ievainojamÄ«bas skenÄÅ”ana.
GalvenÄ atŔķirÄ«ba starp VM un SDLC skenÄÅ”anu ir tÄda, ka pirmajÄ gadÄ«jumÄ mÄrÄ·is ir atklÄt zinÄmas treÅ”Äs puses programmatÅ«ras vai konfigurÄcijas ievainojamÄ«bas. PiemÄram, novecojusi Windows versija vai noklusÄjuma kopienas virkne SNMP.
OtrajÄ gadÄ«jumÄ mÄrÄ·is ir atklÄt ievainojamÄ«bas ne tikai treÅ”o puÅ”u komponentos (atkarÄ«bÄs), bet galvenokÄrt jaunÄ produkta kodÄ.
Tas rada atŔķirÄ«bas rÄ«kos un pieejÄs. ManuprÄt, uzdevums atrast jaunas ievainojamÄ«bas lietojumprogrammÄ ir daudz interesantÄks, jo tas neattiecas uz pirkstu nospiedumu versijÄm, baneru vÄkÅ”anu, brutÄlu piespieÅ”anu parolÄm utt.
KvalitatÄ«vai automatizÄtai lietojumprogrammu ievainojamÄ«bu skenÄÅ”anai ir nepiecieÅ”ami algoritmi, kas Åem vÄrÄ lietojumprogrammas semantiku, tÄs mÄrÄ·i un specifiskos draudus.
InfrastruktÅ«ras skeneri bieži var aizstÄt ar taimeri, kÄ es to izteicu avleonovs. Lieta tÄda, ka tÄ«ri statistiski jÅ«s varat uzskatÄ«t savu infrastruktÅ«ru par neaizsargÄtu, ja neesat to atjauninÄjis, teiksim, mÄnesi.
Darbarīki
SkenÄÅ”anu, tÄpat kÄ droŔības analÄ«zi, var veikt, izmantojot melno vai balto kastÄ«ti.
Black Box
MelnÄs kastes skenÄÅ”anas laikÄ rÄ«kam jÄspÄj strÄdÄt ar pakalpojumu, izmantojot tÄs paÅ”as saskarnes, ar kurÄm lietotÄji strÄdÄ ar to.
InfrastruktÅ«ras skeneri (Tenable Nessus, Qualys, MaxPatrol, Rapid7 Nexpose u.c.) meklÄ atvÄrtos tÄ«kla portus, vÄc "banerus", nosaka instalÄtÄs programmatÅ«ras versijas un meklÄ savÄ zinÄÅ”anu bÄzÄ informÄciju par Å”o versiju ievainojamÄ«bÄm. ViÅi arÄ« mÄÄ£ina atklÄt konfigurÄcijas kļūdas, piemÄram, noklusÄjuma paroles vai atvÄrto datu piekļuvi, vÄjus SSL Å”ifrus utt.
TÄ«mekļa lietojumprogrammu skeneri (Acunetix WVS, Netsparker, Burp Suite, OWASP ZAP u.c.) var identificÄt arÄ« zinÄmos komponentus un to versijas (piemÄram, CMS, ietvarus, JS bibliotÄkas). Skenera galvenie soļi ir rÄpoÅ”ana un izplÅ«dinÄÅ”ana.
PÄrmeklÄÅ”anas laikÄ skeneris apkopo informÄciju par esoÅ”ajÄm lietojumprogrammu saskarnÄm un HTTP parametriem. IzplÅ«des laikÄ visos atklÄtajos parametros tiek ievietoti mutÄti vai Ä£enerÄti dati, lai izraisÄ«tu kļūdu un atklÄtu ievainojamÄ«bu.
Å Ädi aplikÄciju skeneri pieder pie DAST un IAST klasÄm ā attiecÄ«gi Dynamic un Interactive Application Security Testing.
BaltÄ kaste
Ar baltÄs kastes skenÄÅ”anu ir vairÄk atŔķirÄ«bu.
VirtuÄlÄs maŔīnas procesa ietvaros skeneriem (Vulners, Insecurity Couch, Vuls, Tenable Nessus utt.) bieži tiek nodroÅ”inÄta piekļuve sistÄmÄm, veicot autentificÄtu skenÄÅ”anu. TÄdÄjÄdi skeneris var lejupielÄdÄt instalÄtÄs pakotnes versijas un konfigurÄcijas parametrus tieÅ”i no sistÄmas, tos neuzminot no tÄ«kla pakalpojumu baneriem.
SkenÄÅ”ana ir precÄ«zÄka un pilnÄ«gÄka.
Ja runÄjam par lietojumprogrammu baltÄs kastes skenÄÅ”anu (CheckMarx, HP Fortify, Coverity, RIPS, FindSecBugs u.c.), tad parasti runa ir par statiskÄ koda analÄ«zi un atbilstoÅ”u SAST klases rÄ«ku izmantoÅ”anu - Static Application Security Testing.
ProblÄmas
Ar skenÄÅ”anu ir daudz problÄmu! Ar lielÄko daļu man nÄkas saskarties personÄ«gi, sniedzot pakalpojumu Äku skenÄÅ”anai un droÅ”u izstrÄdes procesu, kÄ arÄ« veicot droŔības analÄ«zes darbus.
IzcelÅ”u 3 galvenÄs problÄmu grupas, ko apliecina sarunas ar inženieriem un informÄcijas droŔības dienestu vadÄ«tÄjiem visdažÄdÄkajos uzÅÄmumos.
ÄŖstenoÅ”anas grÅ«tÄ«bas. Lai tas bÅ«tu efektÄ«vs, skeneri ir jÄizvieto, jÄkonfigurÄ, jÄpielÄgo katrai lietojumprogrammai, tiem ir jÄpieŔķir pÄrbaudes vide skenÄÅ”anai un jÄievieÅ” CI/CD procesÄ. PretÄjÄ gadÄ«jumÄ tÄ bÅ«s bezjÄdzÄ«ga formÄla procedÅ«ra, kas radÄ«s tikai viltus pozitÄ«vus rezultÄtus
SkenÄÅ”anas ilgums. Pat 2019. gadÄ skeneri slikti veic saskarÅu dublikÄciju un var pavadÄ«t dienas, skenÄjot tÅ«kstoÅ” lappuÅ”u ar 10 parametriem katrÄ, uzskatot, ka tÄs atŔķiras, lai gan par tiem atbild viens un tas pats kods. TajÄ paÅ”Ä laikÄ lÄmums par izvÄrÅ”anu ražoÅ”anÄ izstrÄdes cikla ietvaros ir jÄpieÅem Ätri
Slikti ieteikumi. Skeneri sniedz diezgan vispÄrÄ«gus ieteikumus, un izstrÄdÄtÄjs no tiem ne vienmÄr var Ätri saprast, kÄ samazinÄt riska lÄ«meni un, pats galvenais, vai tas ir jÄdara tieÅ”i tagad, vai tas vÄl nav biedÄjoÅ”i.
DestruktÄ«va ietekme uz pieteikumu. Skeneri var arÄ« veikt DoS uzbrukumu lietojumprogrammai, kÄ arÄ« var izveidot lielu skaitu entÄ«tiju vai mainÄ«t esoÅ”Äs (piemÄram, izveidot desmitiem tÅ«kstoÅ”u komentÄru emuÄrÄ), tÄpÄc nevajadzÄtu neapdomÄ«gi sÄkt skenÄÅ”anu ražoÅ”anÄ.
Zema ievainojamÄ«bas noteikÅ”anas kvalitÄte. Skeneri parasti izmanto fiksÄtu derÄ«go kravu masÄ«vu un var viegli palaist garÄm ievainojamÄ«bu, kas neietilpst lietojumprogrammas zinÄmajÄ darbÄ«bas scenÄrijÄ.
Skeneris nesaprot lietojumprogrammas funkcijas. PaÅ”i skeneri nezina, kas ir āinternetbankaā, āmaksÄjumsā, ākomentÄrsā. ViÅiem ir tikai saites un parametri, tÄpÄc milzÄ«gs iespÄjamo biznesa loÄ£ikas ievainojamÄ«bu slÄnis paliek pilnÄ«bÄ atklÄts; viÅi nedomÄs veikt dubultu norakstÄ«Å”anu, izspiegot kÄda cita datus, izmantojot ID, vai palielinÄt atlikumu, izmantojot noapaļoÅ”anu.
Skeneris nesaprot lapu semantiku. Skeneri nevar lasÄ«t FAQ, nevar atpazÄ«t captchas un paÅ”i neizdomÄs, kÄ reÄ£istrÄties un pÄc tam atkÄrtoti pieteikties, ka nevar noklikŔķinÄt uz āatteiktiesā un kÄ parakstÄ«t pieprasÄ«jumus, mainot parametru. vÄrtÄ«bas. TÄ rezultÄtÄ lielÄkÄ daļa lietojumprogrammu var netikt skenÄta vispÄr.
ProblÄmas ar pirmkoda skenÄÅ”anu
Viltus pozitÄ«vi. StatiskÄ analÄ«ze ir sarežģīts uzdevums, kas ietver daudzus kompromisus. PrecizitÄte bieži ir jÄupurÄ, un pat dÄrgi uzÅÄmumu skeneri rada milzÄ«gu skaitu viltus pozitÄ«vu rezultÄtu
ÄŖstenoÅ”anas grÅ«tÄ«bas. Lai palielinÄtu statiskÄs analÄ«zes precizitÄti un pilnÄ«gumu, ir jÄprecizÄ skenÄÅ”anas noteikumi, un Å”o noteikumu rakstÄ«Å”ana var bÅ«t pÄrÄk darbietilpÄ«ga. Dažreiz ir vieglÄk atrast visas vietas kodÄ ar kaut kÄdu kļūdu un tÄs novÄrst, nekÄ uzrakstÄ«t noteikumu, lai atklÄtu Å”Ädus gadÄ«jumus
AtkarÄ«bas atbalsta trÅ«kums. Lieli projekti ir atkarÄ«gi no liela skaita bibliotÄku un ietvaru, kas paplaÅ”ina programmÄÅ”anas valodas iespÄjas. Ja skenera zinÄÅ”anu bÄzÄ nav informÄcijas par "izlietnÄm" Å”ajos ietvaros, tÄ kļūs par aklo vietu un skeneris vienkÄrÅ”i pat nesapratÄ«s kodu.
SkenÄÅ”anas ilgums. Koda ievainojamÄ«bu atraÅ”ana ir sarežģīts uzdevums algoritmu ziÅÄ. TÄpÄc process var aizÅemt ilgu laiku un prasÄ«t ievÄrojamus skaitļoÅ”anas resursus.
Zems pÄrklÄjums. Neskatoties uz resursu patÄriÅu un skenÄÅ”anas laiku, SAST rÄ«ku izstrÄdÄtÄjiem joprojÄm ir jÄpiekÄpjas un jÄanalizÄ ne visi stÄvokļi, kuros programma var bÅ«t.
AtklÄjumu reproducÄjamÄ«ba. NorÄdÄ«t uz konkrÄto lÄ«niju un zvanu steku, kas noved pie ievainojamÄ«bas, ir lieliski, taÄu patiesÄ«bÄ bieži vien skeneris nesniedz pietiekami daudz informÄcijas, lai pÄrbaudÄ«tu ievainojamÄ«bas esamÄ«bu no Ärpuses. Galu galÄ, kļūda var bÅ«t arÄ« miruÅ”ajÄ kodÄ, kas uzbrucÄjam nav sasniedzams
InfrastruktÅ«ras skenÄÅ”anas problÄmas
Nepietiekams inventÄrs. LielÄs infrastruktÅ«rÄs, Ä«paÅ”i Ä£eogrÄfiski atdalÄ«tÄs, bieži vien ir visgrÅ«tÄk noteikt, kurus saimniekdatorus skenÄt. Citiem vÄrdiem sakot, skenÄÅ”anas uzdevums ir cieÅ”i saistÄ«ts ar lÄ«dzekļu pÄrvaldÄ«bas uzdevumu
Slikta prioritÄÅ”u noteikÅ”ana. TÄ«kla skeneri bieži rada daudzus rezultÄtus ar trÅ«kumiem, kurus nevar izmantot praksÄ, taÄu formÄli to riska lÄ«menis ir augsts. PatÄrÄtÄjs saÅem ziÅojumu, kuru ir grÅ«ti interpretÄt, un nav skaidrs, kas vispirms ir jÄlabo.
Slikti ieteikumi. Skenera zinÄÅ”anu bÄze bieži satur tikai ļoti vispÄrÄ«gu informÄciju par ievainojamÄ«bu un to, kÄ to novÄrst, tÄpÄc administratoriem bÅ«s jÄbruÅojas ar Google. SituÄcija ir nedaudz labÄka ar baltÄs kastes skeneriem, kas var izdot Ä«paÅ”u komandu, lai to labotu
Roku darbs. InfrastruktÅ«rÄm var bÅ«t daudz mezglu, kas nozÄ«mÄ potenciÄli daudz trÅ«kumu, par kuriem ziÅojumi ir jÄanalizÄ un jÄanalizÄ manuÄli katrÄ iterÄcijÄ.
Slikts pÄrklÄjums. InfrastruktÅ«ras skenÄÅ”anas kvalitÄte ir tieÅ”i atkarÄ«ga no zinÄÅ”anu bÄzes apjoma par ievainojamÄ«bÄm un programmatÅ«ras versijÄm. kurÄ, izrÄdÄs, pat tirgus lÄ«deriem nav visaptveroÅ”as zinÄÅ”anu bÄzes, un bezmaksas risinÄjumu datubÄzÄs ir daudz informÄcijas, kuras lÄ«deriem nav
ProblÄmas ar lÄpÄ«Å”anu. VisbiežÄk infrastruktÅ«ras ievainojamÄ«bu laboÅ”ana ietver pakotnes atjauninÄÅ”anu vai konfigurÄcijas faila maiÅu. Liela problÄma Å”eit ir tÄ, ka sistÄma, Ä«paÅ”i mantota, atjauninÄÅ”anas rezultÄtÄ var darboties neparedzami. BÅ«tÄ«bÄ jums bÅ«s jÄveic ražoÅ”anas tieÅ”Äs infrastruktÅ«ras integrÄcijas testi.
Pieejas
KÄ tad tÄ?
SÄ«kÄk par piemÄriem un to, kÄ risinÄt daudzas no uzskaitÄ«tajÄm problÄmÄm, pastÄstÄ«Å”u turpmÄkajÄs daļÄs, bet pagaidÄm norÄdÄ«Å”u galvenos virzienus, kuros vari strÄdÄt:
DažÄdu skenÄÅ”anas rÄ«ku apkopoÅ”ana. Pareizi izmantojot vairÄkus skenerus, jÅ«s varat ievÄrojami palielinÄt zinÄÅ”anu bÄzi un noteikÅ”anas kvalitÄti. JÅ«s varat atrast pat vairÄk ievainojamÄ«bu nekÄ visi atseviŔķi palaisti skeneri kopÄ, savukÄrt jÅ«s varat precÄ«zÄk novÄrtÄt riska lÄ«meni un sniegt vairÄk ieteikumu
SAST un DAST integrÄcija. Ir iespÄjams palielinÄt DAST pÄrklÄjumu un SAST precizitÄti, apmainoties ar informÄciju. No avotiem varat iegÅ«t informÄciju par esoÅ”ajiem marÅ”rutiem, un, izmantojot DAST, varat pÄrbaudÄ«t, vai ievainojamÄ«ba ir redzama no Ärpuses
MaŔīnmÄcÄ«baā¢. 2015. gadÄ I stÄstÄ«ja (un vairÄk) par statistikas izmantoÅ”anu, lai sniegtu skeneriem hakeru intuÄ«ciju un paÄtrinÄtu to darbÄ«bu. Tas noteikti ir lopbarÄ«ba automatizÄtas droŔības analÄ«zes attÄ«stÄ«bai nÄkotnÄ.
IAST integrÄcija ar automÄtiskajiem testiem un OpenAPI. CI/CD konveijerÄ ir iespÄjams izveidot skenÄÅ”anas procesu, kura pamatÄ ir rÄ«ki, kas darbojas kÄ HTTP starpniekserveris, un funkcionÄlie testi, kas darbojas, izmantojot HTTP. OpenAPI/Swagger testi un lÄ«gumi sniegs skenerim trÅ«kstoÅ”o informÄciju par datu plÅ«smÄm un ļaus skenÄt lietojumprogrammu dažÄdos stÄvokļos
Pareiza konfigurÄcija. Katrai lietojumprogrammai un infrastruktÅ«rai ir jÄizveido piemÄrots skenÄÅ”anas profils, Åemot vÄrÄ saskarÅu skaitu un raksturu un izmantotÄs tehnoloÄ£ijas.
Skenera pielÄgoÅ”ana. Bieži vien lietojumprogrammu nevar skenÄt, nepÄrveidojot skeneri. PiemÄrs ir maksÄjumu vÄrteja, kurÄ jÄparaksta katrs pieprasÄ«jums. Neierakstot savienotÄju vÄrtejas protokolÄ, skeneri bez prÄta bombardÄs pieprasÄ«jumus ar nepareizu parakstu. TÄpat ir jÄraksta specializÄti skeneri konkrÄtam defekta veidam, piemÄram NedroÅ”a tieÅ”Ä objekta atsauce
Riska vadÄ«ba. DažÄdu skeneru izmantoÅ”ana un integrÄcija ar ÄrÄjÄm sistÄmÄm, piemÄram, Asset Management un Threat Management, ļaus izmantot daudzus parametrus riska lÄ«meÅa novÄrtÄÅ”anai, lai vadÄ«ba varÄtu iegÅ«t adekvÄtu priekÅ”statu par attÄ«stÄ«bas vai infrastruktÅ«ras paÅ”reizÄjo droŔības stÄvokli.
Sekojiet lÄ«dzi jaunumiem un izjauksim ievainojamÄ«bas skenÄÅ”anu!