Hlavní navigace

Názor ke zprávičce GitHub rychle vyměnil hostitelský RSA klíč pro SSH, který byl omylem zveřejněn od Filip Jirsák - Někdo: Aha, vy jste vůbec nepochopil, o co...

  • Aktualita je stará, nové názory již nelze přidávat.
  • 26. 3. 2023 10:11

    Filip Jirsák

    Někdo: Aha, vy jste vůbec nepochopil, o co v této situaci jde. Nejde o žádné repository útočníka. Jde o repository GitHubu, které je hostované na GitHubu jako veřejné repository, a ve kterém byl krátce dostupný RSA klíč pro SSH. To je to jediné známé místo, odkud případně útočník mohl získat RSA klíč.

    O tomhle repository může mít GitHub 100% přehled, pokud loguje všechny operace, přes které by mohl někdo získat. Nebo o něm také může mít přehled jenom z 99,999 %, protože třeba některé operace nejsou logované – a zároveň GitHub ví, jak nepravděpodobné je, že by k takové operaci došlo. Takže by pak nemohl napsat „100 % víme, že k úniku klíče nedošlo“, ale mohl by napsat jen „jsme přesvědčeni o tom, že k žádnému úniku nedošlo“.

    Věřím, že váš slib dodržíte, a tohle byl opravdu váš poslední příspěvek. Protože když jste doteď nepochopil, že jde o to, jestli ten RSA klíč někdo získal nebo nezískal, nemáte čím do této diskuse přispět.

    Následující odstavec už není určen vám, protože ho stejně nepochopíte. Ale pokud by někdo nevěděl, jak by mohl mít GitHub o něco méně než 100% znalost o tom, zda někdo ke klíči přístup měl. Mohlo by to být třeba takhle. Přístup přes k repository na GitHubu je možný dvěma způsoby – přes HTTPS a přes SSH. U HTTPS je běžné, že webový server loguje do access logu všechny cesty, ke kterým někdo přistupoval. Kontrolou takového logu lze tedy ověřit, že přes HTTPS nikdo k souboru přístup neměl – ani přes HTTPS neklonoval/fet­choval repository, ani nestahoval přímo ten soubor, ani nepoužil API, kterým by získal přístup k souboru. Druhá možnost je klonování přes SSH. U SSH se obvykle loguje připojení uživatele k serveru, ale už se nelogují všechny operace, které uživatel skrze SSH kanál provádí – protože je to prostě jen šifrovaný kanál, kterým mohou proudit data mnoha různých protokolů. Třeba gitu. GitHub má určitě nějaké custom řešení, ale není důvod myslet si, že je tam logování řešené nějak zásadně jinak. Takže GitHub nemusí mít informaci tom, zda si v inkriminovanou dobu někdo příslušné repository nenaklonoval/ne­fetchnul přes SSH. Ale ví, že se nikdo nemohl přes HTTPS dozvědět, že tam ten zajímavý soubor je. Takže pokud by někdo zrovna v té době naklonoval repository přes SSH, byla by to jen shoda okolností, ne útok s cílem získat ten klíč. Zároveň GitHub ví, jak často se SSH používá, ví, jak často se používá dané repository – takže dokáže docela dobře odhadnout, jaká je pravděpodobnost, že si někdo náhodou naklonoval to repository přes SSH v době, kdy v něm byl ten klíč. No a na základě téhle pravděpodobnosti mohou říct, že nemají žádný důvod myslet si, že klíč unikl. Ale nemají jistotu, protože někde v té hodnotě pravděpodobnosti tam za těma nulama ta jednička je – takže ten klíč preventivně vyměnili.

    Předchozí odstavec jsou jenom moje spekulace. Ale kdybyste provozovali vlastní Git server s přístupem přes HTTPS a SSH na běžně dostupných technologiích, budete mít přesně ty informace, které jsem výše popsal.