
CyberChef v11.3.0
The Cyber Swiss Army Knife - 암호화, 인코딩, 압축 및 데이터 분석을 위한 웹 앱
CyberChef
사이버 스위스 군용 칼
CyberChef는 웹 브라우저에서 모든 종류의 "사이버" 작업을 수행할 수 있는 간단하고 직관적인 웹 앱입니다. 이러한 작업에는 XOR 및 Base64와 같은 간단한 인코딩, AES, DES 및 Blowfish와 같은 더 복잡한 암호화, 바이너리 및 hexdump 생성, 데이터 압축 및 해제, 해시 및 체크섬 계산, IPv6 및 X.509 구문 분석, 문자 인코딩 변경 등이 포함됩니다.
이 도구는 기술적 배경이 있거나 없는 분석가 모두가 복잡한 도구나 알고리즘을 다룰 필요 없이 데이터를 복잡한 방식으로 조작할 수 있도록 설계되었습니다. 한 분석가가 수년에 걸쳐 10% 혁신 시간 동안 구상하고 설계하고 구축하며 점진적으로 개선해 왔습니다.
목차
공식 웹사이트
CyberChef 공식 웹사이트는 여기에서 확인할 수 있습니다 - 즐겁게 사용해 보세요!
로컬에서 실행하기
Docker(도구 체인 불필요)로 CyberChef를 실행하거나 Node.js로 소스에서 빌드할 수 있습니다.
Docker 사용
전제 조건
- Docker
- Docker Desktop이 열려 있고 컴퓨터에서 실행 중이어야 합니다.
옵션 1: Docker 이미지를 직접 빌드
- 도커 이미지를 빌드합니다.
docker build --tag cyberchef --ulimit nofile=10000 .
- 도커 컨테이너를 실행합니다.
docker run -it -p 8080:8080 cyberchef
- 브라우저에서
http://localhost:8080로 이동합니다.
옵션 2: 사전 빌드된 Docker 이미지 사용
빌드 과정을 건너뛰고 싶다면 사전 빌드된 이미지를 사용할 수 있습니다.
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
이전과 마찬가지로 브라우저에서 http://localhost:8080로 이동합니다.
이 이미지는 GitHub Workflows를 통해 빌드 및 게시됩니다.
소스에서 빌드
CyberChef를 개발하거나 Docker 없이 실행하려면 Node.js로 직접 빌드할 수 있습니다.
전제 조건
- Node.js
v24(Node.js 지원 참고)
[!NOTE]
컴퓨터의 다른 프로젝트와의 충돌을 피하기 위해 nvm을 사용하여 Node.js 버전을 관리하고 이 프로젝트에 있는 현재 개발 버전을 사용할 수 있습니다.
설정
git clone https://github.com/gchq/CyberChef.git
cd CyberChef
npm install
일반적인 작업
| 명령 | 설명 |
|---|---|
npm start | http://localhost:8080에서 라이브 리로드가 포함된 개발 서버를 실행합니다. |
npm run build | build/prod 디렉토리에 프로덕션 빌드를 생성합니다. |
npm test | Node.js 및 작업 테스트 스위트를 실행합니다. |
npm run testui | 브라우저(UI) 테스트를 실행합니다. |
npm run lint | 린팅 규칙에 따라 코드를 검사합니다. |
npm run newop | 대화형 퀵스타트 스크립트를 통해 새 작업을 생성합니다. |
대규모 레시피를 빌드하는 동안 메모리 부족 오류가 발생하면 npm run setheapsize를 사용하여 Node의 힙 크기를 늘리십시오.
작동 방식
CyberChef에는 네 가지 주요 영역이 있습니다.
- 오른쪽 상단의 입력 상자로, 작업하려는 텍스트나 파일을 붙여넣거나, 입력하거나, 드래그할 수 있는 곳입니다.
- 오른쪽 하단의 출력 상자로, 처리 결과가 표시되는 곳입니다.
- 맨 왼쪽의 작업 목록으로, CyberChef가 수행할 수 있는 모든 작업을 분류된 목록 또는 검색을 통해 찾을 수 있는 곳입니다.
- 중앙의 레시피 영역으로, 사용하려는 작업을 드래그하고 인수와 옵션을 지정할 수 있는 곳입니다.
단순하거나 복잡한 방식으로 원하는 만큼 많은 작업을 사용할 수 있습니다. 몇 가지 예는 다음과 같습니다.
- Base64로 인코딩된 문자열 디코딩
- 날짜와 시간을 다른 시간대로 변환
- Teredo IPv6 주소 구문 분석
- hexdump에서 데이터를 변환한 다음 압축 해제
- 셸코드 복호화 및 디스어셈블
- 여러 타임스탬프를 전체 날짜로 표시
- 서로 다른 유형의 데이터에 서로 다른 작업 수행
- 입력의 일부를 작업의 인수로 사용
- 암호 스트림 시작 부분에서 IV를 추출하여 AES 복호화 수행
- 동일한 AES 복호화를 수행하는 더 간단한 방법
- 여러 겹으로 중첩된 인코딩 자동 감지
기능
- 드래그 앤 드롭
- 작업을 레시피 목록에 끌어다 놓거나 빼내거나 재정렬할 수 있습니다.
- 최대 2GB까지의 파일을 입력 상자 위로 끌어다 놓으면 브라우저에 직접 로드할 수 있습니다.
- 자동 베이크
- 입력이나 레시피를 수정할 때마다 CyberChef가 자동으로 "베이크"하여 즉시 출력을 생성합니다.
- 성능에 영향을 미치는 경우(예: 입력이 매우 큰 경우) 이 기능을 끄고 수동으로 실행할 수 있습니다.
- 자동 인코딩 감지
- CyberChef는 여러 기법을 사용하여 데이터가 어떤 인코딩으로 되어 있는지 자동으로 감지하려고 시도합니다. 데이터를 해석할 수 있는 적절한 작업을 찾으면 출력 필드에 'magic' 아이콘이 표시되며, 이를 클릭하여 데이터를 디코딩할 수 있습니다.
- 중단점
- 레시피의 모든 작업에 중단점을 설정하여 실행 전에 일시 중지할 수 있습니다.
- 또한 레시피를 한 번에 하나의 작업씩 단계별로 실행하여 각 단계에서 데이터가 어떻게 보이는지 확인할 수 있습니다.
- 레시피 저장 및 불러오기
- 다시 사용하고 싶은 멋진 레시피를 만들었다면 "레시피 저장"을 클릭하여 로컬 저장소에 추가하기만 하면 됩니다. 다음에 CyberChef를 방문할 때 그대로 기다리고 있을 것입니다.
- 레시피와 입력이 포함된 URL을 복사하여 다른 사람과 쉽게 공유할 수도 있습니다.
- 검색
- 원하는 작업의 이름이나 관련 단어를 알고 있다면 검색 필드에 입력을 시작하면 일치하는 모든 작업이 즉시 표시됩니다.
- 강조 표시
- 입력 또는 출력에서 텍스트를 강조 표시하면 오프셋과 길이 값이 표시되며, 가능한 경우 해당 데이터가 출력 또는 입력에서 각각 강조 표시됩니다(예: 입력에서 'question'이라는 단어를 강조 표시하여 출력에서 어디에 나타나는지 확인).
- 파일로 저장 및 파일에서 불러오기
- 언제든지 출력을 파일로 저장하거나 파일을 입력 필드에 끌어다 놓아 로드할 수 있습니다. 약 2GB까지의 파일이 지원되지만(브라우저에 따라 다름), 일부 작업은 이렇게 많은 데이터를 처리하는 데 매우 오랜 시간이 걸릴 수 있습니다.
- CyberChef는 완전히 클라이언트 측에서 실행됩니다.
- 레시피 구성이나 입력(텍스트 또는 파일)은 CyberChef 웹 서버로 전송되지 않습니다. 모든 처리는 사용자 자신의 컴퓨터에 있는 브라우저 내에서 수행됩니다.
- 이 기능 덕분에 CyberChef는 다운로드하여 로컬에서 실행할 수 있습니다. 앱 왼쪽 상단의 링크를 사용하여 CyberChef의 전체 사본을 다운로드하고 가상 머신에 넣거나, 다른 사람과 공유하거나, 폐쇄된 네트워크에서 호스팅할 수 있습니다.
딥링크
CyberChef의 URL 해시를 조작하면 페이지가 열릴 때의 초기 설정을 변경할 수 있습니다.
형식은 https://gchq.github.io/CyberChef/#recipe=Operation()&input=...입니다.
지원되는 인수는 recipe, input(Base64로 인코딩됨), theme입니다.
브라우저 지원
CyberChef는 다음을 지원하도록 빌드되었습니다.
- Google Chrome 50+
- Mozilla Firefox 38+
Node.js 지원
CyberChef는 Node.js v24를 완전히 지원하도록 빌드되었으며, 활성 LTS 릴리스가 되기 전에 Node.js v26에 대해서도 테스트됩니다. 자세한 내용은 "Node API" wiki 페이지를 참조하십시오.
보안
CyberChef 보안 정책을 참조하십시오.
기여
CyberChef에 새 작업을 기여하는 것은 매우 쉽습니다! 퀵스타트 스크립트가 전체 과정을 안내합니다. 기본적인 JavaScript를 작성할 수 있다면 CyberChef 작업도 작성할 수 있습니다.
설치 안내, 새 작업 및 테마 추가 방법 가이드, 저장소 구조 설명, 사용 가능한 데이터 유형 및 코딩 규칙은 모두 "Contributing" wiki 페이지에서 확인할 수 있습니다.
- 변경 사항을 포크에 푸시합니다.
- 풀 리퀘스트를 제출합니다. 처음 제출하는 경우 풀 리퀘스트의 CLA assistant를 통해 GCHQ 기여자 라이선스 계약에 서명하라는 메시지가 표시됩니다. 또한 GCHQ가 기여에 대한 감사의 표시 또는 GCHQ의 채용 기회에 대해 연락해도 되는지 묻습니다.
라이선스
CyberChef는 Apache 2.0 라이선스에 따라 배포되며 Crown Copyright의 적용을 받습니다.