□ 악성코드의 정의 및 유형
■ 악성코드(Malware)란
○ 악성 소프트웨어의 줄임말로 악성프로그램이라고 불리기도 한다. (정보통신망법 제48조)
○ 악의적인 목적으로 프로그램 및 스크립트 제작 등의 모든 코드를 총칭한다
○ 소프트웨어가 실행될 수 있는 모든 기기에서 실행이 가능하다
■ 악성코드 개발의 목적
○ ex) 국가 안보위협 및 사회혼란 야기, 산업기밀 탈취, 금전적 이득, 자기 과시욕이 강한 해커의 관심유도, ...
■ 피혜사례: 관계자 내부 컴퓨터 해킹 후 미국 송유관 해킹, 워너크라이, 대학병원 등
■ 악성코드 유형
○ 2010년 이전에는 주로 바이러스나 웜으로 통칭했다면 최근에는 발생 행위에 따라서 명칭을 지정한다
분류 유형 | 악성코드 종류 | 주요기능 |
악성코드 행위에 의한 분류 | 바이러스 | 네트워크로 공유된 컴퓨터를 포함한 컴퓨터 프로그램이나 실행영역을 변형해서 복제하는 프로그램 |
스파이웨어 | 사용자 환경의 브라우저 정보, 시스템 정보, 뱅킹 정보 등을 탈취하는 악성코드 | |
트로이목마 | 정상프로그램으로 위장하여 악의적인 공격코드의 실행을 유도하는 악성코드 | |
웜 | 네트워크를 통해서 전파되면서 자가복제를 통해 네트워크 트래픽에 영향을 미치는 악성코드 | |
악성코드 목적에 의한 분류 | 백도어 | 하드웨어 및 펌웨어, 소프트웨어 등에 비정상적인 인증과정으로 원격에서 접근 가능한 악성코드로 비인가된 인증과정을 통해 원격으로 명령어 실행 및 보안프로그램 우회등의 재침입 경로로 활용 |
다운로더 | 시스템에 접근하여 권한을 획득한 후 추가 악성코드를 다운로드하는 목적으로 사용되는 악성코드 | |
인포스틸러 | 시스템정보 및 뱅킹, 브라우저 등 감염된 시스템의 정보를 수집하는 악성코드 개인의 경우 정보 탈취 및 금전피해 유발, 국가 및 조직의 경우 민감정보 탈취가 주요 목적 |
|
랜섬웨어 | 파일이나 드라이브를 암호화해 복호화를 빌미로 금전을 요구하는 악성코드 초기에는 암호화 기능망 수행했으나 정보 탈취 및 DDoS등 다중협박 전략으로 피해자를 압학하여 협산금액을 높이는 형태로 발전 |
|
루트킷 | 관리자 권한인 루트 권한을 갖게하는 킷으로 프로세스나 레지스트키를 숨기거나 삭제할 수 없도록 하는 악성코드 |
■ 사이버 킬체인이란
○ 사이버 공격을 각 단계 별 위협 요소의 파악 및 공격 방법 정의 분석 모델
○ 공격 단계를 미리 예측해 공격 효율성을 낮추고 피해 최소화 목적
단계 | 단계 별 공격 행위 |
정찰 | 이메일 크롤링, SNS, 사회공학적 기법 -IP, 포트 스캔(nmap 등) |
제작 | 악성코드 생성, Tojan 결합 등 -다양한 언어로 개발 |
전달 | 이메일, 웹, 터미널을 통한 악성코드 전파 -해킹메일(URL, 첨부파일), SSH 터널링(Putty) |
취약점 공격 | 웹, OS, APP 취약점을 확인 -웹 프록시, Exploit Kit 이용 |
설치 | 악성 프로그램 설치 |
명령 & 제어 | 네트워크 통해 원격제어 |
행동 | 시스템 장악 후 목적 달성 |
■ 트로이 목마(Trojan)
○ 정상 프로그램이나 파일로 위장 후 보안망을 뚫고 사용자 시스템에 침투함
○ APT(Advanced Persistent Threat) 공격에 주로 사용함
○ ex) 정보 탈취, 시스템 암호화, 봇넷활용 등
■ 백도어
○ 정상적인 인증 우회하여 시스템 내부를 침투함
○ 공격자가 언제든지 시스템에 침투할 수 있도록 비밀 통로 개설 역할을 함
○ 로그를 남기지 않는 것이 특징
○ ex) 원격 접근, 자동 실행. 정보 유출, 백도어 악성코드를 이용한 원격제어
● 공격자가 웹사이트, 이메일 등 다양한 경로를 통해 정상 파일 위장 실행을 유도함
● 피해자가 위장 파일 실행 시 PC가 악성코드에 감염됨
■ 에드웨어
○ 사용자의 동의없이 화면 내에 광고가 노출되는 행위
○ 광고를 게시해 수익을 얻는 것이 목적
○ 프로그램 설치과정에서 동의를 구한 후 자동으로 설치함
○ 앱 페이지 접속시에 상단 또는 하단에 광고 배너가 표시됨
■ 스파이웨어
○ 사용자의 동의없이 개인정보를 수집, 모니터링하는 행위로 특정대상을 타겟팅 후 은밀한 방식으로 악성코드를 설치
○ ex) 키보드 입력, 인터넷 사용기록, 신용카드 정보 등을 이메일, SNS 등의 경로를 통해서 설치유도
■ 랜섬웨어
○ 컴퓨토 파일을 암호화 후 금전적 보상을 요구하는 행위로 기기 취약점을 통해서 침투해 볼륨 쉐도우 카피 정보가 손상됨
○ ex) 전자메일, 문자, 웹사이트 등 다양한 수단을 사용함
■ 피싱
○ 사기메시지로 사용자를 속이는 행위로 경계심을 낮춘 후 개인정보 탈취 및 협박을 함
○ 전자메일, 문자, 웹사이트 등 다양한 수단을 사용함
■ 스피어피싱
○ 특정 대상을 정해서 사기 메시지로 사용자를 속이는 행위로 마찬가지로 다양한 수단을 사용함
○ 피싱과는 달리 특정한 대상을 타겟으로 함
■ 취약점 공격
○ 타겟장비가 가지고 있는 취약점으로 침투하는 행위
○ 취약점 공격 성공 시 엑세스 확보 및 시스템 제어
○ ex) 시스템 제어, 원격 코드 실행, 추가 악성코드 삽입 등
□ 악성코드 분석 방법론
■ 정적 분석 정의
○ 악성코드를 실행하지 않은 상태에서 분석
○ 헤더 정보와 내부 문자열, 실행 압축 여부, 등록 정보 등을 통해 동작 파악
○ 디스어셈블러를 이용해서 내부 코드와 구조를 확인 후 연관성을 파악함
■ 동적 분석 정의
○ 악성코드를 직접 실행하여 행위 관찰
○ 파일, 레지스터리, 네트워크 등 확인해서 동작 행위를 분석함
○ 디버깅을 통해 코드의 흐름과 메모리 상태를 직접 확인함
◎ 정적 분석
■ 컴파일 정보 확인
○ 악성코드의 개발언어를 확인함
○ 다양한 OS 환경에 맞춤형 실행파일로 익성코드를 제작함
○ 모든 파일에는 시그니처(=magic number)가 존재함
■ 실행압축(packing) 여부를 확인
○ 개발자 코드를 역으로 분석하지 못하게하기 위한 목적
○ 악성코드 ㅔ작자가 악성코드 분석을 방해하기휘해 자신만의 알고리즘으로 압축함 ex) UPX, VMProtect, Thimida
○ 분석가는 실행압축을 확인하고 오픈소스 등을 활용해 압축해제 후 분석함
■ 문자열(String) 확인
○ 악성코드 Binary를 ASCII로 변환시에 가독성있는 문자열을 확인
○ 어떤 행위를 할것인가에 대한 사전 예측 시 중요 단서가 될 수 있음
○ 최근 실행 압출, 프로텍터 등은 문자열 마저 보호되어 분석을 방해함
■ 파일 무결성 확인
○ 정상 파일로 위장한 악성코드인지 확인이 필요함
○ 암호화 알고리즘(MD5, SHA, AES, ...) 통해서 파일 고유 식별 정보를 확인함
○ 악성코드 Database 내 공통 식별하기 위해서 사용함
■ 지속성 유지 확인
○ 악성코드가 일회성인지 지속적으로 동작하는지 확인이 필요
○ 일반적으로 지속성 유지를 위한 행위를 내제하고 있음
○ Autoruns 통해서 시작프로그램, 작업스케줄러, 서비스 등 지속성 유지 행위를 확인 가능
* PEStudio 활용
- 윈도우 실행파일 전용 정적 분석 도구
- 평판 사이트 결과, 문자열, hash 값, PE구조 등 정보 확인 가능
- 윈도우 OS용 악성코드는 전세계의 약 65% 비중을 차지함
* Thunderbird 활용
- 메일 샘플링 후 공격자 정보, 악성코드 유포지, 악성파일 등 확인 가능
- 전세계의 악성코드 약 80% 이상 전자메일 통해서 유포함
◎ 동적분석
■ 프로세스 변화 관찰
○ 모든 악성코드 행위에는 프로세스가 동작함
○ 시스템 내 발생하는 실시간 프로세스 변화에 대해 분석이 필요함
○ 부모와 자식 프로세스 연결고리, 코드 인젝션, 명령어 실행 등
* Process Explorer 도구 활용
■ 파일 시스템 변화 관찰
○ OS 내 현재 동작 중인 파일 상태 실시간으로 확인
○ 기존 파일 수정, 삭제 또는 파일 새로 생성 등
○ 악성코드 실행 후 파일 시스템 내 변화를 체크하는 것이 중요함
■ 레지스트리 변화 관찰
○ 시스템 레지스터리 조작해서 원하는 정보를 입력가능
○ 중요 레지스터리 삭제 후 보안 설정 우회 등 다양하게 활용이 가능함
○ 악성코드 주요 레지스터리 변경 여부 확인이 중요함
■ 네트워크의 변화 관찰
○ 최근 악성코드는 정보 수집 및 추가 파일 업로드 위해 네트워크를 이용
○ 공격자 서버(=C&C서버) 통신 실시간 확인이 필요함
○ 피해자 정보 외부 유출, 악성파일 추가 다운로드 등 네트워크 행위를 확인
* Process Monitor 도구 활용
■ API 실행변화 관찰
○ API(Application Programing Interface)는 응용프로그램 제어 가능 인터페이스 집합
○ 악성코드 실행될 때 사용되는 API함수가 확인 가능
○ 수많은 API 함수가 존재하고 기능 확인이 필요할시 MSDN에서 API함수 이름으로 조회함
◎ 역공학 분석
■ 저급언어(어셈블리어) 영역에서 악성코드를 역으로 분석하는 기법
■ 악성코드 기능을 상세히 분석해 확인이 가능
■ 역공학 분석 방지를 위해서 프로젝트, 패킹, 로더 등 다양한 분석으로 분석가를 방해함
□ 분석환경 구성 및 도구 실습
■ 가상환경(Hyoervisor)의 이해
○ 소프트웨어로 실제 컴퓨터 환경처럼 이미지 파일 구성
○ 하드웨어 리소스를 적절히 분리해 하나의 OS에서 여러개의 OS 사용이 가능 (멀티부팅과는 다른개념)
○ 악성코드를 분석하기 위해 다양한 OS 환경 구축이 중요
■ 가상환경 구성
○ 호스트 PC내 가상 소프트웨어를 다운로드해 설치하고 OS를 버전별로 다양하게 설치함
○ 악성코드 구동이 가능한 취약한 환경을 구성
● OS패치 미적용 && 안티바이러스 미설치/윈도우 디펜더 기능을 해제
○ 분석가 입맛에 맞게 악성코드 분석도구를 세팅함
○ 모든 과정을 마치면 기본 스냅샷을 저장함
● 악성코드 분석과정에서 실행전/중/후 모든 과정에서 스냅샷 습관들이기
□ 악성코드 전파 과정
■ 전자메일을 통한 공격 과정
○ 메일 서비스를 통해 메일 수신자에게 직/간접적인 피해를 유발함
○ 최근 사이버 공격 방식 중 가장 높은 비중을 차지
○ 사회공학적 기법을 이용한 API 공격임
○ 악성파일을 첨부해 악성코드 설치를 유도함 (매크로(워드), OLE기능(HWP), 실행파일(.exe) 등)
■ 홈페이지를 통한 공격과정
○ 사용자들이 자주 접속하는 웹페이지 내 악성코드를 삽입해 공격
○ 공격 대상자들이 자주 접속하는 홈페이지 내 악성코드를 삽입함
○ 정상 자바스크립트 라이브러리(iQuery)에 은밀히 C&C 서버 접속 코드를 삽입함
○ 피해자의 PC 내 정상 언어 프로그램 설치 후에 맞춤형 스크립트를 실행함
○ 최종적으로 키보드 입력, 브라우저 쿠키, PC의 IP정보 등 다양하게 정보 탈취
■ 공급망을 통한 공격 과정
○ 공급망(=패치 서버 등)에 침투 후 공격 대상자들에게 패치 위장 파일을 유포함 ex) 소프트웨어 개발 과정 오염, 코드 서명 인증서 탈취, ...
□ 최근 악성코드 동향
■ 드롭퍼(Dropper) 공격방식
○ 실행파일 내에 악성코드가 포함되어 있는 공격 방식 (↔ Loader)
○ 내부에 악성코드가 압축된 형태로 되어있어 안티 바이러스 탐지가 어려움
○ 주로 동적 분석 과정에서 샘플링 후 분석이 가능함
■ 파일리스(Fileless) 공격방식
○ 안티 바이러스와 같은 보안 장비를 우회하기 위한 공격방식
○ 파일이나 흔적이 남아있지 않아서 분석이 어려움
○ 악성코드가 주로 메모리에 존재해 휘발성 데이터 수집 후 분석함
○ VB 스크립트 및 파워쉘 스크립트를 이용해 주로 공격함
○ 시작 프로그램, 작업스케줄러, 서비스 등록 등으로 지속성 유지가능함
■ 문서형 APT 공격방식
○ 악성코드 실행파일(.exe)가 아닌 문서파일(.hwp, .doc, .xlsx 등)로 유포함
○ 문서 내부 동작 매커니즘으로 악성코드가 동작하는 방식
○ 주로 악성코드를 불러오는 Loader 역할로 활용함
○ 최근 빠른 보안패치로 문서형 악성코드의 비중이 과거 대비 감소함
○ OLE 개체를 이용한 APT 공격은 여전히 활발하게 시도됨
□ 대응방안
- 분석가는 악성코드 분석과정에서 확보한 IoC(Indicator of Compromise) 정보기반 탐지 및 차단 정책을 생성 후 유사 악성코드 추적 관찰함
*IoC: 침해사고 원인분석 과정에서 확인된 IP, 도메인 및 악성파일에 대한 침해지표
■ 탐지패턴 생성
○ 분석과정에서 확인된 공격서버, 페이로드 등 행위를 확인함
○ 탐지 정책 생성 시 최대한 정밀하게 생성함 (오탐률 최소화)
○ Yara/Snort Rule 을 이용해 탐지정책을 생성함
■ 유해정보 차단
○ 분석과정에서 확인된 공격 서버, Hash정보를 차단함
○ 여러번 검증 후에 신중하게 차단정책을 생성함
○ 침해지표(IoC) 정보를 데이터베이스화해서 관리함