안드로이드 보안 취약점 타입
하나의 앱에서 다른 앱을 호출을 해서 사용을 할 수 있다. 예를 들어서 내가 웹 브라우저에서 맛집을 찾았다. 맛집을 클릭을 하면 지도 사용자에게 지도 어플로 이동할까요? 물어보고 웹 브라우저 앱에서 지도 앱으로 연결을 해준다.
$\rightarrow$ 앱에서 앱으로 서로 뭔가 우리가 모르는 사이에 뒤에서 어떠한 정보를 주고받고 있다.
Inter-component communicate(ICC)
컴포넌트들 간의 상호 커뮤니케이션.
인텐트라고 하는 메시지를 보내면 앱들이 메시지를 받아서 비동기화 방식으로 반응을 하는 형식으로 안드로이드 커뮤니케이션 모델이 설정되어 있다.
브라우저 앱에서 지도 앱으로 보낼 때는 그 인텐트 안에는 주소 정보가 있고, 이 정보를 받아가지고 지도 앱에서는 지도상에 띄워주는 식으로 동작을 한다.
$\rightarrow$인텐트 자체가 상당히 민감한 정보들을 많이 가지고 있을 수 있다.
즉, icc 자체가 민감 정보들에 취약할 수도 있고 여러 가지 취약점이 존재할 수 있다.
Inter-app attack
앱 사이의 ICC를 공격하는 것
웹 앱 안에서 컴포넌트 1은 사용자 입력받는 액티비티고 컴포넌트 2는 입력받은 정보 가지고 처리하는 컴포넌트라고 했을 때 원래라면 이 주소 정보가 지도 앱 안에서만 놀도록 설계가 되었어야 되는데, 설계상의 실수로 다른 브로드 캐스트 리시버도 이거를 열 수 있게끔 오픈이 되어 있다. 즉 주소 정보가 외부에서 노출이 된 거예요. 그래서 다른 악성 앱이 몰래 정보를 훔쳐 들을 수 있다.
문제점
- 대놓고 나쁜짓을 하지 않고 훔쳐보기만 하기 때문에 악성 앱과 보통 앱을 구분하기 어렵다.
- 즉, 공격이 일반적인 인텐트 교환과 차이가 거의 없어서 구분이 어렵다.
- 가장 크리티컬한 것은, 인텐트 익스체인지가 사용자에게 잘 보이지 않고, 모든 인텐트 교환을 사용자가 컨트롤 할 수 없다.
Inter-app attack은 크게 이제 세 가지 타입으로 나눌 수가 있다.
1. Unauthorized intent receipt
허가받지 않은 데 쓱 훔쳐보는 것. 도청하는 인텐트 정보에는 사용자 정보 사진 정보 이메일 정보 다 들어갈 수 있다. 퍼미션을 가지고 있는 다양한 정보들이 다 포함될 수가 있다.
2. Intent spoofing
악성 인텐트를 밀어 넣어가지고 대상 앱이 내가 원하지도 않은 동작을 하게 만드는 공격.
ex) 문자메세지 천개 보내게 해서 억지로 과금되게 함.
3. Privilege escalation
A는 C에게 연락 가능
B는 C에게 연락 불가
$\rightarrow$ B가 A를 조작해 C에게 연락하게 함.
문자 앱이랑 지도 앱이 있으면 문자 앱이 지도 앱에 접근할 수 있는 권한이 있는데, 전혀 상관없는 악성 앱이 문자 앱을 쑤셔가지고 지도 앱에 연결해가지고 원하지 않는 동작을 하게끔 만든다.
4. 공모
설치된 앱끼리 공조해서 공격을 한다.
ex) 식당앱은 인터넷 접속권한, 문자 앱은 연락처 접근 권한을 가지고 있어요. 그러면 둘이 공조해가지고 문자앱이 연락처를 받아가지고 식당 앱에다 보내서 식당 앱이 인터넷으로 빼돌리는 식으로 공모하기도 한다.
SEALANT
위의 악성 공격들을 막기 위한 방법.
- analyzer : 폰에 깔려있는 앱을 정적 분석 후 이상한 앱에 대한 리스트를 만든다.
- Interceptor : 리스트를 가지고 감시하다가, 리스트에 있는 앱에서 인텐트 커뮤니케이션이 발생하면 물어보고 블락하든지 허용하든지 할 수 있다.
'ETC > 네트워크 보안' 카테고리의 다른 글
네트워크 보안 Ch.12 AI Security (0) | 2023.04.10 |
---|---|
네트워크 보안 Ch.11 Software Security (1) | 2023.04.10 |
네트워크 보안 Ch.10 Software Security (0) | 2023.04.10 |
네트워크 보안 Ch.9 Network Security (1) | 2023.04.10 |
네트워크 보안 Ch.8 Network Security (0) | 2023.04.10 |