
Solitude is a privacy analysis tool that enables anyone to conduct their own privacy investigations. Whether a curious novice or a more advanced researcher, Solitude makes the process of evaluating user privacy within an app accessible for everyone.
Solitude는 누구나 자신만의 프라이버시 조사를 수행할 수 있게 해주는 프라이버시 분석 도구입니다. 호기심 많은 초보자든 더 고급 연구자든, Solitude는 앱 내 사용자 프라이버시를 평가하는 과정을 모든 사람이 쉽게 접근할 수 있게 만듭니다.
Solitude를 설치하기 전에, Solitude는 신뢰할 수 있는 사설 네트워크에서 실행되어야 한다는 점을 알아두어야 합니다. 현재 Solitude 웹 앱 인터페이스는 사용자가 신뢰할 수 있는 사설 네트워크에서 이 도구를 실행할 것이라는 가정 하에 구축되었습니다.
모바일 앱 테스트에 Solitude를 사용하고 계신다면(그렇게 사용하시길 바랍니다!), 탈옥하지 않은 기기를 사용할 때 앱이나 앱에 내장된 타사 SDK가 인증서 고정을 사용하는 경우 모든 HTTP 트래픽을 캡처하지 못할 수 있다는 점을 분명히 알아야 합니다. 인증서 고정은 앱이 통신하는 서버가 기대하는 서버인지 확인하는 보안 메커니즘입니다. 앱과 SDK는 인증 기관이 손상되고 공격자가 악성 인증서를 발급하여 앱에서 앱 서버로의 TLS 트래픽을 관찰하거나 수정할 수 있는 상황으로부터 앱을 보호하기 위해 인증서 고정을 자주 사용합니다. Solitude는 인증서 고정 우회를 지원하지 않습니다. 이는 Solitude 사용자의 몫으로 남겨둡니다. 그렇다고 해서 개인 모바일 기기를 탈옥하거나 루팅하는 것을 절대 절대 권장하지 않습니다. 탈옥 또는 루팅된 휴대폰을 사용하려면 테스트 데이터가 있는 테스트 기기를 사용하여 앱을 테스트해야 합니다.
git clone https://github.com/nccgroup/Solitudedocker-compose -f docker-compose-prod.yml builddocker-compose -f docker-compose-prod.yml upbrew install mysqldocker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=solitude mysql (여기서 기본 비밀번호를 변경하고 데이터베이스 구성을 변경하는 방법은 아래 지침을 참조하세요)
git clone https://github.com/nccgroup/Solitudecd Solitude && python3 -m venv venvsource venv/bin/activatepip3 install -r requirements.txtpython3 run.pydocker-compose -f docker-compose-prod.yml builddocker-compose -f docker-compose-prod.yml updocker run -p 3306:3306 -d --name mysql -e MYSQL_ROOT_PASSWORD=solitude mysql (여기서 기본 비밀번호를 변경하고 데이터베이스 구성을 변경하는 방법은 아래 지침을 참조하세요)
git clone https://github.com/nccgroup/Solitudecd Solitude && python3 -m venv venvsource venv/bin/activatesudo apt-get install libmysqlclient-devpip3 install -r requirements.txtpython3 run.py기본 데이터베이스 비밀번호를 변경하려면 .env 파일을 원하는 비밀번호로 편집하세요.
추적하려는 데이터를 myrules.json 파일에 구성하세요. 웹 애플리케이션이나 모바일 앱에서 나가는 HTTP 트래픽에서 일치하는 항목이 발견되면 구성된 데이터가 웹 인터페이스와 해당 데이터가 공유되는 도메인에 표시됩니다.
Solitude는 docker 컨테이너 내부에서 OpenVPN 서버를 실행하며, mitmproxy의 애드온 API를 활용하는 기능을 통해 모든 HTTP 트래픽을 HTTP 인터셉팅 프록시(mitmproxy)로 전달합니다.
Solitude는 Yara 규칙을 사용하여 도구를 통해 프록시되는 모든 HTTP 트래픽을 검색합니다. Yara 규칙은 작성이 비교적 쉽지만 지루할 수 있으므로 Solitude가 이러한 번거로운 작업을 대신 처리해 줍니다. myrules.json 파일에서 검색하려는 데이터 유형의 키-값 쌍을 정의하세요. myrules.json에 몇 가지 예제가 제공되어 있지만 원하는 데이터를 자유롭게 추가해도 됩니다. 키는 "My phone number"와 같이 검색하려는 데이터 유형이어야 합니다. 이 키는 일치하는 항목이 발견될 때 생성되는 출력에 사용됩니다. 값은 일치시키려는 정확한 데이터여야 합니다. 데이터 형식이 다양할 수 있으므로 각 데이터 항목에 대해 더 많은 항목을 만드는 것이 필요할 수 있습니다. 예를 들어 전화번호나 생일은 여러 형식을 가질 수 있습니다. 03-03-1991 또는 March, 3rd 1991과 같이 말이죠. JSON 파일에 새 규칙을 추가하려면 프록시를 시작할 때마다 Solitude가 Yara 규칙을 자동으로 생성합니다.
예시: "phoneNumber": "555-555-5555", "Address": "123 Sutter Street, San Francisco 94105"
* base64 및 url 재귀 디코딩 (base64>url>base64와 같이 인코딩된 요청은 디코딩하여 검색할 수 있음)
* protobuf 지원 (모든 protobuf 요청의 첫 번째 레이어를 디코딩함)
* myrules.json에 정의된 모든 데이터의 MD5, SHA1, SHA256 검색
* 내장 GPS, 내부 IP 주소 및 Mac 주소 정규식 검색