사이버셰프
사이버 스위스 군용 칼
CyberChef는 웹 브라우저 내에서 모든 방식의 "사이버" 작업을 수행하기 위한 간단하고 직관적인 웹 앱입니다. 이러한 작업에는 XOR 및 Base64와 같은 간단한 인코딩, AES, DES 및 Blowfish와 같은 보다 복잡한 암호화, 바이너리 및 16진수 생성, 데이터 압축 및 압축 풀기, 해시 및 체크섬 계산, IPv6 및 X.509 구문 분석, 문자 인코딩 변경 등이 포함됩니다. .
이 도구는 기술 분석가와 비기술 분석가 모두 복잡한 도구나 알고리즘을 다루지 않고도 복잡한 방식으로 데이터를 조작할 수 있도록 설계되었습니다. 분석가가 몇 년에 걸쳐 10% 혁신 시간 동안 구상, 설계, 구축 및 점진적으로 개선했습니다.
라이브 데모
CyberChef는 아직 활발하게 개발 중입니다. 결과적으로 완제품으로 간주되어서는 안됩니다. 아직 테스트와 버그 수정이 필요하고, 새로운 기능을 추가해야 하며, 추가 문서를 작성해야 합니다. 기여해주세요!
어떤 상황에서도 보안을 제공하기 위해 CyberChef의 암호화 작업에 의존해서는 안 됩니다. 정확성에 대해서는 어떠한 보증도 제공되지 않습니다.
라이브 데모는 여기에서 찾을 수 있습니다. 재미있게 즐겨보세요!
컨테이너
CyberChef를 로컬에서 사용해 보고 싶다면 직접 구축할 수 있습니다.
docker build --tag cyberchef --ulimit nofile=10000 .
docker run -it -p 8080:80 cyberchef
또는 이미지를 직접 사용할 수도 있습니다.
docker run -it -p 8080:80 ghcr.io/gchq/cyberchef:latest
이 이미지는 GitHub 워크플로를 통해 구축 및 게시되었습니다.
작동 원리
CyberChef에는 네 가지 주요 영역이 있습니다.
- 작업하려는 텍스트나 파일을 붙여넣거나 입력하거나 드래그할 수 있는 오른쪽 상단의 입력 상자입니다.
- 처리 결과가 표시되는 오른쪽 하단의 출력 상자입니다.
- CyberChef가 수행할 수 있는 모든 작업을 분류된 목록이나 검색을 통해 찾을 수 있는 맨 왼쪽의 작업 목록.
- 사용하려는 작업을 드래그하고 인수와 옵션을 지정할 수 있는 중앙의 레시피 영역입니다.
간단하거나 복잡한 방법으로 원하는 만큼 많은 작업을 사용할 수 있습니다. 몇 가지 예는 다음과 같습니다.
- Base64로 인코딩된 문자열 디코딩
- 날짜 및 시간을 다른 시간대로 변환
- Teredo IPv6 주소 구문 분석
- 16진수 덤프에서 데이터를 변환한 후 압축 해제
- 쉘코드 복호화 및 디스어셈블
- 여러 타임스탬프를 전체 날짜로 표시
- 다양한 유형의 데이터에 대해 다양한 작업 수행
- 입력의 일부를 작업에 대한 인수로 사용
- AES 암호 해독을 수행하여 암호 스트림의 시작 부분에서 IV를 추출합니다.
- 중첩된 인코딩의 여러 레이어를 자동으로 감지합니다.
특징
- 드래그 앤 드롭
- 작업을 레시피 목록 안팎으로 끌어서 놓거나 재구성할 수 있습니다.
- 최대 2GB의 파일을 입력 상자 위로 드래그하여 브라우저에 직접 로드할 수 있습니다.
- 자동 굽기
- 입력이나 레시피를 수정할 때마다 CyberChef가 자동으로 "구워서" 즉시 출력을 생성합니다.
- 성능에 영향을 미치는 경우(예를 들어 입력이 매우 큰 경우) 이 기능을 끄고 수동으로 작동할 수 있습니다.
- 자동 인코딩 감지
- CyberChef는 다양한 기술을 사용하여 데이터에 어떤 인코딩이 적용되어 있는지 자동으로 감지합니다. 데이터를 이해하는 적절한 작업을 찾으면 클릭하여 데이터를 디코딩할 수 있는 '마법' 아이콘이 출력 필드에 표시됩니다.
- 중단점
- 레시피의 모든 작업에 중단점을 설정하여 실행을 실행하기 전에 실행을 일시 중지할 수 있습니다.
- 또한 한 번에 한 작업씩 레시피를 단계별로 진행하여 각 단계의 데이터 모양을 확인할 수도 있습니다.
- 레시피 저장 및 로드
- 다시 사용하고 싶은 멋진 레시피가 떠오르면 "레시피 저장"을 클릭하고 로컬 저장소에 추가하세요. 다음에 CyberChef를 방문할 때 여러분을 기다리고 있을 것입니다.
- 레시피와 입력 내용이 포함된 URL을 복사하여 다른 사람과 쉽게 공유할 수도 있습니다.
- 찾다
- 원하는 작업의 이름이나 이와 관련된 단어를 알고 있는 경우 검색 필드에 해당 단어를 입력하기 시작하면 일치하는 작업이 즉시 표시됩니다.
- 강조
- 입력 또는 출력에서 텍스트를 강조 표시하면 오프셋 및 길이 값이 표시되고, 가능한 경우 해당 데이터가 출력 또는 입력에서 각각 강조 표시됩니다(예: 입력에서 '질문'이라는 단어를 강조 표시하여 어디에 있는지 확인). 출력에 나타납니다).
- 파일에 저장하고 파일에서 로드
- 언제든지 출력을 파일에 저장하거나 파일을 입력 필드에 끌어서 놓아 파일을 로드할 수 있습니다. 최대 약 2GB의 파일이 지원되지만(브라우저에 따라 다름) 일부 작업은 이 많은 데이터를 실행하는 데 매우 오랜 시간이 걸릴 수 있습니다.
- CyberChef는 전적으로 클라이언트 측입니다.
- 귀하의 레시피 구성이나 입력(텍스트 또는 파일) 중 어떤 것도 CyberChef 웹 서버로 전송되지 않습니다. 모든 처리는 귀하의 브라우저 내에서 귀하의 컴퓨터에서 수행됩니다.
- 이 기능으로 인해 CyberChef를 로컬로 다운로드하여 실행할 수 있습니다. 앱의 왼쪽 상단에 있는 링크를 사용하여 CyberChef의 전체 사본을 다운로드하여 가상 머신에 놓거나, 다른 사람과 공유하거나, 폐쇄된 네트워크에서 호스팅할 수 있습니다.
딥링킹
CyberChef의 URL 해시를 조작하면 페이지가 열리는 초기 설정을 변경할 수 있습니다. 형식은 https://gchq.github.io/CyberChef/#recipe=Operation()&input=...
지원되는 인수는 recipe
, input
(Base64로 인코딩됨) 및 theme
입니다.
브라우저 지원
CyberChef는 다음을 지원하도록 제작되었습니다.
Node.js 지원
CyberChef는 Node.js v16
완벽하게 지원하도록 제작되었습니다. 자세한 내용은 "노드 API" 위키 페이지를 참조하세요.
기여
CyberChef에 새로운 작업을 기여하는 것은 매우 쉽습니다! 빠른 시작 스크립트가 프로세스를 안내합니다. 기본 JavaScript를 작성할 수 있으면 CyberChef 작업을 작성할 수 있습니다.
설치 연습, 새로운 작업 및 테마 추가를 위한 방법 가이드, 저장소 구조 설명, 사용 가능한 데이터 유형 및 코딩 규칙은 모두 "기여" 위키 페이지에서 찾을 수 있습니다.
- 변경 사항을 포크에 푸시합니다.
- 끌어오기 요청을 제출하세요. 이 작업을 처음 수행하는 경우 끌어오기 요청의 CLA 도우미를 통해 GCHQ 기여자 라이선스 계약에 서명하라는 메시지가 표시됩니다. 또한 귀하의 기여에 대한 감사 표시나 GCHQ에서의 채용 기회에 관해 GCHQ가 귀하에게 연락하는 것에 대해 만족하는지 여부도 묻습니다.
라이선스
CyberChef는 Apache 2.0 라이선스에 따라 출시되며 Crown 저작권의 보호를 받습니다.