악의적인 목적의 코드, 악성코드(Malicious Code)

    악성코드(malicious code)의 개념


    - 정보유출, 금전적 이익 등 악의적인 목적으로 작성되어 컴퓨터 사용자의 승인없이 컴퓨터에 침투하거나 설치되어 악성행위를 수행하는 프로그램

    - 악의적인 목적을 위해 작성된 실행 가능한 코드의 통칭으로 자기 복제 능력과 감염 대상 유무에 따라 바이러스, 웜, 트로이목마 등으로 분류




    악성코드의 최근 트렌드



    악성코드의 유형




    1) 호스트 프로그램 의존형

    - 악성코드 독립적으로 실행 불가능

    - 정상적인 프로그램에 은닉하여 사용자가 인식하지 못하는 사이 실행


    2) 호스트 프로그램 독립형

    - 악성코드 자체로 실행 가능한 실행코드로써 복제를 통한 전파 방법 사용

    - 운영체제에 독립적인 프로세스로 스케쥴되고 실행




    호스트 프로그램 의존형


    트랩도어(Trap door), 백도어(backdoor)

    뒷문이라는 뉘앙스에서 알 수 있듯이 해커들이 침입하기 쉬운 악성코드이다. 해커들이 고의로 만들 수도 있고, 서비스 기술자나 유지보수 프로그래머들이 실수로 만들어 놓은 허점을 뜻한다. 해커들이 고의로 만든 경우는 해킹을 한 후, 추가적인 공격을 하기 위해서 고의로 만들어 놓은 데몬같은 프로그램을 뜻할 수도 있다.


    트랩도어나 백도어를 탐지하기 위해서는 일반적으로 포트를 스캔하거나, 사용하지 않는 프로세스를 체크하여 공격을 탐지한다.



    논리폭탄(Logic Bomb)

    정상적으로 작동하는 프로그램에 로직을 숨겨서 일정한 조건이 맞으면, 실행이 되는 프로그램이다. 주로 무차별적으로 공격을 하며, 자료나 SW를 파괴하거나, HW를 파괴하는 형태로도 공격할 수 있다.



    트로이 목마(Trojan Horse)

    가장 많은 유형의 악성코드 중 하나로 논리폭탄이 해커의 우월함 혹은 재미등으로 인해서 공격을 한다면, 트로이 목마는 목적을 위해서 만들어진 악성코드이다. 그리스 트로이목마 사건처럼 정상적인 SW 내부에 악성코드를 삽입하여, 프로그램이 실행될 때 작동을 하여 계정 탈취, 파일 삭제, 권한 변경 등 악의적인 목적으로 공격을 한다.



    바이러스(Virus)

    바이러스에는 종류가 많지만, 일반적으로 수많은 파일들의 코드를 변형하여, 작동을 하지 못하게 하는 것을 뜻한다. 바이러스라는 이름처럼 확산 속도가 매우 빠르며, 한번에 수천, 수만개의 파일을 변형시켜서 프로그램을 망가트린다.



    호스트 프로그램 독립형


    웜(Worm)

    네트워크 연결을 이용하여 자신의 실행코드를 복제하는 바이러스 유형의 악성코드이다 일반적인 바이러스와 차이점은 다른 프로그램에 자신을 삽입하지 않는다는 것이다.



    좀비(Zombie)

    DDoS(분산 대규모 거부 공격, Distribute Denial of Service) 공격으로 너무나도 유명한 좀비PC라는 말을 들어봤을 것이다. 일반적인 프로그램이나 동영상등에 프로그램을 은닉시키고, 해당 프로그램을 실행시키면 에이전트를 자동으로 설치하여

    해커의 전유물로 만들어 버리는 악성 프로그램이다.


    파일 공유 사이트 같은 곳에서 동영상이나 프로그램에 좀비 코드를 은닉하여, 배포하는 방식으로 감염시킨다


    사용자는 자기도 모르게 디도스 공격용으로 사용이 되어 지거나, 최근에는 비트코인(bitcoin) 발굴을 위해서 사용이 되기도 한다. 자신도 모르는 사이에 CPU의 점유율이 매우 높게 올라가거나, 네트워크 트래픽이 높아지면, 좀비 에이전트를 의심해야 한다.



    위에서 나열한, 악성코드는 일반적으로 뒤에 바이러스라는 말을 붙이지만, 정확히는 악성코드라는 말이 맞는 말이다. 물론, 정해진 것이 없이 백신 SW업체에서 이름을 붙이기 나름일 수도 있지만, 위 유형이 대표적인 유형이다.



    악성코드 탐지기법


    악성코드를 탐지하기 위한 방법은 Signature 기반 탐지 방법과 같이 이미 알려지거나 분석이 완료된 악성코드를 탐지하는 방법과 행위 기반 탐지 방법 및 유사도 분석을 통한 탐지 방법과 같이 아직까지 알려지지 않거나 기존 악성코드의 변종을 탐지하는 방법으로 분류


    시그니처 기반탐지


    - 악성코드 분석을 통해 추출한 특정 문자열 Signature를 데이터베이스화하고, 악성코드 검사 대상이 되는 파일 내에 해당 문자열의 존재 유무를 판단함으로써 악성코드를 탐지

    - 악성코드의 특정 부분이나 고유한 부분이 검사 대상이므로 오탐지(FalsePositive) 및 미탐지(False Negative) 최소화 


    행위 기반탐지


    - 트리맵(Treemap)과 스레드 그래프(Thread Graph)를 이용하여 시각적 리포트 생성

    - 기존의 알려지지 않은 악성코드 및 변종 악성코드에 적용 

    - 시스템 내에서 악성코드의 실행으로 인해 파일, 레지스트리가 새로 생성되거나 무결성(Integrity)이 파괴되는 경우, 새로운 프로세스가 생성되는 경우, 네트워크 연결 및 데이터 전송으로 인해 트래픽이 발생하는 경우에 대하여 모니터링하고 악성코드의 악성행위를 판단


    유사도 분석 기반탐지


    - 악성코드의 소스코드가 존재하지 않는 상황에서 유사도를 분석하여 악성코드를 탐지하기 위한 방법들로는 제어 흐름 그래프를 이용한 방법, 함수의 길이를 이용한 방법, 함수 호출 그래프를 이용한 방법 등을 이용한

    바이트 레벨 파일 분석 방법 등이 연구


    댓글

    Designed by JB FACTORY