-
08. Virustotal(바이러스 토탈)에 대해 알아보기네트워크 Network/보안 2024. 12. 26. 13:58
안녕하세요? 여덟 번째 글의 주제는 Virustotal (바이러스 토탈, VirusTotal)입니다.
정보보안 분야의 업무 중 하나로 악성코드 분석이라는 것이 있습니다.
Virustotal 은 악성코드 분석에 사용되는 도구들 중 하나입니다.
오늘은 이 바이러스 토탈에 대해 알아보겠습니다.
이해를 돕기 위해 악성코드와 악성코드 분석에 대해 간단히 설명하고 시작하겠습니다.
"악성코드(Malicious Code 혹은 Malware)"는 컴퓨터나 스마트폰에, 혹은 그 내부에서 나쁜 일을 하는 소프트웨어입니다. 해커들이 컴퓨터를 망가뜨리거나, 누군가의 정보를 훔치려고 만든 악성 프로그램이라고도 이해할 수 있습니다. 경찰과 도둑 예시 - 악성코드는 마치 몰래 잠입해 해악을 끼치거나 강제로 빼앗는 도둑 같은 존재라고 생각할 수 있는데요.
그럼 악성코드 분석은 뭐냐면, 이 "악성 프로그램"이 무엇을 하고, 얼마나 위험한지 알아내는 작업입니다.
쉽게 말하면, 경찰이 사건을 조사하듯이 컴퓨터 전문가가 "악성코드"를 연구해서 무슨 나쁜 짓을 하는지 찾아내는 것이죠. 악성코드 분석은 어떻게 한다? 경찰처럼 단서를 모아서 분석한다! 악성코드 분석 도구란 분석 과정에서 사용하는, 단서를 찾는 도구를 말합니다.악성코드 분석은 분석 과정과 환경에 따라 단계적으로 기초 분석 / 정적 분석 / 동적 분석으로 나눌 수 있는데요. 정적 분석, 동적 분석이 무엇인지는 다음 시간에 다룰 예정입니다. 이번 글에서는 각각의 단계에서 사용하는 도구들이 따로 있다는 것과 Virustotal은 기초 분석 도구라는 것만 알고 가겠습니다.
그럼 다시 오늘의 주제로 돌아와서, 함께 바이러스 토탈 공부를 시작해볼까요?
순서는 아래와 같습니다.
목차
1. Virustotal 이란 무엇인가?
2. Virustotal 사용 시 주의사항
3. Virustotal 탭 설명
1. Virustotal 이란 무엇인가?
바이러스 토탈(VirusTotal)은 구글의 자회사로, 무료로 파일 검사를 제공하여 바이러스나 웜 트로이 등의 악성코드 침투를 막는 웹사이트이다. VirusTotal은 기본 공개 웹 인터페이스, 데스크톱 업로더, 브라우저 확장 및 프로그래밍 방식 API를 포함하여 다양한 파일 제출 방법을 제공한다. 파일형식에 따라 해당 파일을 분석한 결과를 보여주기도 한다. 가령 안드로이드용 어플리케이션 파일(APK 파일)을 올리면 권한, 액티비티, 서비스, 서명, 압축파일 속 포함된 파일의 이름 등을 알 수 있다.
최대 70가지 이상의 각기 다른 바이러스 검사 소프트웨어 제품을 사용하며 여러 개의 백신 엔진으로 검사한 결과를 투명하게 보여준다. 여러 개의 파일 검사도 가능하다. 단점으로는 제출한 파일만 검사할 수 있다는 것으로, 사용자 컴퓨터의 전반적인 시스템 검사를 수행할 수 없다. 또, 전자 메일을 통하여서나 직접 이 사이트에 올릴 수 있 있는 파일 크기가 최대 650MB라는 점도 또다른 제한이라고 할 수 있다.
바이러스 토탈은 기초 분석 도구이다. 기초 분석은 정적 분석의 범주에 들어가지만 분석 보고서를 작성하거나 분석 프로세스를 따를 때는 구분하여 작업을 세부적으로 구체화시킨다. 즉, 개념 상 기초 분석은 정적 분석과 크게 다르지 않지만 바이러스 토탈을 사용하는 것을 기초 분석으로 나누어 이후 분석 과정에서 다른 도구들을 사용하는 정적 분석, 동적 분석 단계와 구분하는 것이다.
2. Virustotal 사용 시 주의사항
중요 정보 및 파일 유출에 주의해야 한다.
바이러스 토탈 분석 결과를 얻으려면 일반적으로 파일을 등록하거나 IP, URL 등을 입력해야 한다.
파일을 바이러스 토탈에 업로드 하면 그 파일은 바이러스 토탈의 데이터베이스에 저장이 된다.
검사 시 해당 파일에 대한 검사 결과를 누구에게나 공유한다. 따라서 검사할 때 직접 제작한 바이러스, 기밀정보 및 개인정보를 올리거나 검사를 진행했다간 문제가 발생하니 주의해야 한다.
실제로 기업 기밀 및 개인정보가 그대로 올라오므로 주의해서 사용해야 한다는 보안업계의 경고가 있고 유출사고도 발생한 사례가 있다. 개인정보, 금융정보, 회사의 중요한 정보들은 절대 업로드 해서는 안된다.
압축 파일을 등록하여 검사하는 경우 분석 결과에 주의한다.
압축 파일 같은 경우는 Virustotal에서 압축된 파일 전체를 검사해주는 것이 아니다.
포함된 파일 중에서 가장 위에 있는 파일 하나만 악성 여부를 검사해 결과값을 제공한다.
즉, 압축된 파일의 파일 구조 중간에 악성코드가 있어도 맨 위에 있는 파일이 정상 파일이면, 바이러스 토탈에서 정상으로 처리하는 분석 결과를 줄 수 있다. 압축 파일 업로드하는 것을 지양한다.
분석 시점에 따라 분석 결과가 달라질 수 있음에 주의해야 한다.
바이러스 토탈은 파일을 업로드 할 때 실시간으로 그 파일을 분석하여 결과를 보여주는 것이 아니다.
바이러스 토탈 자체에 처음 업로드 된 파일 같은 경우에는 그 업로드된 시점에 바로 분석을 한 결과를 제공한다.
그러나 과거에 누군가 업로드했던 이력이 있다면, 지금 업로드 했을 때 바로 분석한 결과가 아닌 과거에 누군가가 분석을 했던 그 때의 바이러스 토탈 결과를 그대로 가져온다. 과거의 시점과 현재의 시점의 시간 차이가 크게 난다면 정확한 분석 결과를 얻기 힘들다. 바이러스 토탈 우상단에 새로고침 버튼이 있다. 새로고침 버튼을 누르면 현재 시점으로 새로 분석하여 분석 결과를 제공해준다. 새로 분석하는 과정에는 시간이 소요될 수 있다. 새로고침으로 분석을 갱신하는 주기는 보통 업무/회사마다 다르다. 한달이 될수도 있고 2주가 될수도 있고 분석할 때 마다 갱신할 수도 있고 필요에 따라 갱신한다.분석 결과를 맹신하는 것을 주의해야 한다.
바이러스 토탈에서 제공하는 데이터와 실제 분석에서 얻어지는 결과가 맞지 않는 경우가 있다.
분석 시점과도 연관이 있지만 주된 원인은 바이러스 토탈에서 분석한 당시의 환경 구성(Virustotal의 분석 결과들 또한 분석 과정에서 가상환경을 사용하여 얻어진 것이다.)과 분석 담당자가 직접 악성코드 분석을 시도할 때의 환경이 충분히 다를 수 있기 때문이다. 악성코드는 지금 당장은 행위를 하더라도 시간이 지나면 행위를 하지 않을 수 있고, 또 지금 당장 악성 행위가 없더라도 시간이 지나면 악성 활동을 할 수 있는 것이 특징이고 이것이 잠복기라는 위협으로 여겨지는 것이다.
악성코드 분석 시에는 상태에 대한 변화가 빈번하게 일어날 수 있음을 염두한다.
3. Virustotal 탭 설명
가장 먼저 등장하는 메인 페이지이다.
파일 업로드 및 검사 / URL 제출 및 검사 / 도메인 및 IP 주소, 해시값 검사
FILE, URL, SEARCH 각각의 탭을 통해서 의심스러운 파일, URL, Domain, IP 등을 검사한다.
보안관제 업무에서는 IP, URL 정보를 얻기 위해 바이러스 토탈에서 해당 조회를 수행하는 경우가 있다.
현재 시점으로 악성이 있는지에 대한 여부, 과거에 악성에 대한 이력이 있었는지 유무를 판단하기 위한 목적을 가진다.
SEARCH 탭에서는 도메인 주소와 IP 뿐만 아니라 해시값 검사가 가능하다.샘플 파일이 없는 경우 파일들이 가지고 있는 해시값을 조회를 하면 실제 파일 탭에서 파일을 업로드한 것과 같은 결과를 얻을 수 있다. 단, 과거에 누군가에 의해 업로드 되었던 파일들은 해시값 검색이 가능하지만 한번도 업로드 된 적이 없던 파일은 Virustotal Database 에 해시 정보가 남아있지 않기 때문에 해시값만으로는 분석 결과를 얻을 수 없다.
파일 업로드 등을 통해 검사를 완료하면 분석 결과 페이지가 나타난다.
이 페이지는 DETECTION, DETAILS, RELATIONS, BEHAVIOR, COMMUNITY 와 같은 섹션으로 구성되어 있다.
상단에 업로드한 파일의 이름, 해시 값이 표시되고 바이트 단위로 파일 크기를 알려준다.
우측에 파일이 Virustotal에 업로드된 날짜와 시간을 표시해주고 위에 Reanalyze 버튼으로 분석 결과를 갱신 할 수 있다.
하단에 검출 결과(Detection) 영역에는 Virustotal이 사용하는 다양한 안티바이러스 엔진의 목록이 표시되며 각 엔진의 검사 결과를 확인할 수 있다. 업로드 파일이 악성 파일로 인식된 경우에는 해당하는 악성코드의 이름이나 유형을 표시해준다.
DETAILS 섹션에는 파일의 세부 속성과 추가적인 메타데이터가 제공된다.
파일의 해시값, 형식, 크기, 히스토리, 내부 구조 및 변조 여부에 대한 정보를 파악할 수 있다.
RELATIONS 섹션에는 파일, URL, IP, Domain 간의 연결 관계를 파악할 수 있는 정보들이 있다.
샘플이 상호 작용한 리소스와 연결 기록들을 보고 다른 위협 요소를 판단하거나 어떤 관련성을 가지는지 확인한다.
Behavior 섹션은 악성코드 또는 샘플 파일이 실행되었을 때 어떤 행동을 하는지, 즉 시스템과 네트워크에서 어떤 영향을 미치는지 보여준다. 파일 생성 및 변경 이력, 프로세스 실행 및 동작, 레지스트리 조작, 네트워크 연결 등 다양한 기록을 살펴보고 악성코드의 정체와 목적을 파악하고 방어 전략을 수립하는 것에 도움을 받을 수 있다.
이외에도 Community (커뮤니티), Graph (그래프), Votes (평가) 등등의 탭이 있다.
Detection과 Details, Behavior 를 확인해 악성 여부 판단과 유형 파악, 동작 분석을 하고 Relations 에서 연관된 위협 요소를 파악한다. 이후 Community 등을 참고해 사용자 의견(평판)을 체크하여 신뢰성을 조금 더 검증한다.
그러나 앞에 주의할 점에서 다루었던, Virustotal 결과 맹신하지 않기를 항상 염두해야한다.
마무리
이번 시간에는 바이러스 토탈에 대해 알아보았습니다.
기초분석 단계에서 바이러스 토탈을 이용해 얻은 정보로 이후 정적 분석, 동적 분석의 방향을 설정하는 것이 중요합니다.
그러나 분석 과정 전체를 두고 바이러스 토탈 결과에 의지하는 것보다는 원활한 분석을 돕는 기반으로 사용하는 것이 더욱 좋은 접근이 되겠습니다. 즉, 바이러스 토탈을 통해 샘플을 파악을 하면서도 중요한 것은 주의사항을 잊지 않는 것이죠!
다시 한 번 주의사항을 살펴보며 이번 시간 마치도록 하겠습니다. 감사합니다!
VirusTotal 사용 시 주의할 점
중요 정보 및 파일 유출이 발생하지 않게 한다.
압축 파일을 등록하여 검사하는 경우 가장 위에 파일만 분석한 결과가 나온다.
분석 시점에 따라 분석 결과가 달라질 수 있다. 새로고침 버튼을 사용하자.
분석 결과를 맹신하는 것을 주의해야 한다.'네트워크 Network > 보안' 카테고리의 다른 글
10. 악성 코드 샘플 분석 - 환경 설정 (1) 2024.12.30 09. 악성 코드 분석 - 정적 분석, 동적 분석과 도구들 (1) 2024.12.29 07. 보안관제에 대한 간단한 이해와 정리 (1) 2024.11.29 06. 정탐, 오탐, 미탐, 악성코드 대표적 유형 (0) 2024.10.29 05. Firewall, DDoS, IDS, IPS의 특징 및 차이점 (1) 2024.10.28