안드로이드 앱에 하드코딩된 액세스 토큰 및 API 키… “대형 사고로 이어질 가능성 있어”
사이버보안 업체 팰러블(Fallible)이 1만 6,000개의 안드로이드 앱을 조사한 결과, 총 2,500개의 앱에 기밀 크리덴셜(crediential)이 하드코딩되어 있는 것으로 나타났다. 이 앱들은 지난 11월 출시된 팰러블의 온라인 도구를 통해 스캔되었다.
앱에 서드파티 서비스를 위해 하드코딩된 액세스키는 액세스 범위가 제한적일 때만 정당하다고 할 수 있다. 하지만 일부의 경우 개발자들은 민감한 데이터와 시스템에 접근할 수 있는 키를 포함시키고 있으며, 이는 남용될 여지가 있다는 것이 팰러블의 주장이다.
팰러블의 조사에 따르면, 총 304개의 앱에 트위터, 드롭박스, 플리커, 인스타그램, 슬랙, 아마존 웹 서비스 등을 위한 액세스 토큰과 API 키가 포함되어 있었다.
1만 6,000개의 앱 중 약 300개라는 수치는 별로 커 보이진 않으나, 앱의 종류나 권한 등에 따라서, 단 하나의 크리덴셜 유출이 커다란 데이터 유출로 이어질 수도 있다.
예를 들어, 슬랙 토큰 같은 경우 개발 팀이 사용하는 채팅 로그에 액세스할 수 있으며, 여기에는 공유된 파일이나 문서뿐만 아니라, 데이터베이스나 플랫폼, 기타 내부 서비스에 대한 추가 크리덴셜이 포함되어 있을 수 있다.
지난해 웹사이트 보안 업체인 디텍티파이(Detectify)는 깃허브(GitHub)에 호스팅된 오픈소스 프로젝트에 1,500개 이상의 슬랙 액세스 토큰이 포함된 것을 발견하기도 했다.
아마존 웹 서비스의 액세스 키 역시 깃허브 프로젝트 안에서 수천건 발견 되어, 아마존이 이러한 키 유출에 대한 감시를 강화하고 노출된 키를 파기하기도 했다.
이번 안드로이드 앱 분석에서 발견된 일부 아마존 웹 서비스 키는 인스턴스를 생성하고 삭제할 수 있는 최고 권한도 포함되어 있었다고 팰러블 연구원은 블로그를 통해 밝혔다.
아마존 웹 서비스의 인스턴스 삭제는 데이터 유칠 및 다운타임을 초래할 수 있으며, 인스턴스 생성은 공격자들에게 피해자의 돈으로 컴퓨팅 파워를 이용할 수 있도록 한다.
API 키, 액세스 토큰 및 기타 크리덴셜이 모바일 앱에서 발견된 것은 이번이 처음이 아니다. 2015년 독일 다름슈타트 기술 대학의 연구원들은 안드로이드와 iOS 앱에서 BaaS(Backend-as-a-Service) 프레임워크의 액세스 크리덴셜을 1,000개 이상 발견하기도 했다. 이런 크리덴셜들은 페이스북이 소유한 파스(Parse), 클라우드마인(CloundMine), 아마존 웹 서비스 등 BaaS 서비스 제공업체들에 앱 개발자들이 저장해둔 5,600만 개의 데이터가 포함된 1,850만 개 이상의 데이터베이스에 액세스할 수 있도록 한다.
한편, 이달 초에 한 보안 연구원이 배포한 트러플 호그(Truffle Hog)라는 오픈소스 도구는 기업이나 개인 개발자들이 소프트웨어 프로젝트를 스캔해서 실수로 남겨둔 기밀 토큰을 발견할 수 있도록 도와준다. editor@itworld.co.kr