Sigurnost

Ova stranica govori i šta štitimo, i šta ne možemo zaštititi. Sigurnosna priča kojoj nedostaje drugi dio navodi čitaoca da spisak pomiješa s garancijom.

Polazište

Objaviti paket znači pokrenuti kod na računaru svakog inženjera koji ga instalira. Svaka sigurnosna odluka u ovom proizvodu prvo je vagana prema jednom pitanju: čini li ova promjena neovlaštenu objavu lakšom?

  • Paketi se potpisuju (ECDSA P-256)

    Datoteka potpisa putuje unutar paketa. Ona potpisuje manifest s otiscima datoteka, oznakom paketa i verzijom — a ne puki otisak arhive.

    Kad bi se potpisivao samo otisak, stara ispravno potpisana arhiva mogla bi se podmetnuti pod novim brojem verzije: potpis bi prošao provjeru, a korisnik bi kao „ažuriranje“ instalirao alat s poznatom ranjivošću.

  • Privatni ključ NIJE na serveru

    Server samo provjerava. Potpisivanje se dešava na računaru onoga ko objavljuje, zasebnim alatom.

    Kad bi ključ stajao na serveru, ko ga preuzme mogao bi izmijeniti paket i ponovo ga potpisati — čime bi potpis postao uzaludan.

  • Provjerava i klijent

    Dodatak na inženjerovom računaru provjerava potpis zasebno, a spisak pouzdanih ključeva koji koristi ne dolazi sa servera.

    Potpis postoji baš zato što se serveru ne može vjerovati na riječ. Uzeti spisak povjerenja s istog servera tiho bi poništilo polaznu pretpostavku.

  • Revizijski dnevnik koji se ne briše

    Svaka objava, svaka promjena ovlaštenja i svaka odluka o kanalu upisuju se zauvijek. Namjerno ne postoji nijedan put izmjene ili brisanja, a čišćenje nakon isteka roka čuvanja ga ne dira.

    „Kako je ovaj alat dospio ovdje“ obično se pita nakon nekoliko mjeseci. Tog dana zapis koji se mogao obrisati je zapis koji nikad nije ni postojao.

  • Pravilo četiri oka, po izboru

    Podizanje verzije u širi kanal može tražiti odobrenje drugog administratora, a onaj ko je zatražio ne može odobriti vlastiti zahtjev. Vraćanje unazad nikad ne traži odobrenje.

    Podrazumijevano je isključeno. U timu od tri osobe prepreka se za nekoliko sedmica pretvori u poruku koja se odobrava bez čitanja; kontrola za koju se vjeruje da štiti, a ne štiti, gora je od nikakve kontrole.

  • Raspakivanje arhive je samo po sebi napadna površina

    Priložene arhive se provjeravaju na izlazak iz foldera (zip-slip) i na bombe raspakivanja, a veličina nakon raspakivanja je ograničena.

    Raspakivanje arhive djeluje bezazleno. Posebno pripremljena može zapisati datoteke izvan ciljnog foldera ili napuniti disk servera.

  • Prijava bez lozinke

    Korisnici se prijavljuju jednokratnim kodom poslanim na njihovu adresu. Sesija teče s kratkotrajnim tokenom; token za osvježavanje nikad nije vidljiv kodu u pregledaču.

    Ako nema skladišta lozinki kojim bi trebalo upravljati, nema ni baze lozinki koja bi mogla iscuriti. A ponovna upotreba već opozvanog tokena za osvježavanje tretira se kao znak krađe: sesija se zatvara.

  • Vidite šta instalirate

    Instalacijski folder sadrži mašinski čitljiv spisak komponenti (SBOM CycloneDX) i migracijske skripte za obje baze podataka.

    Vaš IT tim mora moći provjeriti šta stiže na server prije nego što stigne. Kad se objavi ranjivost u nekoj zavisnosti, „imamo li je?“ postaje pretraga kroz datoteke.

Šta ne možemo zaštititi

Ovo nisu nedostaci, nego granice. Proizlaze iz strukture, a tvrditi suprotno bilo bi neistinito.

  • Dva administratora koja djeluju zajedno. Pravilo četiri oka zaustavlja jednog, ne dvojicu.
  • Sistemski administrator servera. Onome ko ima pristup bazi podataka i datotečnom sistemu nijedna kontrola na nivou aplikacije nije prepreka.
  • Stanica na kojoj stoji ključ za potpisivanje. Ključ nije na serveru, ali je negdje; ako padne ta mašina, pada i potpis.
  • Namjerno skriveno zlonamjerno ponašanje. Naš pregled paketa je heuristički i ne tvrdimo da će uhvatiti kod koji pokušava da se sakrije.
  • Curenje podataka. Instalirani alat radi s ovlaštenjima samog inženjera i može čitati sve što ona dosežu. To ograničavaju kontrole operativnog sistema i mreže, a ne ovaj proizvod.
  • Sigurnost vaših sigurnosnih kopija. Kopija baze podataka je u vašim rukama, a sve u njoj vrijedi tačno koliko i živi sistem.

Prijava ranjivosti

Ako ste neku pronašli, pišite nam. Prijave shvatamo ozbiljno, ne isključujemo prijavioca iz postupka i javljamo vam kad izađe popravka.

security@ypcad.com