-
Edistynyt käyttö
-
Tietoturvaohje
Tietoturvaopas
Rahti-sovellukset ovat näkyvissä internetiin, ja niiden tietoturvasta tulee huolehtia asianmukaisesti. Käyttäjä, jonka tunnuksella palvelu toimii Rahdissa, on vastuussa sen tietoturvasta. Katso lisätietoja vastuista käyttöehdoista.
Tätä opasta tulee pitää lähtötasona, joka on otettava huomioon, eikä täydellisen tietoturvan tarkistuslistana.
Rahdissa toimivien palveluiden tietoturvaa parantavat toimenpiteet voidaan karkeasti jakaa kahteen luokkaan.
Klusterin käytäntö
Oletuksena klusterissamme käytetään oletustietoturvakäytäntöjä:
-
Root-käyttö estetty: Tämä tarkoittaa, että et voi ajaa konttia root-oikeuksilla. Se epäonnistuu.
-
Satunnainen UID/GID: Kun podisi otetaan käyttöön klusterissamme, sille luodaan satunnainen UID. Et voi määrittää UID:tä/GID:tä tämän alueen ulkopuolelta (esimerkiksi
1001), sillä se vaatii erityisoikeuksia. Yleensä numero on esimerkiksi1000620000. -
Restricted-v2-käytäntö: OpenShift 4.11:stä alkaen uudet SCC-käytännöt on otettu käyttöön Pod Security Standards -mallin mukaisesti.
-
Mitä eroa on v1- ja v2-SCC (Security Context Constraints) -käytännöillä?
- V2 ei salli asetusta allowPrivilegeEscalation=true
- Tyhjä tai false on yhteensopiva v1-SCC:n kanssa ja toimii siksi OCP-versioissa < 4.11
- V2 edellyttää, että poistettavat capabilities-arvot jätetään tyhjiksi, asetetaan arvoon ALL tai lisätään vain NET_BIND_SERVICE
- Kun SCC hyväksytään v2:na, se poistaa aina ALL. V1 poisti vain capabilityt KILL, MKNOD, SETUID ja SETGID.
- V2 sallii edelleen NET_BIND_SERVICE-capabilityn nimenomaisen lisäämisen
- V2 edellyttää, että SeccompProfile joko jätetään tyhjäksi tai asetetaan arvoon runtime/default
- Tyhjä arvo on yhteensopiva v1:n kanssa ja toimii OCP-versioissa < 4.11
- V2 ei salli asetusta allowPrivilegeEscalation=true
Reittien suojaaminen
Ota käyttöön reittien TLS-salaus. Reititin tukee moderneja ja turvallisia TLS-versioita, TLS v1.3:a ja TLS v1.2:ta. TLS v1.3 on tällä hetkellä uusin versio. TLS v1.1:tä ja sitä vanhempia versioita ei enää pidetä turvallisina. Jos palvelusi DNS-nimi on
alidomainissa *.2.rahtiapp.fi (esim. coolservice.2.rahtiapp.fi), Rahdin tarjoamaa oletusarvoista wildcard-TLS-varmennetta voidaan käyttää suoraan. Muussa tapauksessa
sinun täytyy lisätä varmenteesi tiedot route-objektiin.
Pääsy palveluihin tulisi rajoittaa valittuihin verkkoihin sallittujen listojen avulla aina kun mahdollista (katso luku Reitit). Tämä on olennaista silloin, kun pääsyä voidaan rajoittaa IP-osoitteiden perusteella.
Suojatut reitit estävät salakuunteluhyökkäyksiä, jotka kohdistuvat esimerkiksi palvelun salasanoihin ja käyttäjätunnuksiin sekä muuhun internetin yli lähetettävään kriittiseen dataan.
On suositeltavaa ottaa käyttöön HSTS-otsake, ja sen voi aktivoida suorittamalla tämän komennon:
HTTP Strict-Transport-Security -vastausotsake (eli lyhyesti HSTS) kertoo selaimelle, että tämän reitin kohdalla tulee aina käyttää HTTPS:ää eikä koskaan HTTP:tä.
Rate limiting
On myös mahdollista käyttää annotaatioita sovelluksesi suojaamiseen DDoS-hyökkäyksiä vastaan
Konttikuvien tietoturva
Vanhentuneet konttikuvat ovat alttiita hyväksikäytölle tietoturvahaavoittuvuuksien kautta, ja tuntemattomat kuvat voivat sisältää haitallista koodia. Näistä syistä tiettyä konttikuvaa tulisi käyttää vain, jos:
- Se on peräisin tunnetusta ja luotetusta lähteestä, jotta tunnetut tietoturvahaavoittuvuudet on paikattu ja voit luottaa siihen, ettei se sisällä haitallista koodia.
- Olet tarkistanut sen Dockerfile-rakennusmäärityksen ja pohjakerros täyttää säännön #1 tai #2.
Muita huomioitavia asioita:
- Käytä kuratoituja kuvia.
- Suosi kuvia, jotka saavat säännöllisesti tietoturvapäivityksiä.
- Käytä staattisia konttikuvien analysointityökaluja, jos niitä on saatavilla. Tukea varten ota yhteyttä paikalliseen IT-tukeesi.
- Mitä pienempi kuva, sitä vähemmän siinä on hyökkäyspinta-alaa:
- Hyödynnä builder-mallia kuvissasi, jos käytät käännettäviä ohjelmointikieliä: Rakenna binaari eri kuvassa kuin siinä, johon sovellus otetaan käyttöön. Dockerissa tämä voidaan toteuttaa multi-stage buildien avulla, ja OpenShiftissä muiden kuvien hakemistoja voidaan liittää rakennusprosessin aikana ketjutetuilla buildeilla. Näin lopullisessa kuvassa ovat mukana vain ohjelmiston olennaiset osat.
- Jos sovellus on kirjoitettu tulkattavalla kielellä, käytä kieleen
perustuvia kuvia. Sen sijaan, että asentaisit Node.js:n Alpine-kuvan päälle, käytä
esimerkiksi
node:21-alpine.
IP-osoitteet palomuurin avauksia varten
Kaiken ulospäin suuntautuvan asiakasliikenteen IP-osoite on 86.50.229.150. Avaamalla palomuurin tälle IP-osoitteelle sallit kaiken liikenteen, joka tulee mistä tahansa Rahti-projektista. On suositeltavaa, ettei turvallisuudessa luoteta pelkästään IP-suodatukseen, vaan että sitä käytetään toissijaisena keinona, kuten esimerkiksi OAuth-todennusjärjestelmän rinnalla.
Tätä IP-osoitetta ei ole suunniteltu muutettavaksi, mutta ei ole mahdollista antaa 100 %:n varmuutta siitä, ettei jokin ennalta arvaamaton tapahtuma koskaan pakottaisi meitä muuttamaan sitä. Jos tämä IP-osoite joskus muuttuu, siitä tiedotetaan asianmukaisesti etukäteen.
Valituille nimiavaruuksille, jotka sitä tarvitsevat, on mahdollista määrittää oma erillinen IP-osoite. Jokainen pyyntö arvioidaan erikseen, koska käytettävissä on rajallinen määrä virtuaalisia IP-osoitteita. Lisätietoja saat tekemällä tukipyynnön osoitteeseen servicedesk@csc.fi.