암호화도 약하고, 백엔드 주소도 노출시켜...총 11개 유형의 취약점 나와
[보안뉴스 문가용 기자] 보안 업체 악산 테크놀로지스(Arxan Technologies)가 30개의 모바일 금융 애플리케이션들을 리버스 엔지니어링 했고, 거의 모든 앱에서 민감한 정보를 발견할 수 있었다고 발표했다. 이 정보들을 통해 마음만 먹으면 애플리케이션 프로그래밍 인터페이스(API) 키들을 복구시켜 백엔드 서버를 공격함으로써 사용자 데이터를 침해할 수도 있었다고 그는 설명했다.

[이미지 = iclickart]
점검된 앱들은 전부 안드로이드용이었으며, 도소매, 은행, 의료, 자동차 보험 등 8개 분야에서 선택됐다고 한다. “앱을 운영하고 있는 회사 중에는 포춘 100대 기업에 뽑히는 곳들도 있었습니다.” 악산은 이러한 내용을 ‘뻔히 보인다 : 금융 모바일 앱들에 만연한 취약점들(In Plain Sight: The Vulnerability Epidemic in Financial Mobile Apps)’이라는 보고서에 담아냈다.
보고서를 작성한 수석 보안 분석가인 알리사 나이트(Alissa Knight)는 “우리 내부 인원들도 결과에 무척 놀랐다”고 말했다. “어떤 앱들의 경우 비밀 키, API 키, 비밀 인증서가 실제 코드 내에 저장되어 있기도 했습니다. 아니면 앱의 하위 디렉토리에 저장되어 있기도 했고요. 앱이 통신을 위해 사용한 URL 주소들이 그대로 노출된 경우도 있었습니다. 공격자들에게 백엔드 서버를 알려주는 꼴이죠.”
보고서에 의하면 “실험된 앱들의 97%가 바이너리 코드 보호 장치를 가지고 있지 않았다”고 한다. “그래서 리버스 엔지니어링이 가능했습니다. 앱의 디컴파일링도 할 수 있었고요. 그렇다는 건 소스코드를 분석하고 조작할 수 있다는 뜻이 됩니다.” 하지만 악산은 이번에 분석된 앱의 이름을 하나도 밝히지 않고 있다.
소프트웨어의 리버스 엔지니어링은 보안 전문가와 해커들 사이에서 널리 활용되고 있는 기법이다. 지난 달 미국에서 열린 보안 행사 RSA에서 미국의 NSA는 기드라(Ghidra)라는 리버스 엔지니어링 플랫폼을 무료로 공개했고, 이는 큰 호응을 받은 바 있다.
나이트는 “30개의 앱들 중 83%가 데이터를 안전하지 않은 방법으로 저장하고 있었다”고 밝혔다. “예를 들어 장비의 로컬 파일 시스템이나 외부 스토리지에 저장하고 있는 앱들이 있더군요. 이럴 경우 해당 데이터를 간단한 복사나 잘라내기로 얼마든지 옮기는 게 가능합니다. 다른 앱을 통해서 데이터를 공유하는 것도 가능해지고요. 파일 시스템에 데이터를 저장하는 순간 금융 앱들의 통제 밖으로 벗어나는 건데, 그걸 간과하고 있는 모습이 많이 발견됐습니다.”
또한 약한 암호화 알고리즘을 사용하고 있거나, 강력한 암호화 알고리즘을 잘못 구축한 앱들이 80%나 되기도 했다. “이런 앱들의 경우 공격자가 쉽게 민감한 데이터를 얻어낼 수 있게 됩니다.” 안전하지 않은 무작위 숫자 생성기(RNG)를 사용하는 앱들도 70%를 차지하는 것으로 나타났다. “무작위 숫자이지만 쉽게 추측이 가능한 것이죠. 따라서 암호화나 보안 기능 일부가 약화되는 현상이 발생합니다.”
보고서를 작성하는 동안 애플리케이션 하나를 크래킹 하는 데 걸린 시간은 불과 8.5분이라고 나이트는 덧붙였다. “앱의 코드를 자유롭게 열람하고, API를 식별해내며, 파일 이름을 읽어내고, 민감한 정보에 접근할 수 있는 데까지 걸린 시간이 평균 8.5분이라는 겁니다. 다 바이너리 보호 기능이 부족했기 때문에 가능한 것이었습니다.”
30개 앱에서 나이트가 찾아낸 취약점들은 다음과 같다.
1) 안전하지 않은 데이터 저장 시스템
2) 의되치 않은 데이터 노출
3) 클라이언트 사이드 주입
4) 약한 암호화
5) 모든 인증서들에 대한 신뢰
6) 루트 권한을 사용한 실행
7) 누구나 읽고 쓸 수 있는 파일과 디렉토리
8) 비밀 키 노출
9) 데이터베이스 노출
10) SQL 쿼리 노출
11) 약한 무작위 숫자 생성
3줄 요약
1. 30개 안드로이드용 금융 관련 앱 분석했더니 거의 전부가 취약함.
2. 바이너리 코드 보호도 없는 경우가 많아 리버스 엔지니어링까지 가능함.
3. 취약점 유형 분류했더니 총 11개. 앱 하나 크래킹하는 데 걸린 시간은 평균 8.5분.
[국제부 문가용 기자(globoan@boannews.com)]
<저작권자: 보안뉴스(www.boannews.com) 무단전재-재배포금지>