* 악성코드
- 사용자의 의지와 관계없이 시스템에 상주해 시스템 자원을 사용하거나 사용자에게 피해를 입히는 프로그램을 총칭
* 악성코드의 종류
유형 | 종류 |
Virus | 다른 파일을 감염해 기생하는 악성코드 (Virut, sality) |
Worm | 네트워크를 통해 자가 복제 및 타 시스템을 감염시키는 악성코드 (Wannacry, Blasterworm 등) |
Trojan | 외형적으로는 정상 프로그램 같아 보이지만 시스템 파괴 등의 악의적인 행위를 포함하고 있는 악성 프로그램 |
Downloader | 추가적인 악성코드를 다운로드 받아 실행하는 악성코드 |
Dropper | 추가적인 악성코드를 생성하고 실행하는 악성코드 |
Backdoor | 시스템에 상주하면서 서버로부터 명령을 받아 명령에 따른 악성행위를 수행하는 악성코드 |
Rootkit & Bootkit | 시스템에 설치되어(부팅시) 특정 악의적인 프로세스나 파일 등의 흔적을 사용자가 볼 수 없도록 하는 악성 프로그램 |
Ransomware | 컴퓨터 상의 파일을 악의적으로 암호화하여 이를 복호화 하는 것을 인질로 하여 금전적인 이득을 취하기 위하여 작성된 악성 프로그램 |
Spyware | 사용자의 동의 없이 설치되어 개인 및 컴퓨터에 대한 정보를 무단으로 수집하여 유출하는 목적의 악성 프로그램 |
Adware & PUP | 특정 소프트웨어에서 광고를 보여주기 위해 만들어진 악성 프로그램으로 광고에 따른 수익을 그 목적으로함 |
-> 악성코드가 고도화되고 복잡해지면서 대분류가 흐려진 경우가 많음
* 악성코드 감염 경로
유형 | 감염 경로 설명 |
SpearPhishing | 조직 내 특정 개인, 또는 그룹을 대상으로 이메일 내 악성 문서나 파일, 링크를 첨부해 전달하는 공격 |
Software | 외부 접점이 있는 서버 또는 탈취한 계정을 통한 내부 시스템 접근 후 악성코드 유포 |
Watering Hole | 특정 대상이 주로 방문하는 사이트에 악성 스크립트를 심어 악성코드 감염 |
Supply Chain Attack (공급망 공격) |
내부 시스템에 침투해 개발단계의 소스코드에 악성코드 삽입 후 배포 |
* 악성코드 분석
1. 파일/네트워크 시그니처
1.1. 악성 파일을 식별할 수 있는 파일의 탐지 로직
- 시그니처 기반 탐지 로직 : 악성코드의 문자열, 특징, 함수, 코드 모양 등을 기반으로 파일을 탐지하는 방식
- 시그니처 : 특정하게 나타나는 파일/행위의 특징
1.2. 악성 파일을 식별할 수 있는 네트워크 IP 및 도메인 / 통신 형태
- 악성 파일을 식별할 수 있는 네트워크 탐지 로직
2. 행위 정보
- 악성 파일 동작시 나타나는 시스템 파일, 레지스트리, 네트워크, 프로세스 정보
3. 위협 행위자
- 공격을 수행한 공격자 또는 공격 그룹 (분석된 내용을 토대로 위협 행위자 도출)
4. 악성코드 분석이란
- 프로그램의 동적&정적 분석을 통해 시스템에 남기는 흔적을 찾고 악성코드의 목적을 파악하는 행위
4.1. 파일 형태 분석
- 파일 타입 : PE, ELF, APK, Power shell, bat, Shell Script
- 패킹여부, 의심스러운 문자열, 사용 API 등
4.2. 정적 분석 : 악성코드를 디버거 또는 디스어셈블러를 통해 코드레벨에서 악성행위를 파악하는 분석법
- 동적 분석된 데이터를 기반으로 코드레벨 분석 수행
4.3. 동적 분석 : 악성코드를 실행하여 시스템에 남기는 흔적들을 모니터링 툴을 이용해 행위를 분석하는 분석법
- Sandbox 에서 실행 및 행위 모니터링
- 네트워크, 프로세스, 레지스트리 행위, 파일 관련 행위 분석
5. 도구의 이해 - 시스템 모니터링 도구
도구 | 설명 |
Process Explorer & Process Hacker | 시스템에서 실행중인 프로세스에 대한 정보 확인 |
TCP View | 1. 현재 시스템의 네트워크 연결 여부를 보여줌 (netstat -na 의 GUI 버전) 2. 네트워크 통신중인 프로세스명, 네트워크 연결여부, 포트 등을 확인 가능 |
Wireshark | 네트워크 연결뿐만이 아니라 시스템에서 발생하는 모든 패킷을 모니터링 |
Process Monitor | All inOne Monitoring |
Autoruns |
* Reverse Engineering 이란
- 리버스 엔지니어링 또는 역공학은 장치 또는 시스템의 기술적인 원리를 그 구조분석을 통해 발견하는 과정
- Code로 이루어진 (Software, Firmware 등) 완성된 제품을 역분석하여 소프트웨어의 동작을 파악하는 과정
- Software 취약점 분석, 악성코드 분석 등의 분야에 주로 사용
* Reverse Engineering 사용처
1. 산업분야
- 경쟁사 제품 및 기술 분석
- 소프트웨어 보안성 테스트 (그레이 테스팅)
- 문서가 존재하지 않는 소프트웨어 분석 등
2. 학술/보안 분야
- 악성코드 분석
- 소프트웨어 취약점 분석
3. 불법
- DRM, S/W 암호화 해제
- S/W 불법 크랙/키젠 생성
출처: [KISIA] 악성코드 분석 수업 자료
'SECURITY :: > Security Academy' 카테고리의 다른 글
웹 어플리케이션 보안 개요 - 주요 보안 약점 11가지 (0) | 2024.05.02 |
---|---|
디도스 공격유형 (0) | 2024.04.17 |
IPSEC VPN과 SSL VPN의 이해 (0) | 2024.04.15 |
보안관제 수행을 위한 세가지 원칙 (1) | 2024.04.15 |
8~11일차 - 주요통신기반시설점검 01~03 (0) | 2024.03.10 |
댓글