1. 안드로이드와 iOS 취약점 차이
| 구분 | 루팅(Rooting) | 탈옥(Jailbreaking) |
| 대상OS | 안드로이드 | iOS |
| 권한 수준 | 리눅스 root권한 획득 | iOS 보안 제한 해체 |
| 주 목적 | 관리자 권한으로 시스템 제어 | 애플 제한 해체 및 비공식 앱 설치 |
| 적용 방법 | 부트로더 언락, 커스텀 리커버리, SU | iOS 취약점 이용 |
| 위험성 | 악성 앱에 의한 OS장악 위험 | iOS 보안 모델 붕괴 |
| 대표 도구 | Magisk(매지스크) | Dopamine(도파민) |
| 복구 방법 | 공장 초기화, 순정 펌웨어 재설치 | 복원 모드로 iOS 재설치 |
2.루팅(Android)
정의
안드로이드 운영체제에서 최고 관리자 권한인 루트(root) 권한을 얻는 행위입니다.
이를 통해 시스템 파일에 접근하거나 수정하는 등, 제조사가 제한한 기능을 해제할 수 있습니다.
루팅 도구: Magisk(매지스크)
안드로이드 기기에서 부트로더 = 시스템의 ‘잠금장치’ 역할
공장 출하 시 대부분의 스마트폰은 부트로더가 잠금 상태로 설정되어 있어요. 이는 사용자가 시스템 파일을 임의로
변경하지 못하게 막는 보안 조치 중 하나예요. 하지만 루팅이나 커스텀 롬 설치를 하려면 부트로더 언락이 필요합니다.
3.탈옥(iOS)
정의
애플의 iOS 기기에서 보안 제한을 해체하여 비공식 앱 설치 등 더 많은 권한을 얻는 것을 의미합니다.
탈옥 도구: 도파민(Dopamin)
iOS는 Linux 커널이 아닌 Apple의 XNU/Darwin 스택(Mach + BSD)을 기반으로 구축되었습니다.
XNU(엑스뉴)/Darwin(다윈)
도파민 최신 버전에는 탈옥 숨김 기능도 제공되고 있어 탈옥 방지 솔루션을 우회할 수 있게 해줍니다.
rootless 탈옥
스템 손상없이 비교적 안전한 방법으로 탈옥을 할 수 있게 해준다는 점이다. 사용자 대부분은 해커가 아니며 탈옥을 하는 목적은 가볍게 제한된 iphone을 자유롭게 커스터마이징 하기 위한 용도로 사용합니다. 때문에 시스템 안정성까지 해쳐 root디렉터리를 해집으며 탈옥을 할 이유는 없는 것입니다.
rootful 탈옥
여전히 커널학장, 시스템 데몬 패치, SIP우회 등 강력한 우회 기능을 제공하기 때문에 고급 커스터마이징을 하려면 rootful 탈옥을 해야합니다.
3.모바일 앱 소스코드 보안약점 기준
| 모바일 앱 소스코드 보안약점 기준 | ||
| 번호 | 점검 항목 | 설명 |
| 1 | SQL 삽입 | 검증되지 않은 외부 입력값이 SQL쿼리문 생성에 사용되어 악의적인 쿼리가 실행될 수 있는 보안약점 |
| 2 | 경로 조작 및 자원 삽입 | 검증되지 않은 외부 입력값이 시스템 자원 접근경로 또는 자원제어에 사용되어 공격자가 입력값을 조작해 공격할 수 있는 보안약점 |
| 3 | 크로스사이트 스크립트 | 검증되지 않은 외부 입력값에 의해 사용자 브라우저에 악의적인 스크립트가 실행될 수 있는 보안약점 |
| 4 | 운영체제 명령어 삽입 | 검증되지 않은 외부 입력값이 운영체제 명령문 생성에 사용되어 악의적인 명령어가 실행될 수 있는 보안약점 |
| 5 | 오버플로우(정수형, 메모리 버퍼) | 정수값 및 메모리 버퍼의 경계값이 범위를 넘어서는 경우, 프로그램이 예기치 않게 동작될 수 있는 보안약점 |
| 6 | 취약한 암호화 알고리즘 사용 | 중요정보(금융정보, 개인정보, 인증정보 등)를 열람(또는 변경) 할 수 있게 하는 보안약점 |
| 7 | 중요정보 평문 저장 | 중요정보(비밀번호, 개인정보 등)를 암호화하여 저장하지 않아 정ㅈ보가 노출될 수 있는 보안약점 |
| 8 | 중요정보 평문 전송 | 중요정보(비밀번호, 개인정보 등) 전송시 암호화하지 않거나 안전한 통신채널을 이용하지 않아 정보가 노출될 수 있는 보안약점 |
| 9 | 하드코드된 비밀번호 | 소스코드 내에 비밀번호가 하드코딩 되어 소스코드 유출시 노출 우려 및 키 변경이 용이하지 않은 보안약점 |
| 10 | 충분하지 않은 키 길이 사용 | 데이터의 기밀성, 무결정 보장을 위해 사용되는 키의 길이가 충분하지 않아 기밀정보 누출, 무결성이 깨지는 보안약점 |
| 11 | 적절하지 않은 난수값 사용 | 예측 가능한 난수사용으로 공격자로 하여금 다음 숫자 등을 예상하여 시스템 공격이 가능한 보안약점 |
| 12 | 하드코드된 암호화 키 | 소스코드 내에 암호화키가 하드코딩 되어 소스코드 유출시 노출 우려 및 키 변경이 용이하지 않은 보안약점 |
| 13 | 주석문안에 포함된 시스템 주요정보 | 소스코드내의 주석문에 인증정보 등 시스템 주요정보가 포함되어 소스코드 유출시 노출될 수 있는 보안약점 |
| 14 | 경쟁조건: 검사시점과 사용시점(TOCTOU) | 멀티 프로세스 상에서 자원을 검사하는 시점과 사용하는 시점이 달라서 발생하는 보안약점 |
| 15 | 오류메시지 및 시스템 데이터 정보노출 | 사용자가 볼 수 있는 오류 메시지나 스택 정보에 시스템 내부 데이터나 디버깅 관련 정보가 공개되는 보안약점 |
| 16 | 오류상황 대응 부재 | 시스템에서 발생하는 오류 상황을 처리하지 않아 프로그램 실행정지 등 의도하지 않은 상황이 발생할 수 있는 보안약점 |
| 17 | 부적절한 예외처리 | 예외에 대한 부적절한 처리로 인해 의도하지 않은 상황이 발생될 수 있는 보안약점 |
| 18 | Null Pointer 역참조 | Null로 설정된 변수의 주소값을 참조했을 때 발생하는 보안약점 |
| 19 | 부적절한 자원 해제 | 사용된 자원을 적절히 해체하지 않으면 자원 누수 등이 발생하고, 자원이 부족하여 새로운 입력을 처리할 수 없게 되는 보안약점 |
| 20 | 취약한 API | 사용 취약하다고 알려진 함수를 사용함으로써 예기치 않은 보안위협에 노출될 수 있는 보안약점 |
| 21 | 안드로이드 애플리케이션 컴포넌트의 부적절한 접근 허용 | 안드로이드 애플리케이션 컴포넌트 설정으로 부적절한 접근이 허용되어 외부의 애플리케이션에 의해 의도치 않게 실행될 수 있는 보안약점 |
| 22 | 민감한 정보 전송을 위한 암시적 intent사용 | 암시적 intenet를 사용하여 민감한 정보가 전송시 도청 및 악성행위 삽입이 가능한 보안약점 |
| 23 | 접근제어 없이 내.외부저장소 사용 | 내.외부저장소(SD카드 등)에 중요한 정보를 암호화하여 저장하지 않아 정보가 노출되거나 수정이 가능한 보안약점 |
| 24 | 안드로이드의 권한 검사 우회 | 권한이 전혀 없는 호출 프로그램이 응용 프로그램의 권한을 사용하게 되어 권한 검사를 우회할 수 있는 보안 약점 |
| 25 | 클래스 로딩 하이재킹 | 프로그램의 클래스 로드시 검색되는 디렉토리 이름이 변경되어 클래스 경로를 공격자가 명시적으로 제어할 수 있는 보안약점 |
| 26 | 소스코드 난독화 미적용 | 역공학 기술의 의한 소스코드 유출 및 보안매커니즘 우회 등이 발생할 수 있는 보안약점 |
아래의 KISA 한국인터넷진흥원 모바일 대민서비스 보안취약점 점검 가이드를 보시면 도움이 될 것 같습니다.
https://www.kisa.or.kr/2060204/form?postSeq=4&lang_type=KO&page=#fndoDocumentPreview
KISA 한국인터넷진흥원
www.kisa.or.kr
'cs > sec' 카테고리의 다른 글
| [Security]OWASP API Security Top 10 (0) | 2025.11.06 |
|---|---|
| [Security] HTS, MTS이란? (0) | 2025.11.06 |
| [Security]취약점 체계:CVE, CWE, CCE, CVSS (0) | 2025.11.06 |
| [Security]OWASP Top 10 (0) | 2025.11.04 |
| [Security]공격기법-XSS, CSRF, SSRF (0) | 2025.10.31 |