iohyeon 2020. 9. 28. 12:48

I. Malware(악성 코드)

: 사용자, 컴퓨터, 네트워크에 해를 끼치는 모든 소프트웨어

ex) Virus, Trojan horse, Worm, Rootkit, Scareware, Spyware

→ 악성코드 형태에 상관없이 분석 목적에 따라 분석 기법이 다름

 

II. 악성 코드 분석

   i. 목표

      : 네트워크 침입 대응에 필요한 정보를 알아내기 위함, 정황 및 감염된 시스템과 파일 파악

   ii. 목적

      : 의심스러운 특정 Binary가 하는 행위, 네트워크에서 탐지하는 방법 및 피해 범위 측정

   iii. 분석

      : 전체 분석이 필요할 경우 네트워크 상에서 악성코드 감염을 탐지할 수 있는 Signature 개발

      : Host 기반 Signature, 흔적(악성코드가 생성하거나 변조한 파일 및 레지스트리에 생성한 특정 변경 사항)으로 악성 코드 자체보다 시스템에 가한 행위와 동작 원리에 초점 맞춤

        ∵ 형태를 변경하거나 하드 디스크에서 자신을 삭제하는 악성 코드 탐지에 효과적

      : 네트워크 트래픽 모니터링을 통해 악성 코드를 탐지할 때 Network Signature(악성 코드 분석 없이 생성도 가능은 함, 높은 탐지율, 낮은 오탐율) 사용

      : 악성 코드 행위 추측 후 가설 확인

 

III. 악성 코드 분석 기법

   i. 정적 분석

      : 악성 코드 실행하지 않고 분석

      > 기초 정적 분석

         : 실행 파일 조사(명령어 보지 x)

         : 파일의 악성 여부 확인, 기능 정보, 간단한 네트워크 시그니처(기능 정보 이용)

         : 직관적, 신속함, 비효율적, 중요 정보 누락 가능성

      > 고급 정적 분석

         : 명령어 분석

         : 디스어셈블러로 로드해 악성 코드 내부 리버싱

         : 디스어셈블러에 특화된 지식, 코드 구성, Windows OS 개념 요구, 어려움

   ii. 동적 분석

      : 악성 코드 실행하며 분석, 기초와 고급으로 분류

      > 기초 동적 분석

         : 악성 코드 실행 후 감염 흔적을 제거, 유효한 Signature 생성 및 앞의 두 가지를 위해 시스템 행위 관찰

         : 쉬움, 효과적이지 않음, 중요 기능 누락 가능

      > 고급 정적 분석

         : 디버거를 이요해 동작하는 악성 실행 파일의 내부 분석하여 세부 정보 추출

         : 다른 기법으로 알아내기 어려운 정보 획득

 

IV. 악성 코드 유형

: 하나 또는 여러 유형에 속함

   i. Backdoor(백도어)

      : 공격자의 접근을 허용할 목적으로 컴퓨터에 자기 자신을 설치

      : 공격자가 부분 인증이나 무인증으로 접속해 시스템에서 명령어를 실행할 수 있게 함

   ii. Botnet(봇넷)

      : 공격자가 시스템에 접속하게 함

      : 동일한 botnet에 감염된 모든 컴퓨터가 하나의 명령 제어(C&C, Command-and-Control) 서버로부터 동일한 명령어 수신

   iii. Downloader(다운로더)

      : 다른 악성 코드를 다운로드할 목적만으로 존재, 추가 악성 코드를 다운로드하고 설치

      : 공격자가 시스템에 처음으로 접근 권한을 얻으면 설치

   iv. Information-stealing malware(정보 유출 악성 코드)

      : 피해자의 컴퓨터에서 정보를 수집해 공격자에게 전송

      : 주로 이메일이나 온라인 뱅킹같은 온라인 거래의 접근 권한을 얻고자 할 때 사용

      ex) 스니퍼, 패드워드 해시 수집기, 키로거

   v. Launcher(실행기)

      : 다른 악성 프로그램을 실행할 때 사용

      : 시스템의 상위 권한이나 은폐를 위해 다른 악성 프로그램 실행 시 이전 기법과 다른 기법 사용

   vi. Rootkit(루트킷)

      : 다른 코드 내에서 자신의 존재를 숨기도록 설계

      : 공격자의 원격 접속을 허용하고 피해자의 코드 탐지를 어렵게 만들기 위해 backdoor 등의 타 악성 코드와 함께 사용

   vii. Scareware(스케어웨어)

      : 시스템이 악성 코드에 감염됐다거나 그들의 소프트웨어를 구매해야 제거할 수 있다고 감염된 사용자가 무언가를 구매하도록 겁을 줌, 실제로는 구매하면 스케어웨어 삭제만 실행

      : 안티바이러스나 다른 보안 프로그램으로 가장한 사용자 인터페이스 가짐

   viii. Spam-sending malware(스팸 전송 악성 코드)

      : 사용자의 장비를 감염시켜 스팸 코드를 전송하는 데 이용

      : 공격자는 스팸 전송 서비스를 판매하는 악성 코드로 수익을 얻음

   ix. Worm(웜)/Virus(바이러스)

      : 자기 자신을 복제해 추가로 컴퓨터를 감염

 

   > 공격 대상 - 불특정 다수

      : 가능한 한 많은 시스템 감염, 덜 정교함, 탐지와 방어 용이(보안 소프트웨어의 주 타겟)

      ex) Scareware

   > 공격 대상 - 특정 다수

      : 특정 대상을 노림, 정교함, 탐지와 방어 어려움

      ex) Backdoor

 

V. 악성 코드 분석 규칙

   i. 세부 사항에 집착 x

      → 주요 특징에 초점

      → 까다롭고 복잡한 부분에 직면할 경우 일반적 개요 그리기

   ii. 여러 가지 도구와 접근 방식 이용

   iii. 무한한 변화 인지