시스템 보안 이론 3
익스플로잇
- 개념
- 소프트웨어 또는 하드웨어의 취약점을 악용하여 시스템에 무단 접근
- 공격자가 의도한 동작을 수행하도록 시스템을 조작하는 도구
- 버퍼 오버플로우, 코드 인젝션, 명령어 삽입 등 다양한 기법 사용
- 종류
- 원격 익스플로잇: 원격으로 대상 시스템을 공격하는 공격
- 로컬 익스플로잇: 이미 대상 시스템에 대한 접근 권한을 소유하고 있는 공격자가 권한을 상승시키기 위해 사용하는 공격
- 제로데이 익스플로잇: 아직 패치되지 않은 취약점을 악용하는 공격
페이로드
- 개념
- 익스플로잇 공격 후 대상 시스템에서 실행되는 코드
- 공격자가 원하는 특정 작업을 수행
- 종류
- Meterpreter: Metasploit Framework에서 제공하는 고급 페이로드
- Shellcode: 쉘을 실행하는 페이로드
- Dynamic payloads: 공격 대상 시스템의 환경에 따라 동적으로 생성되는 페이로드
- 특징
- msfvenom을 이용하여 실행파일 (exe, elf 등) 생성
- 다양한 포맷 (exe, elf, dll, python)으로 페이로드 변환 가능
- 아이콘 변경, 리소스 추가 등을 통한 정상 파일로 위장 가능
인코딩
- 개념
- 페이로드를 탐지하기 어렵게 변환하는 기술
- 네트워크 보안 시스템 또는 Anti-Virus 시스템을 우회하는 데 사용
- 종류
- x86/call4_dword_xor, x86/fnstenv_mov, x86/jmp_call_additive 등
- x86/shikata_ga_nai
- 다형성 인코딩 기법으로 실행될 때마다 코드가 변경되어 탐지가 어렵도록 함
- cmd/powershell_base64
- PowerShell 명령어를 Base64로 인코딩하여 텍스트 기반 탐지를 우회
- x86/unicode_mixed
- 유니코드 문자를 사용하여 페이로드를 인코딩
- 필요성
- 침입 탐지 시스템(IDS)과 안티바이러스 소프트웨어는 악성코드 패턴을 기반으로 페이로드를 탐지
- 페이로드를 난독화하면 패턴 기반 탐지를 우회하여 공격 성공률을 높일 수 있음
- 기법 종류
더미코드 삽입
- 의미 없는 코드를 추가하여 분석을 어렵게 함
- 예시:
- 어셈블리 코드 삽입
- NOP 명령어 삽입
- 조건문 및 루프 추가
코드 변형
- 코드의 순서를 변경하거나 함수 호출 방식을 바꾸는 등 다양한 방법으로 변형
- 예시:
- 명령어 순서 변경
- 레지스터 변경
- 함수 호출 방식 변경
문자열 암호화
- 페이로드 내 중요 문자열을 암호화하여 탐지를 우회
- 예시:
- 간단한 XOR 암호화
- Base64 인코딩
- 암호화 라이브러리 활용
다형성 코드
- 실행될 때마다 코드가 변하는 폴리모픽(다형성) 코드 생성하여 탐지를 우회