악성코드 분석 도구와 네트워크 징후
정적·동적·메모리·네트워크 분석의 관찰 대상을 구분하고 결과의 한계를 판단합니다.
시스템보안에서 다룬 악성코드의 상세 실행·운영체제 내부 구조를 반복하기보다, 여기서는 도구가 보여 주는 정보와 네트워크 징후를 연결한다.
1. 안전한 분석 환경
악성 의심 File은 운영 PC에서 실행하지 않는다.
- 원본은 보존하고 Hash를 기록한 뒤 복사본으로 분석한다.
- 동적 분석은 격리된 VM·Sandbox와 통제된 Network에서 수행한다.
- 실제 계정·인증서·개인정보를 분석 환경에 넣지 않는다.
- 분석 후 Snapshot 복원이나 재구축으로 환경을 초기화한다.
2. 분석 도구의 구분
| 구분 | 직접 확인하는 내용 | 대표 도구 유형 |
|---|---|---|
| 정적 분석 | Hash·File Type·문자열·Header·서명 | Hash·Metadata·문자열·Pattern 검사 도구 |
| 동적 분석 | Process·File·Registry·Service·Task 변화 | Sandbox·Process Monitor 등 시스템 관찰 도구 |
| Memory 분석 | 실행 중 Process·Module·Connection 흔적 | Memory Forensic 도구 |
| Network 분석 | DNS·IP·Port·Protocol·Packet·Flow | Wireshark·tcpdump·Network Log |
| 자동 분석 | 여러 Engine과 Sandbox의 요약 결과 | Antivirus·자동 분석 Service |
도구 이름이나 탐지 건수보다 무엇을 관찰했고 무엇을 관찰하지 못했는지를 함께 판단한다.
3. 정적 분석 도구
악성 의심 File을 실행하지 않고 다음 정보를 확인한다.
- Hash: 동일 File 식별과 Reputation 조회
- File Type·Header: 실제 형식과 구조 확인
- Strings: URL·Domain·File Path·명령어 후보 확인
- Digital Signature: 서명 주체와 유효성 확인
- Antivirus·YARA Pattern: 알려진 특징과 일치 여부 확인
Hash·서명·문자열 하나만으로 악성 여부를 확정하지 않고 다른 분석 결과와 결합한다.
4. 악성코드 유형과 네트워크 징후
- Virus: 다른 File이나 실행 영역에 기생해 사용자의 실행 등을 계기로 확산한다.
- Worm: Network를 통해 스스로 확산할 수 있다.
- Trojan/RAT: 정상 File처럼 위장하거나 원격 제어 기능을 제공한다.
- Spyware: 사용자 활동·정보를 몰래 수집한다.
- Ransomware: File을 암호화하거나 System 사용을 방해하고 금전을 요구한다.
- Backdoor: 정상 인증 절차를 우회하는 접근 통로를 만든다.
- Bot: C2의 명령을 받아 DDoS·Spam·추가 Download 등을 수행할 수 있다.
- Rootkit: Process·File·Connection 등 흔적을 숨기는 기능을 포함할 수 있다.
주기적 DNS·외부 Connection, 비정상 Port, 새 Service·Task, 대량 File 변경, 보안 기능 변경은 후보 징후이며 단독으로 악성코드를 확정하지 않는다.
5. 자주 틀리는 설명
- 전자서명이 유효하면 안전한 파일이다. → 서명자와 무결성을 지지할 뿐 악성 여부를 보증하지 않는다.
- 서명이 없으면 악성코드다. → 정상 내부 도구·개발 빌드도 미서명일 수 있다.
- Hash가 위협 정보에 없으면 안전하다. → 새로운 File·변종·재포장 File일 수 있다.
- 문자열에 Domain이 있으면 실제로 접속한다. → 미사용 Data·Decoy·Example일 수 있다.
- Port 443 연결은 정상 HTTPS다. → 실제 Protocol·Process·Destination·Certificate·행위를 확인한다.
- 암호화 Traffic은 분석할 수 없다. → Payload가 보이지 않아도 Endpoint·시간·크기·목적지 Context를 분석할 수 있다.
- 주기적 통신은 모두 C2다. → Update·Monitoring·Health Check와 구분해야 한다.
- Sandbox에서 행위가 없으면 실제 환경에서도 행위하지 않는다. → 조건·시간·Network·환경 차이로 미관찰될 수 있다.
스스로 확인하기
개념 확인 문제
문제를 누르면 바로 아래에서 정답과 해설을 확인할 수 있습니다.
01파일의 문자열에 도메인이 있으면 실제로 그 도메인에 접속했다고 볼 수 있는가?
정답 및 해설
아니다. 정적 문자열은 사용 가능성의 단서다. 실행 관찰과 DNS·패킷·로그 등으로 실제 통신을 확인해야 한다.
02샌드박스에서 악성 동작이 관찰되지 않으면 안전한가?
정답 및 해설
단정할 수 없다. 실행 조건·시간·네트워크·환경 차이로 동작이 나타나지 않았을 수 있어 다른 분석 결과와 함께 판단한다.