안녕하세요, 보안 꿈나무 여러분! 🌱
지난 시간까지 우리는 정적 분석 도구(PE-bear, Pestudio, Strings)를 사용해 미지의 파일에서 '뼈와 살(메타데이터)'을 발라내는 작업을 했습니다.
- 임포트 테이블(IAT): 이 파일이 사용하는 도구들 (API 함수)
- 문자열(Strings): 파일 내부에 숨겨진 텍스트들 (IP주소, 메시지 등)
하지만 막상 수백 개의 API 함수와 수천 줄의 문자열을 보고 있으면 눈이 빙글빙글 돌기 마련입니다. 😵💫 "도대체 이 조합이 의미하는 게 뭔데?"
바로 이때! 우리의 든든한 조수 생성형 AI(ChatGPT, Claude 등)가 활약할 시간입니다. 우리가 추출한 '원재료'를 AI에게 먹여주면, AI는 방대한 보안 지식을 바탕으로 "이건 90% 확률로 랜섬웨어입니다!"라고 1차 진단을 내려줍니다.
오늘은 추출된 메타데이터를 AI에게 입력하여 악성 여부를 신속하게 판별하는 프롬프트 엔지니어링 실습을 진행해보겠습니다. 🚀

1. 📋 준비물: 우리가 모은 단서들
AI에게 질문하기 전에, 지난 실습에서 얻은 데이터를 정리해야 합니다. 텍스트 파일이나 메모장에 아래 내용이 준비되어 있어야 합니다.
- 주요 API 목록 (IAT): CryptEncrypt, WriteFile, InternetOpen 등
- 의심스러운 문자열 (Strings): readme.txt, http://evil.com, cmd.exe 등
- 파일 기본 정보: 파일 크기, 컴파일 시간 등 (선택 사항)
💡 팁: 모든 문자열을 다 넣을 필요는 없습니다. 너무 일반적인 단어는 빼고, '특이한 것' 위주로 추려서 준비하세요.
2. 🗣️ [실습] AI에게 물어보는 법 (프롬프트 작성)
AI는 훌륭한 분석가지만, 질문이 엉성하면 답변도 엉성합니다. '페르소나(역할)'를 부여하고 구체적인 지시를 내려야 합니다.
아래 프롬프트를 복사해서 여러분의 데이터로 채워 넣으세요!
📝 악성코드 판별 마스터 프롬프트
[역할 부여] 당신은 20년 경력의 악성코드 분석 전문가(Malware Analyst)입니다.
[상황] 나는 의심스러운 윈도우 실행 파일(PE)에서 Import API 목록과 내부 문자열(Strings)을 추출했습니다. 이 데이터를 바탕으로 파일의 악성 여부를 1차 판단하려고 합니다.
[분석 데이터] 1. 주요 Import API 목록:
Plaintext
(여기에 Pestudio에서 추출한 API 목록을 붙여넣으세요. 예: CryptEncrypt, WriteFile...)2. 주요 문자열(Strings):
Plaintext
(여기에 Strings 도구로 추출한 문자열을 붙여넣으세요. 예: Your files are encrypted, .onion...)[요청 사항] 위 데이터를 종합적으로 분석하여 다음 내용을 보고서 형태로 작성해 주세요.
- 악성 의심 확률: (0~100% 사이로 추정)
- 예상되는 악성 행위: (랜섬웨어, 키로거, 백도어 등 구체적 유형)
- 판단 근거 (3가지 이상): API와 문자열의 조합(Combination)을 근거로 설명하세요. (예: API A와 문자열 B가 함께 있으므로 C 행위가 의심됨)
- MITRE ATT&CK 매핑: 관련된 공격 전술/기법 ID를 명시하세요.
3. 🧪 [시뮬레이션] 실제 입력과 결과 예시
자, 실제로 지난 시간 랜섬웨어 샘플에서 추출한 데이터를 넣었을 때 AI가 어떻게 반응하는지 볼까요?
📥 우리가 입력한 데이터 (예시)
- API: FindFirstFile, FindNextFile, CryptEncrypt, CryptGenKey, WriteFile, DeleteFile
- Strings: All your files are encrypted, bitcoin, restore_guide.txt, .locked
📤 AI의 분석 결과 (예시)
🚨 악성코드 분석 결과 보고서
1. 악성 의심 확률: 98% (매우 높음)
2. 예상 유형: 랜섬웨어 (Ransomware)
3. 판단 근거 (Evidence):
- 파일 탐색 및 암호화 조합: FindFirstFile/FindNextFile로 시스템 내 파일을 검색하고, CryptEncrypt API를 사용하여 암호화를 수행하는 전형적인 랜섬웨어 로직입니다.
- 협박 메시지 식별: 문자열 중 "All your files are encrypted"와 "bitcoin"은 사용자에게 금전을 요구하는 랜섬 노트의 핵심 키워드입니다.
- 파괴적인 행위: WriteFile로 암호화된 데이터를 쓰고, DeleteFile로 원본 파일을 삭제하여 복구를 불가능하게 만드는 패턴이 보입니다.
4. MITRE ATT&CK 매핑:
- T1486 (Data Encrypted for Impact): 데이터 암호화
- T1490 (Inhibit System Recovery): 원본 삭제 및 복구 방해
4. ⚖️ 주의할 점: AI 맹신 금지! (오탐 검증)
AI의 답변이 항상 정답은 아닙니다.
- 보안 프로그램의 경우: 백신 프로그램도 CryptEncrypt(자체 보호)나 DeleteFile(치료) 함수를 씁니다. AI가 이를 악성으로 오해할 수 있습니다.
- 패킹(Packing)된 파일: 파일이 압축(Packing)되어 있다면 API가 거의 보이지 않아 AI가 "정상 파일 같습니다"라고 잘못 판단할 수 있습니다. (이럴 땐 "API가 너무 적어서 패킹이 의심됨"이라는 결과를 유도해야 합니다.)
따라서 AI의 결과는 '참고용 1차 소견'으로 활용하고, 확실한 검증은 분석가(바로 여러분!)가 직접 샌드박스 실행 등을 통해 수행해야 합니다.
🎉 마치며: 분석 속도 10배 빠르게!
축하합니다! 👏 이제 여러분은 복잡한 어셈블리어 코드를 다 뜯어보지 않고도, 메타데이터 추출 + AI 상담이라는 콤보를 통해 단 5분 만에 악성코드의 정체를 파악하는 능력을 갖췄습니다.
이 방법은 수많은 의심 파일을 빠르게 분류(Triage)해야 하는 보안 관제 현장에서 매우 유용하게 쓰이는 스킬입니다.
다음 시간에는 이렇게 분류된 악성코드가 실제로 어떤 서버와 통신하는지(네트워크 분석) 파헤쳐 보는 심화 과정으로 넘어가 보겠습니다. 기대해 주세요! 👋
'일반IT > IT보안' 카테고리의 다른 글
| [실습] 악성코드, 딱 걸렸어! 📸 샌드박스에서 실행하고 ProcMon으로 범죄 현장 포착하기 (동적 분석의 시작) (0) | 2025.12.14 |
|---|---|
| [실습] 악성코드의 심장을 찾아라! 🫀 암호화·네트워크 함수 위치 특정 및 코드 정밀 분석 (0) | 2025.12.14 |
| [실습] 랜섬웨어의 뱃속을 들여다보자! 🕵️♂️ 헤더, IAT, 문자열 추출로 배우는 정적 분석 기초 (0) | 2025.12.14 |
| [정리] "AI가 범인이라는데, 진짜일까?" 🤔 AI 분석의 오탐(False Positive)과 인간의 역할 (0) | 2025.12.14 |
| [실습] "이 코드 위험한가요?" 🤖 AI에게 악성코드 판별 맡기고 근거까지 완벽하게 받아내는 법 (0) | 2025.12.14 |