🔍 개요
이전 글에서는 YARA 룰을 활용하여 트로이 목마(RAT) 및 가짜 업데이트 악성코드(FakeUpdates)를 탐지하는 백신을 개발하는 과정을 소개했습니다. 이 백신은 가볍고 간편하게 실행할 수 있다는 장점이 있어, 접근성과 편의성을 높이기 위해 크롬 익스텐션으로 확장하기로 계획했습니다.
이번 글에서는 크롬 익스텐션 통합 과정과 테스트 결과를 공유하며, 발생한 문제점과 개선 방향을 다루겠습니다.
1️⃣ 테스트 백신 개발 (YARA 룰 기반 탐지)
먼저, YARA 룰을 이용하여 악성코드를 탐지하는 백신을 만들었습니다.
- 목표: 트로이 목마(RAT) 및 가짜 업데이트 멀웨어(FakeUpdates)를 탐지
- 방법: 악성코드 샘플로부터 특징적인 문자열과 행동 패턴을 추출하여 YARA 룰 작성
- 추가 기능: C2 서버와의 연결을 감지하는 기능 포함
코드를 실행하면, 지정된 디렉토리와 현재 실행 중인 프로세스를 모두 검사하여 악성코드를 탐지하도록 설계하였습니다.
2️⃣ 백신의 크롬 익스텐션화
YARA 룰 기반 백신을 좀 더 쉽게 사용할 수 있도록, 크롬 익스텐션으로 만들기로 했습니다.
💡 크롬 익스텐션화의 목적
- 악성 웹사이트와의 통신을 차단
- 사용자가 브라우저를 통해 악성코드를 다운로드할 때 실시간으로 탐지
- 사용자 편의성을 높이고, 빠른 탐지 및 경고 제공
💡 구현 방법
chrome.webRequest API를 이용하여 악성 사이트 접속 감지
chrome.downloads.onDeterminingFilename API로 다운로드되는 파일 검사
- 브라우저 내에서 실행되는 악성 JavaScript 감지 기능 추가
3️⃣ 탐지율 문제 및 테스트 결과
하지만, 실제 테스트 과정에서 여러 문제가 발견되었습니다.
🔍 문제점 1: 낮은 탐지율
- YARA 룰을 작성할 때, 엄격하게 검증하지 않은 룰을 적용한 것이 문제였습니다.
- 몇 가지 간단한 특징을 기반으로 룰을 작성하다 보니, 탐지할 수 있는 악성코드의 수가 매우 적었습니다.
🔍 문제점 2: C2 서버 감지 기능의 한계
- C2 서버 연결 감지 기능을 넣었지만, 많은 RAT 악성코드는 탐지되지 않았습니다.
- C2 서버 연결 방식이 매우 다양하여 모든 경우를 커버하지 못했습니다.
🔍 문제점 3: 크롬 익스텐션에서의 탐지 오류
- 크롬 익스텐션으로 만들고 테스트를 진행했을 때, 경고창과 검사 결과 안내는 정상적으로 표시되었지만, 정작 악성코드를 탐지하지 못했습니다.
- 이는 백신 코드가 웹페이지의 악성 스크립트를 탐지하는 방식이 부정확했기 때문입니다.
4️⃣ 개선 방향 및 앞으로의 계획
💡 문제를 해결하기 위한 접근 방식
-
YARA 룰의 정밀도 개선:
- 샘플 데이터를 더 많이 확보하여, 보다 정확하게 악성코드를 탐지할 수 있는 룰 작성 필요
-
탐지 방식의 확장:
- 정적 분석(YARA) 외에도, 동적 분석(행동 기반 탐지) 및 이상 탐지(머신러닝 기반) 기능 추가 예정
-
크롬 익스텐션의 탐지 로직 수정:
- 웹사이트 트래픽 분석 기능을 강화하고, 다운로드되는 파일의 해시 값을 검사하는 기능 추가 예정
- 웹페이지 내에서 비정상적인 자바스크립트 호출을 탐지할 수 있는 방식 추가
-
서버와의 연동 테스트:
- 백엔드 서버와의 통신을 통해 탐지 결과를 기록하고 분석하는 시스템 구축 예정
🚀 결론
이번 시도는 크롬 익스텐션에서 백신을 구현하는 첫 번째 단계였습니다.
비록 탐지율이 낮고 오류가 발생하였지만, 이러한 문제를 개선하고 다시 시도할 계획입니다.
다음 단계에서는 YARA 룰을 개선하고, 크롬 익스텐션의 탐지 기능을 강화하여 보다 효과적인 백신을 만들겠습니다.