Tietoturva

Tämä sivu kertoo sekä sen, mitä suojaamme, että sen, mitä emme pysty suojaamaan. Tietoturvakertomus, josta puuttuu jälkimmäinen osa, saa lukijan sekoittamaan luettelon takuuseen.

Lähtökohta

Paketin julkaiseminen tarkoittaa koodin ajamista jokaisen sen asentavan insinöörin koneella. Jokainen tietoturvapäätös tässä tuotteessa on ensin punnittu yhtä kysymystä vasten: helpottaako tämä muutos julkaisemista ilman käyttöoikeutta?

  • Paketit allekirjoitetaan (ECDSA P-256)

    Allekirjoitustiedosto matkaa paketin sisällä. Se allekirjoittaa manifestin, jossa ovat tiedostojen tiivisteet, paketin tunnus ja versio — ei pelkkää arkiston tiivistettä.

    Jos vain tiiviste allekirjoitettaisiin, vanha, oikein allekirjoitettu arkisto voitaisiin työntää uuden versionumeron alle: allekirjoitus läpäisisi tarkistuksen, ja käyttäjä asentaisi ”päivityksenä” työkalun, jossa on tunnettu haavoittuvuus.

  • Yksityinen avain EI ole palvelimella

    Palvelin vain tarkistaa. Allekirjoitus tapahtuu julkaisijan koneella erillisellä työkalulla.

    Jos avain olisi palvelimella, sen haltuunsa saanut voisi muuttaa pakettia ja allekirjoittaa sen uudelleen — mikä tekisi allekirjoituksesta turhan.

  • Myös asiakas tarkistaa

    Insinöörin koneella oleva lisäosa tarkistaa allekirjoituksen omalta osaltaan, eikä käyttämänsä luotettujen avainten luettelo tule palvelimelta.

    Allekirjoitus on olemassa juuri siksi, ettei palvelinta voi uskoa sanaan. Luottamusluettelon hakeminen samalta palvelimelta kumoaisi hiljaa lähtöoletuksen.

  • Tarkastusloki, jota ei poisteta

    Jokainen julkaisu, jokainen käyttöoikeuden muutos ja jokainen kanavapäätös kirjataan ikuisesti. Tarkoituksella ei ole olemassa mitään muutos- tai poistoreittiä, eikä säilytysajan jälkeinen siivous kosketa sitä.

    ”Miten tämä työkalu on tänne päätynyt” kysytään yleensä kuukausien kuluttua. Sinä päivänä merkintä, joka olisi voitu poistaa, on merkintä, jota ei ole koskaan ollut.

  • Neljän silmän periaate, valinnainen

    Version jakaminen laajempaan kanavaan voi vaatia toisen ylläpitäjän hyväksynnän, eikä pyynnön tehnyt voi hyväksyä omaa pyyntöään. Palautus ei vaadi koskaan hyväksyntää.

    Oletuksena se on pois päältä. Kolmen hengen tiimissä este muuttuu muutamassa viikossa viestiksi, joka hyväksytään lukematta; tarkistus, jonka uskotaan suojaavan mutta joka ei suojaa, on huonompi kuin ei tarkistusta lainkaan.

  • Arkiston purkaminen on itsessään hyökkäyspinta

    Lähetetyt arkistot tarkistetaan kansiosta karkaamisen (zip-slip) ja purkupommien varalta, ja koko purkamisen jälkeen on rajattu.

    Arkiston purkaminen näyttää viattomalta. Erityisesti valmisteltu voi kirjoittaa tiedostoja kohdekansion ulkopuolelle tai täyttää palvelimen levyn.

  • Kirjautuminen ilman salasanaa

    Käyttäjät kirjautuvat kertakoodilla, joka lähetetään heidän osoitteeseensa. Istunto kulkee lyhytikäisellä tunnisteella; uudistustunniste ei ole koskaan näkyvissä selaimen koodille.

    Jos ei ole salasanaholvia hoidettavaksi, ei ole myöskään salasanatietokantaa, joka voisi vuotaa. Ja jo peruutetun uudistustunnisteen uudelleenkäyttö tulkitaan varkauden merkiksi: istunto suljetaan.

  • Näette, mitä asennatte

    Asennuskansio sisältää koneluettavan osaluettelon (SBOM CycloneDX) ja migraatioskriptit molemmille tietokannoille.

    IT-tiiminne on voitava tarkistaa, mitä palvelimelle päätyy, ennen kuin se päätyy sinne. Kun jostakin riippuvuudesta ilmoitetaan haavoittuvuus, ”onko meillä se?” muuttuu hauksi tiedostoista.

Mitä emme pysty suojaamaan

Nämä eivät ole puutteita vaan rajoja. Ne seuraavat rakenteesta, ja päinvastaisen väittäminen olisi valhetta.

  • Kaksi yhdessä toimivaa ylläpitäjää. Neljän silmän periaate pysäyttää yhden, ei kahta.
  • Palvelimen järjestelmänvalvoja. Sille, jolla on pääsy tietokantaan ja tiedostojärjestelmään, mikään sovellustason tarkistus ei ole este.
  • Työasema, jolla allekirjoitusavain on. Avain ei ole palvelimella, mutta se on jossain; jos tuo kone kaatuu, allekirjoitus kaatuu sen mukana.
  • Tarkoituksella piilotettu haitallinen käytös. Pakettien tarkastuksemme on heuristinen, emmekä väitä sen nappaavan koodia, joka yrittää piiloutua.
  • Tietovuoto. Asennettu työkalu toimii insinöörin omilla käyttöoikeuksilla ja voi lukea kaiken, mihin ne yltävät. Sitä rajoittavat käyttöjärjestelmän ja verkon tarkistukset, ei tämä tuote.
  • Varmuuskopioidenne turvallisuus. Tietokannan kopio on teidän käsissänne, ja kaikki siinä on tarkalleen yhtä arvokasta kuin elävä järjestelmä.

Haavoittuvuuden ilmoittaminen

Jos olette löytäneet sellaisen, kirjoittakaa meille. Otamme ilmoitukset vakavasti, emme sulje ilmoittajaa pois prosessista ja kerromme, milloin korjaus julkaistaan.

security@ypcad.com