Začal jsem pracoval na Report URI, na nástroji, který sbírá reporty z prohlížeče v reálném čase. A to už vlastně před rokem. 27. června 2017 jsem totiž udělal první změnu v kódu. O té doby jsem přidal 709 402 řádků a odstranil jich 1 981 599.
Službu Report URI založil Scott Helme někdy v roce 2015. Ten rok jsme se potkali na konferenci DEF CON v Las Vegas a krátce pokecali o počasí a XSS. Od té doby Report URI často zmiňuji ve svých přednáškách, přičemž lehce zapamatovatelný a úderný název jedné z nich, XSS PHP CSP ETC OMG WTF BBQ, se Scottovi zalíbil natolik, že začal podobný název používat také. A to už něco znamená, že!
Foto: Scott Helme
Poté, co jsem ve Skype dělal na různých platebních systémech, měnil a vylepšoval ve Slevomatu nejen hashování hesel a pracoval jako „security engineer“ v Apiary (teď už Oracle), jsem se víc věnoval školení a přednášení a začalo mi tak trochu zase chybět programování aplikací. Často něco bořím (ehm, zkoumám) a hledal jsem něco dalšího, co bych mohl naopak stavět.
Jednoho pozdního letního večera léta Páně 2017 mi Scott zavolal a zeptal se Hej, chceš na Report URI dělat se mnou? Bez váhání jsem odpověděl Si piš. A tak jsme na tom začali makat spolu. Konec příběhu. Teda vlastně ne, tenkrát veškerá ta sranda teprve začala.
Report URI je nástroj sbírající reporty z prohlížeče. V praxi to znamená, že když na váš web přijde návštěvník a jeho prohlížeč na něm zjistí nějaký bezpečnostní prohřešek, tak ten samý prohlížeč vám o tom pošle detailní report. Paráda, co?
Aktuálně je v prohlížečích asi 5 fíčur (a přibývají), které takový report umí někam poslat. Prohlížeče vás mohou upozornit, pokud jim to přikážete, že se něco stalo, například:
Content-Security-Policy-Report-Only: default-src https:; report-uri https://….report-uri.com/
poté, co jste váš web přesunuli na HTTPS)Agregátor takových reportů si celkem pracně můžete postavit i sami, nebo můžete použít službu jako např. Report URI. Nástroj na sběr reportů jsem si začal nejdřív samozřejmě vytvářet sám, ale i z mého webu s pár návštěvníky přicházelo strašně moc reportů, které jsem nakonec úplně ignoroval. A to se bavíme jen o 10 reportech za den. Report URI má grafy a filtry a vůbec nabízí lepší přehled toho co se na vašem webu stalo. Takže jsem nakonec svůj rozpracovaný nástroj zahodil a začal používat a doporučovat Scottovo službu. Tohle bylo nějaké 2 roky předtím, než mi Scott dal nabídku, kterou jsem nemohl odmítnout.
Grafy z reportů Content Security Policy
„Nové“ Report URI jsme spustili 1. listopadu 2017 a při té příležitosti zároveň prasklo, že v tom s námi jede i Troy Hunt! Troy již několik let za sebou získává ocenění Microsoft MVP (Most Valuable Professional), je zároveň i Regional Director pro cloud a bezpečnost (to je skupina na Microsoftu nezávislých profíků, ne pozice ředitele, přesně to znamená tohle) a autor kurzů na Pluralsightu. Má na svědomí i Have I Been Pwned? – službu, kterou můžete (a měli byste) používat pro sledování, jestli vaše e-mailová adresa, doména nebo nějaké heslo nebylo součástí známého úniku dat. Ten web (i téma) můžete důvěrně znát také z mých přednášek a článků.
Za tu dobu, co na Report URI pracuju, přibylo už docela dost nových vlastností:
Předělali jsme i infrastrukturu, abychom zvládali narůstající počet reportů, které zpracováváme. Začali jsme používat Cloudflare Workery, aby to bylo všechno trochu rychlejší. Aktuálně máme něco přes 40 serverů pro veřejnou část a pak i nějaké privátní instance pro firemní zákazníky. Ve špičkách zpracováváme přes 15 tisíc požadavků za vteřinu. Celkově nám prohlížeče návštěvníků poslali přes 60 miliard reportů. Další čísla v článku Report URI: A week in numbers.
Celkový počet požadavků za posledních 24 hodin: 437,67M; 41,21M za hodinu ve špičce
Naši službu (a posílání Content Security Policy reportů) už používá docela dost webů, např. jedna holandská banka („Marketingovému týmu fungují kampaně a bezpečáci dostávají další info“ – Jesse Houwing), a další ji plánují brzo nasadit, jako např. vývojáři EVE Online, hry z kategorie „massively multiplayer online role-playing game“ („A to všechno bylo díky @reporturi o dost jednoduší!“ – Stefán Jökull Sigurðarson).
A aby se nezapomnělo, Report URI vyhrálo cenu „Best Emerging Technology“ v anketě SC Awards Europe 2018, která oceňuje to nejlepší z oblasti bezpečnosti. Pořád tomu nemůžu nějak uvěřit, ale přímo z místa činu to potvrdili Scott i Troy, krátce se o Report URI zmínil i SC Magazine UK, takže to asi bude pravda. Tak teda na zdraví! 🥂
Pokud byste se chtěli dozvídat o dalších novinkách, tak sledujte blog Scotta Helmeho. Já jen mažu kód, he he. Jo a ty 2 miliony smazaných řádků? Většina z nich byla odstraněna v této změně:
Smazat 1,4 milionu řádků kódu 3 týdny po nástupu? Co se může stát…
To byla knihovna Microsoft Azure SDK, kterou jsme celou nepotřebovali, resp. potřebovali jsme jen Azure Storage SDK.
Jop, pracovat na Report URI je sranda.