안드로이드 모의해킹/안드로이드 이론

안드로이드 아키텍처

seungwon9201 2024. 9. 5. 16:41

잘 설계된 아키텍처를 구성하는 것은 안드로이드 앱 보안을 강화하는 중요한 요소이다. 

이번 글에서는 안드로이드 앱의 아키텍처 설계 패턴에 대해서 공부해 보자.

 

안드로이드 앱 설계 패턴

안드로이드 앱 개발에서 사용되는 주요 아키텍처 패턴은 MVC, MVP 등이 있다.

 

  • MVC

MVC 다이어그램

MVC는 안드로이드 개발에서 가장 많이 쓰이는 패턴이다.

  1. Model : 앱의 데이터와 비즈니스 로직을 담당하고 데이터페이스, 네트워크 요청, 파일 입출력 등의 작업을 처리하며 데이터의 상태에 따라 전달한다. 
  2. View : 사용자에게 데이터를 시각적으로 제공한다. activity, fragments, XML, layout 파일 등을 포함한다.
  3. Controller : 모델과 뷰 사이에서 데이터 흐름을 관리하고, 사용자의 행동에 따라 적절한 작업을 수행한다. 

MVC패턴은 규모가 작은 앱에서 개발 기간을 단축할 수 있다는 장점이 있지만 코드의 양이 증가하거나 시간이 흐를수록 유지보수가 어렵다는 단점이 있다. 또한 컨트롤러가 뷰와 모델에 의존하기 때문에 유닛 테스트가 어렵다는 단점도 있다.

 

  • MVP

MVP 다이어그램

MVP는 MVC 패턴의 단점인 높은 결합도를 해결하기 위해서 사용한다. 모델과 뷰의 역할은 MVC와 동일하지만 컨트롤러 대신 프레젠터를 사용해서 뷰와 모델을 확실하게 분리한다. 

  1. Model : MVC모델과 동일하다.
  2. View : 사용자에게 데이터를 시각화해서 보여주고 MVP 패턴에서는 액티비티의 일부를 뷰로 간주한다.
  3. Presenter : 뷰와 모델 사이의 중간 계층으로 두 계층 사이에서 상호작용을 관리한다. 

 

MVP는 프레젠터가 뷰에 직접 의존하지 않으므로, 비즈니스 로직을 독립적으로 테스트할 수 있고, 뷰와 모델 간의 결합도를 낮추어 코드의 변경이 쉬우며 유지보수가 용이하다.


 

안드로이드 운영체제 구조

 

안드로이드 운영체제는 이렇게 사용자, 애플리케이션, 운영체제로 구성된다. 

 

사용자는 아래의 두 계층이 안전하다고 생각하고 안드로이드 앱을 사용하기 때문에 취약점을 진단하는 입장에서는 아래 두 계층에서 발생할 수 있는 위협에 대해서 고려해야 한다.

 

  1. 애플리케이션 수준의 보안
    • 안드로이드 앱은 다양한 권한을 요구하면서 사용자의 정보를 처리한다. 만약 앱이 악의적인 목적으로 개발되었다면 권한을 요구하고 남용하여 사용자의 정보를 탈취하거나 악성코드를 실행시킬 위험이 있다. 그래서 사용자는 앱을 설치하기 전에 앱이 요구하는 권한을 무조건 허용해서는 안된다. 또한 신뢰할 수 없는 사이트에서의 설치는 삼가자.
  2. 운영체제 수준의 보안
    • 안드로이드 운영체제의 취약점도 공격자에게 남용될 수 있다. 사용자 권한을 초과해서 시스템 명령을 실행하거나 정보를 유출시킬 문제가 있다. 이를 방지하기 위해서 지속적으로 안드로이드는 업데이트가 된다.

안드로이드 취약점 진단에서 대부분은 애플리케이션 수준에서 진행된다.

코드, 권한, 통신 구간 등을 분석해서 취약점을 식별하고 보안성을 강화하자. 또한 다른 계층과 연계하면서 취약점이 발생할 수 있다. 그래서 하나의 계층뿐만 아니라 다른 계층에도 보안 패치를 적용해서 시스템 보안을 강화해야 한다. 

'안드로이드 모의해킹 > 안드로이드 이론' 카테고리의 다른 글

객체지향 언어  (0) 2024.09.04
DIVA앱 설치하기  (2) 2024.09.03