.2 Máy ảo Dalvik và Java

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 82 - 98)

3.1.1.4 Lp Application framework

Application framework là lớp chịu trách nhiệm xử lý các chức năng cơ bản của một chiếc điện thoại , ví dụ như quản lý tài nguyên, xử lý các cuộc gọi. Đây là khối mà các ứng dụng được cài đặt trên các thiết bị trực tiếp nói chuyện với nó. Sau đây là một số trong các khối quan trọng trong Application framework:

Telephony Manager: Đây là khối quản lý tất cả các cuộc gọi thoại

Content Provider : khối này quản lý việc chia sẻ dữ liệu giữa các ứng dụng khác nhau

Resource Manager : Khối này giúp quản lý các nguồn tài nguyên khác nhau được sử dụng trong các ứng dụng

69

3.1.1.5 Lp Applications

Đây là lớp trên cùng , nơi người dùng có thể tương tác trực tiếp với các thiết bị. Có hai loại ứng dụng các ứng dụng cài đặt sẵn và các ứng dụng người dùng cài đặt, các ứng dụng được cài đặt sẵn, chẳng hạn như quay số, trình duyệt Web, danh bạ và nhiều hơn nữa đi cùng với thiết bị. Các ứng dụng người dùng cài đặt có thể được tải về từ nhiều nơi khác nhau, chẳng hạn như cửa hàng Google Play, Amazon Marketplace, và như vậy. Tất cả mọi thứ mà bạn nhìn thấy trên điện thoại của bạn (danh bạ, mail, máy ảnh…) là một ứng dụng.

3.1.2 Bảo mật Android

Android được thiết kế với trọng tâm tập trung vào an toàn. Android là một nền tảng cung cấp và thi hành một số tính năng để bảo vệ dữ liệu người dùng hiện nay trên điện thoại di động thông nhiều lớp an ninh. Có một số chức năng an toàn mặc định rằng sẽ bảo vệ người sử dụng và các dịch vụ nhất định và có thể được thừa hưởng bởi cộng đồng phát triển để xây dựng các ứng dụng an toàn. Sau đây là những vấn đề đó lưu tâm trong khi kết hợp các điều khiển bảo mật của Android:

 Bảo vệ dữ liệu người dùng liên quan

 Bảo vệ các tài nguyên hệ thống

 Đảm bảo một ứng dụng không thể truy cập vào dữ liệu của ứng dụng khác.

3.1.2.1 Mô hình phân quyn

Như thể hiện trong hình bên dưới, bất kỳ ứng dụng Android phải được cấp quyền truy cập vào các chức năng nhạy cảm, chẳng hạn như Internet, quay số và như vậy, bởi người sử dụng. Điều này cung cấp một cơ hội cho người sử dụng biết trước những gì các chức năng trên các thiết bị ứng dụng đang cố gắng truy cập. Đơn giản chỉ cần đặt, nó đòi hỏi phải có sự cho phép của người dùng để thực hiện bất cứ hành động độc hại (ăn cắp dữ liệu , ảnh hưởng đến hệ thống).

Mô hình này giúp người sử dụng để ngăn chặn các cuộc tấn công, nhưng nếu người dùng không hề biết và cho đi rất nhiều quyền, nó khiến họ gặp rắc rối.

70

3.1.2.2 Application Sandbox

Trong hệ thống Linux , mỗi người dùng được gán một số ID người dùng duy nhất ( UID ), và các người dùng được tách biệt để một người sử dụng có thể truy cập vào dữ liệu của người dùng khác. Tuy nhiên, tất cả các ứng dụng theo một người dùng cụ thể được chạy với cùng một đặc quyền. Tương tự như vậy trong Android, mỗi ứng dụng chạy như một người dùng duy nhất. Nói cách khác, một UID được gán cho mỗi ứng dụng và được chạy như một quá trình riêng biệt. Khái niệm này đảm bảo một ứng dụng chạy cách ly ở mức kernel. Kernal quản lý các hạn chế bảo mật giữa các ứng dụng bằng cách sử dụng các khái niệm Linux hiện có, chẳng hạn như UID và GID. Nếu một ứng dụng cố gắng để làm một cái gì đó có hại như đọc dữ liệu của một ứng dụng khác, điều này là không được phép làm như các ứng dụng không có đặc quyền người dùng. Do đó, hệ điều hành bảo vệ một ứng dụng truy cập vào các dữ liệu của một ứng dụng khác .

71

3.1.2.3 Bo mt liên tiến trình

Android cung cấp một giao tiếp interprocess an toàn thông qua đó hoạt động của một người trong một ứng dụng có thể gửi tin nhắn đến các hoạt động khác trong cùng một ứng dụng hoặc một ứng dụng khác nhau.

3.1.2.4 Ký sng dng

Đây là yêu cầu bắt buộc tất cả các ứng dụng được cài đặt có chữ ký số. Các nhà phát triển chỉ có thể đặt các ứng dụng của họ trong cửa hàng Google Play chỉ sau khi ký vào các ứng dụng. Các khóa riêng mà các ứng dụng được ký kết được tổ chức bởi các nhà phát triển. Sử dụng các key, một nhà phát triển có thể cung cấp thông tin cập nhật cho ứng dụng của họ, chia sẻ dữ liệu giữa các ứng dụng.

3.1.3 Cấu trúc phân cấp file

Để thực hiện công việc điều tra số trên các hệ thống (máy tính để bàn hoặc di động), điều quan trọng là người phân tích phải hiểu hệ thống phân cấp tập tin nằm bên dưới cách tổ chức dữ liệu Android trong các tập tin và thư mục giúp các chuyên giá điều tra tra số thu hẹp nghiên cứu của họ về các vấn đề cụ thể. Cũng giống như bất kỳ hệ điều hành khác, Android sử dụng nhiều phân vùng được lưu trữ trong đó.

Hệ thống phân cấp tập tin trên Android là một cây duy nhất với các đỉnh của cây được biểu hiện dưới ký tự “/” (gọi là "root"). Điều này khác với khái niệm về tổ chức các file trong ổ đĩa (như với Windows). Cho dù hệ thống tập tin là cục bộ, hoặc từ xa, nó sẽ hiện diện dưới gốc. Các hệ thống phân cấp tập tin Android là một phiên bản tùy biến của hệ thống phân cấp Linux hiện nay. Dựa trên phiên bản Linux cơ bản, cấu trúc của hệ thống phân cấp này có thể có một vài thay đổi không đáng kể. Sau đây là danh sách các thư mục quan trọng là chung cho hầu hết các thiết bị Android. Một số thư mục được liệt kê chỉ hiển thị thông qua truy cập root.

/boot: Như tên cho thấy, phân vùng này có các thông tin và các tập tin cần thiết cho

điện thoại để khởi động. Nó chứa các Kernel và bộ nhớ RAM, và vì vậy mà không có phân vùng này điện thoại không thể bắt đầu quá trình của nó. Dữ liệu nằm trong trong bộ nhớ RAM có giá trị, nên được chụp lại trong quá trình điều tra số.

72

/system: Phân vùng này chứa các tập tin hệ thống khác liên quan khác. Thư mục này

không bao giờ được xóa vì như vậy sẽ làm cho thiết bị không thể khởi động. Nội dung của phân vùng này có thể được xem bằng cách sử dụng lệnh sau:

/recovery: Thư mục được thiết kế cho mục đích sao lưu và cho phép các thiết bị để

khởi động vào chế độ phục hồi. Trong chế độ phục hồi, chúng ta có thể tìm thấy các công cụ để sửa chữa cài đặt điện thoại của bạn.

/data: Đây là phân vùng chứa dữ liệu của mỗi ứng dụng. Hầu hết các dữ liệu thuộc

về người sử dụng, chẳng hạn như danh bạ, tin nhắn SMS, và số đã gọi, được lưu trữ trong thư mục này. Thư mục này có tầm quan trọng đáng kể từ một điểm pháp lý về xem vì nó sẽ chứa dữ liệu có giá trị. Các nội dung của các thư mục dữ liệu có thể được xem bằng cách sử dụng lệnh sau:

73

/cache: Đây là thư mục dùng để lưu trữ dữ liệu thường xuyên truy cập và một số các

bản ghi để thu hồi nhanh hơn. Các phân vùng bộ nhớ cache cũng rất quan trọng để điều tra số như các dữ liệu cư trú ở đây có thể không còn có mặt trong phân vùng / data

/misc: Như tên cho thấy, thư mục này có chứa thông tin về các thiết lập linh tinh.

Các thiết lập này chủ yếu là xác định trạng thái của thiết bị, đó là On / Off. Thông tin về cài đặt phần cứng, cài đặt USB, và như vậy, có thể được truy cập từ thư mục này. 3.1.4 Hệ thống tập tin

Hệ thống tập tin là một phần quan trọng trong phương pháp luận điều tra. Kiến thức về tính chất và cấu trúc của một hệ thống tập tin được chứng minh là hữu ích trong phân tích điều tra. Hệ thống tập tin đề cập đến cách dữ liệu được lưu trữ, tổ chức. Một cài đặt cơ bản có thể được dựa trên một volume chia thành nhiều partition; ở đây mỗi phân vùng có thể được quản lý bởi một hệ thống tập tin khác nhau. Đáng chú ý là trong Linux, Android sử dụng điểm gắn kết không sử dụng ổ (như C: hoặc E :). Mỗi hệ thống tập tin định nghĩa quy tắc riêng của mình để quản lý các tập tin trên ổ đĩa. Tùy thuộc vào những quy tắc, mỗi hệ thống tập tin cung cấp một tốc độ khác nhau để thu hồi tập tin, bảo mật, kích thước. Linux sử dụng một số hệ thống tập tin, Android cũng như vậy. Từ cách nhìn của điều tra số, điều quan trọng là phải hiểu những gì hệ thống tập tin được sử dụng bởi

74

Android và xác định các hệ thống tập tin đó có ý nghĩa cho việc điều tra. Ví dụ, hệ thống tập tin lưu trữ dữ liệu của người dùng là quan tâm hàng đầu đối với chúng ta.

3.1.4.1 H thng tp tin trên thiết b Android

Các hệ thống tập tin được hỗ trợ bởi Kernel Android có thể được xác định bằng cách kiểm tra các nội dung của hệ thống tập tin tập tin trong thư mục /proc. Các nội dung của tập tin này có thể được xem bằng cách sử dụng lệnh sau:

Cột đầu tiên cho chúng ta biết các hệ thống tập tin được gắn trên thiết bị. Nhữn thông tin nodev không được gắn trên thiết bị. Cột thứ hai liệt kê tất cả các hệ thống tập tin có trên thiết bị. Sử dụng lệnh hiển thị các các phân vùng khác nhau có sẵn trên thiết bị như sau:

75

Các phần tiếp theo cung cấp một tổng quan về các hệ thống tập tin quan trọng. Các hệ thống tập tin gốc (rootfs) là một trong những thành phần chính của Android và chứa tất cả các thông tin cần thiết để khởi động thiết bị. Khi các thiết bị bắt đầu quá trình khởi động, nó cần truy cập vào nhiều tập tin cốt lõi và gắn kết hệ thống tập tin gốc. Như đã trình bày ở đầu ra gắn kết dòng lệnh trước đó, hệ thống tập tin này được đặt tại / (thư mục gốc). Do đó, đây là hệ thống tập tin mà trên đó tất cả các hệ thống tập tin khác đang dần gắn kết. Nếu hệ thống tập tin này hỏng, các thiết bị không thể khởi động. Các hệ thống tập tin sysfs gắn kết các thư mục /sys, chứa các thông tin về cấu hình của thiết bị. Các output sau đây cho thấy các thư mục khác trong thư mục /sys trong một thiết bị Android:

76

Các xuất hiện dữ liệu trong các thư mục này chủ yếu liên quan đến cấu hình, điều này thường không có ý nghĩa nhiều trong điều tra số. Nhưng có thể một số trường hợp chúng ta có thể muốn kiểm tra xem một thiết lập cụ thể đã được kích hoạt trên điện thoại, và phân tích các thư mục này có thể hữu ích trong điều kiện như vậy. Lưu ý rằng mỗi thư mục bao gồm một số lượng lớn các tập tin. Thu thập dữ liệu này thông quá trình phân tính điều tra số là phương pháp tốt nhất để đảm bảo dữ liệu này là không thay đổi trong quá trình kiểm tra.

Các hệ thống tập tin devpts trình bày một giao diện tới phiên cuối trên một thiết bị Android. Nó được đặt tại /dev/pts. Bất cứ khi nào một thiết bị kết nối được thiết lập, ví dụ, khi một adb shell được kết nối với một thiết bị Android, một node được tạo ra theo dưới /dev/pts. Dưới đây là output khi sử dụng adb shell kết nối đến thiết bị:

Các hệ thống tập tin cgroup là viết tắt của nhóm kiểm soát. Các thiết bị Android sử dụng hệ thống tập tin này để theo dõi công việc của họ . Họ có trách nhiệm tập hợp các nhiệm vụ và theo dõi họ . Những thông tin này thường không phải là rất hữu ích trong phân tích điều tra.

Các hệ thống tập tin /proc chứa thông tin về cấu trúc dữ liệu kernel, tiến trình, và hệ thống thông tin khác liên quan đến dưới thư mục /proc. Ví dụ , thư mục /sys chứa các tập tin liên quan đến thông số kernel. Tương tự như vậy, /proc / filesystems hiển thị

77

danh sách các hệ thống tập tin có sẵn trên thiết bị. Các lệnh sau đây cho thấy tất cả các thông tin về CPU của thiết bị:

Tương tự như vậy, có nhiều tập tin hữu ích khác mà cung cấp thông tin có giá trị khi bạn đi qua thông qua.

Các hệ thống tập tin tmpfs là một cơ sở lưu trữ tạm thời trên các thiết bị lưu trữ các tập tin trong bộ nhớ RAM (bộ nhớ dễ bay hơi) . Ưu điểm chính của việc sử dụng bộ nhớ RAM là truy cập nhanh hơn và phục hồi. Nhưng khi các thiết bị được khởi động lại hoặc tắt, dữ liệu này sẽ không thể truy cập được nữa . Do đó điều quan trọng đối với một nhà điều tra số để kiểm tra dữ liệu trong bộ nhớ RAM trước khi khởi động lại thiết bị hoặc trích xuất các dữ liệu thông qua các phương pháp xử lý kiểm soát bộ nhớ RAM.

3.1.4.2 Phân vùng và h thng tp tin

Hầu hết, người dùng sử dụng điện thoại với mục đích, nghe gọi, nhắn tin, sử dụng để truy cập internet. Tuy nhiên trong phân tích, điều tra, các điều tra viên cần phải biết rõ cấu trúc bên trong của một thiết bị nhằm giúp quá trình tìm kiếm dữ liệu lưu trữ trên thiết bị nhanh hơn và biết nên tập trung thu thập và phân tích những dữ liệu gì. Trên các thiết bị Android khác nhau sẽ có các hệ thống tập tin khác nhau. Để một cuộc phân tích và điều tra có kết quả tốt, điều tra viên cần phải biết các tính năng của hệ thống được sử

78

dụng trên thiết bị, để xử lý nó một cách phù hợp. Một số định dạng hệ thống tập tin phổ biến như EXT, hệ thống tập tin FAT32, YAFFS2, exFAT, JFFS2.

YAFFS2 (Yet Another Flash File System version 2)

Là hệ thống tập tin được sử dụng cho các phiên bản nhân 2.6.32 và không hỗ trợ các phiên bản sử dụng nhân mới. YAFFS2 được xây dựng riêng cho các thiết bị flash NAND (là một loại bộ nhớ sử dụng công nghệ lưu trữ non-volatile) và nó đáp ứng một số yêu cầu khắt khe của môi trường này:

 Đảm bảo không mất dữ liệu kể cả khi mất điện đột xuất  Khả năng xử lý các khối xấu (bad blocks)

EXT (Extended File System)

Các hệ thống tập tin mở rộng EXT là hệ thống tập tin được phát triển đặc biệt dành cho hệ điều hành Linux. Phiên bản gốc là EXT được phát triển vào năm 1992 và sau đó có 3 phiên bản bổ sung: EXT2, EXT3 và EXT4. Thiết bị đầu tiên sử dụng EXT4 là Google Nexus S và nó được kỳ vọng cho các máy tính bảng chạy hệ điều hành Android. Hiện nay, một số thiết bị sử dụng EXT4 được liên kết tới các thư mục sau:

 System (chỉ có quyền đọc, /system)

 Dữ liệu người dùng (Đọc – ghi, /data/data)  Phân vùng cache (Đọc – ghi, /cache) FAT32/VFAT

Hầu hết trên thẻ SD và thẻ EMMC thường sử dụng định dạng FAT32. VFAT là mở rộng của FAT16 và FAT32. Hệ thống FAT32 của Windows được hỗ trợ bởi hầu hết các thiết bị Android. Hỗ trợ hầu hết các hệ điều hành MAC OS, Windows, và Linux. Hầu hết các thẻ nhớ SD được định dạng FAT32. Một số phân vùng liên kết đến hệ thống

 /mnt/sdcard  /mnt/secure/asec  /mnt/emmc

Phân vùng /mnt/secure/asec là phân vùng được mã hóa trên thẻ SD nơi các thiết bị Android có thể lưu trữ ứng dụng. Còn phân vùng /mnt/sdcard thường chứa các dữ liệu hình ảnh, video, tập tin tải về, … Phân vùng /mnt/emmc là một phân vùng FAT32, không thể tháo rời, và nằm trong kiến trúc lưu trữ của thiết bị.

79

3.1.4.3 D liệu người dùng

Điện thoại được sử dụng với mục đích liên lạc cá nhân, thông tin tài chính, giải trí, và truy cập internet. Khi điều tra trên điện thoại ta cần để ý tới thông tin lưu trữ các dữ

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 82 - 98)

Tải bản đầy đủ (PDF)

(156 trang)