Virustotal(https://www.virustotal.com/)은
보안 분야에서 실무를 하게 될 때, 정말 많이 사용되는 웹 사이트 중 하나이다.
IP 주소, 도메인 주소 검색, 악성코드 분석, 샘플 파일 분석 등 정말 많은 목적으로 사용한다.
Virustotal 기능
약 70여 개의 안티바이러스 엔진을 활용하여,
파일, URL, IP 등의 악성코드 스캔 결과를 확인할 수 있는 웹 사이트이다.
또한, VirusTotal은 파일 해시값을 통해 이전의 악성 코드 검사 기록을 확인할 수 있다.
파일을 업로드하면 해당 파일의 해시값이 자동으로 생성되고,
이 해시값을 사용하여 VirusTotal에서 해당 파일의 과거 스캔 결과를 조회할 수 있는 것이다.
크게 웹 사이트 내에는 위와 같이 FILE / URL / SEARCH 3가지 탭이 존재하며,
사용자의 요구에 따라 알맞게 사용할 수 있다.
아래에서 자세하게 알아보자
FILE
사용자가 업로드한 파일을 스캔하고, 다양한 엔진의 결과를 종합하여
통합 보고서를 생성하며, 어떤 엔진에서 어떤 악성코드가 감지되었는지를 제공한다.
URL
검색 또는 스캔하고자 하는 URL을 입력하면, 파일 스캔과 유사한 메커니즘으로 스캔 결과를 제공한다.
URL이 현재 어떤 상태를 유지하고 있는지 알고자 사용한다.
즉, 현재 악성인지 아니면 과거에 악성으로 활동했던 이력이 있는지 등을 알고자 하는 목적으로 사용을 한다.
만약 특성 웹사이트에서 파일을 다운로드하고자 하는데,
의심스러운 경우 사전 URL 검사를 하고자 할 때 사용할 수 있다.
SEARCH
URL 뿐만 아니라 IP주소, 도메인, 파일 해시값 또한 추가적으로 스캔할 수 있는 탭이다.
의심스러운 IP 주소 또한 스캔 가능하며, 앞서 말했던 파일 해시값 또한 스캔이 가능한 것이다.
해시값을 이용할 때는 과거에 한 번이라도 업로드가 되었던 파일에 대한 해시값은 조회가 되지만
업로드되었던 이력이 없는 해시코드에 대한 분석은 제공해주지 않는다는 점을 기억하자.
검색 결과 및 세부적인 탭 내용은 파일 스캔 결과와 유사하기 때문에,
아래에서 파일 스캔 시에 Virustotal에서 제공하는 내용들을 자세하게 살펴보자.
Virustotal 사용법 및 세부내용
FILE 탭에서 Choose File으로 파일을 업로드하면 스캔이 시작된다.
필자는 통계청 공개 파일을 스캔해 보았다.
파일 스캔이 완료되면 아래와 같이 총 6개의 탭이 생성된 것을 볼 수 있다.
각 탭의 내용들을 간단히 알아보자.
SUMMARY
0/62은 62개의 다양한 안티바이러스 엔진으로 검사를 한 결과,
0개의 엔진이 악성코드를 감지했다는 의미이다.
맨 아래에 제공된 내용은 해당 파일의 해시값이다.
중앙의 ‘Community Score’는 사용자들이 파일에 대한
의견을 남길 수 있는 시스템이며, 해당 파일을 신뢰할지 여부를 나타내는 데 사용된다.
한 가지 짚고 넘어가야 될 점이 있다.
만약 62개의 엔진(백신)에서 50개의 백신이 악성으로 진단을 했다고 해도,
100% 악성코드로 확정 지어 생각하는 것이 아닌 악성코드일 확률이 높다는 식으로 추측하며 분석을 진행해야 한다.
악성코드 분석에는 '확신'이란 것은 없다.
악성코드는 시간이 지남에 따라 얼마든지 상태가 변경될 수 있고, 분석하는 환경에 따라서도 결과가 충분히 다를 수 있기 때문이다.
즉, "~추정하며, 결과가 ~ 식으로 보인다"와 같이 분석할 필요성이 있다.
하지만, 현재는 정상 상태이지만 과거에 악성으로 활동했던 이력이 있는 경우,
"언젠가 또 악성으로 활동할 수 있지 않을까?"라는 전제를 둘 수 있다.
SUMMARY탭 활용법
요약된 결과를 통해 간략하게 보안 상태 및 위험 수준 평가가 가능하다.
DETECTION
다양한 안티바이러스 엔진이 사용된 것을 확인할 수 있다.
‘Undetected’는 해당 엔진이 해당 파일을 악성코드를 탐지하지 못하고 정상파일로 인식함을 의미한다.
여러 가지 엔진(백신) 중 보통 AhnLab-V3(안랩 백신)를 기준으로 잡는다.
만약에 안랩 백신이 악성으로 진단하지 않았다면, ALYac(알약)을 기준으로 본다.
하지만 두 엔진 모두 악성으로 진단하지 않고,
다른 엔진에서 악성으로 진단했다고 해도 악성일 확률이 있다고 생각해야 하는 것이다.
DETECTION 탭 활용법
여러 엔진 중 어떤 엔진이 해당 파일을 효과적으로 감지했는지 확인 가능하다.
또한 엔진별 상세 정보를 확인할 수 있어, 해당 파일을 어떤 악성코드 패턴이나 행위로부터 감지했는지 확인이 가능하다.
특정 엔진은 악성 코드로 판단하고, 나머지 엔진은 정상 파일로 인식했을 경우
‘False Positive(오탐)’을 의심할 수 있다는 점도 존재한다.
DETAILS
파일에 대한 상세한 분석 및 정보를 제공하는 탭이다.
해당 파일의 크기, 유형, 해시값 등의 일반 정보와 스캔 히스토리 등을 제공한다.
위와 같이 Virustotal은 정말 많은 정보는 제공을 해주는 것을 알 수 있다.
하지만 제공해 주는 정보를 맹신하면 안 되며, 참고하는 정도로 활용하는 것이 좋다는 것을 기억하자.
DETAILS 탭 활용법
해시 값을 통해 파일의 무결성을 확인하거나,
크기가 예상외로 크거나 작은 경우, 생성일이 의심스러운 경우 초기 단계 분석이 가능하다.
또한 위와 같은 정보를 정적분석이나 동적분석을 진행할 때도,
정말로 맞는 정보인지 한 번 더 체크하는 식으로 활용할 수 있다.
세부 정보를 종합하여 제공해 주는 탭이다 보니 파일의 특성을 심층적으로 이해할 수 있다는 점도 존재한다.
RELATIONS
파일과 관련된 다양한 정보와 연결된 자산들을 시각적으로 제공해 준다.
보통 ‘Contacted URLS’, ‘Contacted Domains’, ‘Dropped Files’ 등으로
관련된 도메인, URL, IP 주소, 상위 및 하위 파일 등을 제공한다.
즉, 파일이 특정 URL, IP 주소 등과 통신되는 것들이 있는지에 대한 정보를 제공해 주는 것이다.
하지만 본인이 실제로 분석을 진행했을 때, 위와 같은 정보가 나오지 않을 수 있기 때문에,
언제나 참고하는 정도로만 사용해야 한다.
만약 파일이 번들로 제공되면, 여러 파일이나 구성 요소가 함께 묶여 전달되는 경우가 많기에,
위와 같이 번들에 속한 파일 목록, 해당 파일들의 해시값, 악성 코드 감지 여부 등을 확인 가능하다.
RELATIONS 탭 활용법
파일과 연관된 다른 파일이나 URL 등을 확인하여,
악성 파일의 전파 경로를 이해하거나, 어떠한 관계로 연관되어 있는지 파악이 가능하다.
위와 같이 단일 파일을 넘어서 보다 넓은 범위에서 정보를 종합하여 보안 문제를 이해하는 데 도움을 주는 것이다.
BEHAVIOR
다양한 *샌드박스 환경에서 수행된 분석 리포트 옵션을 활성화하면,
샌드박스에서 수행한 해당 파일의 동적 분석 결과를 하나의 통합된 리포트로 제공한다.
*샌드박스(Sandbox)
실제 시스템과 격리된 환경에서 파일, 애플리케이션, 또는 코드 등을 실행하여,
그 행위를 관찰하고 분석하는 데 사용되는 특수한 환경이다.
BEHAVIOR 탭 활용법
파일이 네트워크에서 어떤 도메인이나 IP주소와 통신하는지 등의 상호작용 활동 또한 확인할 수 있다.
악성 코드가 *C&C 서버와의 통신이나 악성 파일 다운로드 등의 활동 식별하는데 활용이 가능하며,
파일이나 디렉토리의 생성, 수정, 삭제 등 파일 시스템 동작 내용을 기록하여,
악성코드가 시스템 내에서 어떻게 활동하는지 파악 및 대응이 가능하다.
이외에도 여러 제공된 정보를 바탕으로 다양하게 활용이 가능하다.
*C&C(C2 또는 Command and Control) 서버
악성코드 또는 악성 네트워크에서 감염된 시스템들과 통신하고 명령을 제어하는 서버이다.
COMMUNITY
사용자들 간의 경험 공유 및 정보 교환이 가능한 탭이다.
스캔 결과에 대한 코멘트를 확인하거나, 다양한 사용자들의 분석 결과, 피드백 공유가 가능하다.
COMMUNITY 탭 활용법
사용자들 간의 상호작용을 가능하게 하여,
악성이력, 많은 배포가 이루어졌던 이력이 있었는지 등 다양한 정보를 얻고 활용할 수 있다.
특히 신속한 보안 이슈에 대한 대응이 필요한 경우 유용하게 사용된다.
Virustotal 분석 방법
악성코드 분석을 진행하게 될 때, 기초분석 / 정적분석 / 동적분석 총 3가지 분석 방법이 존재한다.
Virustotal은 3가지 중, 악성코드에 대한 기초적인 정보를 모으는 단계인 기초분석(초기분석)에서 사용하게 된다.
기초분석은 해당 악성코드의 특징과 행위를 파악하여, 후속 정적분석과 동적분석에 방향성을 제시하는 역할을 한다.
아래와 같은 내용이 정적분석과 동적분석에서 좀 더 중요하게 볼 수 있는 포인트라고 할 수 있다.
정적 분석에 대한 기초
파일의 특성을 확인하여 해시값, 크기, 파일 형식, 디지털 서명 등을 수집한다.
파일 내부의 문자열, 키워드, 패턴 등을 조사하여 악성 특징을 찾는다.
동적 분석에 대한 기초
파일이 실행될 때의 기본적인 행위를 확인하며, 파일이 네트워크와 어떻게 상호작용하는지를 주시할 수 있다.
예를 들어, 파일이 어떤 프로세스를 생성하거나 파일 시스템을 어떻게 조작하는지 등을 확인한다.
하지만 선택적으로 "BEHAVIOR" 탭을 통해 파일의 동적 분석을 확인할 수 있다.
왜냐하면 BEHAVIOR 탭은 실행 중에 파일이 시스템에서 어떻게 행동하는지를 제공하기 때문이다.
Virustotal 사용 시 주의사항
1. 재검사 필요
예를 들어, 사용자가 A파일을 스캔하고자 Virustotal에 업로드를 했다.
여기서 Virustotal은 A파일을 무조건 실시간으로 분석해서 결과를 제공해 주는 것이 아니다.
과거 마지막 시점에서 누군가 A파일을 스캔했던 이력이 있었다면, 해당 이력을 그대로 가져와서 보여준다.
즉, 마지막 시점과 현재 시점 사이에 기간 차이가 많이 난다면, 해당 데이터는 정확하지 않을 확률이 매우 높다.
그래서 우리는 그 기간을 확인하고, 다시 분석하여 현재 시점으로 분석을 다시 진행할 필요가 있을 수 있다.
2. 개인정보 유출
Virustotal에 업로드하는 파일은 모두 Virustotal 데이터베이스에 저장되며, 커뮤니티에 공개가 된다.
즉, 개인 정보와 중요한 정보를 담고 있는 파일은 절대 업로드하면 안 된다.
3. 압축파일 업로드
Virustotal은 압축파일에 대한 분석 정확도가 매우 낮다.
압축파일 내에서 최상단에 있는 하나의 파일을 검사 후, 해당 결과를 제공해 주는 형태이다.
그렇다 보니 중간에 악성파일이 존재해도 최상단 파일이 정상이면, 정상 결과를 보여주는 경우가 대부분이다.
4. 검사 결과 맹신 X
'IT_정보보안 > 보안관제 프로젝트' 카테고리의 다른 글
14. 악성코드 샘플 분석(1) (1) | 2024.01.28 |
---|---|
13. 정적, 동적 Tool 실습 (1) | 2024.01.24 |
12. 샘플 분석 환경 구성 (2) | 2024.01.13 |
11. 정적 / 동적분석 / Tools (2) | 2024.01.09 |
9. 보안관제 (1) | 2023.12.20 |