Escrow není bezpečnostní revize a obfuskace není ochrana

Publikováno 5 min čteníTitan Software z.s.

Ve zkratce

Escrow i obfuskace chrání duševní vlastnictví prodejce; ani jedno neříká nic o tom, jestli je FiveM resource bezpečný. Escrow znamená, že kód je šifrovaný a přečíst ho umí jen platforma, takže vaše možnost revize úplně mizí a nahrazuje ji důvěra v prověřování ze strany platformy — což je licenční kontrola, ne malwarový audit. Obfuskaci nasazuje prodejce ze stejného obchodního důvodu a blokuje revizi stejně, navíc blokuje i každý scanner. Ani jedno není důkazem zlého úmyslu a ani jedno není důkazem bezpečnosti. Správné je brát obojí jako přenos důvěry: už neposuzujete kód, ale dodavatele — takže jeho historie, otevřenost a ochota odpovídat na otázky jsou vším, co máte jako důkaz.

Hlavní body

  • Escrow odpovídá na otázku „dá se to zkopírovat“, ne „je bezpečné to spustit“.
  • Obfuskace zároveň bere vaši možnost revize i schopnost scanneru pomoct.
  • Ani jedno není samo o sobě škodlivé — obojí ale mění rozhodnutí o kódu na rozhodnutí o dodavateli.
  • Nečitelný kód v serverovém skriptu se síťovým přístupem je z těch tří nejhorší kombinace.
  • Když nemůžete revidovat, vyžadujte původ: skutečnou identitu dodavatele, historii a podporu, která odpoví na technické dotazy.

Když provozovatelé řeší, jestli je placený resource bezpečný, objevují se dvě věty pořád dokola: „je to escrow chráněné“ a „je to obfuskované, takže do toho nikdo nešahne“. Obojí je běžné, obojí pochopitelné a obojí zaměňuje obchodní ochranu za bezpečnostní vlastnost.

Co escrow ve skutečnosti je

Escrow je licenční mechanismus. Prodejce nahraje kód, platforma ho zašifruje a runtime ho dešifruje kupujícím s platnou licencí. Účelem je zabránit dalšímu prodeji a únikům. V tom je velmi dobrý.

Co nedělá, je doložit, že se kód chová dobře. Kontrola na marketplace, pokud vůbec existuje, je většinou vstupní prověrka — funguje to, neporušuje to pravidla, patří to nahrávajícímu — ne řádkový malwarový audit opakovaný při každé aktualizaci. A escrow aktivně odstraňuje jedinou kontrolu, kterou byste si mohli ověřit sami: přečtení kódu.

Co obfuskace ve skutečnosti je

Obfuskace vezme čitelné Lua a přepíše ho do něčeho funkčně identického a pro člověka nepřátelského: přejmenované lokální proměnné, tabulky řetězců, zploštěný control flow, aritmetika sestavující identifikátory za běhu. Účel je stejný jako u escrow — prodražit kopírování a úpravy.

Vedlejším efektem je, že všechno, co by kód prověřilo, teď selhává. Člověk logiku nedokáže sledovat. Statická analýza pořád vidí strukturální fakta — tady je síťové volání, tam load() — ale často nedokáže vyřešit, co mezi nimi teče, protože hodnoty se záměrně skládají za běhu. Přesně na téhle vlastnosti staví i backdoory, a proto jsou obfuskace a detekce malwaru trvale v napětí.

Poctivé zarámování: přenos důvěry

Ani jeden mechanismus nedělá resource nebezpečným. Oba ale přesouvají rozhodnutí. U čitelného kódu si můžete udělat vlastní názor na základě důkazů. U nečitelného kódu jsou vaše důkazy výhradně o dodavateli.

SituaceVaše důkazyCo se pořád může pokazit
Čitelné, prověřené vámiKód tak, jak byl dodánObsah stahovaný za běhu; logické chyby, které vám unikly
Čitelné, prověřené automatickySledovatelné datové toky, shody se vzoryNové techniky; endpointy neškodné dnes, škodlivé zítra
ObfuskovanéJen strukturální signály plus pověst dodavateleCokoli, co obfuskace před analýzou schová
Šifrované escrowJen pověst dodavatele a pravidla platformyVšechno, pokud je dodavatel nebo jeho účet kompromitován
Na co se ve skutečnosti spoléháte

Jak se rozhodnout

Otázka nezní „je escrow špatné“. Zní „mám dost důkazů mimo kód na to, abych na tomhle místě serveru přijal nečitelný kód“. To hodně závisí na tom, kde běží.

  1. 1Určete dosah škody. Obfuskovaný klientský UI skript je omezené riziko. Obfuskovaný serverový skript s přístupem k databázi a odchozím HTTP je celý váš server.
  2. 2Hledejte skutečnou identitu. Dodavatel s firmou, doménou, historií podpory a veřejným changelogem je něco jiného než anonymní účet se třemi nabídkami.
  3. 3Položte technickou otázku a přečtěte odpověď. Dodavatelé ochotní vysvětlit, kam se jejich resource připojuje a proč, bývají dodavatelé bez čeho co skrývat.
  4. 4Preferujte prodejce, kteří u serverové části zveřejní čitelnou verzi nebo cestu k auditu, i když je klientská část chráněná.
  5. 5Uniklé nebo znovu nahrané kopie escrow resources odmítejte bez debat. Crackenutý escrow resource byl z definice upraven někým, jehož zájmy nejsou vaše.

Co s tím děláme my

FXScan hlásí, co vidět může, a jasně říká, co vidět nemůže. Když je archiv escrow šifrovaný nebo silně obfuskovaný, poctivý výsledek není „čisté“ — je „neanalyzovatelné“, s uvedením důvodu. Nástroj vracející zelenou fajfku u kódu, který nikdy nepřečetl, je horší než žádný nástroj, protože vyrábí jistotu bez opory.

Podívejte se, co vám analýza řekneFXScan u čitelného kódu ukáže důkazní cestu a u neanalyzovatelného resource to otevřeně napíše.

Obecnější princip používáme i na vlastní práci: hodnota bezpečnostního výsledku je omezená tím, co bylo skutečně prozkoumáno. Řekněte, co jste zkoumali, řekněte, co ne, a nechte provozovatele rozhodnout se informovaně. Cokoli jiného je marketing v bílém plášti.

Časté dotazy

Znamená escrow ochrana, že je FiveM resource bezpečný?

Ne. Escrow je licenční mechanismus, který kód zašifruje, aby se nedal kopírovat a dál prodávat. O bezpečnosti spuštění neříká nic a bere vám možnost kód prověřit. Vstupní kontroly na marketplace většinou nejsou řádkové malwarové audity opakované při každé aktualizaci, takže escrow přesouvá vaše důkazy výhradně na pověst dodavatele.

Umí scanner analyzovat escrow chráněný FiveM resource?

Ne. Escrow šifrovaný kód dešifruje až runtime na licencovaných serverech, takže statická analýza nemá s čím pracovat. Poctivý scanner to hlásí jako „neanalyzovatelné“, ne jako „čisté“ — zelený výsledek u kódu, který nikdy nikdo nepřečetl, je falešná jistota.

Je bezpečné používat uniklé nebo crackenuté FiveM skripty?

Je to nejrizikovější kategorie resources, se kterou se setkáváme. Odstranění escrow ochrany vyžaduje úpravu resource, takže crackenutý skript z definice prošel rukama někoho, kdo měl přístup i motiv přidat něco svého. Distribuční kanál si vybírá přesně ty lidi, které byste u svého serverového kódu nechtěli.

Související projekty

Čtěte dál