Securitate

Această pagină spune și ce protejăm, și ce nu putem proteja. O poveste despre securitate din care lipsește a doua parte îl împinge pe cititor să confunde o listă cu o garanție.

Punctul de plecare

A publica un pachet înseamnă a executa cod pe calculatorul fiecărui inginer care îl instalează. Fiecare decizie de securitate din acest produs a fost cântărită întâi față de o întrebare: face această schimbare mai ușoară publicarea fără drept?

  • Pachetele sunt semnate (ECDSA P-256)

    Fișierul de semnătură călătorește în interiorul pachetului. El semnează un manifest cu amprentele fișierelor, identificatorul pachetului și versiunea — nu o simplă amprentă a arhivei.

    Dacă s-ar semna doar amprenta, o arhivă veche semnată corect ar putea fi prezentată sub un număr nou de versiune: semnătura ar trece verificarea, iar utilizatorul ar instala ca „actualizare” o unealtă cu o vulnerabilitate cunoscută.

  • Cheia privată NU stă pe server

    Serverul doar verifică. Semnarea are loc pe calculatorul celui care publică, cu o unealtă separată.

    Dacă cheia ar sta pe server, cine l-ar prelua ar putea modifica un pachet și l-ar semna din nou — ceea ce ar face semnarea inutilă.

  • Verifică și clientul

    Suplimentul de pe calculatorul inginerului verifică semnătura pe cont propriu, iar lista de chei de încredere pe care o folosește nu vine de la server.

    Semnarea există tocmai pentru că serverul nu poate fi crezut pe cuvânt. A lua lista de încredere de la același server ar anula în tăcere presupunerea de pornire.

  • Un jurnal de audit care nu poate fi șters

    Fiecare publicare, fiecare schimbare de drept și fiecare decizie de canal se scriu permanent. Nu există, intenționat, nicio cale de modificare sau ștergere, iar curățarea după durata de păstrare nu îl atinge.

    „Cum a ajuns aici unealta asta” se întreabă de obicei după luni de zile. În ziua aceea, o înregistrare care ar fi putut fi ștearsă este o înregistrare care nu a existat niciodată.

  • Regula celor patru ochi, opțională

    Promovarea unei versiuni pe un canal mai larg poate cere aprobarea unui al doilea administrator, iar cel care a cerut nu își poate aproba propria cerere. Revenirea nu cere niciodată aprobare.

    Implicit este oprită. Într-o echipă de trei oameni, bariera se transformă în câteva săptămâni într-un mesaj aprobat fără să fie citit; un control despre care se crede că protejează fără să protejeze este mai rău decât lipsa oricărui control.

  • Extragerea unei arhive este ea însăși o suprafață de atac

    Arhivele încărcate sunt verificate pentru ieșiri din folder (zip-slip) și bombe de decompresie, iar dimensiunea extrasă este limitată.

    Extragerea unei arhive pare nevinovată. Una pregătită anume poate scrie fișiere în afara folderului țintă sau poate umple discul serverului.

  • Autentificare fără parolă

    Utilizatorii se autentifică cu un cod de unică folosință trimis pe adresa lor de e-mail. Sesiunea merge pe un jeton de scurtă durată; jetonul de reîmprospătare nu este niciodată vizibil codului din browser.

    Dacă nu există un depozit de parole de gestionat, nu există nici o bază de parole care să se scurgă. Iar refolosirea unui jeton de reîmprospătare deja revocat este tratată ca semn de furt: sesiunea este încheiată.

  • Vedeți ce instalați

    Folderul de instalare conține o listă de componente care poate fi citită de mașină (SBOM CycloneDX) și scripturi de migrare pentru ambele baze de date.

    Echipa dumneavoastră IT trebuie să poată verifica ce ajunge pe server înainte să ajungă. Când se anunță o vulnerabilitate într-o dependență, „o avem?” devine o căutare printre fișiere.

Ce nu putem proteja

Acestea nu sunt lipsuri, sunt limite. Decurg din structură, iar a susține contrariul ar fi neadevărat.

  • Doi administratori care acționează împreună. Regula celor patru ochi oprește unul, nu doi.
  • Administratorul de sistem al serverului. Pentru cine are acces la baza de date și la sistemul de fișiere, niciun control la nivel de aplicație nu este o piedică.
  • Stația pe care stă cheia de semnare. Cheia nu este pe server, dar este undeva; dacă acea mașină cade, cade și semnătura.
  • Comportamentul rău intenționat ascuns dinadins. Inspecția noastră a pachetelor este euristică și nu susținem că va prinde cod care încearcă să se ascundă.
  • Scurgerea de date. O unealtă instalată rulează cu drepturile proprii ale inginerului și poate citi tot ce ating acele drepturi. Asta o limitează controalele sistemului de operare și ale rețelei, nu acest produs.
  • Siguranța copiilor dumneavoastră de rezervă. Copia bazei de date este în mâinile dumneavoastră, iar tot ce se află în ea valorează exact cât sistemul viu.

Raportarea unei vulnerabilități

Dacă ați găsit una, scrieți-ne. Luăm raportările în serios, nu îl excludem din proces pe cel care raportează și vă spunem când iese remedierea.

security@ypcad.com