글로벌 칼럼 | 모바일 앱 보안, 애플과 구글을 믿으면 망한다

등록일: 08.22.2019 15:43:20  |  조회수: 896
심호흡을 하고 기업 IT 부서라면 절대로 듣고 싶지 않은 모바일 보안 뉴스 하나를 보자. 보안 전문업체인 포지티브 테크놀로지스(Positive Technologies)는 다양한 모바일 앱에 대한 침투 테스트에 착수했는데, 보안 허점이 창궐하고 있는 것을 발견했다.

상세한 조사 결과도 살펴보겠지만, 결론은 분명하다. iOS용 모바일 앱의 38%, 안드로이드 앱의 43%에서 고위험 취약점이 발견됐다. 대부분 원인은 보안 메커니즘의 약점인데, iOS 앱의 74%, 안드로이드 앱의 57%, 서버 측 요소의 42%였다. 이런 취약점은 설계 단계에서 생기기 시작하기 때문에 바로잡으려면 코드를 상당 부분 수정해야 한다.

가장 위협적인 결과는 따로 있다. “위험이 반드시 클라이언트나 서버 측의 특정한 취약점 하나 때문에 생기는 것은 아니다. 많은 경우, 모바일 애플리케이션의 다양한 부분에서 여러 가지 소소한 결함의 결과물이다. 이런 결함이 “하나로 합쳐지고”, 이들을 간과하면 심각한 결과를 낳는다.” 기업 IT 부서가 쉽게 대응할 수 없는 문제라서 점에서 가장 위협적이다.

이로써 기업 IT 부서, 특히 CISO나 CSO는 더는 애플 앱스토어나 구글 플레이의 앱을 신뢰할 수 없게 된다. 개인용이든 기업용이든 직원들은 이곳에서 앱을 다운로드해야 한다는 점에서 거대한 악몽이 아닐 수 없다.

보안 허점은 고의적인 악성코드일 수도 있고, 의도하지 않은 악성코드일 수도(ISV의 개발자는 공통 기능을 구현하는 데 기존 코드를 이용하는데, 모르는 사이에 악성코드가 포함될 수도 있다), 의도하지 않은 보안 허점일 수도, 심지어는 자체적으로는 완벽한 코드이지만 다른 모바일 환경과 인터랙션하는 과정에서 예기치 않은 문제가 발생할 수도 있다. 포지티브 테크놀로지스가 “하나로 합쳐진” 허점이라고 지적한 부분이다.

기업은 전문 인력을 고용해 자체 침투 테스트팀을 꾸려야 할 처지이다. BYOD를 포함해 업무용으로 사용하는 디바이스에 설치해도 되는지 모든 앱을 테스트해야 하는 상황이며, 일부 직원이 사용하는 일반 소비자용 앱까지 검사해야 할 지도 모른다. 

상황은 갈수록 나빠진다. 기업용으로 안전한 모바일 환경을 구축하고 유지하기 위해서는 침투 테스트를 한 번만 해서는 안된다. 앱이 업데이트되면 어떤 요소가 바뀌는지 모르기 때문에 매번 테스트해야 한다. 

일부 CIO는 이 목록에서 대형 업체의 앱을 빼고 싶어한다. 이런 업체가 안전하지 않은 코드를 사용할리 없다는 근거없는 믿음 때문이다. 물론, 대형 업체가 안전한 코드만을 사용할 수도 있다. 하지만 큰 업체일수록 사이버 공격의 목표가 될 확률도 커진다. 대형 솔루션 업체의 시스템은 완벽하다는 터무니없는 전제에 기업의 보안을 맡길 생각이 아니라면, 이들을 그냥 믿을 수는 없다. 잘해야 믿지만 확인해야 한다. 

그렇다면, 애플과 구글이 수십 억 달러가 들더라도 자사 앱스토어에 올라오는 모든 앱에 대해 침투 테스트를 하는 것이 더 효율적이고 안전한 방법이 아닐까? 물론 그렇지만, 기업이 강력하게 요구하고 주주들이 지지하지 않으면 그런 일은 일어나지 않는다. 애플과 구글은 자사의 이해, 즉 저작권과 기타 정책 문제를 보호하기 위해 많은 돈을 투자하지만, 기업을 보호하기 위해 투자하지는 않는다. 그런 것을 기대한다면, 세상 물정 모르는 이야기다.

포지티브의 모바틸 침투 테스트팀 책임자 니콜라이 아니세냐는 컴퓨터월드와의 인터뷰에서 “선천적인 취약점이 있는지 없는지 예측할 수 없다”며, “직원이 보안 공격을 받을 위험을 낮추고 싶다면, 모바일 앱 보안과 관련해 직원을 교육하는 것이 더 나을 것”이라고 말했다.

직원 교육의 문제는 직원들이 기업이 통제하는 업무용 앱(정확히는 기업 방화벽에서 승인한)은 기업의 테스트를 통과한것으로 생각한다는 것이다. 사실 방화벽 정도는 해커가 쉽게 조작할 수 있다. 직원들은 기업이 보증한 앱이 방화벽을 침해하는 것을 보더라도 보통 승인된 침해로 간주한다.

포지티브의 조사 결과에서 좀 더 구체적인, 그리고 충분히 나쁜 결과 몇 가지는 다음과 같다.

-    안전하지 않은 내부 처리 커뮤니케이션이 공통된 치명적인 취약점이다. 이를 이용해 공격자는 원격에서 취약한 모바일 애플리케이션에서 처리한 데이터에 액세스할 수 있다. 안드로이드는 애플리케이션 구성요소 간에 커뮤니케이션할 수 있도록 인텐트(Intent)란 메시지 객체를 제공한다. 만약 이 메시지가 내부가 아니라 외부로 나간다면(Broadcasting), 이 안에 있는 어떤 민감한 데이터라도 BroadcastReceiver 인스턴스로 등록된 악성코드에 의해 침해될 수 있다. iOS는 이런 내부 처리 커뮤니케이션을 금지하고 있다. 

-     딥 링킹(Deep Linking)은 개발자가 앱 확장 프로그램과 포함된 앱 간의 커뮤니케이션을 구현하기 위해 사용하는 일반적인 방법이다. 이 경우 앱은 시스템에 등록된 특정 URL 스키마를 통해 호출한다. 설치 과정에서 포함된 앱은 스스로를 Info.plist에 기재된 스키마의 처리자로 등록한다. 이런 스키마는 애플리케이션과 연결되지 않는다. 따라서 만약 악성 앱이 있는 디바이스가 같은 URL 스키마를 처리한다면, 어떤 앱이 이길지 알 수 없다. 공격자에게는 피싱 공격을 시전하고 사용자 인증서를 훔칠 기회가 열린다.

-     안드로이드 모바일 앱의 취약점 1/3은 환경 구성의 결함으로 인한 것이다. 예를 들어, 관련 전문가가 AndroidManifest.xml을 분석할 때 흔히 android:allowBackup 속성이 ‘true’로 설정되어 있는 것을 발견한다. 이 설정은 디바이스를 컴퓨터에 연결할 때 애플리케이션 데이터의 사본을 생성하도록 한다. 공격자는 이 결함을 이용해 루팅하지 않은 디바이스에서도 애플리케이션 데이터를 빼돌릴 수 있다.

-     모바일 디바이스는 위치 정보나 개인 데이터, 편지, 인증서, 재무 정보 등의 데이터를 저장하지만, 모바일 애플리케이션은 이런 데이터 스토리지의 안전을 간과하는 경우가 많다. 이런 취약점은 모바일 앱의 76%에서 나타났다.
-     “만약 두 개의 동일한 요청을 극히 짧은 간격으로 서버에 보내면, 일회용 패스워드가 사용자의 디바이스로 알림이나 SMS로 동시에 보내진다. 공격자는 이 SMS를 가로채 적법한 사용자인 채 할 수 있다. 사용자의 은행 계정을 비워버릴 수도 있다.

-     TRACE 요청이 XSS(Cross-Site Scripting) 취약점과 결합하면, 공격자가 쿠키를 훔쳐 애플리케이션에 액세스할 수 있다. 모바일 앱의 서버측 구성요소는 같은 코드를 웹사이트와 공유하는 경향이 있는데, XSS 취약점을 이용해 웹 애플리케이션을 사용자를 공격할 수도 있다. 

<출처 : IT World>




이민법

사람찾기

상법 · 소송