본문 바로가기
[android] ViewModel & LiveData 의 pattern & anti-pattern Views and ViewModels Distributing responsibilities -이상적으로 ViewModel 은 Android 에 대한 어떤 것도 알아서는 안 된다.이는 testability 를 늘려주고, 더 안전하며, module 화하기 편해진다.이를 가장 쉽게 확인할 수 있는 방법은 android.arch.* 외에는 android.* import 가 없어야 한다. -조건문, loop, 동작 결정 등은 Activity, Fragment 가 아닌 ViewModel 이나 다른 layer 에서 수행해야한다.View 는 어떻게 data 를 display 할지만 신경쓰고, user event 를 ViewModel 이나 Presenter 로 전달하는 역할만 해야 한다.이것이 Passive View p.. 2021. 1. 22.
[android] ViewModel 에 대해 알아보자 -ViewModel 은 activity 나 fragment 에서 사용되는 data 를 준비하고 관리하는 역할을 하는 클래스이다.이 녀석은 activity 와 fragment 를 비롯한 앱 전반과의 통신을 관리한다. -ViewModel 은 항상 fragment 나 activity 와 같은 scope 안에서 생성된다.그리고 scope 이 살아있는 동안 계속 유지된다.이 말은 Configutation change 로 인해 destory 되더라도, ViewModel 은 destroy 되지 않는다.새로운 owner instance (재생성된 Activity)는 존재하는(기존 Activity 에 의해 생성된) ViewModel 에 재연결된다. -ViewModel 의 목적은 Activity 나 Fragment 에서 .. 2021. 1. 21.
[android] LiveData 에 대해 알아볼까 -LiveData 는 주어진 lifecycle 에 의해 observed 될 수 있는 data holder 이다.이 말은 LifecycleOwner 와 함께 하는 Observer 라고 보면 된다. 그리고 이 observer 는 감싸고 있는 data 의 변경을 LifecycleOwener 의 상태가 active 상태일 때만 알려준다. -LifecycleOwner 는 LifeCycle.State.STARTED 나 LifeCycle.State.RESUMED 일 때만 active 상태이다.observeForever(Observer) 를 통해 observer 가 추가되면 이 observer 는 항상 active 상태로 여겨지며, 따라서 변경에 대해 항상 notify 를 받을 수 있다.이 경우에는 수동으로 remov.. 2021. 1. 20.
#5 모바일 앱 보안 강화 - 안드로이드 모바일 앱 모의해킹 5.1. 시큐어 코딩 개요 -시큐어 코딩이란 개발 단계에서 보안 취약점을 사전에 제거하여 안전한 소프트웨어를 개발하는 코딩 기법으로, CENT 에서 처음 제안되어 현재는 국내외에서 다양한 표준 코딩 기법들이 발표되고 있다. -대부분의 보안 취약점은 개발자의 미숙한 코딩에서 비롯되어 발생하는 것으로, 개발 단계에서 안전하게 개발할 경우, 대부분의 보안 취약점을 예방할 수 있다.물론 프로그램 언어나, Platform적 문제나, 소프트웨어 설계상의 문제점으로 발생하는 취약점들도 있다.투자 비용 대비 가장 안전하게 소프트웨어를 개발할 수 있는 방법은 개발 단계에서 제거하는 것이다. -한국인터넷진흥원에서 발행하고 있는 시큐어 코딩 가이드는 다음과 같다. 소프트웨어 개발 보안 가이드 JAVA 시큐어 코딩 가이드 C.. 2020. 11. 23.
#4 앱 자동 분석 시스템 - 안드로이드 모바일 앱 모의해킹 4.1. 샌드드로이드 -SandDroid 는 안드로이드 앱 온라인 자동 분석 시스템으로, apk 또는 zip 파일을 업로드하면 정적 및 동적 분석을 해준다. -분석이 끝나면 분석 결과를 종합하여 위험 행위 분석과 위험 점수를 알려준다. -sanddroid.xjtu.edu.cn 을 통해 수행한다. -결과물은 샌드로이드 분석 결과, 파일의 분석 시간, 해시값(추후 다시 이력을 찾을 때 사용), 패키지 이름, pcap 파일, 로그캣 정보 등이다.pcap 파일은 네트워크 트래픽을 모두 기록하여 저장한 정보이다. 4.2. QARK 4.2.1. QARK 이란? -QARK(Quick Android Review Kit)은 데프콘 23 USA 2015 라는 이름으로 발표되면서 주목받은 오픈소스 안드로이드 앱 취약점 진단.. 2020. 11. 22.
#3 취약점 항목별 상세 실습 part 2. - 안드로이드 모바일 앱 모의해킹 3.11. 안전하지 않은 로깅 메커니즘 3.11.1. 취약점 소개 -안드로이드의 커널 공간 안에 있는 로거(Logger)라는 커널 드라이브는 main, radio, event, system 이라는 네 가지 종류의 버퍼를 관리하고 있다.또한 사용자 공간에 있는 앱들은 보안 정책에 의해 커널의 버퍼에 접근할 수 없기 때문에 “/dev” 디렉터리에 리눅스 디바이스 노드들을 제공하여 앱이 로그를 읽고 쓸 수 있도록 하고 있다. -각 버퍼에 저장되는 내용은 아래와 같다.Main : 메인 앱 로그로서 앱이나 플랫폼 내부에서 android.util.Log 클래스로 기록된 로그Event : 시스템에서 발생하는 이벤트 정보를 위한 로그Radio : 이동통신망과 관련된 이벤트 로그System : 안드로이드 플랫폼 내부의 .. 2020. 11. 21.
#3 취약점 항목별 상세 실습 part 1. - 안드로이드 모바일 앱 모의해킹 3.1. 브로드캐스트 리시버 결함 3.1.1. 취약점 소개 -악의적인 목적을 갖고 수행하는 경우에는 사용자가 받는 알림을 중간에서 가로채는 행위를 할 수 있으며, 특정한 상황에서만 발생하는 작업을 우회하여 수행하도록 조작할 수 있다. 3.1.2. 취약점 진단 과정 * ADB를 이용한 브로드캐스트 생성 -> am broadcast -a actionName -n pkgName/className —es stringExtraKey stringValue * 드로저를 이용한 브로드캐스트 생성 -dz> run app.package.attacksurface pkgName// exported 된 component 들이 결과값으로 나온다. -dz> run app.broadcast.info -a pkgName// pkgNa.. 2020. 11. 20.
#2 취약점 진단 및 분석 도구 part 2. - 안드로이드 모바일 앱 모의해킹 2.2. 드로저를 활용한 취약점 진단 2.2.1. 드로저란? -드로저(drozer)는 MWR InfoSecurity 에서 개발한 모바일 앱 취약점 진단 프레임워크인 머큐리(Mercury)의 새로운 업데이트 버전이다.윈도우와 리눅스를 지원하며 JRE, JDK, 안드로이드 SDK 가 설치되어 있어야 사용할 수 있다.안드로이드 단말에 에이전트(Agent)를 설치한 후 PC 에서 ADB 로 명령을 내리는 서버와 클라이언트 방식으로 동작한다. 드로저는 가상 디바이스뿐만 아니라 실제 디바이스에서도 테스트할 수 있고 자동 테스팅도 가능하다.안드로이드 익스플로잇과 같은 다양한 시나리오를 통해 취약점을 점검할 수 있다. 2.2.2. 드로저를 활용한 앱 패키지 정보 확인 -설치된 패키지 목록을 보여준다.dz> run ap.. 2020. 11. 19.
#2 취약점 진단 및 분석 도구 part 1. - 안드로이드 모바일 앱 모의해킹 2.1. ADB 살펴보기 -ADB 는 Android Debug Bridge.안드로이드 에뮬레이터나 PC 에 실제 연결된 장치를 제어하기 위한 안드로이드 디버깅 도구 중 하나이다. -ADB 는 클라이언트, 서버, 데몬의 세 요소를 포함하는 클라이언트-서버 프로그램이다. ADB 클라이언트는 ADB 명령을 입력하는 개발 PC 이다.ADB 서버는 안드로이드 개발 시스템의 백그라운드 프로세서로, 장치의 ADB 데몬 사이의 통신을 관리한다.ADB 데몬은 장치의 백그라운드 프로세서로 동작하는 인스턴스다. -ADB 클라이언트가 시작되면 가장 먼저 ADB 서버 프로세서가 실행 중인지 점검한다.실행 상태가 아니면 서버 프로세스를 구동하며, TCP 5037 포트에 바인드 시키고, 모든 클라이언트는 5037 포트를 통해 AD.. 2020. 11. 18.
반응형