DevSecOps ja arkkitehtuuri
Cyber, SecOps & arkkitehtuurit
DevSecOps ja arkkitehtuuri lyhyesti
DevOps on täynnä lupauksia uusista ja tehokkaista raja-aitoja kaatavista toimintamalleista. On huomioitava, että uuden toimintamalliin lupaamien hyötyjen saavuttaminen edellyttää organisatoorista valmiutta, ymmärrystä vastuiden jakautumisesta uudessa mallissa sekä automaation tuomien tietoturvannäkökulmien huomioon ottamista. DevOps-malliin voidaan rakentaa erilaisia kontrolleja sekä dev- että ops-puolelle. Jos haluat tehdä lähtemättömän vaikutuksen tietoturvasi tasoon, ota dev-osuus vahvasti haltuun.
DevOps määrittelee prosessit ja käytännöt ohjelmisto- ja palvelukehityksen suunnitteluvaiheesta tuotantoon ja operointiin, hyödyntäen ohjelmistokehityksessä paljon käytettyjen jatkuvan integraation menetelmiä automaattiseen testaukseen, laadunvarmennukseen ja käyttöönottoon.
DevSecOps sisältää paljolti DevOpsin ideoita ja elementtejä, pyrkien ensisijaisesti yhdistämään henkilöt ja prosessit ja vasta sen jälkeen työkalut. Tällä tavoin saadaan parannettua ja automatisoitua tietoturvallisen kehityksen käyttöönottoa, hallinnointia sekä kattavuutta. DevSecOpsiin liittyy vahvasti tietoturvallisen operoinnin ja infran ajattelumallit.
Mitä Mint Security toimittaa
Kartoitamme asiakkaan kanssa yhteistyössä tarpeet tietoturvallisen jatkuvan integraation toteuttamiseksi. Toteutamme asiakkaan asiantuntijoiden kanssa sovitut toimenpiteet ja dokumentoimme kaiken.
Autamme asiakasta näkemään suodenkuopat toimintamenetelmissä ja prosesseissa, sekä tuomme oman näkemyksemme ja kokemuksemme siihen, miten asioita kannattaisi tehdä.
Asiantuntijamme auttavat kädestä pitäen viemään kokonaisuuden suunnitelmasta toteutukseen ja arkipäivään asti. Tuotamme pohjatyön lisäksi myös asiakkaillemme kyvykkyyttä toimia modernissa ympäristössä itsenäisesti. Tekniikan lisäksi toiminnassa on jatkuvasti tietoturva ja riskienhallinta läsnä.
Asiakkaiden tarpeet ja ratkaistavat haasteet
Monasti kerran toimintakuntoon laitetut prosessit jäävät käyttöön eikä niitä enää jälkikäteen validoida, sillä aikaa ei välttämättä päivittäiseltä toiminnalta toiminnan kehittämiseen jää. Dokumentointi on myös saattanut jäädä vähän vähemmälle ja henkilökunta vaihtunut. Tämä johtaa usein siihen, että lopulta toiminta ei ole enää tehokasta eikä kenties pystytä enää vastaamaan esimerkiksi kysymykseen “miksi teemme näin” kun oikeasti kukaan ei tiedä. Näin on vain tehty jo vuosia.
Modernit arkkitehtuurit, uudet vaatimukset tehokkuudesta ja uusien teknologioiden ryntääminen konesaleihin saattaa yllättää, jännittää ja masentaa. Asiat ovat kuitenkin ratkaistavissa.
Tarkemmin menetelmistämme ja työkaluistamme
Hyödynnämme tunnettuja ja hyviksi koettuja menetelmiä ja työkaluja DevSecOps prosessien suunnittelussa ja jalkautuksessa. Ei ole tarpeen keksiä kaikkea uudelleen, mutta usein voimme vähintään parantaa olemassaolevia työkaluja ja niiden käyttötehokkuutta.
Turvallisen arkkitehtuurin suunnittelu ja design review – Enterprise Architecture
Jokaisen turvallisen ratkaisun pohjalla on EA – enterprise architecture.
EA-työvaihe voi sisältää muun muassa seuraavia asioita:
- Ylätason kuvaus tietojärjestelmistä
- Teknisten ja muiden rajoitusten kartoittaminen
- Tietovuomallinnukset
- Tietoturvavaatimukset
- Jatkuvuusvaatimukset
Kokemuksemme turvin osaamme arvioida liiketoimintatarpeiden näkökulmasta mikä on milloinkin olennaista, ja kuinka hyvin EA on integroitunut yrityksen toimintoihin. EA-työt voi olla puhtaasti auditoivia, design review -tyyppisiä, tai myös nykyisen vanhentuneen ”arkkitehtuurilajitelman” koostaminen uudeksi moderniksi hallittavaksi kokonaisuudeksi. Osana modernia EA:ta on nykyään aina automatisointi.
Authentication, Authorization, Audit
Authentication, Authorization, Audit eli AAA. Tietoturvallisen kehityksen kulmakivenä voidaan pitää sitä, että tiedetään kenellä on oikeus tehdä ja kuka on tehnyt
- Mitä
- Milloin
- Miksi
AAA kertoo meille miksi tiettyjä asioita on tehty, kenen toimesta ja milloin. Se mahdollistaa jälkien seuraamisen esimerkiksi ongelmatilanteissa kun tiedämme mitä on tapahtunut. Meidän ei tarvitse perustaa korjaavia toimenpiteitä puolustavia päätöksiä arvauksille vaan voimme nojautua tosiasioihin.
Autentikoinnin osalta vältämme aina paikallista tunnistautumista. Jokainen paikallinen käyttäjätunnus on oletusarvoisesti tietoturvariski, sillä näiden elinkaaren seuranta on usein olematon. Keskitetyn tunnistuksen etuja ei käy kiistäminen. Pystymme hallinnoidaan tunnuksien voimassaoloa, salasanoja, salasanapolitiikkoja yms. yhdestä paikasta, joka tarjoaa meille keskitetyn näkymän kokonaisuuteen. Mikäli voimme tämän saman järjestelmän kautta myös hallinnoida autorisointia, olemme jo hyvin lähellä hallittavaa kokonaisuutta.
Autentikointiin ja Autorisointiin hyödynnämme esimerkiksi FreeIPA ohjelmistoa, joka mahdollistaa keskitetyn käyttäjien ja käyttöoikeuksin hallinnan, sekä mahdollisuuden hyödyntää toiminnallisuuksia palvelinten käyttöjärjestelmissä ja sovelluksissa. FreeIPA sisältää hakemiston, joten erilaisten laitteiden, appliancien ja varusohjelmistojen sisällyttäminen AAA:han on mielekästä ja helppoa.
Logeja, logeja, logeja
Kartoitamme ja rakennamme asiakaskohtaiset näkymät valitulla lokienhallintajärjestelmällä asiakkaan tarpeiden mukaisiksi ja automatisoimme toimenpiteet poikkeamien havainnointiin. Olemme kovia käyttämään Splunkia, mutta emme katso muitakaan järjestelmiä karsastaen.
Keräämme logitietoja mahdollisimman kattavasti ja aina logittavan järjestelmän ulkopuolelle. Näin estämme logitietojen peukaloinnin ja mahdollistamme kiistämättömyyden.
Lokihavainnot pyritään arvioimaan lokienhallintajärjestelmässä automaattisesti ja havainnot integroimaan esim. JIRAan tai muuhun hallintajärjestelmään jotta havaintojen käsittely voidaan sujuvasti tehdä osana vakiintunutta prosessia.
Automaatio ja neljän silmän sääntö
Ihminen on käytännössä aina heikoin lenkki. Ihminen on altis virheille ja ennemmin tai myöhemmin virheitä tapahtuu. Se on väistämätöntä. Erillisten manuaalisten työvaiheiden lisääminen ei nykyorganisaatioissa ole toimiva ratkaisu työkuormanmaan kannalta.
Virheitä voidaan tehokkaasti ennaltaehkäistä automaation avulla, joka tarkoittaa että kaikki asennukset, korjaukset, muutokset ja muut operointitoimenpiteet tehdään keskitetysti esimerkiksi Puppetin avulla. Näin vältetään kirjoitusvirheitä, ajatusvirheitä yms., mutta, myös automaation käyttämät säännöt ja politiikat ovat tietysti ihmisen tekemiä. Tästä syystä hyödynnämme aina neljän silmän sääntöä: kaikki muutokset hyväksyy toinen silmäpari.
Kovennukset
Järjestelmä kuten se tulee sellofaanista on aina haavoittuva. Hyviin IT-menettelytapoihin kuuluu koventaa järjestelmä. Monesti kovennusmenettelyt ovat kuitenkin osastoriippuvaisia – ja varsinkin ostettaessa avaimet käteen -ratkaisuja, jää tämä osuus pois. Koventamalla järjestelmiä saavutetaan kuitenkin huomattavan kovempaa turvallisuustasoa. Tämä on perustietoturvaa, ja sen on oltava kunnossa.
Palvelinjärjestelmiin asennetaan usein turhia ohjelmistoja. Nämä ohjelmistot ovat jokainen erillinen hyökkäysrajapinta varsinkin mikäli ohjelmisto kuuntelee myös ulkoisia yhteyksiä. Myös täysin paikallinen ohjelmisto tarjoaa ylimääräisen hyökkäysmahdollisuuden paikallisille käyttäjille.
Palvelimien kovennuksen yhteydessä mm.
- Kartoitetaan oikeasti tarvittavat palvelut ja ohjelmistot
- Poistetaan kaikki ylimääräiset ohjelmistot
- Vaihdetaan oletussalasanat
- Kartoitetaan yhteystarpeet ja sallitaan sisääntulevat yhteydet vain tarpeellisista lähteistä
- Aktivoidaan paikallinen palomuuri ja estetään kaikki tarpeettomat palvelut
- Aktivoidaan mahdollisuuksien mukaan kaksitasoinen tunnistus (mm. ssh public key)
- Tarkistetaan ja tarkennetaan salasanapolitiikat
Kovennuksissa noudatamme valmistajien ohjeita, CIS-ohjeita sekä omia kovennusstandardejamme. Useimmat tietoturvastandardit vaativat, että järjestelmät kovennetaan ennen käyttöönottoa.
IDS
Intrusion Detection System (IDS), nimensä mukaisesti, havainnoi valvottavassa järjestelmässä tapahtuvia odottamattomia muutoksia, kuten
- uusia palveluita aktivoituu
- konfiguraatiotiedostoja muokataan
- logitiedosto pienenee
IDS-havainnot pyritään integroimaan esim. JIRAan tai muuhun hallintajärjestelmään jotta havaintojen käsittely voidaan sujuvasti tehdä osana vakiintunutta prosessia.
Tietoturvaskannaukset ja automatisointi
Jos järjestelmääsi pääsee käsiksi, on se uhattuna. Jos järjestelmäsi on kytketty internetiin, on peli jo menetetty. Erityisesti koventamattomat järjestelmät joiden turvatasoa ei ole mitattu ovat suurimman uhan alla. Tietoturvaskannaukset ja niiden automatisointi voi tuottaa erittäin hyviä havaintoja. Havainnoilla voidaan ohjata järjestelmäkehitystä tai mitata SLA-tasoja.
Skannaustulokset pyritään integroimaan esim. JIRAan tai muuhun hallintajärjestelmään jotta havaintojen käsittely voidaan sujuvasti tehdä osana vakiintunutta prosessia.
Dokumentointi
Mikään luotu prosessi ei ole kestävä mikäli toimintamenetelmistä ei ole yhteisesti sovittu ja mikäli asioita ei ole selkeästi dokumentoitu. Joku mahdollisesti osaa kaikki DevSecOps -prosessit ulkoa, mutta henkilökunta vaihtuu jolloin on ensiarvoisen tärkeää, että toiminta voi jatkua mahdollisten avainhenkilöiden poistumisen jälkeenkin.
Dokumentoimme kaiken esimerkiksi Atlassian Confluencella. Näin saamme keskitetyn dokumenttikirjaston muutoshistorioineen ja pystymme vastaamaan myös dokumentaation osalta AAA:n esittämiin kysymyksiin. Aina.
DevSecOps parantaa eri sidosryhmien välistä yhteistyötä ja selkeyttää rooleja. Virheiden todennäköisyys tuotantopalveluissa saadaan minimoitua hallituilla prosesseilla, jotka tekevät myös jokaisen toimijan yksilöllisestä tehtäväkentästä selkeän.
Hallitsemme käyttöjärjestelmäkonfiguraatiot Ansiblella.
Toteutamme Linux palvelinympäristöjen kovennukset CIS Benchmarkien mukaisesti ja internet -facing web sovelluksien ja rajapintojen sanitoinnin f5 BigIP/ASM tai pfSense/HAproxy frontendien avulla.
- IDS – Intrusion Detection System
- IPS – Intrusion Prevention System
- SIEM – Security Information and Event Management
- AAA – Authentication, Authorization, Audit
- CIS – Center for Internet Security