Post

시스템 보안 이론 3

익스플로잇

- 개념

  • 소프트웨어 또는 하드웨어의 취약점을 악용하여 시스템에 무단 접근
  • 공격자가 의도한 동작을 수행하도록 시스템을 조작하는 도구
  • 버퍼 오버플로우, 코드 인젝션, 명령어 삽입 등 다양한 기법 사용

- 종류

  1. 원격 익스플로잇: 원격으로 대상 시스템을 공격하는 공격
  2. 로컬 익스플로잇: 이미 대상 시스템에 대한 접근 권한을 소유하고 있는 공격자가 권한을 상승시키기 위해 사용하는 공격
  3. 제로데이 익스플로잇: 아직 패치되지 않은 취약점을 악용하는 공격

페이로드

- 개념

  • 익스플로잇 공격 후 대상 시스템에서 실행되는 코드
  • 공격자가 원하는 특정 작업을 수행

- 종류

  1. Meterpreter: Metasploit Framework에서 제공하는 고급 페이로드
  2. Shellcode: 쉘을 실행하는 페이로드
  3. Dynamic payloads: 공격 대상 시스템의 환경에 따라 동적으로 생성되는 페이로드

- 특징

  • msfvenom을 이용하여 실행파일 (exe, elf 등) 생성
  • 다양한 포맷 (exe, elf, dll, python)으로 페이로드 변환 가능
  • 아이콘 변경, 리소스 추가 등을 통한 정상 파일로 위장 가능

인코딩

- 개념

  • 페이로드를 탐지하기 어렵게 변환하는 기술
  • 네트워크 보안 시스템 또는 Anti-Virus 시스템을 우회하는 데 사용

- 종류

  1. x86/call4_dword_xor, x86/fnstenv_mov, x86/jmp_call_additive
  2. x86/shikata_ga_nai
    • 다형성 인코딩 기법으로 실행될 때마다 코드가 변경되어 탐지가 어렵도록 함
  3. cmd/powershell_base64
    • PowerShell 명령어를 Base64로 인코딩하여 텍스트 기반 탐지를 우회
  4. x86/unicode_mixed
    • 유니코드 문자를 사용하여 페이로드를 인코딩

- 필요성

  • 침입 탐지 시스템(IDS)과 안티바이러스 소프트웨어는 악성코드 패턴을 기반으로 페이로드를 탐지
  • 페이로드를 난독화하면 패턴 기반 탐지를 우회하여 공격 성공률을 높일 수 있음

- 기법 종류

  1. 더미코드 삽입

    • 의미 없는 코드를 추가하여 분석을 어렵게 함
    • 예시:
      • 어셈블리 코드 삽입
      • NOP 명령어 삽입
      • 조건문 및 루프 추가
  2. 코드 변형

    • 코드의 순서를 변경하거나 함수 호출 방식을 바꾸는 등 다양한 방법으로 변형
    • 예시:
      • 명령어 순서 변경
      • 레지스터 변경
      • 함수 호출 방식 변경
  3. 문자열 암호화

    • 페이로드 내 중요 문자열을 암호화하여 탐지를 우회
    • 예시:
      • 간단한 XOR 암호화
      • Base64 인코딩
      • 암호화 라이브러리 활용
  4. 다형성 코드

    • 실행될 때마다 코드가 변하는 폴리모픽(다형성) 코드 생성하여 탐지를 우회