본문 바로가기
SECURITY ::/Security Academy

악성코드의 이해

by bbombi 2024. 5. 2.

 

 

 

* 악성코드

 - 사용자의 의지와 관계없이 시스템에 상주해 시스템 자원을 사용하거나 사용자에게 피해를 입히는 프로그램을 총칭

 

* 악성코드의 종류

유형 종류
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] 악성코드 분석 수업 자료

댓글