實作:設置你的紅隊環境
入門5 分鐘閱讀更新於 2026-03-13
設置完整 AI 紅隊環境之逐步指南——Python、API 客戶端、掃描工具與本地模型。
先備知識
- 系統上已安裝 Python 3.9 或更新版本
- 終端機或命令列介面
- 至少一個 API 金鑰(OpenAI 或 Anthropic)——或僅使用本地模型之意願
- 10 GB 可用磁碟空間(若執行本地模型需 50 GB)
環境設置
建立專案目錄
為你所有紅隊工作建立專屬目錄。此目錄將放你的虛擬環境、腳本、結果與組態。
mkdir -p ~/ai-redteam/labs mkdir -p ~/ai-redteam/results mkdir -p ~/ai-redteam/wordlists cd ~/ai-redteam建立 Python 虛擬環境
永遠使用虛擬環境以將紅隊依賴與系統 Python 隔離。
python3 -m venv .venv source .venv/bin/activate # Linux/macOS # 於 Windows:.venv\Scripts\activate驗證虛擬環境已啟用:
which python # 應顯示:/home/youruser/ai-redteam/.venv/bin/python安裝核心套件
安裝與 LLM API 互動並進行紅隊測試所需之必要套件。
pip install --upgrade pip pip install openai anthropic requests python-dotenv pip install pandas tabulate # 供結果分析安裝紅隊框架
安裝主要之開源紅隊工具。
# Garak - LLM 漏洞掃描器 pip install garak # Microsoft PyRIT - Python Risk Identification Toolkit pip install pyrit # 其他有用之工具 pip install transformers torch # 供本地模型工作 pip install jailbreakbench # Jailbreak 基準安全組態 API 金鑰
絕勿將 API 金鑰硬編碼於腳本。使用於版本控制中被排除之
.env檔案。建立你的
.env檔:cat > .env << 'EOF' OPENAI_API_KEY=sk-your-openai-key-here ANTHROPIC_API_KEY=sk-ant-your-anthropic-key-here # 可選:加入其他供應商 TOGETHER_API_KEY=your-together-key-here EOF設定嚴格權限:
chmod 600 .env建立
.gitignore以防止意外提交:echo ".env" >> .gitignore echo ".venv/" >> .gitignore echo "results/" >> .gitignore於你的 Python 腳本中使用
python-dotenv載入金鑰:import os from dotenv import load_dotenv load_dotenv() # 自 .env 檔載入 openai_key = os.getenv("OPENAI_API_KEY") anthropic_key = os.getenv("ANTHROPIC_API_KEY") if not openai_key and not anthropic_key: raise EnvironmentError( "No API keys found. Create a .env file with " "OPENAI_API_KEY or ANTHROPIC_API_KEY." )為本地模型設置 Ollama
Ollama 使你得以於本機免費、無限制地執行模型。這對初步實驗理想。
安裝 Ollama:
# Linux curl -fsSL https://ollama.ai/install.sh | sh # macOS(經 Homebrew) brew install ollama啟動 Ollama 伺服器並拉取模型:
ollama serve & # 於背景啟動 ollama pull llama3.2 # ~2GB,良好之通用模型 ollama pull mistral # ~4GB,強指令遵循驗證其運作中:
curl http://localhost:11434/api/tags # 應回傳列出你已下載模型之 JSON可選:為隔離測試設置 Docker
為最大隔離,你可於 Docker 容器內執行測試目標。
# 若未安裝則安裝 Docker # 見 https://docs.docker.com/engine/install/ # 拉取用於測試之含脆弱聊天機器人之容器 docker pull ghcr.io/redteams-ai/vulnerable-chatbot:latest # 於 port 8080 執行 docker run -d -p 8080:8080 ghcr.io/redteams-ai/vulnerable-chatbot:latest驗證你的環境
執行此驗證腳本以確認一切正確設置。
#!/usr/bin/env python3 """驗證 AI 紅隊環境已正確組態。""" import sys import os def check_python_version(): version = sys.version_info if version.major >= 3 and version.minor >= 9: print(f"[PASS] Python {version.major}.{version.minor}.{version.micro}") return True print(f"[FAIL] Python {version.major}.{version.minor} -- need 3.9+") return False def check_package(name): try: __import__(name) print(f"[PASS] {name} is installed") return True except ImportError: print(f"[FAIL] {name} is NOT installed") return False def check_api_keys(): from dotenv import load_dotenv load_dotenv() keys_found = 0 for key_name in ["OPENAI_API_KEY", "ANTHROPIC_API_KEY"]: value = os.getenv(key_name) if value and not value.startswith("your-"): print(f"[PASS] {key_name} is configured") keys_found += 1 else: print(f"[WARN] {key_name} is not configured") return keys_found > 0 def check_ollama(): try: import requests resp = requests.get("http://localhost:11434/api/tags", timeout=3) models = resp.json().get("models", []) print(f"[PASS] Ollama is running with {len(models)} model(s)") return True except Exception: print("[WARN] Ollama is not running (optional)") return False if __name__ == "__main__": print("=== AI Red Team Environment Verification ===\n") results = [] results.append(check_python_version()) print() packages = ["openai", "anthropic", "requests", "dotenv", "pandas", "garak"] for pkg in packages: results.append(check_package(pkg)) print() results.append(check_api_keys()) print() check_ollama() print() passed = sum(results) total = len(results) print(f"=== Results: {passed}/{total} checks passed ===") if passed == total: print("Your environment is ready. Proceed to the next lab.") else: print("Fix the failing checks before continuing.") sys.exit(1)執行驗證:
python verify_setup.py預期輸出(所有元件皆已安裝時):
=== AI Red Team Environment Verification === [PASS] Python 3.11.5 [PASS] openai is installed [PASS] anthropic is installed [PASS] requests is installed [PASS] dotenv is installed [PASS] pandas is installed [PASS] garak is installed [PASS] OPENAI_API_KEY is configured [PASS] Ollama is running with 2 model(s) === Results: 8/8 checks passed === Your environment is ready. Proceed to the next lab.
目錄結構
完成設置後,你的專案目錄應看起來像:
~/ai-redteam/
├── .env # API 金鑰(絕勿提交)
├── .gitignore # 排除 .env、.venv、results
├── .venv/ # Python 虛擬環境
├── requirements.txt # 釘選之依賴
├── verify_setup.py # 環境驗證腳本
├── labs/ # 你的實作工作於此
└── results/ # 測試輸出與報告
疑難排解
| 問題 | 解方 |
|---|---|
pip install garak 失敗 | 嘗試 pip install garak --no-deps,再個別安裝缺失之依賴 |
| Ollama 無法啟動 | 檢查 port 11434 是否已被使用:lsof -i :11434 |
| API 金鑰未載入 | 確保 .env 檔於你執行腳本之相同目錄 |
| Docker 權限被拒 | 將你的使用者加入 docker 群組:sudo usermod -aG docker $USER |
torch 安裝過大 | 對僅 CPU 使用 pip install torch --index-url https://download.pytorch.org/whl/cpu |
下一步
環境就緒後,繼續 你的第一次提示注入 以開始動手測試。你亦將於 打造測試 Harness 實作中使用此環境以建立可重用之測試基礎設施。
相關主題
- 你的第一次提示注入 - 系列中之下一個實作,於其中你使用此環境執行首次攻擊
- 打造測試 Harness - 以此處安裝之工具自動化提示測試
- 以 Garak 掃描 - 使用你已安裝之 Garak 框架進行自動化漏洞掃描
- 工具景觀 - 超越本實作所安裝者之更廣紅隊工具概觀
參考資料
- "Garak: A Framework for LLM Vulnerability Scanning" - NVIDIA/garak(2024)- Garak 漏洞掃描器之官方文件
- "PyRIT: Python Risk Identification Toolkit" - Microsoft(2024)- Microsoft 紅隊框架之文件
- "Ollama Documentation" - Ollama(2024)- 本實作所使用之本地 LLM 執行指南
- "OpenAI API Reference" - OpenAI(2025)- 紅隊中最常用 LLM 供應商之 API 文件
Knowledge Check
為何 API 金鑰應儲存於 .env 檔而非硬編碼於腳本?
Knowledge Check
使用 Ollama 進行 AI 紅隊練習之主要優勢為何?