자동화 분석(Virus Total)

김윤성·2026년 4월 20일

악성코드 분석

목록 보기
2/10

악성코드 분석의 첫 단계는 이 파일이 악성인지부터 빠르게 판단하는 일이다.
이번 편에서는 자동화 분석 단계에서 사용하는 VirusTotal을 정리했다.


🔍 VirusTotal이란?

VirusTotal(이하 VT)은 파일, URL, IP, 도메인 등을 업로드하거나 입력하면 70개 이상의 백신 엔진이 동시에 검사해주는 온라인 보안 분석 플랫폼이다.

특정 백신 하나만 쓰는 게 아니라, 전 세계 여러 보안 회사의 엔진이 한꺼번에 결과를 내준다. 덕분에 한 엔진이 놓친 악성코드를 다른 엔진이 잡아내거나, 반대로 하나가 오탐한 경우 다른 엔진 결과와 비교해서 판단할 수 있다.

단, 사용 전에 알아둬야 할 한계가 두 가지 있다.

  • 치료 기능 없음 — VT는 검사 도구다. 악성코드를 삭제하거나 치료해주지 않는다.
  • 파일이 공개됨 — 업로드한 파일은 VT 서버에 저장되고, 유료 사용자라면 누구든 다운로드할 수 있다.

💻 어떻게 쓰나?

virustotal.com에 접속해서 해시값을 검색창에 입력하거나, 파일을 드래그해서 올리면 된다.

순서는 이렇게 하는 게 좋을 것 같다.

1단계 — 해시값 검색 먼저

파일을 바로 올리기 전에 해시값으로 먼저 검색해보는 게 좋다. 이미 누군가 분석한 파일이라면 결과가 바로 나오고, 파일을 직접 올리지 않아도 되기 때문이다.

💡 해시값이란 파일의 고유한 지문 같은 값이다. 파일 내용이 조금이라도 다르면 해시값도 달라지기 때문에, 같은 파일인지 확인할 때 활용한다.

2단계 — 결과가 없으면 파일 업로드

해시값 검색으로 결과가 나오지 않으면 그때 파일을 직접 업로드한다.


⚠️ 사용 시 주의사항

민감한 파일은 올리지 말 것

업로드한 파일은 VT 서버에 저장되고, 유료 사용자라면 누구든 다운로드할 수 있다. 개인정보가 담긴 문서나 회사 내부 파일은 올리지 않는 게 좋다. 민감한 파일이라면 해시값 검색을 먼저 시도해보자.

0이라고 안심하면 안 된다

탐지 수가 0이라도 안전하다고 결론 내리기엔 이르다. 최초 제출일이 최근이라면 아직 엔진 DB에 반영되지 않았을 가능성이 있기 때문이다. 탐지 결과와 함께 Details 탭에서 최초 제출일도 같이 확인하는 습관을 들이자.

자동화 분석은 참고용이다

VT 결과를 그대로 믿고 분석을 끝내면 안 된다. 탐지율이 높아도 오탐일 수 있고, 0이라도 실제 악성일 수 있다. 자동화 분석은 "이 파일이 어떤 파일인지 방향을 잡는 첫 단계" 정도로 활용하는 게 맞는 것 같다.


📋 보고서 탭 구조

검사가 완료되면 Detection, Details, Relations, Behavior, Community 총 5개 탭으로 구성된 보고서를 볼 수 있다.

탭이 5개라 많아 보이지만, 나는 주로 Detection과 Relations 위주로 봤다. 이 두 탭만으로도 파일이 어떤 위협인지, 어떤 IP나 도메인과 연결되는지 파악하는 데 충분했던 것 같다.


Detection

몇 개의 엔진이 악성으로 탐지했는지 한눈에 보여준다. 3 / 72 처럼 탐지 비율로 표시되고, 각 엔진명과 탐지 이름도 함께 확인할 수 있다.

탐지 결과 외에도 화면 상단에 표시되는 정보들이 유용했다.

  • 태그persistence, spreader, checks-network-adapters 같은 태그들이 붙어 있다. 파일이 실제로 어떤 동작을 하는지 힌트를 주는 정보라 탐지 수만큼이나 참고할 만했다.
  • Popular threat label — 가장 많은 엔진이 동의한 탐지 이름이다. 여러 엔진의 탐지 이름 중 대표값을 보여주는 것이라 파일의 성격을 빠르게 파악하는 데 도움이 됐다.
  • Family labels — 이 파일이 어떤 악성코드 계열에 속하는지 보여준다. 같은 패밀리의 악성코드는 동작 방식이 비슷한 경우가 많아서, 패밀리 이름만으로도 어느 정도 특성을 예측해볼 수 있다.


Details

파일의 기본 정보를 보여준다. 해시값, 파일 크기, 파일 타입, 전자서명 여부, 패킹 여부 등을 확인할 수 있고, 파일이 언제 처음 제출됐는지 이력도 이 탭에서 볼 수 있다.

기초 분석이나 정적 분석에서 따로 도구를 써야 얻을 수 있는 메타 정보들을 여기서 한번에 볼 수 있다. 파일을 직접 실행하거나 열어보지 않아도 어느 정도 파일의 성격을 파악할 수 있어서 편했다.


Relations

이 파일이 실행될 때 어떤 도메인이나 IP와 통신하는지, 어떤 파일을 추가로 생성하는지 등 연결 관계를 보여준다.

특히 네트워크 정보를 한눈에 모아볼 수 있다는 점이 유용했다. 연결되는 IP, 도메인, 국가 정보가 정리되어 있고, 각 항목마다 탐지 결과도 함께 표시된다. 동적 분석에서 직접 트래픽을 잡아야 알 수 있는 정보들을 여기서 미리 확인할 수 있어서, IOC를 정리할 때 많이 참고했다.


Behavior

파일을 안전한 가상 환경(샌드박스)에서 실제로 실행해본 결과를 보여준다. 어떤 파일을 만드는지, 레지스트리를 수정하는지, 어떤 네트워크 통신을 하는지 등 실제 동작을 확인할 수 있다.


Community

전 세계 보안 전문가들이 해당 파일에 대해 남긴 의견을 볼 수 있다. 엔진 결과만으로 판단하기 애매할 때 참고하면 도움이 된다.


🎯 뭘 봐야 하나?

Detection 탭에서 탐지 이름을 볼 때 이름 자체를 어떻게 읽어야 할지 처음엔 헷갈렸다.

  • Trojan, Backdoor, Worm 같은 구체적인 이름이 붙어 있다면 위험도가 높은 편이다.
  • Generic, ML 같은 이름만 있다면 엔진이 패턴을 보고 확률적으로 의심하는 상태다. "수상해 보이긴 하는데 확실하진 않다"는 수준으로 이해하면 될 것 같다.

탐지 이름 외에 Popular threat labelFamily labels도 같이 보면 파일의 성격을 훨씬 빠르게 파악할 수 있다.

Relations 탭에서는 연결되는 IP나 도메인을 볼 때 탐지 결과 수치를 같이 확인하는 게 좋다. 탐지 수가 높은 도메인이나 IP가 있다면 그 자체로 의심해볼 만한 단서가 된다.


📝 마무리

VirusTotal은 파일을 직접 실행하거나 깊이 분석하지 않아도, 업로드 하나만으로 70개 이상의 엔진 결과를 한눈에 볼 수 있는 도구다.

탐지 수와 탐지 이름으로 위협의 종류를 파악하고, Relations 탭에서 연결되는 IP와 도메인을 확인하는 것만으로도 파일의 성격을 어느 정도 잡을 수 있다.

단, 결과를 그대로 믿기보다는 분석의 방향을 잡는 첫 단계로 활용하는 게 맞는 것 같다. 탐지율이 0이라도 안심할 수 없고, 높다고 해서 무조건 악성이라고 단정 지을 수도 없기 때문이다.


profile
꾸준한 IT 공부

0개의 댓글