카테고리 없음

Windows/WSL에서 CAI로 IDA-MCP 활용하기

e_yejun 2025. 10. 25. 15:59

 

MCP(Model Context Protocol)가 등장하면서, LLM의 활용가 더욱 증가하고 있다.

대표적으로 Claude Desktop을 활용하는데, Cybersecurity AI(CAI)라는 프레임워크가 오픈소스로 등장해서 사용해보았다.

해당 프레임워크는 OpenAI, Anthropic, OLLAMA 등의 LLM 모델을 선택해서 사용할 수 있다.

지속적으로 개발되는 중이라 기능이 조금씩 달라질 수 있겠지만, 사용해본 경험을 정리하고자 글을 작성한다.

 

Environment

  • CAI 프레임워크 : WSL (ubuntu 22.04)
  • LLM : Open AI (Model : GPT-5)
  • MCP : IDA-MCP

 

Installation (WSL)

sudo apt-get update && \
    sudo apt-get install -y git python3-pip python3-venv

# Create the virtual environment
python3 -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' > .env

# Launch CAI
cai  # first launch it can take up to 30 seconds

 

CAI 홈페이지를 따라 쉽게 cai 프레임워크를 실행시킬 수 있다.

이때, 사용할 모델의 API KEY를 구성해줘야 한다. 

 

 

 

uv Installation

powershell -Command "Set-ExecutionPolicy RemoteSigned -Scope CurrentUser"
powershell -Command "Invoke-RestMethod https://astral.sh/uv/install.ps1 | Invoke-Expression"

MCP 서버를 실행하기 위해 윈도우에서 uv를 설치한다.

 

 

 

IDA-MCP

pip uninstall ida-pro-mcp
pip install https://github.com/mrexodia/ida-pro-mcp/archive/refs/heads/main.zip
ida-pro-mcp --install

ida mcp를 설치하는 명령어이다. 이후 IDA 도구에서 [Edit] -> [Plugin] -> [MCP]를 눌러서 IDA MCP 서버를 실행한다. 

[MCP Server started at http://localhost:13337가 출력되면서 IDA MCP 서버가 올라갔음을 확인할 수 있다.

하지만 ida는 윈도우에서 실행되는데, WSL은 윈도우에서 한번 더 들어가는 가상환경이다.

 

따라서, sse로 한번 더 중계해줘서 연결해야 한다.

  • stdio : 동일 OS 컨텍스트에서 클라이언트가 서버를 자식 프로세스로 띄우고 표준 입출력으로 통신하는 로컬 방식
  • sse : HTTP 기반의 서버 → 클라이언트 단방향 스트리밍을 사용하고, 요청은 HTTP(POST)·응답은 SSE로 분리하여 프로세스/호스트가 달라도 동작하는 네트워크 방식
uv run ida-pro-mcp --ida-rpc http://127.0.0.1:13337 --transport http://0.0.0.0:8744/sse

transport의 바인딩 주소는 환경에 따라 적절히 정해주면 된다. 

기본적인 윈도우 방화벽이 8744 포트를 열어두진 않아서 0.0.0.0을 사용해도 큰 문제는 없으나, 열려있는 경우 외부에서 접속할 수 있으니, WSL의 ip 대역으로 주는 것을 권장한다.

 

 

 

Connecting to SSE

WSL 안에서 CAI 프레임워크를 실행하기 때문에, 호스트 OS의 vEthernet 주소로 SSE server를 연결해주면 된다.

ipconfig

powershell에서 ipconfig 명령으로 확인할 수 있다.

 

cai
/mcp load http://172.18.192.1:8744/sse ida

/mcp 옵션으로 sse server를 연결시킬 수 있다.

 

/mcp tools ida

 

연결된 MCP 서버의 도구들을 확인할 수 있다.

 

/mcp list

연결된 MCP 서버를 확인할 수 있다.

 

/agent list

CAI 프레임워크에서 미리 구성해놓은 에이전트를 확인할 수 있다. 

IDA-MCP를 통해 바이너리를 분석해보는 것이 목표이므로, 16번(Reverse Engineering Specialist) 에이전트를 사용해볼 것이다.

 

/mcp add ida 16

16번 에이전트에 ida mcp의 도구가 추가한다.

 

/mcp associations

associations를 통해 Agent와 MCP Server가 잘 연결되어있음을 확인가능하다.

 

/agent 16

16번 에이전트를 선택해준다.

 

/model-show

LLM 모델을 선택해준다. 글 작성 시점에는 1692의 모델이 리스트업 되어있었다. Max Token과 Cost도 표시해준다.

지속적으로 개발되고 있어서 그런지, 선택했을 때 목록 설명과 일치하지 않은 모델이 선택되었다.

잘못 선택되는 모델의 거리만큼 고려해서 선택해주면 된다.

(중간 생략)

812를 선택하니 gpt-4o-mini-search-preview-2025-03-11 가 선택되었다.

10개가 밀려서 선택되었으니 822를 선택하면 gpt-5가 선택된다.

 

/model 822  # gpt-5

 

개발되면서 값이 바뀔 수 있으니, 꼭 확인하도록 하자.

이로서 도구를 쓰는 준비가 완료되었다. 이제 기존 LLM을 사용하듯이 프롬프트를 보내면 된다.

 

 

 

Using IDA-MCP

IDA에 바이너리가 올라간 상태에서 드림핵 리버싱 문제를 풀어달라고 요청했다.  

ida-mcp 도구에 있는 check_connection을 실행한 것을 볼 수 있으며, 이후 get_function_by_name으로 함수를 선택하면서 분석을 이어나가는 것을 확인할 수 있다.

 

Example

드림핵에서 제공하는 리버싱 문제를 풀이해볼 것이다. IDA-MCP는 정적 분석 기반이므로, 정적 분석으로 풀이할 수 있는 4레벨 문제를 임의로 선택해서 진행했다.

IDA에 문제 바이너리를 올리고, 이전 사진 처럼 풀어달라는 프롬프트를 작성했다.

연결을 확인하고, 위와 같이 main 함수부터 분석을 자동으로 수행한다. 호출되는 함수도 자동으로 파악하고 분석해준다.

 

분석이 끝나면, 분석 요약과 동시에 플래그를 얻을 수 있는 입력 값을 제공해준다. Wargame 문제이므로, 해당 부분은 블러 처리를 하였다.

 

CAI 프레임워크가 도출한 값을 입력하면 플래그를 얻을 수 있다.

 

 

 

Conclusion

Wargame은 개인의 분석 실력 향상을 위해 공부를 위한 컨텐츠이며, 본 CAI 프레임워크의 도구 사용이 적절한지 확인을 위해 활용되었다. 결국 다양한 프로그램 분석 및 환경에서 AI의 활용은 효율적이고 필수적이라고 생각한다.

예전에 처음 개발 프로젝트를 진행했을 때는 AI를 사용하지 않고 개발해내는 것이 실력이라고 생각했었는데, 요즘에는 AI 활용을 통해 도출된 코드가 요구사항에 맞는지 검토하면서 적절하게 잘 활용하는 능력이 중요하다고 느낀다.

 

MCP의 등장에 따라 다양한 도구가 빠르게 개발 및 배포되고 있다. 관심을 가지고 한번쯤 활용해보면, CTF나 실제 프로그램 분석 상황에서도 활용 가능할 것이다. 지식적으로 제공하는 글은 아니지만 정보보안 전공자들에게 좋은 인사이트가 되었으면 좋겠다.

 

 

 

 

Reference

 

CAI

Cybersecurity AI (CAI) A lightweight, ergonomic framework for building bug bounty-ready Cybersecurity AIs (CAIs). Key Features 🤖 300+ AI Models: Support for OpenAI, Anthropic, DeepSeek, Ollama, and more 🔧 Built-in Security Tools: Ready-to-use tools f

aliasrobotics.github.io

 

GitHub - aliasrobotics/cai: Cybersecurity AI (CAI), the framework for AI Security

Cybersecurity AI (CAI), the framework for AI Security - aliasrobotics/cai

github.com

 

GitHub - mrexodia/ida-pro-mcp: AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP.

AI-powered reverse engineering assistant that bridges IDA Pro with language models through MCP. - mrexodia/ida-pro-mcp

github.com

 

해커들의 놀이터, Dreamhack

해킹과 보안에 대한 공부를 하고 싶은 학생, 안전한 코드를 작성하고 싶은 개발자, 보안 지식과 실력을 업그레이드 시키고 싶은 보안 전문가까지 함께 공부하고 연습하며 지식을 나누고 실력 향

dreamhack.io