논문
탈옥 폰
iPhone, iPod touch, iPad같은 Apple 휴대용 기기에 사용되는 iOS 및 iPadOS의 제한을 임의로 해제하는 행위를 탈옥이라 한다.
탈옥의 명분은 기본적으로 Apple이 제한하고 있는 기능을 사용 가능하게 하는 것이다. 좀 더 상세히 말하자면 OS 차원에서 지원하지 않는 기능을 지원하게끔 개조하는 것이다.
루팅폰
루팅(영어: rooting)은 모바일 기기에서 구동되는 안드로이드 운영 체제 상에서 최상위 권한(루트 권한)을 얻음으로 해당 기기의 생산자 또는 판매자 측에서 걸어 놓은 제약을 해제하는 행위를 가리키는 말이다.
이 루팅을 통해 공식 버전보다 더 높은 버전의 안드로이드나 사용자들이 임의로 개조한 안드로이드를 설치 및 구동할 수 있으며, 백업 프로그램, 하드웨어 해킹 프로그램 등 일반 사용자 권한 이상의 권한 등을 필요로 하는 프로그램들을 사용할 수 있다.
아이폰의 경우 iOS 개발업체인 애플이 임의로 가둬놓은 시스템의 제약을 깨고 나온다는 의미로 ‘탈옥’, 안드로이드 폰은 운영체제의 최상위 권한(root)을 얻는다는 의미로 ‘루팅’이라고 부릅니다.
탈옥은 운영체제 자체를 완전히 뒤바꾸기 때문에 해킹이라고 부르기도 합니다.
이에반해 루팅은 시스템 내부에 루트 권한 부여에 필요한 단 몇 가지 파일을 주입하는 방식입니다.
아티팩트
아티팩트는 다음과 같은 경우에도 많이 사용된다.
1. 메이븐 : 메이븐의 빌드의 결과로 생기는 jar, war 등을 의미
2. 디지털 포렌식 : 시스템의 동작이나 알고리즘에 의하여 생성되는 증거(로그 정도로 해석 될듯)를 의미
3. UML : 소프트웨어 개발 프로세스나 시스템 배치와 운영에 의해 사용되거나 만들어지는 물리적인 정보 단위의 명세 의미(작업관련물)
4. 게임1 : 유물정도로 해석 가능 (유희왕: 유물카드, 테일즈위버: 또 다른 아이템 군)
5. 게임2 : 밸브사에서 개발&배포하는 게임 타이틀
사전에서 아티팩트를 찾아보면 “인공물“, “유물” 이라고 해석된다.
디지털 포렌식에서 아티팩트의 의미는 운영체제나 애플리케이션을 사용하면서 생성되는 흔적을 말한다. 보통 시스템에 생성되는 증거를 다음과 같이 2가지로 분류하는데 생성 증거에 해당하는 것이 아티팩트다.
- 생성 증거 : 시스템이나 애플리케이션이 자동으로 생성한 데이터
- 보관 증거 : 사람의 사상이나 감정을 표현하기 위해 작성한 데이터
adb [Android Debug Bridge]
안드로이드 기기와 통신하여 디버깅 등의 작업을 진행할 수 있는 다목적 명령 줄 도구입니다. adb 명령어는 앱의 설치 및 디버깅, 삭제를 포함하여 장치 정보 및 발생되는 로그 등을 확인 할 수 있으며, 스크린샷, 화면녹화 등 기기에서 다양한 명령어를 실행하는 데 사용할 수 있는 Unix 셸에 대한 액세스를 제공합니다.
adb 서버를 시작한다. 켜지지 않았을 경우 사용한다.
adb start-server
: adb 서버를 중단 시킨다.
adb kill-server
: adb로 연결가능한 안드로이드 기기 목록을 보여준다.
adb devices
: 셸(shell)을 실행한다.
adb shell
: 앱(pacakge명으로 씀)을 강제로 종료한다.
adb shell am force-stop package
: 앱의 모든 데이터를 삭제한다.
adb shell pm clear package
: APK파일을 사용하여 앱을 설치한다.
adb install filename
: 이미 설치된 App을 업데이트 하여 설치한다.
adb install -r filename
: 앱을 삭제한다.
adb uninstall package
: 안드로이드 기기(remote)에서 PC(local)로 파일을 복사한다.
adb pull remote local
: 안드로이드 기기(remote)에 PC(local)의 파일을 복사한다.
adb push local remote
: 안드로이드 화면을 동영상으로 녹화한다. 종료는 ctrl+c로 한다.
adb shell screenrecord filename
: 안드로이드의 버전을 확인한다.
adb shell getprop ro.build.version.release
: SDK의 버전을 확인한다.
adb shell getprop ro.build.version.sdk
: 안드로이드 장치의 모델명을 확인한다.
adb shell getprop ro.product.model
출처: https://3edc.tistory.com/26 [Three SAL is sol sol:티스토리]
dd 명령어
dd는 파일을 변환하고 복사하는 것이 주 목적인 유닉스 및 유닉스 계열 운영 체제용 명령 줄 유틸리티이다
ASCII-EBCDIC 간 변환, 대소문자 간 변환, 입출력 바이트 쌍 바꾸기, 입력 파일의 처음이나 끝을 건너뛰거나 잘라내서 출력 파일을 만드는 등의 다양한 변환을 할 수 있다. https://ko.wikipedia.org/wiki/Dd_(유닉스)
NAND Flash
전원이 꺼져도 저장한 정보가 사라지지 않는 메모리 반도체로, '비휘발성 메모리'라고 부른다.
SQLCipher
암호 관리자를 포함하여 수억 대의 장치에서 수천 개의 앱에 대한 데이터를 보호하는데 널리 사용된다.
(간단한 DB 를 쓸 때면 SQLite 사용. )
- SQLite 에 대한 오픈 소스 확장
- 투명한, 256-비트 AES 암호화
- 변조방지 (tamper-resistant) 디자인
- 크로스 플랫폼 (cross-platform) 및 제로 구성 (zero configuration)
SQLite
SQLite는 클라이언트 응용 프로그램에 임베디드되어 동작하는 DBMS 소프트웨어로서 퍼블릭 도메인 오픈 소스 소프트웨어이다. 안드로이드, iOS, macOS에 기본적으로 포함되어 있다. 공식적인 약칭은 아니지만 약칭은 SQL + Lite(Light).
SQLite는 데이터베이스 관리 시스템이지만, 서버가 아니라 응용 프로그램에 넣어 사용하는 비교적 가벼운 데이터베이스이다. 공식적인 약칭은 아니지만 약칭은 SQL + Lite(Light)
안드로이드, iOS, macOS에 기본 탑재된 데이터베이스이기도 하다.
대규모 작업에는 적합하지 않지만, 중소 규모라면 속도에 손색이 없다. 또 API는 단순히 라이브러리를 호출하는 것만 있으며, 데이터를 저장하는 데 하나의 파일만을 사용하는 것이 특징이다. 버전 3.3.8에서는 풀텍스트 검색 기능을 가진 FTS1 모듈이 지원된다. 컬럼을 삭제하거나 변경하는 것 등이 제한된다.
URL[Uniform Resource Locator]
방대한 컴퓨터 네트워크에서 자신이 원하는 정보 자원을 찾기 위해서는 해당 정보 자원의 위치와 종류를 정확히 파악할 필요가 있는데, 이를 나타내는 일련의 규칙을 URL(Uniform Resource Locator: 자원 위치 지정자)이라고 한다. URL에는 컴퓨터 네트워크 상에 퍼져있는 특정 정보 자원의 종류와 위치가 기록되어 있다.
[데이터 베이스 테이블 - time 관련 column 에 remark]
UTC+0
UTC+0 또는 UTC-0 시간대는 협정 세계시와 같은 시간을 쓰는 시간대이다. 그리니치 평균시는 이 시간대를 기준으로 한다.
한국표준시(KST) 기준 9시간 느리다.
Unix Time
유닉스 계열의 운영체제를 사용하는 컴퓨터에서 시간을 표시하는 방법이다. 정확히는 1970년 1월 1일 0시 0분 0초 UTC에서부터 현재까지 몇 초가 지났는지를 정수 형태로 표시한다.
JSON 형식
JSON [JavaScript Object Notation]
경량의 DATA-교환 형식이다. 이 형식은 사람이 읽고 쓰기에 용이하며, 기계가 분석하고 생성함에도 용이하다.
태그로 표현하기 보다는 중괄호({}) 같은 형식으로 하고, 값을 ','로 나열하기에 그 표현이 간단하다.
name-value형식의 쌍을 이룬다 -> { String key : String value }
XML 파일
eXtensible Markup Language의 약어. W3C(World Wide Web)에서 여러 특수 목적의 마크업 언어를 만드는 용도에서 권장되는 다목적 마크업 언어이다. 마크업 언어는 태그 등을 이용하여 데이터의 구조를 기술하는 언어의 한 가지이다. 가장 친숙하고 흔하게 접할 수 있는 마크업 언어로 HTML이 있다.
DB 파일
DB파일은 데이터베이스 파일의 일종으로 안드로이드, IOS, 윈도우 폰7과 같은 장치에서 사용한다. 이 파일은 연락처, 문자메세지 정보와 같은 파일을 저장하는데 사용되지만, App 정보 같은 형태도 저장할 수 있다. DB파일은 보통 SQLite의 데이터베이스 포맷으로 저장되어 암호화로 잠겨있어 바로 열어서 확인이 불가능하다.
좀더 말하자면,
휴대폰의 DB파일은은 보통 장치나 App등의 정보가 포함되는 보조적인 파일이며, 직접열어 수정이 불가능하다. 하나의 예를 들면, 사용자의 문자메세지를 저장하는 iOS에서 지원하는 sms.db파일이다
SHA256 [Secure Hash Algorithm]
SHA 알고리즘 의 한 종류로서 256비트로 구성되며 64자리 문자열을 반환한다. SHA-256은 미국의 국립표준기술연구소 (NIST; National Institute of Standards and Technology)에 의해 공표된 표준 해시 알고리즘인 SHA-2 계열 중 하나이며 블록체인에서 가장 많이 채택하여 사용되고 있다. 2 ^256 만큼 경우의 수를 만들 수 있다.
base 64
바이너리 데이터를 문자 코드에 영향을 받지 않는 공통 ASCII 문자로 표현하기 위해 만들어진 인코딩이다. (네이버 지식iN 등의 URL에서 자주 볼 수 있는 형태) ASCII 문자 하나가 64진법의 숫자 하나를 의미하기 때문에 BASE64라는 이름을 가졌다.
디지털 포렌식 [Digital Forensics]
디지털 증거물을 분석하여 수사에 활용하고, 디지털 증거물의 증거 능력을 향상시키기 위한 과학 수사 기법을 총칭하는 용어이다.
마치 부검하듯이 디지털 기록 매체에 복원 프로그램을 사용하고[1] 암호 등 보안을 해제하고, 메타데이터[2]까지 활용하거나 하드디스크 내부에 삭제 로그를 저장하는 스왑 파일(스왑 폴더라고 하기도 한다)에서 삭제 로그를 복원해 디지털 기기의 사용자나 이를 통해 오간 정보를 추적, 조사한다. 원본의 손상을 봉쇄하기 위해 이미지를 뜨는 것이 일반적이라고 한다.
Android Content Provider 기반 데이터 획득 기법
안드로이드 앱 간에 데이터를 공유하는 기술(Content Provider)을 이용하여 데이터를 획득한다.
Content Provider에 접근하기 위해서는 URI(Uniform Resource Identifier)을 사용하는 데 안드로이드에 기본 설치된 앱은 자신들의 데이터 에 접근이 가능하도록 URI를 공개하고 있다.
URI (Uniform Resource Identifier)
인터넷 서비스(웹 서비스 등)를 전제로 하여, 인터넷 응용 정보자원(텍스트,비디오,음향,이미지,기타 서비스 등)에 대한 통일적 식별체계를 지칭하는 개념적 용어
( URL (Uniform Resource Locator) : 특정 자원이 있는 장소에 대한 경로(주소) ,
URN (Uniform Resource Name) : 특정 콘텐츠에 대한 고유 식별(ID),
URC (Uniform Resource Charcteristic) : 특정 자원에 대한 특성 정보
모든 것을 총칭하는 용어 )
아티팩트란,
아티팩트란,
디지털 포렌식에서 아티팩트의 의미는 운영체제나 애플리케이션을 사용하면서 생성되는 흔적을 말한다. 보통 시스템에 생성되는 증거를 다음과 같이 2가지로 분류하는데 생성 증거에 해당하는 것이 아티팩트다.
- 생성 증거 : 시스템이나 애플리케이션이 자동으로 생성한 데이터
- 보관 증거 : 사람의 사상이나 감정을 표현하기 위해 작성한 데이터아티팩트란,디지털 포렌식에서 아티팩트의 의미는 운영체제나 애플리케이션을 사용하면서 생성되는 흔적을 말한다. 보통 시스템에 생성되는 증거를 다음과 같이 2가지로 분류하는데 생성 증거에 해당하는 것이 아티팩트다.
- 생성 증거 : 시스템이나 애플리케이션이 자동으로 생성한 데이터
- 보관 증거 : 사람의 사상이나 감정을 표현하기 위해 작성한 데이터
파일 시그니처 (file signature) (= file magic number)
: 파일 형식마다 가지고 있는 고유의 특징, 즉 포맷에 대한 정보이다.
즉, 파일의 형식마다 정해져 있는 특정한 byte 들 이다.
파일의 처음에만 존재하는 파일 포맷도 있고, 마지막에 존재하는 파일 포맷도 있다.
파일의 처음에 있는 시그니처는 헤더(Header) 시그니처,
파일의 마지막에 있는 시그니처는 푸터(Footer or Tailer) 시그니처 라고 한다.
출처: https://iforint.tistory.com/61 [🏰:티스토리]
'Forensic > Basic' 카테고리의 다른 글
Mac adb 환경변수 설정, 안드로이드 앱 데이터 추출 방법 (0) | 2022.08.24 |
---|---|
Mac HxD (Hex Editor) / 파일 시그니처 (0) | 2022.08.07 |
.xml 파일 (0) | 2022.08.04 |
안드로이드 DB 파일 추출 (adb 명령어) (0) | 2022.07.30 |
MAC Jadx (Java decompiler) 설치하기 (0) | 2022.07.27 |