
The Cyber Swiss Army Knife - 암호화, 인코딩, 압축 및 데이터 분석을 위한 웹 앱
CyberChef는 웹 브라우저에서 모든 종류의 "사이버" 작업을 수행할 수 있는 간단하고 직관적인 웹 앱입니다. 이러한 작업에는 XOR 및 Base64와 같은 간단한 인코딩, AES, DES 및 Blowfish와 같은 더 복잡한 암호화, 바이너리 및 hexdump 생성, 데이터 압축 및 해제, 해시 및 체크섬 계산, IPv6 및 X.509 구문 분석, 문자 인코딩 변경 등이 포함됩니다.
이 도구는 기술적 배경이 있거나 없는 분석가 모두가 복잡한 도구나 알고리즘을 다룰 필요 없이 데이터를 복잡한 방식으로 조작할 수 있도록 설계되었습니다. 한 분석가가 수년에 걸쳐 10% 혁신 시간 동안 구상하고 설계하고 구축하며 점진적으로 개선해 왔습니다.
CyberChef 공식 웹사이트는 여기에서 확인할 수 있습니다 - 즐겁게 사용해 보세요!
Docker(도구 체인 불필요)로 CyberChef를 실행하거나 Node.js로 소스에서 빌드할 수 있습니다.
전제 조건
docker build --tag cyberchef --ulimit nofile=10000 .
docker run -it -p 8080:8080 cyberchef
http://localhost:8080로 이동합니다.빌드 과정을 건너뛰고 싶다면 사전 빌드된 이미지를 사용할 수 있습니다.
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
이전과 마찬가지로 브라우저에서 http://localhost:8080로 이동합니다.
이 이미지는 GitHub Workflows를 통해 빌드 및 게시됩니다.
CyberChef를 개발하거나 Docker 없이 실행하려면 Node.js로 직접 빌드할 수 있습니다.
전제 조건
v24 (Node.js 지원 참고)[!NOTE]
컴퓨터의 다른 프로젝트와의 충돌을 피하기 위해 nvm을 사용하여 Node.js 버전을 관리하고 이 프로젝트에 있는 현재 개발 버전을 사용할 수 있습니다.
설정
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
일반적인 작업
대규모 레시피를 빌드하는 동안 메모리 부족 오류가 발생하면 npm run setheapsize를 사용하여 Node의 힙 크기를 늘리십시오.
CyberChef에는 네 가지 주요 영역이 있습니다.
단순하거나 복잡한 방식으로 원하는 만큼 많은 작업을 사용할 수 있습니다. 몇 가지 예는 다음과 같습니다.
CyberChef의 URL 해시를 조작하면 페이지가 열릴 때의 초기 설정을 변경할 수 있습니다.
형식은 https://gchq.github.io/CyberChef/#recipe=Operation()&input=...입니다.
지원되는 인수는 recipe, input(Base64로 인코딩됨), theme입니다.
CyberChef는 다음을 지원하도록 빌드되었습니다.
CyberChef는 Node.js v24를 완전히 지원하도록 빌드되었으며, 활성 LTS 릴리스가 되기 전에 Node.js v26에 대해서도 테스트됩니다. 자세한 내용은 "Node API" wiki 페이지를 참조하십시오.
CyberChef 보안 정책을 참조하십시오.
CyberChef에 새 작업을 기여하는 것은 매우 쉽습니다! 퀵스타트 스크립트가 전체 과정을 안내합니다. 기본적인 JavaScript를 작성할 수 있다면 CyberChef 작업도 작성할 수 있습니다.
설치 안내, 새 작업 및 테마 추가 방법 가이드, 저장소 구조 설명, 사용 가능한 데이터 유형 및 코딩 규칙은 모두 "Contributing" wiki 페이지에서 확인할 수 있습니다.
CyberChef는 Apache 2.0 라이선스에 따라 배포되며 Crown Copyright의 적용을 받습니다.
| 명령 | 설명 |
|---|
npm start | http://localhost:8080에서 라이브 리로드가 포함된 개발 서버를 실행합니다. |
npm run build | build/prod 디렉토리에 프로덕션 빌드를 생성합니다. |
npm test | Node.js 및 작업 테스트 스위트를 실행합니다. |
npm run testui | 브라우저(UI) 테스트를 실행합니다. |
npm run lint | 린팅 규칙에 따라 코드를 검사합니다. |
npm run newop | 대화형 퀵스타트 스크립트를 통해 새 작업을 생성합니다. |