DevOps vs DevSecOps: wéi et an enger Bank ausgesäit

DevOps vs DevSecOps: wéi et an enger Bank ausgesäit

D'Bank outsourcet hir Projeten u villen Optraghueler. "External" schreift Code, schéckt dann d'Resultater an enger net ganz bequemer Form. Konkret huet de Prozess esou ausgesinn: si hunn e Projet iwwerginn, dee mat hinnen funktionell Tester passéiert huet, an duerno am Bankeperimeter getest gouf fir Integratioun, Belaaschtung, asw. Et gouf dacks entdeckt datt Tester gescheitert sinn. Dunn ass alles zréck op den externen Entwéckler. Wéi Dir kënnt roden, huet dëst laang Leadzäite fir Bugfixes bedeit.

D'Bank huet decidéiert datt et méiglech an néideg wier déi ganz Pipeline ënner säi Flillek ze zéien, vu Verpflichtungen bis zur Verëffentlechung. Sou datt alles eenheetlech an ënner der Kontroll vun den Teams verantwortlech ass fir de Produit an der Bank. Dat ass, wéi wann den externen Optraghueler einfach iergendwou am nächste Raum vum Büro schaffen. Op de Firmen Stack. Dëst ass eng normal Devops.

Wou koum de Sec hier? D'Sécherheet vun der Bank huet héich Fuerderunge gestallt wéi en externen Optraghueler am Netzsegment ka schaffen, wéi en Zougang een huet, wéi a wien mam Code schafft. Et ass just datt d'IB nach net wousst datt wann Optraghueler dobausse schaffen, wéineg Bankenormen gefollegt ginn. An dann an e puer Deeg muss jidderee ufänken se ze observéieren.

Déi einfach Offenbarung, datt den Optraghueler vollen Zougang zum Produktcode hat, huet hir Welt schonn op d'Kopp gemaach.

Zu dësem Moment huet d'Geschicht vun DevSecOps ugefaang, iwwer déi ech Iech wëll soen.

Wéi eng praktesch Conclusiounen huet d'Bank aus dëser Situatioun gezunn?

Et gouf vill Kontrovers iwwer d'Tatsaach, datt alles falsch gemaach gëtt. D'Entwéckler hunn gesot datt d'Sécherheet nëmme beschäftegt ass mat der Entwécklung ze stéieren, a si, wéi Waachter, probéieren ze verbidden ouni ze denken. Am Géigesaz hunn d'Sécherheetsspezialisten gezéckt tëscht de Standpunkter ze wielen: "Entwéckler kreéieren Schwachstelle an eisem Circuit" an "Entwéckler kreéieren keng Schwachstelle, awer si selwer." De Sträit hätt laang gedauert wann net fir nei Maartfuerderungen an d'Entstoe vum DevSecOps Paradigma. Et war méiglech ze erklären datt dës ganz Automatisatioun vu Prozesser, déi Informatiounssécherheetsfuerderunge berücksichtegt "aus der Këscht" hëlleft jidderengem glécklech ze bleiwen. Am Sënn datt d'Regele direkt opgeschriwwe ginn an net während dem Spill änneren (d'Informatiounssécherheet verbidd net onerwaart eppes), an d'Entwéckler halen d'Informatiounssécherheet iwwer alles informéiert wat geschitt (d'Informatiounssécherheet begéint net op eemol eppes) . All Team ass och verantwortlech fir ultimativ Sécherheet, an net e puer abstrakt eeler Bridder.

  1. Well extern Mataarbechter schonn Zougang zum Code an e puer intern Systemer hunn, ass et méiglech, aus den Dokumenter d'Fuerderung ze läschen "D'Entwécklung muss ganz op der Bankinfrastruktur duerchgefouert ginn."
  2. Op der anerer Säit musse mir d'Kontroll iwwer dat wat geschitt stäerken.
  3. De Kompromëss war d'Schafe vu cross-functional Teams, wou d'Mataarbechter enk mat externe Leit schaffen. An dësem Fall musst Dir sécher sinn datt d'Team op Tools op de Serveren vun der Bank funktionnéiert. Vun Ufank bis Enn.

Dat ass, Optraghueler kënnen erlaabt ginn, awer si mussen separat Segmenter ginn. Fir datt se keng Aart vun enger Infektioun vu baussen an d'Infrastruktur vun der Bank bréngen a fir datt se net méi gesinn wéi néideg. Gutt, sou datt hir Aktiounen aloggen. DLP fir Schutz géint Fuite, all dëst war abegraff.

Prinzipiell kommen all Banken deemno fréier oder spéider. Hei si mir op de geschloene Wee gaangen an hunn d'Ufuerderunge fir esou Ëmfeld eens ginn, wou "extern" schaffen. Et erschéngt eng maximal Palette vun Zougangskontrollinstrumenter, Schwachstelle Kontrollinstrumenter, Anti-Virus Analyse op Circuiten, Assembléeën an Tester. Dëst gëtt DevSecOps genannt.

Op eemol gouf et kloer datt wann virun DevSecOps Bankesécherheet keng Kontroll iwwer dat wat op der Säit vum Entwéckler geschitt ass, da gëtt am neie Paradigma Sécherheet kontrolléiert op déiselwecht Manéier wéi normal Eventer op der Infrastruktur. Nëmmen elo ginn et Alarmer iwwer Versammlungen, Kontroll vu Bibliothéiken, asw.

Et bleift just d'Equipen op den neie Modell ze transferéieren. Ma, kreéiert d'Infrastruktur. Awer dës sinn Trifle, et ass wéi eng Eule ze zéien. Eigentlech hu mir mat der Infrastruktur gehollef, an deemools hu sech d'Entwécklungsprozesser geännert.

Wat huet geännert

Mir hu beschloss, et a klenge Schrëtt ëmzesetzen, well mir verstanen hunn, datt vill Prozesser ausernee falen, a vill "Extern" déi nei Aarbechtsbedéngungen ënner der Opsiicht vu jidderengem net kënnen aushalen.

Als éischt hu mir cross-functional Teams erstallt a geléiert Projeten ze organiséieren andeems se nei Ufuerderunge berücksichtegen. Am Sënn vun organisatoresch hu mir diskutéiert wat Prozesser. D'Resultat war en Diagramm vun der Montagepipeline mat all de Responsabelen.

  • IC: Git, Jenkins, Maven, Roslyn, Gradle, jUnit, Jira, MF Fortify, CA Harvest, GitlabCI.
  • CD: Ansible, Puppet, TeamCity, Gitlab TFS, Liquidbase.
  • Test: Sonarqube, SoapUI, jMeter, Selenium: MF Fortify, Performance Center, MF UFT, Ataccama.
  • Presentatioun (Berichterstattung, Kommunikatioun): Grafana, Kibana, Jira, Confluence, RocketChat.
  • Operatiounen (Ënnerhalt, Gestioun): Ansible, Zabbix, Prometheus, Elastic + Logstash, MF Service Manager, Jira, Confluence, MS Project.

Ausgewielten Stack:

  • Wëssensbasis - Atlassian Zesummefloss;
  • Aufgab Tracker - Atlassian Jira;
  • Artefakt Repository - "Nexus";
  • Kontinuéierlech Integratioun System - "Gitlab CI";
  • Kontinuéierlech Analyse System - "SonarQube";
  • Applikatioun Sécherheet Analyse System - "Micro Focus Fortify";
  • Kommunikatioun System - "GitLab Mattermost";
  • Configuratioun Gestioun System - "Ansible";
  • Iwwerwaachungssystem - "ELK", "TICK Stack" ("InfluxData").

Si hunn ugefaang en Team ze kreéieren dat prett wier fir Entrepreneuren dobannen ze zéien. Et gëtt eng Erkenntnis datt et e puer wichteg Saachen sinn:

  • Alles soll vereenegt ginn, op d'mannst beim Iwwerdroen vum Code. Well et waren esou vill Optraghueler wéi et esou vill verschidden Entwécklungsprozesser mat hiren eegene Besonneschheeten waren. Et war néideg fir jiddereen an ongeféier een ze passen, awer mat Optiounen.
  • Et gi vill Optraghueler, a manuell Kreatioun vun Infrastruktur ass net gëeegent. All nei Aufgab soll ganz séier ufänken - dat ass, d'Instanz soll bal direkt ofgesat ginn, sou datt d'Entwéckler eng Rei vu Léisungen hunn fir hir Pipeline ze managen.

Fir den éischte Schrëtt ze huelen, war et néideg ze verstoen wat gemaach gouf. A mir hu misse bestëmmen wéi mir dohinner kommen. Mir hunn ugefaang mat der Hëllef fir d'Architektur vun der Zilléisung souwuel an der Infrastruktur wéi och an der CI / CD Automatioun ze zéien. Dunn hu mir ugefaang dëse Fërderband ze montéieren. Mir hunn eng Infrastruktur gebraucht, déi selwecht fir jiddereen, wou déiselwecht Fërderbunne géife lafen. Mir hunn Optiounen mat Berechnungen ugebueden, huet d'Bank geduecht, dunn decidéiert wat gebaut ginn a mat wéi engem Fongen.

Als nächst ass d'Schafung vum Circuit - Installatioun vu Software, Konfiguratioun. Entwécklung vun Scripten fir Infrastruktur Deployment a Gestioun. Als nächst kënnt den Iwwergank op d'Fërderunterstëtzung.

Mir hu beschloss alles um Pilot ze testen. Interessanterweis ass während der Pilotéierung e gewësse Stack fir d'éischte Kéier an der Bank opgetaucht. Ënner anerem gouf en Haushändler vun enger vun de Léisunge fir den Ëmfang vum Pilot fir e schnelle Start ugebueden. D'Sécherheet huet hien kennen geléiert wéi hien pilotéiert, an et huet en onvergiesslechen Androck hannerlooss. Wéi mir decidéiert hunn ze wiesselen, gouf glécklecherweis d'Infrastrukturschicht duerch eng Nutanix-Léisung ersat, déi scho virdru an der Bank war. Ausserdeem war et virdru fir VDI, awer mir hunn et fir Infrastrukturservicer erëmbenotzt. Bei klenge Bänn passt et net an d'Wirtschaft, awer bei grousse Bänn gouf et en exzellent Ëmfeld fir Entwécklung an Tester.

De Rescht vum Stack ass jidderengem méi oder manner vertraut. Automatisatiounsinstrumenter an Ansible goufen benotzt, a Sécherheetsspezialisten hunn enk mat hinnen zesumme geschafft. Den Atlassin Stack gouf vun der Bank virum Projet benotzt. Fortinet Sécherheetsinstrumenter - et gouf vun de Sécherheetsleit selwer proposéiert. Den Testframe gouf vun der Bank erstallt, keng Froen gestallt. De Repository System huet Froen opgeworf; Ech hu misse gewinnt ginn.

Optraghueler kruten en neie Stack. Si hunn eis Zäit ginn et fir GitlabCI nei ze schreiwen, an de Jira an de Bankesegment ze migréieren, a sou weider.

Schrëtt fir Schrëtt

Stage 1. Als éischt hu mir eng Léisung vun engem Gewaltverkeefer benotzt, de Produit gouf mat engem neie geschafenen DSO-Netzsegment verbonnen. D'Plattform gouf gewielt fir seng Liwwerzäit, Skaléierungsflexibilitéit an d'Méiglechkeet vu voller Automatisatioun. Tester duerchgefouert:

  • Méiglechkeet fir flexibel a voll automatiséiert Gestioun vun der Virtualiséierungsplattform Infrastruktur (Netz, Disk Subsystem, Rechenressourcen Subsystem).
  • Automatisatioun vun der virtueller Maschinn Liewenszyklus Gestioun (Schabloun, Snapshots, Backups).

No der Installatioun an der Basiskonfiguratioun vun der Plattform gouf se als Plaz vun der Plaz vun der zweeter Stuf Subsystemer benotzt (DSO-Tools, Retail Systementwécklungskonzepter). Déi néideg Sets vu Pipelines goufen erstallt - Kreatioun, Läschen, Modifikatioun, Backup vu virtuelle Maschinnen. Dës Pipelines goufen als éischt Stuf vum Ofbauprozess benotzt.

D'Resultat ass, datt déi geliwwert Ausrüstung net den Ufuerderunge vun der Bank fir Leeschtung a Feeler Toleranz entsprécht. D'DIT vun der Bank huet decidéiert e Komplex ze kreéieren baséiert op dem Nutanix Software Package.

Stage 2. Mir hunn de Stack geholl, deen definéiert gouf, an hunn automatiséiert Installatiouns- a Postkonfiguratiounsskripte fir all Ënnersystemer geschriwwen, sou datt alles sou séier wéi méiglech vum Pilot op den Zilkrees transferéiert gouf. All Systemer goufen an enger Feeler-tolerant Konfiguratioun ofgesat (wou dës Fäegkeet net limitéiert ass duerch d'Lizenzpolitik vum Verkeefer) a verbonne mat Metriken an Eventkollektiounssubsystemer. IB huet d'Konformitéit mat hiren Ufuerderungen analyséiert an huet gréng Luucht ginn.

Stage 3. Migratioun vun all subsystems an hir Astellungen op déi nei PAC. Infrastrukturautomatiséierungsskripte goufen nei geschriwwe ginn, an d'Migratioun vun DSO-Subsystemer gouf an engem voll automatiséierte Modus ofgeschloss. D'Konturen vun der IP Entwécklung goufe vun de Pipelines vun den Entwécklungsteams erstallt.

Stage 4. Automatisatioun vun Applikatioun Software Installatioun. Dës Aufgabe goufe vun den Teamleadere vun den neien Teams opgestallt.

Stage 5. Ausbeutung.

Fernzougang

D'Entwécklungséquipen hunn maximal Flexibilitéit gefrot beim Schaffen mam Circuit, an d'Ufuerderung fir Fernzougang vu perséinleche Laptops gouf am Ufank vum Projet erhéicht. D'Bank hat scho Fernzougang, awer et war net gëeegent fir Entwéckler. D'Tatsaach ass datt de Schema d'Verbindung vum Benotzer mat engem geschützte VDI benotzt. Dëst war gëeegent fir déi, déi nëmmen Mail an engem Büro Pak op hirer Aarbechtsplaz brauchen. Entwéckler brauche schwéier Clienten, héich Leeschtung, mat vill Ressourcen. An natierlech musse se statesch sinn, well de Verloscht vun der Benotzersitzung fir déi, déi mat VStudio schaffen (zum Beispill) oder aner SDK ass inakzeptabel. D'Organisatioun vun enger grousser Zuel vun décke statesche VDIs fir all Entwécklungsteams huet d'Käschte vun der existéierender VDI-Léisung staark erhéicht.

Mir hu beschloss, um Fernzougang direkt op d'Ressourcen vum Entwécklungssegment ze schaffen. Jira, Wiki, Gitlab, Nexus, bauen an Testbänken, virtuell Infrastruktur. D'Sécherheetsbeamten hunn gefuerdert datt den Zougang nëmmen ënner dem folgenden zougänglech ass:

  1. Benotzt Technologien déi schonn an der Bank verfügbar sinn.
  2. D'Infrastruktur soll net existéierend Domain Controller benotzen déi records vu produktive Kontobjekter späicheren.
  3. Den Zougang soll nëmme limitéiert sinn op déi Ressourcen, déi vun engem spezifesche Team erfuerderlech sinn (sou datt ee Produktteam net op d'Ressourcen vun engem aneren Team kënnt).
  4. Maximal Kontroll iwwer RBAC a Systemer.

Als Resultat gouf eng separat Domain fir dëse Segment erstallt. Dëst Domain huet all Entwécklung Segment Ressourcen ënnerbruecht, souwuel Benotzer Umeldungsinformatiounen an Infrastruktur. De Liewenszyklus vun de Rekorder an dësem Domain gëtt mat der IdM, déi an der Bank existéiert, geréiert.

Direkten Fernzougang gouf op Basis vun der existéierender Ausrüstung vun der Bank organiséiert. Zougang Kontroll war an AD Gruppen ënnerdeelt, zu deenen Regelen op Kontexter entspriechend (eng Produit Grupp = eng Grupp vu Regelen).

VM Schabloun Management

D'Geschwindegkeet vun der Schafung vun enger Assemblée- an Testschleife ass ee vun den Haapt-KPIs, déi vum Chef vun der Entwécklungseenheet festgeluecht goufen, well d'Geschwindegkeet vun der Ëmweltvirbereedung direkt d'Gesamt Ausféierungszäit vun der Pipeline beaflosst. Zwou Optiounen fir Basis VM Biller ze preparéieren goufen berücksichtegt. Déi éischt ass d'Mindestbildgréissten, Standard fir all Systemprodukter, maximal Konformitéit mat der Bankpolitik betreffend Astellungen. Déi zweet ass d'Basisbild, déi e schwéier POPPO installéiert enthält, d'Installatiounszäit vun där d'Ausféierungsgeschwindegkeet vun der Pipeline staark beaflosse kéint.

D'Infrastruktur a Sécherheetsfuerderunge goufen och während der Entwécklung berücksichtegt - Biller um neiste Stand halen (Patches, asw.), Integratioun mat SIEM, Sécherheetsastellungen no Banknormen.

Als Resultat gouf decidéiert minimal Biller ze benotzen fir d'Käschte fir se um aktuell ze halen ze minimiséieren. Et ass vill méi einfach d'Basis OS ze aktualiséieren wéi all Bild fir nei Versioune vu POPPO ze patchen.

Baséierend op d'Resultater gouf eng Lëscht vun de Minimum erfuerderleche Set vu Betribssystemer geformt, d'Aktualiséierung vun deem vum Operatiounsteam duerchgefouert gëtt, a Skripte vun der Pipeline si ganz verantwortlech fir d'Aktualiséierung vun der Software, a wann néideg, d'Versioun änneren vun der installéierter Software - transferéiert just den erfuerderlechen Tag op d'Pipeline. Jo, dëst erfuerdert d'Devops Produktteam méi komplex Deployment Szenarie ze hunn, awer et reduzéiert d'operationell Zäit erfuerderlech fir Basisbiller z'ënnerstëtzen, déi soss méi wéi honnert Basis VM Biller erfuerderen fir z'erhalen.

Zougang zum Internet

En anere Stoussblock mat Bankesécherheet war den Zougang zu Internetressourcen aus der Entwécklungsëmfeld. Ausserdeem kann dësen Zougang an zwou Kategorien opgedeelt ginn:

  1. Infrastruktur Zougang.
  2. Entwéckler Zougang.

Infrastruktur Zougang gouf organiséiert duerch Proxying vun externen Repositories mat Nexus. Dat ass, direkten Zougang vu virtuelle Maschinnen gouf net geliwwert. Dëst huet et méiglech gemaach e Kompromëss mat Informatiounssécherheet z'erreechen, dee kategoresch géint all Zougang zu der Äussewelt aus dem Entwécklungssegment war.

D'Entwéckler brauche Zougang zum Internet aus offensichtleche Grënn (Stackoverflow). An och wann all Kommandoen, wéi uewen ernimmt, Remote Zougang zum Circuit haten, ass et net ëmmer bequem wann Dir net Ctrl + V vun der Aarbechtsplaz vum Entwéckler an der Bank an der IDE maache kënnt.

En Accord gouf mam IS erreecht datt am Ufank, an der Teststadium, Zougang iwwer e Bankproxy baséiert op enger wäisser Lëscht gëtt. Nom Ofschloss vum Projet gëtt den Zougang op d'schwaarz Lëscht transferéiert. Enorme Zougangstabelle goufen virbereet, déi d'Haaptressourcen a Repositories uginn, op déi Zougang zum Ufank vum Projet erfuerderlech war. D'Koordinatioun vun dësen Zougang huet eng zimlech Zäit gedauert, wat et méiglech gemaach huet op de schnellsten méiglechen Iwwergang op Schwaarzlëschten ze insistéieren.

Resultater

De Projet ass virun e bësse manner wéi engem Joer opgehalen. Komesch genuch sinn all Optraghueler op d'Zäit op den neie Stack gewiesselt a kee war duerch déi nei Automatisatioun fortgaang. IB ass net presséiert positiv Feedback ze deelen, awer beschwéiert och net, aus deem mir schléissen datt se et gär hunn. D'Konflikter sinn ofgeschwächt, well d'Informatiounssécherheet sech erëm kontrolléiert fillt, awer d'Entwécklungsprozesser net stéiert. D'Equipe krute méi Verantwortung, an d'Gesamthaltung zur Informatiounssécherheet gouf besser. D'Bank huet verstanen datt den Iwwergank op DevSecOps bal inévitabel war, an huet et menger Meenung no op déi sanft a korrekt Manéier gemaach.

Alexander Shubin, Systemarchitekt.

Source: will.com

Setzt e Commentaire