[악성코드분석_리버싱] “보안이 어려운 사용자를 위한” 멀웨어의 보편적인 9가지 유형과 메커니즘
“보안이 어려운 사용자를 위한” 멀웨어의 보편적인 9가지 유형과 메커니즘
이런 유형의 기술적 분류는 쉽게 찾아볼 수 있고 분명히 유용한 측면이 있다. 아무리 인기 있는 용어라도 모든 것을 ‘바이러스’로 뭉뚱그리는 것보다는 다양한 유형으로 감염 벡터를 구분하는 것이 해결 및 방지에 도움 될 것이다. 그러나 지나칠 정도로 구분될 때도 있다.
보안 및 프라이버시 준법감시 평가 기업 쉘먼(Schellman)의 신규 사이버 트렌드 애널리스트 제이콥 안사리는 “90년대와 2000년대 초 악성 소프트웨어 설명에 사용된 용어들은 기술적으로는 여전히 정확할지라도 관련성은 과거보다 떨어질 수 있다. 악성 소프트웨어는 지난 몇십 년간 표적 시스템에 설치된 후 인간의 개입 없이 자동으로 구동되었지만, 최신 공격 캠페인 대부분은 우리가 일반적으로 ‘위협 행위자’라고 부르는 집단이 운용한다. 공격자들은 탐지 회피를 시도하며 집요하게 공격하고 있으며, 다양한 프로그래밍 또는 스크립트 작성 언어를 사용해 적대적인 코드를 생성하고 있다”라고 말했다.
CSO는 안사리와 다른 보안 전문가들에게 악성 소프트웨어의 ‘분류 방법’에 대해 질문했다. 악성 소프트웨어를 분류하는 데는 일반적으로 2가지 관점이 있다. 바이러스의 메커니즘(사용자에게 미치는 영향)과 생태계 내 위치(공격자에게 미치는 영향)다.
컴퓨터 바이러스의 보편적인 9가지 유형
- 매크로 바이러스(macro viruses)
- 다형성 바이러스(polymorphic viruses)
- 거주 바이러스(resident viruses)
- 부트 섹터 바이러스(boot sector viruses)
- 멀티파티 바이러스(multipartite viruses)
- 드롭퍼(dropper)
- 비컨(beacon)/페이로드(payload)
- 패커(Packer)
- 명령 및 제어(Command & Control)
사용자에게 미치는 영향에 따른 바이러스 유형
여러 유형의 악성 소프트웨어에 대한 훌륭한 관점을 얻기 위해 보안 전문가 다비스 슐로스를 만났다. 슐로스는 사이버보안 전문 서비스 업체 ER+C(Echelon Risk + Cyber)의 공격적 보안 책임자로, 실제 위협 활동자를 모방하여 적대적인 에뮬레이션 및 레드팀 참여에 대해 명령 및 제어 플랫폼을 실행하는 악성 소프트웨어를 개발한다. 슐로스는 자신이 다루는 바이러스의 유형을 기능에 따라 분류했다.
매크로 바이러스 : 슐로스는 “이 카테고리는 아마도 세계에서 가장 보편적인 악성 소프트웨어일 것이다. 외부 공격 중 약 92%는 피싱으로 시작되는데, 피싱 공격의 핵심이 바로 매크로다. 매크로는 프로그램이 사용자 개입 없이 할 수 있는 키스트로크 또는 마우스 동작의 자동화된 실행이다. 우리가 일반적으로 이야기하는 마이크로소프트 워드/엑셀 매크로는 워크시트 또는 문서에서 반복적인 작업을 자동화할 수 있다”라고 말했다.
매크로는 매우 보편적인 악성 소프트웨어 유형이다. 슐로스는 “제공 방법이 신뢰할 수 있으며, 업무와 관련된 것으로 보이는 경우 더욱 그렇다. 또한 코딩 언어(마이크로소프트의 경우 비주얼 베이직)는 지나치게 단순화되어 있다. 따라서 매크로 바이러스를 작성하기 위해 필요한 기술 스킬의 양이 적다”라고 덧붙였다.
클라우드 보안 업체 리댁티드(Redacted)의 사고 대응 책임자 로렌 피어스도 이에 동의했다. 피어스는 “단순한 악성 소프트웨어로 인해 지속적으로 상당한 피해가 발생하고 있다. 단순한 오피스 문서 매크로는 초기 감염 벡터로 자리 잡고 있다”라고 지적했다.
다형성 바이러스 : 슐로스는 “매크로 바이러스의 코딩이 가장 쉽지만 다형성 바이러스는 말 그대로 바이러스가 다형성이므로 코딩하기 가장 복잡할 것이다. 소프트웨어가 실행될 때마다 코드가 조금씩 다르게 실행된다. 일반적으로 새로운 기기로 이동할 때마다 코드가 조금씩 달라진다”라고 설명했다.
슐로스는 “모든 자녀 혹은 적을 동등하게 대우해야 하지만 다형성 바이러스 유형은 복잡하며 조사 및 탐지가 극히 어렵기 때문에 가장 좋아하는 유형이기도 하다”라고 말했다.
거주 바이러스 : 파일에 존재하지 않고 알 수 없는 곳에서 나오는 바이러스로 특히 치명적인 유형이다. 슐로스는 “바이러스 자체는 실제로 호스트의 RAM 안에서 실행된다. 바이러스 코드는 이를 호출한 실행 파일 안에 저장되지 않으며, 일반적으로 웹에서 액세스 가능한 사이트 또는 스토리지 컨테이너(Storage Container)에 저장된다. 거주 코드를 호출하는 실행 파일은 일반적으로 안티바이러스 애플리케이션의 탐지를 피하고자 악의적이지 않게 작성된다”라고 말했다.
물론 ‘거주 바이러스’라는 용어는 ‘비거주 바이러스’의 존재를 암시한다. 슐로스는 비거주 바이러스를 ‘호출하는 실행 파일 안에 포함된 바이러스’로 정의한다. 이런 바이러스는 대부분 기업 서비스를 남용하는 방식으로 확산된다.
부트 섹터 바이러스 : 슐로스는 “개인적으로 ‘국가 소속 칵테일’이라 부르고 싶다. 이런 유형의 바이러스는 위협 행위자에게 심층적인 지속성을 지속적으로 제공하는 것을 목적으로 한다. 컴퓨터의 MBR(Master Boot Record)까지 감염시키기 때문에 기기 이미지를 다시 작성하더라도 바이러스가 남아 있으며 부팅 시 호스트의 메모리 안에서 실행할 수 있다. 이런 유형의 바이러스는 국가 소속 위협 행위자 외에서는 잘 목격되지 않으며, 거의 항상 제로데이 공격에 의존해 MBR 레벨에 도달하거나 감염된 USB 또는 하드 드라이브와 같은 물리적 미디어를 통해 확산된다”라고 설명했다.
멀티파티 바이러스 : 일부 악성 소프트웨어 개발자는 한 가지 유형에 특화되어 있을 수 있지만 다른 이들은 앞서 언급된 ‘모든’ 접근방식을 사용해 모든 곳을 한 번에 공격한다. 슐로스는 “일반적으로 억제 및 대응이 가장 어렵다. 이런 유형의 악성 소프트웨어는 메모리, 파일, 실행 파일, 부트 섹터 등 시스템 여러 부분을 감염시킨다. 가능한 모든 방법으로 확산되며, 여러 기법을 구현하여 확산을 극대화한다. 이런 유형의 공격은 점차 증가하는 추세다”라고 말했다.
공격자에게 미치는 영향에 따른 바이러스 유형
맞닥뜨리게 될 악성 소프트웨어에 접근하는 또 다른 방법은 전반적인 공격에서의 악성 소프트웨어의 위치를 파악하는 것이다. 최신 공격 캠페인 대부분은 집단이 운용한다는 안사리의 말을 되새겨보자. 악성 소프트웨어로 배포되는 바이러스 자체도 집단의 일부로 볼 수 있다.
안사리는 “많은 악성 소프트웨어 공격 캠페인은 일련의 구성요소로 이루어져 있다. 이 구성요소는 각각 별도로 개발되거나 심지어 다른 위협 행위자에게 소싱된 것일 때도 있다”라고 말했다. 안사리는 공격자에게 미치는 영향에 따른 바이러스를 다음과 같이 분류했다.
드롭퍼 : 안사리는 “드롭퍼의 목적은 다른 악성 소프트웨어를 감염된 시스템에 침투시키는 것이다. 피해자는 적대적인 링크, 첨부 파일, 다운로드 파일과 같은 경로로 드롭퍼에 감염될 수 있다. 드롭퍼는 다음 단계의 악성 소프트웨어를 침투시키기 전까지만 존재한다”라고 말했다.
피어스의 설명에 따르면, 매크로 바이러스는 드롭퍼 유형에 속한다. 드롭퍼는 추가적인 악성 소프트웨어를 다운로드하여 실행하는 것이 유일한 목적이다.
비컨/페이로드 : 이 유형은 공격의 다음 단계다. 안사리에 따르면, 비컨/페이로드는 새로 설치한 액세스 수단에 대한 신호를 위협 행위자에게 전송하는 악성 소프트웨어로, 드롭퍼가 설치하는 경우가 많다. 공격자는 비컨이 수립한 수단으로 피해 시스템에 액세스할 수 있다. 시스템과 시스템에 포함된 데이터, 네트워크상 다른 시스템에까지 액세스할 수 있다.
패커 : 패커는 다른 구성요소를 패키지화하며, 감지 회피 수단으로 암호 기법을 활용한다. 안사리는 “일부 정교한 악성 소프트웨어 캠페인은 러시아의 목재 인형처럼 배열된 일련의 패커를 사용한다. 각 패커에는 또 다른 패키지화된 항목이 포함되어 있으며, 결국 페이로드가 실행될 수 있다”라고 말했다.
명령 및 제어 : 모든 팀은 리더가 필요하다. 명령 및 제어는 협업적인 악성 소프트웨어 구성요소에 대해 이런 역할을 수행한다. 안사리는 “C&C, CNC, C2라고도 부른다. 피해 환경 밖에서 작동하며, 이를 통해 위협 행위자는 피해 시스템에 설치된 악성 소프트웨어 캠페인의 다른 구성요소와 통신한다. 법률 집행기관은 위협 행위자의 활동을 멈추기 위한 노력의 일환으로 명령 및 제어 시스템을 장악하는 경우가 많다”라고 말했다.
관점에 따라 달라지는 용어와 분류 방식
우리가 사용하는 분류학이 과도하게 경직되어서는 안 되지만, 사이버 위협에 관한 중요한 정보를 더 쉽게 전달할 수 있어야 한다. 즉, 일반 대중에 맞는 언어를 사용하는 것이 중요하다.
보안 업체 싸이리브로(CYREBRO)의 CTO 오리 아벨은 “CISO를 대상으로 글을 쓸 때는 위험 관점에서 생각할 것이다. 하지만 일반 대중은 뉴스에서 보편적으로 사용하는 용어를 더욱 잘 이해한다. 바이러스를 가장 쉽게 이해할 수 있는 관점으로 분류한다고 해도 보안 전문가가 취할 최선의 조치가 모두 전달되는 것은 아니다. 위협 인텔리전스 전문가를 대상으로 쓴 글에서는 바이러스의 실제 기능보다는 지리 위치 및 공격자의 동기와 관련된 용어를 사용할 것이다”라고 말했다.
마지막으로, 바이러스는 바이러스 사냥꾼만 이해할 수 있는 관점에서도 분류할 수 있다. ‘중요한 적이 되는 바이러스’와 ‘그렇지 않은 바이러스’다. 피어스는 “리버스 엔지니어로서 역전의 퍼즐을 즐긴다. 매크로는 네트워크에 상당한 위협을 가하지만, 리버싱이 특별히 재미있지는 않다. 내가 즐기는 것은 반 분석 기법을 사용해 리버싱에 능동적으로 대처하는 리버싱 샘플이다. 악성 소프트웨어는 체크섬(checksum) 또는 시간차 공격 같은 방법으로 디버거(Debugger)를 탐지하고 이에 대응하는 반 디버깅 기법을 사용할 수 있다. 반 분석 기법을 사용한다는 것은 숙련된 작성자라는 뜻이다. 이런 악성 소프트웨어는 샘플을 감지하고 유용한 지표를 추출하는 데 걸리는 시간도 증가한다”라고 말했다.
상대가 범죄자라고 해도 일에 대한 자부심 자체는 얼마든지 존경할 수 있다.
editor@itworld.co.kr
원문보기:
https://www.itworld.co.kr/print/240024#csidx5f76c853fee7f1fa0ce530c446acfad
[출처] https://www.itworld.co.kr/news/240024