IPC Issues

justugi·2024년 7월 9일
0

DVIA

목록 보기
7/11

주의사항 : 이 포스팅은 개인 학습 및 교육적 목적으로 작성되었으며, 제공하는 정보를 악용하여 불법적인 행위를 하는 것은 엄격히 금지되어 있습니다. 타인의 시스템에 대한 접근 권한을 얻기 위해 명시적인 동의를 받아야 하며, 이러한 기술을 사용하여 발생하는 모든 결과에 대한 책임은 사용자에게 있습니다.

IPC Issues

: IPC (Inter Process Communication) 는 프로세스들 사이에 서로 데이터를 주고받는 행위 또는 방법이나 경로이다.

  • 앱이 신뢰할 수 없는 출처의 URL Schemes 를 통해 요청을 수신하는 데 이를 제대로 검증하지 않을 때 문제가 발생할 수 있다.
  • iOS 는 샌드박스 정책에 의해 다른 앱들과 정보를 주고 받기 힘들기 때문에 URL Schemes 를 이용한다.
    • URL scheme:[//[user[:password]@]host[:port]][/path] [?query][#fragment]

URL Schemes 종류

Built-in URL Schemes

: 애플에서 기본적으로 제공하는 스킴으로, 시스템 앱과 통신할 수 있는 기능을 제공한다.

No스킴 종류내용사용 예시
1mailto메일 앱을 시작하고 이메일 작성 시트를 여는 데 사용frank@wwdcdemo.example.com
2tel전화 앱을 실행하고 지정된 전화 번호로 전화 걸기를 시작하는데 사용tel:1-408-555-5555
3facetime지정된 사용자에게 FaceTime 통화를 시작하는 데 사용facetime://user@example.com
4sms메시지 앱을 시작하는데 사용sms:1-408-555-1212
5map지리적 위치를 표시하고 두 지점 사이의 운전 방향을 생성하는 데 사용http://maps.apple.com/?q=Mexican+Restaurant
6itunesiTunes Music Store의 콘텐츠에 연결하는 데 사용http://phobos.apple.com/WebObjects/MZStore.woa/wa/viewAlbum?
7youtubeYouTube 웹사이트에 연결하여 지정된 동영상을 재생하는데 사용http://www.youtube.com/watch?v=VIDEO_IDENTIFIER

Custom URL Schemes

: 사용자가 직접 커스텀마이징하여 사용하는 스킴

  • 사용자 앱에서 URL 스킴을 구현해 처리하며, Info.plist 파일에 CFBundleUrlSchemes 키를 활용하여 구성한다.

IPC Issues 실습

  1. 실행 확인

  1. URL Scheme 설정 확인

  • /var/containers/Bundle/Application/UUID/DVIA-v2.app 경로의 info.plist 파일에 CFBundleURLSchemes 에 dvia, dviaswift 두 스킴 값을 사용한다.
  1. Scheme 테스트

  • Safari 에서 dvia Scheme 사용 - DVIA 접속 후 바로 종료 된다.
  1. Ghidra 실행

  • Symbol Tree 에서 appdelegate 단어 필터링 후 Decompile 창에서 /phone/call_number/ 경로 확인한다.
  1. Scheme 호출

  • Safari 에서 Ghidra 에서 알아낸 경로를 추가해서 호출한다.

  • 외부 Scheme 을 통한 호출에 성공

  • 권한 없는 기능, 관리자 페이지 등에 URL Scheme 을 통한 접근이 가능한 경우 취약하다.


대응방법

  • Custom URL Schemes 를 사용할 때 사용자가 한번 더 확인할 수 있는 로직을 추가한다.
  • 중요한 기능 / 뷰에 대한 접근을 사용한다면 사용자 인증 정보를 확인하는 로직을 추가한다.

출처
https://hagsig.tistory.com/241

profile
IT 보안, 관심 있는 것을 공부합니다.

0개의 댓글

관련 채용 정보