name Security Audit description This skill should be used when performing security audits on Cratos - command injection analysis, REST API authorization review, WebSocket authentication, tool security, and generating actionable fix plans. version 1.0.0
Security Audit Skill
Cratos ํ๋ก์ ํธ์ ๋ณด์ ๊ฐ์ฌ๋ฅผ ์ํํ๋ ์คํฌ. ์ฝ๋ ๋ถ์ โ ์ทจ์ฝ์ ์๋ณ โ ์ฌ๊ฐ๋ ๋ถ๋ฅ โ ์์ ํ๋ ์์ฑ๊น์ง E2E๋ก ์ฒ๋ฆฌํ๋ค.
๊ฐ์ฌ ๋ฒ์
1. Command Injection (exec/bash ๋๊ตฌ)
๋์ ํ์ผ:
crates/cratos-tools/src/builtins/exec.rs โ ์ง์ ์คํ ๋๊ตฌ
crates/cratos-tools/src/builtins/bash.rs โ PTY ๊ธฐ๋ฐ ์
ธ ๋๊ตฌ (5-layer security)
crates/cratos-core/src/security/injection.rs โ InjectionDetector ํจํด
์ฒดํฌ๋ฆฌ์คํธ:
์
ธ ๋ฉํ๋ฌธ์ ์ฐจ๋จ (;|&$\()<>\n\r!#`)
์ํ ์ปค๋งจ๋ ๋ธ๋๋ฆฌ์คํธ (rm, sudo, bash, python, curl ๋ฑ 70+)
๋ฒ์ ์ธํฐํ๋ฆฌํฐ ์ฐํ (python3.11, perl5.34 ๋ฑ prefix match)
์ปค๋งจ๋ ๋ํผ ์ฐจ๋จ (env, xargs, nohup, osascript)
์ํ ๊ฒฝ๋ก ์ฐจ๋จ (/etc, /root, /var/log ๋ฑ)
args ์์ ์ฑ (Command::new() ์
ธ ๋ฏธ๊ฒฝ์ ํ์ธ)
Docker ์๋๋ฐ์ค ๊ฒฉ๋ฆฌ (network=none, read-only, pids-limit)
bash ๋๊ตฌ 5-Layer:
2. REST API ์ธ๊ฐ
๋์ ํ์ผ:
src/middleware/auth.rs โ RequireAuth ์ถ์ถ์
src/server.rs โ ๋ผ์ฐํฐ ๊ตฌ์ฑ, AuthConfig
src/api/*.rs โ ๋ชจ๋ REST ํธ๋ค๋ฌ
์ฒดํฌ๋ฆฌ์คํธ:
3. WebSocket ์ธ์ฆ
๋์ ํ์ผ:
src/websocket/chat.rs โ WS ์ฑํ
src/websocket/events.rs โ ์ด๋ฒคํธ ์คํธ๋ฆผ
์ฒดํฌ๋ฆฌ์คํธ:
4. ์ค์ผ์ค๋ฌ ๋ณด์
๋์ ํ์ผ:
src/api/scheduler.rs โ ์ค์ผ์ค๋ฌ API
src/server.rs โ task_executor ํด๋ก์
์ฒดํฌ๋ฆฌ์คํธ:
5. ์
๋ ฅ ๊ฒ์ฆ
๋์ ํ์ผ:
crates/cratos-core/src/security/injection.rs โ InjectionDetector
crates/cratos-core/src/security/mod.rs โ ๋ณด์ ๋ชจ๋
์ฒดํฌ๋ฆฌ์คํธ:
๊ฐ์ฌ ์ํ ์ ์ฐจ
Phase 1: ์ ๋ณด ์์ง
cargo check --all-targets โ ๋น๋ ํ์ธ
cargo test -p cratos-tools โ ๋ณด์ ํ
์คํธ ์คํ
๊ด๋ จ ์์ค ํ์ผ ์ฝ๊ธฐ (์ ๋์ ํ์ผ ๋ชฉ๋ก)
Phase 2: ์ทจ์ฝ์ ์๋ณ
๊ฐ ์ทจ์ฝ์ ์ ๋ํด:
์์น : ํ์ผ:๋ผ์ธ๋ฒํธ
์ฌ๊ฐ๋ : CRITICAL / HIGH / MEDIUM / LOW
์ํฅ : ๊ณต๊ฒฉ ์๋๋ฆฌ์ค
์ฝ๋ ์ฆ๊ฑฐ : ๊ด๋ จ ์ฝ๋ ์ค๋ํซ
Phase 3: ๋ณด๊ณ ์ ์์ฑ
์ฌ๊ฐ๋๋ณ ๋ถ๋ฅ ํ
์ด๋ธ:
| ์ฝ๋ | ์ฌ๊ฐ๋ | ์์น | ์ค๋ช
| ์ํ |
| ---- | -------- | ------------ | ------------------ | ------ |
| V2-1 | CRITICAL | server.rs:98 | ๊ธฐ๋ณธ ์ธ์ฆ ๋นํ์ฑํ | ๋ฏธ์์ |
Phase 4: ์์ ํ๋
์ฐ์ ์์๋ณ ์์ ๊ฐ์ด๋:
CRITICAL โ ์ฆ์ ์์ (PR ๋ถ๋ฆฌ)
HIGH โ ๊ฐ์ ์คํ๋ฆฐํธ ๋ด ์์
MEDIUM โ ๋ค์ ์คํ๋ฆฐํธ
LOW โ ๋ฐฑ๋ก๊ทธ
์ด์ ๊ฐ์ฌ ๊ฒฐ๊ณผ ์ฐธ์กฐ
.serena/memories/cratos-security.md โ ๋ณด์ ๊ฐ์ฌ ๊ฒฐ๊ณผ
์๋ ค์ง ์ํธ ์์ญ
Command Injection: exec/bash ๋ชจ๋ ์์ (9/10)
๋น๋ฐ ๊ด๋ฆฌ: OS ํค์ฒด์ธ + zeroize (8/10)
Docker ์๋๋ฐ์ค: network=none, read-only, pids-limit (9/10)
์๋ ค์ง ์ทจ์ฝ ์์ญ (v2 ๊ธฐ์ค)
REST API ์ธ๊ฐ (6/10) โ 5๊ฑด ์ทจ์ฝ์
WS ์ธ์ฆ ์์ โ CRITICAL
/health/detailed ์ ๋ณด ๋
ธ์ถ โ HIGH
๋ณด์ ํ
์คํธ ์ปค๋งจ๋
cargo test -p cratos-tools -- exec ::tests --nocapture
cargo test -p cratos-tools -- bash::tests --nocapture
cargo test -p cratos-tools --nocapture
cargo test -p cratos-core -- security --nocapture
cargo audit