주파수 독립적인 SDR 기반 신호 이해 및 역엔지니어링
FISSURE는 신호 감지 및 분류, 프로토콜 검색, 공격 실행, IQ 조작, 취약성 분석, 자동화 및 AI/ML을 위한 후크를 통해 모든 기술 수준을 위해 설계된 오픈 소스 RF 및 역엔지니어링 프레임워크입니다. 이 프레임워크는 소프트웨어 모듈, 무선, 프로토콜, 신호 데이터, 스크립트, 흐름 그래프, 참조 자료 및 타사 도구의 신속한 통합을 촉진하기 위해 구축되었습니다. FISSURE는 소프트웨어를 한 위치에 유지하고 팀이 특정 Linux 배포판에 대해 입증된 동일한 기본 구성을 공유하면서 쉽게 속도를 높일 수 있도록 하는 워크플로 지원 도구입니다.
FISSURE에 포함된 프레임워크와 도구는 RF 에너지의 존재를 감지하고, 신호의 특성을 이해하고, 샘플을 수집 및 분석하고, 전송 및/또는 주입 기술을 개발하고, 맞춤형 페이로드 또는 메시지를 작성하도록 설계되었습니다. FISSURE에는 식별, 패킷 제작 및 퍼징을 지원하는 점점 늘어나는 프로토콜 및 신호 정보 라이브러리가 포함되어 있습니다. 신호 파일을 다운로드하고 재생 목록을 구축하여 트래픽을 시뮬레이션하고 시스템을 테스트하는 온라인 아카이브 기능이 있습니다.
친숙한 Python 코드베이스와 사용자 인터페이스를 통해 초보자는 RF 및 리버스 엔지니어링과 관련된 널리 사용되는 도구 및 기술을 빠르게 배울 수 있습니다. 사이버 보안 및 엔지니어링 교육자는 내장된 자료를 활용하거나 프레임워크를 활용하여 실제 애플리케이션을 시연할 수 있습니다. 개발자와 연구원은 FISSURE를 일상 업무에 사용하거나 최첨단 솔루션을 더 많은 청중에게 공개할 수 있습니다. 커뮤니티에서 FISSURE에 대한 인식과 사용이 증가함에 따라 FISSURE의 기능 범위와 그것이 포괄하는 기술의 폭도 커질 것입니다.
설치 프로그램 설정 호출 내보내기 및 가져오기 버튼을 사용하여 FISSURE 설치 프로그램에서 확인된 소프트웨어 항목을 내보내고 가져옵니다. 필요한 프로그램만 빠르게 설치해보세요.
"/IQ Recordings" 폴더에 있는 파일을 한 번 클릭하여 SigMF 파일을 로드할 수 있는 IQ 데이터 탭 및 메뉴의 로컬 IQEngine 지원 . 도구>데이터>IQEngine 메뉴를 사용하여 IQEngine Docker 컨테이너를 중지합니다.
컴퓨터로 제어할 수 있는 모든 유형의 주변 장치를 지원하는 범용 컴퓨터(SBC, 미니 PC, 랩톱, 데스크탑) 용 배포 가능한 원격 센서 노드입니다 . 이러한 원격 센서 노드는 FISSURE 대시보드 GUI를 통해 네트워크를 통해 제어할 수 있는 작은 코드 하위 집합을 실행하여 기존 FISSURE 작업을 수행하고 시작 시 자율적으로 실행되거나 사용자 상호 작용을 통해 반자동으로 실행될 수 있는 새로운 유형의 스크립트 작업을 실행합니다( 자동 실행 재생 목록).
동일한 네트워크에 여러 센서 노드를 배포하면 FISSURE의 향후 개발을 위한 많은 지리공간 애플리케이션이 잠금 해제됩니다. 이러한 애플리케이션에는 방향 찾기, 추적, 침입 탐지, 모바일 배포 및 경계 방어가 포함됩니다. 소형 폼 팩터와 자율 기능은 기존 플랫폼에 스텔스 배포 및 패키징을 위한 고유한 기회를 제공합니다. 또한 이러한 업데이트는 원격 작업자가 결합된 RF 사이버 보안 테스트를 수행하고 국제 관심 지역, 실험실 및 테스트 사이트와 같은 전문 RF 환경에 액세스할 수 있는 저렴한 메커니즘을 제공할 수도 있습니다.
자동 실행 재생 목록, 단일 단계 공격, 다단계 공격 및 아카이브 재생을 위한 트리거 기능입니다 . 전자기 효과를 시작하기 위한 음향, 환경, 파일 시스템, 네트워킹, RF, 시간 및 시각적 트리거에 대한 20개 이상의 예가 포함되어 있습니다. 현재 목록은 사용자 설명서의 트리거 목록 섹션을 참조하고, 자신만의 목록을 추가하는 방법은 트리거 만들기 섹션을 참조하세요.
IQ 데이터에서 추출된 통계 특징만을 기반으로 의사 결정 트리 및 DNN 모델을 교육하기 위한 신호 분류기 탭입니다 . 이 탭은 TensorFlow 및 scikit-learn을 사용하여 기계 학습 모델을 개발하기 위해 격리된 신호 파일(신호 컨디셔너에서 생성)에서 수집된 기능 세트(Feature Extractor에서 생성)에 진실 정보를 할당하는 데 사용됩니다. 알 수 없는 신호는 사용 가능한 모든 모델을 통해 실행되어 결과를 비교하고 신뢰도를 구축할 수 있습니다. 신호 컨디셔너, 기능 추출기 및 신호 분류기 탭은 새로운 알고리즘 개발을 위한 테스트베드 역할을 하며 결과(격리된 IQ 신호, 통계적 특징, 분류 신뢰도)는 추가 분석을 위해 관심 있는 신호로 FISSURE 라이브러리에 분류됩니다. 자동화된 작업을 트리거합니다.
신호/장치를 빠르게 확인하고 테스트할 수 있는 IQ 데이터 탭의 온-오프 키잉 신호 발생기 . 사용자 지정 신호를 IQ 파일로 저장하여 재생하여 대상에 대한 작업을 수행하거나 RF 장치를 시뮬레이션할 수 있습니다.
앉았다. 2024년 8월 10일 : DEF CON 32 - RF 빌리지 - 1400-1500 PST. 사전 녹화된 비디오, 라이브 녹화
목요일 2024년 9월 5일 : Binghamton University STEM 취업 및 인턴십 박람회 - 1100-1530 EST
화요일 2024년 9월 17일 : GNU Radio Conference 2024 - 1605-1635 EST 설명/슬라이드, 라이브 녹음
2024년 12월(최종 날짜가 곧 공개됩니다!) : 2024 FISSURE Challenge. 링크(출시 예정)
다음은 다양한 통합 수준을 갖춘 "지원되는" 하드웨어 목록입니다.
지원됨
이제 FISSURE에는 Python3 분기와 Python2_maint-3.7 분기라는 두 가지 분기가 있습니다. Python3 브랜치에는 최신 코드가 포함되어 있으며 PyQt5 및 GNU Radio 버전 3.8 및 3.10을 지원합니다. Python2_maint-3.7 분기는 더 이상 사용되지 않으며 특정 타사 도구에 GNU Radio 버전 3.7 또는 이전 운영 체제가 필요한 경우에만 업데이트됩니다. 최신 마이너 버전의 운영 체제만 설치를 지원하며 이를 따라잡기 위해 최선을 다하겠습니다.
운영 체제 | 균열 지점 | 기본 GNU 라디오 버전 |
---|---|---|
백박스 리눅스 8(amd64) | 파이썬3 | 유지보수-3.10 |
DragonOS FocalX(x86_64) | 파이썬3 | 유지보수-3.10 |
칼리 23.1(x64) | 파이썬3 | 유지보수-3.10 |
KDE 네온 5.25(x64)(6.0은 테스트되지 않음) | 파이썬3 | 유지관리-3.8 |
앵무새 보안 6.1(amd64) | 파이썬3 | 유지보수-3.10 |
라즈베리 파이 OS(책벌레) | 파이썬3 | 유지보수-3.10 |
우분투 18.04(x64) | Python2_maint-3.7 | 유지관리-3.7 |
우분투 20.04(x64) | 파이썬3 | 유지관리-3.8 |
우분투 22.04(x64) | 파이썬3 | 유지보수-3.10 |
우분투 22.04(ARM/오렌지 파이) | 파이썬3 | 유지관리-3.10 |
우분투 24.04(x86) | 파이썬3 | 유지보수-3.10 |
진행 중(베타)
이러한 운영 체제는 아직 베타 상태입니다. 개발 중이며 몇 가지 기능이 누락된 것으로 알려져 있습니다. 설치 프로그램의 항목이 기존 프로그램과 충돌하거나 상태가 제거될 때까지 설치에 실패할 수 있습니다.
운영 체제 | 균열 지점 | 기본 GNU 라디오 버전 |
---|---|---|
없음 |
참고: 특정 소프트웨어 도구는 모든 OS에서 작동하지 않습니다. 알려진 충돌 및 타사 소프트웨어를 참조하세요.
설치
GitHub에 SSH 키를 추가하려면:
ssh-keygen -t ed25519
cat ~/.ssh/id_ed25519.pub
Paste text into "Settings" > "SSH and GPG keys" > "New SSH Key"
git clone [email protected]:ainfosec/FISSURE.git
git clone https://github.com/ainfosec/FISSURE.git
cd FISSURE
git checkout Python3 # or Python2_maint-3.7
git submodule update --init
./install
참고:
기존 소프트웨어와의 충돌을 피하기 위해 깨끗한 운영 체제에 FISSURE를 설치하는 것이 좋습니다. 가상화 및 종속성 관리를 위한 추가 노력은 계속될 것입니다. 설치 프로그램에 대한 참고 사항:
~/Installed_by_FISSURE
디렉터리에서 다운로드되어 설치됩니다. FISSURE 설치 프로그램은 컴퓨터를 준비하거나 관심 있는 소프트웨어 프로그램을 선택하는 데 유용합니다. 맞춤형 소프트웨어 설치가 가능하도록 코드를 빠르게 수정할 수 있습니다. 프로그램의 크기 추정치는 전체 설치에서 판독하기 전후입니다. 이전에 확인한 항목에는 일부 종속 항목이 설치되어 있으므로 각 프로그램의 크기가 정확하지 않습니다. 프로그램이 업데이트됨에 따라 크기는 시간이 지남에 따라 변경될 수도 있습니다.
원격 센서 노드 설치
범용 컴퓨터에 평소대로 FISSURE를 설치하십시오. 특정 작업에서 파일 경로 오류를 방지하려면 (추후 공지가 있을 때까지) 원격 컴퓨터의 로컬 컴퓨터와 동일한 디렉터리 위치에 FISSURE를 설치하십시오. 원격 작업을 위해 센서 노드를 구성하려면 ./fissure/Sensor_Node/Sensor_Node_Config/
디렉터리에서 "default.yaml" 파일을 편집하세요. 로컬 작업에서 원격 작업으로 변경하려면 다음 필드를 편집하십시오.
시작 시 기본 자동 실행 재생 목록 파일을 실행하고 원격 작업을 중단하려면 "autorun" 필드를 false
에서 true
로 변경합니다. 대시보드 자동 실행 탭에서 새로운 자동 실행 재생 목록을 생성하고 저장할 수 있습니다.
원격 센서 노드는 서버 역할을 하며 클라이언트(로컬 컴퓨터)와 일치하는 유효한 인증서 세트(설치 중에 생성됨)가 있어야 합니다. 서버에는 "server.key_secret" 및 "client.key" 파일이 필요하고 클라이언트에는 "client.key_secret" 및 "server.key" 파일이 필요합니다. 인증서 폴더가 서버 컴퓨터에 생성된 경우 클라이언트 파일을 다른 컴퓨터로 수동으로 전송해야 합니다.
로컬 대시보드 사용량
터미널을 열고 다음을 입력하세요.
fissure
FISSURE 대시보드를 시작하기 위한 방법은 sudo 없이 터미널을 사용하는 것입니다. 터미널은 일부 작업에 대한 중요한 상태와 피드백을 제공합니다. 자세한 내용은 FISSURE 문서를 참고하세요.
로컬 센서 노드는 FISSURE 대시보드의 상단 버튼을 통해 시작할 수 있으며 독립형 워크스테이션에서 기존의 모든 FISSURE 기능을 유지하는 데 도움이 됩니다. 현재는 로컬 센서 노드 1개와 원격 센서 노드 4개(또는 원격 5개)만 지원됩니다.
프로그램이 멈추거나 닫힐 때 멈추는 경우 다음 명령을 사용하여 문제를 감지하거나 강제로 종료할 수 있습니다.
sudo ps -aux | grep python3
sudo pkill python3
sudo kill -9
원격 센서 노드 사용
센서 노드 구성 파일(위 참조)을 구성한 후 루트 디렉터리에서 다음 명령을 사용하여 코드를 실행할 수 있습니다.
python3 ./fissure/Sensor_Node/SensorNode.py
센서 노드 코드는 Ctrl+C가 적용될 때까지 활성 상태로 유지됩니다. 원격 센서 노드에 대한 연결은 FISSURE 대시보드의 상단 버튼을 통해 수행됩니다. 상단 버튼을 마우스 오른쪽 버튼으로 클릭하면 작업을 수행할 활성 센서 노드가 선택됩니다. 한 번에 두 개 이상의 노드를 활용하는 향후 작업은 개별 탭 내에서 사례별로 처리됩니다.
FISSURE에는 다양한 기술과 기술에 익숙해지는 데 도움이 되는 몇 가지 유용한 가이드가 함께 제공됩니다. 다수에는 FISSURE에 통합된 다양한 도구를 사용하는 단계가 포함되어 있습니다. 우리는 시간이 지남에 따라 품질을 향상하고 새로운 콘텐츠를 추가하는 것을 목표로 합니다.
FISSURE에 새로 추가된 기능을 선보이는 연례 "FISSURE Challenge" 깃발 잡기 콘테스트가 매년 12월에 개최됩니다. 과거의 과제는 보관되어 일년 내내 풀 수 있습니다! FISSURE Challenge에서 실습 경험을 쌓고 솔루션을 확인하세요.
FISSURE 개선을 위한 제안을 적극 권장합니다. 다음 사항에 대한 생각이 있으시면 토론 페이지나 Discord 서버에 의견을 남겨주세요.
FISSURE 개선을 위한 기여는 개발을 가속화하는 데 매우 중요합니다. 귀하의 기여에 크게 감사드립니다. 코드 개발을 통해 기여하려면 리포지토리를 포크하고 풀 요청을 생성하세요.
git checkout -b feature/AmazingFeature
).git commit -m 'Add some AmazingFeature'
).git push origin feature/AmazingFeature
)버그에 대한 관심을 끌기 위해 이슈를 생성하는 것도 환영합니다.
좀 더 구체적인 아이디어가 필요하신가요? 아직 조사해야 할 주제가 많이 있습니다. 잠재적인 할 일 항목의 실행 목록을 확인하세요. 도움을 주시면 감사하겠습니다. 쉬운 것을 선택하고 이력서/CV에 FISSURE에 기여했다고 적으십시오.
RF 및 프로그래밍에 대해 자세히 알아보고 싶은 학생이거나 학생들을 오픈 소스 세계에 노출시키려는 조직이신가요? 지금 연락하여 2023년 프로젝트 아이디어 목록을 참조하세요.
AIS(Assured Information Security, Inc.) 비즈니스 개발팀에 연락하여 소프트웨어 통합에 시간을 할애하거나, AIS의 재능 있는 인력이 기술 문제에 대한 솔루션을 개발하도록 하거나, FISSURE를 다른 제품과 통합하는 등 FISSURE 협업 기회를 제안하고 공식화하세요. 플랫폼/애플리케이션.
GPL-3.0
라이선스에 대한 자세한 내용은 LICENSE 파일을 참조하세요.
Discord 서버에 가입하세요: https://discord.gg/JZDs5sgxcG
Twitter/X 팔로우: @FissureRF, @AinfoSec
LinkedIn에 연결: FISSURE - RF 프레임워크
Chris Poore - Assured Information Security, Inc. [email protected]
사업 개발 - Assured Information Security, Inc. - [email protected]
이 프로젝트에 기여한 Samuel Mantravadi 박사와 Joseph Reith에게 특별한 감사를 드립니다.
신호, 리버스 엔지니어링 또는 사이버 보안의 기타 영역 작업을 좋아하시나요? 현재 채용 공고를 찾아보거나 향후 고려 사항을 위해 인재 커뮤니티에 참여하세요.
해킹에 관심이 있다면 Can You Hack It?® 챌린지를 확인하고 기술을 테스트해 보세요! 점수를 제출하여 귀하의 점수를 보여주세요. AIS는 미국 전역에 사무실과 원격 직원을 두고 있으며 경쟁력 있는 급여와 뛰어난 혜택을 제공합니다. 사이버 공간의 미래뿐만 아니라 직원의 성공에도 전념하는 팀에 합류하세요.