포스팅 내용

국내외 보안동향

[해외보안동향] 마스크 공격 : 당신의 모든 iOS 앱은 우리에게 달려있다

Masque Attack: All Your iOS Apps Belong to Us

마스크 공격: 당신의 모든 iOS 앱은 우리에게 달려있다


2014년 7월, 파이어아이 모바일 보안 연구원들은 특정 iOS 앱이 enterprise/ad-hoc 권한 설정을 사용하여 앱스토어로부터 설치한 정품 앱이 동일한 번들 식별자(bundle identifier)를 가지고 있는 경우 바꿔치기 할 수 있는 것을 발견했습니다. 이 앱은 “New Flappy Bird” 등과 같이 임의로 설정되어, 유저들이 설치하도록 합니다. iOS에서 프리인스톨 된 모바일 사파리 등의 앱을 제외한 모든 앱이 바꿔치기 될 수 있습니다. 


이 취약점은 iOS가 강제적으로 동일한 번들 식별자를 가진 앱의 인증서를 매칭해보지 않았기 때문에 존재합니다. 파이어아이 측은 해당 취약점을 iOS 7.1.1, 7.1.2, 8.0, 8.1, 8.1.1 beta에서 모두 발견하였고, 이는 탈옥 여부를 가리지 않습니다. 공격자는 이 취약점을 무선 네트워크나 USB를 통하여 악용할 수 있습니다. 파이어아이는 이를 마스크공격(Masque Attack)이라 명명하였고, 아래의 데모 비디오를 만들었습니다.


▶ 비디오 링크 : https://www.youtube.com/watch?feature=player_embedded&v=3VEQ-bJUhPw


파이어아이는 해당 취약점과 관련하여 7월 26일에 애플에 알린 바 있다고 밝혔습니다. 최근 Claud Xiao가 와이어러커 멀웨어를 발견한 후, 파이어아이 내부적으로 와이어러커를 분석하던 중, 해당 멀웨어가 USB를 통하여 iOS 기기를 공격할 때 마스크 공격의 제한된 형태를 활용하고 있는 것을 발견했습니다. 마스크 공격은 와이어러커보다 훨씬 큰 위협이라 볼 수 있습니다. 마스크공격은 공격자의 앱을 이용하여 인터넷을 통해 뱅킹, 이메일 등의 정식 앱을 바꿔치기가 가능하기 때문입니다. 이는 공격자가 정품 뱅킹 앱을 바꿔치기 하여 유저의 뱅킹 크리덴셜을 훔치는 것이 가능하다는 의미입니다.


놀랍게도, 이 멀웨어는 오리지널 앱이 바꿔치기될 때 함께 제거되지 않은 로컬 데이터에도 접근이 가능합니다. 이는 캐싱된 이메일, 로그인 토큰 등이 포함될 수 있습니다.


마스크 공격은 아래의 심각한 결과를 초래할 수 있습니다:

1. 공격자들이 희생자의 로그인 크리덴셜을 훔치기 위해 오리지널 앱의 로그인 인터페이스를 흉내낼 수 있습니다. 파이어아이는 다수의 이메일, 뱅킹앱에서 이를 발견하였고, 해당 멀웨어가 유저들에게 입력받은 이 정보를 리모트 서버로 전송할 수 있는 것을 확인했습니다.


2. 파이어아이는 오리지널 앱이 바꿔치기 된 이후에도 해당 앱의 디렉토리에서 로컬 데이터 캐시 등의 데이터를 발견했습니다. 멀웨어는 이 민감 데이터를 훔칠 수 있습니다. 파이어아이 측은 이메일 앱으로 위장한 공격 시 멀웨어가 중요한 이메일의 로컬 캐시를 훔쳐 리모트 서버로 업로드 할 수 있는 것을 확인했습니다.


3. MDM 인터페이스는 오리지널 앱에서 멀웨어를 구분해낼 수 없었습니다. 동일한 번들 식별자를 사용하기 때문입니다. 현재로써는 각각의 앱의 인증서 정보를 얻을 수 있는 MDM API는 존재하지 않습니다. 그러므로, MDM으로써는 이러한 공격을 탐지해 내기 어렵습니다.


4. “Apple without a shell - iOS under targeted attack”에서 언급한 바와 같이, 기업용으로 제작되어 배포 된 앱들은 애플의 리뷰 프로세스를 거치지 않습니다. 그러므로 공격자가 iOS 프라이빗 API를 이용하여 백그라운드 모니터링(CVE-2014-1276)과 같은 더욱 강력한 공격을 수행하고, iCloud의 UI를 흉내내어 유저의 애플 ID와 패스워드를 훔치려고 시도할 수 있습니다.



관련 사례


파이어아이는 실험을 위하여 “com.google.Gmail” 번들 식별자를 가진 “New Flappy Bird”라는 이름의 앱을 사용했습니다. 또한 이를 기업 인증서로 서명했습니다. 이 앱을 웹사이트를 통하여 설치 했을 때, 이는 폰의 오리지널 지메일 앱을 바꿔치기했습니다.



위 그림에서 a, b는 정품 지메일 앱을 보여줍니다. C는 사용자가 웹사이트에서 “New Flappy Bird”앱을 설치하도록 권유받고 있는 것을 보여줍니다. 앱 이름은 다르지만, 사실은 “com.google.Gmail”의 확장자를 가지고 있는 것입니다.


사용자가 ‘설치’를 클릭하게 되면, d와 같이 이 앱이 오리지널 지메일 앱을 바꿔치기 하고 있는 것을 볼 수 있습니다. E는 바꿔치기가 완료된 모습입니다. 설치 이후 이 새로운 지메일 앱을 오픈하면, 유저는 자동으로 로그인 되어있고, UI는 오리지널앱과 매우 비슷합니다. 위쪽의 “그래, 당신은 당했어”라는 조그만 텍스트를 제외하면 말입니다. 이 텍스트는 앱의 변경을 쉽게 알 수 있도록 추가한 것이고, 실제 공격에는 이 텍스트가 보여지지 않습니다.


이러고 있는 사이, 오리지널 정품 지메일 앱의 로컬 캐싱 된 이메일들은 순수한 텍스트 형태로 sqlite3 데이터베이스에 저장 되어 있고, 이는 원격 서버로 업로드됩니다. 마스크 공격은 기기를 컴퓨터에 연결하는 것에 의존하지 않고, 온전히 무선 네트워크를 통하여 이루어진다는 점을 명심하시기 바랍니다. 아래 그림을 참조 부탁 드립니다.




마스크 공격 방지책


iOS 유저들은 마스크 공격으로부터 아래와 같이 함으로써 자신을 보호할 수 있습니다:

1. 서드파티 소스로부터 앱을 다운받지 않습니다. 애플의 공식 앱스토어나 사용자의 조직으로부터만 다운받아야 합니다.


2. 앱이 아무리 매력적으로 보일지라도, 써드 파티 웹페이지 팝업의 “설치” 버튼을 누르지 않습니다. 공격자가 앱 설명을 얼마든지 변경할 수 있기 때문입니다.


3. 앱을 오픈할 때 iOS에서 아래와 같이 “신뢰할 수 없는 앱 개발자”라는 경고를 띄울 경우, “신뢰하지 않음”버튼을 클릭하고 앱을 즉시 언인스톨하시기 바랍니다.



혹시라도 이미 마스크 공격앱이 설치 되었는지 확인하기 위해서는, iOS 7 유저들은 설정 ▶ 일반  프로파일 메뉴 내 “권한 설정”(Provisioning Profiles) 박스에 체크하여 마스크 공격으로 인하여 내려받은 앱이 있는지 여부를 확인할 수 있습니다. 또한 의심스러운 프로파일들을 보안 부서에 보고할 수도 있습니다. 프로비젼 프로파일들을 삭제함으로써 해당 프로파일에 의존한 기업 서명 된 앱들이 실행되는 것을 막을 수 있습니다. 하지만 iOS 8은 이미 설치된 프로비젼 프로파일들을 보여주지 않기 때문에 더욱 각별한 주의가 필요합니다.




출처 : Fire Eye Blog (November 10, 2014)

http://www.fireeye.com/blog/technical/cyber-exploits/2014/11/masque-attack-all-your-ios-apps-belong-to-us.html



티스토리 방명록 작성
name password homepage