Nějak jsem v tom velmi podrobném popisu malware, ani jinde na internetu, nenašel, jak funguje ten decryptor. To někdo dělá takový poměrně sofistikovaný malware a nedokáže udělat kryptografii pořádně?
Takovou kryptografii je obtizne udelat poradne.
Mela by fungovat offline nebo alespon bez centralniho serveru - ten muze kdykoliv vypnout policie nebo majitel.
Sifrovani by melo byt rychle a s moznosti pokracovat po rebootu, klice se nesmi ukladat na disk, stare data se musi promazat. Cele to musi mit personalizovany dekryptor, klice nesmi byt na dostupnem nebo cizim server bez univerzalnich klicu, aby je nekdo neukrad.
Mozna takovou kryptografii navrhnes; ja uprimne nevim, jestli jde splnit vsechny pozadavky. Kdyz nesplnis vsechny, tak mame vektor utoku.
Stejně jako v mnoha jiných situacích, ani tady není "blockchain!" univerzálním magickým řešením všech problémů. Celý problém tkví hlavně v tom, že ransomware musí být schopen nějak opakovaně odvodit šifrovací klíč, aby mohl i po rebootu pokračovat v šifrování. Takže jsou vcelku dvě základní možnosti: a) klíč je náhodně generovaný a odeslaný do úschovy na server (nebo do blockchainu nebo kamkoli), odkud si po rebootu ransomware klíč zase vyzvedne; nebo b) klíč je deterministicky odvozen z nějakých unikátních identifikátorů napadeného stroje. Vzhledem k tomu, že všechna moudrost potřebná k odvození klíče musí být v obou případech zabudovaná v ransomwaru, lze ji odtud vyzkoumat a použít k vytvoření dekryptoru (který si v případě a) vyzvedne klíč ze serveru nebo ho v případě b) sám spočítá).
To sice ano, ale poku dmá ransomware umožnit po zaplacení výkupného data zase dešifrovat, musí existovat pevná vazba mezi zařízením a dešifrovacím klíčem. Pokud by si totiž ransomware při každém spuštění stáhl jiný veřejný klíč, nebude pak prakticky realizovatelné dešifrování („Tady máte 327 privátních klíčů, každým z nich je zašifrován kus vašich dat. Hodně štěstí a příště nám zase zaplaťte výkupné, abyste se snáz dostali k vašim datům.“)
No a to vytvoření pevné vazby takovým způsobem, aby zároveň nedošlo ke snížení bezpečnosti, je podle mne komplikované. Takže to autoři ransomware řeší tak, že raději sníží „bezpečnost“ svého řešení, takže se někdo může dostat ke klíčům i bez zaplacení výkupného, než aby riskovali, že někomu po zaplacení nebudou schopni rozšifrovat data.
Paradoxně je totiž ransomware založený na „dobrém jméně“ vyděračů. Pokud by se častěji dělo, že někdo zaplatí, a pak stejně data nerozšifruje, protože dostal špatné klíče, byla by to pro „ransomware byznys“ velká rána.
> Tady máte 327 privátních klíčů, každým z nich je zašifrován kus vašich dat.
Aha, tak to asi nevím, jak ransomware funguje, myslel jsem si, že to typicky zašifruje v jedné, max. několika dávkách.
Jinak 327 klíčů není moc, když dešifrování bude dělat nějaký skript.
> Paradoxně je totiž ransomware založený na „dobrém jméně“ vyděračů.
No teď tipuju zase lidi nechtějí platit, protože doufají, že někdo vydá free decryptor :)
Předpokládám, že se ransomware snaží zašifrovat toho co nejvíc. Takže se bude snažit přežít různé restarty atd. I proto, že pro ransomware je výhodnější, pokud běží relativně dlouho – jednak se výsledky jeho práce propíšou do záloh, jednak by čtením a zápisem velkého množství dat v krátkém čase mohl vzbudit pozornost.
Nevím, zda ransomware používá nějakou hlavičku, aby poznal, že data rozšifroval správně. Pokud ne, může být pro skript dost obtížné zjistit, zda právě rozšifroval data správným klíčem nebo zda právě se špatným klíčem jenom vyrobil další haldu náhodného smetí.
No teď tipuju zase lidi nechtějí platit, protože doufají, že někdo vydá free decryptor :)
To je ovšem nová situace, se kterou nemuseli tvůrci ransomware počítat. Navíc tam jde obvykle o čas – zaplatit vyděračům má být rychlejší, než když budete data obnovovat ze špatných záloh a částečně restaurovat ručně. Někteří už se snad dokonce ptají na odhad nákladů s obnovou, aby nabídli výkupné, které ve srovnání s náklady na obnovu bude výhodnější. (Nevím, jak pozom zajistí, aby poškozený netlačil cenu donlů tím, že náklady výrazně podstřelí.)
Proboha proč složitě.
Ransomware si potáhne public klíč. Při zašifrování fajlu vygeneruje jednorázový nonce, to zašifruje tím publicem a někam uloží (klidně na začátek), a pak podle něj zašifruje fajl a vymaže ho z paměti.
Jde vylepšit tím, že před infekcí si z C&C stáhne custom public, pak to proces dešifrování ještě zjednodušší (stačí pak předat jeden privádní klíč...)
Žádná centralizace, jediný kdo musí mít privátní klíč je ten, kdo to pak nechává za peníze dešifrovat, může být kdekoli offline.
Že tohle někdo zpacká je divné. (ale je dost možné, že když majitele privátního klíče někdo chytí, tak ho "dobrovolně" poskytne výměnou za nižší trest nebo za nepoužití ruberhose cryptoanalysis, kdo ví)
Svojho casu (zhruba v ere Skylake) AES-NI vedelo sifrovat zhruba tak 1,7 GB/s, co bolo cca polovica toho, co zvladali vtedajsie NVMe (gen3, 4x lane) disky. Necakam, ze v dnesnej dobe sa to nejako vyrazne zmenilo, skor by som ocakaval, ze rozdiel medzi vykonom modernejsich diskov a AES-NI na aktualnych CPU so vsetkymi Spectrami a retpolines sa este viac zvacsil.
Takze nie, nie je to v podstate zadarmo.