[컴퓨터 보안] Malware


Malware

Malware란 피해자의 데이터, 애플리케이션 또는 운영 체제의 기밀성, 무결성 또는 가용성을 손상시킬 목적으로 시스템에 일반적으로 은밀하게 삽입되는 프로그램을 말한다.

Malware와 관련된 용어들

  1. Adware
  2. Attack kit
  3. Auto-rooter
  4. Backdoor(Trapdoor)
  5. Downloaders
  6. Drive-by-Download
    사용자가 특정 웹사이트에 접속하였을 때 사용자도 모르게 malware가 download되도록 하는 해킹기법
  7. Exploits
  8. Flooders(DoS client)
  9. Keyloggers
  10. Logic bomb
    특정 날짜나 시간 등 조건이 충족되었을 때 악의적인 function이 유발할 수 있게 만든 코드의 일부분
  11. Macro Virus
  12. Mobile code
  13. Rootkit
  14. Spammer programs
  15. Spyware
  16. Trojan horse
  17. Virus
  18. Worm
  19. Zombie, bot

Malware의 특징들

  1. 전파 매커니즘
    • 바이러스에 의한 감염, 이후 다른 시스템으로 확산
    • 웜에 의한 소프트웨어 취약점 악용 또는 drive-by-download에 의한 악성 프로그램의 복제를 허용
  2. Payload action
    • 시스템 또는 데이터 파일의 손상
    • 서비스 도난/시스템을 봇넷의 일부로 attack agent로 삼음
    • 시스템/키로그에서 정보 도난
    • 그 시스템에 몰래 존재하고 숨어있음

Viruses 구성요소

  1. 감염 메카니즘
    • 바이러스가 퍼지거나 전파되는 수단
    • 감염 벡터라고도 함
  2. Trigger
    • payload 활성화 또는 전달 시기를 결정하는 이벤트 또는 조건
    • logic bomb이라고도 함
  3. Payload
    • 바이러스가 하는 일(확산)
    • noticeable한 activity로 damage를 수반함

Virus의 단계들

  1. Dormant phase(휴면기)
    • 바이러스가 자고 있으나 특정 조건에 의해 언젠가는 활성화되며 모든 바이러스가 이러한 휴면기를 갖지는 않는다.
  2. Triggering phase
    • 바이러스는 의도했던 기능을 수행하기 위해 활성화된다.
    • 다양한 시스템 이벤트에 의해 발생할 수 있다.
  3. Execution phase
    • 기능이 수행되며 무해하거나 해로울 수 있다
  4. Propagation phase
    • 바이러스는 자신의 복사본을 다른 프로그램이나 디스크의 특정 시스템 영역에 저장한다.
    • 각 감염된 프로그램은 스스로 전파 단계에 들어가는 바이러스의 복사본을 포함할 것이다.

Propagation

  • Propagation Strategy
    • 공격하려는 기계가 블랙리스트에 포함되지 않았는지 확인(하드코딩된 목록 사용)
      1. 디버깅 SW 사용하는 지 확인
      2. MS 홈페이지에 접속 시도
      3. C&C 서버에 연결
  • VM을 감지해서 MS office나 MS가 설치되어 있는지 확인한 후 있다면 word 문서를 연다.

Virus Classifications

  • 타겟에 따른 분류
    • Encrypted virus: 바이러스의 일부가 암호화 키를 생성하고 바이러스의 나머지 부분을 암호화한다.
    • Stealth virus: 안티 바이러스 소프트웨어에 의한 탐지로부터 자신을 숨기도록 설계된 바이러스
    • polymorphic virus: 모든 감염에 따라 변이하는 바이러스
    • metamorphic virus(변성 바이러스): 매번 반복될 때마다 스스로 변하고 rewrite하며 행동과 외관을 바꿀 수 있는 바이러스
  • 은폐에 따른 분류
    • Boot sector infector: master boot record 또는 boot record를 감염시키고 바이러스가 저장된 디스크에서 시스템을 부팅할 때 확산된다.
    • File infector: OS 또는 shell이 실행 가능한 것으로 간주하는 파일 감염

시스템이 디스크에서 부팅될 때 마스터 부팅 레코드 또는 부팅 레코드 및 스프레드

  • Macro Virus: 응용 프로그램에 의해 해석되는 매크로 또는 스크립팅 코드로 파일 감염
  • Multipartite virus: 여러 방법으로 감염

Macro/Scripting Code Viruses

  • 1990년대 중반에 매우 흔했으며, 플랫폼 독립적이고 문서(코드의 실행 가능한 부분이 아님)를 감염시키고 쉽게 퍼졌다.
  • MS Office 애플리케이션의 매크로 기능을 활용하며, 최근 제품들은 이러한 것들에 대응해 protection을 포함하고 있다. 더 이상 주요 바이러스 위협이 되지 않는다.

Worms

  • 감염시킬 더 많은 컴퓨터를 적극적으로 찾아내고 감염된 각 시스템은 다른 컴퓨터에 대한 공격을 위한 자동화된 실행 패드 역할을 하는 프로그램으로 클라이언트 또는 서버 프로그램의 소프트웨어 취약점을 악용한다.
  • 네트워크 연결을 사용하여 시스템에서 시스템으로 전파할 수 있으며 공유 미디어를 통해 확산(USB 드라이브, CD, DVD 데이터 디스크)할 수 있다.
  • 활성화되면 worm은 복제되고 다시 확산된다.
  • Metamorphic - Polymorphic - Ultrafast Spreading - Multi exploit -Multiplatform

Worm Replication

  • 전자 메일 or 메신저 -> 첨부 파일 열 때 주의
  • 파일 공유 -> 공유 폴더 사용 금지, 공유 폴더 암호 설정
  • 원격 접속 및 원격 서비스 -> 사용할 때 주의

Social Engineering

  1. Spam
  2. Trojan horse
  3. Mobile phone trojans

Payload - System Corruption

  1. Data Destruction
    • Chernobyl Virus: 트리거 날짜에 도달하면 실행 파일을 감염시키고 전체 파일 시스템을 손상시킨다.
    • Klez: Windows 95부터 XP 시스템을 대상으로 감염시키는 대량 메일링 웜, 트리거 날짜에 하드 드라이브의 파일이 비어 있음
    • Ransomeware
  2. Real-World damage
    • 물리적 장비에 손상을 입힌다.(체르노빌 바이러스는 BIOS 코드를 다시 씀)
    • Stuxnet worm: 발전소, 댐, 조립라인 등 대규모 산업시설을 감시하고 운영하는 산업제어시스템을 대상으로 하는 컴퓨터 웜이다. ex) 이란 핵시설 공격

Bots

다른 인터넷 연결 컴퓨터를 넘겨받아 공격을 시작하거나 관리하기 위해 해당 컴퓨터를 사용한다.

  • Botnet: 조정된 방식으로 작동할 수 있는 봇의 집합
  • Bot master
  • C&C servers: 감염된 좀비 PC(bot)가 해커가 원하는 공격을 수행하도록 원격지에서 명령을 내리거나 악성코드를 제어하는 서버

Countermeasures against botnets

  • 봇넷을 방어하기 어려운 이유
    • 탐지하기 어려우며, 웜/바이러스, 백도어, 스파이웨어, 루트킷 등의 다양한 기능을 가지고 있다.
    • 일반 사용자의 PC에서 봇이 감염됨
    • 일반 IP 주소 사용(스푸핑된 IP 주소가 아님)
    • 적은 수의 공격 패킷 생성(대부분의 시간 동안 악의적인 활동이 없음)

Botnet operations

  • 봇넷 구성 요소
    • Network protocols: IRC, HTTP, P2P, …
    • Bot master가 명령을 C&C서버를 통해 전달
  • C&C 서버 접속하는 방법
    • 하드코딩된 IP사용
    • DNS를 거쳐서 접속
  • Bot과 Worm의 차이
    • Worm은 스스로 복제하고 확산되는 반면, Bot은 중앙 시설에서 제어한다.
  • 원격 제어 기능을 구현하는 일반적인 방법은 IRC 서버
    • 봇이 이 서버의 특정 채널에 가입하고 수신 메시지를 명령으로 처리
    • 최근의 봇넷은 HTTP와 같은 프로토콜을 통한 은밀한 통신 채널을 사용
    • 분산 제어 메커니즘은 단일 장애 지점을 방지하기 위해 P2P 프로토콜을 사용

Keyloggers and Spyware

  1. Keylogger: 공격자가 중요한 정보를 모니터링할 수 있도록 키 입력을 캡처하며, 일반적으로 키워드(“login”, “password”)에 가까운 정보만 반환하는 필터링 메커니즘을 사용함
  2. Spyware: 시스템의 광범위한 활동(검색 기록 및 내용 등)을 모니터링하며 특정 웹 페이지 요청을 가짜 사이트로 리디렉션하기도 한다. 브라우저와 특정 관심 웹 사이트 간에 교환되는 데이터를 동적으로 수정한다.

Phishing

  • 신뢰할 수 있는 소스의 통신으로 가장하여 사용자의 신뢰를 활용하기 위해 social engineering을 활용한다.
    • 은행, 게임 또는 유사한 사이트의 로그인 페이지를 모방한 가짜 웹 사이트로 연결되는 URL을 스팸 이메일에 포함시킨다.
    • 사용자가 계정을 인증하기 위해 긴급한 조치가 필요함을 나타낸다.
    • 공격자는 캡처된 자격 증명을 사용하여 계정을 악용한다.
  • spear-phishing
    • 공격자는 수신자를 주의깊게 조사한다.
    • 전자 메일은 수신자에게 적합하도록 만들어지며, 종종 전자 메일의 신뢰성을 확신시키기 위해 다양한 정보를 인용한다.
  • Voice phishing
  • Messenger Phishing
  • SMS Phishing(Smishing)
  • Email phishing(phishing sites)

    Backdoor

  • Trapdoor라고도 한다.
  • 공격자가 액세스 권한을 얻고 보안 액세스 절차를 무시할 수 있는 프로그램의 비밀 진입점을 말한다.
  • maintenance hook은 프로그램을 디버깅하고 테스트하기 위해 프로그래머들에 의해 사용되는 백도어이다.
  • 애플리케이션의 백도어 제어를 위한 운영 체제를 구현하기 어려움

Rootkit

  • 시스템에 대한 은밀한 액세스를 유지하기 위해 시스템에 설치된 숨겨진 프로그램 집합
  • 자신 또는 다른 소프트웨어의 존재를 가림과 동시에 허가되지 않은 컴퓨터나 소프트웨어의 영역에 접근 가능하도록 설계
  • 공격자에게 관리자(또는 루트) 권한을 부여합니다.
    • 프로그램 및 파일 추가 또는 변경, 프로세스 모니터링, 네트워크 트래픽 송수신, 요청 시 백도어 액세스 가능
  • System call table 변경

  • Rootkit Classification Characteristics persistent / memory based / user mode / kernel mode / virtual machine based / external mode

Cold Boot Attacks

  • 메모리 잔상 특성을 이용하여 메모리에 저장된 암호키 탈취
  • DRAM이나 SRAM 같은 메모리는 전원 공급이 끊어져도 짧은 시간이지만 일정 시간 동안 저장된 값이 사라지지 않고 보존된다.

Web Attacks

  1. Browser-related Attacks
  2. Web server Attacks
    • IFRAME pointing to an exploit server(Drive-by-Download)
    • SQL Injection attacks
    • Redirection via .htaccess .htaccess example google, yahoo와 같은 사이트를 접속하려 하면 RewriteRule에 해당하는 사이트로 리디렉션함
  3. Cross Site Scripting (XSS)
    • 웹 애플리케이션 보안의 일반적인 문제
    • 서버 쪽 웹 응용 프로그램의 결함으로 인한 결과(공격자가 임의 HTML을 삽입할 수 있음)
    • 스크립트 삽입 방법(이상한 데이터 삽입 또는 다른 위치로 이동)
  4. Fake anti-virus scanners/codecs/video players
  5. Key-logging

Malware Countermeasure Approaches

  1. Policy
  2. Awareness
  3. Vulnerability mitigation
  4. Threat mitigation

위와 같은 prevention이 실패하면, 다음과 같은 위협 완화 옵션이 있다.

  1. detection
  2. identification
  3. removal

Generic Decryption (GD)

  • anti-virus 프로그램이 빠른 검색 속도를 유지하면서 복잡한 polymorphic 바이러스와 다른 malware를 쉽게 탐지할 수 있도록 한다.
  • 실행 파일은 다음 요소를 포함하는 GD 스캐너를 통해 실행됩니다.
    • CPU emulator
    • virus signature scanner
    • 에뮬레이션 제어 모듈
  • GD 스캐너에서 가장 어려운 설계 문제는 각 해석을 실행할 기간을 결정하는 것이다.

Host-Based Behavior-Blocking Software

  • 호스트 컴퓨터의 운영 체제와 통합되고 악성 액션에 대한 프로그램 동작을 실시간으로 모니터링합니다.
  • 시스템에 영향을 미치기 전에 잠재적으로 악의적인 작업을 차단합니다.
  • 소프트웨어를 실시간으로 차단하여 fingerprinting이나 heuristics와 같은 바이러스 탐지 기술보다 유리하다.
  • 그러나, 악성 코드가 대상 시스템에서 실행되어야 모든 동작을 식별할 수 있기 때문에 악성 코드가 탐지되고 차단되기 전에 피해를 일으킬 수 있습니다.

Perimeter Scanning Approaches

  • 일반적으로 조직의 방화벽 및 IDS에서 실행되는 전자 메일 및 웹 프록시 서비스에 포함된 바이러스 방지 소프트웨어
  • 또한 IDS의 트래픽 분석 구성 요소에 포함될 수 있습니다.
  • 의심스러운 트래픽의 흐름을 차단하는 침입 방지 조치를 포함할 수 있습니다.
  • 접근 방식이 악성 프로그램 검사로 제한됨
  1. Ingress monitors 엔터프라이즈 네트워크와 인터넷 사이의 경계에 위치하며 사용되지 않는 로컬 IP 주소로 들어오는 트래픽을 찾는 것이다.
  2. Egress monitors 엔터프라이즈 네트워크와 인터넷 사이의 경계뿐만 아니라 개별 LAN의 송신점에 위치하며 나가는 트래픽에서 검색 또는 기타 의심스러운 동작의 징후를 모니터링합니다.

Worm Countermeasures

  • 바이러스의 대응책과 상당히 유사함
  • 일단 웜이 기계에 상주하게 되면, 바이러스 퇴치 소프트웨어가 그것을 탐지하고 제거하는데 사용될 수 있다.
  • 주변 네트워크 활동 및 사용 모니터링이 웜 방어의 기초를 형성할 수 있음
  • 웜 방어 접근 방식에는 다음이 포함됩니다.
    • signature based worm scan filtering
    • filter based worm containment
    • payload classification based worm containment
    • threshold random walk (TRW) scan detection
    • rate limiting
    • rate halting

Digital Immune system

Digital Immune System

Worm Countermeasure Architecture

Worm Countermeasure Architecture

Android Malware detection

  • DREBIN: lightweight한 분석으로 스마트폰 장치에서 직접 런타임에 static analysis를 기반으로 한다.
  • DroidAPIMiner: 설치 시간에 API level analysis하며, critical한 API call(malware에 주로 사용되는)에 집중함, static analysis임
  • MADAM: 커널 레벨 및 사용자 레벨에서 안드로이드 모니터링

    Malware Analysis

  • Static Analysis vs. Dynamic Analysis
    • Static Analysis: 실행 없이 악성 프로그램 이진 분석, 모든 이진 코드 분석 가능, 다양한 분석 접근법이 있고 문제도 있음
      • Features: file type, size, header info, APIs…
      • 접근법
        • 명령 빈도 분석
        • 제어 흐름 그래프(CFG) 분석
        • 시스템 호출 호출 순서 분석
        • 블록 유사성 분석
        • 악성 프로그램 시각화

다양한 Packing Techniques: Polymorphic & Metamorphic Worms 대부분의 worm들이 packing technique이 적용되기 때문에 동적 분석 기법으로 분석해야 한다.

  • Dynamic Analysis:
    • Analysis Envrionments
      • FTP server: Malware Samples & Execution Traces
      • Analysis server: Extract execution traces using the Pin tool
      • Monitor machine: Remote command interface
  • Frequency Analysis(opcode Frequency)
    • Dynamic Opcode Frequency: basic block들과 특정 인스트럭션의 반복
    • Redundancy Filtering: 블록의 개수 비교
  • Malware Visualization

    Reverse Engineering

    기계, 시스템 등의 아키텍처, 기능, 작동 등을 분석하여 새로운 아이디어를 추가하고 문제를 해결하는 것. 일반적으로 static analysis를 통해 정보를 얻고, dynamic analysis를 통해 code 분석을 한다.

Patch and Crack

  • Patch: 프로세스의 실행 파일 또는 메모리 내용을 변경하는 작업 예) Windows 업데이트

  • Crack: 패치와 유사한 개념이나, 목적은 불법이고 비윤리적이다. 보통 저작권을 침해하기 위해 사용된다.