ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 악성코드 분석 방법
    정보 보안/해킹&보안 2019. 2. 23. 23:58

    악성코드 분석 방법 방법

    일반적으로 악성코드를 분석하는 방법은 크게 4가지로 정의합니다.
    자동화 툴을 사용하여 분석하는 자동화 분석,
    파일을 실행 시키지 않은 상태에서 분석하는 정적 분석,
    파일을 직접 실행 시켜 분석하는 동적 분석,
    전체 코드를 직접 리버싱하는 상세 분석이 있습니다.

    악성코드 분석 종류.png

    위 그림에서 보는 것처럼 하위 단계에서 상위 단계로 갈수록 분석의 난이도가 높아진다고 볼 수 있습니다.

    각 분석의 특징과 종류에 대해 알아보겠습니다.

    정적 분석

    정적 분석이란 악성코드를 직접 실행하지 않고 그 자체가 갖고 있는 속성들을 통해 악의적인 여부를 진단하는 방법으로 실행 파일의 행위는 확인이 불가능하지만 속성은 파악이 가능합니다.

    1. 백신 프로그램 진단 확인

    악성코드 분석은 악성 여부를 빨리 판단하여 차단하는 것이 최우선으로 가장 먼저 수행해야 할 것은 백신 프로그램을 통해 악성 여부를 판단하는 것입니다.
    최신 버전으로 업데이트 된 로컬의 백신 프로그램을 사용하는 것도 좋지만 백신 프로그램마다 진단의 차이가 존재하기 때문에 다수의 백신을 통해 진단 서비스를 제공하는 VIrusTotal을 통해 진단하는 것이 더 효과적입니다.

    2. 파일 종류 판별

    악성코드는 파일 종류를 감추기 위해 다른 확장자를 사용합니다. 그러므로 악성코드의 파일 이름에 붙어 있는 확장자가 반드시 해당 파일의 종류를 나타낸다고 볼 수 없기 때문에 확장자만 가지고는 파일의 종류를 판단하는 것은 불가능합니다. 하지만 파일의 종류 별로 자신만의 고유한 시그니처를 가지고 있기 때문에 이 시그니처를 확인하여 파일의 종류를 파악할 수 있습니다.

    3. 파일 구조 파악

    exe, sys, dll 등의 확장자를 가진 파일들은 PE 파일 구조를 가지고 있습니다. PE 구조 확인을 통해 코드에 관한 정보, 애플리케이션의 유형 등 파일에 대한 정보를 알 수 있는데 파일의 구조를 확인하여 악성코드 감염 여부를 확인 해야 합니다.

    4. 실행 압축 확인

    실행 압축은 실행 코드를 알고리즘을 사용하여 압축해 놓은 상태를 의미하며 이러한 것을 패킹(packing)이라고 하고 파일을 실행하면 코드 내의 알고리즘을 사용하기 위한 목적으로 알고리즘을 제작하여 악성코드를 패킹한 뒤 배포합니다.

    5. 문자열 확인

    프로그램에는 에러 메시지, 출력 메시지, 프로그램 처리와 관련된 메시지 등 다양한 문자열이 존재합니다. 이러한 문자열을 가지고 해당 파일의 특성을 판단할 수 있습니다. 특히 악성코드의 경우 제작자의 메시지 또는 악성코드에 관한 힌트가 있을 수도 있습니다.

    6. 파일 비교

    악성코드로 의심되는 경우 다른 시스템의 파일과 비교해보는 것으로 악성코드인지 아닌지를 확인할 수 있습니다. 같은 이름의 파일을 바이너리 상태로 비교했을 때 차이가 있다면 악성 파일에 의한 변조 가능성을 의심해야 합니다.

    동적 분석

    동적 분석이란 악성코드를 직접 시스템에 실행시킨 후 변화를 모니터링하여 행동 패턴을 분석하는 방법을 의미합니다. 실제 악성코드가 실행되기 때문에 가상의 환경에서 테스트하며 분석할 필요가 있습니다.

    1. 프로세스 모니터링

    악성코드의 경우에는 사용자의 조작과 무관하게 지속해서 악성 행위를 수행하게 되며 프로세스 모니터링은 악성코드를 실행시킨 뒤 프로세스의 변화를 살펴보는 것으로 악성코드의 동작을 추축하는 것입니다.

    2. 파일 모니터링

    악성코드는 파일을 생성, 변조, 삭제 시키는데 파일 모니터링은 이러한 파일의 변화를 모니터링 하는 것입니다.
    만약 모니터링을 통해 많은 파일이 변하는 것을 확인한다면 감염을 의심을 해봐야 합니다.

    3. 레지스트리 모니터링

    악성코드는 윈도우 설정을 변경하여 원하는 동작을 수행하는 데 레지스트리 모니터링은 이러한 변경 정보를 수집하여 악성임을 판단하고 치료 정보를 수집할 수 있습니다.

    4. 네트워크 모니터링

    악성코드는 네트워크를 통해 정보를 유출하거나 공격자의 명령을 받고 백도어를 여는 등의 작업을 수행합니다.

    5. 시작 프로그램 모니터링

    악성코드는 레지스트리 값을 조작해서 윈도우 부팅이나 로그인 시에 자동으로 동작을 수행합니다. 자동 실행과 관련된 정보만을 모아서 모니터링을 하게 되면 어떤 레지스트리 값을 조작했는지 알 수 있게 됩니다.

    '정보 보안 > 해킹&보안' 카테고리의 다른 글

    칼리리눅스 설치  (0) 2019.02.24
Designed by Tistory.