Liea
'mobile' 태그의 글 목록

mobile

② 공부/[Mobile-Android]

안드로이드 권한 부여 uses-permission 위험권한 및 항목 전체 값 설명

위험권한 권한 그룹 권한 CALENDAR READ_CALENDAR WRITE_CALENDAR CAMERA CAMERA CONTACTS READ_CONTACTS WRITE_CONTACTS GET_ACCOUNTS LOCATION ACCESS_FINE_LOCATION ACCESS_COARSE_LOCATION MICROPHONE RECORD_AUDIO PHONE READ_PHONE_STATE CALL_PHONE READ_CALL_LOG WRITE_CALL_LOG ADD_VOICEMAIL USE_SIP PROCESS_OUTGOING_CALLS SENSORS BODY_SENSORS SMS SEND_SMS RECEIVE_SMS READ_SMS RECEIVE_WAP_PUSH RECEIVE_MMS STORAGE READ..

② 공부/[Mobile-Android]

APK 디컴파일(Decompile), 리컴파일(Recompile), 사이닝(Signing) 필요 명령어만 정리

디컴파일 : apktool d [디컴파일할 apk 파일이름] 리컴파일 : apktool b [디컴파일된 폴더] -o [최종APK파일이름] APK Signing : keytool -genkey -v -keystore [keystore이름] -alias [alias이름] -keyalg [키알고리즘] -keysize [키사이즈] -> keytool -genkey -v -keystore my-release-key.keystore -alias alias_name -keyalg RSA -keysize 2048 APK 파일 서명 : jarsigner -verbose -sigalg [서명알고리즘] -digestalg [digest알고리즘] -keystore [keystore파일] [서명할APK] [alias명] -> ..

② 공부/[Mobile-Android]

안드로이드 모바일 앱 보안 강화 - 코드 난독화 적용

코드 난독화 적용 안드로이드 앱은 자바를 기반으로 개발되어 APK 형태로 배포된다. C언어의 경우 일반적으로 EXE나 DLL 형태로 개발되기 때문에 앱에 대한 역공학이 어렵지만, 자바로 개발된 앱은 자바라는 언어의 특성상 클래스 파일로부터 바이트코드를 추출해 원본 코드로 디컴파일이 가능하다. 이런 구조적 문제로 인해 금융 앱과 같이 보안에 민감한 앱의 경우 보안상 치명적인 문제점을 드러낼 수 있다. 문제점을 해결하기 위해 애플리케이션 위변조 방지 기술 중 하나로 코드 난독화 기술이 존재한다. 코드 난독화는 역공학 시 프로그램 로직을 쉽게 판단하기 어렵게 코드를 꼬아 놓는 기술로, 앱에 대한 역공학을 수행하는 공격자가 역공학을 통해 원본 소스 코드를 유추하기 어렵게 만든다. 자바에서 주로 사용하는 난독화 ..

② 공부/[Mobile-Android]

안드로이드 모바일 앱 보안 강화 - FindBugs/FindSecurityBugs

FindBugs/FindSecurityBugs FindBugs 란? FindBugs는 자바 코드에서 버그를 찾기 위한 정적 분석 도구이다. FindBugs에서 지원하는 플러그인 Eclipse NetBeans IntelliJ IDEA Gradle Hudson and Jenkins Android Studio FindBugs는 자바에서 발생할 수 있는 약 100여 개의 잠재적 위협을 탐지하여 각 위협을 Scariest, Scary, Troubling, Concernd의 4등급으로 구별하여 그 결과를 XML로 지원한다. FindBugs에서는 Bad practice, Correctness, Dodgy code, Experimental, Internationalization, Malicious code vulner..

② 공부/[Mobile-Android]

안드로이드 모바일 앱 보안 강화 - PMD 활용하기

PMD 활용 PMD 란? PMD는 정적 분석 도구로, 개발 과정에서 소프트웨어의 잠재적인 위협을 찾아주는 오픈소스 도구이다. PMD에서 지원하는 공식적인 플러그인 Maven PMD plugin Eclipse plugin NetBeans plugin JBuilder plugin JDeveloper plugin IntelliH IDEA plugin PMD에서 찾을 수 있는 잠재적인 문제점들의 유형 프로그래밍 결함 불필요한 객체 생성 사용하지 않는 코드 너무 복잡한 코드 중복된 코드 보안 결함 PMD의 동작 과정은 먼저 분석할 자바 프로그램을 읽어들인 후 파서를 이용해 AST를 생성하고 미리 정의된 룰셋에서 해당하는 위협들을 탐지해 보고서에 추가한다. PMD에서 지원하는 기본적인 룰셋의 일부는 아래와 같다. ..

② 공부/[Mobile-Android]

안드로이드 모바일 앱 보안 강화 - 시큐어코딩

시큐어코딩 개요 시큐어코딩 : 소프트웨어 개발 단계에서 보안 취약점을 사전에 제거하여 안전한 소프트웨어를 개발하는 코딩 기법 대부분 보안 취약점은 개발자의 미숙한 코딩에서 비롯되어 발생하며, 개발 단계에서 안전하게 개발한 경우 보안 취약점을 예방할 수 있다. 물론 프로그램 언어, 플랫폼적 문제, 소프트웨어 설계상의 문제로 인한 취약점도 있다. 개발 가이드는 다음과 같다. 국내 : 한국인터넷진흥원에서 발행하는 시큐어 코딩 관련 가이드 소프트웨어 개발 보안 가이드 JAVA 시큐어 코딩 가이드 C 시큐어 코딩 가이드 Android-Java 시큐어 코딩 가이드 국외 : CENT에서 발행한 CENT 표준 개발 가이드(CERT Coding Standatds) Andoid, C, C++, JAVA, Perl 등 그 ..

② 공부/[Mobile-Android]

앱 자동 분석 시스템 - Androbugs

Androbugs를 활용한 앱 분석 Androbugs 프레임워크는 단일 앱의 취약점을 빠르게 분석할 수 있는 프레임워크이다. 파이썬 2.7.x 버전에서 PyMongo 라이브러리만 설치되면 간단하게 앱 진단이 가능하다. 현재 .exe 파일로 제공되어 파이썬 명령어 없이도 사용이 가능하다. 명령어 : androbugs.exe -f InsecureBankv2.apk https://github.com/AndroBugs/AndroBugs_Framework 아래 사진은 Androbugs 사용 화면이다. 결과 보고서는 Androbugs 폴더의 Reports 폴더에 생성되어 있다. Androbugs를 활용한 앱 분석 오탐 발생 혹은 검출 확률이 적을 수 있지만, 인시큐어뱅크 앱 분석 결과에서는 상세 분석 시 진행했던 ..

② 공부/[Mobile-Android]

앱 자동 분석 시스템 - Inspeckage

Inspeckage를 활용한 앱 분석 Inspeckage는 디바이스에 설치되며 앱 API 함수를 후킹하여 동적 분석한 내용을 웹 서비스 기반으로 보여주는 앱이다. 서버에 요청하는 값, 앱 권한, 공유 라이브러리, 노출된 앱 취약점 등을 확인할 수 있다. 특히 중요 설정 파일들과 파일 접근, 데이터베이스 접근 정보들을 실시간으로 파악할 수 있기 때문에 액티비티 동작 과정에서 어떤 행위를 하는지 정확하게 파악할 수 있다. ⇒ 악성코드 앱 분석 시 유용함 Inspeckage 실행 전 Xposed Framework 앱을 설치해야 한다. https://repo.xposed.info/module/de.robv.android.xposed.installer 위 사이트로 이동하여 apk 파일을 다운받는다. > 설치과정 ..