Hệ thống giả lập thiết bị Android

Một phần của tài liệu Quy trình điều tra số, bằng chứng số, ứng dụng trong điều tra tội phạm máy tính (Trang 94)

81

Sau khi SDK đã được cài đặt thì chúng ta có thể tạo các Android Virtual Device được sử dụng để tạo các ứng dụng mới và cũng là môi trường cho chúng ta điều tra số. Phần mềm giả lập này giúp hiểu chúng ta phần tích hiểu các ứng dụng hoạt động thế nào và thực thi trên thiết bị. Bên cạnh đó, đối với thiết bị chạy các flatform khác nhau, chúng ta có thể sử dụng thiết kế bộ giả lập tương ứng để sát vói thực tế hơn.

Bên cạnh đó trước khi cài các công cụ Forensics trên các thiết bị thật, hệ thống giả lập có thể được sử dụng để xem xét các phần mềm Forensics gây ảnh hưởng như thế nào đến nội dung của một thiết bị Android. Để tạo một AVD, thực hiện như sau:

Bước 1: Mở command (cmd.exe), gỡ lệnh : c:\android-sdk\tools>android avd.

82

83

Hệ thống giả lập này có thể cấu hình Email, account, cài các ứng dụng phần mềm, lướt Internet và gửi tin nhắn. Dữ liệu được lưu trữ dưới thư mục có tên là .android. Chi tiết về hệ thống giả lập thì thường được lưu trữ ở:

C:\User\Android\.android\avd\ForensicsAVD.avd.

Trong hệ thống này có các tệp tin như:

Cache.img: đây là Disk image của phần vùng cache Sdcard.img: đây là Disk image của phân vùng SD card.

Userdata-qemu.img: đây là disk image của /data partition. Là phân vùng chưa thông

tin có giá trị của người dùng. 3.2.4 Kết nối thiết bị Android

ADB (Android Debug Bridge) là một phần trong bộ công cụ Android SDK (Android Sofware Development Kit) cho phép các điều tra viên kết nối và điều khiển thiết bị Android thông qua cổng USB. Để có thể kết nối qua ADB cần phải kích hoạt chế độ USB debugging trên thiết bị bằng cách vào Settings > Applications > Development >

84

Hình 3.3– Kích hoạt chế độ USB Debug trên thiết bị

Sau khi kích hoạt chế độ, dịch vụ adb (adbd) sẽ được chạy nền và chờ một kết nối qua USB. Trong điều tra để xác định một thiết bị đã được kích hoạt chế độ này chưa, ta sử dụng lệnh “adb devices”. Nếu chế độ USB Debug được kích hoạt, ADB sẽ trả về serial của thiết bị.

Hình 3.4 – Tìm các thiết bị đã kết nối

Chương trình ADB tại máy trạm sử dụng cổng 5037 để kết nối với adbd trên thiết bị. Đồng thời sử dụng lệnh “adb shell” để thực hiện kết nối đến thiết bị đang được kết nối qua cổng USB, được thể hiện ở hình 3.4

Hình 3.5 – Kết nối ADB

85

3.2.5 Truy cập thiết bị Android không khoá

Khi thu thập điện thoại tại hiện trường vụ án, để có thể tiếp cận và thu thập các dữ liệu nằm trong chiếc điện thoại đó ta cần phải truy cập được vào chiếc điện thoại, điều này sẽ đơn giản trong một số trường hợp chiếc điện thoại thu thập được không có mã bảo vệ. Trong trường hợp điện thoại không có mã bảo vệ thì cần thực hiện một số công việc như sau:

Enable USB debugging: : Khi tùy chọn USB gỡ lỗi được kích hoạt, nó cho phép truy

cập nhiều hơn đến các thiết bị thông qua kết nối adb, giúp chúng ta có thể trích xuất dữ liệu ra. Các vị trí để bật USB gỡ lỗi có thể thay đổi trên các thiết bị khác nhau nhưng nó thường là theo tùy chọn phát triển trong Cài đặt . Hầu hết các phương pháp vật lý để phân tích thiết bị Android cần USB gỡ lỗi để được kích hoạt .

Enabling the “Stay awake” setting: Nếu tùy chọn này được bật thì thiết bị sẽ không

bị khoá khi sạc. Một lần nữa , nếu các thiết bị khóa, việc phân tích có thể bị ngưng trệ.

Increasing Screen Timeout: Đây là thời điểm mà các thiết bị sẽ hoạt động hiệu quả

khi nó được mở khóa. Các vị trí để truy cập vào thiết lập này thay đổi tùy thuộc vào mô hình của thiết bị. Trên điện thoại Samsung Galaxy S3, có thể truy cập cùng trong Settings | Screen | Screen Timeout .

Bên cạnh đó, cần lưu ý, các thiết bị cần được đặt cách ly với mạng máy tính để đảm bảo không bị xoá dữ liệu từ xa (remote wipe options). Hệ thống Android Device Manager cho phép điện thoại có thể được xoá từ xa hoặc khoá lại điện thoại. Có nhiều loại phần mềm Mobile Device Management (MDM) cho phép làm như việc như vậy.

86

Để cách ly cần đưa thiết bị về Airplane-Mode và tắt Wifi. Tháo sim điện thoại để tránh kết nối 3G. Tuy nhiên trong khi tiếp cận thiết bị Android vẫn có khả năng gặp phải trường hợp máy bị khoá.

Vậy trong trường hợp chiếc điện thoại thu thập được có mã bảo, buộc các điều tra viên phải vượt qua được mã bảo vệ đó để tiếp cận được dữ liệu mức sâu hơn. Sau đây là kỹ thuật vượt qua hai cơ chế bảo vệ đơn giản trên hệ điều hành Android:

3.2.6 Truy cập thiết bị Android có khoá

Hiện nay có 3 kiểu khoá màn hình trên thiết bị Android. - Pattern Lock: sử dụng khoá mô hình

- PIN code:sử dụng 4 ký tự số để mở khoá điện thoại. - Passcode: kết hợp cả số và các ký tự tạo mật khẩu.

3.2.6.1 Khóa mô hình- Pattern Lock

Khóa mô hình là một tập hợp các cử chỉ của người sử dụng dùng để thực hiện mở khóa điện thoại của mình khi cần sử dụng, nó có vẻ phức tạp, nhưng trên thực tế nó không hề phức tạp tí nào, người dùng có 9 điểm để tạo ra một mô hình khóa. Số điểm trong khuôn mẫu, tối thiểu là 4 và tối đa là 9.

87

Hình 3.6 – Mô phỏng khóa mô hình android

Mô hình khóa này được lưu trữ trong một tập tin tên là gesture.key và lưu trữ trên đường dẫn /data/system. Trình tự khóa được mã hóa với thuật toán hàm băm

SHA1. SHA1 là thuật toán hàm băm một chiều nên không có cách nào để tìm ra chuỗi gốc từ mã hash. Để khôi phục lại mật mã chúng ta cần phải tạo ra một từ điển chứa các chuỗi băm các dãy số. Ví dụ, mất chỉ vài phút để tạo ra một từ điển với 895824 giá trị từ số 1234 đến 987654321. Chúng ta có thể băm tất cả các chuỗi số đó và lưu lại thành một từ điển dùng để tấn công vào mô hình khóa này.

Có thể tải bộ từ điển tại đường dẫn sau: http://www.android- forensics.com/tools/AndroidGestureSHA1.rar

88

Hình 3.7 – Nội dung file gesture.key ở dạng hex

Hình trên ta thấy giá trị hex có thể trích xuất từ trong tập tin gesture.key “23a6e7c835cd75c3f17ecc4d1cd7d840b7409525” và đem tìm kiếm trong bộ từ điển sử dụng để tấn công ta thu được giá trị khóa cần tìm như hình sau:

Hình 3.8 – So sánh chuỗi nhận được với từ điển

Như vậy khóa mô hình sẽ là theo chuỗi 321456987 như sau:

Hình 3.9 – Mô phỏng lại hình dạng khóa mô hình

3.2.6.2 Khoá bng mt khu-Passcode

Phương thức khóa bằng mật khẩu này phức tạp hơn khóa bằng mô hình, khóa mật khẩu có thể chứa ký tự, số hoặc kí hiệu đặc biệt nên không gian khóa rất lớn vì vậy không thể sử dụng hình thức tấn công từ điển để áp dụng vào trường hợp này. Trên hệ điều hành Android sử dụng một phương pháp để lưu trữ mật khẩu. Khi người sử dụng thiết lập mật khẩu, nó sẽ chuyển giá trị mật khẩu đó thành chuỗi SHA1 và lưu vào một tập tin, khi người dùng xác thực nó sẽ so sánh hàm băm SHA1 của chuỗi nhập vào với tập tin chứa mã SHA1 đã lưu trước đó, nếu đúng thì người dùng có thể truy cập vào thiết bị còn ngược lại thì sẽ không truy cập được. Với cách bảo vệ này, hệ điều hành

89

android tạo ra một file password.key trong thư mục /data/system vậy để bỏ qua vấn đề xác thực này ta chỉ cần sử dụng adb kết nối tới và xóa tập tin mật khẩu đó, và thực hiện khởi động lại điện thoại là có thể truy cập vào điện thoại mà không cần phải xác thực.

Sau khi vượt qua được vòng bảo vệ, tiếp cận với dữ liệu bên trong điện thoại, ta cần phải tạo bản sao bằng chứng, để tiện cho quá trình phân tích điều tra tránh việc ghi đè dữ liệu lên bằng chứng thật.

3.3 Kỹ thuật trích xuất và phục hồi dữ liệu

Dữ liệu nằm trên một thiết bị Android có thể là một phần không thể thiếu của cuộc điều tra vụ tra dân sự, hình sự, hoặc nội bộ được thực hiện như một phần hoạt động của các tổ chức công ty. Trong khi giao dịch với các điều tra liên quan đến các thiết bị Android, giám định pháp y cần phải nghĩ đến những vấn đề trong quá trình điều tra số này, bao gồm việc xác định nếu truy cập Root được cho phép (thông qua sự đồng ý hoặc cơ quan pháp luật) và những dữ liệu có thể được trích xuất và phân tích trong cuộc điều tra. Ví dụ, trong một vụ án hình sự tòa án có thể chỉ cho phép các tin nhắn SMS, nhật ký cuộc gọi, và hình ảnh sẽ được trích xuất và phân tích trên thiết bị Android thuộc đối tượng khả nghi. Trong trường hợp này, chỉ có thể thu thập được dữ liệu logic cụ thể. Tuy nhiên, để có thể điều tra tốt nhất được thì cần có bản full-image của thiết bị Android. Có 3 kỹ thuật trích xuất dữ liệu trên Android:

- Trích xuất thủ công - Trích xuất logic - Trích xuất vật lý

3.3.1 Trích xuất dữ liệu thủ công

Phương pháp sử dụng giao diện người dùng bình thường của các thiết bị di động để truy cập hiện nội dung trong bộ nhớ . Các điều tra viên sẽ duyệt qua các thiết bị thông thường bằng cách truy cập menu khác nhau để xem các chi tiết như nhật ký cuộc gọi , tin nhắn văn bản, và chat IM . Nội dung của mỗi màn hình được chụp bằng cách chụp ảnh và có thể được trình bày như là bằng chứng. Hạn chế chính với loại hình này kiểm tra là chỉ những tập tin được truy xuất bởi hệ điều hành (trong chế độ giao diện người dùng). Cần phải cẩn thận khi tự kiểm tra các thiết bị như nó dễ dàng để nhấn nút sai

90

hoặc xóa hay thêm dữ liệu. Trích xuất dữ liệu thủ công được dùng như phương pháp cuối cùng để xác thực lại các phương pháp khác.

3.3.2 Trích xuất dữ liệu logic

Kỹ thuật khai thác dữ liệu logic có trên thiết bị bằng cách truy cập các tập tin hệ thống.Tuy nhiên, kỹ thuật này yêu cầu có quyền truy cập root trên một thiết bị cho phép chúng ta truy cập tất cả các tập tin trên một thiết bị.

 Sử dụng các lệnh adb pull  Sử dụng content providers

3.3.2.1 S dng các lnh adb pull

Các ứng dụng dữ liệu có thể được lưu trữ trong một trong các địa điểm sau: - Shared preferences: Dữ liệu được lưu trữ trong cặp khóa-giá trị trong một định

dạng XML. File sở thích chia sẻ được lưu trữ trong thư mục shared_pref trong đường dẫn /data của ứng dụng.

- Internal storage: Dữ liệu được lưu trữ ở đây là cá nhân và trong bộ nhớ trong của

thiết bị. Tập tin được lưu vào bộ nhớ trong là riêng, không thể được truy cập bởi các ứng dụng khác.

- External storage: Dữ liệu lưu trữ đó là công khai trong bộ nhớ ngoài của thiết bị,

mà thường không thực thi các cơ chế bảo mật. Những thông tin này được phát hành dưới thư mục /Sdcard.

Cơ sở dữ liệu SQLite: trong/data/data/PackageName/database. Chúng thường

được lưu trữ với một phần mở rộng tập tin .db. Các dữ liệu hiện thời trong một tập tin SQLite có thể được xem bằng cách sử dụng trình duyệt SQLite.

(http://sourceforge.net/projects/SQLitebrowser/) hoặc bằng cách thực hiện các lệnh SQLite cần thiết trên các tập tin tương ứng:

Trích xut /data trên mt thiết b đã root

91

Như đã thể hiện trên hình, thì toàn bộ dữ liệu /data trên thiết bị Android đã được copy đến thư mục cục bộ của máy tính.

Hình 3.10 – Dữ liệu copy từ /data

Trên thiết bị không root thì không thực hiện thành công lệnh này:

Sử dụng SQLite Browser

SQL Browser là một công cụ có thể giúp đỡ trong quá trình phân tích các dữ liệu được trích xuất. SQLite Browser cho phép bạn khám phá các tập tin cơ sở dữ liệu với các phần mở rộng sau đây: .sqlite, .sqlite3, db .sqlite, db, và .db3. Ưu điểm chính của việc sử dụng SQLite Browser là nó cho thấy các dữ liệu dưới dạng bảng. Điều hướng vào File| Open Database để mở một tập tin .db sử dụng SQLite Browser. Như thể hiện

92

trong hình bên dưới, có ba tab: Database Structure, Browse Data, và Execute SQL. Tab Browse Data cho phép bạn xem các thông tin có trong các bảng khác nhau trong các tập tin .db. Có thể sử dụng công cụ Oxygen Forensic SQLite Database Viewer cũng có thể được sử dụng cho các mục đích tương tự.

Hình 3.11 – SQLite Browser

Trích xuất thông tin thiết bị

Chúng ta có thể lấy các thông tin chi tiết về thiết bị này bằng cách xem file build.prop hiện trong thư mục /system, như sau:

93

Trích xut các bn ghi cuc gi

Truy cập các bản ghi cuộc gọi của điện thoại thường được yêu cầu trong quá trình điều tra để xác nhận sự kiện nhất định. Các thông tin về nhật ký cuộc gọi được lưu trữ trong tập tin contacts2.db nằm ở

/data/data/com.android.providers.contacts/databases

Hình 3.12 – Dữ liệu bản ghi cuộc gọi

Lưu ý rằng các ứng dụng được sử dụng để thực hiện cuộc gọi có thể lưu trữ chi tiết cuộc gọi log trong thư mục ứng dụng tương ứng. Tất cả các ứng dụng truyền thông phải được kiểm tra để biết chi tiết nhật ký cuộc gọi, như sau:

Bây giờ, mở file contacts2.db sử dụng SQLite Browser (hướng vào File | Open Database) và duyệt qua các dữ liệu có trong các bảng khác nhau. Các cuộc gọi bảng có trong tập tin contacts2.db cung cấp thông tin về lịch sử cuộc gọi. Ảnh chụp màn hình sau đây nêu bật lịch sử cuộc gọi cùng với tên, số lượng, thời gian, và ngày.

94

Hình 3.13 – Thông tin lịch sử cuộc gọi

Trích xut tin nhn SMS / MMS

Các tập tin mmssms.db đó là hiện dưới vị trí

/data/data/com.android.providers.telephony/databases

chứa các chi tiết cần thiết. Như với các bản ghi cuộc gọi, người phân tích phải đảm bảo rằng các ứng dụng có khả năng tin nhắn sẽ bị kiểm tra cho các bản ghi thông điệp có liên quan, như sau:

Các số điện thoại có thể được nhìn thấy dưới cột địa chỉ và tin nhắn văn bản tương ứng có thể được nhìn thấy dưới cột, như thể hiện trong hình bên dưới:

Hình 3.14 Gọi bảng trong file contacts2.db

95

Dữ liệu này nằm ở /data/data/com.android.browser. Các tập tin có tên browser2.db chứa các chi tiết lịch sử trình duyệt. Hình dưới đây cho thấy các dữ liệu trình duyệt như được đại diện bởi Oxygen Forensic SQLite Database Viewer. Lưu ý rằng phiên bản thử nghiệm sẽ giấu thông tin nhất định.

Hình 3.15 –Các tập tin trong browser2.db oxy Viewer SQLite Forensic

Trích xut thông tin mng xã hi/chat IM

Ứng dụng mạng xã hội và chat IM như Facebook, Twitter, và WhatsApp tiết lộ dữ liệu nhạy cảm, mà có thể là hữu ích trong việc điều tra các trường hợp. Các phân tích là khá nhiều giống như với bất kỳ ứng dụng Android khác. Tải dữ liệu vào một máy trạm và phân tích các tập tin .db để tìm hiểu xem có thể tìm ra bất kỳ thông tin nhạy cảm. Ví dụ, chúng ta hãy nhìn vào các ứng dụng Facebook và cố gắng nhìn thấy những dữ liệu có thể được trích xuất. Đầu tiên, chúng ta giải nén thư mục /data/data/com.facebook.katana và điều hướng đến thư mục cơ sở dữ liệu. Các tập tin

Một phần của tài liệu Quy trình điều tra số, bằng chứng số, ứng dụng trong điều tra tội phạm máy tính (Trang 94)