구글에서 경고 발생 문의

안녕하세요.
구글 플레이스토어에 배포한 앱에서 아래와 같은 메시지를 플레이스토어에서 알려주고 있습니다.

내용을 보면 카카오쪽 SDK를 업데이트 해야 하는 것으로 보입니다.

해결방법에 대한 가이드 부탁드립니다.

개발환경은 gradle에서
maven { url ‘http://devrepo.kakao.com:8088/nexus/content/groups/public/’ } 와 같이 설정하여 사용을 합니다.

-경고 내용
교차 앱 스크립팅에 취약한 WebView가 앱에 포함되어 있습니다. 자세한 내용은 Google 고객센터 도움말을 확인하세요.
취약한 클래스:
com.kakao.auth.authorization.authcode.KakaoWebViewActivity->initUi

KakaoWebViewActivity 내에서 인텐트로 받는 url이 자바스크립트 공격이 가능하다는 내용의 문의 내용이 발생하였습니다.

  • 자세한 내용
    교차 앱 스크립팅 취약점 문제 해결하기
    이 정보는 교차 앱 스크립팅 취약점이 있는 앱의 개발자를 대상으로 합니다.

현재 상태
악성 앱이 사용자 쿠키 및 기타 데이터를 도용할 수 있게 하는 WebView 교차 앱 스크립팅 문제가 하나 이상의 앱에 포함되어 있습니다. Play Console 알림에서 이 문제를 해결해야 하는 기한을 확인하세요. 기한이 지난 후에도 문제가 해결되지 않으면 문제의 영향을 받은 앱을 업데이트할 수 없게 됩니다. 게시된 APK 버전은 영향을 받지 않습니다.

필요한 조치
자바스크립트를 사용 설정하며 신뢰할 수 없는 인텐트에서 읽은 데이터를 로드하는 WebView의 경우 악성 앱이 안전하지 않은 컨텍스트에서 자바스크립트 코드를 실행하도록 유도할 수 있습니다. 이 취약점 문제를 방지하려면 다음과 같이 변경해야 합니다.

옵션 1: 영향을 받은 활동이 내보내지지 않도록 방지하기

영향을 받은 WebView가 있는 모든 활동을 찾습니다. 이러한 활동에서 다른 앱의 인텐트를 가져올 필요가 없는 경우, 매니페스트에서 활동을 android:exported=false로 설정할 수 있습니다. 이렇게 하면 악성 앱이 이러한 활동에서 WebView로 유해한 입력을 전송하지 못합니다.

옵션 2: 내보낸 활동의 WebView 보호하기

영향을 받은 WebView가 포함된 활동을 내보내야 하는 경우 다음과 같이 3가지를 변경해야 합니다.

targetSdkVersion 업데이트하기
targetSdkVersion이 Google Play의 대상 API 레벨 요구사항을 충족해야 합니다. targetSdkVersion이 16 이하인 앱에서는 현재 로드된 페이지 컨텍스트에서 loadUrl로 전달된 자바스크립트 URL을 평가합니다. 신뢰할 수 없는 인텐트의 확인되지 않은 입력을 사용하여 SDK 버전 16 이하를 타겟팅하거나 loadUrl을 호출하면 공격자가 영향을 받은 WebView에서 유해한 스크립트를 실행할 수 있습니다.
evaluateJavascript 호출 보호하기
evaluateJavascript에 대한 매개변수는 항상 신뢰할 수 있어야 합니다. 신뢰할 수 없는 인텐트의 확인되지 않은 입력을 사용하여 evaluateJavascript를 호출하면 공격자가 영향을 받은 WebView에서 유해한 스크립트를 실행할 수 있습니다.
안전하지 않은 파일 로드 방지하기
영향을 받은 WebView에서 쿠키 데이터베이스를 로드할 수 없게 해야 합니다. 신뢰할 수 없는 인텐트에서 확인되지 않은 file:// URL을 로드하는 WebView는 다음과 같은 방식으로 악성 앱의 공격을 받을 수 있습니다. 악성 웹페이지가 쿠키 데이터베이스에 태그를 작성하면 악성 앱에서 WebView 쿠키 데이터베이스를 대상으로 file:// URL이 포함된 인텐트를 전송할 수 있습니다. WebView에서 쿠키 데이터베이스가 로드되면 악성 스크립트가 실행되며, 이 악성 스크립트가 세션 정보를 도용할 수 있습니다.
두 가지 방법으로 WebView가 WebView 쿠키 데이터베이스를 로드하지 못하게 하는 방법에는 2가지가 있습니다. 모든 파일 액세스 권한을 사용 중지하거나 로드된 file:// URL이 안전한 파일로 연결되는지 확인할 수 있습니다. 공격자가 심볼릭 링크를 사용하여 URL 경로 검사를 속일 수 있습니다. 이러한 공격을 방지하려면 URL 경로만 검사하는 대신 로드하기 전에 신뢰할 수 없는 모든 file:// URL의 표준 경로를 확인하시기 바랍니다.

위내용 관련에서 업데이트 예정 및 수정해야 할 부분이 있는지 확인 부탁드립니다.

감사합니다.

위 이슈가 해결된 1.14.0 버전이 10월 16일에 배포되었고 10월 24일에 개발자 전체 메일 공지가 나갔었습니다. 새로운 버전으로 업데이트 해보시겠어요?

안녕하세요 반갑습니다…
현재 1.16 버전을 쓰고 있음에도 불구하고 같은 경고 메세지가 계속 나오고 있는데 고려해볼만한 상황이 있을까요?

@heyman3333 넵. 1.16의 경우면 이슈없고, 경고메시지의 경우 일정 시간이 지난 후 자동으로 없어지는것으로 알고 있어요.

1개의 좋아요

@michael 저는 현재 1.16 버전을 쓰고 있음에도 불구하고 같은 경고 메세지가 계속 나오고 있습니다.

앱 업데이트한지 얼마나 되셨나요?

@anon81369599 3월3일 오전 새벽에 업데이트 하였습니다.

앱 배포 후에 경고 문구가 사라지는데 시간이 좀 걸린다고 들었습니다. 이전 배포 버전이 업데이트 되고 하는데 시간이 걸려서 그러지 않나 추측합니다. 아직도 경고 문구가 지속되고 있나요?