Hlavní navigace

GoDaddy vydal 8951 certifikátů bez správného ověření

Petr Krčmář

Společnost GoDaddy přiznala vážný bezpečnostní incident, který byl způsobený nefunkční validaci při vydávání DV certifikátů. Autorita tak vydala tisíce certifikátů bez ověření žadatele.

Wayne Thayer ze společnosti GoDaddy oznámil, že kvůli technické chybě byla poměrně dlouho rozbitá knihovna zodpovědná za automatickou validaci při vystavování DV certifikátů. Certifikační autorita se tak dostala do jedné z nejhorších situací – vystavovala certifikáty bez ověření. Což je přesně to, čemu z principu mají autority bránit. Opět to ukazuje na slabinu celého systému PKI.

Na první problém upozornili technici společnosti Microsoft, která je jedním z přeprodejců certifikátů od GoDaddy. Stalo se tak 3. ledna, ale protože report šel nestandardní cestou, všimli si ho lidé zodpovědní za chod autority až 6. ledna. Ti také podle zveřejněné zprávy velmi rychle informovali své nadřízené o vážném incidentu.

Zajímavé je, že původní oznámení od Microsoftu hovoří o tom, že je možné chybně projít validačním procesem, pokud je v DNS nastaven A záznam na loopbackovou adresu 127.0.0.1. Takto se chyba skutečně také projevovala, ale jde jen o jeden ze symptomů. Celý problém byl výrazně závažnější.

Technici totiž zjistili, že už od 29. července 2016 byla rozbitá konfigurace knihovny, která se stará o validaci. Za normálních okolností vydá klientovi náhodně vygenerovaný kód, který je potřeba vystavit na webovém serveru. Autorita se pak pokusí po HTTP(S) k serveru na doméně žadatele přistoupit a tento kód stáhnout. Pokud je výsledkem stránka s HTTP kódem 200, která obsahuje vygenerovaný řetězec, považuje se žádost za validní a certifikát je vystaven. Takto to dělá většina autorit vystavujících DV certifikáty.

Příklad certifikátu vystaveného autoritou GoDaddy

Zavlečená chyba ale způsobila, že validací prošla i stránka s jiným stavovým kódem, třeba 404 (stránka neexistuje). Řada webových serverů je nastavena tak, že do chybové stránky vloží také URL požadavku. „Stránka abcdef123456 neexistuje“. Protože součástí požadovaného URL byl i samotný ověřovací kód, z hlediska autority bylo vše v pořádku – stránka se stáhla a kód obsahovala. V tu chvíli byl certifikát vystaven.

Podle všeho taková implementace porušuje požadavky validace stanovené CA/B fórem, ve kterých se v sekci 3.2.2.4.6 výslovně píše: The entire Required Website Content MUST NOT appear in the request used to retrieve the file or web page, tedy že očekávaná odpověď nesmí být součástí požadavku. Toto pravidlo je zavedeno právě proto, aby zamezilo zde popsanému zneužití validace.

Chyba popsaná v původním hlášení od Microsoftu tak zřejmě narážela na to, že i webový server GoDaddy byl takto nastaven a v chybové stránce vrátil URL požadavku. Jelikož server dostal z DNS lokální adresu, zeptal se sám sebe a dostal ze svého pohledu validní odpověď.

Mimochodem: rekurzivní DNS server Unbound ve výchozím nastavení filtruje privátní adresy z DNS odpovědí. Kdyby ho GoDaddy na validátoru používal, chybná odpověď s adresou 127.0.0.1 by se k němu nedostala.

Chyba byla opravena už v pátek 6. ledna, ale byla otevřena mnoho měsíců. GoDaddy tvrdí, že neví o žádném záměrném zneužití a že původní oznamovatel chyby svůj testovací certifikát revokoval. Pravděpodobně to ale znamená, že jen žádné zneužití nikdo nehlásil. Těžko zpětně zjistit, zda některá žádost nebyla takto odeslána se špatným úmyslem.

Firma přesto provedla znovu ověření validace u všech certifikátů, které byly vystaveny v době, kdy bylo možné chybu zneužít. Výsledkem je seznam 8850 certifikátů, u kterých už nyní není možné validaci zpětně provést. Správci už zřejmě ze serverů odstranili požadovaný soubor, takže není jasné, zda tam někdy v minulosti byl.

Později byl objeven další problém s kešováním validačních výzev, který byl opraven 10. ledna. Mezi tím bylo ale vystaveno dalších 101 certifikátů, které byly validovány pomocí nakešovaných a neověřitelných výzev. Celkem tedy existuje 8951 certifikátů, které byly vystaveny za nejasných okolností. Přestože firma tvrdí, že jde o 2 % certifikátů vystavených v té době, jde o velmi závažný incident. Všechny tyto certifikáty tedy byly 10. ledna revokovány.

Našli jste v článku chybu?