Hyppää sisältöön

Welcome to our weekly research support coffee hour on Zoom! Click here for more information.

Warning!

Puhti scratch disk is becoming very full (80+ % ) resulting in performance degradation. Everybody is advised to only keep actively processed data on scratch, all other data should be deleted, transferred to host institute or stored in Lumi-O. No new quota will be granted. Click here for a tool for examining your disk usage.

Tietoturvaopas

Rahti-sovellukset ovat alttiina internetille, ja niiden tietoturvaan tulee suhtautua asianmukaisella huolellisuudella. Käyttäjä, jonka tunnuksella palvelu toimii Rahdissa, on vastuussa sen tietoturvasta. Katso lisätietoja vastuista käyttöehdoista.

Tätä opasta tulee pitää vähimmäistasona, joka on otettava huomioon, eikä täydellisen tietoturvan tarkistuslistana.

Rahdissa toimivien palveluiden tietoturvaa parantavat toimenpiteet voidaan karkeasti jakaa kahteen luokkaan.

Klusterin käytännöt

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/GID:tä tämän alueen ulkopuolelta (esimerkiksi 1001), sillä se vaatii erityisoikeuksia. Yleensä numero on esimerkiksi 1000620000.

  • Restricted-v2-käytäntö: OpenShift 4.11:stä alkaen uudet SCC-käytännöt on otettu käyttöön Pod Security Standards-standardin mukaisesti.

  • Mitä eroa on v1- ja v2-SCC-käytännöillä (Security Context Constraints)?

    • 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 capabilityt 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ä joko SeccompProfile jätetään tyhjäksi tai asetetaan arvoon runtime/default
      • Tyhjä on yhteensopiva v1:n kanssa ja toimii OCP-versioissa < 4.11
  • Podien oletusresurssirajat

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 ei enää pidetä turvallisina. Jos palvelusi DNS-nimi on alidomainissa *.2.rahtiapp.fi (esim. coolservice.2.rahtiapp.fi), Rahdin tarjoamaa oletusarvoista jokerimerkillistä TLS-varmennetta voidaan käyttää suoraan. Muussa tapauksessa sinun on lisättävä varmenteesi tiedot route-objektiin.

Palveluiden pääsy 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:

$ oc annotate route test-route haproxy.router.openshift.io/hsts_header='true'

HTTP Strict-Transport-Security -vastausotsake (eli lyhyesti HSTS) kertoo selaimelle, että tämän Route-resurssin kohdalla tulee aina käyttää HTTPS:ää eikä koskaan HTTP:tä.

Nopeusrajoitus

On myös mahdollista käyttää annotaatioita sovelluksesi suojaamiseen DDoS-hyökkäyksiltä

Konttikuvien tietoturva

Vanhentuneet konttikuvat ovat alttiita tietoturvahaavoittuvuuksien hyväksikäytölle, ja tuntemattomat kuvat voivat sisältää haitallista koodia. Näistä syistä tiettyä konttikuvaa tulisi käyttää vain, jos:

  1. Se on peräisin tunnetusta ja luotetusta lähteestä, jotta tunnetut tietoturva- haavoittuvuudet on paikattu ja voit luottaa siihen, ettei se sisällä haitallista koodia.
  2. Olet tarkistanut sen Dockerfile-rakennusmäärityksen ja peruskerros 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-tukeen.
  • 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 monivaiheisilla koonneilla, ja OpenShiftissä muiden kuvien hakemistoja voidaan liittää rakennusprosessin aikana ketjutetuilla koonneilla. 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 tietoturvassa luoteta pelkästään IP-suodatukseen, vaan että tätä käytetään toissijaisena keinona, kuten esimerkiksi OAuth-todennusjärjestelmän rinnalla.

Tätä IP-osoitetta ei ole tarkoitus muuttaa, mutta emme voi antaa 100 %:n varmuutta siitä, etteikö jokin ennalta arvaamaton tapahtuma voisi joskus pakottaa 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 yksilöllisesti, koska käytettävissä on rajallinen määrä virtuaalisia IP-osoitteita. Lisätietoja saat luomalla tukipyynnön osoitteeseen servicedesk@csc.fi.

Suomenkielinen tekoälykäännös

Sisällössä voi esiintyä virheellistä tietoa tekoälykäännöksestä johtuen.

Klikkaa tästä antaaksesi palautetta