
AttackGen은 대규모 언어 모델의 강력한 기능과 포괄적인 MITRE ATT&CK 프레임워크를 활용하는 사이버 보안 침해 대응 테스트 도구입니다. 이 도구는 사용자가 선택한 위협 행위자 그룹과 조직의 세부 정보를 기반으로 맞춤형 침해 대응 시나리오를 생성합니다.
AttackGen은 대규모 언어 모델과 포괄적인 MITRE ATT&CK 및 ATLAS 프레임워크의 힘을 활용하는 사이버 보안 침해 사고 대응 테스트 도구입니다. 이 도구는 사용자가 선택한 위협 행위자 그룹, AI 공격 사례 연구 및 조직 세부 정보를 기반으로 맞춤형 침해 사고 대응 시나리오를 생성합니다.
AttackGen이 유용하다고 생각되신다면 GitHub에서 저장소에 Star를 달아 주시기 바랍니다. 이는 더 많은 사람들이 이 도구를 발견하는 데 도움이 됩니다. 여러분의 지원에 크게 감사드립니다! ⭐

streamlit, litellm, mitreattack-python, pandas (전체 목록은 requirements.txt 참조)../data/ 내)에 포함되어 있으므로 수동 다운로드가 필요하지 않습니다 (데이터 설정 참조)..env 파일 (자세한 내용은 설치 섹션 참조).2. 복제된 저장소로 디렉터리를 변경합니다:```
cd attackgen
### 옵션 2: Docker 사용
1. Docker Hub에서 Docker 컨테이너 이미지를 가져옵니다:```
docker pull mrwadams/attackgen
모델 성능의 디버깅, 테스트, 모니터링을 위해 LangSmith를 사용하려면 LangSmith 계정을 설정하고 LangChain API 키가 포함된 .streamlit/secrets.toml 파일을 생성해야 합니다. 계정 설정 및 API 키 획득에 대한 자세한 내용은 여기의 지침을 따르세요. .streamlit/ 디렉토리에서 자신의 secrets.toml 파일의 템플릿으로 사용할 수 있는 secrets.toml-example 파일을 찾을 수 있습니다.
LangSmith를 사용하지 않으려는 경우에도 .streamlit/secrets.toml 파일은 반드시 있어야 하지만, LANGCHAIN_API_KEY 필드는 비워 두어도 됩니다.
AttackGen에 필요한 MITRE ATT&CK(Enterprise + ICS) 및 ATLAS 데이터셋은 ./data/ 아래의 저장소에 커밋되어 있으므로, 새로 클론한 경우 추가 다운로드 단계 없이 바로 실행할 수 있습니다. 여기에는 enterprise-attack.json, ics-attack.json, stix-atlas.json, groups.json, groups_ics.json, atlas-case-studies.json이 포함됩니다.
이 데이터를 최신 업스트림 릴리스로 새로고침하려면 MITRE ATT&CK STIX 데이터 저장소(및 ATLAS 데이터 저장소)에서 STIX 번들을 다시 다운로드하고 ./data/의 파일을 교체하면 됩니다.
데이터 설정이 완료된 후, 다음 명령으로 AttackGen을 실행할 수 있습니다:``` streamlit run 00_👋_Welcome.py
Streamlit Community Cloud](https://attackgen.streamlit.app/)에서도 앱을 사용해 볼 수 있습니다.
## MCP 서버
AttackGen은 [MCP](https://modelcontextprotocol.io/) 서버를 제공하여 에이전트 워크플로우(Claude Code, Claude Desktop, Cursor 및 기타 MCP 클라이언트)가 Streamlit UI 없이도 시나리오 생성을 구동할 수 있게 합니다. **두 가지 계층의 도구**를 노출합니다:
- **데이터 도구 — API 키 불필요, LLM 호출 없음.** AttackGen의 MITRE 데이터를 표면화합니다: 위협 그룹/ATLAS 사례 연구 목록, 그룹의 킬 체인 해석, 퍼플 팀 탐지 및 대응 보고서 작성, ATT&CK Navigator 레이어 생성, AI 내부자 위협 옵션 목록 제공. `list_ai_insider_options`는 각 퀵스타트 템플릿과 적용되는 선택 사항 및 내러티브 브리프를 반환하므로, `get_ai_insider_prompt` / `generate_ai_insider_scenario`를 `template=`와 산업 및 회사 규모만으로 호출할 수 있습니다. 유용한 경우 실행 가능한 프롬프트도 반환하므로, **클라이언트 자체 모델**이 시나리오를 작성할 수 있습니다 — 즉, 별도의 공급자 API 키가 없어도 작동합니다. 이는 HTTP를 통해 호스팅하기에 안전한 표면입니다.
- **생성 도구 — 자체 키 사용.** `generate_threat_group_scenario`, `generate_custom_scenario` 및 `generate_ai_insider_scenario`는 서버 측에서 LLM을 호출하고 완성된 Markdown 시나리오를 반환합니다. 공급자, 모델 및 키는 호출별로 제공됩니다. `api_key`를 생략하면 LiteLLM이 일치하는 환경 변수(`OPENAI_API_KEY`, `ANTHROPIC_API_KEY`, …)로 대체합니다 — 즉, **사용자 자신의** 키입니다. 이러한 도구는 프로세스 환경에서 자격 증명을 읽으므로 **로컬 stdio**에 유지하고 공유 호스트에 노출하지 마십시오.
### 설치 및 실행
`mcp` 종속성은 `requirements.txt`에 포함되어 있습니다. 프로젝트를 설치하십시오(편집 가능한 설치 시 `attackgen-mcp` 콘솔 스크립트도 제공됩니다):```
pip install -r requirements.txt
# optional, for the console script:
pip install -e .
서버를 시작합니다 (stdio):``` python -m mcp_server # or: attackgen-mcp
### 클라이언트에 추가하기
**Claude Code:**```
claude mcp add attackgen -- python -m mcp_server
Claude Desktop (claude_desktop_config.json) — 키는 env에 들어갑니다:```json
{
"mcpServers": {
"attackgen": {
"command": "python",
"args": ["-m", "mcp_server"],
"cwd": "/absolute/path/to/attackgen",
"env": {
"OPENAI_API_KEY": "sk-...",
"ANTHROPIC_API_KEY": "sk-ant-..."
}
}
}
}
`env`에서 `ATTACKGEN_PROVIDER`와 `ATTACKGEN_MODEL`을 설정하면 generate 도구에 기본 provider/model을 부여하여 호출자가 매번 전달하지 않아도 됩니다. 무거운 MITRE 번들은 첫 데이터 도구 호출 시 지연 로드되므로 서버는 즉시 시작됩니다.
## Agent Skills
MCP 서버와 함께 제공되는 **[Agent Skill](https://github.com/mrwadams/attackgen/blob/main/skills)**인 `attackgen-tabletop`은 AttackGen의 데이터를 퍼실리테이터가 바로 사용할 수 있는 침해 사고 대응 테이블톱으로 변환합니다.
위협 그룹 또는 ATLAS 사례 연구가 주어지면, 이 스킬은 전체 테이블톱 / Master Scenario Events List(MSEL) — 시나리오 내러티브, 단계별 킬 체인, 타임스탬프가 있는 인젝트, NIST SP 800-61 토론 질문, 탐지 커버리지 스코어카드 — 을 Markdown 또는 독립형 인쇄 친화적 HTML 보고서로 생성합니다.
또한 **AI 내부자 위협** 경로도 다룹니다: 적이 조직 내부에 배치된 최첨단 AI 에이전트인 경우, 이 스킬은 킬 체인 대신 `list_ai_insider_options`와 `get_ai_insider_prompt`를 사용합니다. 훈련은 동일한 6개 섹션 구조를 유지하지만, 그 중심축은 STRIDE 위협 범위와 배포 아키텍처이며, 탐지 스코어카드는 해당 아키텍처의 탐지 태세를 기준으로 평가되고, 템플릿의 `required_decisions`는 필수 토론 질문이 됩니다.
업무 분담은 의도적입니다: MCP **데이터 도구**는 사실(모든 기술 또는 STRIDE ID는 도구 결과로 추적됨)을 제공하고, 스킬은 훈련 설계를 제공하므로 **추가 API 키 없이** 클라이언트 자체 모델에서 실행됩니다. 위의 MCP 서버를 연결한 다음, Claude Code 또는 Claude Desktop과 같은 스킬 인식 클라이언트를 [`skills/`](https://github.com/mrwadams/attackgen/blob/main/skills) 디렉토리로 지정하세요. 클라이언트별 설치 위치와 세부 사항은 [`skills/README.md`](https://github.com/mrwadams/attackgen/blob/main/skills/README.md)를 참조하세요.
## 사용법
### AttackGen 실행
#### 옵션 1: Streamlit 앱을 로컬에서 실행
1. Streamlit 앱 실행:```
streamlit run 00_👋_Welcome.py
이 명령은 컨테이너를 시작하고 Streamlit 앱의 기본 포트인 8501을 컨테이너에서 호스트 머신으로 매핑합니다.
2. 웹 브라우저를 열고 `http://localhost:8501`로 이동합니다.
3. 앱을 사용하여 표준 또는 사용자 지정 인시던트 대응 시나리오를 생성합니다(자세한 내용은 아래 참조).
### 시나리오 생성
#### 표준 시나리오 생성
1. OpenAI API, Anthropic API, Google AI API, Mistral API, Groq API 또는 사용자 지정 OpenAI 호환 엔드포인트(Ollama, LM Studio, Azure OpenAI 배포, OpenRouter 등) 중에서 선택합니다.
2. 선택한 제공업체의 API 키를 입력합니다. 사용자 지정 제공업체의 경우 기본 URL과 모델 이름도 입력합니다.
3. 드롭다운에서 원하는 모델을 선택합니다.
4. 드롭다운 메뉴에서 조직의 산업과 규모를 선택합니다.
5. `Threat Group Scenarios` 페이지로 이동합니다.
6. 시뮬레이션하려는 위협 행위자 그룹을 선택합니다.
7. 'Generate Scenario'를 클릭하여 인시던트 대응 시나리오를 생성합니다.
8. 👍 또는 👎 버튼을 사용하여 생성된 시나리오의 품질에 대한 피드백을 제공합니다. 참고: 피드백 버튼은 `.streamlit/secrets.toml` 파일에 LANGCHAIN_API_KEY 값이 설정된 경우에만 나타납니다.
#### 사용자 지정 시나리오 생성
1. OpenAI API, Anthropic API, Google AI API, Mistral API, Groq API 또는 사용자 지정 OpenAI 호환 엔드포인트 중에서 선택합니다.
2. 선택한 제공업체의 API 키를 입력합니다. 사용자 지정 제공업체의 경우 기본 URL과 모델 이름도 입력합니다.
3. 드롭다운에서 원하는 모델을 선택합니다.
4. 드롭다운 메뉴에서 조직의 산업과 규모를 선택합니다.
5. `Custom Scenario` 페이지로 이동합니다.
6. 다중 선택 상자를 사용하여 시나리오와 관련된 ATT&CK 기법을 검색하고 선택합니다.
7. 'Generate Scenario'를 클릭하여 선택한 기법을 기반으로 사용자 지정 인시던트 대응 테스트 시나리오를 생성합니다.
8. 👍 또는 👎 버튼을 사용하여 생성된 시나리오의 품질에 대한 피드백을 제공합니다. 참고: 피드백 버튼은 `.streamlit/secrets.toml` 파일에 LANGCHAIN_API_KEY 값이 설정된 경우에만 나타납니다.
#### AI 내부자 위협 시나리오 생성
1. 모델 제공업체를 선택하고 관련 API 키를 입력합니다(Azure OpenAI 배포 또는 로컬 모델의 경우 사용자 지정 제공업체 사용).
2. 드롭다운에서 원하는 모델을 선택합니다.
3. 드롭다운 메뉴에서 조직의 산업과 규모를 선택합니다.
4. `AI Insider Threat Scenarios` 페이지로 이동합니다.
5. (선택 사항) 템플릿을 선택하여 일반적인 시나리오에 대한 배포 아키타입, 위협 범주 및 STRIDE 위협을 미리 채웁니다.
6. 조직 내에서 AI 에이전트가 얼마나 자율적으로 작동하는지 반영하는 **배포 아키타입**을 선택합니다(예: 감독형 어시스턴트, 자율 에이전트, 완전 자율 플릿). 이는 에이전트의 위협 표면을 결정하는 주요 요인입니다.
7. 하나 이상의 **위협 범주**(자격 증명 손상, 공급망 사보타지, 데이터 유출, 인프라 사보타지, 기만 및 회피)를 선택합니다.
8. (선택 사항) 특정 **STRIDE 위협**으로 시나리오를 좁힙니다. 비워 두면 선택한 범주와 관련된 STRIDE 위협이 자동으로 사용됩니다. 이는 기반 논문의 23가지 STRIDE 위협입니다.
9. (선택 사항) 프롬프트에서 강조 표시된 **프론티어 에이전트 기능**을 조정합니다.
10. 'Generate Scenario'를 클릭합니다. 출력에는 STRIDE 식별자에 매핑된 공격 내러티브, 탐지 기회 및 NIST CSF에 맞춘 권장 통제가 포함됩니다.
11. 👍 또는 👎 버튼을 사용하여 피드백을 제공합니다(LANGCHAIN_API_KEY 필요).
이 페이지의 배경이 되는 위협 모델은 [*Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents*](https://ai-insider-threat.matt-adams.co.uk)에 설명되어 있습니다.
시나리오 생성에는 약 1분 정도 소요될 수 있습니다. 시나리오가 생성되면 앱에서 확인하고 Markdown 파일로 다운로드할 수도 있습니다.
## 보안 모범 사례
AttackGen은 로컬 단일 사용자 배포용으로 설계되었습니다. 도구를 사용할 때:
### API 키 보호
**API 키는 계정에 요금이 부과될 수 있는 민감한 자격 증명입니다.**
✅ **권장 사항:**
- UI를 통해 API 키를 입력합니다(브라우저 세션에 유지됨)
- 개인 머신에서 편의를 위해 .env 파일 사용
- LLM 제공업체 대시보드에서 지출 한도 설정
- API 사용량과 비용을 정기적으로 검토
- 공용 컴퓨터에서 사용 시 세션 지우기
❌ **금지 사항:**
- .env 파일을 버전 관리에 커밋(.gitignore에 이미 포함됨)
- API 키가 보이는 스크린샷 공유
- 신뢰할 수 없거나 손상된 시스템에서 AttackGen 실행
- API 키를 다른 사람과 공유
- 예상치 못한 API 요금 무시
### 데이터 개인정보 보호 고려 사항
시나리오를 생성하면 AttackGen은 선택한 LLM 제공업체에 데이터를 전송합니다:
- 조직 세부 정보(산업, 회사 규모)
- 선택한 ATT&CK 기법
- 사용자 지정 입력 텍스트
- 생성된 시나리오(AttackGen Assistant를 통해)
**의미:**
- OpenAI, Anthropic 등은 개인정보 보호 정책에 따라 이 데이터를 기록할 수 있음
- 데모에는 일반적이거나 가상의 조직 세부 정보를 사용하는 것을 고려
- LLM 제공업체의 데이터 보존 및 개인정보 보호 정책 검토
- 민감한 사용 사례의 경우 더 엄격한 개인정보 보호 보장을 제공하는 제공업체를 고려
### 팀/조직 배포의 경우
여러 사용자를 위해 AttackGen을 배포하는 경우(기본 사용 사례가 아님):
- 인증/권한 부여 추가(기본적으로 포함되지 않음)
- API 키에 시크릿 관리 서비스 사용
- VPN 또는 내부 네트워크 뒤에 배포
- 추가 고려 사항은 이 위협 모델 문서 검토
- 데이터 상주 및 규정 준수 요구 사항 고려
### 종속성 보안
종속성을 유지 관리하고 취약점을 모니터링합니다:
- 종속성은 정기적으로 업데이트됨
- 보안 권고는 GitHub Issues에서 추적됨
- 업데이트 확인을 위해 `pip list --outdated` 실행
- 취약점 스캔을 위해 `pip-audit` 사용 고려
### 보안 문제 보고
보안 문제를 발견하셨나요? 책임감 있게 보고해 주세요:
- GitHub의 [비공개 취약점 보고](https://github.com/mrwadams/attackgen/security/advisories/new)를 통해 보안 권고 생성
- 보안 문제를 공개적으로 게시하지 마세요
- 48시간 이내에 확인하겠습니다
- 수정 사항은 우선순위를 정해 신속하게 릴리스됩니다
## 기여
이 프로젝트에 대한 기여를 환영합니다. 언제든지 이슈 또는 풀 리퀘스트를 제출해 주세요.
## 라이선스
이 프로젝트는 [GNU GPLv3](https://choosealicense.com/licenses/gpl-3.0/)에 따라 라이선스가 부여됩니다.
| 새로운 기능 | 왜 유용한가요? |
|---|
| 기본 시나리오 우선 생성 | - 대기 없는 시나리오: 생성이 이제 단계별로 실행됩니다 — 기본 시나리오가 먼저 렌더링되고 시나리오 다운로드 및 ATT&CK Navigator 레이어 다운로드 버튼이 이미 활성화된 상태로 표시되며, 선택적 퍼플팀 내러티브는 그 후에 스트리밍됩니다. 두 번째 패스가 느리거나 필요하지 않은 경우, 모든 것이 완료될 때까지 기다리지 않고 시나리오를 즉시 사용할 수 있습니다. - 생성 시 입력 고정: 각 실행은 생성 버튼을 누른 순간의 스냅샷을 기반으로 작동하므로, 실행 중에 사이드바를 변경해도 생성 중인 시나리오가 부분적으로 다시 작성될 수 없습니다. - 정직한 진행 상황: 실행 중 경과 시간 레이블과 명명된 단계 — 입력 준비, 기본 시나리오 생성, 결정적 내보내기 구축, 퍼플팀 내러티브 생성 — 를 통해 긴 실행이 실제로 어디까지 진행되었는지 보여줍니다. |
| 중립적이고 막다른 길이 없는 선택기 | - 작동하는 옵션만: 위협 그룹 및 사례 연구 선택기는 이제 실제로 시나리오를 생성하는 선택지만 제공하므로 선택이 막다른 길로 이어질 수 없습니다. - 자연스러운 정렬: 그룹은 자연스러운 숫자 순서로 정렬되므로 APT3이 APT28 및 APT30보다 먼저 오며 텍스트로 정렬되어 그 사이에 배치되지 않습니다. |
| 모든 페이지의 공유 설정 사이드바 | - 한 번만 설정: 공급자, 모델, 프레임워크, 산업 및 회사 규모는 이제 위협 그룹, 사용자 지정 및 AI 내부자 위협 등 모든 시나리오 페이지의 단일 공유 설정 사이드바에 있으며 각 페이지에서 다시 입력할 필요가 없습니다. - 탐색에도 유지됨: 비밀 아닌 선택 사항은 페이지 간 이동 시 유지되고 URL에 반영되며, API 키는 의도적으로 쿼리 문자열에서 제외됩니다. |
| 플랫폼 및 보안 하우스키핑 | - 2.x SDK의 MCP: MCP 서버가 mcp 2.x SDK로 이동했습니다.- 최신 기본 이미지: Docker 이미지가 이제 python:3.14-slim 기반으로 구축됩니다.- 경고가 아닌 CI 게이트: 보안 스캔이 이제 보고만 하는 대신 발견 사항이 있으면 빌드를 실패시킵니다 — pip-audit 및 Bandit이 게이트 역할을 하고, Trivy는 더 이상 pip의 벤더링된 SBOM을 설치된 패키지로 잘못 계산하지 않으며, 실행 가능한 이미지 CVE가 해결되었습니다. GitHub Actions는 Node 20 런타임에서 이동했으며 Dependabot은 이제 워크플로우 작업 자체를 추적합니다. |
| 새로운 기능 | 왜 유용한가요? |
|---|
| 평가 환경 탈출 프리셋 및 시나리오 시드 | - 특정 사고 리허설: 새로운 AI 내부자 위협 템플릿이 격리된 것으로 가정된 환경에서 평가 에이전트가 실제 시스템에 도달하는 상황을 리허설합니다 — 차단, 자격 증명 교체, 제3자 통지 및 증거 보존을 강제합니다. 2026년 7월에 공개된 평가 에이전트가 샌드박스를 탈출한 사건을 다루며, 여기서 격리 경계는 강제가 아닌 가정되었습니다. - 템플릿이 이제 프롬프트에 도달: 빠른 시작 템플릿은 이전에 페이지의 위젯만 미리 채우고 생성된 시나리오에 영향을 주지 않았습니다. 이제 내러티브 brief와 토론 질문이 강제해야 하는 required_decisions를 전달하며, 둘 다 프롬프트에 통합됩니다 — 따라서 템플릿은 질문 모음이 아닌 사용 가능한 시간 제한 테이블톱을 생성합니다. 이는 두 가지 클래스로 나뉩니다: 6개의 원래 아키타입 템플릿은 결정만 설정하므로 모델이 전제를 창작하고 동일한 위협 프로필에 대해 재실행 시 새로운 훈련을 생성합니다; 사고 템플릿은 또한 brief를 설정하여 상황을 고정합니다.- 자유 텍스트 시나리오 시드: AI 내부자 위협 페이지의 선택적 시드 상자가 모든 시나리오의 내러티브를 안내합니다. 템플릿을 선택하면 미리 채워지며, 편집하거나 처음부터 직접 작성할 수 있습니다. - 분류 체계가 27개 위협 / 6개 범주로 확장: 여섯 번째 위협 범주(차단 및 제3자 영향)와 훈련이 의존하는 4개의 STRIDE 위협을 추가합니다 — S5 재사용 가능한 워크로드 자격 증명 재생, R4 에이전트 측 텔레메트리 억제, I5 제3자 및 다운스트림 손상, E5 차단 경계 보증 실패. AttackGen은 이제 게시된 위협 모델을 미러링하는 대신 확장합니다.- MCP를 통한 템플릿 사용 가능: get_ai_insider_prompt 및 generate_ai_insider_scenario는 template= 및 scenario_seed=를 허용하고, list_ai_insider_options는 각 템플릿과 적용되는 선택 사항 및 brief를 반환합니다 — 따라서 클라이언트는 장점에 따라 프리셋을 선택하고 템플릿, 산업 및 회사 규모만으로 호출할 수 있습니다. 이전에는 템플릿 이름이 나열되었지만 어떤 도구도 이를 허용하지 않았습니다. |
| attackgen-tabletop 스킬: AI 내부자 위협 경로 | - 두 번째 훈련 경로: 에이전트 스킬은 이제 MITRE 킬 체인뿐만 아니라 AI 내부자 위협 모델에서도 테이블톱을 구축합니다. 빠른 시작 템플릿(또는 배포 아키타입 및 위협 범주)을 선택하면 get_ai_insider_prompt의 페이로드를 MSEL로 변환합니다.- 동일한 형태, 다른 구조: 훈련은 동일한 6개 섹션을 유지하지만, 킬 체인 테이블은 에이전트 프로필 및 STRIDE 위협 범위가 되고, 탐지 점수 카드는 배포 아키타입의 탐지 태세에 따라 평가됩니다 — 따라서 발생하지 않을 행이 발견 사항이 되며, 템플릿의 필수 결정은 필수 토론 질문이 됩니다. - 경로 자동 선택: 스킬의 설명은 이제 rogue 에이전트 표현에 트리거되므로 "AI 내부자 위협 테이블톱"을 요청하면 올바른 경로에 도달합니다. AI 가속 트레이드크래프트를 사용하는 외부 행위자는 MITRE 경로에 유지됩니다. - 대응, 악용 아님: 두 경로 모두 응답 팀이 내려야 할 결정을 리허설하는 것으로 명시적으로 제한됩니다 — 악용 코드, 페이로드 또는 실제 패치되지 않은 취약점 없음 — 그리고 AI 경로는 에이전트 행동을 인간의 동기가 아닌 구성, 액세스 및 목표에 귀속시킵니다. |
| 수정: MCP AI 내부자 프롬프트가 에이전트 역량을 누락 | - 동일한 템플릿, 동일한 프롬프트: 최첨단 에이전트 역량 블록 — AI 내부자 시나리오를 신뢰할 수 있게 만드는 벤치마크 기반 라인 — 은 capabilities를 명시적으로 지정하지 않은 모든 get_ai_insider_prompt / generate_ai_insider_scenario 호출에서 누락되었습니다. 어떤 템플릿도 이를 제공하지 않으므로 인수가 비어 있고 프롬프트는 일반적인 "유능한 최첨단 코딩 에이전트를 가정" 라인으로 대체되었으며, 페이지 3은 동일한 템플릿에 대해 4개 모두를 보냈습니다.- 기본값이 이제 앱과 일치: capabilities를 생략하면 페이지의 다중 선택과 마찬가지로 전체 세트가 적용됩니다. []를 전달하면 여전히 지정되지 않은 상태로 유지되므로 의도적인 옵트아웃은 변경되지 않습니다. |
| 수정: Anthropic Claude 4.7+ 시나리오 생성 | - 모든 Claude 모델이 다시 작동: Claude 4.7 이상은 모든 샘플링 temperature를 거부하고 BadRequestError: 'temperature' is deprecated for this model을 반환합니다. 나열된 5개의 Anthropic 모델 중 4개 — Fable 5, Opus 4.8, Sonnet 5 및 Opus 4.7 — 는 어떤 페이지에서도 시나리오를 생성할 수 없었습니다. Haiku 4.5만 작동했습니다.- 공급자별이 아닌 모델별 게이트: 온도 규칙은 이전에 공급자에서 라우팅되었으며, 모델이 서로 다른 공급자를 표현할 수 없습니다. ModelInfo.supports_temperature는 이제 이를 거부하는 모델을 표시하므로 Haiku 4.5는 구성된 온도를 유지하고 형제 모델은 이를 생략합니다. OpenAI는 공급자 수준 규칙으로 유지되며(현재 모든 채팅 모델은 추론 모델), 등록되지 않은 모델 — 로컬 Ollama / LM Studio 엔드포인트 — 은 여전히 온도를 받습니다. |
| 새로운 기능 | 왜 유용한가요? |
|---|---|
| 에이전트 클라이언트용 MCP 서버 | - 도구로서의 시나리오 생성: 새로운 FastMCP 서버(mcp_server.py, 공식 mcp SDK)는 stdio를 통해 AttackGen을 에이전트 클라이언트에 노출하므로 Claude Code 또는 Claude Desktop과 같은 어시스턴트가 Streamlit UI 없이 MITRE 데이터를 가져오고 시나리오를 생성할 수 있습니다.- 두 계층: 데이터 도구( list_threat_groups, list_case_studies, get_kill_chain, get_detection_report, get_navigator_layer, list_ai_insider_options, get_ai_insider_prompt)는 LLM 호출을 하지 않으며 API 키가 필요 없습니다 — 구조화된 MITRE 데이터와 유용한 경우 실행 준비가 된 프롬프트를 반환하므로 HTTP를 통해 호스팅하기에 안전합니다. 생성 도구(generate_threat_group_scenario, generate_custom_scenario, generate_ai_insider_scenario)는 자체 키 구성(bring-your-own-key)을 사용하고 완성된 Markdown을 반환합니다 — 로컬 stdio에 유지하세요.- 공유 구현: 서버는 Streamlit 페이지가 사용하는 동일한 헤드리스 core/prompts.py 빌더와 core/attack_data.py 로더를 재사용하므로 시나리오가 앱과 일치하며 분기되지 않습니다. python -m mcp_server 또는 attackgen-mcp 콘솔 스크립트로 시작합니다. |
| attackgen-tabletop 에이전트 스킬 | - 진행자 준비 테이블톱: 새로운 에이전트 스킬은 MCP 데이터 도구를 기반으로 MITRE ATT&CK/ATLAS 위협 그룹 또는 사례 연구를 완전한 IR 테이블톱 / MSEL로 변환합니다 — 시나리오 내러티브, 단계 매핑 킬 체인, 타임스탬프 주입, NIST SP 800-61 토론 질문 및 탐지 범위 점수 카드. - 호출자의 모델에서 실행: 스킬은 훈련 제작을 제공하고 MCP 서버는 데이터를 제공하므로 추가 API 키 없이 클라이언트 자체 모델에서 실행됩니다. - 두 가지 출력 형식: Markdown(기본값) 또는 독립형 인쇄 친화적 HTML 보고서로 제공됩니다. |
| 어시스턴트가 탐지 및 대응 출력 개선 | - 퍼플팀 편집: AttackGen 어시스턴트는 이제 시나리오뿐만 아니라 탐지 및 대응 내러티브도 개선할 수 있습니다. 시나리오가 🟣 퍼플팀 내러티브 토글(위협 그룹 / 사용자 지정 페이지)로 생성되면 어시스턴트 페이지에 편집: 선택기가 나타나 채팅이 시나리오 또는 방어자 워크스루를 대상으로 할 수 있습니다 — 이전에는 어시스턴트가 시나리오 텍스트만 가지고 있었습니다. - 결합 편집 모드: 세 번째 시나리오 + 탐지 및 대응 대상은 둘 다 함께 개선하므로 교차 변경 — 다른 산업, 위협 행위자, 기술 또는 타임라인 — 이 공격자 시나리오와 방어자 내러티브에 일관되게 적용되며 두 번 적용되어 분기되지 않습니다. - 결정적 사실은 변경되지 않음: LLM 내러티브만 개선 대상입니다. 로컬 STIX 탐지 조인은 LLM 편집되지 않습니다. 각 편집 모드는 자체 채팅 기록을 유지하며, 결합 패스는 LangSmith에서 purple_team_narrative로 태그됩니다. |
| 더 간단한 모델 레지스트리 | - 모델당 하나 덜: max_completion_tokens kwarg 및 추론 모델 온도 규칙은 이제 모델별 uses_max_completion_tokens 플래그가 아닌 공급자에서 라우팅됩니다 — 현재 모든 OpenAI 채팅 모델이 이를 사용하므로 플래그는 공급자 키가 이미 캡처한 사실을 복제했습니다. 새 OpenAI 모델 추가는 추가 플래그를 기억할 필요 없이 에 대한 한 항목 편집으로 유지됩니다.- 동작 변경 없음: 내부 단순화일 뿐입니다 — 래퍼는 모든 현재 모델에 대해 동일한 LiteLLM kwargs를 구축합니다. |
| 새로운 기능 | 왜 유용한가요? |
|---|---|
| 수정: OpenAI GPT-5.x 시나리오 생성 | - 올바른 추론 모델 처리: OpenAI의 GPT-5.x 추론 모델은 기본값이 아닌 모든 샘플링 temperature를 거부하므로 모든 GPT-5.x 생성이 BadRequestError: 'temperature' does not support 0.7 with this model로 실패했습니다. AttackGen은 더 이상 이러한 모델에 사용자 지정 온도를 보내지 않으며, 다른 공급자는 구성된 값을 유지합니다. |
| 모델 레지스트리 새로 고침 | - 최신 모델: 각 공급자의 현재 문서에 대해 모델 목록을 새로 고쳤습니다 — OpenAI GPT-5.6(Sol / Terra / Luna 계층), Claude Fable 5 및 Claude Sonnet 5, 연속성을 위해 공급자당 이전 세대 하나를 유지합니다. - 오래된 항목 제거: 공급자가 대체했거나 폐지 중인 모델을 제거했습니다 — 특히 Groq의 qwen3-32b(2026년 7월 17일 종료) 및 Mistral의 Magistral Medium — 따라서 사이드바가 선택 시 오류가 발생하는 모델을 제공할 수 없습니다.- 빠르고 저렴한 Groq 계층 추가( llama-3.1-8b-instant). |
| 새로운 기능 | 왜 유용한가요? |
|---|---|
| 퍼플팀 모드: 탐지 및 대응 | - 방어적 동반자: 모든 위협 그룹 및 사용자 지정 시나리오는 이제 시나리오의 각 기술을 이미 포함된 데이터의 MITRE ATT&CK 탐지 전략, 분석, 로그 소스 및 완화 조치에 연결하는 탐지 및 대응 섹션을 표시합니다 — 빨간색 전용 내러티브를 퍼플팀 훈련으로 전환합니다("여기 공격이 있고, SOC가 정확히 무엇을 보았어야 하는지 여기 있습니다"). - 사실에 대한 LLM 호출 없음: 탐지 섹션은 모델 호출이 아닌 로컬 데이터 조인입니다 — 따라서 나열된 분석, 로그 소스 및 완화 조치는 모델 추측이 아닌 실제 현재 MITRE 콘텐츠입니다. 시나리오 및 레이어와 함께 자체 ..._detection.md 다운로드로 제공됩니다.- 활성화할 로그 소스: 시나리오별 롤업은 탐지가 읽는 고유한 로그 소스를 나열합니다(예: WinEventLog:Security (EventCode=4624)), 따라서 SOC는 훈련이 가정하는 텔레메트리를 한눈에 볼 수 있습니다.- 선택적 퍼플팀 내러티브: 페이지별 🟣 퍼플팀 내러티브 토글은 방어자 측에서 시나리오를 단계별로 안내하는 두 번째 모델 패스를 추가합니다 — 무엇이 발생해야 하는지, 분석가가 무엇을 보는지, 어떻게 대응하는지 — 위의 탐지 및 완화 조치에 엄격히 근거합니다(발명된 탐지 없음). - ATLAS 인식: ATLAS 시나리오는 완화 조치를 나열하고(ATLAS에는 아직 탐지 전략이 없음) 아무것도 표시하지 않는 대신 그렇게 명시합니다. |
| MITRE ATT&CK v19.1 및 최신 ATLAS 데이터 | - 업데이트된 프레임워크: MITRE ATT&CK Enterprise 및 ICS 데이터가 v18.1에서 v19.1로 새로 고쳐졌고, MITRE ATLAS는 최신 릴리스로 새로 고쳐져 생성된 시나리오가 현재 전술, 기술 및 사례 연구를 반영합니다. - 새로 고쳐진 그룹 목록: 위협 그룹 드롭다운이 v19.1 번들(174개 Enterprise 및 14개 ICS 활성 그룹)에서 재생성되었습니다. MITRE가 상위에서 폐지하거나 병합한 그룹(예: APT34 → OilRig, UNC2452 → APT29)은 더 이상 나타나지 않으며, MirrorFace와 같은 새로 추적되는 그룹은 나타납니다. - 더 많은 ATLAS 사례 연구: ATLAS 사례 연구 라이브러리가 57개(17개 사고, 40개 훈련)로 성장했습니다. - 반복 가능한 새로 고침: 새로운 scripts/generate_groups.py가 포함된 STIX 번들에서 그룹 매핑을 재생성하여 기존 ATLAS 사례 연구 스크립트를 보완합니다 — 따라서 다음 새로 고침은 수동 큐레이션이 아닌 스크립트 단계입니다. |
| ATT&CK Navigator 레이어 내보내기 | - 다운로드 가능한 레이어: 위협 그룹 및 사용자 지정 시나리오 페이지의 모든 생성된 시나리오는 이제 Markdown 다운로드와 함께 ATT&CK Navigator 레이어(.json)를 제공하므로 시나리오의 기술을 ATT&CK Navigator에서 시각화, 주석 및 공유할 수 있습니다. 보려면 레이어를 다운로드하고 Navigator에서 Open Existing Layer → Upload from local을 통해 엽니다.- 세 가지 매트릭스 모두: 올바른 Navigator 도메인이 매트릭스별로 자동 설정됩니다 — Enterprise 및 ICS 레이어는 MITRE ATT&CK Navigator에 업로드하고, ATLAS 레이어는 ATLAS Navigator 포크에 업로드합니다. (ATLAS 레이어는 ATT&CK Navigator에서 로드되지 않으며 그 반대도 마찬가지입니다. 각각 자체 도메인만 인식하기 때문입니다.) - 기술이 계속 표시됨: 점수가 매겨진 하위 기술은 자동으로 상위를 확장하고 기술 ID가 레이아웃에 표시되므로 시나리오의 강조 표시된 기술이 접힌 행에 숨겨지지 않고 즉시 명확하게 보입니다. - 추가 LLM 호출 없음: 레이어는 시나리오에 이미 선택된 기술의 로컬 직렬화입니다 — 추가 모델 호출 또는 외부 조회 없음. - 설명적인 다운로드 파일 이름: 시나리오 및 레이어 다운로드는 이제 위협 행위자 / 사용자 지정 시나리오 및 매트릭스 이름과 생성 타임스탬프로 명명됩니다(예: AttackGen_APT29_Enterprise_20260714-153045.md), 따라서 저장된 파일이 의미 있고 시나리오 간에 충돌하지 않습니다. |
| 새로운 기능 |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| MITRE ATLAS 프레임워크 지원 | - AI/ML 위협 범위: AttackGen은 이제 MITRE ATLAS(AI 시스템을 위한 적대적 위협 환경) 프레임워크를 지원하여 AI 및 머신러닝 시스템을 대상으로 하는 위협에 대한 사고 대응 시나리오 생성을 가능하게 합니다. - 사례 연구 기반 시나리오: 프롬프트 인젝션, 모델 추출, 데이터 포이즈닝과 같은 공격을 다루는 14건의 실제 사고와 31건의 연구 실습을 포함한 45건의 문서화된 실제 AI 공격 사례 연구를 기반으로 시나리오를 생성합니다. - 147가지 ATLAS 기술: AI 모델 접근, AI 공격 준비, AI 시스템에 맞게 조정된 기존 공격 단계를 포함한 16가지 AI 특화 전술을 다루는 전체 ATLAS 기술 라이브러리에 접근할 수 있습니다. - AI 특화 템플릿: 일반적인 AI/ML 공격을 위한 6가지 새로운 맞춤 시나리오 템플릿: 모델 회피, 데이터 포이즈닝, 모델 추출, 프롬프트 인젝션, LLM 탈옥, AI 공급망 공격. |
| MITRE ATT&CK 데이터 v18.1 업데이트 | - 최신 위협 인텔리전스: AttackGen은 이제 MITRE ATT&CK v18.1 데이터를 사용하여 생성된 시나리오가 위협 행위자가 사용하는 가장 최신 전술, 기술, 절차를 반영하도록 보장합니다. - 확장된 엔터프라이즈 범위: 엔터프라이즈 위협 그룹 목록이 150개 이상에서 187개 그룹으로 확장되어 새로 추적되는 행위자를 포함합니다. - 확장된 ICS 범위: ICS 위협 그룹 목록이 7개에서 16개 그룹으로 확장되어 산업 제어 시스템 시나리오에 대한 더 나은 범위를 제공합니다. |
| LLM 모델 지원 업데이트 | - OpenAI: GPT-5.2 및 GPT-5.2 Pro 모델 추가; 더 이상 사용되지 않는 o-시리즈 추론 모델을 제거하여 모델 목록을 간소화했습니다. - Anthropic: Claude 4.5 제품군으로 업데이트 — Sonnet 4.5, Haiku 4.5, Opus 4.5 포함. - Google AI: Gemini 3 Pro 및 Flash 프리뷰 모델 추가; Gemini 2.5 옵션 업데이트. - Groq: 고성능 추론을 위한 GPT-OSS 120B 및 20B 모델 추가. - Mistral: 날짜가 지정된 모델 버전(Large 2512, Medium 2508, Small 2506)으로 업데이트; Ministral 14B 추가. |
| 버그 수정 | - Google AI 응답 처리 수정: 최신 Gemini 모델이 반환하는 구조화된 콘텐츠 형식을 처리하도록 응답 파싱을 업데이트하여 시나리오 텍스트가 올바르게 추출되고 표시되도록 했습니다. - ICS 매트릭스 오류 메시지 수정: ICS 매트릭스 사용 시 오류 메시지가 "Enterprise ATT&CK" 대신 "ICS ATT&CK"로 올바르게 표시되도록 수정했습니다. - 빈 기술 처리 개선: 위협 그룹에 연결된 기술이 없을 때 우아하게 처리하여 2차 오류를 방지합니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| LangChain v1.0 호환성 | - 중단된 가져오기 변경 수정: 더 이상 사용되지 않는 langchain.prompts.chat에서 langchain_core.prompts로 모든 가져오기를 업데이트하여 LangChain v1.0과의 호환성을 보장하고 ModuleNotFoundError 문제를 방지합니다. 이는 LangChain 생태계가 발전함에 따라 안정성을 유지합니다. |
| 포괄적인 보안 인프라 | - 자동화된 보안 스캐닝: Bandit(Python 코드 분석), CodeQL(취약점 탐지), pip-audit(종속성 스캐닝), Safety(알려진 취약점), Gitleaks(비밀 탐지), Trivy(Docker 이미지 스캐닝)를 사용한 지속적인 보안 모니터링을 위한 GitHub Actions 워크플로우 도입. - 보안 모범 사례 문서: 지원 버전, 취약점 보고, API 키 관리, 데이터 개인정보 보호 고려 사항, 배포 보안 지침을 다루는 포괄적인 SECURITY.md 추가. - README 보안 섹션 강화: API 키 보호, 데이터 개인정보 보호 고려 사항, 책임 있는 배포 관행에 대한 명확한 해야 할 일과 하지 말아야 할 일로 보안 지침을 확장했습니다. |
| Docker 개선 | - 보안 강화: Dockerfile을 비루트 사용자로 실행하도록 업데이트하여 컨테이너 보안 태세를 개선했습니다. - Docker Compose 지원: 다중 서비스 배포 간소화 및 로컬 개발 설정 용이성을 위한 docker-compose.yml 추가. - 빌드 최적화 개선: .dockerignore를 강화하여 이미지 크기를 줄이고 민감한 파일이 컨테이너 이미지에 포함되지 않도록 방지합니다. - 포괄적인 구성 템플릿: 모든 지원 API 키(OpenAI, Anthropic, Azure, Google, Mistral, Groq)로 .env.example을 업데이트하여 초기 설정을 더 쉽게 만들었습니다. |
| 버그 수정 | - Ollama API 타임아웃: 연결이 중단되는 것을 방지하기 위해 Ollama API 요청에 타임아웃 구성을 추가했습니다. - Safety CLI 업데이트: 더 이상 사용되지 않는 safety check 명령에서 새 safety scan 명령으로 업데이트하여 지속적인 보안 스캐닝 기능을 보장합니다.- Bandit 구성: 더 정확한 Python 코드 분석을 위해 Bandit 보안 스캐닝 구성을 수정했습니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| OpenAI Responses API 통합 | - 차세대 API: AttackGen은 이제 지원되는 모든 모델에 대해 OpenAI의 최신 Responses API를 사용하여 통합되고 향상된 인터페이스를 제공합니다. |
| 최신 프론티어 모델 지원 | - GPT-5 통합: OpenAI의 최신 GPT-5 모델 시리즈(gpt-5, gpt-5-mini, gpt-5-nano)에 대한 지원을 추가하여 시나리오 생성을 위한 가장 고급 AI 기능에 대한 접근을 제공합니다. - Claude Sonnet 4.5: Anthropic의 최신 Claude Sonnet 4.5(claude-sonnet-4-5-20250929) 모델과 업데이트된 Claude 모델 버전(Claude Opus 4.1(claude-opus-4-1-20250805) 포함)에 대한 지원을 추가했습니다. |
| 버그 수정 및 개선 | - Streamlit 사용 중단 경고 수정: 더 이상 사용되지 않는 use_container_width 매개변수를 새 width 매개변수로 대체하여 향후 Streamlit 버전과의 호환성을 보장합니다.- 문서 강화: 향후 개발 작업을 위한 포괄적인 지침으로 CLAUDE.md를 업데이트하고 상세한 아키텍처 정보를 추가했습니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| 확장된 모델 지원 | - 최신 OpenAI 추론 모델: AttackGen은 이제 o4-mini(최신 추론 모델), o3/o3-mini, o1-pro(향상된 추론 기능)를 포함한 OpenAI의 최신 추론 모델을 지원합니다. 이러한 모델은 깊은 논리적 사고가 필요한 복잡한 시나리오 생성에 탁월합니다. - GPT-4.1 시리즈: GPT-4.1 시리즈 모델(gpt-4.1, gpt-4.1-mini, gpt-4.1-nano)에 대한 지원을 추가하여 비용에 민감한 사용 사례를 위한 더 가벼운 대안과 함께 일반 AI 기능의 최신 개선 사항을 제공합니다. - Anthropic Claude 모델: claude-opus-4-20250514, claude-sonnet-4-20250514, claude-3-7-sonnet-latest, claude-3-5-haiku-latest를 포함한 Anthropic의 Claude 모델에 대한 포괄적인 지원을 추가했습니다. 이러한 모델은 강력한 추론 기능과 함께 상세하고 상황에 맞는 사고 대응 시나리오를 생성하는 데 탁월한 성능을 제공합니다. - Google AI 모델 업데이트: Gemini 2.0 모델과 함께 최신 Gemini 2.5 프리뷰 모델(gemini-2.5-flash-preview-05-20 및 gemini-2.5-pro-preview-05-06)을 포함하도록 Google AI 모델 선택을 갱신하여 Google AI 기술의 가장 최근 개선 사항에 대한 접근을 제공합니다. - 모델 구성 개선: 모델 선택 드롭다운을 재구성하여 최신 모델을 우선시하고 서로 다른 모델 유형과 기능을 명확히 구분하도록 설명을 업데이트했습니다. |
| 향상된 기술 선택 로직 | - 더 강력한 그룹 처리: 기술 선택 중 빈 위협 행위자 그룹이 오류를 일으킬 수 있는 문제를 수정했습니다. 이제 도구는 빈 DataFrame을 반환하여 빈 그룹을 적절히 처리하므로 제한된 위협 행위자 데이터로도 안정적인 작동을 보장합니다. - 단계 이름 보존: 출력에 'Phase Name'이 제대로 포함되도록 기술 선택 프로세스를 개선하여 시나리오 생성 전반에 걸쳐 킬 체인 단계 정보를 유지합니다. 이는 생성된 시나리오가 각 기술이 공격의 어느 단계에 속하는지에 대한 적절한 맥락을 유지하도록 보장합니다. |
| 개발 환경 개선 | - .gitignore 강화: venv 외에 .venv 가상 환경 디렉토리 지원을 추가하여 다양한 개발자 선호도와 Python 환경 관리 도구를 수용합니다.- 코드 정리: 시나리오 생성 스크립트 전반에서 사용되지 않는 가져오기를 제거하여 코드 유지 관리성을 개선하고 잠재적 혼란을 줄였습니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| 맞춤형 OpenAI 호환 API 엔드포인트 | - 유연성 증가: AttackGen은 이제 Anyscale, Together AI 또는 자체 호스팅 호환 API와 같은 맞춤형 OpenAI 호환 API 엔드포인트를 지원합니다. 이 기능을 통해 사용자는 공식 지원 공급자 이상의 더 넓은 범위의 모델과 서비스를 활용할 수 있습니다. - 자체 호스팅 지원: OpenAI 호환 모델을 자체 배포한 조직은 이제 AttackGen을 이러한 엔드포인트에 직접 연결할 수 있습니다. - 모델 선택 제어: 사용자는 호환 서비스의 기본 URL, 모델 이름, API 키를 지정할 수 있어 시나리오 생성에 사용할 모델과 엔드포인트를 더 잘 제어할 수 있습니다. |
| 모델 선택 업데이트 | - 최신 모델 접근: OpenAI 모델 선택에 이제 새로운 GPT-4.1 시리즈 모델(gpt-4.1, gpt-4.1-mini, gpt-4.1-nano)이 포함되어 코딩, 지시 따르기, 긴 컨텍스트 작업에서 향상된 성능을 제공합니다. - Gemini 지원 확장: 최신 Gemini 2.5 Pro Preview, 2.0 Flash, 2.0 Flash Lite 모델에 대한 지원을 추가했습니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| Groq API 통합 | - 향상된 성능: AttackGen은 이제 Groq의 고성능 API를 지원하여 llama-3.3-70b-versatile 및 deepseek-r1-distill-llama-70b와 같은 모델에 대한 접근을 제공합니다. 이 통합은 고품질 시나리오 생성을 유지하면서 빠른 추론 시간을 제공합니다. - 모델 출력 표시 개선: 출력과 함께 추론을 제공하는 DeepSeek와 같은 모델의 경우 AttackGen은 이제 이 추론을 접을 수 있는 확장 위젯에 표시합니다. 이를 통해 사용자는 원할 때 모델의 사고 과정을 볼 수 있으면서 기본 시나리오 출력은 깔끔하고 집중된 상태로 유지할 수 있습니다. |
| OpenAI 모델 지원 업데이트 | - 최신 모델: AttackGen은 이제 OpenAI의 최신 o3 추론 모델과 이전 프리뷰 버전을 대체하는 o1 모델의 GA(일반 공급) 버전을 지원합니다. 이러한 업데이트는 시나리오 생성에 더 안정적이고 개선된 모델에 대한 접근을 제공합니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| OpenAI의 새로운 '추론' 모델 지원 | - 향상된 시나리오 생성: AttackGen은 이제 OpenAI의 새로운 '추론' 모델(o1-preview 및 o1-mini)을 지원하여 매우 상세하고 미묘한 사고 대응 시나리오 생성을 가능하게 합니다. 이러한 모델은 시나리오 생성에서 향상된 일관성과 깊이를 제공합니다. |
| MITRE ATT&CK ICS 매트릭스 지원 | - 범위 확장: AttackGen은 이제 엔터프라이즈 매트릭스 외에도 MITRE ATT&CK ICS(산업 제어 시스템) 매트릭스를 사용한 사고 대응 테스트 시나리오 생성을 지원합니다. 이를 통해 사용자는 산업 및 중요 인프라 환경에 맞춘 시나리오를 만들 수 있습니다. |
| ATT&CK 소스 데이터 v15.1 업데이트 | - 최신 위협 인텔리전스: 이 도구는 이제 가장 최신 MITRE ATT&CK 데이터(v15.1)를 사용하여 생성된 시나리오가 위협 행위자가 사용하는 최신 알려진 전술, 기술, 절차를 반영하도록 보장합니다. |
| 위협 행위자 그룹 데이터 업데이트 | - 포괄적인 범위: 그룹 데이터가 Scattered Spider와 같은 MITRE ATT&CK에서 추적되는 최신 그룹을 포함하도록 업데이트되었습니다. 이를 통해 사용자는 사용 가능한 가장 최신 위협 행위자 정보를 기반으로 시나리오를 생성할 수 있습니다. |
| .env 파일에서 API 키/비밀 로드 | - 보안 강화: 사용자는 이제 .env 파일에 API 키와 기타 민감한 정보를 저장할 수 있어 보안이 개선되고 다양한 환경에서 자격 증명을 더 쉽게 관리할 수 있습니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| GPT-4o mini 모델 지원 | - 모델 옵션 확장: AttackGen은 이제 OpenAI의 GPT-4o mini 모델 사용을 지원합니다. GPT-4o mini는 매우 비용 효율적인 소형 모델입니다. |
| Google AI API 모델 선택 업데이트 | - 모델 옵션 확장: AttackGen은 이제 Gemini 1.5 Pro의 안정 버전과 프리뷰 버전을 지원합니다. |
| 새로운 기능 | 왜 유용한가? |
|---|---|
| GPT-4o 모델 지원 | - 모델 옵션 강화: AttackGen은 이제 OpenAI의 GPT-4o 모델 사용을 지원합니다. GPT-4o는 OpenAI의 선도 모델로, GPT-4보다 2배 빠르게 시나리오를 생성하면서 비용은 절반입니다. |
| 새로운 기능 | 유용한 이유 |
| ----------- | ---------------- |
| AttackGen 어시스턴트 | - 반복적 시나리오 개선: 새로운 채팅 인터페이스를 통해 사용자는 생성된 침해 대응 시나리오와 상호작용할 수 있어, 처음부터 다시 생성하지 않고도 시나리오를 업데이트하거나 질문하기가 쉬워졌습니다. 이 기능은 AI 어시스턴트의 응답을 기반으로 시나리오를 개선하고 다듬을 수 있는 반복적인 시나리오 개발 방식을 지원합니다. - 상황별 지원: AI 어시스턴트는 생성된 시나리오와 대화 기록의 맥락을 기반으로 사용자 질문에 응답합니다. 이를 통해 어시스턴트의 응답이 시나리오 개선에 관련성 있고 유용함을 보장합니다. |
| 맞춤 시나리오용 빠른 시작 템플릿 | - 빠른 시나리오 생성: 사용자는 이제 피싱 공격, 랜섬웨어 공격, 악성코드 감염, 내부자 위협 등 일반적인 유형의 사이버 사고에 대한 사전 정의된 템플릿을 기반으로 맞춤 침해 대응 시나리오를 빠르게 생성할 수 있습니다. 이 기능은 개별 ATT&CK 기법을 선택하지 않고도 현실적인 시나리오를 더 쉽게 만들 수 있게 해줍니다. - 간소화된 워크플로우: 템플릿 선택은 맞춤 시나리오 생성 프로세스에 원활하게 통합됩니다. 사용자는 템플릿을 선택하면 관련 ATT&CK 기법이 자동으로 채워지며, 필요에 따라 시나리오를 추가로 맞춤 설정할 수 있습니다. |
| Google AI API 통합 | - 확장된 모델 옵션: AttackGen은 이제 침해 대응 시나리오 생성을 위해 Google의 Gemini 모델 사용을 지원합니다. 이 통합은 사용자에게 제공되는 고품질 모델의 범위를 확장하여, 현실적이고 다양한 시나리오를 만들기 위해 Google의 AI 기능을 활용할 수 있게 해줍니다. |
| 새로운 기능 | 유용한 이유 |
|---|---|
| Mistral API 통합 | - 대체 모델 제공업체: 사용자는 이제 Mistral AI 모델을 활용하여 침해 대응 시나리오를 생성할 수 있습니다. 이 통합은 OpenAI 및 Azure OpenAI Service 모델에 대한 대안을 제공하여, 사용자가 특정 사용 사례에 맞는 다양한 언어 모델의 성능을 탐색하고 비교할 수 있게 해줍니다. |
| Ollama를 사용한 로컬 모델 지원 | - 로컬 모델 호스팅: AttackGen은 이제 Ollama와의 통합을 통해 로컬에서 호스팅되는 LLM 사용을 지원합니다. 이 기능은 엄격한 데이터 개인정보 보호 요구 사항이 있거나 데이터를 온프레미스로 유지하려는 조직에 특히 유용합니다. 이 기능은 https://attackgen.streamlit.app 의 Streamlit Community Cloud에서 호스팅되는 AttackGen 버전 사용자에게는 제공되지 않습니다. |
| 선택적 LangSmith 통합 | - 향상된 유연성: LangSmith와의 통합은 이제 선택 사항입니다. LangChain API 키가 제공되지 않으면 오류가 발생하는 대신, 실행이 LangSmith에 기록되지 않는다는 정보성 메시지가 표시됩니다. 이 변경은 전반적인 사용자 경험을 개선하고 사용자가 LangSmith 없이도 AttackGen을 계속 사용할 수 있게 해줍니다. |
| 다양한 버그 수정 및 개선 | - 향상된 사용자 경험: 이 릴리스에는 여러 버그 수정과 사용자 인터페이스 개선이 포함되어 AttackGen을 더욱 사용자 친화적이고 안정적으로 만듭니다. |
| 새로운 기능 | 유용한 이유 |
|---|---|
| Azure OpenAI Service 통합 | - 향상된 통합: 사용자는 이제 표준 OpenAI API 외에도 Azure OpenAI Service에 배포된 OpenAI 모델을 활용하도록 선택할 수 있습니다. 이 통합은 기존 Azure 생태계에 AttackGen을 통합하기 위한 원활하고 안전한 솔루션을 제공하며, 기존의 상업 및 기밀 유지 계약을 활용합니다. - 향상된 데이터 보안: Azure에서 AttackGen을 실행하면 애플리케이션 설명 및 기타 데이터가 Azure 환경 내에 유지되므로, 위협 모델에서 민감한 데이터를 처리하는 조직에 이상적입니다. |
| Azure OpenAI Service용 LangSmith | - 향상된 디버깅: LangSmith 추적은 이제 Azure OpenAI Service를 사용하여 생성된 시나리오에 사용할 수 있습니다. 이 기능은 모델 성능의 디버깅, 테스트 및 모니터링을 위한 강력한 도구를 제공하여, 사용자가 모델의 의사 결정 과정에 대한 통찰력을 얻고 생성된 시나리오의 잠재적 문제를 식별할 수 있게 해줍니다. - 사용자 피드백: LangSmith는 또한 Azure OpenAI Service를 사용하여 생성된 시나리오의 품질에 대한 사용자 피드백을 캡처하여 모델 성능과 사용자 만족도에 대한 귀중한 통찰력을 제공합니다. |
| OpenAI API용 모델 선택 | - 유연한 모델 옵션: 사용자는 이제 gpt-4-turbo-preview와 같은 OpenAI API 엔드포인트에서 제공되는 여러 모델 중에서 선택할 수 있습니다. 이를 통해 다양한 언어 모델로 더 큰 맞춤 설정과 실험이 가능하며, 사용자가 특정 사용 사례에 가장 적합한 모델을 찾을 수 있습니다. |
| Docker 컨테이너 이미지 | - 쉬운 배포: AttackGen은 이제 Docker 컨테이너 이미지로 제공되어 일관되고 재현 가능한 환경에서 애플리케이션을 더 쉽게 배포하고 실행할 수 있습니다. 이 기능은 컨테이너화된 환경에서 AttackGen을 실행하려는 사용자나 클라우드 플랫폼에 애플리케이션을 배포하려는 사용자에게 특히 유용합니다. |
| 새로운 기능 | 유용한 이유 |
|---|---|
| ATT&CK 기법 기반 맞춤 시나리오 | - 성숙한 조직을 위한 기능: 이 기능은 조직에 고급 위협 인텔리전스 역량이 있는 경우 특히 유용합니다. 예를 들어, 새로 식별되었거나 잘 알려지지 않은 위협 행위자 그룹을 모니터링하는 경우, 해당 그룹이 사용하는 기법에 특화된 침해 대응 테스트 시나리오를 맞춤 설정할 수 있습니다. - 집중 테스트: 또는 이 기능을 사용하여 사이버 킬 체인의 특정 부분이나 '측면 이동(Lateral Movement)' 또는 '데이터 유출(Exfiltration)'과 같은 특정 MITRE ATT&CK 전술에 침해 대응 테스트를 집중할 수 있습니다. 이는 방어 태세의 특정 영역을 평가하고 개선하려는 조직에 유용합니다. |
| 생성된 시나리오에 대한 사용자 피드백 | - 피드백 수집은 시간이 지남에 따라 모델 성능을 추적하는 데 필수적이며, 시나리오 생성 작업의 강점과 약점을 파악하는 데 도움이 됩니다. |
| 누락된 API 키에 대한 개선된 오류 처리 | - 향상된 사용자 경험. |
Streamlit st.spinner 위젯을 새로운 st.status 위젯으로 교체 | - 장기 실행 프로세스(예: 시나리오 생성)에 대한 더 나은 가시성을 제공합니다. |
최초 릴리스.
MODELS| 왜 유용한가? |
| ----------- | ----------------- |
| AI 내부자 위협 시나리오 | - 새로운 시나리오 유형: 조직 내부에 배포된 최첨단 AI 에이전트가 정렬 실패, 보상 해킹, 돌발 목표 또는 프롬프트 인젝션 손상 등을 통해 내부자 위협으로 행동하는 사고 대응 테이블탑 훈련을 생성하는 전용 페이지가 추가되었습니다. Actions Speak Louder Than Tokens: An Insider Threat Model for Frontier AI Agents의 위협 모델을 기반으로 합니다. - 배포 아키텍처 기반: 시나리오는 에이전트의 자율성 수준(L1 감독형 어시스턴트 → L4 완전 자율 플릿)에 따라 결정되며, 이는 위협 표면과 탐지 태세의 주요 결정 요인입니다. - 5가지 내부자 위협 범주: 자격 증명 손상, 공급망 사보타지, 데이터 유출, 인프라 사보타지, 기만 및 회피 — 각각 인간의 동기가 아닌 구체적인 AI 에이전트 징후에 매핑됩니다. - AI 에이전트를 위한 23가지 STRIDE 위협: 최첨단 AI 에이전트에 맞게 조정된 완전한 STRIDE 분류 체계(스푸핑, 변조, 부인, 정보 공개, 서비스 거부, 권한 상승)로, 시나리오 범위를 좁히는 데 선택적으로 사용할 수 있습니다. - NIST CSF 정렬 통제: 생성된 시나리오에는 NIST 사이버보안 프레임워크(식별, 보호, 탐지, 대응, 복구)에 매핑된 우선순위 완화 조치가 포함됩니다. - 공급자 동등성: AttackGen의 나머지 부분과 동일한 공급자 세트를 지원하며 선택적 LangSmith 추적이 포함됩니다. |
| LiteLLM 마이그레이션 및 공급자 통합 | - 통합 LLM 래퍼: 모든 공급자 통합이 이제 LiteLLM을 사용하는 단일 core/llm.py 래퍼를 통해 이루어집니다. 새 모델 추가는 core/models.py의 MODELS 목록에 한 줄만 추가하면 되고, 공급자 추가는 단일 ProviderInfo 항목만 추가하면 됩니다. stride-gpt에서 사용된 패턴을 반영합니다.- 대규모 코드 축소: 4개 페이지에 걸쳐 중복된 공급자별 분기 약 3,800줄을 제거했습니다(페이지당 if model_provider == ... 블록 약 1,000줄과 거의 동일한 8개의 래퍼 함수). 이제 각 페이지는 일반 메시지 딕셔너리를 구성하고 call_llm(config, messages)를 호출합니다.- 레지스트리 기반 사이드바: Welcome 사이드바가 이제 공급자 레지스트리에서 생성되어, 수작업으로 작성된 8개의 공급자 블록을 하나의 루프로 대체했습니다. - 모델 목록 갱신: 최신 모델로 업데이트 — OpenAI GPT-5.5 / 5.4 제품군, Anthropic Claude 4.6 / 4.7 / 4.8, Google Gemini 3.x 프리뷰, Mistral Large 3 / Magistral, Groq GPT-OSS 및 Qwen3. - 공급자 통합: 별도의 Azure OpenAI Service 및 Ollama 항목을 단일 Custom (OpenAI 호환) 옵션으로 대체했습니다. Azure 배포, Ollama ( http://localhost:11434/v1), LM Studio (http://localhost:1234/v1), OpenRouter 및 자체 호스팅 엔드포인트가 모두 이 단일 경로를 통해 작동합니다.- 더 작은 종속성: langchain, langchain-anthropic, langchain-core, langchain-community, langchain-google-genai, langchain-mistralai, langchain-openai 및 anthropic 패키지를 제거하고 단일 litellm>=1.40 종속성으로 대체했습니다. langsmith는 선택적 추적을 위해 유지됩니다.- LangSmith 추적 유지: @traceable 데코레이터와 피드백 위젯이 계속 투명하게 작동합니다. core/llm.py는 LangSmith 클라이언트가 사용 가능할 때 call_llm을 @traceable로 래핑합니다. |
| Docker 이미지 보안 갱신 | - 기본 이미지 갱신: Trivy 코드 스캔에서 플래그된 오래된 OS 레이어 CVE를 제거하기 위해 python:3.12-slim 다이제스트를 업데이트하여 게시된 컨테이너 이미지에 대한 공개 경고 수를 줄였습니다.- pip CVE-2025-8869 수정: 이제 요구 사항을 설치하기 전에 pip를 업그레이드하여 패키지 추출 중 누락된 심볼릭 링크 검사에 대한 수정 사항을 적용합니다. |
| 스트리밍 LLM 출력 | - 토큰 단위 생성: 시나리오와 AttackGen Assistant 채팅이 전체 응답을 기다리지 않고 토큰이 도착하는 대로 스트리밍하므로, 긴 생성도 반응성이 느껴지고 모델이 작성하는 동안 함께 읽을 수 있습니다. - 옵트인 스트리밍 API: 통합 LiteLLM 래퍼에 call_llm과 함께 call_llm_stream을 추가하여 호출자가 나머지 계약을 변경하지 않고 스트리밍 여부를 선택할 수 있습니다.- 깔끔한 추론 처리: 상태 저장형 stream_filter_thinking 헬퍼가 라이브 보기에서 <think>...</think> 영역을 억제하고, 스트림 후 clean_model_response가 전체 원시 텍스트에서 추론 확장 영역을 계속 채웁니다. |
| AI 강화 적대자 토글 | - 페이지별 새 토글: Threat Group 및 Custom Scenario 페이지에 "AI 강화 적대자" 토글이 추가되어, 적대자가 AI를 사용하여 동일한 킬 체인을 가속화하고 강화하도록 시나리오를 재구성합니다 — 낮아진 기술 진입 장벽, 압축된 타임라인, 자율 오케스트레이션 및 병렬 확장 — 새로운 기술을 도입하는 대신. - Anthropic 연구 기반: 실제 사이버 위협에서 가장 중요한 변화는 새로운 기술이 아닌 기존 기술의 가속화와 오케스트레이션이라는 것을 발견한 Anthropic의 LLM ATT&CK Navigator 연구를 기반으로 합니다. - 추적 가시성: LangSmith에서 ai_enhanced로 태그된 시나리오를 통해 AI 강화 생성물을 필터링하고 기준 실행과 비교할 수 있습니다.- AI 내부자 위협 페이지에서는 의도적으로 제외: 해당 페이지의 위협 행위자는 이미 최첨단 AI 에이전트이므로 "AI 강화" 프레임은 중복될 것입니다. |
| 버그 수정 및 개선 | - 이 릴리스에는 시나리오 페이지와 사이드바 전반에 걸친 몇 가지 작은 UI 폴리싱 및 렌더링 수정이 포함되어 있습니다. |