Mums bija 2 kodu analizatori, 4 dinamiskÄs testÄÅ”anas rÄ«ki, mÅ«su paÅ”u amatniecÄ«ba un 250 skripti. Nav tÄ, ka tas viss ir vajadzÄ«gs paÅ”reizÄjÄ procesÄ, taÄu, tiklÄ«dz sÄkat ieviest DevSecOps, jums ir jÄiet lÄ«dz beigÄm.
Avots. VaroÅu veidotÄji: Džastins Roilends un Dens Harmons.
Kas ir SecDevOps? KÄ ar DevSecOps? KÄdas ir atŔķirÄ«bas? Lietojumprogrammu droŔība ā par ko tÄ ir? KÄpÄc klasiskÄ pieeja vairs nedarbojas? Zina atbildes uz visiem Å”iem jautÄjumiem Jurijs Å abaļins no Zobenzivs droŔība. Jurijs atbildÄs uz visu detalizÄti un analizÄs pÄrejas problÄmas no klasiskÄ Application Security modeļa uz DevSecOps procesu: kÄ pareizi pieiet droÅ”as izstrÄdes procesa integrÄcijai DevOps procesÄ un neko nesalauzt, kÄ iziet cauri galvenajiem posmiem. droŔības pÄrbaudes, kÄdus rÄ«kus var izmantot un ar ko tie atŔķiras un kÄ tos pareizi konfigurÄt, lai izvairÄ«tos no kļūmÄm.
Par runÄtÄju:Jurijs Å abaļins - UzÅÄmuma galvenais apsardzes arhitekts Zobenzivs droŔība. AtbildÄ«gs par SSDL ievieÅ”anu, par lietojumprogrammu analÄ«zes rÄ«ku vispÄrÄju integrÄciju vienotÄ izstrÄdes un testÄÅ”anas ekosistÄmÄ. 7 gadu pieredze informÄcijas droŔības jomÄ. StrÄdÄjis Alfa-Bank, Sberbank un Positive Technologies, kas izstrÄdÄ programmatÅ«ru un sniedz pakalpojumus. RunÄtÄjs starptautiskajÄs konferencÄs ZerONights, PHDays, RISSPA, OWASP.
Lietojumprogrammu droŔība: par ko tÄ ir?
Lietojumprogrammu droŔība - Å Ä« ir droŔības sadaļa, kas ir atbildÄ«ga par lietojumprogrammu droŔību. Tas neattiecas uz infrastruktÅ«ru vai tÄ«kla droŔību, bet gan uz to, ko mÄs rakstÄm un pie kÄ strÄdÄ izstrÄdÄtÄji ā tie ir paÅ”as lietojumprogrammas trÅ«kumi un ievainojamÄ«bas.
Virziens SDL vai SDLC SÄkot no DroŔības izstrÄdes dzÄ«ves cikls - izstrÄdÄjis Microsoft. DiagrammÄ parÄdÄ«ts kanoniskais SDLC modelis, kura galvenais uzdevums ir droŔības lÄ«dzdalÄ«ba katrÄ izstrÄdes posmÄ no prasÄ«bÄm lÄ«dz izlaiÅ”anai un ražoÅ”anai. Microsoft saprata, ka nozarÄ ir pÄrÄk daudz kļūdu, to ir vairÄk un ar to kaut kas ir jÄdara, un viÅi ierosinÄja Å”o pieeju, kas ir kļuvusi par kanonisku.
Lietojumprogrammu droŔības un SSDL mÄrÄ·is nav atklÄt ievainojamÄ«bas, kÄ parasti tiek uzskatÄ«ts, bet gan novÄrst to raÅ”anos. Laika gaitÄ Microsoft kanoniskÄ pieeja ir uzlabota, attÄ«stÄ«ta un ieviesta dziļÄkÄ, detalizÄtÄkÄ nirÅ”anÄ.
Kanoniskais SDLC ir ļoti detalizÄts dažÄdÄs metodoloÄ£ijÄs - OpenSAMM, BSIMM, OWASP. MetodoloÄ£ijas ir dažÄdas, bet kopumÄ lÄ«dzÄ«gas.
Äkas droŔības modelis brieduma periodÄ
Man tas visvairÄk patÄ«k BSIMM SÄkot no Äkas droŔības modelis brieduma periodÄ. MetodoloÄ£ijas pamatÄ ir Lietojumprogrammu droŔības procesa sadalÄ«Å”ana 4 jomÄs: pÄrvaldÄ«ba, izlÅ«koÅ”ana, SSDL saskares punkti un izvietoÅ”ana. KatrÄ domÄnÄ ir 12 prakses, kas ir attÄlotas kÄ 112 aktivitÄtes.
Katrai no 112 aktivitÄtÄm ir 3 brieduma lÄ«meÅi: iesÄcÄjs, vidÄjs un progresÄ«vs. JÅ«s varat izpÄtÄ«t visas 12 prakses sadaļas pÄc sadaļas, atlasÄ«t sev svarÄ«gas lietas, izdomÄt, kÄ tÄs ieviest un pakÄpeniski pievienot elementus, piemÄram, statisko un dinamisko koda analÄ«zi vai koda pÄrskatÄ«Å”anu. JÅ«s pierakstÄt plÄnu un mierÄ«gi strÄdÄjat saskaÅÄ ar to kÄ daļu no izvÄlÄto aktivitÄÅ”u Ä«stenoÅ”anas.
KÄpÄc DevSecOps
DevOps ir vispÄrÄjs, liels process, kurÄ ir jÄÅem vÄrÄ droŔība.
SÄkotnÄji DevOps iesaistÄ«tas droŔības pÄrbaudes. PraksÄ apsardzes komandu skaits bija daudz mazÄks nekÄ Å”obrÄ«d, un tÄs darbojÄs nevis kÄ procesa dalÄ«bnieki, bet gan kÄ kontroles un uzraudzÄ«bas institÅ«cija, kas tai uzliek prasÄ«bas un izlaiduma beigÄs pÄrbauda produkta kvalitÄti. Å Ä« ir klasiska pieeja, kurÄ droŔības komandas stÄvÄja aiz sienas no izstrÄdes un nepiedalÄ«jÄs procesÄ.
GalvenÄ problÄma ir tÄ, ka informÄcijas droŔība ir noŔķirta no attÄ«stÄ«bas. Parasti Ŕī ir sava veida informÄcijas droŔības shÄma, un tajÄ ir 2-3 lieli un dÄrgi rÄ«ki. Reizi seÅ”os mÄneÅ”os pienÄk pirmkods vai lietojumprogramma, kas ir jÄpÄrbauda, āāun reizi gadÄ tie tiek ražoti pentesti. Tas viss noved pie tÄ, ka nozares izlaiÅ”anas datums tiek aizkavÄts, un izstrÄdÄtÄjs ir pakļauts milzÄ«gam skaitam automatizÄtu rÄ«ku ievainojamÄ«bu. To visu izjaukt un salabot nav iespÄjams, jo iepriekÅ”ÄjÄ pusgada rezultÄti nebija sakÄrtoti, bet te ir jauna partija.
MÅ«su uzÅÄmuma darba gaitÄ mÄs redzam, ka droŔība visÄs jomÄs un nozarÄs saprot, ka ir laiks panÄkt un griezties ar attÄ«stÄ«bu uz viena riteÅa veikls. DevSecOps paradigma lieliski atbilst veiklajai izstrÄdes metodoloÄ£ijai, ievieÅ”anai, atbalstam un dalÄ«bai katrÄ laidienÄ un iterÄcijÄ.
PÄreja uz DevSecOps
VissvarÄ«gÄkais vÄrds droŔības attÄ«stÄ«bas dzÄ«ves ciklÄ ir "process". Tas ir jÄsaprot, pirms domÄjat par rÄ«ku iegÄdi.
Nepietiek tikai ar rÄ«ku iekļauÅ”anu DevOps procesÄ ā svarÄ«ga ir komunikÄcija un sapratne starp procesa dalÄ«bniekiem.
CilvÄki ir svarÄ«gÄki, nevis instrumenti.
Bieži vien droÅ”a izstrÄdes procesa plÄnoÅ”ana sÄkas ar rÄ«ka izvÄli un iegÄdi un beidzas ar mÄÄ£inÄjumiem integrÄt rÄ«ku paÅ”reizÄjÄ procesÄ, kas paliek mÄÄ£inÄjumi. Tas noved pie neveiksmÄ«gÄm sekÄm, jo āāvisiem instrumentiem ir savas Ä«paŔības un ierobežojumi.
IzplatÄ«ts gadÄ«jums ir, kad droŔības nodaļa izvÄlÄjÄs labu, dÄrgu rÄ«ku ar plaÅ”Äm iespÄjÄm un nÄca pie izstrÄdÄtÄjiem, lai to integrÄtu procesÄ. Bet tas neizdodas - process ir strukturÄts tÄ, ka jau iegÄdÄtÄ rÄ«ka ierobežojumi neietilpst paÅ”reizÄjÄ paradigmÄ.
Vispirms aprakstiet, kÄdu rezultÄtu vÄlaties un kÄ process izskatÄ«sies. Tas palÄ«dzÄs izprast instrumenta un droŔības lomu procesÄ.
SÄciet ar to, kas jau tiek izmantots
Pirms dÄrgu instrumentu iegÄdes apskatiet, kas jums jau ir. Katram uzÅÄmumam ir izstrÄdÄtas droŔības prasÄ«bas attÄ«stÄ«bai, ir Äeki, pentesti - kÄpÄc gan to visu nepÄrveidot ikvienam saprotamÄ un ÄrtÄ formÄ?
Parasti prasÄ«bas ir papÄ«ra Talmuds, kas atrodas plauktÄ. Bija gadÄ«jums, kad atnÄcÄm uz kÄdu uzÅÄmumu apskatÄ«t procesus un lÅ«dzÄm apskatÄ«t programmatÅ«ras droŔības prasÄ«bas. SpeciÄlists, kurÅ” ar to nodarbojÄs, ilgu laiku meklÄja:
- Tagad kaut kur piezÄ«mÄs bija ceļŔ, kur atrodas Å”is dokuments.
PrasÄ«bÄm, Äekiem un citÄm lietÄm izveido lapu piem. SaplÅ«Å”ana - tas ir Ärti ikvienam.
Ir vieglÄk pÄrformatÄt to, kas jums jau ir, un izmantot to, lai sÄktu.
Izmantojiet droŔības Äempionus
Parasti vidÄjÄ uzÅÄmumÄ ar 100-200 izstrÄdÄtÄjiem ir viens droŔības speciÄlists, kurÅ” veic vairÄkas funkcijas un fiziski nav laika visu pÄrbaudÄ«t. Pat ja viÅÅ” cenÅ”as visu iespÄjamo, viÅÅ” viens pats nepÄrbaudÄ«s visu izstrÄdes radÄ«to kodu. Å Ädiem gadÄ«jumiem ir izstrÄdÄta koncepcija - DroŔības Äempioni.
DroŔības Äempioni ir izstrÄdÄtÄju komandas cilvÄki, kurus interesÄ jÅ«su produkta droŔība.
DroŔības Äempions ir ieejas punkts izstrÄdes komandÄ un droŔības evaÅÄ£Älists.
Parasti, kad droŔības speciÄlists ierodas izstrÄdes komandÄ un norÄda uz kļūdu kodÄ, viÅÅ” saÅem pÄrsteigtu atbildi:
- Un kas esi tu? Es tevi redzu pirmo reizi. Ar mani viss ir kÄrtÄ«bÄ - vecÄkais draugs man iedeva āpieteiktiesā koda pÄrskatÄ«Å”anÄ, mÄs virzÄmies tÄlÄk!
TÄ ir tipiska situÄcija, jo daudz vairÄk uzticas senioriem vai vienkÄrÅ”i komandas biedriem, ar kuriem izstrÄdÄtÄjs nemitÄ«gi sazinÄs darbÄ un koda pÄrskatÄ«Å”anÄ. Ja apsardzes virsnieka vietÄ uz kļūdu un sekÄm norÄdÄ«s DroŔības Äempions, tad viÅa vÄrdam bÅ«s lielÄks svars.
TurklÄt izstrÄdÄtÄji zina savu kodu labÄk nekÄ jebkurÅ” droŔības speciÄlists. Personai, kurai statiskÄs analÄ«zes rÄ«kÄ ir vismaz 5 projekti, parasti ir grÅ«ti atcerÄties visas nianses. DroŔības Äempioni zina savu produktu: kas ar ko mijiedarbojas un uz ko vispirms jÄskatÄs ā tie ir efektÄ«vÄki.
TÄpÄc apsveriet iespÄju ieviest droŔības Äempionus un paplaÅ”inÄt savas droŔības komandas ietekmi. Tas noder arÄ« paÅ”am Äempionam: profesionÄlÄ izaugsme jaunÄ jomÄ, tehniskÄ redzesloka paplaÅ”inÄÅ”ana, tehnisko, vadÄ«bas un lÄ«dera iemaÅu celÅ”ana, tirgus vÄrtÄ«bas palielinÄÅ”ana. Tas ir sociÄlÄs inženierijas elements, jÅ«su āacisā izstrÄdes komandÄ.
PÄrbaudes posmi
Paradigma no 20 lÄ«dz 80 saka, ka 20% pūļu dod 80% rezultÄtu. Å ie 20% ir lietojumprogrammu analÄ«zes prakse, ko var un vajadzÄtu automatizÄt. Å Ädu darbÄ«bu piemÄri ir statiskÄ analÄ«ze - SAST, dinamiskÄ analÄ«ze - DAST Šø AtvÄrtÄ pirmkoda vadÄ«ba. SÄ«kÄk pastÄstÄ«Å”u par aktivitÄtÄm, kÄ arÄ« par rÄ«kiem, ar kÄdÄm funkcijÄm parasti sastopamies, tos ievieÅ”ot procesÄ, un kÄ to pareizi darÄ«t.
GalvenÄs instrumentu problÄmas
Es izcelÅ”u problÄmas, kas attiecas uz visiem instrumentiem un kurÄm jÄpievÄrÅ” uzmanÄ«ba. Es tos analizÄÅ”u sÄ«kÄk, lai turpmÄk neatkÄrtotos.
Ilgs analÄ«zes laiks. Ja no apÅemÅ”anÄs lÄ«dz izlaiÅ”anai visas pÄrbaudes un montÄža aizÅem 30 minÅ«tes, tad informÄcijas droŔības pÄrbaudes prasÄ«s vienu dienu. TÄtad neviens procesu nepalÄninÄs. Å emiet vÄrÄ Å”o funkciju un izdariet secinÄjumus.
Augsts lÄ«menis viltus negatÄ«vs vai viltus pozitÄ«vs. Visi produkti ir atŔķirÄ«gi, visi izmanto dažÄdus ietvarus un savu kodÄÅ”anas stilu. DažÄdÄs kodu bÄzÄs un tehnoloÄ£ijÄs rÄ«ki var parÄdÄ«t dažÄdus viltus negatÄ«vu un viltus pozitÄ«vo vÄrtÄ«bu lÄ«meÅus. TÄtad, paskatieties, kas Ä«sti ir iekÅ”Ä jÅ«su uzÅÄmumiem un par jÅ«su lietojumprogrammas parÄdÄ«s labus un uzticamus rezultÄtus.
Nav integrÄcijas ar esoÅ”ajiem rÄ«kiem. Apskatiet rÄ«kus saistÄ«bÄ ar integrÄciju ar to, ko jau izmantojat. PiemÄram, ja jums ir Jenkins vai TeamCity, pÄrbaudiet rÄ«ku integrÄciju ar Å”o programmatÅ«ru, nevis ar GitLab CI, kuru neizmantojat.
PielÄgoÅ”anas trÅ«kums vai pÄrmÄrÄ«ga sarežģītÄ«ba. Ja rÄ«kam nav API, tad kÄpÄc tas ir vajadzÄ«gs? Visam, ko var paveikt saskarnÄ, jÄbÅ«t pieejamam, izmantojot API. IdeÄlÄ gadÄ«jumÄ rÄ«kam vajadzÄtu bÅ«t iespÄjai pielÄgot pÄrbaudes.
Nav produktu attÄ«stÄ«bas ceļveža. AttÄ«stÄ«ba nestÄv uz vietas, mÄs vienmÄr izmantojam jaunus ietvarus un funkcijas, pÄrrakstot veco kodu jaunÄs valodÄs. MÄs vÄlamies bÅ«t pÄrliecinÄti, ka mÅ«su iegÄdÄtais rÄ«ks atbalstÄ«s jaunas sistÄmas un tehnoloÄ£ijas. TÄpÄc ir svarÄ«gi zinÄt, ka precei ir Ä«sta un pareiza Ceļvedis attÄ«stÄ«bu.
Procesa funkcijas
Papildus rÄ«ku iezÄ«mÄm Åemiet vÄrÄ izstrÄdes procesa iezÄ«mes. PiemÄram, attÄ«stÄ«bas kavÄÅ”ana ir izplatÄ«ta kļūda. ApskatÄ«sim, kÄdas vÄl funkcijas bÅ«tu jÄÅem vÄrÄ un kam jÄpievÄrÅ” uzmanÄ«ba droŔības komandai.
Lai nepalaistu garÄm izstrÄdes un izlaiÅ”anas termiÅus, izveidojiet dažÄdi noteikumi un dažÄdi parÄdÄ«t aizbÄžÅus ā kritÄriji izveides procesa apturÄÅ”anai ievainojamÄ«bu gadÄ«jumÄ, dažÄdÄm vidÄm. PiemÄram, mÄs saprotam, ka paÅ”reizÄjÄ filiÄle iet uz izstrÄdes stendu vai UAT, kas nozÄ«mÄ, ka mÄs neapstÄjamies un nesakÄm:
"Tev ir ievainojamÄ«bas, jÅ«s nekur tÄlÄk netiksit!"
Å ajÄ brÄ«dÄ« ir svarÄ«gi pastÄstÄ«t izstrÄdÄtÄjiem, ka ir droŔības problÄmas, kurÄm jÄpievÄrÅ” uzmanÄ«ba.
IevainojamÄ«bu klÄtbÅ«tne nav ŔķÄrslis turpmÄkai pÄrbaudei: manuÄla, integrÄcija vai manuÄla. No otras puses, mums ir kaut kÄ jÄpaaugstina produkta droŔība un lai izstrÄdÄtÄji nepamestu novÄrtÄ to, ko viÅi uzskata par droÅ”u. TÄpÄc dažreiz mÄs darÄm tÄ: stendÄ, kad tas tiek izrullÄts izstrÄdes vidÄ, mÄs vienkÄrÅ”i paziÅojam izstrÄdei:
- PuiÅ”i, jums ir problÄmas, lÅ«dzu, pievÄrsiet tÄm uzmanÄ«bu.
UAT posmÄ mÄs atkal rÄdÄm brÄ«dinÄjumus par ievainojamÄ«bÄm, un izlaiÅ”anas stadijÄ mÄs sakÄm:
- PuiÅ”i, mÄs jÅ«s vairÄkas reizes brÄ«dinÄjÄm, jÅ«s neko nedarÄ«jÄt - mÄs jÅ«s ar to neizlaidÄ«sim.
Ja mÄs runÄjam par kodu un dinamiku, tad ir jÄparÄda un jÄbrÄ«dina par ievainojamÄ«bÄm tikai tÄm funkcijÄm un kodam, kas tikko tika ierakstÄ«ts Å”ajÄ funkcijÄ. Ja izstrÄdÄtÄjs pabÄ«da pogu par 3 pikseļiem un mÄs viÅam sakÄm, ka viÅam tur ir SQL injekcija un tÄpÄc tas ir steidzami jÄlabo, tas ir nepareizi. Paskatieties tikai uz to, kas tagad ir rakstÄ«ts, un uz izmaiÅÄm, kas nÄk aplikÄcijÄ.
PieÅemsim, ka mums ir zinÄms funkcionÄls defekts ā tas, kÄ aplikÄcijai nevajadzÄtu darboties: nauda netiek pÄrskaitÄ«ta, nospiežot uz pogas nenotiek pÄreja uz nÄkamo lapu vai arÄ« prece netiek ielÄdÄta. DroŔības defekti - tie ir tie paÅ”i defekti, bet ne lietojumprogrammas darbÄ«bas, bet droŔības ziÅÄ.
Ne visas programmatÅ«ras kvalitÄtes problÄmas ir droŔības problÄmas. Bet visas droŔības problÄmas ir saistÄ«tas ar programmatÅ«ras kvalitÄti. Å erifs Mansurs, Expedia.
TÄ kÄ visas ievainojamÄ«bas ir vieni un tie paÅ”i defekti, tÄm jÄatrodas tajÄ paÅ”Ä vietÄ, kur visi attÄ«stÄ«bas defekti. TÄpÄc aizmirstiet par ziÅojumiem un biedÄjoÅ”iem PDF failiem, kurus neviens nelasa.
Kad es strÄdÄju izstrÄdes uzÅÄmumÄ, es saÅÄmu ziÅojumu no statiskÄs analÄ«zes rÄ«kiem. AtvÄru, Å”ausminÄjos, uztaisÄ«ju kafiju, pÄrlapoju 350 lappuses, aizvÄru un turpinÄju strÄdÄt. Lielie ziÅojumi ir miruÅ”i ziÅojumi. Parasti viÅi nekur nenonÄk, vÄstules tiek izdzÄstas, aizmirstas, pazaudÄtas vai uzÅÄmums saka, ka uzÅemas risku.
Ko darÄ«t? MÄs vienkÄrÅ”i pÄrveidojam apstiprinÄtos defektus, ko atradÄm, izstrÄdei ÄrtÄ formÄ, piemÄram, ievietojam tos Jira atlikumÄ. MÄs pieŔķiram prioritÄti defektiem un novÄrÅ”am tos prioritÄrÄ secÄ«bÄ, kÄ arÄ« funkcionÄlos defektus un pÄrbaudes defektus.
StatiskÄ analÄ«ze ā SAST
Å Ä« ir ievainojamÄ«bu koda analÄ«ze., taÄu tas nav tas pats, kas SonarQube. MÄs ne tikai pÄrbaudÄm modeļus vai stilu. AnalÄ«zÄ tiek izmantotas vairÄkas pieejas: saskaÅÄ ar ievainojamÄ«bas koku, saskaÅÄ ar Datu plÅ«sma, analizÄjot konfigurÄcijas failus. Tas ir viss, kas attiecas uz paÅ”u kodu.
Pieejas plusi: koda ievainojamÄ«bu identificÄÅ”ana agrÄ«nÄ izstrÄdes stadijÄkad vÄl nav stendu vai gatavu instrumentu, un pakÄpeniska skenÄÅ”anas iespÄja: tiek skenÄta koda sadaļa, kas ir mainÄ«ta, un tikai tÄ funkcija, ko mÄs paÅ”laik darÄm, kas samazina skenÄÅ”anas laiku.
MÄ«nusi - tas ir atbalsta trÅ«kums nepiecieÅ”amajÄm valodÄm.
IntegrÄcijas rÄ«ks: Jenkins, TeamCity un Gitlab CI.
IzstrÄdes vide: Intellij IDEA, Visual Studio. IzstrÄdÄtÄjam ÄrtÄk ir nevis orientÄties pa nesaprotamu interfeisu, kas vÄl jÄiegaumÄ, bet gan redzÄt visas nepiecieÅ”amÄs integrÄcijas un ievainojamÄ«bas, ko viÅÅ” ir atradis tieÅ”i darba vietÄ savÄ izstrÄdes vidÄ.
Koda pÄrskatÄ«Å”ana: SonarQube un manuÄla pÄrskatÄ«Å”ana.
Defektu izsekotÄji: Jira un Bugzilla.
AttÄlÄ redzami daži no labÄkajiem statiskÄs analÄ«zes pÄrstÄvjiem.
SvarÄ«gi ir nevis rÄ«ki, bet process, tÄpÄc ir atvÄrtÄ koda risinÄjumi, kas ir labi arÄ« procesa pÄrbaudei.
SAST Open Source neatradÄ«s milzÄ«gu skaitu ievainojamÄ«bu vai sarežģītu DataFlow, taÄu tos var un vajadzÄtu izmantot, veidojot procesu. Tie palÄ«dz saprast, kÄ process tiks veidots, kurÅ” reaÄ£Äs uz kļūdÄm, kurÅ” ziÅos un kurÅ” ziÅos. Ja vÄlaties veikt koda droŔības izveides sÄkotnÄjo posmu, izmantojiet atvÄrtÄ pirmkoda risinÄjumus.
KÄ to var integrÄt, ja atrodaties sava ceļojuma sÄkumÄ un jums nav nekÄ: ne CI, ne Dženkinsa, ne TeamCity? ApsvÄrsim integrÄciju procesÄ.
PÄc notikuma - izvilkt pieprasÄ«jumu, apÅemties. JÅ«s skenÄjat kodu, un bÅ«vÄjuma statuss parÄda, vai droŔības pÄrbaude ir izturÄta vai neizdevusies.
Atsauksmes Protams, atgriezeniskÄ saite vienmÄr ir nepiecieÅ”ama. Ja jÅ«s tikko veicÄt apsardzi sÄnos, ievietojÄt to kastÄ un nevienam neko par to nestÄstÄ«jÄt, un pÄc tam mÄneÅ”a beigÄs izmetÄt virkni kļūdu - tas nav pareizi un nav labi.
IntegrÄcija ar kodu pÄrskatÄ«Å”anas sistÄmu
KÄdreiz mÄs darbojÄmies kÄ tehniskÄ AppSec lietotÄja noklusÄjuma pÄrskatÄ«tÄjs vairÄkos svarÄ«gos projektos. AtkarÄ«bÄ no tÄ, vai jaunajÄ kodÄ ir konstatÄtas kļūdas vai kļūdu nav, recenzents iestata izvilkÅ”anas pieprasÄ«juma statusu uz āpieÅemtā vai ānepiecieÅ”ams darbsā - vai nu viss ir kÄrtÄ«bÄ, vai arÄ« saites uz to, kas tieÅ”i ir jÄuzlabo. ir jÄuzlabo. IntegrÄcijai ar versiju, kas tiek nodota ražoÅ”anÄ, esam iespÄjojuÅ”i apvienoÅ”anas aizliegumu, ja informÄcijas droŔības pÄrbaude netiek izturÄta. MÄs to iekļÄvÄm manuÄlajÄ koda pÄrskatÄ, un citi procesa dalÄ«bnieki redzÄja Ŕī konkrÄtÄ procesa droŔības statusus.
IntegrÄcija ar SonarQube
Daudziem ir kvalitatÄ«vi vÄrti koda kvalitÄtes ziÅÄ. Å eit ir tas pats ā jÅ«s varat izveidot tÄdus paÅ”us vÄrtus tikai SAST rÄ«kiem. BÅ«s tas pats interfeiss, tie paÅ”i kvalitÄtes vÄrti, tikai tie tiks izsaukti droŔības vÄrti. Un arÄ«, ja jums ir process, izmantojot SonarQube, varat tur viegli integrÄt visu.
IntegrÄcija CI lÄ«menÄ«
Å eit viss ir arÄ« diezgan vienkÄrÅ”s:
LÄ«dzvÄrtÄ«gi autotestiem, vienÄ«bu testi.
SadalÄ«jums pa attÄ«stÄ«bas posmiem: izstrÄdÄtÄjs, tests, prod. Var tikt iekļauti dažÄdi noteikumu kopumi vai dažÄdi kļūmes apstÄkļi: apturiet montÄžu, neapturiet montÄžu.
SinhronÄ/asinhronÄ palaiÅ”ana. MÄs gaidÄm droŔības testu beigas vai nÄ. Tas ir, mÄs tos vienkÄrÅ”i palaidÄm un virzÄmies tÄlÄk, un tad mÄs iegÅ«stam statusu, ka viss ir labi vai slikti.
Tas viss ir ideÄlÄ rozÄ pasaulÄ. ReÄlajÄ dzÄ«vÄ tÄda nav, bet mÄs cenÅ”amies. DroŔības pÄrbaužu rezultÄtiem jÄbÅ«t lÄ«dzÄ«giem vienÄ«bas pÄrbaužu rezultÄtiem.
PiemÄram, mÄs paÅÄmÄm lielu projektu un nolÄmÄm, ka tagad skenÄsim to ar SAST - OK. MÄs iespiedÄm Å”o projektu SAST, tas mums iedeva 20 000 ievainojamÄ«bu un ar stingru lÄmumu nolÄmÄm, ka viss ir kÄrtÄ«bÄ. 20 000 ievainojamÄ«bu ir mÅ«su tehniskais parÄds. MÄs ieliksim parÄdu kastÄ, lÄnÄm to notÄ«rÄ«sim un pievienosim kļūdas defektu izsekotÄjiem. Noalgosim firmu, darÄ«sim visu paÅ”i vai lai mums palÄ«dz droŔības Äempioni ā un tehniskie parÄdi samazinÄsies.
Un visas jaunÄs ievainojamÄ«bas jaunajÄ kodÄ ir jÄnovÄrÅ” tÄpat kÄ kļūdas vienÄ«bÄ vai automÄtiskajos testos. RelatÄ«vi runÄjot, montÄža sÄkÄs, mÄs to paskrÄjÄm, divi testi un divi droŔības testi neizdevÄs. OK - gÄjÄm, paskatÄ«jÄmies, kas noticis, salabojÄm vienu lietu, salabojÄm citu, palaistÄm nÄkamreiz - viss bija kÄrtÄ«bÄ, nekÄdas jaunas ievainojamÄ«bas neparÄdÄ«jÄs, neviens tests neizdevÄs. Ja Å”is uzdevums ir dziļÄks un jums tas ir labi jÄsaprot vai ievainojamÄ«bu novÄrÅ”ana ietekmÄ lielus zem pÄrsega esoÅ”Äs lietas slÄÅus: defektu izsekotÄjam tika pievienota kļūda, tÄ tiek noteikta par prioritÄti un izlabota. DiemžÄl pasaule nav ideÄla, un testi dažreiz neizdodas.
DroŔības vÄrtu piemÄrs ir kvalitÄtes vÄrtu analogs, Åemot vÄrÄ koda ievainojamÄ«bu esamÄ«bu un skaitu.
MÄs integrÄjamies ar SonarQube - spraudnis ir instalÄts, viss ir ļoti Ärti un forÅ”i.
IntegrÄcija ar attÄ«stÄ«bas vidi
IntegrÄcijas iespÄjas:
Pirms apstiprinÄÅ”anas tiek veikta skenÄÅ”ana no izstrÄdes vides.
SkatÄ«t rezultÄtus.
RezultÄtu analÄ«ze.
SinhronizÄcija ar serveri.
Å Ädi izskatÄs rezultÄtu saÅemÅ”ana no servera.
MÅ«su attÄ«stÄ«bas vidÄ Intellij IDEJA vienkÄrÅ”i parÄdÄs papildu vienums, kas informÄ, ka skenÄÅ”anas laikÄ tika atklÄtas Å”Ädas ievainojamÄ«bas. JÅ«s varat nekavÄjoties rediÄ£Ät kodu, apskatÄ«t ieteikumus un PlÅ«smas diagramma. Tas viss atrodas izstrÄdÄtÄja darba vietÄ, kas ir ļoti Ärti - nav jÄseko citÄm saitÄm un jÄskatÄs kaut kas papildu.
AtvÄrtÄ koda
Å Ä« ir mana mīļÄkÄ tÄma. Visi izmanto atvÄrtÄ koda bibliotÄkas - kÄpÄc rakstÄ«t kruÄ·u un velosipÄdu baru, ja var paÅemt gatavu bibliotÄku, kurÄ viss jau ir ieviests?
Protams, tÄ ir taisnÄ«ba, taÄu arÄ« bibliotÄkÄs raksta cilvÄki, tajÄs ir arÄ« noteikti riski un ir arÄ« ievainojamÄ«bas, par kurÄm periodiski vai pastÄvÄ«gi tiek ziÅots. TÄpÄc ir nÄkamais solis lietojumprogrammu droŔībÄ - tÄ ir atvÄrtÄ pirmkoda komponentu analÄ«ze.
AtvÄrtÄ pirmkoda analÄ«ze ā OSA
Rīks ietver trīs lielus posmus.
IevainojamÄ«bu meklÄÅ”ana bibliotÄkÄs. PiemÄram, rÄ«ks zina, ka mÄs izmantojam kÄdu bibliotÄku, un tas atrodas CVE vai ir dažas kļūdu izsekotÄju ievainojamÄ«bas, kas saistÄ«tas ar Å”o bibliotÄkas versiju. MÄÄ£inot to izmantot, rÄ«ks parÄdÄ«s brÄ«dinÄjumu, ka bibliotÄka ir ievainojama, un iesaka izmantot citu versiju, kurai nav ievainojamÄ«bu.
Licences tÄ«rÄ«bas analÄ«ze. Pie mums tas vÄl nav Ä«paÅ”i populÄrs, bet, ja strÄdÄ ÄrzemÄs, tad tur ik pa laikam var dabÅ«t nodokli par kÄda atvÄrtÄ koda komponenta izmantoÅ”anu, kuru nevar izmantot vai modificÄt. SaskaÅÄ ar licencÄtÄs bibliotÄkas politiku mÄs to nevaram darÄ«t. Vai arÄ«, ja mÄs to modificÄjÄm un izmantojam, mums vajadzÄtu publicÄt savu kodu. Protams, neviens nevÄlas publicÄt savu produktu kodu, taÄu jÅ«s varat arÄ« pasargÄt sevi no tÄ.
RÅ«pnieciskÄ vidÄ izmantoto komponentu analÄ«ze. IedomÄsimies hipotÄtisku situÄciju, ka beidzot esam pabeiguÅ”i izstrÄdi un izlaiduÅ”i mÅ«su mikropakalpojuma jaunÄko versiju. ViÅÅ” tur brÄ«niŔķīgi dzÄ«vo ā nedÄļu, mÄnesi, gadu. MÄs to nevÄcam, neveicam droŔības pÄrbaudes, Ŕķiet, ka viss ir kÄrtÄ«bÄ. TaÄu pÄkÅ”Åi, divas nedÄļas pÄc izlaiÅ”anas, atvÄrtÄ pirmkoda komponentÄ, ko mÄs izmantojam Å”ajÄ konkrÄtajÄ bÅ«vniecÄ«bÄ, industriÄlajÄ vidÄ parÄdÄs kritiska ievainojamÄ«ba. Ja mÄs nereÄ£istrÄsim, ko un kur lietojam, mÄs vienkÄrÅ”i neredzÄsim Å”o ievainojamÄ«bu. Dažiem rÄ«kiem ir iespÄja pÄrraudzÄ«t ievainojamÄ«bas bibliotÄkÄs, kuras paÅ”laik tiek izmantotas Å”ajÄ nozarÄ. Tas ir ļoti noderÄ«gi.
Funkcijas:
DažÄdas politikas dažÄdiem attÄ«stÄ«bas posmiem.
Komponentu uzraudzÄ«ba rÅ«pnieciskÄ vidÄ.
BibliotÄku kontrole organizÄcijÄ.
Atbalsts dažÄdÄm veidoÅ”anas sistÄmÄm un valodÄm.
Docker attÄlu analÄ«ze.
Daži nozares lÄ«deru piemÄri, kuri nodarbojas ar atvÄrtÄ pirmkoda analÄ«zi.
VienÄ«gais bezmaksas ir Å”is AtkarÄ«bas pÄrbaude no OWASP. Varat to ieslÄgt pirmajos posmos, redzÄt, kÄ tas darbojas un ko tas atbalsta. BÅ«tÄ«bÄ tie visi ir mÄkoÅa produkti vai uz vietas, taÄu aiz to bÄzes tie joprojÄm tiek nosÅ«tÄ«ti uz internetu. ViÅi uz savu serveri sÅ«ta nevis jÅ«su bibliotÄkas, bet gan jaucÄjvÄrtÄ«bas vai savas vÄrtÄ«bas, kuras viÅi aprÄÄ·ina, un pirkstu nospiedumus, lai saÅemtu informÄciju par ievainojamÄ«bu esamÄ«bu.
Procesu integrÄcija
BibliotÄku perimetra kontrole, kas tiek lejupielÄdÄti no ÄrÄjiem avotiem. Mums ir ÄrÄjÄs un iekÅ”ÄjÄs krÄtuves. PiemÄram, Event Central darbojas Nexus, un mÄs vÄlamies nodroÅ”inÄt, lai mÅ«su repozitorijÄ nebÅ«tu ievainojamÄ«bu ar statusu ākritisksā vai āaugstsā. Varat konfigurÄt starpniekserveri, izmantojot Nexus Firewall Lifecycle rÄ«ku, lai Å”Ädas ievainojamÄ«bas tiktu novÄrstas un nenonÄktu iekÅ”ÄjÄ repozitorijÄ.
IntegrÄcija CI. VienÄ lÄ«menÄ« ar autotestiem, vienÄ«bu testiem un sadalÄ«Å”anu izstrÄdes posmos: dev, test, prod. KatrÄ posmÄ varat lejupielÄdÄt jebkuru bibliotÄku, izmantot jebko, taÄu, ja ir kaut kas grÅ«ts ar ākritiskoā statusu, iespÄjams, ir vÄrts pievÄrst izstrÄdÄtÄju uzmanÄ«bu tam jau ražoÅ”anas stadijÄ.
IntegrÄcija ar artefaktiem: Nexus un JFrog.
IntegrÄcija attÄ«stÄ«bas vidÄ. IzvÄlÄtajiem rÄ«kiem jÄbÅ«t integrÄtiem ar izstrÄdes vidÄm. IzstrÄdÄtÄjam ir jÄbÅ«t piekļuvei skenÄÅ”anas rezultÄtiem no savas darba vietas vai iespÄjai paÅ”am skenÄt un pÄrbaudÄ«t kodu, vai tajÄ nav ievainojamÄ«bu, pirms viÅÅ” pievienojas CVS.
CD integrÄcija. Å Ä« ir forÅ”a funkcija, kas man ļoti patÄ«k un par kuru jau runÄju ā jaunu ievainojamÄ«bu raÅ”anÄs uzraudzÄ«ba industriÄlÄ vidÄ. Tas darbojas apmÄram Å”Ädi.
Mums ir Publiskie komponentu krÄtuves ā daži rÄ«ki ÄrpusÄ un mÅ«su iekÅ”Äjais repozitorijs. MÄs vÄlamies, lai tajÄ bÅ«tu tikai uzticami komponenti. Pieprasot starpniekserveri, mÄs pÄrbaudÄm, vai lejupielÄdÄtajÄ bibliotÄkÄ nav ievainojamÄ«bu. Ja uz to attiecas noteiktas politikas, kuras mÄs iestatÄm un obligÄti saskaÅojam ar izstrÄdi, mÄs to neaugÅ”upielÄdÄjam un mums tiek piedÄvÄts izmantot citu versiju. AttiecÄ«gi, ja bibliotÄkÄ ir kaut kas patieÅ”Äm kritisks un slikts, tad izstrÄdÄtÄjs nesaÅems bibliotÄku instalÄÅ”anas stadijÄ - lai viÅÅ” izmanto augstÄku vai zemÄku versiju.
BÅ«vÄjot pÄrbaudÄm, vai nevienam nav nekas slikts paslÄ«dÄjis, vai visas sastÄvdaļas ir droÅ”as un zibatmiÅÄ neviens nav ienesis neko bÄ«stamu.
Mums repozitorijÄ ir tikai uzticami komponenti.
Izvietojot, mÄs vÄlreiz pÄrbaudÄm paÅ”u pakotni: war, jar, DL vai Docker attÄlu, lai pÄrliecinÄtos, ka tÄ atbilst politikai.
Ieejot nozarÄ, mÄs sekojam lÄ«dzi, kas notiek industriÄlajÄ vidÄ: parÄdÄs vai neparÄdÄs kritiskÄs ievainojamÄ«bas.
DinamiskÄ analÄ«ze ā DAST
DinamiskÄs analÄ«zes rÄ«ki bÅ«tiski atŔķiras no visa iepriekÅ” minÄtÄ. Å Ä« ir sava veida imitÄcija lietotÄja darbam ar lietojumprogrammu. Ja Ŕī ir tÄ«mekļa lietojumprogramma, mÄs nosÅ«tÄm pieprasÄ«jumus, imitÄjot klienta darbu, noklikŔķiniet uz priekÅ”pusÄ esoÅ”ajÄm pogÄm, no veidlapas nosÅ«tÄm mÄkslÄ«gos datus: pÄdiÅas, iekavas, rakstzÄ«mes dažÄdos kodÄjumos, lai redzÄtu, kÄ programma darbojas un apstrÄdÄ. ÄrÄjie dati.
TÄ pati sistÄma ļauj pÄrbaudÄ«t atvÄrtÄ pirmkoda veidÅu ievainojamÄ«bas. TÄ kÄ DAST nezina, kuru atvÄrto avotu mÄs izmantojam, tas vienkÄrÅ”i izmet "ļaunprÄtÄ«gus" modeļus un analizÄ servera atbildes:
- JÄ, Å”eit ir deserializÄcijas problÄma, bet ne Å”eit.
Å eit ir lieli riski, jo, veicot Å”o droŔības pÄrbaudi uz tÄ paÅ”a stenda, ar kuru strÄdÄ testÄtÄji, var notikt nepatÄ«kamas lietas.
Mums bija situÄcija, kad beidzot palaižÄm AppScan: mÄs ilgu laiku mÄÄ£inÄjÄm piekļūt lietojumprogrammai, ieguvÄm 3 kontus un bijÄm laimÄ«gi - beidzot visu pÄrbaudÄ«sim! MÄs sÄkÄm skenÄÅ”anu, un pirmÄ lieta, ko AppScan izdarÄ«ja, bija ieiet administratora panelÄ«, caurdurt visas pogas, nomainÄ«t pusi datu un pÄc tam pilnÄ«bÄ iznÄ«cinÄt serveri ar pasta veidlapa- lÅ«gumi. IzstrÄde ar testÄÅ”anu teica:
Apsveriet iespÄjamos riskus. IdeÄlÄ gadÄ«jumÄ sagatavojiet atseviŔķu stendu informÄcijas droŔības testÄÅ”anai, kas vismaz kaut kÄ tiks izolÄts no pÄrÄjÄs vides un nosacÄ«ti pÄrbaudiet admin paneli, vÄlams manuÄlÄ režīmÄ. Å is ir pentests ā tie atlikuÅ”ie piepÅ«les procenti, kurus mÄs Å”obrÄ«d neÅemam vÄrÄ.
Ir vÄrts uzskatÄ«t, ka varat to izmantot kÄ slodzes pÄrbaudes analogu. PirmajÄ posmÄ jÅ«s varat ieslÄgt dinamisku skeneri ar 10-15 pavedieniem un redzÄt, kas notiek, bet parasti, kÄ liecina prakse, nekas labs.
Daži resursi, ko mÄs parasti izmantojam.
IzcelÅ”anas vÄrts Burp Suite ir āÅ veices nazisā jebkuram droŔības speciÄlistam. Visi to izmanto, un tas ir ļoti Ärti. Tagad ir izlaista jauna uzÅÄmuma izdevuma demonstrÄcijas versija. Ja agrÄk tÄ bija tikai atseviŔķa utilÄ«ta ar spraudÅiem, tad tagad izstrÄdÄtÄji beidzot izgatavo lielu serveri, no kura bÅ«s iespÄjams pÄrvaldÄ«t vairÄkus aÄ£entus. Tas ir forÅ”i, iesaku izmÄÄ£inÄt.
Procesu integrÄcija
IntegrÄcija notiek diezgan labi un vienkÄrÅ”i: pÄc veiksmÄ«gas instalÄÅ”anas sÄciet skenÄÅ”anu pieteikumi stendam un skenÄÅ”ana pÄc veiksmÄ«gas integrÄcijas pÄrbaudes.
Ja integrÄcijas nedarbojas vai ir nepilnÄ«bas un izspÄles funkcijas, tas ir bezjÄdzÄ«gi un bezjÄdzÄ«gi ā neatkarÄ«gi no tÄ, kÄdu modeli mÄs nosÅ«tÄm, serveris joprojÄm atbildÄs tÄpat.
Pirms pÄrbaudes pierakstiet pieteikÅ”anÄs secÄ«bu.
AdministrÄÅ”anas sistÄmas testÄÅ”ana ir tikai manuÄla.
process
Nedaudz vispÄrinÄts par procesu kopumÄ un par katra instrumenta darbÄ«bu konkrÄti. Visas lietojumprogrammas ir atŔķirÄ«gas - viena labÄk darbojas ar dinamisko analÄ«zi, cita ar statisko analÄ«zi, treÅ”Ä ar OpenSource analÄ«zi, pentestiem vai kaut kas cits, piemÄram, notikumi ar Waf.
Katram procesam ir nepiecieŔama kontrole.
Lai saprastu, kÄ process darbojas un kur to var uzlabot, jums ir jÄapkopo metrika no visa, kas jums ir pieejams, tostarp ražoÅ”anas metrika, metrika no rÄ«kiem un defektu izsekotÄjiem.
Jebkura informÄcija ir noderÄ«ga. Ir jÄskatÄs no dažÄdiem leÅÄ·iem, kur tas vai cits instruments ir labÄk lietojams, kur process specifiski nokrÄ«t. IespÄjams, ir vÄrts aplÅ«kot izstrÄdes reakcijas laikus, lai noskaidrotu, kur uzlabot procesu, pamatojoties uz laiku. Jo vairÄk datu, jo vairÄk sadaļu var izveidot no augstÄkÄ lÄ«meÅa lÄ«dz katra procesa detaļÄm.
TÄ kÄ visiem statiskajiem un dinamiskajiem analizatoriem ir savi API, savas palaiÅ”anas metodes, principi, dažiem ir plÄnotÄji, citiem nav - mÄs rakstÄm rÄ«ku AppSec Orchestrator, kas ļauj no produkta izveidot vienotu ieejas punktu visÄ procesÄ un pÄrvaldÄ«t to no viena punkta.
VadÄ«tÄjiem, izstrÄdÄtÄjiem un droŔības inženieriem ir viens ieejas punkts, no kura viÅi var redzÄt, kas darbojas, konfigurÄt un palaist skenÄÅ”anu, saÅemt skenÄÅ”anas rezultÄtus un iesniegt prasÄ«bas. MÄs cenÅ”amies attÄlinÄties no dokumentu kÄrtoÅ”anas, visu pÄrvÄrst cilvÄciskÄ, ko izmanto izstrÄde - lapas par Confluence ar statusu un metriku, Jira vai dažÄdu defektu izsekotÄju defektiem vai integrÄciju sinhronÄ/asinhronÄ procesÄ CI. /CD.
AtslÄgas
Instrumenti nav galvenais. Vispirms pÄrdomÄjiet procesu - pÄc tam ieviesiet rÄ«kus. RÄ«ki ir labi, bet dÄrgi, tÄpÄc varat sÄkt ar procesu un veidot saziÅu un izpratni starp attÄ«stÄ«bu un droŔību. No droŔības viedokļa nevajag visu āapturÄtā.No attÄ«stÄ«bas viedokļa, ja ir kaut kas augsts mega superkritisks, tad tas ir jÄlikvidÄ, nevis jÄver acis uz problÄmu.
Produkta kvalitÄte- kopÄ«gs mÄrÄ·is gan droŔībai, gan attÄ«stÄ«bai. MÄs darÄm vienu lietu, cenÅ”amies nodroÅ”inÄt, lai viss darbotos pareizi un nerastos reputÄcijas riski vai finansiÄli zaudÄjumi. TÄpÄc mÄs reklamÄjam DevSecOps, SecDevOps pieeju, lai uzlabotu saziÅu un uzlabotu produkta kvalitÄti.
SÄciet ar to, kas jums jau ir: prasÄ«bas, arhitektÅ«ra, daļÄjas pÄrbaudes, apmÄcÄ«bas, vadlÄ«nijas. Nav nepiecieÅ”ams nekavÄjoties piemÄrot visas prakses visiem projektiem - pÄrvietoties iteratÄ«vi. Nav vienota standarta - eksperiments un izmÄÄ£iniet dažÄdas pieejas un risinÄjumus.
Starp informÄcijas droŔības defektiem un funkcionÄliem defektiem ir vienÄdÄ«bas zÄ«me.
AutomatizÄjiet visukas kustas. Viss, kas nepÄrvietojas, pÄrvietojiet to un automatizÄjiet. Ja kaut kas tiek darÄ«ts ar rokÄm, tas nav laba procesa daļa. VarbÅ«t ir vÄrts to pÄrskatÄ«t un arÄ« automatizÄt.
Ja IS komandas lielums ir mazs - izmantojiet droŔības Äempionus.
VarbÅ«t tas, par ko es runÄju, jums nederÄs, un jÅ«s izdomÄsit kaut ko savu - un tas ir labi. Bet izvÄlieties rÄ«kus, pamatojoties uz jÅ«su procesa prasÄ«bÄm. Neskatieties, ko saka sabiedrÄ«ba, ka Å”is rÄ«ks ir slikts un Å”is ir labs. IespÄjams, jÅ«su produktam bÅ«s pretÄjais.
Prasības instrumentiem.
Zems līmenis Viltus pozitīvs.
PienÄcÄ«gs analÄ«zes laiks.
LietoÅ”anas vienkÄrŔība.
IntegrÄciju pieejamÄ«ba.
Izpratne par produktu attīstības ceļvedi.
IespÄja pielÄgot rÄ«kus.
Jurija ziÅojums tika izvÄlÄts kÄ viens no labÄkajiem DevOpsConf 2018. Lai iepazÄ«tos ar vÄl interesantÄkÄm idejÄm un praktiskiem gadÄ«jumiem, nÄc uz Skolkovo 27. un 28. maijÄ. DevOpsConf ietvaros festivÄls RIT++. VÄl labÄk, ja esat gatavs dalÄ«ties savÄ pieredzÄ, tad pieteikties atskaitei lÄ«dz 21.aprÄ«lim.