발자취
악성코드 03. 데이터 인코딩 본문
1. Malware 인코딩 사용 목적
1. 일반적인 목적: 네트워크 기반의 통신 암호
2. 내부적인 동작 내용을 감추기 위한 목적
- 명령-제어와 같은 설정 정보를 숨기기 위함
- malware에 의해 사용되는 문자열들을 저장하고, 저장된 문자열들이 필요로 되기 직전에 디코드함
- Malware를 합법적인 툴로 속이기 위함 (악의적인 행위를 위해 사용된 문자열들을 숨김)
2. 간단한 암호기법
1. Casesar Cipher
- 로마시대에 사용됨
- 알파벳 문자들을 오른쪽으로 3개 문자만큼 이동하여 암호화함
2. 단일 바이트 XOR 인코딩
- 고정된 바이트 키값을 설정하고, 평문의 각각의 바이트값과 설정된 바이트 키값에 대해서 논리적인 XOR 연산을 수행하여 암호화함
- 단순하고 reversible함
→ 평문 XOR 키값 = 결과값
결과값 XOR 키값 = 평문
3. 무차별 대입 XOR 인코딩
- 고정된 바이트가 가질 수 있는 256개의 가능한 값을 모두 대입하여 XOR 인코드된 값을 디코드함
4. NULL 보존 단일 바이트 XOR 인코딩
- 평문 문자가 NULL 또는 키 그 자체인 경우에, 인코딩을 수행되지 않음
- 평문 문자가 NULL이 아니고 키 자체도 아닌 경우에, 인코딩을 수행함
5. Base64
- 이진 데이터를 ASCII 문자열 포맷으로 나타내는데 사용됨
- E-mail 첨부 인코딩을 위해 개발되었으나, 현재 HTTP, XML에 광범위하게 사용됨
- 이진 데이터를 64개 문자들로 구성된 제한된 문자 셋으로 변환함
- 가장 흔한 문제 셋: MIME의 Base64
- 최초의 62개 값: A-Z, a-z. 0-9 문자 중에서 사용함
- 마지막 2개 값: +, / 문자 중에서 사용함
6. Malware가 간단한 암호기법을 사용하는 이유
- 암호 라이브러리의 큰 용량 때문에 malware는 정적인 라이브러리 연결이 필요함
- 호스트 상에 존재하는 코드에 대한 링크는 이식성을 감소시킴
- 표준 암호 라이브러리는 쉽게 탐지될 가능성이 있음 (AES, RSA같은 애들은 보편화 되어있기 때문)
- 대칭키 암호 알고리즘이 사용된다면, 암호키를 감추는 것이 어려울 수 있음.
'3-2 > 악성코드' 카테고리의 다른 글
| 악성코드 Pre-Lab1. 윈도우즈 메시지 후킹 (0) | 2023.09.29 |
|---|---|
| 악성코드 05. Anti-역공학 2 (0) | 2023.09.29 |
| 악성코드 04. Anti-역공학 1 (0) | 2023.09.18 |
| 악성코드 02. Malware 행위 (0) | 2023.09.18 |
| 악성코드 01. 악성 윈도우즈 프로그램 분석 (0) | 2023.09.18 |