Deep Linking 개요

  • 딥링킹은 특정 유형의 링크를 처리하고 사용자를 앱(예: 특정 활동)으로 직접 보내는 메커니즘입니다.
  • 사용자가 모바일 앱으로 직접 특정 콘텐츠로 연결되도록 하는 링크를 생성하는 기술입니다. 이를 통해 웹사이트나 다른 앱에서 특정 앱의 특정 화면으로 이동할 수 있습니다. 일반적으로 다음과 같은 기능과 장점이 있습니다:
  1. 사용자 경험 개선: Deep Linking은 사용자가 특정 콘텐츠로 쉽게 이동할 수 있도록 도와줍니다. 예를 들어, 특정 제품 상세 페이지로 바로 이동하거나 앱에서 로그인이나 결제 페이지로 이동할 수 있습니다.
  2. 마케팅 및 프로모션: 웹사이트나 소셜 미디어에서 앱의 특정 콘텐츠를 직접 링크하여 사용자들을 앱으로 유도할 수 있습니다. 이를 통해 앱 다운로드, 사용자 활동 증가 등을 도모할 수 있습니다.
  3. 측정 및 분석: Deep Linking을 통해 사용자의 행동을 추적하고 분석할 수 있습니다. 특정 링크를 통해 사용자가 앱으로 어떻게 이동하는지를 추적하여 사용자 동작을 이해하고 사용자 경험을 개선할 수 있습니다.
  4. SEO 향상: 안드로이드 앱의 Deep Linking을 구현하면 검색 엔진이 해당 앱의 콘텐츠를 색인화하고 검색 결과에 표시할 수 있습니다. 이는 앱의 발견성을 향상시키고 유기적인 트래픽을 늘리는 데 도움이 됩니다.
  • Android에서는 개발자가 두 가지 유형의 링크를 만들 수 있습니다
    • 딥링크
    • 안드로이드 앱 링크

 

  • 일반적으로 /.well-known/assetlinks.json 요청은 공격이 아닐 수 있습니다. 해당 URL은  Android 앱 링크로 사용자가 앱을 선택할 필요 없이, 웹사이트 URL을 클릭하면 Android 앱에서 콘텐츠가 바로 열리도록 하는 특별한 유형의 딥 링크입니다.

 

  • .well-known 디렉토리는 RFC5785에 그 의미가 설명되어 있습니다.
  • /.well-known/는 정해진 URI 스키마 상에서 잘 알려진 위치들(well-known locations)의 경로 프리픽스를 정의해 줍니다.
  • https://datatracker.ietf.org/doc/html/rfc5785 해당 문서에서 자세하게 확인 가능합니다.

 

  • 악의적인 공격자가 /.well-known/assetlinks.json 를 요청하는 케이스
    • 딥 링크를 통한 공격 시도로 볼 수 있다.
    • /.well-known/assetlinks.json은 Android 앱과 웹 사이트 간의 딥 링크 관련 인증 파일로, 안드로이드 앱이 특정 웹 사이트에 대한 딥 링크를 처리할 수 있는 권한을 부여하는 데 사용됩니다. 공격자는 이를 이용하여 앱 사용자를 악의적인 앱으로 유도하거나 사용자의 개인 정보를 탈취하는 등의 악의적인 행위를 시도할 수 있습니다.
    • 일반적으로 이러한 공격은 사용자가 악의적인 딥 링크를 통해 인증되지 않은 앱에 리디렉션되어 개인 정보를 요구하거나, 사용자의 기기에 악성 앱을 다운로드하도록 유도하는 형태로 이뤄질 수 있습니다.

대응방안

  • .well-known/assetlinks.json 파일을 안전하게 유지
    • 인증서를 사용하여 암호화된 연결 설정 (SSL/TLS 인증서)
    • 액세스 제어 설정 (불필요한 요청 차단)
    • 파일 권한 설정 (디렉토리 및 하위 파일의 권한을 적절하게 설정)
    • 로그 및 모니터링 설정 (액세스 로그 모니터링)
    • 정기적인 보안 감사 (파일에 대한 정기적인 검토)
  • 앱과 웹 서버 간의 딥 링크 권한을 정확하게 관리
  • 사용자에게 앱과 관련된 딥 링크를 사용할 때 주의해야 함을 경고
  • /.well-known/assetlinks.json은 Android 앱과 웹 사이트 간의 딥 링크 관련 인증 파일로 공격자가 앱 사용자를 악의적인 앱으로 유도하거나 사용자의 개인 정보를 탈취하는 등의 악성행위 시도할 수 있음
  •  

+ Recent posts