LoRexxar/Kunlun-M
요약
Kunlun-M(구 Cobra-W)은 소스 코드의 보안 취약점을 탐지하는 오픈 소스 자동화 코드 감사 도구입니다. 보안 연구자를 위해 정확도와 정밀도를 높이는 데 집중하며, PHP, JavaScript, Solidity 등을 지원하고 AI 에이전트와의 원클릭 통합 기능을 제공합니다.
핵심 포인트
- Cobra-W 2.0에서 Kunlun-M으로 명칭 변경 및 보안 연구자 중심의 도구로 진화
- PHP, JavaScript의 의미론적 분석 및 Chrome 확장 프로그램, Solidity 스캐닝 지원
- OpenClaw, Codex, Claude Code 등 AI 에이전트와의 원클릭 통합 지원
- 오픈 소스 기반의 화이트박스 감사(white-box auditing) 도구 지향
中文 | English
Cobra-W 2.0부터 Cobra-W는 공식적으로 Kunlun-M(昆仑镜)으로 명칭이 변경되었습니다.
Python 3.10+ 사용을 권장하며 (Python 3.13+ 선호), Python 2.7은 수명이 종료(end-of-life)되었습니다.
- AI 시대 덕분에 매우 낮은 비용으로 프로젝트의 기본적인 유지보수 문제를 해결할 수 있게 되었습니다. 프로젝트의 개념이 오늘날의 기준으로 볼 때 최첨단은 아닐지라도, 안정적인 코어는 여전히 견고한 도구 참조(tool reference) 역할을 합니다. 저는 Codex를 사용하여 최소한의 비용으로 빠르게 반복(iterate)을 지속하고, 새로운 기능을 대담하게 실험하며, AI 시대의 방법론을 사용하여 잠재적으로 매우 유용한 도구를 구축하려고 시도할 것입니다.
_ __ _ ___ ___
| | / / | | | \/ |
| |/ / _ _ _ __ | | _ _ _ __ | . . |
...
Cobra는 여러 프로그래밍 언어로 작성된 소스 코드에서 가장 중요한 보안 이슈와 취약점(vulnerabilities)을 탐지하는 것을 지원하는 소스 코드 보안 감사 (source code security audit) 도구입니다.
Cobra-W는 Cobra 2.0에서 진화한 포크(fork)로, 도구의 초점을 가능한 많은 위협을 발견하는 것에서 취약점 탐지의 정확도(accuracy)와 정밀도(precision)를 개선하는 것으로 전환했습니다. https://github.com/LoRexxar/Kunlun-M/tree/cobra-w
Kunlun-Mirror는 Cobra-W 2.0에서 진화했습니다. 기존 도구를 유지보수하고 개선하는 고통스러운 과정을 거친 후, Kunlun-Mirror (昆仑镜)는 도구의 초점을 보안 연구자(security researchers)를 지원하는 방향으로 전환하여, 실제 도구 기반 사용 환경에서의 사용자 경험을 지속적으로 개선하고 있습니다.
이 도구는 현재 주로 PHP 및 JavaScript에 대한 의미론적 분석(semantic analysis)과 Chrome 확장 프로그램(extensions) 및 Solidity에 대한 기본적인 스캐닝을 지원합니다.
내장된 스킬(Built-in Skills)이 추가되어, 빠른 취약점 스캐닝을 위해 AI 에이전트 (AI Agents: OpenClaw / Codex / Claude Code / Hermes 등)와의 원클릭 통합을 지원합니다.
KunLun-M은 아마도 시장에서 유일하게 오픈 소스(open-source)이며 활발하게 유지보수되는 자동화된 코드 감사(automated code audit) 도구일 것입니다. 우리는 이 오픈 소스 도구가 화이트박스 감사(white-box auditing)의 발전을 도울 수 있기를 바랍니다:>
먼저, 의존성(dependencies)을 설치하세요:
pip install -r requirements.txt
설정 파일(configuration file)을 마이그레이션하세요:
cp Kunlun_M/settings.py.bak Kunlun_M/settings.py
데이터베이스를 초기화하세요 (기본적으로 SQLite가 사용됩니다):
python kunlun.py init initialize
데이터베이스에 규칙(rules)을 로드하세요 (규칙 파일이 수정될 때마다 매번 필요합니다):
python kunlun.py config load
Docker를 통해 설치하세요. Docker는 기본적으로 웹 모드(web mode)로 시작됩니다:
sudo docker build -t kunlun-m -f ./docker/Dockerfile .
MySQL과 연결하면 로컬 스캐닝(local scanning)을 수행하고 웹 인터페이스를 통해 결과를 확인할 수 있습니다.
스캔 모드(scan mode)를 사용하여 다양한 소스 코드를 스캔하세요:
python3 kunlun.py scan -t ./tests/vulnerabilities/
리포트(reports)를 내보내기 하세요 (JSON/Markdown/HTML):
python3 kunlun.py scan -t ./tests/vulnerabilities/ -f json -o /tmp/report.json
python3 kunlun.py scan -t ./tests/vulnerabilities/ -f md -o /tmp/report.md
python3 kunlun.py scan -t ./tests/vulnerabilities/ -f html -o /tmp/report.html
설정 모드(config mode)를 사용하여 로컬 규칙/탬퍼(rules/tampers)를 로드하세요:
python3 kunlun.py config load # 데이터베이스에 규칙 로드
python3 kunlun.py config recover # 데이터베이스의 규칙을 파일로 복구
python3 kunlun.py config loadtamper # 데이터베이스에 탬퍼 로드
...
표시 모드(show mode)를 사용하여 현재의 모든 규칙/탬퍼를 확인하세요:
python3 kunlun.py show rule # 모든 규칙 표시
python3 kunlun.py show rule -k php # 모든 PHP 규칙 표시
python3 kunlun.py show tamper # 모든 탬퍼 표시
모든 하위 명령(sub-command)에 -h 플래그를 사용하여 상세 도움말 문서를 확인할 수 있습니다.
만약 Kunlun-M을 실행하기 위해 AI 에이전트(AI Agent: OpenClaw / Codex / Claude Code / Hermes 등)를 사용 중이라면, 에이전트에게 다음과 같은 메시지를 "기본 설치 지침(basic installation instruction)"으로 간단히 보내면 됩니다:
다운로드
https://github.com/LoRexxar/Kunlun-M.git
그리고 해당 에이전트의 스킬(kunlun-m-general)을 로드하세요.
에이전트는 일반적으로 저장소 내의 skills/kunlun-m-general/ 디렉토리를 자동으로 인식하며, 문서를 따라 초기화 및 이후의 스캐닝을 완료할 것입니다.
test/report 명령어가 포함된 더 상세한 스크립트 워크플로우 (scripted workflow)는 docs/skill_kunlunm_general.md를 참조하십시오.
게이팅 (gating) 기능(안정적인 JSON 리포트 + 명확한 종료 코드)과 함께 CI/CD에서 스캔을 실행하십시오:
python tools/ci_scan.py --target . --output artifacts/kunlun-ci.json --fail-on high
더 많은 파라미터, 종료 코드 (exit codes), 리포트 구조, 그리고 GitHub Actions/GitLab CI/Jenkins 예시는 docs/ci.md를 참조하십시오.
KunLun-M 대시보드는 apitoken을 통해 API에 접근하여 데이터를 검색할 수 있는 기능을 제공합니다.
기본 포트는 9999입니다:
python3 .\kunlun.py web -p 9999
Kunlun_M/settings.py 내의 API_TOKEN을 수정하고, ?apitoken=...을 통해 API에 접근하여 데이터를 검색하십시오:
# api profile
API_TOKEN = "secret_api_token"
API 목록
/api/task/list 작업 목록 보기
/api/task/<int:task_id> 작업 상세 정보 보기
/api/task/<int:task_id>/result 작업 스캔 결과 보기
...
콘솔 모드 (Console mode) 사용을 권장합니다:
python3 kunlun.py console
_ __ _ ___ ___
| | / / | | | \/ |
...
PHP 역직렬화 체인 (deserialization chains)을 자동으로 찾는 간단한 모델입니다.
이전 버전에서 업데이트 중이며 동일한 타겟을 스캔하는 경우, -r 파라미터를 사용하여 데이터베이스를 갱신하십시오.
python3 .\kunlun.py plugin php_unserialize_chain_tools -t {target_path}
플러그인이 완전한 PHP 역직렬화 체인을 식별하면, 타겟 디렉토리에 체인 JSON 요약, chain_XX.php (체인당 하나의 PoC), 그리고 일괄 실행 스크립트인 poc_all_chains.php를 포함하는 .kunlunm_unserialize_poc/ 디렉토리를 자동으로 생성합니다.
생성된 chain_XX.php는 재귀적 스캔 (recursive scanning) 과정에서 저장된 계층적 관계 및 속성 정보를 우선적으로 사용하여 객체 그래프 (object graph)를 구성합니다. 정보가 불충분할 경우, 속성 경로 추출 (property path extraction) 및 폴백 관계 (fallback relationships)로 전환합니다.
또한 암시적 매직 메서드 체인 (__toString / __call / __wakeup / __invoke)에 대한 대응하는 트리거 구문 (trigger syntax)도 출력합니다.
python3 .\kunlun.py plugin php_unserialize_chain_tools -t {target_path} -o /tmp/unser_poc
대량의 PHP 코드를 감사(auditing)할 때, 잠재적인 진입 페이지(또는 개발자가 간과했을 수 있는 페이지)를 빠르게 발견할 수 있도록 설계된 흥미롭고 유용한 도구입니다.
python3 .\kunlun.py plugin entrance_finder -t {target_path} -l 3
문서 인덱스 및 개발 노트:
규칙(Rule) 플러그인은 다음 구조를 따릅니다:
rules/{language_type}/CVI_xxxx.py
rules 디렉토리 내에서는 올바르게 명명된 규칙만 성공적으로 로드됩니다. 명명 형식은 반드시 CVI_{number}.py를 엄격히 따라야 합니다.
규칙 템플릿으로 rules/rule.template을 참조할 수 있습니다.
.kunlunmignore는 스캔 경로를 무시하는 데 사용됩니다. 현재 구현은 * 와일드카드(정규 표현식 \w+로 변환됨)만 지원하며, vendor/* 또는 node_modules/*와 같은 디렉토리나 파일 패턴을 무시하는 데 적합합니다.
매칭된 파일은 스캔되지 않습니다.
또한 scan -b를 사용하여 쉼표로 구분된 경로 블랙리스트를 지정할 수 있습니다 (예: -b vendor,node_modules).
KunLun-M은 404Team StarLink 프로젝트의 일부입니다. KunLun-M에 대해 궁금한 점이 있거나 다른 커뮤니티 멤버와 연결하고 싶다면 StarLink 프로젝트의 그룹 가입 방법을 참조하십시오.
이 도구의 개발에 기여해 주신 다음 기여자분들께 감사드립니다:
핵심 개발자 (Core Developer):
주요 기여자 (Important Contributors):
기타 기여자 (Minor Contributors):
AI 자동 생성 콘텐츠
본 콘텐츠는 GitHub AI Coding Assistants의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기