과제 기록

2주차 과제-멀웨어 분석과 리버스 엔지니어링이란?

think3338 2024. 10. 3. 01:13

멀웨어(malware) 분석이란?

  • 멀웨어(malware): 악의적인 목적을 가진 주체가 사용하는 디지털 무기. 기술적으로 보면 악의적인 목적을 가진 소프트웨어를 뜻한다. 흔히 우리가 '컴퓨터가 바이러스에 걸렸다.'라고 표현하는데, 이때의 바이러스가 멀웨어의 한 종류이다.
  • 과거: 주로 금전적 이익을 목적으로 기업이나 정부기관, 은행 등을 공격 ->현재: 더 가치있는 데이터들이 많아지면서 일상의 데이터들이 공격의 타깃이 됨
  • 멀웨어 분석: 멀웨어의 고유한 기능, 목표, 소스 및 잠재적 영향을 연구하는 것

 

  • 멀웨어의 종류 
바이러스(virus) 자기 복제 기능을 가진 멀웨어로, 감염되면 시스템의 다른 정상 파일에 자신을 삽입해 존재한다. 바이러스에 감염된 파일을 실행하면 프로그램은 정상적으로 실행되지만, 백그라운드에서는 바이러스도 함께 실행된다.
웜(worm) 네트워크나 USB와 같은 물리적 수단을 통해 다른 컴퓨터로 확산되고 감염시킨다.
백도어(backdoor) 공격자에게 사용자의 시스템에 무단으로 진입할 수 있는 경로를 제공한다. 예를 들어, 공격자가 열린 네트워크 포트를 생성하면 시스템에 침입할 수 있다.
트로이 악의적인 내용의 소프트웨어가 정상적인 소프트웨어로 위장하여 사용자의 컴퓨터에 설치된다. 
랜섬웨어(ransomeware) 사용자의 시스템을 인질로 잡아, 데이터 해제를 위해 몸값을 요구한다.
RAT 해커가 시스템을 완전히 제어할 수 있는 것으로 일반적으로 관리자가 장애 처리를 위해 시스템에 접근하는 데 사용하는 데스크톱 공유 소프트웨어와 매우 유사하다. RAT은 공격자의 승인없이 시스템에 접근한다. 
봇넷 멀웨어에 감염된 여러 대의 컴퓨터로 구성된 봇 네트워크이다. 중앙 서버에서 제어를 받아 집단으로 작동하며 DOS 공격이나 스팸 전송 등에 이용된다.
스패머(spammer) 악성 사이트 링크가 포함된 스팸 이메일을 사용자의 컴퓨터에서 발송한다. 이메일 클라이언트를 이용해 연락처를 찾아낸 후 이메일을 발송한다. 

 

  • 멀웨어 종류별 사례

-2007-2009년 제우스(Zeus) 트로이 목마: 2007년 러시아에서 처음 개발된 것으로 추정되며, 2009년 하반기부터 북미 지역 등에서 인증서를 훔치거나 금융 시스템에 대한 비인증 온라인 거래를 하는 등의 범죄에 활용되었다. 2011년 소스 코드가 대중에게 공되면서 다양한 형태로 변형되어 현재는 금융 뿐 아니라 개인의 로그인 정보 수집에도 사용될 수 있다.

 

- 한국랜섬웨어침해대응센터 (rancert.com): 렌섬웨어 피해 신고를 접수하고 초기 대응을 지원하며 침해 랜섬웨어 기술을 분석하는 대응센터이다. 예방책도 안내하고 있다.

 

-2022년 6월 Google Cloud DDoS 공격: Google Cloud고객이 최대 4,600만 rps에 달하는 HTTPS DDoS 공격의 표적이 되었다. 이 공격은 130여 개 국가의 5,000여 개 소스에서 발발했다. 후에 Google은 클라우드 CISO라는 배포가능한 완화 조치를 마련하였고 방어 시스템을 업데이트하였다.

 

  • 멀웨어의 특징
  1. 공격대상은 사람, 지역, 정부, 조직, 기업 등 매우 다양하고 다양한 방법으로 표적을 지정할 수 있다.
  2. 멀웨어의 수명은 개발->배포->감염->감염 후 목표 달성으로 이루어지고 난 후에 소스 코드를 배포하기도 한다.
  3. 멀웨어는 환경 변화에 적응하며 안티 멀웨어 제품에 대한 저항력을 높인다. 안티 멀웨어 소프트웨어를 탐지하여 회피하거나 삭제한다. 또한 멀웨어는 안티 멀웨어 제품이나 멀웨어 분석 도구를 사용하면 실제 속성을 숨길 수도 있다.
  4. 이러한 멀웨어는 간단한 시그니처를 통해 탐지될 수 있기 때문에 멀웨어 작성자들은 대량으로 생산하여 변종을 만들어 낸다. 
  • 멀웨어 분석의 중요성
  1. 침입으로 인한 피해 정도 파악 가능
  2. 공격자 식별 가능
  3. 공격의 위험성이나 정교함 분석 가능
  4. 취약성 파악 및 보완 가능



멀웨어 분석의 4가지 단계

  1. 정적 속성 분석: 정적 속성은 멀웨어의 코드 문자열을 나타낸다. 이 분석은 멀웨어를 연구하기 위해 멀웨어를 실행할 필요가 없기 때문에 유용한 정보를 빠르고 쉽게 수집할 수 있다. 
  2. 대화형 동작 분석: 실험싷에서 시행되는 멀웨어와 상호작용하는 보안 전문가가 관련 행동을 관찰하는 것이 포함된다. 멀웨어가 컴퓨터 시스템의 다양한 요소들을 어떻게 사용하는지 더 잘 이해할 수 있다.
  3. 완전 자동 분석: 자동 도구를 이용하여 시스템 내에서 의심되는 멀웨어를 자동으로 스캔한다. 분석 후 네트워크에 연결된 정보나 자산 등의 잠재적 손상을 요역한 보고서를 얻을 수 있다.
  4. 수동 코드 반전: 멀웨어를 구축하는 데 사용되는 코드를 분석하여 작동 방식과 기능을 파악한다. 기술과 시간이 많이 요하는 분석이나 멀웨어에 대한 많은 정보를 얻을 수 있다.
  • 멀웨어 분석 유형
  1. 정적 멀웨어 분석: 멀웨어 코드를 실행시키지 않고 파일 이름, 해시, IP 주소 등을 이용하여 시스템에 해를 끼칠 수 있는 파일을 찾아 악성 라이브러리 또는 패키지 파일을 노출하는 안전한 방식
  2. 동적 멀웨어 분석: 의심되는 위험 코드를 실행할 수 있는 안전하고 격리된 가상 환경인 샌드박스를 사용
  3. 하이브리드 멀웨어 분석: 동적+정적 멀웨어 분석
  • 멀웨어 분석 도구에는 프로세스 해커, 피들러, 리몬 등이 있다.

 

리버스 엔지니어링(역공학) 이란?

  • 일반적인 엔지니어링: 아이디어를 구체화하여 제품을 설계하고 생산
  • 리버스 엔지니어링: 일반적인 엔지니어링 과정의 반대, 즉 생산된 제품을 분해하여 숨은 아이디어를 찾아내고 설계도면을 뽑아낸다.

 

  • 리버스 엔지니어링을 어떻게 소프트웨어에서 사용할까?
  1. 멀웨어 분석만으로는 다양한 방어 메커니즘을 무력화하기 어렵다->멀웨어 코드의 내부 구조를 알아야함
  2. 이때 리버스 엔지니어링을 이용하여 멀웨어를 분석하고 프로그래밍 방법을 이해한다.
  3. 리버스 엔지니어링을 이용하여 불법 복제를 방지하고 악성코드나 해킹으로부터 시스템을 보호할 수 있다.
  4. 기계어나 어셈블리 명령, 디버거 도구 사용법, 어엠블리 코드 등을 이해하고 다양한 고급 프로그래밍 구조를 식별할 수 있어야 한다.
  5. 소프트웨어 리버스 엔지니어링을 위해 IDA Pro나 OllyDbg와 같은 디스어셈블러(disassembler) 도구들이 사용된다. 이 도구들은 어셈블리 언어들을 분석하기 쉽게 하도록 어셈블리 코드로 변환해주며 이 어셈블리 코드는 Hex-Rays, Snowman과 같은 디컴파일러를 통해 더 읽기 쉬운 의사코드로 변환된다. 

 

멀웨어 분석과 리버스 엔지니어링 공부를 하기위해선?

  • 컴퓨터 언어를 알아야 관련 공부가 가능하다. ->C언어나 파이썬 권장
  • 컴퓨터의 운영체제나 시스템, 네트워크에 대한 사전 지식이 있으면 용이
  • 개념도 중요하지만 많은 경험이 중요->클리셰처럼 느껴지도록 하는 것이 필요

 

 

출처:

제우스 트로이 목마 (enigmasoftware.com)

Google Cloud mitigated largest DDoS attack, peaking above 398 million rps | Google Cloud Blog

멀웨어 분석이란? 멀웨어 분석의 유형 및 단계 | 포티넷 (fortinet.com)

쉽게 알아보는 공학이야기 16 – 리버스 엔지니어링 (역공학) (samsungdisplay.com)

<멀웨어 분석과 리버스 엔지니어링>/에이콘/아바짓 모한타/2024