analyzing-powershell-script-block-logging
작성자 mukul975EVTX 파일에서 Windows PowerShell Script Block Logging 이벤트 ID 4104를 파싱하고, 분할된 스크립트 블록을 복원하며, 난독화된 명령, 인코딩된 페이로드, Invoke-Expression 남용, 다운로드 크래들, AMSI 우회 시도를 식별해 Security Audit 작업에 활용하는 analyzing-powershell-script-block-logging 스킬입니다.
이 스킬의 점수는 78/100으로, PowerShell Script Block Logging 분석 워크플로가 필요한 디렉터리 사용자에게 꽤 유용한 후보입니다. 범용 프롬프트보다 이벤트와 로그 대상, 탐지 목표가 분명해 추측을 줄여 주지만, 운영 편의성이나 온보딩 정보는 다소 부족하므로 설치 여부를 판단할 때 그 점은 함께 고려해야 합니다.
- 이 스킬은 PowerShell 이벤트 ID 4104 분석에 범위를 좁혀 두었고, 난독화, 인코딩된 명령, IEX 남용, 다운로드 크래들, AMSI 우회 시도 같은 구체적인 탐지 목표를 명시합니다.
- python-evtx를 이용한 EVTX 파싱, 분할된 스크립트 블록 복원, XML 구조와 탐지 패턴을 위한 참고 자료 등 실무적인 워크플로 증거가 포함되어 있습니다.
- 스크립트 파일과 참고 문서는 플레이스홀더 수준이 아니라 실제 구현을 뒷받침하는 자료임을 보여 줍니다.
- SKILL.md에 설치 명령이 없어, 사용자가 안내와 스크립트를 바탕으로 설정 단계와 종속성을 직접 추론해야 할 수 있습니다.
- 리포지토리 증거상 점진적 공개와 제약 조건이 많지 않아서, 더 넓은 SOC 자동화나 비Windows 로그 분석에 쓰려면 조정이 필요할 수 있습니다.
analyzing-powershell-script-block-logging 스킬 개요
이 스킬이 하는 일
analyzing-powershell-script-block-logging 스킬은 EVTX 파일에서 Windows PowerShell Script Block Logging 이벤트(Event ID 4104)를 파싱하고, 분리된 스크립트 블록을 재구성한 뒤, -EncodedCommand, Invoke-Expression, 다운로드 크래들, AMSI 우회 시도, 기타 living-off-the-land 기법 같은 흔한 악성 패턴을 식별하는 데 도움을 줍니다.
누가 사용하면 좋은가
SOC 분석가, 위협 헌터, DFIR 실무자, 그리고 Windows 엔드포인트나 서버 로그에 대한 Security Audit를 수행하는 모든 사람에게 잘 맞습니다. 단일 명령줄만 보고 추측하는 대신, 텔레메트리 기반으로 PowerShell 활동을 반복적으로 검토할 방법이 필요하다면 이 스킬이 유용합니다.
무엇이 다른가
analyzing-powershell-script-block-logging 스킬은 단순한 “로그를 살펴보는” 범용 프롬프트가 아닙니다. Event 4104의 구조, 다중 파트 재구성, 그리고 repo의 스크립트와 참고 자료에 담긴 탐지 중심 휴리스틱을 바탕으로 설계되어 있습니다. 그래서 광범위한 PowerShell 분석 프롬프트보다 인시던트 초동 분류에 더 실용적입니다.
analyzing-powershell-script-block-logging 스킬 사용 방법
설치하고 핵심 파일 위치를 파악하기
다음으로 설치합니다:
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-powershell-script-block-logging
가장 빠르게 시작하려면 먼저 skills/analyzing-powershell-script-block-logging/SKILL.md를 읽고, 그다음 references/api-reference.md, 마지막으로 scripts/agent.py를 보세요. 이 세 파일은 기대되는 로그 구조, 파싱 방식, 탐지 로직을 보여줍니다.
스킬에 맞는 입력을 제공하기
이 스킬은 EVTX 원본, 인시던트 맥락, 시간 범위, 그리고 무엇을 판단하려는지까지 함께 줄 때 가장 잘 작동합니다. 약한 요청은 “이 로그를 분석해 줘”입니다. 더 강한 프롬프트는 이렇게 구체적입니다: “Microsoft-Windows-PowerShell%4Operational.evtx에서 2024-01-15 10:00–11:00 UTC 구간을 대상으로 analyzing-powershell-script-block-logging을 사용해 오브퓨스케이션, 인코딩된 페이로드, 다운로더 행위를 포함한 Event ID 4104 항목을 찾아줘.”
repo에 맞는 워크플로를 사용하기
먼저 Event 4104가 존재하는지 확인하고, 그다음 분리된 ScriptBlockId 그룹을 재구성한 뒤, 의심 패턴을 검토하면서 결과를 원본 ScriptBlockText로 다시 연결하세요. Security Audit 목적의 analyzing-powershell-script-block-logging 사용 워크플로라면 탐지 항목과 함께 커버리지 공백도 함께 요청하는 것이 좋습니다. 즉, 무엇이 잡혔는지, 무엇이 잡히지 않았는지, 그리고 어떤 명령을 사람이 직접 검토해야 하는지까지 물어보세요.
참고 자료를 순서대로 읽기
references/api-reference.md는 ScriptBlockText, ScriptBlockId, MessageNumber, MessageTotal 같은 필드명을 이해하기에 가장 좋은 곳입니다. scripts/agent.py는 실제 패턴 집합, 신뢰도 로직, 그리고 스킬이 어떤 PowerShell 행위를 고위험으로 보는지 확인하는 데 유용합니다.
analyzing-powershell-script-block-logging 스킬 FAQ
이것은 인시던트 대응에만 쓰는 건가요?
아닙니다. 기본 하드닝 작업, 탐지 엔지니어링, 통제 검증에도 잘 맞습니다. PowerShell 텔레메트리가 탐지에 어떻게 기여하는지 이해하는 것이 목표라면, 활성 인시던트가 없어도 analyzing-powershell-script-block-logging 가이드는 충분히 도움이 됩니다.
일반 프롬프트처럼 써도 되나요?
가능은 하지만, 출력의 일관성은 보통 더 떨어집니다. 이 스킬은 Event 4104 데이터를 파싱하고, 분리된 블록을 재구성하고, 알려진 의심 패턴과 대조하는 구조화된 경로를 제공하므로, 일반 모델에게 “악성 PowerShell을 찾아라”라고 묻는 것보다 훨씬 안정적입니다.
주요 한계는 무엇인가요?
Script Block Logging이 활성화되어 있어야 하며, EVTX 파일에 관련 이벤트가 실제로 포함되어 있어야 합니다. 또한 탐지 중심이기 때문에, 정상적인 관리 스크립트라도 평소와 다르게 보이면 결과에 올라올 수 있고, 최종 판단은 분석가의 판단이 필요합니다.
초보자도 쓰기 쉬운가요?
기본적인 Windows 로깅 개념을 알고, 로그 파일이나 정확한 상황 설명을 제공할 수 있다면 그렇습니다. 반면 PowerShell Operational 로그가 어디서 왔는지 모르거나 Event 4104가 수집되었는지 확인할 수 없다면 적합도가 떨어집니다.
analyzing-powershell-script-block-logging 스킬 개선 방법
분석을 바꾸는 맥락을 함께 제공하기
가장 큰 품질 향상은 호스트 역할, 사용자 맥락, 정확한 시간 범위를 추가하는 데서 나옵니다. “도메인 컨트롤러, 관리자 계정, 14:20–14:40 UTC, 피싱 이후 초동 분류”는 단순한 EVTX 경로 하나보다 훨씬 유용합니다.
탐지 결과와 재구성을 함께 요청하기
analyzing-powershell-script-block-logging 사용 품질을 높이려면 재구성된 스크립트, 의심 지표, 각 탐지 항목의 짧은 근거를 명시적으로 요청하세요. 이렇게 하면 출력이 단편적인 플래그 나열이 아니라, 조각을 이어 하나의 완전한 PowerShell 흐름으로 연결되도록 유도할 수 있습니다.
흔한 실패 모드를 주의하기
가장 흔한 누락은 잘린 스크립트 블록, 순서대로 다시 합쳐지지 않은 분리 페이로드, 그리고 정상 자동화를 악성으로 과도하게 단정하는 경우입니다. 첫 결과가 너무 빈약해 보이면 MessageNumber 순서를 다시 확인하고, 반복되는 ScriptBlockId 값을 비교하며, “의심됨”과 “확정됨”을 분리해서 다시 보라고 요청하세요.
목표를 좁힌 후속 프롬프트로 반복하기
강한 두 번째 프롬프트 예시는 다음과 같습니다: “4104 이벤트를 악성 가능성 기준으로 다시 순위를 매기고, 어떤 탐지가 -EncodedCommand, FromBase64String, 또는 다운로더 행위 때문에 발생했는지 설명하고, 비슷해 보이는 정상 관리자 스크립트가 있으면 함께 적어줘.” 이런 반복 방식은 Security Audit 판단과 분석가의 빠른 검토에 더 유용한 analyzing-powershell-script-block-logging 스킬로 만들어 줍니다.
