Bezbednost

Ova stranica govori i šta štitimo, i šta ne možemo da zaštitimo. Bezbednosna priča kojoj nedostaje drugi deo navodi čitaoca da spisak pomeša s garancijom.

Polazište

Objaviti paket znači pokrenuti kod na računaru svakog inženjera koji ga instalira. Svaka bezbednosna odluka u ovom proizvodu prvo je vagana prema jednom pitanju: čini li ova promena neovlašćenu 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 da se podmetne pod novim brojem verzije: potpis bi prošao proveru, a korisnik bi kao „ažuriranje“ instalirao alat s poznatom ranjivošću.

  • Privatni ključ NIJE na serveru

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

    Kad bi ključ stajao na serveru, ko ga preuzme mogao bi da izmeni paket i ponovo ga potpiše — čime bi potpis postao uzaludan.

  • Proverava i klijent

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

    Potpis postoji baš zato što serveru ne može da se veruje na reč. Uzeti spisak poverenja s istog servera tiho bi poništilo polaznu pretpostavku.

  • Revizorski trag koji se ne briše

    Svaka objava, svaka promena ovlašćenja i svaka odluka o kanalu upisuju se zauvek. Namerno ne postoji nijedan put izmene ili brisanja, a čišćenje nakon isteka roka čuvanja ga ne dira.

    „Kako je ovaj alat dospeo ovde“ obično se pita nakon nekoliko meseci. Tog dana zapis koji je mogao da se obriše je zapis koji nikad nije ni postojao.

  • Pravilo četiri oka, po izboru

    Podizanje verzije u širi kanal može da traži odobrenje drugog administratora, a onaj ko je zatražio ne može da odobri sopstveni zahtev. Vraćanje unazad nikad ne traži odobrenje.

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

  • Raspakivanje arhive je samo po sebi napadna površina

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

    Raspakivanje arhive deluje bezazleno. Posebno pripremljena može da zapiše datoteke izvan ciljne fascikle ili da napuni disk servera.

  • Prijava bez lozinke

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

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

  • Vidite šta instalirate

    Instalaciona fascikla sadrži mašinski čitljiv spisak komponenti (SBOM CycloneDX) i migracione skripte za obe baze podataka.

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

Šta ne možemo da zaštitimo

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

  • Dva administratora koja deluju zajedno. Pravilo četiri oka zaustavlja jednog, ne dvojicu.
  • Sistem-administrator servera. Onome ko ima pristup bazi podataka i sistemu datoteka nijedna kontrola na nivou aplikacije nije prepreka.
  • Stanica na kojoj stoji ključ za potpisivanje. Ključ nije na serveru, ali je negde; ako padne ta mašina, pada i potpis.
  • Namerno skriveno zlonamerno 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šćenjima samog inženjera i može da čita sve što ona dosežu. To ograničavaju kontrole operativnog sistema i mreže, a ne ovaj proizvod.
  • Bezbednost vaših rezervnih kopija. Kopija baze podataka je u vašim rukama, a sve u njoj vredi 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 ispravka.

security@ypcad.com