Säkerhet

Den här sidan säger både vad vi skyddar och vad vi inte kan skydda. En säkerhetsberättelse som saknar den andra halvan får läsaren att förväxla en lista med en garanti.

Utgångspunkt

Att publicera ett paket är att köra kod på varje ingenjörs dator som installerar det. Varje säkerhetsbeslut i den här produkten har först vägts mot en fråga: gör den här ändringen det lättare att publicera utan behörighet?

  • Paketen är signerade (ECDSA P-256)

    Signaturfilen reser inuti paketet. Den signerar ett manifest med filernas avtryck, paketets beteckning och versionen — inte bara ett avtryck av arkivet.

    Om bara avtrycket signerades kunde ett gammalt, korrekt signerat arkiv skjutas in under ett nytt versionsnummer: signaturen skulle klara kontrollen, och användaren skulle installera ett verktyg med en känd sårbarhet som ”uppdatering”.

  • Den privata nyckeln ligger INTE på servern

    Servern kontrollerar bara. Signeringen sker på datorn hos den som publicerar, med ett separat verktyg.

    Låg nyckeln på servern kunde den som kommer över den ändra ett paket och signera om det — vilket skulle göra signaturen meningslös.

  • Klienten kontrollerar också

    Tillägget på ingenjörens dator kontrollerar signaturen själv, och listan över betrodda nycklar som det använder kommer inte från servern.

    Signaturen finns just därför att servern inte kan tas på orden. Att hämta förtroendelistan från samma server skulle tyst upphäva utgångsantagandet.

  • En granskningslogg som inte raderas

    Varje publicering, varje behörighetsändring och varje kanalbeslut skrivs in för alltid. Det finns med flit ingen väg att ändra eller ta bort, och städningen efter lagringstiden rör den inte.

    ”Hur hamnade det här verktyget här” frågas oftast månader senare. Den dagen är en post som kunde ha raderats en post som aldrig funnits.

  • Fyraögonsprincipen, valfri

    Att släppa en version till en bredare kanal kan kräva godkännande från en andra administratör, och den som begärde kan inte godkänna sin egen begäran. Återställning kräver aldrig godkännande.

    Som standard är den avstängd. I ett team på tre personer förvandlas hindret inom några veckor till ett meddelande som godkänns utan att läsas; en kontroll man tror skyddar men som inte gör det är sämre än ingen kontroll alls.

  • Att packa upp ett arkiv är i sig en angreppsyta

    Uppladdade arkiv kontrolleras mot utbrytning ur mappen (zip-slip) och mot uppackningsbomber, och storleken efter uppackning är begränsad.

    Att packa upp ett arkiv ser oskyldigt ut. Ett särskilt preparerat kan skriva filer utanför målmappen eller fylla serverns disk.

  • Inloggning utan lösenord

    Användarna loggar in med en engångskod som skickas till deras adress. Sessionen går på en kortlivad token; uppdateringstoken är aldrig synlig för koden i webbläsaren.

    Finns inget lösenordsvalv att sköta finns heller ingen lösenordsdatabas som kan läcka. Och återanvändning av en redan återkallad uppdateringstoken behandlas som ett tecken på stöld: sessionen stängs.

  • Du ser vad du installerar

    Installationsmappen innehåller en maskinläsbar komponentförteckning (SBOM CycloneDX) och migreringsskript för båda databaserna.

    Er IT-avdelning måste kunna kontrollera vad som når servern innan det når den. När en sårbarhet meddelas i ett beroende blir ”har vi den?” en sökning bland filer.

Vad vi inte kan skydda

Det här är inga brister utan gränser. De följer av strukturen, och att påstå motsatsen vore osant.

  • Två administratörer som samarbetar. Fyraögonsprincipen stoppar en, inte två.
  • Serverns systemadministratör. För den som har tillgång till databasen och filsystemet är ingen kontroll på applikationsnivå ett hinder.
  • Arbetsstationen där signeringsnyckeln ligger. Nyckeln finns inte på servern, men den finns någonstans; faller den maskinen faller signaturen med den.
  • Avsiktligt dolt skadligt beteende. Vår granskning av paket är heuristisk och vi påstår inte att den fångar kod som försöker gömma sig.
  • Dataläckage. Ett installerat verktyg kör med ingenjörens egna behörigheter och kan läsa allt de når. Det begränsas av operativsystemets och nätverkets kontroller, inte av den här produkten.
  • Säkerheten i era säkerhetskopior. Kopian av databasen ligger i era händer, och allt i den är värt exakt lika mycket som det levande systemet.

Rapportera en sårbarhet

Har du hittat någon, skriv till oss. Vi tar rapporter på allvar, utesluter inte den som rapporterar från processen, och berättar när rättningen kommer.

security@ypcad.com