Statická, nebo dynamická analýza: co má prověřovat vaše FiveM resources?
Ve zkratce
Statická analýza čte FiveM resource, aniž by ho spustila; dynamická ho spustí v sandboxu a sleduje, co dělá. Pro revizi před instalací je správnou výchozí volbou statická analýza: během kontroly se nic škodlivého nespustí, prozkoumá se celý resource místo jen těch cest, které náhodou proběhly, a výsledek ukazuje na konkrétní soubory a řádky, které si provozovatel ověří. Dynamická analýza vidí skrz obfuskaci a kód sestavený za běhu, s čímž si statická vždy neporadí, ale pozoruje jen chování, které během běhu nastalo — a dnešní payloady běžně čekají, kontrolují sandbox nebo potřebují reálného hráče. V praxi se oba přístupy doplňují a poctivé je jasně říct, na jaké otázky který umí a neumí odpovědět.
Hlavní body
- Statická analýza vzorek nikdy nespouští — samotná kontrola nemůže nic kompromitovat.
- Statická analýza pokryje všechny cesty kódu; dynamická jen ty, které proběhly.
- Dynamická analýza si poradí s obfuskací, což je přesně slabina té statické.
- Vyhnout se detekci je levné: sleep, kontrola sandboxu nebo trigger vyžadující reálného hráče porazí naivní dynamický běh.
- Ať použijete cokoli, výstup musí být ověřitelný důkaz — ne skóre, kterému musíte věřit.
Každý nástroj na bezpečnost kódu leží někde na jedné ose: uvažuje o programu, nebo program pozoruje? Obě odpovědi jsou legitimní, selhávají opačně a výběr je inženýrské rozhodnutí s důsledky, které by uživatel měl vidět.
Oba přístupy přesně
Statická analýza naparsuje zdroj do syntaktického stromu a uvažuje nad ním: jaké funkce existují, které hodnoty se dostanou do kterých volání, co manifest načítá. Nic se nespouští. Dynamická analýza vloží resource do instrumentovaného prostředí, spustí ho a zaznamenává syscally, síťová spojení a zápisy souborů. Spouští se všechno.
| Vlastnost | Statická | Dynamická |
|---|---|---|
| Spouští vzorek | Ne | Ano |
| Pokrytí kódu | Veškerý dosažitelný kód | Jen cesty, které proběhly |
| Zvládá obfuskaci | Částečně — strukturu ano, hodnoty často ne | Ano, pozorováním výsledku |
| Zvládá odložené / spouštěné payloady | Ano — kód je tam k přečtení | Jen když se trigger během běhu spustí |
| Vyprodukovaný důkaz | Soubor, řádek, datová cesta | Pozorované chování, časy, endpointy |
| Cena za sken | Nízká, sekundy | Vysoká, sandbox na vzorek |
| Riziko pro analyzující stroj | Žádné | Reálné, vyžaduje izolaci |
Proč je FXScan statický
Rozhodnutí plyne z použití. Provozovatelé skenují resource před instalací, často ten, který si právě koupili, a potřebují odpověď během sekund, ne sandboxovou seanci. Tři vlastnosti udělaly ze statické analýzy zjevnou volbu.
- 1
Revize musí být bezpečná už z konstrukce
Kontrola před instalací, která kód spouští, musí být pokaždé dokonale zasandboxovaná. Z kontroly, která nikdy nic nespustí, není z čeho utéct.
- 2
Tady je pokrytí důležitější než věrnost
Typický FiveM backdoor na něco čeká — konkrétního hráče, prodlevu, příkaz. Třicetisekundový dynamický běh z toho neuvidí nic. Přečtení souboru uvidí všechno.
- 3
Výstup musí ověřit i nespecialista
„server/main.lua řádek 214 vezme tělo HTTP odpovědi, na řádku 218 ho dekóduje a na řádku 221 předá do load()“ si majitel serveru otevře a zkontroluje. Behaviorální trace ne.
Kde statická analýza skutečně selhává
Jasně přiznané limity nejsou skromnost, je to jediný způsob, jak výsledku dát smysl.
- Kód sestavený za běhu. Když se řetězec skládá aritmetikou napříč několika soubory, constant folding ho nemusí vyřešit. Strukturální signál zůstává — něco skládá řetězec a spouští ho — ale payload ne.
- Escrow šifrované resources. Není co číst. Správný výstup je „neanalyzovatelné“, ne „čisté“.
- Vzdálený obsah. Resource, který stahuje kód, je označen jako loader, ale co endpoint vrátí zítra, dnes nikdo neví.
- Úmysl. Statická analýza zjistí, že data tečou ze sítě do spuštění. Jestli to autor myslel jako systém pluginů, nebo jako backdoor, je lidský úsudek.
Kde skutečně selhává dynamická analýza
- Pokrytí. Pozorovalo se jen to, co proběhlo. Payload spouštěný admin příkazem čtyřicátý den se prostě neobjeví.
- Únik detekci. Detekce sandboxu, časové kontroly a „spusť se jen pro reálný licenční identifikátor“ se píšou levně a v praxi jsou běžné.
- Reprodukovatelnost. Vzdálený endpoint může vašemu sandboxu servírovat neškodný obsah a reálným serverům payload. Stejný vzorek, jiný verdikt, z běhu nepoznatelné.
- Cena a bezpečnost. Každý vzorek potřebuje izolované prostředí, řízení odchozí konektivity a úklid. To je reálná infrastruktura, ne knihovna.
Jak vypadá kombinovaný přístup
Zralá odpověď je vrstvení a tím směrem naše práce míří: statická analýza jako rychlý, bezpečný a univerzální první průchod; cílené dynamické potvrzení pro úzkou množinu vzorků, kde statická analýza odhalí loader, ale nerozplete payload; a průběžná opakovaná kontrola, aby verdikt patřil verzi, ne resource navždy.
Ta poslední část je důležitější než spor statická versus dynamická. Oba přístupy vyprodukují tvrzení o jedné verzi jednoho archivu v jednom okamžiku. Server ale běží měsíce. Pravdivost toho tvrzení udržuje jen opakovaná kontrola — a proto je Titan Security Cloud postavený kolem sledování změn, ne kolem jednorázového verdiktu.
Vyzkoušet pipeline statické analýzyValidace archivu, bezpečná extrakce, nalezení manifestu, AST a taint analýza, generování důkazů — z archivu se nikdy nic nespustí.Časté dotazy
Jaký je rozdíl mezi statickou a dynamickou analýzou FiveM resources?
Statická analýza naparsuje zdrojový kód resource a uvažuje nad ním, aniž by cokoli spustila, takže pokryje každou cestu kódu a vzorek jí nemůže ublížit. Dynamická analýza resource spustí v izolovaném sandboxu a zaznamenává, co skutečně dělá, což vidí i skrz obfuskaci, ale pozoruje jen chování, které během daného běhu nastalo.
Proč FXScan analyzovaný resource nespouští?
Protože revize probíhá před instalací a musí být bezpečná už z konstrukce. Z kontroly, která nikdy nespustí kód, nemá škodlivý vzorek jak uniknout, a pokryje i cesty, které by krátký sandboxový běh nikdy nespustil — což je podstatné, protože FiveM backdoory typicky čekají na konkrétního hráče, příkaz nebo prodlevu.
Umí statická analýza odhalit obfuskované FiveM backdoory?
Částečně. Strukturální fakta obfuskaci přežijí — síťové volání i dynamické načtení jsou pořád vidět — ale hodnoty, které mezi nimi tečou, se často skládají za běhu právě proto, aby se staticky nedaly vyřešit. Správnou reakcí je nahlásit strukturální riziko a jasně napsat, že payload nebylo možné rozplést, místo vracení čistého verdiktu.