
사이버보안 AI (CAI), AI 보안을 위한 프레임워크
CAI)프로페셔널 에디션(무제한 alias1 토큰) | 📊 벤치마크 보기 | 🚀 자세히 알아보기
🔓 커뮤니티 에디션 연구 및 학습 · 연구자와 학생에게 완벽함 pip install cai-framework
✅ 연구용 무료 🤖 300개 이상의 AI 모델 🌍 커뮤니티 주도 📚 오픈소스 🔧 확장 가능한 프레임워크
🚀 프로페셔널 에디션 엔터프라이즈 및 프로덕션 · 월 €350 · 무제한 alias1 토큰
→ PRO로 업그레이드
⚡ alias1 모델 - ∞ 무제한 토큰 🚫 거부 없음 - 제한 없는 AI 🏆 CTF 벤치마크에서 GPT-5를 능가 🛡️ 프로페셔널 지원 포함 🇪🇺 유럽 데이터 주권
CAI PRO(w/ alias1 모델)는 AI 대 AI 사이버보안 벤치마크에서 GPT-5를 능가합니다. 전체 벤치마크 보기 →
-->
사이버보안 AI (CAI)는 경량 오픈소스 프레임워크로, 보안 전문가가 AI 기반 공격 및 방어 자동화를 구축하고 배포할 수 있도록 지원합니다. CAI는 AI 보안 분야의 사실상 표준 프레임워크이며, 이미 수천 명의 개인 사용자와 수백 개의 조직에서 사용되고 있습니다. 보안 연구자, 윤리적 해커, IT 전문가, 또는 보안 태세를 강화하려는 조직이라면, CAI는 완화, 취약점 발견, 익스플로잇, 보안 평가를 지원하는 특화된 AI 에이전트를 만들기 위한 기본 구성 요소를 제공합니다.
CAI_LICENSE_OFF)CAI는 ALIAS_API_KEY 없이 (즉, Alias Robotics 라이선스 없이) 환경 변수 CAI_LICENSE_OFF=1 을 설정하여 실행할 수 있습니다.
CAI_LICENSE_OFF가 1, true, 또는 yes로 설정된 경우:
ALIAS_API_KEY가 필요하지 않습니다.cai-framework 패키지를 대상으로 합니다.CAI_MODEL 및 해당 제공업체 API 키를 구성하여 지원되는 다른 모델 제공업체(OpenAI, Anthropic, DeepSeek, Ollama 등)를 사용할 수 있습니다.라이선스 없이 빠른 시작:```bash export CAI_LICENSE_OFF=1 cai
또는 인라인:```bash
CAI_LICENSE_OFF=1 cai
참고:
alias1모델은 여전히 유효한ALIAS_API_KEY가 필요합니다.CAI_LICENSE_OFF는 프레임워크의 라이선스 게이트만 우회할 뿐, Alias가 호스팅하는 모델에 대한 접근을 허용하지는 않습니다.
주요 기능:
[!NOTE] 기술 보고서 읽기: CAI: 오픈 소스 버그 바운티 지원 사이버보안 AI 그림과 참고문헌이 포함된 HTML 읽기 버전은 Robot Cybersecurity Lab에서 관리합니다.
[!WARNING] ⚠️ CAI는 활발히 개발 중이므로 완벽하게 작동할 것이라고 기대하지 마십시오. 대신 이슈를 제기하거나 PR을 보내 기여해 주세요.
본 라이브러리에 대한 접근 및 정보, 자료(또는 그 일부)의 사용은 해당 접근이나 사용이 관련 법률 또는 규정을 위반하는 경우에는 의도되지 않았으며 금지됩니다. 저자들은 실행 중인 시스템에 대한 무단 조작을 절대 장려하거나 조장하지 않습니다. 이는 심각한 인적 해를 초래하고 물질적 손상을 일으킬 수 있습니다.
CAI 저자들은 컴퓨팅 시스템에 대한 무단 조작을 결코 장려하거나 조장하지 않습니다. 여기 있는 소스 코드를 사이버 범죄에 사용하지 마십시오. 대신 선한 펜테스트(Pentest for good)를 하십시오. 이 소스 코드를 다운로드, 사용 또는 수정함으로써, 귀하는
LICENSE의 조건과DISCLAIMER파일에 명시된 제한 사항에 동의하게 됩니다.
CAI)사이버보안 AICAI 활용 능력.env 파일 설정사이버보안 AI확장 HTML 읽기 버전: CAI · CAIBench · 공격 벡터로서의 휴머노이드 로봇 · 휴머노이드 로봇의 사이버보안 · AI 시대의 소비자 로봇 해킹
더 많은 사례 연구 및 PoC는 https://aliasrobotics.com/case-studies-robot-cybersecurity.php에서 확인할 수 있습니다.
사이버보안 환경은 AI가 보안 운영에 점점 더 통합됨에 따라 극적인 변화를 겪고 있습니다. 우리는 2028년까지 AI 기반 보안 테스트 도구가 인간 침투 테스터를 능가할 것이라고 예측합니다. 이러한 변화는 사이버보안 과제에 접근하는 방식의 근본적인 변화를 나타냅니다. AI는 단순한 또 다른 도구가 아닙니다. 이는 복잡한 보안 취약점을 해결하고 정교한 위협에 앞서 나가는 데 필수적인 요소가 되고 있습니다. 조직이 더 발전된 사이버 공격에 직면함에 따라 AI 강화 보안 테스트는 강력한 방어 체계를 유지하는 데 중요해질 것입니다.
이 작업은 이전의 노력[^4]을 기반으로 하며, 마찬가지로 고급 사이버보안 AI 도구에 대한 접근을 대중화하는 것이 전체 보안 커뮤니티에 필수적이라고 믿습니다. 그래서 우리는 사이버보안 AI (CAI)를 오픈 소스 프레임워크로 공개합니다. 우리의 목표는 보안 연구자, 윤리적 해커, 조직이 강력한 AI 기반 보안 도구를 구축하고 배포할 수 있도록 지원하는 것입니다. 이러한 기능을 공개적으로 제공함으로써, 최첨단 보안 AI 기술이 자금력이 풍부한 민간 기업이나 국가 행위자에게만 국한되지 않도록 경쟁의 장을 평평하게 만들고자 합니다.
버그 바운티 프로그램은 현대 사이버보안의 초석이 되었으며, 조직이 시스템의 취약점이 악용되기 전에 식별하고 수정할 수 있는 중요한 메커니즘을 제공합니다. 이러한 프로그램은 공공 및 민간 인프라를 모두 보호하는 데 매우 효과적임이 입증되었으며, 연구자들은 그렇지 않았다면 눈에 띄지 않았을 중요한 취약점을 발견했습니다. CAI는 초기 정찰부터 취약점 검증 및 보고에 이르기까지 버그 바운티 헌팅의 다양한 측면을 지원할 수 있는 특화된 AI 에이전트를 구축하기 위한 가볍고 인체공학적인 프레임워크를 제공함으로써 이러한 노력을 강화하도록 특별히 설계되었습니다. 우리의 프레임워크는 인간의 전문성을 AI 기능으로 보강하여 연구자들이 디지털 시스템을 더 안전하게 만들기 위한 작업을 보다 효율적이고 철저하게 수행할 수 있도록 돕는 것을 목표로 합니다.
CAI의 기능과 보안 영향력을 고려할 때, CAI를 야생에 공개하는 것이 윤리적인지 궁금할 수 있습니다. 이 프레임워크를 오픈 소스로 공개하기로 한 결정은 두 가지 핵심 윤리 원칙에 따라 이루어졌습니다:
사이버보안 AI의 대중화: 우리는 고급 사이버보안 AI 도구가 자금력이 풍부한 민간 기업이나 국가 행위자에게만 국한되지 않고 전체 보안 커뮤니티가 접근할 수 있어야 한다고 믿습니다. CAI를 오픈 소스 프레임워크로 공개함으로써, 보안 연구자, 윤리적 해커, 조직이 강력한 AI 기반 보안 도구를 구축하고 배포할 수 있도록 지원하여 사이버보안 분야의 경쟁의 장을 평평하게 만들고자 합니다.
AI 보안 역량의 투명성: 연구 결과, 기술 이해, 최고 수준의 기술 보고서 분석을 바탕으로, 현재 LLM 벤더들은 자사의 사이버보안 역량을 과소평가하고 있다고 주장합니다. 이는 매우 위험하고 오해의 소지가 있습니다. CAI를 공개적으로 개발함으로써, 우리는 AI 시스템이 사이버보안 맥락에서 실제로 무엇을 할 수 있는지에 대한 투명한 벤치마크를 제공하여 보안 태세에 대한 보다 정보에 기반한 결정을 내릴 수 있도록 합니다.CAI는 다음과 같은 핵심 원칙을 기반으로 구축되었습니다:
phoenix를 사용합니다. 이를 통해 사용자는 에이전트와 그 실행에 대한 상세한 추적성을 얻을 수 있습니다.Claude 3.7, Claude 3.5, Claude 3, Claude 3 OpusO1, O1 Mini, O3 Mini, GPT-4o, GPT-4.5 Preview사이버보안 AI는 중요한 분야이지만, 많은 그룹이 순수 경제적 이익을 위해 폐쇄 소스 방법을 통해 이를 추구하고 있으며, 유사한 기술을 활용하고 기존 폐쇄 소스(종종 타사 소유) 모델 위에 구축하고 있습니다. 이러한 접근 방식은 귀중한 엔지니어링 리소스를 낭비할 뿐만 아니라 경제적 낭비를 초래하고 중복된 노력을 낳으며, 결과적으로 바퀴를 재발명하는 경우가 많습니다. 다음은 우리가 추적하고 있으며 사이버보안 AI에서 genAI와 에이전트 프레임워크를 활용하려는 폐쇄 소스 이니셔티브 중 일부입니다:
CAI 활용 능력[!NOTE]
CAI 활용 능력 기술 보고서(arXiv:2508.13588)는 사이버보안 AI 리터러시를 위한 공식 교육 프레임워크를 수립합니다.
[!NOTE] CAI 전문가용 에디션 사용자: 활성 CAI Pro 구독이 있는 경우 버전 0.5 및 0.6에 대한 전용 설치 가이드를 제공합니다. Ubuntu 24.04 (x86_64)에 대한 공식 지원이 제공됩니다. 다른 운영 체제에 대한 설치 지침은 공식 지원 없이 있는 그대로 제공됩니다:
pip install cai-framework
CAI를 업데이트할 때 적절한 종속성 설치를 보장하려면 항상 새 가상 환경을 생성하세요.
다음 하위 섹션에서는 인기 있는 일부 운영 체제에 대한 더 자세한 설명을 제공합니다. 개발자 관련 설치 지침은 [개발](#development) 섹션을 참조하세요.
API 키 환경 변수 구문에 대해서는 litellm 문서를 확인하세요. [LiteLLM 문서](https://docs.litellm.ai/docs/tutorials/installation)
### OS X```bash
brew update && \
brew install git [email protected]
# Create virtual environment
python3.12 -m venv cai_env
# Install the package from the local directory
source cai_env/bin/activate && pip install cai-framework
# Generate a .env file and set up with defaults
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env
# Launch CAI
cai # first launch it can take up to 30 seconds
sudo apt-get update &&
sudo apt-get install -y git python3-pip python3.12-venv
python3.12 -m venv cai_env
source cai_env/bin/activate && pip install cai-framework
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env
cai # first launch it can take up to 30 seconds
### Ubuntu 20.04```bash
sudo apt-get update && \
sudo apt-get install -y software-properties-common
# Fetch Python 3.12
sudo add-apt-repository ppa:deadsnakes/ppa && sudo apt update
sudo apt install python3.12 python3.12-venv python3.12-dev -y
# Create the virtual environment
python3.12 -m venv cai_env
# Install the package from the local directory
source cai_env/bin/activate && pip install cai-framework
# Generate a .env file and set up with defaults
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env
# Launch CAI
cai # first launch it can take up to 30 seconds
다음 Microsoft 페이지로 이동하세요: https://learn.microsoft.com/en-us/windows/wsl/install. 여기에서 WSL을 설치하는 모든 지침을 찾을 수 있습니다.
PowerShell에서 다음을 입력하세요: wsl --install```bash
sudo apt-get update &&
sudo apt-get install -y git python3-pip python3-venv
python3 -m venv cai_env
source cai_env/bin/activate && pip install cai-framework
echo -e 'OPENAI_API_KEY="sk-1234"\nANTHROPIC_API_KEY=""\nOLLAMA=""\nOLLAMA_API_BASE="http://Your.Host.Ip.Here:11434"\nPROMPT_TOOLKIT_NO_CPR=1\nCAI_STREAM=false' > .env
cai # first launch it can take up to 30 seconds
ubuntu에서 cai를 실행할 때 문제가 발생할 수 있습니다. 일부 에이전트가 Kali Instance에서 실행 중이라고 가정하여 필요한 도구를 찾지 못하기 때문입니다. 따라서 대안으로 dockerized 폴더에 있는 docker compose 파일을 사용할 수 있습니다. 이 방법은 docker가 설치된 경우 wsl 내에서도 작동합니다. 그런 경우 dockerized 폴더(전체 리포지토리가 필요하지 않음)를 가져와서 그 안에서 실행하십시오. API Keys env 구문은 litellm Documentation을 확인하십시오. [LiteLLM Documentation](https://docs.litellm.ai/docs/tutorials/installation)```bash
#build and run docker compose Build takes around 20 min.
docker compose build && docker compose up -d
#access cai
docker compose exec cai cai
최소 8GB RAM을 권장합니다:
먼저, userland를 설치하세요 https://play.google.com/store/apps/details?id=tech.ula&hl=es
기본 옵션에서 Kali 최소 버전을 설치하세요 (무료). [선호하는 다른 Kali 옵션을 선택해도 됩니다.]
다음 예시와 같이 apt 키를 업데이트하세요: https://superuser.com/questions/1644520/apt-get-update-issue-in-kali, UserLand의 Kali 터미널 안에서 실행하세요```bash
wget http://http.kali.org/kali/pool/main/k/kali-archive-keyring/kali-archive-keyring_2024.1_all.deb
sudo dpkg -i kali-archive-keyring_2024.1_all.deb && rm kali-archive-keyring_2024.1_all.deb
sudo apt-get update
sudo apt-get update && sudo apt-get install -y git python3-pip build-essential zlib1g-dev libncurses5-dev libgdbm-dev libnss3-dev libssl-dev libreadline-dev libffi-dev libsqlite3-dev wget libbz2-dev pkg-config wget https://www.python.org/ftp/python/3.12.4/Python-3.12.4.tar.xz tar xf Python-3.12.4.tar.xz cd ./configure --enable-optimizations sudo make altinstall # This command takes long to execute
git clone https://github.com/aliasrobotics/cai && cd cai
python3.12 -m venv cai_env
source cai_env/bin/activate && pip3 install -e .
cp .env.example .env # edit here your keys/models
cai
### :nut_and_bolt: `.env` 파일 설정
CAI는 `.env` 파일을 사용하여 시작 시 구성을 로드합니다. 설정을 용이하게 하기 위해, 저장소는 CAI 설정과 원하는 LLM 모델에서 작동하기 위한 LLM API 키를 구성하기 위한 템플릿을 제공하는 예시 [`.env.example`](https://github.com/aliasrobotics/cai/blob/HEAD/.env.example) 파일을 제공합니다.
:warning: 중요:
CAI는 기본적으로 어떤 모델에 대한 API 키도 제공하지 않습니다. 키를 제공해 달라고 요청하지 마세요. 자신의 키를 사용하거나 자체 모델을 호스팅하세요.
:warning: 참고:
OPENAI_API_KEY는 비워둘 수 없습니다. "sk-123"(자리 표시자) 또는 실제 API 키를 포함해야 합니다. https://github.com/aliasrobotics/cai/issues/27을 참조하세요.
:warning: 참고:
alias1 모델을 사용하는 경우 CAI 버전이 >0.4.0인지 확인하세요. 다음은 이를 사용할 수 있는 .env 예제입니다.```bash
OPENAI_API_KEY="sk-1234"
OLLAMA=""
ALIAS_API_KEY="<sk-your-key>" # note, add yours
CAI_STREAM=False
CAI_MODEL="alias1"
CAI는 OPENAI_BASE_URL 환경 변수를 통해 사용자 정의 OpenAI API 기본 URL을 설정하는 기능을 지원합니다. 이를 통해 사용자는 API 호출을 프록시나 자체 호스팅 OpenAI 호환 서비스와 같은 사용자 정의 엔드포인트로 리디렉션할 수 있습니다.
.env 항목 구성 예시:```
OLLAMA_API_BASE="https://custom-openai-proxy.com/v1"
또는 명령줄에서 직접:```bash
OLLAMA_API_BASE="https://custom-openai-proxy.com/v1" cai
CAI는 사이버 보안 에이전트 조정 및 실행을 가볍고, 높은 제어 가능성을 가지며, 인간에게 유용하게 만드는 데 중점을 둡니다. 이를 위해 8개의 기둥인 Agents, Tools, Handoffs, Patterns, Turns, Tracing, Guardrails 및 HITL을 기반으로 합니다.```
┌───────────────┐ ┌───────────┐
│ HITL │◀─────-───▶│ Turns │
└───────┬───────┘ └───────────┘
│
▼
┌───────────┐ ┌───────────┐ ┌───────────┐ ┌───────────┐
│ Patterns │◀──-──▶│ Handoffs │◀──-─▶ │ Agents │◀──-─▶│ LLMs │
└───────────┘ └─────┬─────┘ └─────┬─────┘ └───────────┘
│ │
│ ▼
┌────────────┐ ┌────┴──────┐ ┌───────────┐ ┌────────────┐
│ Extensions │◀────▶ │ Tracing │ │ Tools │◀──▶ │ Guardrails │
└────────────┘ └───────────┘ └───────────┘ └────────────┘
│
┌─────────────┬─────┴────┬─────────────┐
▼ ▼ ▼ ▼
┌───────────┐┌───────────┐┌────────────┐┌───────────┐
│ LinuxCmd ││ WebSearch ││ Code ││ SSHTunnel │
└───────────┘└───────────┘└────────────┘└───────────┘
코드를 더 깊이 살펴보려면 CAI 사용을 위한 시작점으로 다음 파일들을 확인하세요:
* [__init__.py](https://github.com/aliasrobotics/cai/blob/main/src/cai/__init__.py)
* [cli.py](https://github.com/aliasrobotics/cai/blob/main/src/cai/cli.py) - 명령줄 인터페이스의 진입점
* [util.py](https://github.com/aliasrobotics/cai/blob/main/src/cai/util.py) - 유틸리티 함수
* [agents](https://github.com/aliasrobotics/cai/blob/main/src/cai/agents) - 에이전트 구현
* [internal](https://github.com/aliasrobotics/cai/blob/main/src/cai/internal) - CAI 내부 함수 (엔드포인트, 메트릭, 로깅 등)
* [prompts](https://github.com/aliasrobotics/cai/blob/main/src/cai/prompts) - 에이전트 프롬프트 데이터베이스
* [repl](https://github.com/aliasrobotics/cai/blob/main/src/cai/repl) - CLI 미적 요소 및 명령어
* [sdk](https://github.com/aliasrobotics/cai/blob/main/src/cai/sdk) - CAI 명령어 SDK
* [tools](https://github.com/aliasrobotics/cai/tree/main/src/cai/tools) - 에이전트 도구
### 🔹 Agent
핵심적으로, CAI는 `Agent`와 에이전트 `Pattern`을 통해 사이버보안 행동을 추상화합니다. 에이전트는 *일부 환경과 상호작용하는 지능형 시스템*입니다. 보다 기술적으로, CAI에서는 로봇공학 중심의 정의를 채택합니다. 여기서 에이전트는 센서를 통해 환경을 인지하고, 목표에 대해 추론한 후, 액추에이터를 통해 그 환경에 따라 행동하는 시스템으로 볼 수 있는 모든 것입니다 (Russel & Norvig, AI: A Modern Approach에서 *적응*). 사이버보안에서 `Agent`는 시스템 및 네트워크와 상호작용하며, 주변 장치와 네트워크 인터페이스를 센서로 사용하고, 이에 따라 추론한 후 액추에이터처럼 네트워크 동작을 실행합니다. 이에 따라 CAI에서 `Agent`는 `ReACT` (추론 및 행동) 에이전트 모델을 구현합니다[^3]. 자세한 내용은 전체 실행 코드를 위해 [여기 예제](https://github.com/aliasrobotics/cai/blob/main/examples/basic/hello_world.py)를 확인하고, 사용 방법에 대한 튜토리얼은 이 [주피터 노트북](https://github.com/aliasrobotics/cai/blob/main/fluency/my-first-hack/my_first_hack.ipynb)을 참조하세요.```python
from cai.sdk.agents import Agent, Runner, OpenAIChatCompletionsModel
import os
from openai import AsyncOpenAI
from dotenv import load_dotenv
load_dotenv()
agent = Agent(
name="Custom Agent",
instructions="""You are a Cybersecurity expert Leader""",
model=OpenAIChatCompletionsModel(
model=os.getenv('CAI_MODEL', "openai/gpt-4o"),
openai_client=AsyncOpenAI(),
)
)
message = "Tell me about recursion in programming."
result = await Runner.run(agent, message)
도구(Tools)는 사이버보안 에이전트가 시스템 명령 실행, 보안 스캔 수행, 취약점 분석, 대상 시스템 및 API와의 상호작용을 위한 인터페이스를 제공하여 작업을 수행할 수 있게 해줍니다. 이는 CAI 에이전트가 보안 작업을 효과적으로 수행할 수 있게 하는 핵심 기능입니다. CAI에서 도구에는 내장된 사이버보안 유틸리티(명령 실행을 위한 LinuxCmd, OSINT 수집을 위한 WebSearch, 동적 스크립트 실행을 위한 Code, 안전한 원격 접속을 위한 SSHTunnel 등), 모든 Python 함수를 보안 도구로 통합할 수 있는 함수 호출 메커니즘, 그리고 정찰 또는 익스플로잇 에이전트와 같은 특화된 보안 에이전트가 다른 에이전트에 의해 사용될 수 있게 하는 에이전트-도구(agent-as-tool) 기능이 포함됩니다. 이를 통해 에이전트 간 공식적인 핸드오프 없이도 강력한 협업 보안 워크플로우를 구성할 수 있습니다. 자세한 내용은 사용자 정의 함수의 전체 구성을 보려면 여기 예제를 참조하세요.```python
from cai.sdk.agents import Agent, Runner, OpenAIChatCompletionsModel
from cai.tools.reconnaissance.exec_code import execute_code
from cai.tools.reconnaissance.generic_linux_command import generic_linux_command
import os from openai import AsyncOpenAI from dotenv import load_dotenv load_dotenv()
agent = Agent( name="Custom Agent", instructions="""You are a Cybersecurity expert Leader""", tools= [ generic_linux_command, execute_code ], model=OpenAIChatCompletionsModel( model=os.getenv('CAI_MODEL', "openai/gpt-4o"), openai_client=AsyncOpenAI(), ) )
message = "Tell me about recursion in programming." result = await Runner.run(agent, message)
다양한 [도구](https://github.com/aliasrobotics/cai/blob/HEAD/tools)를 찾을 수 있습니다. 이는 보안 킬 체인 [^2]에서 영감을 받은 6가지 주요 카테고리로 그룹화되어 있습니다:
1. 정찰 및 무기화 - *정찰* (암호, 목록 등)
2. 익스플로잇 - *익스플로잇*
3. 권한 상승 - *상승*
4. 측면 이동 - *측면*
5. 데이터 유출 - *유출*
6. 명령 및 제어 - *제어*
### 🔹 Handoffs
`Handoffs`는 `Agent`가 다른 에이전트에게 작업을 위임할 수 있게 해주며, 이는 참여의 여러 단계에서 전문 지식이 필요한 사이버 보안 운영에서 중요합니다. 우리 프레임워크에서 `Handoffs`는 LLM을 위한 도구로 구현되며, `transfer_to_flag_discriminator`와 같은 **핸드오프/전송 함수**는 `ctf_agent`가 플래그를 찾았다고 판단되면 제어를 `flag_discriminator_agent`로 전달할 수 있게 합니다. 이는 첫 번째 에이전트가 익스플로잇 및 플래그 발견을 처리하고, 두 번째 에이전트가 플래그 검증을 전문으로 하는 보안 검증 체인을 생성하여 적절한 업무 분리를 보장하고 다양한 모델의 특화된 기능을 별도의 보안 작업에 활용합니다. 자세한 내용은 전체 실행 코드를 위해 [여기 예제](https://github.com/aliasrobotics/cai/blob/main/examples/cai/agent_patterns/handoffs.py)를 참조하십시오.```python
from cai.sdk.agents import function_tool
from cai.tools.common import run_command
from cai.sdk.agents import Agent, OpenAIChatCompletionsModel, HandoffInputData, Runner, function_tool, handoff, trace
from cai.sdk.agents.extensions import handoff_filters
import os
from openai import AsyncOpenAI
from dotenv import load_dotenv
load_dotenv()
@function_tool
def execute_cli_command(command: str) -> str:
return run_command(command)
flag_discriminator = Agent(
name="Flag discriminator",
description="Agent focused on extracting the flag from the output",
instructions="You are an agent tailored to extract the flag from a given output.",
model=OpenAIChatCompletionsModel(
model=os.getenv('CAI_MODEL', "qwen2.5:14b"),
openai_client=AsyncOpenAI(),
)
)
ctf_agent = Agent(
name="CTF agent",
description="Agent focused on conquering security challenges",
instructions="You are a Cybersecurity expert Leader facing a CTF",
tools=[
execute_cli_command,
],
model=OpenAIChatCompletionsModel(
model= os.getenv('CAI_MODEL', "qwen2.5:14b"),
openai_client=AsyncOpenAI(),
),
handoffs = [flag_discriminator]
)
에이전틱 패턴은 인공지능 시스템에서 자율적 또는 반자율적 에이전트들이 정의된 상호작용 프레임워크(패턴) 내에서 작동하여 목표를 달성하는 구조화된 설계 패러다임입니다. 이러한 패턴은 에이전트 간의 조직, 조정 및 통신 방법을 명시하며, 의사 결정, 작업 실행 및 위임을 안내합니다.
에이전틱 패턴(AP)은 튜플로 공식적으로 정의될 수 있습니다:
\[ AP = (A, H, D, C, E) \]
여기서:
패턴을 구축할 때, 일반적으로 다음 범주 중 하나로 분류합니다(다른 범주도 존재함):
일반적인 에이전틱 패턴에 대한 더 많은 정보와 예제는 examples 폴더를 참조하십시오.
에이전틱 흐름(대화) 중에 우리는 상호작용과 턴을 구분합니다.
에이전트는 일반적으로 ReACT 에이전트 모델[^3]을 구현하므로, 각 상호작용은 1) LLM 추론을 통한 추론 단계와 2) 0개 이상의 도구를 호출하는 실행 단계로 구성됩니다. 이는 core.py의 process_interaction()에 정의되어 있습니다.에이전트(또는 패턴)가 더 이상 수행할 작업이 없다고 판단하여 None을 반환할 때 종료됩니다. 이는 core.py의 run()에 정의되어 있습니다.[!NOTE] CAI 에이전트는 Assistants API의 어시스턴트와 관련이 없습니다. 편의상 비슷한 이름을 사용했지만, 그 외에는 완전히 관련이 없습니다. CAI는 전적으로 Chat Completions API로 구동되며, 따라서 호출 간에 상태를 유지하지 않습니다.
CAI는 OpenTelemetry 표준을 채택하여 AI 관찰 가능성을 구현하며, 이를 위해 Phoenix를 활용합니다. Phoenix는 OpenTelemetry 기반 계측을 통해 포괄적인 추적 기능을 제공하므로, 보안 운영을 실시간으로 모니터링하고 분석할 수 있습니다. 이 통합을 통해 침투 테스트 워크플로 전반에 걸쳐 에이전트 상호작용, 도구 사용 및 공격 벡터에 대한 상세한 가시성을 확보할 수 있어, 복잡한 익스플로잇 체인을 디버깅하고, 취약점 발견 프로세스를 추적하며, 보다 효과적인 보안 평가를 위해 에이전트 성능을 최적화하는 것이 더 쉬워집니다.

가드레일은 CAI 에이전트에 중요한 보안 계층을 제공하여, 프롬프트 인젝션 공격으로부터 보호하고 위험한 명령 실행을 방지합니다. 이러한 가드레일은 에이전트와 병렬로 실행되며, 입력과 출력을 검증하여 안전한 작동을 보장합니다. 프레임워크에는 다음이 포함됩니다:
CAI_GUARDRAILS 환경 변수를 통해 활성화/비활성화할 수 있습니다.자세한 구현은 docs/guardrails.md 및 docs/cai_prompt_injection.md를 참조하십시오.
┌─────────────────────────────────┐
│ │
│ Cybersecurity AI (CAI) │
│ │
│ ┌─────────────────┐ │
│ │ Autonomous AI │ │
│ └────────┬────────┘ │
│ │ │
│ │ │
│ ┌────────▼─────────┐ │
│ │ HITL Interaction │ │
│ └────────┬─────────┘ │
│ │ │
└────────────────┼────────────────┘
│
│ Ctrl+C (cli.py)
│
┌───────────▼───────────┐
│ Human Operator(s) │
│ Expertise | Judgment │
│ Teleoperation │
└───────────────────────┘
CAI는 *반자동* 운영에 중점을 둔 사이버보안 AI 구축을 위한 프레임워크를 제공합니다. **완전 자동화**된 사이버보안 시스템은 아직 시기상조이고 복잡한 작업을 처리할 때 상당한 어려움에 직면하기 때문입니다. CAI는 자율 기능을 탐구하지만, 효과적인 보안 운영에는 여전히 보안 프로세스에 전문성, 판단력, 감독을 제공하는 인간의 원격 조작이 필요하다는 점을 인식하고 있습니다.
따라서 HITL(Human-In-The-Loop) 모듈은 CAI의 핵심 설계 원칙이며, 인간의 개입과 원격 조작이 책임 있는 보안 테스트의 필수 요소임을 인정합니다. `cli.py` 인터페이스를 통해 사용자는 실행 중 언제든지 `Ctrl+C`를 눌러 에이전트와 원활하게 상호작용할 수 있습니다. 이 기능은 [core.py](https://github.com/aliasrobotics/cai/blob/HEAD/cai/core.py) 전반과 REPL 추상화 [REPL](https://github.com/aliasrobotics/cai/blob/HEAD/cai/repl)에도 구현되어 있습니다.
## :rocket: Quickstart (빠른 시작)
CAI를 설치한 후 시작하려면 CLI에 `cai`를 입력하세요:```bash
└─# cai
CCCCCCCCCCCCC ++++++++ ++++++++ IIIIIIIIII
CCC::::::::::::C ++++++++++ ++++++++++ I::::::::I
CC:::::::::::::::C ++++++++++ ++++++++++ I::::::::I
C:::::CCCCCCCC::::C +++++++++ ++ +++++++++ II::::::II
C:::::C CCCCCC +++++++ +++++ +++++++ I::::I
C:::::C +++++ +++++++ +++++ I::::I
C:::::C ++++ ++++ I::::I
C:::::C ++ ++ I::::I
C:::::C + +++++++++++++++ + I::::I
C:::::C +++++++++++++++++++ I::::I
C:::::C +++++++++++++++++ I::::I
C:::::C CCCCCC +++++++++++++++ I::::I
C:::::CCCCCCCC::::C +++++++++++++ II::::::II
CC:::::::::::::::C +++++++++ I::::::::I
CCC::::::::::::C +++++ I::::::::I
CCCCCCCCCCCCC ++ IIIIIIIIII
Cybersecurity AI (CAI), vX.Y.Z
Bug bounty-ready AI
CAI>
그러면 CAI가 초기화되고 원하는 보안 작업을 실행할 수 있는 프롬프트가 제공됩니다. 하단의 탐색 표시줄에는 중요한 시스템 정보가 표시됩니다. 이 정보는 CAI로 작업하는 동안 환경을 이해하는 데 도움이 됩니다.
CAI를 시작하는 데 도움이 되는 빠른 데모 비디오입니다. 기본 단계를 안내합니다. — 도구 실행부터 터미널에서 첫 번째 AI 기반 작업 실행까지. 초보자든 단순히 궁금한 분이든, 이 가이드는 CAI 사용을 시작하는 것이 얼마나 쉬운지 보여줍니다.
이제부터 CAI를 입력하고 보안 연습을 시작하세요. 가장 좋은 학습 방법은 예제를 따라 하는 것입니다.
비공개 모델을 사용하려면 .env.example 파일이 제공됩니다. 복사하여 .env로 이름을 바꾸세요. 해당 API 키를 입력하면 CAI를 사용할 준비가 완료됩니다.
환경 변수 목록
Cybersecurity AI (CAI) 플랫폼은 대규모 언어 모델(LLM)을 위한 통합 인터페이스인 OpenRouter와의 원활한 통합을 제공합니다. 이 통합은 고급 AI 기능을 사이버 보안 작업에 활용하려는 사용자에게 매우 중요합니다. OpenRouter는 브리지 역할을 하여 CAI가 다양한 LLM과 통신할 수 있게 해주며, 이를 통해 CAI 내에서 사용되는 AI 에이전트의 유연성과 성능을 향상시킵니다.
CAI에서 OpenRouter 지원을 활성화하려면 .env 파일에 특정 항목을 추가하여 환경을 구성해야 합니다. 이 설정은 CAI가 OpenRouter API와 상호작용하여 Meta-LLaMA와 같은 정교한 모델을 사용할 수 있도록 합니다. 구성 방법은 다음과 같습니다.```bash
CAI_AGENT_TYPE=redteam_agent
CAI_MODEL=openrouter/meta-llama/llama-4-maverick
OPENROUTER_API_KEY= # note, add yours
OPENROUTER_API_BASE=https://openrouter.ai/api/v1
### Azure OpenAI
사이버보안 AI(CAI) 플랫폼은 Azure OpenAI와 원활하게 통합되어, 조직이 엔터프라이즈 호스팅 모델(예: gpt-4o)에 대해 CAI를 실행할 수 있도록 합니다. 이 경로는 고급 모델 기능을 활용하면서 Azure 거버넌스 내에서 운영해야 하는 팀에 이상적입니다.
CAI에서 Azure OpenAI 지원을 활성화하려면 환경을 구성하여 .env 파일에 다음 항목을 추가하세요. 이를 통해 CAI가 Azure 배포 엔드포인트에 도달하고 올바르게 인증할 수 있습니다.```bash
CAI_AGENT_TYPE=redteam_agent
CAI_MODEL=azure/<model-name-deployed>
# Required: keep non-empty even when using Azure
OPENAI_API_KEY=dummy
# Azure credentials and endpoint
AZURE_API_KEY=<your-azure-openai-key>
AZURE_API_BASE=https://<resource>.openai.azure.com/openai/deployments/<deployment-name>/chat/completions?api-version=2025-01-01-preview
CAI는 외부 도구와 서비스를 AI 에이전트와 통합하기 위해 모델 컨텍스트 프로토콜(MCP)을 지원합니다. MCP는 두 가지 전송 메커니즘을 통해 지원됩니다:
2. **STDIO (Standard Input/Output)** - 로컬 프로세스 간 통신을 위한:```bash
CAI>/mcp load stdio myserver python mcp_server.py
연결되면 모든 에이전트에 MCP 도구를 추가할 수 있습니다:```bash CAI>/mcp add burp redteam_agent Adding tools from MCP server 'burp' to agent 'Red Team Agent'... Adding tools to Red Team Agent ┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━┳━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓ ┃ Tool ┃ Status ┃ Details ┃ ┡━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━╇━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┩ │ send_http_request │ Added │ Available as: send_http_request │ │ create_repeater_tab │ Added │ Available as: create_repeater_tab │ │ send_to_intruder │ Added │ Available as: send_to_intruder │ │ url_encode │ Added │ Available as: url_encode │ │ url_decode │ Added │ Available as: url_decode │ │ base64encode │ Added │ Available as: base64encode │ │ base64decode │ Added │ Available as: base64decode │ │ generate_random_string │ Added │ Available as: generate_random_string │ │ output_project_options │ Added │ Available as: output_project_options │ │ output_user_options │ Added │ Available as: output_user_options │ │ set_project_options │ Added │ Available as: set_project_options │ │ set_user_options │ Added │ Available as: set_user_options │ │ get_proxy_http_history │ Added │ Available as: get_proxy_http_history │ │ get_proxy_http_history_regex │ Added │ Available as: get_proxy_http_history_regex │ │ get_proxy_websocket_history │ Added │ Available as: get_proxy_websocket_history │ │ get_proxy_websocket_history_regex │ Added │ Available as: get_proxy_websocket_history_regex │ │ set_task_execution_engine_state │ Added │ Available as: set_task_execution_engine_state │ │ set_proxy_intercept_state │ Added │ Available as: set_proxy_intercept_state │ │ get_active_editor_contents │ Added │ Available as: get_active_editor_contents │ │ set_active_editor_contents │ Added │ Available as: set_active_editor_contents │ └───────────────────────────────────┴────────┴─────────────────────────────────────────────────┘ Added 20 tools from server 'burp' to agent 'Red Team Agent'. CAI>/agent 13 CAI>Create a repeater tab
활성화된 모든 MCP 연결 및 해당 전송 유형을 나열할 수 있습니다:```bash
CAI>/mcp list
VS Code 개발 환경을 통해 개발이 용이합니다. 개발 환경을 사용해 보려면 리포지토리를 클론하고 VS Code를 연 다음 개발 컨테이너 모드로 진입하세요:

이 프로젝트에 기여하려면 MR 전에 Pre-commit을 사용하세요.```bash pip install pre-commit pre-commit # files staged pre-commit run --all-files # all files
### 옵션 요구사항: caiextensions
현재, 확장 기능 유지 관리에 상당한 엔지니어링 노력이 필요하여 공개적으로 제공되지 않습니다. 대신, 협업을 통해 파트너 회사에 선택된 맞춤형 caiextension을 제공하고 있습니다.
### :information_source: 사용 데이터 수집
CAI는 연구자에게 무료로 제공됩니다. CAI의 탐지 정확도를 개선하고, 오픈 보안 연구를 발전시키며, 향후 모델을 개발 및 훈련하기 위해 사용 데이터 수집을 허용하여 CAI 커뮤니티에 기여해 주시기 바랍니다. 이 데이터는 개선 영역 파악, 프레임워크 사용 패턴 이해, 새로운 기능 우선순위 지정, 모델 훈련 및 평가 노력 지원에 도움이 됩니다.
데이터 수집의 법적 근거는 GDPR 제6조(1)(f)항 – 보안 도구 및 연구 유지, 개선, 발전에 관한 CAI의 정당한 이익 – 이며, 연구 목적을 위해 제89조 보호 조치가 적용됩니다.
수집되는 데이터는 다음과 같습니다:
- 기본 시스템 정보(OS 유형, Python 버전)
- 사용자 이름 및 IP 정보
- 도구 사용 패턴 및 성능 지표
- 모델 상호작용 및 토큰 사용 통계
개인정보를 중요하게 생각하며, CAI 개선, 연구 지원, 모델의 책임 있는 훈련 및 평가에 필요한 데이터만 수집합니다. 자세한 내용은 research@aliasrobotics.com으로 문의하십시오. `CAI_TELEMETRY` 환경 변수를 통해 일부 데이터 수집 기능을 비활성화할 수 있지만, 지속적인 연구 및 모델 개발에 기여할 수 있도록 활성화를 유지하는 것을 권장합니다:```bash
CAI_TELEMETRY=False cai
CI/CD 파이프라인을 시뮬레이션하려면 Gitlab 러너 머신에서 다음을 실행할 수 있습니다:```bash
docker run --rm -it
--privileged
--network=exploitflow_net
--add-host="host.docker.internal:host-gateway"
-v /cache:/cache
-v /var/run/docker.sock:/var/run/docker.sock:rw
registry.gitlab.com/aliasrobotics/alias_research/cai:latest bash
## FAQ
OLLAMA가 404 오류를 반환합니다
Ollama의 API는 OpenAI 모드에서 `/v1/chat/completions`를 사용하는 반면, `openai` 라이브러리는 `base_url` + `/chat/completions`를 사용합니다.
저희는 전체 생성 AI 커뮤니티와의 정렬을 위해 후자를 채택하며, 사용자가 직접 `v1`을 추가하여 전자를 사용할 수 있도록 합니다:```bash
OLLAMA_API_BASE=http://IP:PORT/v1
이 주제에 대해 더 자세히 다루는 다음 이슈들을 참조하세요:
모든 caiextensions는 어디에 있나요?
report caiextension을 어떻게 설치하나요?
Gitlab에 SSH 접근을 어떻게 설정하나요?
새 SSH 키 생성```bash ssh-keygen -t ed25519
SSH 에이전트에 키를 추가하세요```bash
ssh-add ~/.ssh/id_ed25519
공개 키를 Gitlab에 추가하세요 키를 복사하여 Gitlab에 추가하세요 https://gitlab.com/-/user_settings/ssh_keys```bash cat ~/.ssh/id_ed25519.pub
확인하려면:```bash
ssh -T [email protected]
Welcome to GitLab, @vmayoral!
Python 캐시를 어떻게 지우나요?```bash find . -name "*.pyc" -delete && find . -name "pycache" -delete
호스트 네트워킹이 ollama와 함께 작동하지 않는다면, 로그인하지 않아서 Docker에서 비활성화되었는지 확인하세요.
OS X에서 Docker가 가끔 이상하게 작동합니다. 다음 메시지가 나타났는지 확인하세요:
*로그인하지 않았기 때문에 호스트 네트워킹이 비활성화되었습니다. 활성화하려면 로그인하세요.*
이 문제가 해결되었는지 확인하고, Dev Container가 8000 포트를 포워딩하지 않는지도 확인하세요(필요한 경우 포트 섹션에서 x를 클릭하세요).
연결을 확인하려면 VSCode devcontainer 내에서:```bash
curl -v http://host.docker.internal:8000/api/version
Run CAI against any target
cai-004-first-message
The starting user prompt in this case is: Target IP: 192.168.3.10, perform a full network scan.
The agent started performing a nmap scan. You could either interact with the agent and give it more instructions, or let it run to see what it explores next.
How do I interact with the agent? Type twice CTRL + C
cai-005-ctrl-c
If you want to use the HITL mode, you can do it by presssing twice Ctrl + C.
This will allow you to interact (prompt) with the agent whenever you want. The agent will not lose the previous context, as it is stored in the history variable, which is passed to it and any agent that is called. This enables any agent to use the previous information and be more accurate and efficient.
Can I change the model while CAI is running? /model
Use /model to change the model.
cai-007-model-change
How can I list all the agents available? /agent
Use /agent to list all the agents available.
cai-010-agents-menu
Where can I list all the environment variables? /env
cai-008-config
How can I monitor token usage and costs?
Use /cost in the REPL for session spend and token statistics, /compact when conversations grow long, and (in TUI mode) the per-terminal cost and model indicators in the UI.```bash
CAI> /cost
전체 명령어 목록은 [CLI 명령 참조](https://github.com/aliasrobotics/cai/blob/HEAD/docs/cli/commands_reference.md)를 참조하세요.
CLI에 대해 더 알아보려면? /help
cai-006-help
전체 실행을 추적하려면 어떻게 해야 하나요?
환경 변수 `CAI_TRACING`을 `CAI_TRACING=true`로 설정하여 추적을 활성화하거나 `CAI_TRACING=false`로 설정하여 비활성화할 수 있습니다.
처음 CAI를 실행할 때 사용자에게 실행 로그와 추적 로그라는 두 가지 경로가 제공됩니다.
cai-009-logs
이전 실행 로그를 사용하여 CAI 기능을 확장할 수 있나요?
예. 현재 CAI는 컨텍스트 내 학습(ICL)에 의존하여 가장 잘 작동합니다. 장기 저장소를 구축하는 대신 관련 이전 로그를 현재 세션에 직접 로드하여 모델이 컨텍스트 내에서 추론할 수 있도록 하는 워크플로우가 권장됩니다.
`/load` 명령어를 사용하여 JSONL 로그를 CAI의 컨텍스트로 가져옵니다(이것은 기존 메모리 로딩 도구를 대체합니다):```bash
CAI>/load logs/cai_20250408_111856.jsonl # Load into current agent
CAI>/load <file> agent <name> # Load into a specific agent
CAI>/load <file> all # Distribute across all agents
CAI>/load <file> parallel # Match to configured parallel agents
# Tip: if you omit <file>, /load uses `logs/last`. Alias: /l
CAI는 시작 시 현재 실행의 JSONL 로그 경로를 (주황색으로 강조 표시하여) 출력하며, 이를 /load에 전달할 수 있습니다:
cai-009-logs
레거시 참고사항: 이전의 '메모리 확장' 메커니즘(일화/의미 저장소 및 오프라인 수집)은 참고용으로만 유지됩니다. 배경 및 레거시 세부사항은 src/cai/agents/memory.py를 참조하세요. 현재 방향은 영구 메모리보다 ICL을 우선시합니다.
스크립트나 추가 정보를 사용하여 CAI 기능을 확장할 수 있나요?
현재 CAI는 텍스트 기반 정보를 지원합니다. 대상에 대한 추가 정보를 시스템 프롬프트나 사용자 프롬프트에 직접 복사하여 붙여넣을 수 있습니다.
어떻게? 시스템(system_master_template.md)이나 사용자 프롬프트(user_master_template.md)에 추가하면 됩니다. 모델 경로를 직접 프롬프트할 수 있으며, 모델이 cat 명령으로 읽어들입니다.
CAI 라이선스는 어떻게 작동하나요?
CAI의 현재 라이선스는 연구 목적의 사용을 제한하지 않습니다. 현지 법률을 준수하는 한, 보안 평가(침투 테스트), 추가 기능 개발, 연구 활동에 CAI를 자유롭게 사용할 수 있습니다.
귀하 또는 귀하의 조직이 CAI로부터 상업적 이익을 얻기 시작하는 경우(예: CAI 기반 침투 테스트 서비스 제공), 프로젝트 유지를 위해 상업용 라이선스가 필요합니다.
CAI 자체는 수익 추구 이니셔티브가 아닙니다. 우리의 목표는 지속 가능한 오픈소스 프로젝트를 구축하는 것입니다. CAI로 이익을 얻는 분들은 그 혜택을 나누고 지속적인 개발을 지원해 주시기를 부탁드립니다.
데비안 기반 시스템에서 사전 요구사항을 설치할 때 Unable to locate package python3.12-venv 오류가 발생합니다!
이 문제를 해결하는 가장 쉬운 방법은 python3.12를 소스에서 직접 설치하는 것입니다.
If you want to cite our work, please use the following (ordered by publication date):```bibtex @article{mayoral2025cai, title={CAI: An Open, Bug Bounty-Ready Cybersecurity AI}, author={Mayoral-Vilches, V{'\i}ctor and Navarrete-Lozano, Luis Javier and Sanz-G{'o}mez, Mar{'\i}a and Espejo, Lidia Salas and Crespo-{'A}lvarez, Marti{~n}o and Oca-Gonzalez, Francisco and Balassone, Francesco and Glera-Pic{'o}n, Alfonso and Ayucar-Carbajo, Unai and Ruiz-Alcalde, Jon Ander and Rass, Stefan and Pinzger, Martin and Gil-Uriarte, Endika}, journal={arXiv preprint arXiv:2504.06017}, year={2025} }
@article{mayoral2025automation, title={Cybersecurity AI: The Dangerous Gap Between Automation and Autonomy}, author={Mayoral-Vilches, V{'\i}ctor}, journal={arXiv preprint arXiv:2506.23592}, year={2025} }
@article{mayoral2025fluency, title={CAI Fluency: A Framework for Cybersecurity AI Fluency}, author={Mayoral-Vilches, V{'\i}ctor and Wachter, Jasmin and Chavez, Crist{'o}bal RJ and Schachner, Cathrin and Navarrete-Lozano, Luis Javier and Sanz-G{'o}mez, Mar{'\i}a}, journal={arXiv preprint arXiv:2508.13588}, year={2025} }
@article{mayoral2025hacking, title={Cybersecurity AI: Hacking the AI Hackers via Prompt Injection}, author={Mayoral-Vilches, V{'\i}ctor and Rynning, Per Mannermaa}, journal={arXiv preprint arXiv:2508.21669}, year={2025} }
@article{mayoral2025humanoid, title={Cybersecurity AI: Humanoid Robots as Attack Vectors}, author={Mayoral-Vilches, V{'\i}ctor}, journal={arXiv preprint arXiv:2509.14139}, year={2025} }
@article{balassone2025evaluation, title={Cybersecurity AI: Evaluating Agentic Cybersecurity in Attack/Defense CTFs}, author={Balassone, Francesco and Mayoral-Vilches, V{'\i}ctor and Rass, Stefan and Pinzger, Martin and Perrone, Gaetano and Romano, Simon Pietro and Schartner, Peter}, journal={arXiv preprint arXiv:2510.17521}, year={2025} }
@article{mayoral2025caibench, title={CAIBench: A Meta-Benchmark for Evaluating Cybersecurity AI Agents}, author={Mayoral-Vilches, V{'\i}ctor and Balassone, Francesco and Navarrete-Lozano, Luis Javier and Sanz-G{'o}mez, Mar{'\i}a and Crespo-{'A}lvarez, Marti{~n}o and Rass, Stefan and Pinzger, Martin}, journal={arXiv preprint arXiv:2510.24317}, year={2025} }
## 감사의 말
CAI는 원래 [Alias Robotics](https://aliasrobotics.com)에서 개발되었으며, 유럽 EIC 액셀러레이터 프로젝트 RIS (GA 101161136) - HORIZON-EIC-2023-ACCELERATOR-01 콜의 공동 자금 지원을 받았습니다. 원래의 에이전트 원칙은 OpenAI의 [`swarm`](https://github.com/openai/swarm) 라이브러리에서 영감을 받아 새로운 프로토타입으로 변환되었습니다. 이 프로젝트는 또한 [`LiteLLM`](https://github.com/BerriAI/litellm) 및 [`phoenix`](https://github.com/Arize-ai/phoenix)를 포함한 다른 관련 오픈 소스 빌딩 블록을 사용합니다.
### 학술 협력
CAI는 학술 기관과의 지속적인 연구 협력을 통해 혜택을 받고 있습니다. 협업 프로젝트, 데이터셋 접근 또는 학술 라이선스에 관심이 있는 연구자는 [email protected]으로 문의하시기 바랍니다. 당사는 다음을 위한 특별 지원을 제공합니다:
- 박사 연구 프로젝트
- 학술 벤치마킹 연구
- 보안 교육 이니셔티브
- 연구실의 오픈 소스 기여
[^1]: 틀림없이, Chain-of-Thought 에이전트 패턴은 Hierarchical 에이전트 패턴의 특수한 경우입니다.
[^2]: Kamhoua, C. A., Leslie, N. O., & Weisman, M. J. (2018). Game theoretic modeling of advanced persistent threat in internet of things. Journal of Cyber Security and Information Systems.
[^3]: Yao, S., Zhao, J., Yu, D., Du, N., Shafran, I., Narasimhan, K., & Cao, Y. (2023, January). React: Synergizing reasoning and acting in language models. In International Conference on Learning Representations (ICLR).
[^4]: Deng, G., Liu, Y., Mayoral-Vilches, V., Liu, P., Li, Y., Xu, Y., ... & Rass, S. (2024). {PentestGPT}: Evaluating and harnessing large language models for automated penetration testing. In 33rd USENIX Security Symposium (USENIX Security 24) (pp. 847-864).
OT로보틱스IT (웹) - CAI와 alias0: Mercado Libre 전자상거래 |
|---|
ITAI 기반 취약점 연구의 대중화: CAI는 비보안 분야 전문가와 경험 많은 연구자 모두가 보다 효율적으로 취약점을 발견할 수 있게 하여 보안 연구 커뮤니티를 확장하고, 중소기업이 자율적 보안 평가를 수행할 수 있도록 지원
CAI로 휴머노이드 로봇의 사이버보안을 탐색하고 새로운 공격 벡터를 식별, (a) 은밀한 감시 노드로 동시에 작동하며 (b) 능동적 사이버 작전 플랫폼으로 활용될 수 있음을 보여줌
| 오픈 소스 버그 바운티 지원 사이버보안 AI, CAI | 자동화와 자율성 사이의 위험한 격차 | 사이버보안 AI 활용 능력(CAI Fluency) 프레임워크 | 프롬프트 인젝션으로 AI 해커 해킹하기 |
|---|
| 공격 벡터로서의 휴머노이드 로봇 | 휴머노이드 로봇의 사이버보안 | 공격/방어 CTF에서 에이전틱 사이버보안 평가 | CAIBench: 사이버보안 AI 에이전트 평가를 위한 메타 벤치마크 |
|---|
DeepSeek V3, DeepSeek R1Qwen2.5 72B, Qwen2.5 14B 등| 설명 | 영어 | 스페인어 |
|---|
| 에피소드 0: CAI란 무엇인가? | 사이버보안 AI(CAI) 설명 | ![]() | ![]() |
에피소드 1: CAI 프레임워크 | 비전 및 윤리 - CAI背后的 핵심 동기를 살펴보고, 그 개발을 이끄는 중요한 윤리 원칙을 깊이 탐구합니다. CAI의 동기와 사이버보안 및 CAI 프레임워크의 미래에 적극적으로 기여할 수 있는 방법을 이해합니다. | ![]() | |
| 에피소드 2: 제로에서 사이버 히어로로 | AI로 사이버보안에 입문하기 - 완전한 초보자가 CAI 및 AI 도구를 사용하여 사이버보안 실무자가 되기 위한 종합 가이드입니다. 인공지능을 활용하여 사이버보안 학습 여정을 가속화하는 방법을 배우십시오. 기본 보안 개념 이해부터 실제 보안 평가 수행까지, 사전 사이버보안 경험이 필요하지 않습니다. | ![]() | |
| 에피소드 3: Vibe-Hacking 튜토리얼 | "나의 첫 번째 해킹" - 초보자를 위한 Vibe-Hacking 가이드입니다. 기본 에이전트를 사용한 간단한 웹 보안 해킹을 시연하고, CAI Python API를 활용하여 도구를 활용하고 CAI 출력을 해석하는 방법을 보여줍니다. 또한 다양한 LLM 모델을 비교하여 해킹 작업에 가장 적합한 모델을 찾는 방법을 배웁니다. | ![]() | ![]() |
| 에피소드 4: ReAct 소개 | LLM의 진화 - LLM이 기본 언어 모델에서 고급 다중 에이전트 AI 시스템으로 어떻게 진화했는지 알아봅니다. 기본 LLM에서 Chain-of-Thought 및 Reasoning LLM을 거쳐 ReAct 및 다중 에이전트 아키텍처로의 발전을 살펴봅니다. 기본 용어를 익힙니다. | ![]() | |
| 에피소드 5: CTF 챌린지에서의 CAI | CAI를 사용하여 CTF(Capture The Flag) 대회에 참여하세요. 웹 익스플로잇, 암호학, 리버스 엔지니어링, 포렌식을 포함한 다양한 사이버보안 챌린지를 해결하기 위해 AI 에이전트를 활용하는 방법을 배웁니다. 경쟁 해킹 시나리오에 맞게 CAI를 구성하고 지능형 자동화로 CTF 성능을 극대화하는 방법을 알아보십시오. | ![]() | ![]() |
부록 1: CAI 0.5.x 릴리스 | CAI 버전 0.5 소개. 새로운 다중 에이전트 기능, /history, /compact, /graph 또는 /memory와 같은 새로운 명령, 그리고 CAI가 전 세계에 퍼져 있는 OT 히트 펌프에서 중요한 보안 결함을 발견한 사례 연구를 포함합니다. | ![]() | ![]() |
부록 2: CAI 0.4.x 릴리스 및 alias0 | 스트리밍과 개선된 MCP 지원을 갖춘 CAI 버전 0.4 소개. 또한 개인정보 보호 우선 사이버보안 AI인 alias0을 소개합니다. 이는 개인정보 보호 중심 설계(Privacy-by-Design) 아키텍처를 구현하고 사이버보안 벤치마크에서 최첨단 결과를 얻는 모델-오브-모델스 지능입니다. | ![]() | |
| 부록 3: 사이버보안 AI 커뮤니티 미팅 #1 | 첫 번째 사이버보안 AI(CAI) 커뮤니티 미팅으로, 학계, 산업계, 국방 분야에서 40명 이상의 참가자가 모여 CAI 뒤에 있는 오픈 소스 기반 구조(오픈되고 모듈식이며 버그 바운티에 적합한 사이버보안을 위한 에이전트 AI 시스템을 구축하도록 설계된 프로젝트)에 대해 논의했습니다. | ![]() | |
부록 4: CAI PRO PoC | CAI PRO 기능의 짧은 개념 증명 데모로, 무제한 alias1 토큰, 제한 없는 AI, 엔터프라이즈급 보안 테스트 기능을 갖춘 전문가용 에디션을 선보입니다. | ![]() | |
부록 5: CAI PoC | 오픈 소스 프레임워크의 핵심 기능을 AI 기반 보안 테스트 및 취약점 발견에 활용하는 CAI 커뮤니티 에디션의 짧은 개념 증명 데모입니다. | ![]() | |
부록 6: Jaula del N00B에서의 CAI | CAI (CIBERSEGURIDAD CON IA) LUIJAIT EN LA JAULA DEL N00B - 인기 있는 스페인어 사이버보안 팟캐스트/쇼에서 CAI 프레임워크 기능 시연 및 논의. | ![]() |
에이전틱 패턴 범주 | 설명 |
|---|
Swarm (분산형) | 에이전트들이 작업을 공유하고 중앙 조정자 없이 자체적으로 책임을 할당합니다. 핸드오프는 동적으로 발생합니다. 피어-투-피어 에이전틱 패턴의 예로는 CTF 문제를 해결하기 위해 협력하는 에이전트 팀이 동적 핸드오프를 수행하는 CTF 에이전틱 패턴이 있습니다. |
Hierarchical (계층형) | 최상위 에이전트(예: "PlannerAgent")가 구조화된 핸드오프를 통해 전문 하위 에이전트에게 작업을 할당합니다. 또는 에이전트 구조가 사전 정의된 핸드오프로 에이전틱 패턴에 하드코딩됩니다. |
Chain-of-Thought (순차적 워크플로) | 에이전트 A가 출력을 생성하고 에이전트 B에게 넘겨 재사용 또는 개선하도록 하는 구조화된 파이프라인입니다. 핸드오프는 선형 시퀀스를 따릅니다. 체인-오브-소트 에이전틱 패턴의 예로는 ReasonerAgent가 있으며, 이는 추론형 LLM이 주 에이전트에게 컨텍스트를 제공하여 선형 시퀀스로 CTF 문제를 해결하는 것입니다.[^1] |
Auction-Based (경쟁적 할당) | 에이전트들이 우선순위, 역량 또는 비용에 따라 작업에 "입찰"합니다. 결정 에이전트가 입찰을 평가하고 가장 적합한 에이전트에게 작업을 핸드오프합니다. |
Recursive (재귀형) | 단일 에이전트가 자신의 출력을 지속적으로 개선하며, 실행자와 평가자 역할을 모두 수행하고, 핸드오프(내부 또는 외부)를 자신에게 합니다. 재귀적 에이전틱 패턴의 예로는 CodeAgent(재귀 에이전트로 사용될 때)가 있으며, 코드를 실행하고 자신의 지침을 업데이트하여 출력을 지속적으로 개선합니다. |
| 변수 | 설명 |
|---|
| CTF_NAME | 실행할 CTF 챌린지의 이름 (예: "picoctf_static_flag") |
| CTF_CHALLENGE | 테스트할 CTF 내 특정 챌린지 이름 |
| CTF_SUBNET | CTF 컨테이너의 네트워크 서브넷 |
| CTF_IP | CTF 컨테이너의 IP 주소 |
| CTF_INSIDE | 컨테이너 내부에서 CTF를 정복할지 여부 |
| CAI_MODEL | 에이전트에 사용할 모델 |
| CAI_DEBUG | 디버그 출력 레벨 설정 (0: 도구 출력만, 1: 자세한 디버그 출력, 2: CLI 디버그 출력) |
| CAI_BRIEF | 간략 출력 모드 활성화/비활성화 |
| CAI_MAX_TURNS | 에이전트 상호작용의 최대 턴 수 |
| CAI_TRACING | OpenTelemetry 추적 활성화/비활성화 |
| CAI_AGENT_TYPE | 사용할 에이전트 지정 (boot2root, one_tool...) |
| CAI_STATE | 상태 유지 모드 활성화/비활성화 |
| CAI_MEMORY | 메모리 모드 활성화/비활성화 (episodic, semantic, all) |
| CAI_MEMORY_ONLINE | 온라인 메모리 모드 활성화/비활성화 |
| CAI_MEMORY_OFFLINE | 오프라인 메모리 활성화/비활성화 |
| CAI_ENV_CONTEXT | 디렉터리와 현재 환경을 LLM 컨텍스트에 추가 |
| CAI_MEMORY_ONLINE_INTERVAL | 온라인 메모리 업데이트 간 턴 수 |
| CAI_PRICE_LIMIT | 대화의 가격 한도 (달러) |
| CAI_REPORT | 리포터 모드 활성화/비활성화 (ctf, nis2, pentesting) |
| CAI_SUPPORT_MODEL | 지원 에이전트에 사용할 모델 |
| CAI_SUPPORT_INTERVAL | 지원 에이전트 실행 간 턴 수 |
| CAI_WORKSPACE | 작업 공간의 이름 정의 |
| CAI_WORKSPACE_DIR | 작업 공간이 위치한 디렉터리 경로 지정 |
| CAI_GUARDRAILS | 프롬프트 인젝션 보호를 위한 가드레일 활성화/비활성화 (기본값: true) |