
블랙박스 iOS용 보안 프로파일링
iOS 애플리케이션이 런타임에 수행하는 작업을 이해하고 잠재적인 보안 문제를 식별하는 데 도움이 되는 블랙박스 도구입니다.
빠른 소개는 http://isecpartners.github.io/Introspy-iOS/ 를 참조하세요.
이 저장소는 Introspy-iOS 트레이서용입니다.
트레이서는 탈옥된 기기에 설치하여 기기에서 실행 중인 애플리케이션이 호출하는 보안에 민감한 iOS API를 후킹하고 로깅할 수 있습니다. 이 도구는 인수 및 반환 값을 포함한 관련 API 호출의 세부 정보를 기록하고 데이터베이스에 저장합니다. 또한 호출은 실시간 분석을 위해 콘솔로도 전송됩니다.
그런 다음 데이터베이스는 Introspy-Analyzer(로그된 함수 호출 목록과 애플리케이션에 영향을 미치는 잠재적 취약점 목록이 포함된 HTML 보고서를 생성하는 Python 스크립트)에 전달될 수 있습니다. Introspy-Analyzer는 별도의 저장소에서 호스팅됩니다: https://github.com/iSECPartners/Introspy-Analyzer
사용자는 먼저 프로젝트 페이지의 릴리스 섹션에서 최신 사전 컴파일된 Debian 패키지를 다운로드해야 합니다: https://github.com/integrity-sa/Introspy-iOS/releases 또는 이전 릴리스의 경우 https://github.com/iSECPartners/Introspy-iOS/releases
트레이서는 탈옥된 기기에서만 실행됩니다. Cydia를 사용하여 다음 패키지가 설치되어 있는지 확인하세요:
Debian 패키지를 다운로드하여 기기에 복사한 후 설치합니다:
scp <package.deb> root@<device_ip>:~
ssh root@<device_ip>
dpkg -i <package.deb>
기기를 리스프링합니다:
killall -HUP SpringBoard
기기의 설정에 두 개의 새 메뉴가 나타납니다. Apps 메뉴에서는 프로파일링할 애플리케이션을 선택할 수 있고, Settings 메뉴에서는 후킹할 API 그룹을 정의합니다.
마지막으로 모니터링하려는 앱을 종료하고 다시 시작합니다.
dpkg -r com.isecpartners.introspy
트레이서는 애플리케이션이 수행한 API 호출에 대한 데이터를 기기에 저장된 데이터베이스(실제로는 각 애플리케이션 폴더에 하나씩)에 저장합니다. 이 데이터베이스는 Introspy-Analyzer라는 Python 스크립트에 전달되어 트레이서가 수집한 데이터를 훨씬 쉽게 검토할 수 있는 HTML 보고서를 생성할 수 있습니다. 이 스크립트는 또한 위험한 API 호출을 분석하고 플래그 지정하여 iOS 애플리케이션 내에서 취약점을 식별하는 과정을 용이하게 합니다.
Introspy-Analyzer는 별도의 저장소에서 호스팅됩니다: https://github.com/iSECPartners/Introspy-Analyzer
대부분의 사용자는 사전 컴파일된 Debian 패키지를 다운로드하여 설치하기만 하면 됩니다. 그러나 라이브러리 기능을 수정하려면 직접 Debian 패키지를 빌드해야 합니다.
빌드에는 https://github.com/theos/theos 에서 제공되는 Theos 제품군이 필요합니다. Theos 설치에 대한 일반적인 지침은 https://github.com/theos/theos/wiki/Installation 을 참조하세요.
또한 환경에 $THEOS 변수를 설정하고 내보내기하여 make 실행 시 해당 값을 볼 수 있도록 해야 합니다.
export THEOS=/absolute/path/to/theos
export PATH=$THEOS/bin:$PATH
그런 다음 다음을 사용하여 패키지를 빌드할 수 있습니다:
make package
Debian 패키지를 성공적으로 생성한 후에는 THEOS_DEVICE_IP 환경 변수에 기기의 IP 주소를 지정하여 Theos를 사용해 패키지를 자동으로 설치하고 기기를 리스프링할 수 있습니다:
export THEOS_DEVICE_IP=192.168.1.127
make install
./LICENSE 를 참조하세요.