[Security] VirusTotal
VirusTotal의 기능, 세부적인 사용법과 분석 방법론을 정리했습니다.
개요
VirusTotal의 아래 내용을 정리했습니다.
- virustotal 의 기능
- virustotal 의 세부적인 사용 방법 (세부 내용 분석 및 활용 방안)
- virustotal 을 통한 분석 방법
요약
VirusTotal은 관제, CERT, 진단 업무를 수행할 때 많이 사용됩니다.의심가는 파일을 업로드하며 해당 파일이 안전한지 검증할 수 있습니다. 기초 분석, 정적 분석, 동적 분석 3 가지 중 파일을 단순 업로드하여 분석하는 기초 분석 단계에 해당합니다.
VirusTotal이 제공하는 여러 분석 값은 실시간으로 검증한 게 아닌 과거의 이력,을 통해 진행한 것으로 현행화된 내용을 기반으로 해야합니다. Behavior라도 Sandbox 환경의 불일치 등의 문제가 발생할 수 있으니 반드시 분석은 현재 환경/상황에 맞춰 스스로 진행해야합니다.
파일 업로드 시 주의사항은 다음과 같습니다
- 민감한 정보, 개인 정보가 포함된 경우 DB에 저장되므로 유출 위험
- 압축 파일을 제공했을 때 상단 파일 1개만 분석해서 제공 됨
- 악성이 끼어있어도 정상으로 분류 가능성
따라서 VirusTotal은 이후 정적 분석과 동적 분석을 위한 방향성으로 사용해야합니다. 악성코드는 또한 특성과 성질이 최신화되기 때문에 100% 확신이 불가능합니다.
따라서 VirusTotal은 기초 분석 중 하나의 가능성으로 파악하며 반드시 정적 분석, 동적 분석과 연계하여 수행합니다.
1. VirusTotal 주요 기능
핵심 스캐닝 기능
- 멀티 엔진 검사 - 70개 이상 백신 엔진 동시 스캔으로 단일 백신 오탐 방지
- 파일 분석 - 최대 650MB 파일 업로드 지원, 실행 파일·문서·APK 등 모든 형식 지원
- URL/도메인 검사 - 웹사이트 악성 여부, 피싱 사이트 탐지
- IP 주소 분석 - IP 평판 정보, 과거 악성 활동 이력 조회
- Hash 검색 - MD5, SHA-1, SHA-256 해시로 기존 분석 결과 즉시 확인
고급 분석 기능
VirusTotal Graph
- 파일·URL·도메인·IP 간 관계를 시각화
- 공격 인프라 매핑 및 C2 서버 추적
- 악성코드 패밀리 연관성 분석
Code Insight (AI 기반)
- Google Gemini 기반 코드 자동 분석
- 악성 코드 기능을 자연어로 요약 제공
- IDA Pro 플러그인 지원으로 역공학 작업 자동화
JA4 Client Fingerprinting (2024년 신규)
- TLS 클라이언트 통신 특성 기반 악성 파일 추적
- JA3 대비 향상된 안정성 (TLS 확장 무작위화 대응)
behavior_network검색 modifier로 동일 지문 파일 피벗 분석
Sandbox 동적 분석
- 파일 실행 시 행동 분석 (프로세스, 레지스트리, 네트워크 활동)
- MITRE ATT&CK 매핑 - TTP 기반 공격 기법 자동 분류
- Dropped 파일, C2 통신, API 호출 내역 추출
커뮤니티 기능
- 커뮤니티 점수 및 댓글로 사용자 피드백 확인
- 분석가들의 YARA 규칙, IOC 공유
- 악성코드 패밀리 태깅 및 협업 분석
통계 및 데이터
- 일평균 600만 건 분석 수행
- 500억+ 파일, 100억+ Passive DNS 레코드 보유
- 일 180만 파일 분석, 일 200~800만 URL 스캔
2. VirusTotal 세부 사용 방법
웹 인터페이스 사용법
파일 검사
- virustotal.com 접속
Choose file클릭 → 파일 업로드 (최대 650MB)- 업로드 전 자동 hash 검사 → 기존 분석 있으면 즉시 결과 표시
- 신규 파일은 분석 대기열 진입 (우선순위: 웹 > API)
URL 검사
- URL 탭 선택
- 검사할 URL 입력 (http:// 또는 https:// 포함)
- URL 평판, 리다이렉션 체인, 임베디드 리소스 확인
검색 기능
- Hash 검색 - MD5/SHA-1/SHA-256 값 입력으로 즉시 조회
- Advanced Search - 복잡한 쿼리로 데이터셋 탐색
결과 해석
Detection 탭
XX / 70형식으로 탐지 백신 수 표시- Undetected - 정상 파일로 인식
- Malicious/Suspicious - 악성/의심으로 분류
- 백신별 멀웨어 패밀리명 확인 (예: Trojan.Agent, Ransomware.BlackHunt)
Details 탭
- 파일 메타데이터 - 크기, 타입, 생성일, 디지털 서명
- PE 정보 - Import/Export 함수, 섹션 정보, 리소스
- APK 정보 - 권한, 액티비티, 서비스, 인증서
Relations 탭
- Contacted URLs - 파일이 접속하는 C2 서버
- Contacted IPs - 네트워크 통신 대상
- Dropped files - 실행 시 생성되는 추가 파일
- Bundled files - 압축 파일 내 포함 파일
Behavior 탭 (Sandbox 분석 결과)
- Process tree - 실행된 프로세스 계층
- Files written/deleted - 파일 시스템 변경 사항
- Registry keys - 레지스트리 수정 내역
- Network activity - DNS 쿼리, HTTP 요청, TCP 연결
- MITRE ATT&CK mapping - T1490 (시스템 복구 차단), T1083 (파일 탐색) 등
Community 탭
- 커뮤니티 점수 (+100 ~ -100)
- 분석가 댓글 및 추가 정보
- 관련 캠페인·그룹 태깅
3. VirusTotal 분석 방법론
기초 분석 (정적 분석)
1단계: Hash 기반 사전 조회
목적: 이미 분석된 파일인지 확인
방법: MD5/SHA-256 해시값으로 검색
결과: 과거 분석 이력 즉시 확인, 시간·비용 절약
2단계: 멀티 엔진 탐지 결과 검토
- 정확도 95~98% 수준
- 단일 엔진 오탐 가능성 고려
- 5개 이상 탐지 시 악성 가능성 높음
- 패밀리명 일치 여부 확인 (예: 10개 엔진이 모두 "Trojan.Banker"로 분류)
3단계: 파일 메타데이터 분석
- 디지털 서명 검증 - 서명 없거나 무효 시 의심
- 컴파일 타임스탬프 - 미래 날짜는 조작 가능성
- 엔트로피 분석 - 높은 엔트로피는 패킹/암호화 의심
- Import 함수 - CreateRemoteThread, WriteProcessMemory 등 위험 API
심화 분석 (동적 분석)
Behavior 탭 활용
프로세스 분석
- 프로세스 인젝션 탐지 - 정상 프로세스에 악성 코드 삽입
- 자가 복제 확인 - Startup 폴더, 레지스트리 Run 키 생성
- 권한 상승 시도 - UAC 우회, 토큰 도용
네트워크 분석
- C2 서버 식별 - Contacted IPs/URLs 확인
- DGA(Domain Generation Algorithm) 탐지 - 무작위 도메인 다수 접속
- 데이터 유출 - 대용량 outbound 트래픽
파일 시스템 분석
- Dropped files - 추가 멀웨어 다운로드 여부
- 삭제 파일 - Shadow Copy 삭제 시 랜섬웨어 의심
- 암호화 흔적 - 다수 파일 확장자 변경
MITRE ATT&CK 매핑 활용
사례: BlackHunt Ransomware 분석
- T1490 (Inhibit System Recovery) - Shadow Copy 삭제
- T1083 (File and Directory Discovery) - 파일 탐색
- T1486 (Data Encrypted for Impact) - 데이터 암호화
→ 전형적인 랜섬웨어 TTP 패턴 확인
고급 분석 기법
VirusTotal Graph 활용
- 초기 샘플에서 Contacted IPs 추출
- 해당 IP로 Graph 피벗 → 동일 IP 접속 파일 탐색
- 공통 파일에서 Dropped files 추적 → 캠페인 전체 구조 파악
- Whois 정보로 도메인 등록자 추적
Code Insight로 악성 행위 파악
- VT-IDA 플러그인으로 IDA Pro에서 직접 분석
- 난독화된 함수 자동 해석
- Anti-disassembly 기법 탐지
Livehunt (YARA 기반 자동 헌팅)
rule Ransomware_Detection {
meta:
description = "랜섬웨어 행동 탐지"
condition:
attack_technique:T1490 and
attack_technique:T1083 and
behavior:CryptEncrypt and
fs:2024-01-01+
}
주의사항
데이터 공유 리스크
- 업로드한 파일은 커뮤니티에 공유됨
- 기밀 문서, 개인정보 포함 파일 업로드 금지
- 실제 사례: 선거관리위원회 자료 유출 사고 발생
오탐(False Positive) 대응
- 합법 소프트웨어가 Heuristic 엔진에 오탐되는 경우 흔함
- 크랙·패치 도구는 정상적으로 탐지될 수 있음
- 여러 엔진 결과 종합 판단 필요
API 사용 정책 준수
- 무료 계정 Rate Limit 초과 시 계정 정지
- 자동화 스크립트 사용 시 sleep 추가 권장
실전 워크플로우 예시
의심 메일 첨부파일 분석
1. 첨부파일 Hash 추출 → VirusTotal 검색
2. 탐지 결과 없으면 → 파일 업로드
3. Detection 탭: 10/70 탐지 → 악성 가능성 판단
4. Behavior 탭: CreateMutex, 레지스트리 수정 확인
5. Relations 탭: C2 서버 IP 추출 → 방화벽 차단
6. Community 탭: "Emotet 캠페인" 태그 확인
7. 결론: Emotet 트로이목마로 최종 판정
알려지지 않은 APT 조사
1. 초기 샘플 업로드 (탐지율 낮음)
2. VirusTotal Graph로 Contacted IPs 피벗
3. 동일 인프라 사용 파일 20개 발견
4. Code Insight로 공통 악성 행위 패턴 추출
5. MITRE 매핑: T1071 (Application Layer Protocol), T1573 (Encrypted Channel)
6. YARA 규칙 작성 후 Livehunt 설정
7. 신규 변종 자동 탐지 체계 구축