[보안뉴스 문가용 기자] 일반 사용자들이 사용하는 안드로이드 및 iOS 모바일 앱 수천 개에서 아마존 웹 서비스 크리덴셜이 하드코딩 된 채 발견됐다. 공격자들이 이 크리덴셜을 확보한다면 기업 클라우드 내부로 접속해 들어가 민감한 정보를 훔칠 수 있다고 한다. 여기에는 일반 뱅킹 앱들도 포함되어 있기 때문에 여러 모바일 사용자와 관련 기업들이 꽤나 위험해질 수 있다.
[이미지 = utoimage]
보안 업체 시만텍(Symantec)에 의하면 총 1859개의 앱에서 하드코딩 된 AWS 크리덴셜과 접근 토큰들을 찾아냈다고 한다. 이 중 3/4인 77%는 비밀 AWS 클라우드 서비스에 접근 가능하게 해 주었고, 47%는 아마존 S3 버킷에 저장된 비밀 파일 수백만 개를 열람할 수 있도록 해 주는 수준의 접근 토큰이었다. 누구라도 쉽게 클라우드에 접근할 수 있는 상태로 현재 수많은 앱들이 유통되고 있다는 뜻이다.
모바일 소프트웨어 공급망
시만텍은 이 사건이 모바일 코드의 공급망이 가진 문제점을 고스란히 드러낸다고 말한다. “절반이 넘는(53%) 앱들에서 같은 AWS 접근 토큰이 발견됐습니다. 그런데 이 앱들을 만든 개발사나 개발자는 거의 대부분 달랐죠. 즉 수많은 개발자들이 같은 라이브러리와 SDK를 공유했다는 것이죠. 수많은 크리덴셜이 노출되어 있다는 건, 사실 오픈소스나 SDK에까지 거슬러 올라가는 문제라는 뜻이 됩니다.”
앱 개발 단계에서 AWS 크리덴셜이 하드코딩 되는 이유는 다양하다. 시만텍이 파악했을 때 가장 큰 이유는 다음 두 가지였다.
1) 대규모 미디어 파일을 클라우드로부터 업로드/다운로드 하기 위해서
2) 인증에 필요한 개별 클라우드 서비스를 활용하기 위해서
하지만 크리덴셜과 접근 토큰을 통할 경우 생각보다 클라우드의 깊은 부분에 도달할 수 있게 된다.
“AWS 접근 토큰은 보통 모든 파일과 모든 버킷들에 접근할 수 있게 해 줍니다. 무제한인 경우가 많다는 것이죠. 그렇기 때문에 앱 개발을 진행한 회사의 내부 파일과 인프라 파일, 각종 요소들과 백업 데이터에까지 접근할 수 있게 됩니다. 단순 대용량 미디어 파일이나 인증에만 국한되지 않습니다.” 시만텍의 설명이다. “예를 들어 한 인트라넷 및 통신 플랫폼 기업의 경우, 고객들에게 SDK를 제공하는데 그 SDK에 회사 클라우드 인프라 키가 포함되어 있었습니다. 그 키를 통해 모든 고객의 기밀 데이터에 접근하는 게 가능해졌고, 기업 내부 기밀도 전부 노출됐습니다.”
또 다른 iOS 앱의 경우 역시 SDK를 배포하는데, 여기에 포함된 AWS 토큰을 통해 각종 은행 및 금융 앱과 연결된 인증 데이터와 키에 접근할 수 있었다. 그리고 이는 또 다시 사용자의 생체 디지털 지문 정보 30만 개와 각종 개인정보로 가는 통로가 되었다. “하드코딩 된 AWS 토큰이 있는 앱들은 잘못된 앱들입니다. 심각한 위험을 초래합니다. 하지만 안타깝게도 매우 자주 나타나는 현상이기도 합니다.”
모바일 앱을 통해서도 클라우드 침해가 가능해
이렇게 서드파티 요소를 개발에 사용한 것 때문에 클라우드 크리덴셜이 노출되는 사고와, 그런 크리덴셜 때문에 벌어지는 각종 침해 사고를 막으려면 어떻게 해야 할까? 보안 업체 스택호크(StackHawk)의 CSO인 스콧 걸라흐(Scott Gerlach)는 “출시 전 앱 점검을 통해 크리덴셜이 어디엔가 하드코딩 되어 있지 않은 지 살피고 꼼꼼하게 제거해야 한다”고 강조한다.
“데브섹옵스(DevSecOps) 도구들을 개발 공정에 추가하여 스캔을 지속적으로 실시하고, CI/CD도 같이 완성하게 되면 민감한 정보가 앱과 섞여 출시되는 사고를 적잖이 막을 수 있습니다. 또한 AWS와 API 키 및 접근 토큰들을 안전하게 보호하는 방법론을 조직 전체에 적용할 필요도 있습니다. 보다 총괄적인 보안 체질 개선에 따라 강화되는 것이지, 앱 개발 파트만 아무리 조여봤자 큰 효과가 나타나지 않습니다.”
그 외에도 크리덴셜을 앱에 하드코딩 하는 대신 리포지터리나 SaaS 볼트에 대한 API 호출을 활용하는 것도 좋은 방법이라고 보안 업체 델리니아(Delinea)의 토니 굴딩(Tony Goulding)은 권장한다. “임시 토큰을 사용하는 것도 보다 안전할 수 있습니다. 뭐가 됐든 영구적으로 사용 가능한 것을 앱에 남겨두는 것은 좋지 않습니다.”
3줄 요약
1. 2000개 가까운 모바일 앱들에서 하드코딩 된 클라우드 크리덴셜 발견됨.
2. 개발 과정 중에 클라우드와 연동되는 기능이 많이 구현되어야 해서 나타나는 현상.
3. 이 크리덴셜들 추출하면 기업들의 비밀 클라우드와 여러 파일들에 접근할 수 있음.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>