Angscht a Loathing vun DevSecOps

Mir haten 2 Code Analyser, 4 dynamesch Testinstrumenter, eis eegen Handwierker an 250 Scripten. Net datt all dëst am aktuelle Prozess gebraucht gëtt, awer wann Dir ufänkt DevSecOps ëmzesetzen, musst Dir bis zum Enn goen.

Angscht a Loathing vun DevSecOps

Source. Charakter Credits: Justin Roiland an Dan Harmon.

Wat ass SecDevOps? Wat iwwer DevSecOps? Wat sinn d'Ënnerscheeder? Applikatioun Sécherheet - ëm wat geet et? Firwat funktionnéiert déi klassesch Approche net méi? Weess d'Äntwert op all dës Froen Yuri Shabalin aus Swordfish Sécherheet. De Yuri wäert alles am Detail beäntweren an d'Problemer vum Iwwergank vum klassesche Applikatiounssécherheetsmodell zum DevSecOps-Prozess analyséieren: wéi Dir d'Integratioun vum sécheren Entwécklungsprozess an den DevOps-Prozess richteg unzegoen an näischt ze briechen, wéi een duerch d'Haaptstadien geet vu Sécherheetsprüfungen, wéi eng Tools kënne benotzt ginn, a wat Si ënnerscheeden a wéi een se richteg opstellt fir Falen ze vermeiden.


Iwwert de Spriecher: Yuri Shabalin - Chef Sécherheetsarchitekt an der Firma Swordfish Sécherheet. Verantwortlech fir d'Ëmsetzung vun SSDL, fir d'allgemeng Integratioun vun Applikatioun Analyse Tools an engem eenzege Entwécklung an Test Ökosystem. 7 Joer Erfahrung an Informatiounssécherheet. Schafft bei Alfa-Bank, Sberbank a Positive Technologies, déi Software entwéckelt a Servicer ubitt. Speaker op international Konferenzen ZerONights, PHDays, RISSPA, OWASP.

Applikatioun Sécherheet: ëm wat geet et?

Applikatioun Sécherheet ass d'Sécherheetssektioun déi fir d'Applikatiounssécherheet verantwortlech ass. Dëst bezitt sech net op d'Infrastruktur oder d'Netzwierksécherheet, mee éischter op dat wat mir schreiwen a wat d'Entwéckler schaffen - dat sinn d'Mängel a Schwachstelle vun der Applikatioun selwer.

Direktioun SDL oder SDLC - Sécherheet Entwécklung Liewenszyklus - entwéckelt vu Microsoft. D'Diagramm weist de kanonesche SDLC Modell, d'Haaptaufgab vun deem ass d'Participatioun vun der Sécherheet an all Etapp vun der Entwécklung, vun Ufuerderunge bis Verëffentlechung a Verëffentlechung an d'Produktioun. Microsoft huet gemierkt datt et ze vill Bugs an der Industrie waren, et waren méi vun hinnen an eppes huet misse gemaach ginn, a si hunn dës Approche proposéiert, déi kanonesch ginn ass.

Angscht a Loathing vun DevSecOps

Applikatiounssécherheet an SSDL zielen net fir Schwachstelle z'entdecken, wéi allgemeng ugeholl gëtt, awer fir hir Optriede ze vermeiden. Mat der Zäit ass d'kanonesch Approche vu Microsoft verbessert, entwéckelt an an e méi déif, méi detailléiert Tauch agefouert ginn.

Angscht a Loathing vun DevSecOps

De kanonesche SDLC ass héich detailléiert a verschiddene Methodologien - OpenSAMM, BSIMM, OWASP. D'Methodologien sinn ënnerschiddlech, awer allgemeng ähnlech.

Gebai Sécherheet Am Maturitéit Modell

Gefällt mir am beschten BSIMM - Gebai Sécherheet Am Maturitéit Modell. D'Basis vun der Methodik ass d'Divisioun vum Applikatiounssécherheetsprozess a 4 Domänen: Gouvernance, Intelligenz, SSDL Touchpoints an Deployment. All Domain huet 12 Praktiken, déi a Form vun 112 Aktivitéite vertruede sinn.

Angscht a Loathing vun DevSecOps

Jiddereng vun den 112 Aktivitéiten huet 3 Niveaue vu Reife: Ufänger, Mëttelstuf an fortgeschratt. All 12 Praktiken kënnen a Sektiounen studéiert ginn, Saachen auswielen, déi fir Iech wichteg sinn, erauszefannen wéi se se ëmsetzen a lues a lues Elementer addéieren, zum Beispill statesch an dynamesch Code Analyse oder Code Iwwerpréiwung. Dir schreift e Plang op a schafft roueg no deem am Kader vun der Ëmsetzung vun den ausgewielten Aktivitéiten.

Firwat DevSecOps

DevOps ass en allgemenge grousse Prozess an deem Sécherheet muss gekëmmert ginn.

Ufank DevOps involvéiert Sécherheetskontrollen. An der Praxis war d'Zuel vun de Sécherheetsteams vill méi kleng wéi et elo ass, a si hunn net als Participanten am Prozess gehandelt, mä als Kontroll- an Iwwerwaachungsorgan, dat Ufuerderunge stellt an d'Qualitéit vum Produkt um Enn vum Produkt kontrolléiert. Fräisetzung. Dëst ass eng klassesch Approche an där Sécherheetsteams hannert der Mauer vun der Entwécklung waren an net un de Prozess deelgeholl hunn.

Angscht a Loathing vun DevSecOps

Den Haaptproblem ass datt d'Informatiounssécherheet vun der Entwécklung getrennt ass. Normalerweis ass dëst eng Zort Informatiounssécherheetscircuit an enthält 2-3 grouss an deier Tools. Eemol all sechs Méint kënnt de Quellcode oder d'Applikatioun fir iwwerpréift ze ginn, an eemol am Joer gi se produzéiert pentests. All dëst féiert zu der Tatsaach, datt de Verëffentlechungsdatum fir d'Industrie ofgestëmmt gëtt, an den Entwéckler ass eng riesech Unzuel vu Schwachstelle vun automatiséierten Tools ausgesat. Et ass onméiglech all dëst ze demontéieren an ze reparéieren, well se d'Resultater fir déi lescht sechs Méint net zortéiert hunn, awer hei ass eng nei Partie.

Am Prozess vun der Aarbecht vun eiser Gesellschaft gesi mir datt d'Sécherheet an alle Beräicher an Industrien versteet datt et Zäit ass fir mat der Entwécklung op engem Rad z'erreechen an ze spin. Agile. Den DevSecOps Paradigma passt perfekt mat der agile Entwécklungsmethodologie, Ëmsetzung, Ënnerstëtzung a Participatioun an all Verëffentlechung an Iteratioun.

Angscht a Loathing vun DevSecOps

Iwwergank zu DevSecOps

Dat wichtegst Wuert am Security Development Lifecycle ass "prozess". Dir muss dëst verstoen ier Dir iwwer Tools kaafen denkt.

Einfach Tools an den DevOps Prozess integréieren ass net genuch - Kommunikatioun a Verständnis tëscht Prozess Participanten ass wichteg.

D'Leit si méi wichteg, net Tools.

Dacks fänkt d'Planung fir e sécheren Entwécklungsprozess mat der Auswiel an dem Kaf vun engem Tool un, an endet mat Versuche fir den Tool an den aktuellen Prozess z'integréieren, déi Versuche bleiwen. Dëst féiert zu traureg Konsequenzen, well all Tools hir eege Charakteristiken a Aschränkungen hunn.

E gemeinsame Fall ass wann d'Sécherheetsdepartement e gutt, deier Tool mat breet Fäegkeeten gewielt huet an un d'Entwéckler koum fir et an de Prozess z'integréieren. Awer et klappt net - de Prozess ass sou gebaut datt d'Aschränkungen vum scho kaafte Tool net an dat aktuellt Paradigma passen.

Als éischt, beschreiwt wéi ee Resultat Dir wëllt a wéi de Prozess ausgesäit. Dëst hëlleft Iech d'Roll vum Tool a Sécherheet am Prozess ze verstoen.

Start mat deem wat scho benotzt gëtt.

Ier Dir deier Tools kaaft, kuckt wat Dir scho hutt. All Firma huet Sécherheetsfuerderunge fir Entwécklung, et gi Kontrollen, Pentesten - firwat net all dëst an eng verständlech a praktesch Form fir jiddereen transforméieren?

Normalerweis sinn d'Ufuerderunge e Pabeier Talmud deen op engem Regal setzt. Et war e Fall wou mir bei enger Firma komm sinn fir d'Prozesser ze kucken a gefrot hunn d'Sécherheetsufuerderunge fir d'Software ze gesinn. De Spezialist deen sech mat dësem beschäftegt huet laang Zäit gesicht no:

- Elo, iergendwou an den Noten war e Wee, wou dëst Dokument läit.

Als Resultat hu mir d'Dokument eng Woch méi spéit kritt.

Fir Ufuerderungen, Schecken, asw, eng Säit op z.B. Confluenz - et ass bequem fir jiddereen.

Et ass méi einfach ze formatéieren wat Dir scho hutt a benotzt et fir unzefänken.

Benotzt Sécherheet Champions

Typesch, an enger duerchschnëttlecher Firma, fir 100-200 Entwéckler, gëtt et ee Sécherheetsspezialist deen e puer Funktiounen ausféiert an net kierperlech Zäit huet fir alles ze kontrolléieren. Och wann hien säi Bescht probéiert, wäert hien eleng net all de Code iwwerpréiwen, deen d'Entwécklung generéiert. E Konzept gouf fir esou Fäll entwéckelt. Sécherheet Champions.

SécherheetsChampions si Leit bannent der Entwécklungsteam déi un d'Sécherheet vun Ärem Produkt interesséiert sinn.

Angscht a Loathing vun DevSecOps

Security Champion ass en Entrée an d'Entwécklungsteam an e Sécherheetsevangelist ass an een gerullt.

Normalerweis, wann e Sécherheetsspezialist an d'Entwécklungsteam kënnt an e Feeler am Code weist, kritt hien eng iwwerrascht Äntwert:

- A wien bass du? Ech gesinn dech fir d'éischte Kéier. Alles ass gutt mat mir - mäi Senior Frënd huet mir "applizéiert" op der Code Iwwerpréiwung, mir fuere weider!

Dëst ass eng typesch Situatioun, well et vill méi Vertrauen an Senioren oder einfach Kollegen am Team ass, mat deenen den Entwéckler dauernd op der Aarbecht an der Code review interagéiert. Wann amplaz vum Sécherheetsbeamten de SécherheetsChampion op de Feeler an d'Konsequenze weist, da wäert säi Wuert méi Gewiicht hunn.

Och d'Entwéckler wëssen hire Code besser wéi all Sécherheetsspezialist. Fir eng Persoun déi op d'mannst 5 Projeten an engem statesche Analyse-Tool huet, ass et normalerweis schwéier all Nuancen ze erënneren. SécherheetsChampions kennen hiert Produkt: wat interagéiert mat wat a wat fir d'éischt ze kucken - si si méi effektiv.

Also betruecht Sécherheet Champions ëmzesetzen an den Afloss vun Ärem Sécherheetsteam auszebauen. Dëst ass och nëtzlech fir de Champion selwer: berufflech Entwécklung an engem neie Beräich, Ausbau vun sengem techneschen Horizont, Upgrade vun techneschen, Gestiouns- a Leadership Fäegkeeten, Erhéijung vum Maartwäert. Dëst ass en Element vun der sozialer Ingenieur, Är "Aen" am Entwécklungsteam.

Teststadien

De 20 bis 80 Paradigma seet, datt 20% Efforten produzéiert 80% vun Resultater. Dës 20% sinn Applikatiounsanalysepraktiken déi automatiséiert kënne a solle ginn. Beispiller vun esou Aktivitéiten sinn statesch Analyse. SAST, dynamesch Analyse - DAST и Open Source Kontroll. Ech soen Iech méi iwwer d'Aktivitéiten, wéi och iwwer d'Tools, wéi eng Features mir normalerweis begéinen wann se se an de Prozess aféieren, a wéi et richteg gemaach gëtt.

Angscht a Loathing vun DevSecOps

Haaptproblemer vun Tools

Ech wäert d'Problemer ervirhiewen déi fir all Instrumenter relevant sinn an Opmierksamkeet erfuerderen. Ech wäert se méi detailléiert analyséieren fir mech net weider ze widderhuelen.

Laang Analyse Zäit. Wann et 30 Minutte vun der Verpflichtung bis zur Verëffentlechung fir all Tester an Assemblée dauert, da daueren d'Informatiounssécherheetskontrollen en Dag. Keen wäert de Prozess op dës Manéier verlangsamen. Huelt dës Fonktioun Rechnung an zéien Är eege Conclusiounen.

Héich Niveau Falsch Negativ oder Falsch Positiv. All Produkter sinn ënnerschiddlech, all benotze verschidde Kaderen an hunn hiren eegene Kodéierungsstil. Op verschiddene Codebasen an Technologien kënnen Tools verschidden Niveaue vu Falsch Negativ a Falsch Positiv weisen. Also kuckt wat genee dran ass vun Ärer Firmen a fir Ären Uwendungen weisen gutt an zouverlässeg Resultater.

Keng Integratioune mat existéierende Tools. Kuckt Tools aus der Siicht vun Integratiounen mat deem wat Dir scho benotzt. Zum Beispill, wann Dir Jenkins oder TeamCity hutt, kontrolléiert d'Integratioun vun den Tools mat dëser Software, an net mat GitLab CI, déi Dir net benotzt.

Mangel oder exzessiv Komplexitéit vun der Personnalisatioun. Wann en Tool keen API huet, firwat ass et dann néideg? Alles wat an der Interface gemaach ka ginn, soll iwwer d'API verfügbar sinn. Idealerweis sollt den Tool d'Fäegkeet hunn d'Schecken ze personaliséieren.

Kee Produktentwécklung Roadmap. D'Entwécklung ass net stoen, mir benotzen ëmmer nei Kaderen a Funktiounen, schreiwen al Code an nei Sproochen. Mir wëllen sécher sinn datt dat Tool dat mir kafen nei Kaderen an Technologien ënnerstëtzen. Dofir ass et wichteg ze wëssen datt d'Produkt e richteg a korrekt ass Fahrplang Entwécklung.

Prozess Funktiounen

Zousätzlech zu de Funktiounen vun den Tools, berücksichtegt d'Features vum Entwécklungsprozess. Zum Beispill, am Wee vun der Entwécklung ze kommen ass e gemeinsame Feeler. Loosst eis kucken wéi eng aner Funktiounen berücksichtegt ginn a wat d'Sécherheetsteam oppassen soll.

Fir d'Entwécklung net ze verpassen an d'Deadline ze verëffentlechen, erstellt verschidde Regelen a verschidde weisen Stoppen - Critèrë fir de Bauprozess ze stoppen wann et Schwachstelle gëtt - fir verschidden Ëmfeld. Zum Beispill verstinn mir datt déi aktuell Branche an den Entwécklungsstand oder UAT geet, dat heescht datt mir net ophalen a soen:

- Dir hutt Schwachstelle hei, Dir wäert net méi wäit goen!

Op dëser Etapp ass et wichteg d'Entwéckler ze soen datt et Sécherheetsprobleemer sinn déi derwäert sinn opzepassen.

D'Präsenz vu Schwachstelle ass keng Barrière fir weider Tester: manuell, Integratioun oder manuell. Op der anerer Säit musse mir iergendwéi d'Sécherheet vum Produkt erhéijen, a sou datt d'Entwéckler net vergiessen wat se sécher fannen. Dofir maache mir dat heiansdo: um Stand, wann et an d'Entwécklungsëmfeld ausgerullt gëtt, informéiere mir d'Entwécklung einfach:

- Kärelen, Dir hutt Probleemer, gitt weg op se op.

Op der UAT Stadium weisen mir erëm Warnungen iwwer Schwachstelle, an op der Verëffentlechungsstadium soen mir:

- Kärelen, mir hunn Iech e puer Mol gewarnt, Dir hutt näischt gemaach - mir loossen Iech net aus dësem eraus.

Wa mir iwwer Code an Dynamik schwätzen, ass et néideg ze weisen a warnen iwwer Schwachstelle nëmmen vun deene Funktiounen a Code, déi just an dëser Feature geschriwwe goufen. Wann en Entwéckler e Knäppche mat 3 Pixel bewegt a mir soen him datt hien do eng SQL Injektioun huet an dofir muss dréngend fixéieren, ass dat falsch. Kuckt nëmmen op wat elo geschriwwen ass an op d'Ännerungen déi an der Applikatioun kommen.

Loosst eis soen datt mir e gewësse funktionnelle Mängel hunn - d'Art a Weis wéi d'Applikatioun net funktionnéiert: Sue ginn net transferéiert, wann Dir op e Knäppchen klickt, gëtt et keen Iwwergang op déi nächst Säit, oder de Produit gëtt net lued. Sécherheet Mängel - dat sinn déiselwecht Mängel, awer net wat d'Applikatioun Operatioun ugeet, mee a Sécherheet.

Net all Software Qualitéitsproblemer si Sécherheetsproblemer. Awer all Sécherheetsproblemer si mat Softwarequalitéit verbonnen. Sherif Mansour, Expedia.

Well all Schwachstelle Mängel sinn, sollen se op der selwechter Plaz wéi all Entwécklung Mängel lokaliséiert ginn. Also vergiess iwwer Berichter a grujeleg PDFs déi kee liest.

Angscht a Loathing vun DevSecOps

Wéi ech an enger Entwécklungsfirma geschafft hunn, krut ech e Bericht vu statesche Analyse Tools. Ech hunn et opgemaach, war erschreckt, Kaffi gemaach, 350 Säiten duerchgebrannt, zougemaach a sinn op d'Aarbecht gaang. Grouss Berichter sinn dout Berichter. Normalerweis gi se net iwwerall, d'E-Maile gi geläscht, vergiess, verluer, oder d'Geschäft seet datt et Risiken hëlt.

Wat kann een maachen? Mir konvertéieren einfach déi bestätegt Mängel, déi mir fonnt hunn, an eng Form bequem fir d'Entwécklung, zum Beispill, mir setzen se an engem Réckstand an Jira. Mir prioritär Mängel an eliminéiert se an der selwechter Prioritéit wéi funktionell Mängel an Test Mängel.

statesch Analyse - SAST

Dëst ass eng Codeanalyse fir d'Präsenz vu Schwachstelle., awer et ass net d'selwecht wéi SonarQube. Mir kucken net nëmmen no Musteren oder Stil. Eng Rei Approche ginn an der Analyse benotzt: laut dem Schwachstellebam, laut DataFlow, andeems Dir Konfiguratiounsdateien analyséiert. Dëst ass alles wat de Code selwer betrëfft.

Virdeeler vun der Approche: d'Identifikatioun vu Schwachstelle am Code an engem fréie Stadium vun der Entwécklungwann et nach keng Stänn oder fäerdeg Tools sinn, an inkrementell Scannen Fäegkeet: Scannen vun enger Sektioun vum Code deen geännert huet an nëmmen d'Feature déi mir am Moment maachen, wat d'Scannenzäit reduzéiert.

Минусы - dat ass de Mangel un Ënnerstëtzung fir déi néideg Sproochen.

Noutwendeg Integratiounen, wat soll an den Tools sinn, menger subjektiver Meenung:

  • Integratiounsinstrument: Jenkins, TeamCity a Gitlab CI.
  • Entwécklung Ëmfeld: Intellij IDEA, Visual Studio. Et ass méi bequem fir en Entwéckler net eng onverständlech Interface ze navigéieren déi nach muss memoriséiert ginn, awer all déi néideg Integratiounen a Schwachstelle ze gesinn, déi hien direkt op senger Aarbechtsplaz a sengem eegenen Entwécklungsëmfeld fonnt huet.
  • Code review: SonarQube an manuell Iwwerpréiwung.
  • Defekt Tracker: Jira a Bugzilla.

D'Bild weist e puer vun de beschte Vertrieder vun statesch Analyse.

Angscht a Loathing vun DevSecOps

Et sinn net d'Tools déi wichteg sinn, mee de Prozess, also et ginn Open Source Léisungen déi och gutt sinn fir de Prozess ze testen.

Angscht a Loathing vun DevSecOps

SAST Open Source wäert net eng grouss Zuel vu Schwachstelle oder komplexe DataFlows fannen, awer si kënnen a solle benotzt ginn wann Dir e Prozess baut. Si hëllefen Iech ze verstoen wéi de Prozess gebaut gëtt, wien op Bugs reagéiert, wien mellt, wien mellt. Wann Dir déi initial Etapp vum Bau vun der Sécherheet vun Ärem Code wëllt ausféieren, benotzt Open Source Léisungen.

Wéi kann dat integréiert ginn wann Dir um Ufank vun Ärer Rees sidd an näischt hutt: weder CI, nach Jenkins, nach TeamCity? Loosst eis d'Integratioun an de Prozess kucken.

Integratioun um CVS Niveau

Wann Dir Bitbucket oder GitLab hutt, kënnt Dir op der Concurrent Versioune System.

Duerch Event - zéien Ufro, engagéieren. Dir scannt de Code a weist am Build Status ob d'Sécherheetscheck passéiert oder gescheitert ass.

Feedback. Natierlech ass ëmmer Feedback néideg. Wann Dir just d'Sécherheet op der Sécherheetssäit gemaach hutt, se an eng Këscht gesat an näischt doriwwer gesot hutt, an dann um Enn vum Mount eng Rëtsch Bugs gedumpt hunn, ass dat net korrekt an net gutt.

Integratioun mam Code review System

Eemol hu mir als Standardrevisor fir en AppSec technesche Benotzer an enger Rei vu wichtege Projete gehandelt. Ofhängeg ob Feeler am neie Code identifizéiert ginn oder et keng Feeler sinn, setzt de Rezensor de Status op der Pull-Ufro als "akzeptéieren" oder "brauchen Aarbecht" - entweder alles ass OK, oder et muss verbessert ginn a verlinkt op wat muss genee verbessert ginn. Fir Integratioun mat der Versioun déi an d'Produktioun geet, hu mir e Fusiounsverbuet aktivéiert wann den Informatiounssécherheetstest net passéiert ass. Mir hunn dëst an der manueller Code Iwwerpréiwung abegraff, an de Rescht vun de Prozess Participanten hunn d'Sécherheetsstatuse fir dëse bestëmmte Prozess gesinn.

Integratioun mat SonarQube

Vill Leit hunn Qualitéit Gate duerch Code Qualitéit. Et ass d'selwecht hei - Dir kënnt déiselwecht Paarte nëmme fir SAST Tools maachen. Et gëtt déi selwecht Interface, déi selwecht Qualitéit Gate, nëmmen et wäert genannt ginn Sécherheet Gate. An ähnlech, wann Dir e Prozess benotzt SonarQube, kënnt Dir alles einfach do integréieren.

Integratioun um CI Niveau

Alles hei ass och ganz einfach:

  • Um selwechten Niveau wéi Autotester, Eenheet Tester.
  • Divisioun no Entwécklungsstadien: dev, test, prod. Verschidde Sätz vu Reegelen oder verschidde Feelerbedéngungen kënnen abegraff sinn: Stop d'Versammlung, stoppt d'Versammlung net.
  • Synchron / asynchron Start. Mir waarden op d'Enn vun de Sécherheetstester oder net. Dat ass, mir hunn se just lancéiert a weidergespillt, an da kréien mir de Status datt alles gutt oder schlecht ass.

Et ass alles an enger perfekt rosa Welt. Et gëtt net esou eppes am richtege Liewen, awer mir striewen dofir. D'Resultat vu Sécherheetskontrollen solle ähnlech sinn wéi d'Resultater vun Eenheetstester.

Zum Beispill hu mir e grousse Projet geholl an decidéiert datt mir et elo mat SAST scannen - OK. Mir hunn dëse Projet an SAST gedréckt, et huet eis 20 Schwachstelle ginn an duerch eng staark Wëllen Entscheedung hu mir decidéiert datt alles gutt wier. 000 Schwachstelle sinn eis technesch Schold. Mir setzen d'Schold an eng Këscht, mir klären se lues a lues op a fügen Bugs un d'Defekt Tracker. Loosst eis eng Firma astellen, alles selwer maachen, oder SécherheetsChampionen eis hëllefen - an déi technesch Schold wäert erofgoen.

An all nei entstanen Schwachstelle am neie Code mussen op déiselwecht Manéier eliminéiert ginn wéi Feeler an enger Eenheet oder an Autotester. Relativ gesinn huet d'Assemblée ugefaang, mir hunn et gemaach, zwee Tester an zwee Sécherheetstester hunn gescheitert. OK - mir sinn gaang, gekuckt wat geschitt ass, eng Saach fixéiert, eng aner fixéiert, déi nächst Kéier gelaf - alles ass gutt, keng nei Schwachstelle koumen, keng Tester gescheitert. Wann dës Aufgab méi déif ass an Dir musst et gutt verstoen, oder d'Befestigung vu Schwachstelle beaflosst grouss Schichten vun deem wat ënner der Hood läit: e Feeler gouf zum Defekt Tracker bäigefüügt, et gëtt prioritär a korrigéiert. Leider ass d'Welt net ideal an Tester falen heiansdo.

E Beispill vun engem Sécherheetspaart ass en Analog vun engem Qualitéitspaart, wat d'Präsenz an d'Zuel vu Schwachstelle am Code ugeet.

Angscht a Loathing vun DevSecOpsMir integréieren mat SonarQube - de Plugin ass installéiert, alles ass ganz bequem a cool.

Integratioun mat Entwécklungsëmfeld

Integratioun Optiounen:

  • Lancéiere vun engem Scan aus dem Entwécklungsëmfeld virum Engagement.
  • Gesinn Resultater.
  • Analyse vun de Resultater.
  • Synchroniséierung mam Server.

Dëst ass wéi et ausgesäit Resultater vum Server ze kréien.

Angscht a Loathing vun DevSecOps

An eisem Entwécklungsëmfeld Intellekt IDEA en zousätzlechen Element erschéngt einfach, deen Iech informéiert datt esou Schwachstelle beim Scannen entdeckt goufen. Dir kënnt de Code direkt änneren, Recommandatiounen kucken an Flow Graf. Dëst ass alles op der Aarbechtsplaz vum Entwéckler, wat ganz bequem ass - Dir musst net aner Linken verfollegen an eppes zousätzlech kucken.

Open Source

Dëst ass mäi Liiblingsthema. Jidderee benotzt Open Source Bibliothéiken - firwat schreiwen eng Rëtsch vun Crutchen a Vëloen wann Dir eng fäerdeg Bibliothéik huelen kann an deem alles schonn ëmgesat ass?

Angscht a Loathing vun DevSecOps

Natierlech ass dat richteg, awer Bibliothéike ginn och vu Leit geschriwwen, enthalen och gewësse Risiken, an enthalen och Schwachstelle, déi periodesch oder stänneg gemellt ginn. Dofir gëtt et en nächste Schrëtt an der Applikatioun Sécherheet - dëst ass d'Analyse vun Open Source Komponenten.

Open Source Analyse - OSA

D'Instrument enthält dräi grouss Schrëtt.

Sich no Schwachstelle a Bibliothéiken. Zum Beispill weess de Tool datt mir eng Bibliothéik benotzen, an dat CVE oder et sinn e puer Schwachstelle an de Käfer Tracker déi op dës Versioun vun der Bibliothéik bezéien. Wann Dir probéiert et ze benotzen, wäert d'Tool eng Warnung erausginn datt d'Bibliothéik vulnerabel ass a beréit Iech eng aner Versioun ze benotzen déi keng Schwächen huet.

Analyse vun Lizenz Rengheet. Et ass nach net besonnesch populär hei, awer wann Dir am Ausland schafft, kënnt Dir periodesch eng Tax do kréien fir eng Open Source Komponent ze benotzen déi net benotzt oder geännert ka ginn. No der Politik vun der lizenzéierte Bibliothéik kënne mir dat net maachen. Oder, wa mir et geännert hunn a benotzen, da sollte mir eise Code posten. Natierlech wëll keen de Code vun hire Produkter publizéieren, awer Dir kënnt Iech och dovunner schützen.

Analyse vun Komponenten déi an engem industriellen Ëmfeld benotzt ginn. Loosst eis eng hypothetesch Situatioun virstellen: mir hunn endlech d'Entwécklung ofgeschloss an déi lescht Verëffentlechung vun eisem Mikroservice verëffentlecht. Hie lieft do wonnerbar - eng Woch, e Mount, e Joer. Mir sammelen et net, mir maachen keng Sécherheetskontrollen, alles schéngt gutt ze sinn. Awer op eemol, zwou Wochen no der Verëffentlechung, erschéngt eng kritesch Schwachstelle an der Open Source Komponent, déi mir an dësem speziellen Bau benotzen, am industriellen Ëmfeld. Wa mir net opschreiwen wat a wou mir et benotzen, da wäerte mir dës Schwachstelle einfach net gesinn. E puer Tools hunn d'Fäegkeet Schwachstelle vu Bibliothéiken ze iwwerwaachen, déi am Moment an der Industrie benotzt ginn. Et ass ganz nëtzlech.

Features:

  • Verschidde Politik fir verschidden Etappe vun Entwécklung.
  • Iwwerwachung Komponenten an engem industriellen Ëmfeld.
  • Kontroll vun Bibliothéiken bannent der Organisatioun.
  • Ënnerstëtzung fir verschidde Bausystemer a Sproochen.
  • Analyse vun Docker Biller.

E puer Beispiller vun Industrieleit déi an der Open Source Analyse engagéiert sinn.

Angscht a Loathing vun DevSecOps
Déi eenzeg gratis ass Ofhängegkeet-Check vun OWASP. Dir kënnt et an den éischte Stadien ausschalten, kucken wéi et funktionnéiert a wat et ënnerstëtzt. Am Fong sinn dëst all Cloud Produkter, oder on-premise, awer hannert hirer Basis gi se nach ëmmer op den Internet geschéckt. Si schécken net Är Bibliothéiken, awer Hashes oder hir eege Wäerter, déi se berechnen, a Fangerofdréck op hire Server fir Informatioun iwwer d'Präsenz vu Schwachstelle ze kréien.

Integratioun an de Prozess

Kontroll vu Bibliothéiken am Perimeter, déi vun externen Quellen erofgeluede ginn. Mir hunn extern an intern Repositories. Zum Beispill, Event Central leeft Nexus, a mir wëllen datt eise Repository keng Schwachstelle mat engem "kriteschen" oder "héigen" Status huet. Dir kënnt Proxying mat dem Nexus Firewall Lifecycle-Tool konfiguréieren, sou datt esou Schwachstelle ofgeschnidden ginn an net am internen Repository ophalen.

Integratioun an CI. Um selwechten Niveau mat Autotester, Eenheetstester an Divisioun an Entwécklungsstadien: Dev, Test, Prod. Op all Etapp kënnt Dir all Bibliothéiken eroflueden, alles benotzen, awer wann et eppes schwéier ass mam "kriteschen" Status, ass et derwäert et op d'Opmierksamkeet vun den Entwéckler op der Etapp vun der Verëffentlechung an d'Industrie ze bréngen.

Integratioun mat Artefakte: Nexus an JFrog.

Integratioun an d'Entwécklungsëmfeld. D'Tools déi Dir wielt sollten Integratioun mat Entwécklungsëmfeld hunn. Den Entwéckler muss Zougang zu de Scannerresultater vu senger Aarbechtsplaz hunn, oder d'Fäegkeet de Code fir Schwachstelle ze scannen an ze kontrolléieren ier hien op CVS engagéiert.

Integratioun an CD. Dëst ass eng cool Feature déi ech wierklech gär hunn an iwwer déi ech scho geschwat hunn - d'Iwwerwaachung vun der Entstoe vun neie Schwachstelle an engem industriellen Ëmfeld. Et funktionnéiert sou eppes.

Angscht a Loathing vun DevSecOps

Mir hunn Ëffentlech Komponent Repositories - e puer Tools dobaussen, an eisen internen Repository. Mir wëllen datt et nëmmen vertraut Komponenten enthält. Wann Dir eng Ufro proxy, kontrolléiere mir datt déi erofgeluede Bibliothéik keng Schwachstelle huet. Wann et ënner bestëmmte Politik fällt, déi mir etabléieren an onbedéngt mat der Entwécklung koordinéieren, da lueden mir et net erof a si gezwongen eng aner Versioun ze benotzen. Deementspriechend, wann et eppes wierklech kritesch a schlecht an der Bibliothéik ass, kritt den Entwéckler d'Bibliothéik net an der Installatiounsstadium - loosst hien eng Versioun méi héich oder méi niddereg benotzen.

  • Beim Bau kucken mir ob keen eppes Schlechtes gerutscht huet, datt all Komponente sécher sinn a keen eppes geféierlecht op de Flash Drive bruecht huet.
  • Am Repository hu mir nëmmen vertraut Komponenten.
  • Beim Deployéiere kontrolléiere mir nach eng Kéier de Package selwer: Krich, Jar, DL oder Docker Bild fir sécherzestellen datt et der Politik entsprécht.
  • Wann Dir an d'Industrie gitt, iwwerwaache mir wat an der industrieller Ëmwelt geschitt: kritesch Schwachstelle erschéngen oder schéngen net.

Dynamesch Analyse - DAST

Dynamesch Analyse Tools sinn fundamental anescht wéi alles wat bis elo gesot gouf. Dëst ass eng Aart Imitatioun vun der Aarbecht vum Benotzer mat der Applikatioun. Wann dëst eng Webapplikatioun ass, schécken mir Ufroen, simuléieren d'Aarbecht vum Client, klickt op d'Knäppercher op der viischter, schéckt kënschtlech Donnéeën aus der Form: Zitater, Klammeren, Zeechen a verschiddene Kodéierungen, fir ze kucken wéi d'Applikatioun funktionnéiert an veraarbecht extern Daten.

Dee selwechte System erlaabt Iech Schabloun Schwachstelle an Open Source ze kontrolléieren. Zënter DAST net weess wéi eng Open Source mir benotzen, werft et einfach "béiswëlleg" Musteren an analyséiert d'Äntwerte vum Server:

- Jo, et gëtt en Deserialiséierungsproblem hei, awer net hei.

Et gi grouss Risiken an dësem, well wann Dir dëse Sécherheetstest op der selwechter Bank mécht, mat där d'Tester schaffen, kënne schlecht Saache geschéien.

  • Héich Belaaschtung op den Applikatiounsnetzserver.
  • Keng Integratiounen.
  • Fäegkeet d'Astellunge vun der analyséierter Applikatioun z'änneren.
  • Et gëtt keng Ënnerstëtzung fir déi néideg Technologien.
  • Schwieregkeeten opzestellen.

Mir haten eng Situatioun wéi mir endlech AppScan lancéiert hunn: mir hu scho laang probéiert Zougang zu der Applikatioun ze kréien, kruten 3 Konten a ware frou - mir iwwerpréiwen endlech alles! Mir hunn ugefaang ze scannen, an dat éischt wat AppScan gemaach huet war an den Admin Panel goen, all Knäppercher duerchbriechen, d'Halschent vun den Donnéeën änneren, an dann de Server komplett ëmbréngen mat sengem eegenen mailform-Ufroen. Entwécklung mat Testen sot:

- Kärelen, maacht Dir de Geck?! Mir hunn Iech Konte ginn, an Dir Ariichten engem Stand!

Betruecht méiglech Risiken. Ideal preparéiert e separaten Stand fir d'Informatiounssécherheet ze testen, deen op d'mannst iergendwéi aus dem Rescht vun der Ëmwelt isoléiert gëtt, a kontrolléiert d'Administratiounspanel, am léifsten am manuelle Modus. Dëst ass e Pentest - déi verbleiwen Prozentzuelen vun Effort déi mir de Moment net berücksichtegen.

Et ass derwäert ze bedenken datt Dir dëst als Analog vu Lasttest benotze kënnt. Op der éischter Etapp kënnt Dir en dynamesche Scanner an 10-15 Threads ausschalten a kucken wat geschitt, awer normalerweis, wéi d'Praxis weist, näischt gutt.

E puer Ressourcen déi mir normalerweis benotzen.

Angscht a Loathing vun DevSecOps

Wäert Highlight Burp Suite ass e "Schwäizer Messer" fir all Sécherheetsberuffer. Jidderee benotzt et an et ass ganz bequem. Eng nei Demo Versioun vun der Enterprise Editioun ass elo verëffentlecht ginn. Wann et virdru just e Stand-alone-Utility mat Plugins war, elo maachen d'Entwéckler endlech e grousse Server aus deem et méiglech ass e puer Agenten ze managen. Dëst ass cool, ech recommandéieren Iech et ze probéieren.

Integratioun an de Prozess

Integratioun geschitt ganz gutt an ass einfach: Start Scannen no erfollegräicher Installatioun Uwendungen fir de Stand an Scannen no erfollegräichen Integratiounstest.

Wann d'Integratioune net funktionnéieren oder et Stëbs a Spottfunktiounen sinn, ass et sënnlos an nëtzlos - egal wéi ee Muster mir schécken, de Server wäert nach ëmmer déiselwecht reagéieren.

  • Ideal ass eng separat Teststand.
  • Virum Test, schreift d'Loginsequenz op.
  • Testen vum Administratiounssystem ass nëmme manuell.

Prozess

E bësse generaliséiert iwwer de Prozess am Allgemengen an iwwer d'Aarbecht vun all Tool besonnesch. All Applikatiounen sinn anescht - e puer funktionnéieren besser mat dynamescher Analyse, anerer mat statescher Analyse, anerer mat OpenSource Analyse, Pentests, oder soss eppes ganz, zum Beispill, Eventer mat Waf.

All Prozess brauch Kontroll.

Fir ze verstoen wéi e Prozess funktionnéiert a wou et ka verbessert ginn, musst Dir Metriken sammelen aus alles wat Dir kënnt op Är Hänn kréien, dorënner Produktiounsmetriken, Metriken aus Tools a vu Defekt Tracker.

All Informatioun ass hëllefräich. Dir musst aus verschiddene Perspektiven kucken, wou een oder anert Tool besser benotzt gëtt, wou de Prozess speziell setzt. Et kann derwäert sinn d'Entwécklungsreaktiounszäit ze kucken fir ze verstoen wou de Prozess baséiert op Zäit ze verbesseren. Wat méi Daten, wat méi Sektioune kënne vum Top-Niveau bis op d'Detailer vun all Prozess gebaut ginn.

Angscht a Loathing vun DevSecOps

Well all statesch an dynamesch Analysatoren hir eege APIen hunn, hir eege Startmethoden, Prinzipien, e puer hunn Scheduler, anerer net - mir schreiwen en Tool AppSec Orchestrator, wat Iech erlaabt eng eenzeg Entrée an de ganze Prozess vum Produkt ze kreéieren an et vun engem Punkt ze verwalten.

Manager, Entwéckler a Sécherheetsingenieuren hunn een Entréespunkt vun deem se kënne gesinn wat leeft, e Scan konfiguréieren an ausféieren, Scanresultater kréien an Ufuerderunge ofginn. Mir probéieren ewech vun de Pabeieren ze plënneren, alles iwwersetzen an mënschlech Sprooch, déi vun Entwécklung benotzt gëtt - Säiten op Zesummefaassung mat Status a Metriken, Mängel an Jira oder an verschiddenen Defekt Trackers, oder Integratioun an engem synchron / asynchronous Prozess am CI / CD.

Schlëssel

Tools sinn net déi wichtegst Saach. Denkt als éischt duerch de Prozess - da implementéiert d'Tools. D'Tools si gutt awer deier, also kënnt Dir mam Prozess ufänken a Kommunikatioun a Verständnis tëscht Entwécklung a Sécherheet bauen. Aus Sécherheetssiicht brauch een net alles ze "stoppen", Aus Entwécklungssiicht, wann et eppes héich mega super kritesch ass, da muss et eliminéiert ginn, an net de Problem e blann Aen maachen.

Produit Qualitéit - gemeinsam Zil souwuel Sécherheet an Entwécklung. Mir maachen eng Saach, mir probéieren ze garantéieren datt alles richteg funktionnéiert an et keng Ruffrisiken oder finanziell Verloschter gëtt. Dofir promovéiere mir eng DevSecOps, SecDevOps Approche fir d'Kommunikatioun ze verbesseren an e bessert Produkt ze maachen.

Start mat deem wat Dir schonn hutt: Ufuerderunge, Architektur, Partiell Kontrollen, Formatiounen, Richtlinnen. Et ass net néideg direkt all d'Praktiken op all Projeten ëmzesetzen. réckelen iterativ. Et gëtt keen eenzege Standard - experimentéieren a probéiert verschidden Approchen a Léisungen.

Et gëtt e Gläichzeechen tëscht Informatiounssécherheetsdefekter a funktionnelle Mängel.

Automatiséiert allesdat bewegt. Beweegt an automatiséiert alles wat net beweegt. Wann eppes mat der Hand gemaach gëtt, ass et net e gudden Deel vum Prozess. Vläicht ass et derwäert et ze iwwerpréiwen an och ze automatiséieren.

Wann d'IS Teamgréisst kleng ass, benotzen Sécherheet Champions.

Vläicht passt dat wat ech geschwat hunn Iech net an Dir wäert mat eppes vun Iech kommen - an dat ass gutt. Mee wielt Tools baséiert op den Ufuerderunge fir Äre Prozess. Kuckt net wat d'Gemeinschaft seet, datt dëst Tool schlecht ass an dëst gutt ass. Vläicht ass de Géigendeel wouer fir Äert Produkt.

Ufuerderunge fir Tools.

  • Niddereg Niveau Falsch Positiv.
  • Adäquate Analyse Zäit.
  • Einfach ze benotzen.
  • Disponibilitéit vun Integratiounen.
  • D'Produktentwécklung Fahrplang verstoen.
  • Méiglechkeet fir Tools ze personaliséieren.

Dem Yuri säi Bericht gouf als ee vun de beschte bei DevOpsConf 2018 gewielt. Fir nach méi interessant Iddien a praktesch Fäll kennenzeléieren, kommt op Skolkovo den 27. an 28. Mee DevOpsConf bannent Festival RIT++. Besser nach, wann Dir prett sidd Är Erfahrung ze deelen, dann gëllen fir e Bericht bis den 21. Abrëll.

Source: will.com

Setzt e Commentaire