무해한 앱을 설치해도 사용자가 알지 못하는 사이에 설치 과정에서 해킹, 결국 악성코드에 감염된 앱으로 대체될 수 있는 취약점이 안드로이드 패키지 인스톨러(PackageInstaller) 시스템에서 발견됐다. 이를 통해 공격자가 사용자 이름과 비밀번호 같은 정보를 훔치는 것까지 가능하다. 해당 취약점은 안드로이드 전체 사용자 중 49.5%에 영향을 준다고 한다.
이 취약점은 지난해 1월 네트워크 보안 업체인 팔로알토네트웍스가 발견한 이후 구글과 삼성전자, 아마존 등과 협력해 복구할 방법을 찾고 있다. 안드로이드의 패키지 인스톨러 시스템에서 발견된 이 취약점을 이용하면 사용자가 설치에 아무런 문제가 없는 앱을 다른 앱으로 덮어 쓸 수 있다. 정품 앱을 설치해도 중간에서 가로채서 악성코드에 감염된 다른 앱을 설치할 수 있다는 얘기다.
공격자는 사용자 이름과 비밀번호 같은 개인 정보에도 모두 접근할 수 있게 된다. 보통 구글플레이 등에서 내려 받은 APK 파일은 파일 시스템 내 보호된 공간에 저장된다. 다른 곳에서 받은 APK 파일은 보호되지 않은 저장공간에 저장된다. 이런 과정은 패키지 인스톨러 시스템을 통해 실행된다. 이런 패키지 인스톨러 시스템에 TOCTTOU(Time-of-Check to Time-of-Use) 취약점이 발견된 것이다.
APK 파일을 내려 받으면 패키지 인스톨러 시스템은 파일을 분석, 앱 이름과 아이콘, 어떤 보안 권한을 요구하는지 여부를 확인한다. 이를 타임투체크(Time to Check)라고 한다. 사용자는 화면(PackageInstallerActivity)을 통해 앱에 어떤 정보가 포함되어 있는지 볼 수 있다. 설치 과정에서 ‘Next’를 눌러가며 모든 정보를 수 있고 계속하려면 ‘Install’을 누른다. 그런데 이 과정에서 취약점이 존재한다. 사용자가 앱 정보를 볼 때 공격자는 뒤에서 파일을 무시하고 대체할 수 있는 것이다. 취약한 패키지 인스톨러는 결국 완전히 다른 보안 권한을 요구하는 다른 앱을 설치하게 된다. 이런 취약점을 이용할 수 있는 건 구글플레이가 아닌 다른 앱장터에서 내려 받은 것만 해당된다.
구글 안드로이드 보안팀에 따르면 아직까지 이 취약점을 악용하려는 시도는 확인하지 못했다고 한다. 또 안드로이드 4.3 이후 버전에는 패치가 포함되어 있어 문제가 없다는 보도도 있었지만 팔로알토네트웍스에 따르면 4.3 버전에서도 취약점이 있으며 4.4 이후 버전에선 취약점이 수정되어 있다고 한다. 사용 중인 안드로이드 단말에 이 취약점이 있는지 확인하려면 팔로알토네트웍스가 제공하는 앱을 통해 확인할 수 있다. 확인 후 취약점이 있으면 잠시 데이터를 보호할 수도 있다.
전자신문인터넷 테크홀릭팀
이원영IT칼럼니스트 techholic@etnews.com