Digitální podpis kódu je samozřejmostí, ale jak ukázaly kauzy SolarWinds v roce 2020 a ASUS z roku 2019, špatně implementované postupy v praxi vystavují Váš business ještě většímu riziku.
Jak používat Code Signing certifikát pro podpis kódu se dozvíte v návodech, nicméně v tomto článku se soustředíme na základní postupy a zásady, které by měl zavést každý vývojář — jednotlivec i organizace.
1. Omezení přístupu k privátnímu klíči
- omezte přístup k privátním klíčům pouze pro odpovědné osoby
- uložte privátní klíč pouze na zařízeních, na nichž je to nezbytně nutné
- zajistěte fyzické omezení přístupu k zařízením, která obsahují privátní klíč — například bezpečnostní zámky, uzamykatelné skříně či trezor
- vždy nechávejte privátní klíč zamknutý
2. Bezpečný přenos
- pro přenos klíče používejte pouze hardware s ochranou, například čtěčkou otisku prstu a/nebo silným heslem
- ujistěte se, že privátní klíč nikdy není zálohován na místa, ke kterým mají přístup další osoby, včetně kolegů
3. Používejte časové razítko
- použitím časového razítka zajistíte důvěryhodnost podpisu kódu i poté, co Code Signing certifikát expiruje
4. Zkontrolujte, co podepisujete
- než kód podepíšete, měl by být celý pečlivě zkontrolován odpovědnou osobou
- zaveďte striktní proces pro kontrolu kódu a následný podpis, abyste předešli nechtěnému podpisu škodlivého kódu
- každá aktivita včetně kontroly kódu před podpisem i samotný podpis by měly být vždy zaznamenány pro potřeby budoucí kontroly či auditu, například v případě bezpečnostního incidentu
5. Dvakrát měř, jednou řež
- pamatujte, že Code Signing certifikát nezaručuje bezpečnost kódu, který jím podepisujete - omylem můžete digitálně podepsat i kód obsahující malware nebo jiný virus
- buďte maximálně obezřetní při podpisu kódu, do nějž je implementován kód třetí strany, například některé open-source z externích zdrojů
- před samotným podpisem zkontrolujte kód na přítomnost virů a jiného škodlivého nebo nevyžádaného kódu
6. Nespoléhejte se na jediný certifikát
- používáním více Code Signing certifikátů pomůžete rozložit rizika
- více samostatných Code Signing certifikátů může zjednodušit identifikaci případných incidentů
- v případě nutnosti zneplatnění některého z Code Signing certifikátů nejsou dotčeny kódy podepsané ostatními certifikáty
7. Neváhejte se zneplatněním
- kterýkoliv kompromitovaný certifikát ihned revokujte (zneplaťte)
- revokujte certifikát, kterým byl omylem podepsán škodlivý kód
- za kompromitaci považujte i pouhé podezření na možný vznik incidentu; ztráta způsobená zneplatněním bývá mnohonásobně nižší než následky případného incidentu
8. Zůstaňte v obraze
- sledujte zprávy a novinky týkající se nových šifrovacích algoritmů, aktuálních trendů a postupů a moderního zabezpečení
- bezodkladně reagujte na nové bezpečnostní hrozby a sebemenší zranitelnosti
9. Zaveďte organizační postupy
- vytvořte písemné zásady a postupy závazné pro všechny členy týmu
- jednoznačně definujte, kdo smí podepisovat kód, které nástroje pro podpis se smí používat, které osoby mají přístup ke kterým jednotlivým certifikátům, kdo je odpovědný za kontrolu kódu před jeho podpisem, jak a kde jsou uloženy a chráněny privátní klíče
- tyto zásady alespoň jednou ročně revidujte a zaškolte všechny členy týmu