RAT 및 FakeUpdates 탐지 백신 개발 및 테스트

Hae_To·2025년 3월 6일

📌 RAT 및 FakeUpdates 탐지 백신 개발 및 테스트 방법

🔍 개요

최근 악성코드의 주요 공격 방식 중 하나는 RAT(원격 액세스 트로이 목마, Remote Access Trojan)FakeUpdates(가짜 업데이트 멀웨어)를 이용한 감염입니다. 이러한 악성코드는 기업 및 개인 사용자의 보안을 위협하며, 추가적인 멀웨어 설치 및 정보 유출을 유발할 수 있다.

이 글에서는 RAT 및 FakeUpdates를 탐지할 수 있는 백신을 개발하고, 이를 테스트하는 방법을 설명한다.


1️⃣ RAT 및 FakeUpdates 개요

🦠 RAT (Remote Access Trojan)

RAT은 공격자가 원격으로 피해자의 컴퓨터를 제어할 수 있도록 설계된 악성코드이며, 주요 기능은 다음과 같다.

  • C2(Command and Control) 서버와 연결하여 명령을 수신 및 실행
  • 피해자의 파일 업로드/다운로드, 프로세스 실행, 키로깅 등 수행
  • 시스템 정보를 유출하고 추가적인 멀웨어를 다운로드하여 감염 확대

📌 RAT 악성코드 예제: AsyncRAT, njRAT, RemcosRAT 등

🎭 FakeUpdates (SocGholish) 멀웨어

FakeUpdates는 웹사이트에 악성 스크립트를 삽입하여 가짜 소프트웨어 업데이트를 유도하는 다운로더형 멀웨어입니다. 사용자가 속아 업데이트를 실행하면 추가 악성코드가 설치됨.

  • 합법적인 웹사이트를 감염시키고 JavaScript 기반 가짜 업데이트 경고 표시
  • 사용자가 속아 업데이트를 실행하면 RAT, 랜섬웨어, 정보 탈취형 멀웨어 다운로드
  • 기업 네트워크 침투 및 공급망 공격에 사용됨

📌 실제 공격 사례: SocGholish를 이용한 Conti 랜섬웨어 배포 사례 (2022년)


2️⃣ FakeUpdates 예제 코드 제작 (테스트용)

FakeUpdates 멀웨어는 사용자를 속이는 가짜 업데이트 메시지를 표시하고 악성 파일을 다운로드합니다. 이를 시뮬레이션하기 위해 다음과 같은 예제 코드를 작성.

💡 FakeUpdates 가짜 업데이트 HTML 코드

<!DOCTYPE html>
<html>
<head>
    <title>Fake Browser Update</title>
    <script>
        function fakeUpdate() {
            alert("Your browser is out of date! Please update now.");
            window.location.href = "http://127.0.0.1:5000/malware.exe";
        }
        setTimeout(fakeUpdate, 2000);
    </script>
</head>
<body>
    <h1>Welcome to Safe Browsing</h1>
    <p>Your browser is up-to-date.</p>
</body>
</html>

📌 동작 방식
2초 후 가짜 업데이트 경고 표시
✅ 사용자가 클릭하면 malware.exe 다운로드
✅ 백신이 탐지해야 하는 악성 다운로드 URL 생성


3️⃣ FakeUpdates 탐지 서버 구축 (Python Flask)

실제 악성코드를 다운로드하지 않고 백신이 탐지할 수 있도록 가짜 업데이트 서버를 제작.

💡 Python Flask 기반 탐지 서버 코드

from flask import Flask, send_file

app = Flask(__name__)

@app.route('/')
def fake_update_page():
    return '''
    <html>
    <head>
        <title>Fake Browser Update</title>
        <script>
            function fakeUpdate() {
                alert("Your browser is out of date! Please update now.");
                window.location.href = "/malware.exe";
            }
            setTimeout(fakeUpdate, 2000);
        </script>
    </head>
    <body>
        <h1>Welcome to Safe Browsing</h1>
        <p>Your browser is up-to-date.</p>
    </body>
    </html>
    '''

@app.route('/malware.exe')
def fake_malware():
    return send_file("malware.exe", as_attachment=True)

if __name__ == '__main__':
    app.run(host="0.0.0.0", port=5000)

📌 테스트 방법
1. python fakeupdates_server.py 실행
2. 브라우저에서 http://127.0.0.1:5000/ 접속
3. 가짜 업데이트 페이지가 나타나고 malware.exe 다운로드 시도
4. 백신이 이를 탐지하는지 확인


4️⃣ YARA 기반 FakeUpdates 탐지 룰

백신이 FakeUpdates를 탐지할 수 있도록 YARA 룰을 작성합니다.

🛡️ YARA 탐지 룰

rule FakeUpdates_Detection {
    meta:
        description = "Detects FakeUpdates (SocGholish)"
        author = "SecurityResearcher"
        date = "2025-03-04"
    strings:
        $update_prompt1 = "Your browser is out of date"
        $update_prompt2 = "Please update your Flash Player"
        $js_obfuscation = /var\s+\w+\s*=\s*function\s*\(\)\s*{.*};/
        $wmi_call = /GetObject\("winmgmts:/
    condition:
        any of them
}

📌 탐지 방식
✅ 가짜 업데이트 메시지 "Your browser is out of date" 포함 여부
✅ 난독화된 JavaScript 감지
✅ Windows WMI 호출 여부 확인


5️⃣ 크롬 익스텐션으로 발전 방향

이제 백신을 크롬 익스텐션으로 발전시켜 웹 트래픽에서 악성코드를 실시간 탐지할 계획.

🔜 크롬 익스텐션 개발 계획

1️⃣ 웹사이트에서 가짜 업데이트 탐지 (chrome.webRequest)
2️⃣ 악성 다운로드 파일 검사 (chrome.downloads.onDeterminingFilename)
3️⃣ 서버와 연동하여 탐지 로그 수집
4️⃣ 사용자에게 경고 메시지 표시


🚀 결론

RAT 및 FakeUpdates 탐지 백신 개발
Python Flask 서버에서 가짜 업데이트 테스트 가능
YARA 룰 적용하여 탐지 가능
이제 크롬 익스텐션으로 발전하여 웹 탐지 기능 추가 예정

profile
진인사대천명

0개의 댓글