참고: http://kali-km/tistory.com/entry/악성코드-분류    -악성코드 분류



악성코드란?

악성 행위를 위해 개발된 디바이스 상에서 동작하는 모든 실행 가능한 형태

보통 악성코드라 하면 EXE와 같은 실행파일을 생각할 수 있으나, JS와 같은 스크립트 등의 형태도 존재


악성코드의 목적

사회 기반 시설에서부터 산업 기밀 자료를 탈취하기 위한 특수적 목적

기업 대상 개인 정보 수집변조 및 신분 절도 등을 위한 목적

사회적 이슈인 랜섬웨어와 같은 금전 요구 목적

광고 노출 및 홍보를 위한 목적 등


악성코드 분류

1) 동작에 의한 분류

많은 악성코드가 존재하지만, 동작하는지에 따라 크게 네 가지로 분류 가능


1. Virus

- 프로그램을 통해 감염되는 악성코드

- 바이러스 실행 시 새로운 매개체(파일)를 찾고, 바이러스는 대상의 PE* 구조를 변경하거나 코드를 삽입하는 등의 방식으로 자신이 가지고 있는 악의적인 행위를 다른 파일 또한 하도록 조작

- 일반적 파일들만 감염시키는 것이 아닌 플로피 디스크와 하드디스크 파티션의 VBR, MBR 등을 감염

2. Worm

- 컴퓨터의 취약점을 찾아 네트워크를 통해 스스로 감염되는 악성코드

- 바이러스와 달리 스스로 전달 가능하며, 컴퓨터의 파일만을 손상시키는 바이러스와 달리 네트워크를 손상시키고 대역폭 잠식

3. PUP(Potentially Unwanted Program)

- 대개 악성코드는 사용자가 동의하지 않고 설치되지만, PUP의 경우 사용자의 동의가 포함됨

- 로그인할 때마다 광고하고자 하는 웹 사이트의 바로가기를 바탕화면에 생성하거나, 웹 브라우저의 기본 페이지 변경, 광고 노출 등

4. Trojan

- 트로이 목마도 마찬가지로 공격자가 의도하는 바를 위하여 대상을 속인 다음 실행되었을 경우 숨겨져 있던 기능을 수행

- 바이러스와 같이 다른 파일을 변조하지 않고, 웜과 같이 네트워크를 통한 전파나 자가 복제가 이루어지지 않으며, 마지막으로 PUP와 같이 사용자의 동의가 이루어지지 않았을 때 'Trojan'으로 분류 (네 가지중 가장 많이 사용)


PE*: Portable Executable은 윈도우 운영체제에서 사용되는 실행파일, DLL 등을 위한 파일 형식. PE 포맷은 윈도우 로더가 실행 가능한 코드를 관리하는데 필요한 정보를 캡슐화한 데이터 구조


2) 목적에 의한 분류

1. Downloader

- 다운로드 기능이 있는 프로그램 자체가 악의적인 것이 아님. 악성코드 제작자들은 안티바이러스 제품이 다운로드 기능을 막는 것이 아닌 것을 알기 때문에 이를 이용하는 것으로, 차단되지 않고 존재하고 있는 프로그램을 사용자가 실행하였을 경우 외부로부터 추가적인 악성코드를 받기 때문에 이후의 동작을 위한 목적이라 볼 수 있음

2.  Dropper

- 다운로더가 외부에서 파일을 다운받는 것에 반해 드롭퍼의 경우 자기 자신 안에 존재하고 있는 데이터들을 통해 새로운 파일 생성

3.  Launcher

- 1.2 번이 새로운 파일을 생성하였다 하더라도, 추가적인 악성 행위를 하기 위해선 새로운 파일 또한 실행 되어야함. 그렇기에 이들을 실행하기 위한 기능을 수행

4.5.6.7. Adware, Spyware, Ransomware, Scareware

- Adware는 광고를 이용, Spyware는 패스워드 스틸러나 키로거와 같이 세분화 될 수 있음. Ransomware는 요새 가장 핫한 파일 암호화를 통한 몸값 지불 방식(비트코인 사용), Scareware는 겁주기 위한 목적

8. Backdoor

- '뒷문'의 뜻으로 공급 단계에서나, 시스템 침투 이후 '몰래' 시스템에 들어오기 위한 파일을 심어둠

9. Rootkit

- 루트킷은 컴퓨터에 접근하거나 일반적으로 허용되지 않는 영역에 접근할 수 있도록 설계. 일반적으로 악성코드가 시스템에 설치된 후, 들키지 않고 계속 남아 악의적인 기능을 수행


그 외 봇넷, 익스플로잇 등이 있음....


악성코드의 분석

1.초기 분석

- 수집된 악성코드를 처음으로 분석하는 방법. 따로 실행하지 않고, 그 외형을 보고 분석을 하는 단계


- Virustotal을 이용한 정적 속성 분석


- 패킹 여부 확인


- 언패킹을 통한 문자열 확인


좌측은 UPX로 패킹이 되어 문자열이 전부 보이지 않지만, 오른쪽의 경우 언패킹을 하여 확인 결과, 더 많은 API 문자열을 확인할 수 있다.


위와 같이 악성코드 파일을 실행하지 않고, 파일의 외형이나 간단히 들여다 볼 수 있는 정보들을 이용하여 악성코드의 동작 방식을 유추할 수 있는 단계를 초기 분석이라고 한다.





2.동적 분석

악성코드를 분석환경에서 실행시킨 직후부터 순간순간 시스템의 변화를 분석하는 단계

(네트워크/프로세스/파일시스템/레지스트리 조작 행위들에 대한 분석)



1) 네트워크 행위 확인

  (외부 시스템과의 통신 여부 확인)


Wireshark를 통한 네트워크 행위 확인


TCPView를 통한 행위 확인




2) 프로세스 행위

  (추가로 생성하는 프로세스 존재 여부)

  (프로세스 자가 종료 여부)


Process Explorer를 통한 비정상 프로세스 확인

   -주요 프로세스 확인

   -사용자 관련 프로세스 확인

    (explorer.exe 프로세스 하위에 동작하는 프로세스 확인)

   -의심 프로세스 정보 확인

    (Description, Company Name, Version, TCP/IP, Strings )



Process Monitor를 통한 boot logging 확인

   - 프로세스 상관관계 분석

   - 인젝터 존재유무 확인

   - 은닉 프로세스 확인

   - 의심 프로세스 행위 분석

    (e.g. 지속적인 DNS Cache DATA 초기화, 특정 폴더 복사 등)


3) 파일시스템 행위 (위 내용들을 통해 해결 가능)

- 추가 파일 dropping 여부 확인

- 파일 삭제 및 조작 여부 확인



4) 레지스트리* 조작 행위
   (
레지스트리*: 시스템, 애플리케이션과 사용자와 관련된 환경설정 정보 및 각종 프로파일링 정보를 담고있는 일종의 데이터베이스)

- 레지스트리의 자동실행 관련 포인트 조작 여부 (~~\Services\, ~~\Runs, ~~\SSODL )


Autoruns를 통한 자동실행 지점 확인







3.정적 분석

정적 분석은 악성코드 파일을 디스어셈블하여 세부적인 동작을 분석하는 단계


ollydbg를 통한 메모리 분석


ida를 통한 정적 분석



이번 포스팅에는 국가에서 지원하는 k-shield  인력 양성 프로그램에 대해 소개하고자 한다.

너무 좋았던 프로그램이기에 다른 사람들도 많이 지원 및 인증을 하면 좋을 것 같아 설날 연휴임에도 불구하고 포스팅을 하고자한다.

작년에 취득한 내용을 기반으로 작성하기 때문에 올해 시행하는 것과는 다소 차이가 있을 수 있다.

작년 교육을 신청하였을 때 궁금한 것이 너무 많았으나 자료가 많이 없었던 기억이 있어 누군가에게는 도움이 되면 좋겠다. 


https://academy.kisa.or.kr 에 접속하면 k-shield  인력 양성 프로그램이 있다.
(사전평가 1번, 1차 평가 3번, 2차 평가 3번 총 7번의 시험...)


올해에도 작년과 비슷하게 4월부터 7월까지 1차가 실시된다.


1차 교육은 월,화,수,목,금 모든 요일에 교육이 진행되며 평가가 3번이 있다.


작년에는 3월 17일 사전 평가를 실시하였다. 총 시간은 14:30분에서 15:10분 총 40분동안 시험을 실시하였다.

평가 문항 및 시간: 30문항 40분

장소: 서울시 서초구 서초대로 플래티넘타워


나는 작년에 매주 금요일반으로 수업을 하였다. KISA에서 실시하는 교육은 좋은게 교재, 필기구, 중식이 모두 무료이다 ^^... 더 좋은건 매번 풍부한 과자를 제공해주어 수업시간에 계속 과자를 먹을 수가 있다... 지금 생각해보면 작년 교육기간동안 먹은 과자의 양은 내 평생 먹은 과자와 비슷하지 않을까...라는 생각을 조심스럽게 해본다..


사전 평가 1주일 후 메일이 왔다.. 



나중에 들은 소리인데 나름 경쟁률이 높다고 하였는데 이는 뭐 확인하는 방법이 없으니 자축하면 될 듯하다..


1차 교육

총 13회차동안 교육이 진행이 된다.

일정 및 입과 안내서가 있지만 그대로 올리기에는 찜찜한 면이 있어 대략적으로 텍스트로 적을까한다.

- 보안 사고사례 동향

- 정보보호 컴플라이언스

- 시스템 공격

- 웹 취약점 분석 및 공격

- 악성코드 최신 공격 기법

- 네트워크 패킷 분석

- 악성코드 탐지 및 분석

- 침해사고 사례 기반 공격 기법 및 분석


정도로 강의가 진행된다. 물론 평가가 있다.... 총 3번의 평가가 있다. 1차에서 대략 80명은 떨어진다. 1차는 240명정도이며 2차는 160명 정도 교육 대상자이기 때문에 한 반에서 16명정도는 떨어진다고 보면 된다. 나의 경우, 악성코드는 처음 다루었는데 1차교육에는 악성코드가 중요했기 때문에 간당간당했다....


2차 교육



1차 교육에서 합격을 하면 2차 입과 메일이 온다.

대충 1차 교육이 끝나고 1달 정도 이후에 합격 유무를 사이트에서 확인할 수 있으며, 교육은 9월에 진행되기 때문에 한 달 반정도 이후 교육이 진행된다고 보면 된다.

2차 교육은 1차와 달리 거의 실습형으로 진행이 된다.

- 타임라인 분석

- 산업제어시스템 

- 공유기, 스마트홈 등


역시 3번의 평가가 진행된다. 1차는 길어봤자 1~2시간이었는데 2차는 다르다. 심지어 하루 종일 보기도 하였다. 복습이 제대로 이루어진 상태가 아니면 시험시간 8시간동안 괴로움을 맛볼 수 있을 듯 하다...... 실제로 어떤 교육생은 도중 포기를....


2차에서는 대략 40명 정도 탈락이 된다. 탈락한 사람은 단순 수료증만 받게 된다. 나머지 합격한 사람들은 수료+인증서를 받게 되는데 거의 8개월동안 교육이 진행되는데 수료와 인증의 차이는 어마어마하다. 물론 회사에서 수료증만 가지고 간다면 온갖 갈굼을 먹을 수도...


인증식은 12월에 진행이 되었다. 

k-shield 인증자만 참석하는 것이 아닌 정보보호 동아리 회원과 버그바운티 우수 신고자들도 왔다.






나라에서 진행하는 좋은 프로그램

많은 사람들의 인증을 기원하며..

정보보안기사 합격과 k-shield 인증을 시켜준 Kisa에 무한한 감사를 드리며... 

정보보안기사를 검색하면 항상 합격률이 연관 검색어에 출력되는 것을 확인할 수 있다.

https://kisq.or.kr/ 에서 공지사항에는 나오지 않는다. 그 이유는 작성일을 기준으로 업데이트가 되어, 최신글로 출력되지 않기 때문이다.
다만, 공지사항 더보기에서 78번 글을 보면 업데이트 됨을 확인할 수 있다.

해당 게시글은 2017년 1월 6일 기준이다.


 


표를 보면 매년 응시자의 수가 증가하는 것을 확인할 수 있다. 다만, 8회 실기가 쉬웠다는 글이 많았음에도 불구하고 어렵다던 7회 실기보다 8회 실기 합격률이 낮음을 확인할 수 있다.

하지만 합격률은 단지 수치일뿐.....

+ Recent posts