Khóa luận Xây dựng hệ thống quản lý bảo mật trên Android Smartphones

pdf 105 trang yendo 4371
Bạn đang xem 20 trang mẫu của tài liệu "Khóa luận Xây dựng hệ thống quản lý bảo mật trên Android Smartphones", để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên

Tài liệu đính kèm:

  • pdfkhoa_luan_xay_dung_he_thong_quan_ly_bao_mat_tren_android_sma.pdf

Nội dung text: Khóa luận Xây dựng hệ thống quản lý bảo mật trên Android Smartphones

  1. ĐẠI HỌC QUỐC GIA TP. HỒ CHÍ MINH TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN KHOA MẠNG MÁY TÍNH VÀ TRUYỀN THÔNG ——————– * ——————— KHÓA LUẬN TỐT NGHIỆP XÂY DỰNG HỆ THỐNG QUẢN LÝ BẢO MẬT TRÊN ANDROID SMARTPHONES Giảng viên hướng dẫn: TS. NGUYỄN ANH TUẤN Sinh viên thực hiện : NGUYỄN THÀNH VINH – 08520618 LÊ VĂN THƯƠNG – 08520599 Lớp : MMT03 Khóa : 2008 - 2012 TP. Hồ Chí Minh, tháng 3 năm 2013
  2. TÓM TẮT ii TÓM TẮT Ngày nay, điện thoại di động đã trở thành những chiếc máy tính cá nhân mới. Chúng có thể lưu trữ dữ liệu, thực hiện hầu hết và tương tự các chức năng của một chiếc máy tính [18]. Thông qua các hệ thống quản lý dữ liệu và hành vi giao tiếp của người dùng, điện thoại di động nắm giữ một lượng thông tin đồ sộ. Các thông tin đó có thể bao gồm thông tin cá nhân như danh bạ, tin nhắn cá nhân, email, thông tin tài khoản, thông tin mạng xã hội, hình ảnh, video hay cũng có thể là thông tin về tài chính, ngân hàng, hoạt động của doanh nghiệp, tổ chức. Thực vậy, lấy bối cảnh trong môi trường doanh nghiệp, hơn 80% dữ liệu mới và quan trọng được lưu trữ trên điện thoại di động [1]. Theo tài liệu của Alliance Against Crime, 80% người sử dụng điện thoại di động trên Vương quốc Anh lưu trữ các thông tin cá nhân có thể lợi dụng để lừa đảo, 16% người sử dụng lưu trữ thông tin tài khoản ngân hàng của họ [8]. Ngoài ra, điện thoại di động sẽ là phương thức thanh toán được hơn 50 triệu người sử dụng trong thập kỷ tới [10]. Thật không may, đi đôi với sự nhỏ gọn và linh hoạt của mình, điện thoại di động dễ bị tổn thương bởi các sự cố, nạn trộm cắp và từ những hành vi sử dụng của người dùng. Theo tạp chí Mobile World, toàn Vương quốc Anh ước tính có 76 triệu điện thoại di động, trong đó có 4,2 triệu thiết bị được cảnh báo có nguy cơ bị trộm cắp. Cùng với đó, nạn trộm cắp điện thoại gây thiệt hại 390 triệu bảng Anh mỗi năm với hơn 2 triệu thiết bị bị mất, tương đương với 229 thiết bị trong một giờ [8]. Tội phạm có thể dùng những thiết bị này để thực hiện lừa đảo qua email, quấy rối qua tin nhắn, buôn bán nội dung khiêu dâm, tội phạm ma túy, tống tiền. . . [15] Thực tế trên cho thấy việc bảo vệ thiết bị và dữ liệu trên điện thoại di động là một vấn đề đặc biệt quan trọng. Điều gì sẽ xảy ra khi chiếc điện thoại lưu thông tin giao dịch của bạn bị mất hoặc hư hỏng do sự cố? Điều gì sẽ xảy ra khi các thông tin cá nhân của bạn bị đọc lén? Làm cách nào để biết không ai sử dụng điện thoại của mình khi bạn thất lạc nó ở đâu đó? Làm cách nào để lấy lại dữ liệu cũng như thiết bị đã mất? Trên thế giới đã có rất nhiều ứng dụng được phát triển để giải quyết các vấn đề trên. Trong đó phải kể đến các ứng dụng của các công ty bảo mật uy tín như Lookout Security & Antivirus, Kaspersky Mobile Security, Bitdefender Anti-Theft,. . . Các ứng dụng trên đã thực hiện tốt chức năng bảo mật dữ liệu, cảnh báo nguy cơ, truy vết điện thoại di động. Tuy nhiên, vấn đề truy tìm chủ GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  3. TÓM TẮT iii sở hữu tiếp theo của thiết bị (tại Việt Nam) và hỗ trợ cơ quan chức năng điều tra tội phạm trên những thiết bị này vẫn còn để ngõ. Chính vì vậy, khóa luận này mong muốn xây dựng và phát triển hệ thống quản lý bảo mật trên điện thoại di động nhằm bảo vệ, quản lý dữ liệu người dùng, tự động cảnh báo và truy tìm dấu vết thiết bị, khai thác dữ liệu trên thiết bị để phục vụ công tác điều tra. Bên cạnh đó, khóa luận còn nghiên cứu về vấn đề mobile forensics trên hệ điều hành Android để góp phần nâng cao khả năng thu thập dữ liệu trong lĩnh vực pháp chứng số và tư vấn người dùng về các nguy cơ bảo mật của smartphones. Do thời gian nghiên cứu còn hạn chế, báo cáo này chắc chắn còn nhiều sai sót, khuyết điểm. Nhóm tác giả kính mong quý Thầy, Cô và các bạn đóng góp ý kiến để đề tài hoàn thiện và thực tiễn hơn. Xin chân thành cảm ơn! TP. Hồ Chí Minh, ngày 01 tháng 03 năm 2013 Nhóm tác giả GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  4. LỜI CẢM ƠN iv LỜI CẢM ƠN Chúng tôi xin gởi lời cảm ơn chân thành và sâu sắc đến các thầy cô trong khoa Mạng Máy Tính và Truyền Thông, cũng như tất cả các thầy cô trong trường Đại Học Công Nghệ Thông Tin đã truyền đạt kiến thức, kinh nghiệm quý báu của mình trong suốt quá trình chúng tôi học tập và nghiên cứu tại trường. Chúng tôi xin gởi lời cảm ơn đặc biệt đến thầy TS. Nguyễn Anh Tuấn, người thầy đã truyền cảm hứng, niềm đam mê nghiên cứu, sáng tạo cho chúng tôi. Thầy là người đã tận tình hướng dẫn, hỗ trợ và tạo điều kiện tốt nhất để chúng tôi hoàn thành khóa luận này. Xin gởi lời cảm ơn đến các anh, chị và bạn bè trong khoa Mạng Máy Tính và Truyền Thông đã giúp đỡ, trao đổi kiến thức trong suốt quá trình học tập và thực hiện khóa luận này. Chúng con xin dành lời cám ơn to lớn nhất đến ba, mẹ và gia đình. Ba, mẹ và gia đình đã luôn ở bên chúng con, là nguồn động lực không mệt mỏi và là chỗ dựa tinh thần vững chắc giúp chúng con vượt qua những khó khăn để hoàn thành tốt khóa luận này. Mặc dù đã nỗ lực cố gắng song khóa luận này chắc chắn không thể tránh khỏi sai sót, khuyết điểm. Chúng tôi kính mong nhận được sự thông cảm và tận tình chỉ bảo, góp ý của quý Thầy Cô và các bạn. TP. Hồ Chí Minh, ngày 01 tháng 03 năm 2013 Nhóm tác giả GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  5. NHẬN XÉT v Nhận xét (của giảng viên hướng dẫn) GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  6. NHẬN XÉT vi Nhận xét (của giảng viên phản biện) GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  7. MỤC LỤC vii Mục lục Tóm tắt ii Mục lục vii Danh mục hình ảnhx Danh mục bảng biểu xii 1 Giới thiệu đề tài1 1.1 Tên đề tài . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.2 Từ khóa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .1 1.3 Mục tiêu đề tài và các vấn đề đặt ra . . . . . . . . . . . . . . . .1 1.4 Đối tượng áp dụng và phạm vi của đề tài . . . . . . . . . . . . .3 1.5 Đối tượng nghiên cứu . . . . . . . . . . . . . . . . . . . . . . . . .3 1.6 Phương pháp nghiên cứu . . . . . . . . . . . . . . . . . . . . . . .4 1.7 Đóng góp của đề tài . . . . . . . . . . . . . . . . . . . . . . . . . .4 1.8 Cấu trúc khóa luận . . . . . . . . . . . . . . . . . . . . . . . . . .5 2 Khảo sát hiện trạng và các kiến thức liên quan6 2.1 An toàn thông tin trên điện thoại di động . . . . . . . . . . . . .6 2.2 Kịch bản rủi ro . . . . . . . . . . . . . . . . . . . . . . . . . . . .7 2.3 Đặc điểm của một thiết bị an toàn . . . . . . . . . . . . . . . . .8 2.4 Các hệ thống đã được phát triển . . . . . . . . . . . . . . . . . . 10 2.4.1 Lookout Security & Antivirus . . . . . . . . . . . . . . . . 11 2.4.2 Kaspersky Mobile Security . . . . . . . . . . . . . . . . . 12 2.4.3 Bitdefender Anti-Theft . . . . . . . . . . . . . . . . . . . . 13 2.5 Hệ điều hành Android . . . . . . . . . . . . . . . . . . . . . . . . 15 2.5.1 Sự phát triển của hệ điều hành Android . . . . . . . . . . 15 2.5.2 Đặc trưng của hệ điều hành Android . . . . . . . . . . . . 15 2.5.3 Lập trình trên Android . . . . . . . . . . . . . . . . . . . . 17 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  8. MỤC LỤC viii 2.6 Android Forensics . . . . . . . . . . . . . . . . . . . . . . . . . . . 18 2.6.1 Nhận dạng và vô hiệu hóa điện thoại Android . . . . . . 18 2.6.2 Tổ chức và lưu trữ dữ liệu của hệ điều hành Android . . 19 2.6.3 Android Rooting và ảnh hưởng của nó đến mobile forensics 23 2.7 Các kiến thức cần thiết khác . . . . . . . . . . . . . . . . . . . . . 28 2.7.1 Web Service . . . . . . . . . . . . . . . . . . . . . . . . . . 28 2.7.2 Yii framework . . . . . . . . . . . . . . . . . . . . . . . . . 30 2.7.3 Ozeki SMS Gateway . . . . . . . . . . . . . . . . . . . . . 31 2.8 Thảo luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31 2.9 Kết chương . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32 3 Thiết kế hệ thống 33 3.1 Đặc tả yêu cầu . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 3.1.1 Mục đích, phạm vi của hệ thống . . . . . . . . . . . . . . 33 3.1.1.1 Mục đích xây dựng hệ thống . . . . . . . . . . . 33 3.1.1.2 Phạm vi của hệ thống . . . . . . . . . . . . . . . 34 3.1.2 Yêu cầu của hệ thống . . . . . . . . . . . . . . . . . . . . 34 3.1.2.1 Yêu cầu chức năng . . . . . . . . . . . . . . . . . 34 3.1.2.2 Yêu cầu kỹ thuật . . . . . . . . . . . . . . . . . . 36 3.1.2.3 Yêu cầu thiết bị . . . . . . . . . . . . . . . . . . 37 3.2 Thiết kế hệ thống . . . . . . . . . . . . . . . . . . . . . . . . . . . 38 3.2.1 Thiết kế kiến trúc hệ thống . . . . . . . . . . . . . . . . . 38 3.2.1.1 Mô hình hệ thống . . . . . . . . . . . . . . . . . 38 3.2.1.2 Kiến trúc ứng dụng TUI Security . . . . . . . . 39 3.2.2 Thiết kế Use Case Diagram . . . . . . . . . . . . . . . . . 41 3.2.2.1 Danh sách tác nhân . . . . . . . . . . . . . . . . 41 3.2.2.2 Use Case Diagram . . . . . . . . . . . . . . . . . 42 3.3 Thiết kế sơ đồ khối và giải thuật . . . . . . . . . . . . . . . . . . 46 3.3.1 Các tính năng cơ bản . . . . . . . . . . . . . . . . . . . . . 46 3.3.2 Tính năng điều khiển . . . . . . . . . . . . . . . . . . . . . 48 3.3.3 Tính năng tìm thông tin vị trí thiết bị . . . . . . . . . . . 53 3.3.4 Bảo mật . . . . . . . . . . . . . . . . . . . . . . . . . . . . 53 3.3.5 Tương tác service . . . . . . . . . . . . . . . . . . . . . . . 55 3.4 Kết chương . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  9. MỤC LỤC ix 4 Hiện thực hệ thống quản lý bảo mật TUI Security 63 4.1 Môi trường thực thi . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.2 Hiện thực chương trình TUI Security . . . . . . . . . . . . . . . . 63 4.2.1 Sơ đồ lớp . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 4.2.1.1 Hiện thực bộ phận thực thi điều khiển . . . . . 63 4.2.1.2 Hiện thực một số tính năng quan trọng . . . . . 66 4.2.2 Sơ đồ tuần tự . . . . . . . . . . . . . . . . . . . . . . . . . 69 4.2.2.1 Soạn thảo tin nhắn điều khiển . . . . . . . . . . 70 4.2.2.2 Lắng nghe, phân tích và thực thi điều khiển . . 71 4.3 Hình ảnh của hệ thống TUI Security . . . . . . . . . . . . . . . . 72 4.3.1 Cái nhìn tổng quan về hệ thống . . . . . . . . . . . . . . . 72 4.3.2 Đăng ký tài khoản hệ thống . . . . . . . . . . . . . . . . . 74 4.3.3 Thiết lập thông số ban đầu . . . . . . . . . . . . . . . . . 75 4.3.4 Các giao diện chính của ứng dụng . . . . . . . . . . . . . 76 4.3.5 Thực thi điều khiển từ ứng dụng . . . . . . . . . . . . . . 77 4.4 Tổng kết và đánh giá hệ thống . . . . . . . . . . . . . . . . . . . 78 5 Kết luận & Hướng phát triển 79 5.1 Kết luận . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 5.2 Hướng phát triển . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 5.2.1 Các vấn đề về an ninh và bảo mật . . . . . . . . . . . . . 80 5.2.2 Theo dõi mạng lưới hoạt động của tội phạm . . . . . . . 81 5.2.3 Phục hồi dữ liệu đã bị xóa . . . . . . . . . . . . . . . . . . 81 5.2.4 Một số tính năng nâng cao . . . . . . . . . . . . . . . . . 82 Phụ lục 83 Tài liệu tham khảo 88 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  10. DANH MỤC HÌNH ẢNH x Danh mục hình ảnh 2.1 Tính năng Find My Phone của Lookout Security & Antivirus . 11 2.2 Tính năng Anti-theft của Kaspersky Mobile Security . . . . . . . 13 2.3 Giao diện điều khiển của ứng dụng Bitdefender Anti-Theft . . . 14 2.4 Các biến shared preferences của ứng dụng Gmail . . . . . . . . . 20 2.5 Cấu trúc thư mục dữ liệu của ứng dụng Google Maps . . . . . . 21 2.6 Cấu trúc thư mục database của ứng dụng Android Browser . . . 22 2.7 Android Browser plaintext password . . . . . . . . . . . . . . . . 24 2.8 Các dữ liệu được khai thác từ trình duyệt web Android . . . . . 24 2.9 Các dữ liệu về danh bạ và tin nhắn . . . . . . . . . . . . . . . . . 25 2.10 Dữ liệu trong ứng dụng Gmail . . . . . . . . . . . . . . . . . . . . 26 2.11 Các dữ liệu được khai thác từ Facebook . . . . . . . . . . . . . . 27 2.12 Kiến trúc web service . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.1 Chim Tui - New Zealand . . . . . . . . . . . . . . . . . . . . . . . 33 3.2 Mô hình hệ thống TUI Security . . . . . . . . . . . . . . . . . . . 38 3.3 Kiến trúc ứng dụng TUI Security . . . . . . . . . . . . . . . . . . 39 3.4 Danh sách các tác nhân sử dụng hệ thống . . . . . . . . . . . . . 41 3.5 Use Case Diagram . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.6 Use case Login App . . . . . . . . . . . . . . . . . . . . . . . . . . 43 3.7 Use case Remote Control Device . . . . . . . . . . . . . . . . . . 44 3.8 Sơ đồ khối xử lý trong trường hợp khẩn cấp . . . . . . . . . . . . 47 3.9 Sơ đồ khối xử lý khi nhận tin nhắn điều khiển lấy thông tin trên thiết bị . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50 3.10 Sơ đồ khối xử lý khi nhận tin nhắn điều khiển thực thi lắng nghe 51 3.11 Sơ đồ khối mô tả điều kiện để kết thúc việc lắng nghe trên thiết bị 52 3.12 Sơ đồ khối xử lý khi có tin nhắn điều khiển khóa màn hình và phát âm thanh cảnh báo . . . . . . . . . . . . . . . . . . . . . . . 54 3.13 Sơ đồ khối bên nhận yêu cầu lấy vị trí thiết bị và thông tin thuê bao 55 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  11. DANH MỤC HÌNH ẢNH xi 3.14 Sơ đồ khối phía server nhận và xử lý yêu cầu đăng ký, đăng nhập, nhận lại mật khẩu . . . . . . . . . . . . . . . . . . . . . . . . . . . 57 3.15 Sơ đồ khối phía server nhận và xử lý yêu cầu gởi SMS . . . . . . 59 3.16 Sơ đồ khối phía client yêu cầu đăng ký tài khoản mới . . . . . . 61 4.1 Hiện thực bộ phận lắng nghe điều khiển . . . . . . . . . . . . . . 64 4.2 Hiện thực bộ phận xác thực và phân tích tin nhắn điều khiển . 65 4.3 Hiện thực bộ phận thực thi lệnh . . . . . . . . . . . . . . . . . . 65 4.4 Hiện thực tính năng cảnh báo khi có SIM mới được lắp vào thiết bị 66 4.5 Hiện thực tính năng chống trộm . . . . . . . . . . . . . . . . . . . 67 4.6 Hiện thực tính năng tìm kiếm thiết bị . . . . . . . . . . . . . . . 68 4.7 Quá trình soạn thảo tin nhắn điều khiển . . . . . . . . . . . . . . 70 4.8 Quá trình lắng nghe, phân tích và thực thi điều khiển . . . . . . 71 4.9 Một số hình ảnh về ứng dụng TUI Security . . . . . . . . . . . . 72 4.10 Một số hình ảnh về ứng dụng TUI Security (tt) . . . . . . . . . . 73 4.11 Website của hệ thống . . . . . . . . . 73 4.12 Quá trình đăng ký tài khoản hệ thống . . . . . . . . . . . . . . . 74 4.13 Các bước thiết lập thông số ban đầu cho ứng dụng . . . . . . . . 75 4.14 Các giao diện tương tác chính của ứng dụng TUI Security . . . 76 4.15 Các bước thực hiện một điều khiển từ xa trên ứng dụng . . . . . 77 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  12. DANH MỤC BẢNG BIỂU xii Danh mục bảng biểu 2.1 Các đặc tính của thiết kế an toàn . . . . . . . . . . . . . . . . . . 10 2.2 Thư mục con của /data/data/ . . . . . . . . . . 20 3.1 Bảng đặc tả yêu cầu chức năng của hệ thống . . . . . . . . . . . 36 3.2 Bảng yêu cầu kỹ thuật của hệ thống . . . . . . . . . . . . . . . . 37 3.3 Đặc tả Use Case Login App . . . . . . . . . . . . . . . . . . . . . 43 3.4 Đặc tả Use Case Send Control Command . . . . . . . . . . . . . 45 3.5 Bảng mô tả đường dẫn yêu cầu các chức năng và phương thức tương ứng . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  13. DANH MỤC TỪ VIẾT TẮT xiii Danh mục từ viết tắt Từ Viết tắt của Ý nghĩa 3G Third Generation Thế hệ thứ 3 của công nghệ truyền thông di động API Application Programming In- Giao diện lập trình ứng dụng terface GPS Global Positioning System Hệ thống định vị toàn cầu GPS GMS Global System for Mobile Hệ thống thông tin di động Communications toàn HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản IDC International Data Corpora- Tập đoàn Dữ liệu quốc tế tion (IDC) là nhà cung cấp hàng đầu về thông tin thị trường, các dịch vụ tư vấn, và các sự kiện cho thị trường công nghệ công nghệ thông tin, viễn thông và người tiêu dùng. IDE Integrated Development Envi- Một loại phần mềm máy tính ronment có công dụng giúp đỡ các lập trình viên trong việc phát triển phần mềm IMEI International Mobile Station Mã số nhận dạng thiết bị di Equipment Identity động trên toàn thế giới JSON JavaScript Object Notation Một kiểu dữ liệu trong JavaScript MD5 MessageDigest algorithm 5 Giải thuật Tiêu hóa tin 5 MMS Multimedia Messaging Service Dịch vụ nhắn tin đa phương tiện MSISDN Mobile Subscriber Integrated Là một số duy nhất xác định Services Digital Network- một thuê bao trong GSM hoặc Number mạng di động UMTS PIN Personal Identification Num- Mã số cá nhân, dùng để xác ber thực thuê bao di động. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  14. DANH MỤC TỪ VIẾT TẮT xiv REST Representation State Transfer Chuyển giao trạng thái biểu diễn, là dạng yêu cầu dịch vụ web mà máy khách truyền đi trạng thái của tất cả giao dịch SDK Software Development Kit Công cụ dành cho nhà phát triển phần mềm SIM Subscriber Identity Module Thẻ nhớ thông minh sử dụng trên điện thoại di động - lưu trữ những thông tin như số điện thoại, mã số mạng di động, mã PIN, sổ điện thoại cá nhân và các thông tin cần thiết khác khi sử dụng điện thoại SMS Short Message Service Dịch vụ tin nhắn ngắn SOAP Simple Object Access Protocol Một tiêu chuẩn của W3C, là giao thức sử dụng XML để định nghĩa dữ liệu dạng thuần văn bản (plain text) thông qua HTTP UMTS Universal Mobile Telecommu- Hệ thống viễn thông di động nications System toàn cầu W3C World Wide Web Consortium Tổ chức lập ra các chuẩn cho Internet XML eXtensible Markup Language Ngôn ngữ Đánh dấu Mở rộng GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  15. DANH MỤC THUẬT NGỮ CHUYÊN NGÀNH xv Danh mục thuật ngữ chuyên ngành Từ tiếng Anh Giải thích accelerator sensor Cảm biến gia tốc database Cơ sở dữ liệu mobile forensics Khoa học về phục hồi bằng chứng kỹ thuật số từ một điện thoại di động theo các điều kiện pháp lý bằng cách sử dụng các phương pháp được chấp nhận logs File lưu trữ tin thông báo, lỗi khi một ứng dụng đang chạy phishing Lừa đảo trực tuyến rooted/rooting Hành động cho phép thiết bị đạt được quyền hạn root user smartphone Điện thoại thông minh spyware Phần mềm gián điệp target Mục tiêu tấn công GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  16. CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 1 Chương 1: Giới thiệu đề tài 1.1 Tên đề tài Xây dựng hệ thống quản lý bảo mật trên Android Smartphones. 1.2 Từ khóa An ninh thông tin, lỗ hổng bảo mật, bảo vệ dữ liệu, mobile theft, anti-theft, định vị toàn cầu GPS, Android rooting, mobile forensics, phone finding. 1.3 Mục tiêu đề tài và các vấn đề đặt ra Để giới thiệu ý tưởng chính, tác giả xin giới thiệu một “kịch bản” minh họa cho các vấn đề trong khóa luận này. Mạnh là một doanh nhân thành đạt. Anh thường xuyên đi công tác khắp các tỉnh thành cả nước. Mạnh sử dụng smartphone để hỗ trợ cho công việc của mình. Tất cả các thông tin liên lạc của khách hàng, thông tin hoạt động của doanh nghiệp, lịch hẹn, lịch làm việc Mạnh đều lưu trữ trong chiếc di động đó. Mạnh thường xuyên giao tiếp với khách hàng qua email, mạng xã hội và qua các cuộc hội thoại (phone calls). Điện thoại của Mạnh được cài đặt một phần mềm quản lý bảo mật. Trong một lần công tác tại thành phố Hồ Chí Minh, Mạnh bị tội phạm đường phố giật mất điện thoại (một trong những loại hình phạm tội phổ biến tại thành phố này). Trong chiếc điện thoại này có những dữ liệu quan trọng về công ty và khách hàng, nếu bị kẻ xấu lợi dụng sẽ ảnh hưởng rất lớn đến uy tín cũng như công việc của Mạnh. Ngay lúc đó, Mạnh mượn điện thoại một đồng nghiệp và nhắn tin đến số thuê bao vừa bị mất. Tin nhắn này yêu cầu phần mềm bảo mật thực hiện sao lưu và xóa tất cả những thông tin quan trọng trên điện thoại (thông tin tài khoản, danh bạ, tin nhắn, tài khoản mạng xã hội, ), sau đó gửi các file sao lưu về email của GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  17. CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 2 Mạnh. Đồng thời, anh yêu cầu nhà cung cấp dịch vụ khóa thẻ SIM của anh để tránh bị sử dụng trái phép. Vì thế mà thông tin cá nhân của anh được đảm bảo an toàn. Vài ngày sau, Mạnh được thông báo qua email rằng có một thuê bao đang sử dụng điện thoại của anh. Thông tin bao gồm số thuê bao, tên, số chứng minh nhân dân của chủ thuê bao. Mạnh gửi tin nhắn nặc danh đến số điện thoại này và nhận được thông tin về địa chỉ hiện tại của chủ thuê bao, cũng như các thông tin về tài khoản email, tài khoản mạng xã hội và một số hình ảnh. Cung cấp các thông tin này cho cơ quan chức năng, Mạnh đã lấy lại được điện thoại của mình. Phần mềm quản lý bảo mật mà Mạnh sử dụng đã giúp anh yên tâm về dữ liệu của mình, cũng như giúp anh tìm lại thiết bị. Dựa vào tình huống thực tế trên, khóa luận được xây dựng để nghiên cứu và phát triển một hệ thống quản lý bảo mật nhằm: bảo vệ và quản lý dữ liệu trên thiết bị; phát hiện và cảnh báo nguy cơ trộm cắp thiết bị; truy tìm thiết bị; thu thập dữ liệu cho cơ quan chức năng trong quá trình điều tra. Theo đó, khóa luận này nhằm mục đích giải quyết các vấn đề nghiên cứu sau: 1. Làm thế nào để nhận dạng một thiết bị (điện thoại di động)? Các cách thức để vô hiệu hóa một thiết bị? Trong trường hợp thiết bị không thể vô hiệu hóa vật lý, làm cách nào để bảo vệ dữ liệu và thiết bị này? 2. Trong trường hợp thiết bị ngoài tầm kiểm soát (bị trộm cắp, thất lạc,. . . ), làm cách nào để biết ai đang sử dụng thiết bị của mình và sử dụng nó như thế nào? Cách thức liên lạc từ xa giữa người sử dụng và thiết bị trong trường hợp này ra sao? 3. Cách thức nào để lấy thông tin chủ thuê bao đang sử dụng thiết bị cũng như vị trí hiện tại và các dữ liệu quan trọng của thiết bị? Chúng có ảnh hưởng như thế nào đến mobile forensics? 4. Điện thoại thông minh, đặc biệt điện thoại rooted có những nguy cơ bảo mật nào? Khai thác những lỗ hổng đó để phục vụ lĩnh vực mobile forensics ra sao? 5. Xây dựng một hệ thống quản lý bảo mật cần có những tính năng nào? Mô hình và cách thức hoạt động của hệ thống ra sao? GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  18. CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 3 1.4 Đối tượng áp dụng và phạm vi của đề tài Trọng tâm của khóa luận đề cập đến việc quản lý và bảo mật dữ liệu trong các trường hợp thiết bị ngoài tầm kiểm soát, bị trộm cắp, hoặc hư hỏng. Khóa luận không đề cập đến các trường hợp mất mát dữ liệu khác (do sự phá hoại của các phần mềm virus, malware, trojan hoặc do các hành vi lừa đảo). Khóa luận chỉ tập trung nghiên cứu hệ thống quản lý bảo mật nhằm phục vụ việc bảo vệ dữ liệu, cảnh báo và phòng chống trộm cắp, tìm kiếm điện thoại, thu thập thông tin phục vụ công tác điều tra. Khóa luận không đề cập đến trường hợp sử dụng hệ thống cho các mục đích khác. Cụ thể hơn, khóa luận phát triển hệ thống trên nền tảng Android, dựa trên hạ tầng mạng GSM và UMTS, một số tính năng chỉ áp dụng trong nước Việt Nam. Giả sử rằng điện thoại của người sử dụng đã được rooted (vấn đề này sẽ được nghiên cứu trong các chương sau). Khóa luận được xây dựng trên nền tảng kiến thức lập trình cơ bản, kiến thức hệ thống mạng và các dịch vụ mạng. Hệ thống được xây dựng nhằm phục vụ người dùng trong công tác quản lý và bảo vệ dữ liệu và thiết bị. Ngoài ra, hệ thống còn có thể được sử dụng bởi các cơ quan pháp chứng trong điều tra tội phạm; các nhà nghiên cứu trong lĩnh vực mobile forensics. 1.5 Đối tượng nghiên cứu Trong giới hạn đề tài này, khóa luận sẽ thực hiện nghiên cứu các đối tượng sau: • Đặc tính của các sản phẩm hấp dẫn tội phạm (HOT Products) và đặc tính của sản phẩm an toàn IN SAFE HANDS [23]. • Thu thập dữ liệu, mobile forensics và các vấn đề liên quan. • Xây dựng hành vi và mô hình hoạt động của hệ thống quản lý bảo mật. • Lợi ích và nguy cơ về bảo mật khi rooting điện thoại Android. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  19. CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 4 1.6 Phương pháp nghiên cứu Khóa luận được thực hiện trên cơ sở nghiên cứu về mức độ quan trọng của dữ liệu trên điện thoại di động và tương quan với tình hình mất an toàn thông tin để xác định cần thiết phải xây dựng một hệ thống quản lý, bảo vệ dữ liệu. Khóa luận cũng thực hiện tìm hiểu và nghiên cứu đặc tính sản phẩm HOT Products và đặc tính của sản phẩm an toàn IN SAFE HANDS từ những công trình nghiên cứu trước đó để xác định các yêu cầu và định hướng xây dựng một hệ thống quản lý bảo mật tốt. Ngoài ra, khóa luận cũng thực hiện tìm hiểu về hệ điều hành Android, nghiên cứu vấn đề mobile forensics, nghiên cứu về Android root access, dịch vụ mạng và web service làm nền tảng kiến thức thực hiện xây dựng và phát triển hệ thống quản lý bảo mật trên thiết bị sử dụng nền tảng Android. Trong khóa luận này, nhóm tác giả sử dụng phương pháp phân tích, phương pháp mô phỏng, phương pháp nghiên cứu thực tiễn làm phương pháp nghiên cứu chủ đạo nhằm làm rõ thực trạng an toàn thông tin, vấn đề quản lý bảo vệ dữ liệu, tìm kiếm thiết bị, trinh sát thông tin,. . . từ đó xây dựng một hệ thống quản lý bảo mật hoàn chỉnh trên Android smartphones. 1.7 Đóng góp của đề tài Qua quá trình nghiên cứu, khóa luận đạt được một số kết quả như sau: • Trong thực tiễn: Xây dựng thành công hệ thống quản lý bảo mật điện thoại nhằm: bảo vệ dữ liệu, thiết bị; cảnh báo nguy cơ và chống trộm; tìm kiếm thiết bị; thu thập thông tin phục vụ công tác điều tra. Hệ thống được xây dựng thiết thực trong môi trường thực tiễn Việt Nam hiện nay. • Trong nghiên cứu: – Khóa luận đã tìm hiểu và tổng hợp các nghiên cứu trên thế giới về các sản phẩm HOT Products và đặc tính của một sản phẩm an toàn IN SAFE HANDS làm nền tảng lý thuyết để từ đó xây dựng thành công hệ thống quản lý bảo mật trên. – Khóa luận đã đề ra được các phương pháp, cách thức để bảo vệ dữ liệu, thu thập các dữ liệu quan trọng để phục vụ công tác nghiên cứu GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  20. CHƯƠNG 1. GIỚI THIỆU ĐỀ TÀI 5 và điều tra tội phạm. – Khóa luận chỉ ra được nguy cơ bảo mật nghiêm trọng khi sử dụng điện thoại thông minh trong các trường hợp đã rooted. Qua đó, khóa luận đã đưa ra lời khuyên cho người dùng cân nhắc trước khi thực hiện rooting thiết bị của mình. 1.8 Cấu trúc khóa luận Báo cáo khóa luận được cấu trúc như sau: Chương1 giới thiệu tổng quan về đề tài nghiên cứu, mục đích nghiên cứu, phạm vi nghiên cứu, các vấn đề cần giải quyết và các kết quả đạt được. Chương2 nêu lên mức độ nghiêm trọng của tình hình an toàn thông tin trên điện thoại di động. Từ đó, nghiên cứu các phương pháp để bảo vệ dữ liệu, thiết kế mô hình hệ thống quản lý bảo mật điện thoại. Đồng thời, chương này cũng đi khảo sát các hệ thống đã được phát triển, khái quát các kiến thức, công nghệ liên quan, giới thiệu cách tiếp cận của khóa luận để giải quyết vấn đề. Chương3 đề ra các đặc tả yêu cầu của hệ thống, thiết kế kiến trúc và mô hình hệ thống và đề ra giải thuật cho các vấn đề được nêu ở chương1. Chương4 trình bày việc hiện thực các thiết kế từ chương3, hiện thực các giải thuật, giới thiệu giao diện ứng dụng. Cuối chương là phần đánh giá chi tiết về hệ thống được phát triển trong khóa luận. Cuối cùng, các tác giả tổng kết đề tài trong chương5, nêu lên ý nghĩa của đề tài và đưa ra hướng phát triển tiếp theo. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  21. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 6 Chương 2: Khảo sát hiện trạng và các kiến thức liên quan 2.1 An toàn thông tin trên điện thoại di động Theo báo cáo của Liên minh Viễn thông Quốc tế, đến cuối năm 2011 thế giới có khoảng 6 tỷ thuê bao di động, tương đương với 87% dân số thế giới [17]. Một nghiên cứu của Portio Research dự đoán thuê bao di động sẽ đạt 6.5 tỷ vào cuối năm 2012, 6.9 tỷ cuối năm 2013 và 8 tỷ cuối năm 2016 [20]. IDC (2/2012) cho biết toàn thế giới đã có 1 tỷ 546 triệu điện thoại di động được bán ra trong năm 2011, tăng 11.1% so với năm 2010, trong đó điện thoại thông minh chiếm tỉ lệ 31.8% với 491.4 triệu chiếc [7]. Cùng với sự phát triển nhanh chóng của công nghệ và sự ra đời hàng loạt sản phẩm, điện thoại di động ngày càng lưu trữ một khối lượng dữ liệu đồ sộ và không ngừng sản sinh thêm. Thật vậy, chỉ tính trong năm 2011, 7.8 nghìn tỷ tin nhắn SMS đã được gửi đi. Con số này trong năm 2012 đạt 9,6 nghìn tỷ tin nhắn SMS. Đến năm 2013, doanh thu SMS toàn cầu được dự báo lần đầu tiên đạt trên 150 tỷ USD và sẽ tiếp tục tăng trong hai năm tới. Cũng trong năm 2011, toàn cầu có 669.5 triệu người sử dụng email trên thiết bị di động, kỳ vọng tăng trưởng đến 2.4 tỷ người đến năm 2016. Năm 2011 cũng chứng kiến 207 triệu tin nhắn MMS được gửi đi, kỳ vọng đạt được 276.8 triệu tin nhắn MMS đến năm 2016. Trong năm 2009, 81.3 triệu người trên toàn thế giới đã sử dụng thiết bị di động để thực hiện các thanh toán, đạt khối lượng 68.7 tỷ USD. Con số này tiếp tục tăng nhanh đạt 490 triệu người trong năm 2014, nâng tổng khối lượng thanh toán lên 633.4 tỷ USD [20]. Một khảo sát khác cho biết: 81% điện thoại di động được sử dụng để duyệt web, 77% sử dụng để tìm kiếm, sinh ra 425 triệu người dùng Facebook thường xuyên (tháng 12-2011), 200 triệu video YouTube được phát hàng ngày [13]. Dữ liệu trên điện thoại di động được lưu trữ trong một hình thức tập trung cao độ và di động [12]. Do đó, chúng thu hút các tội phạm nói chung và tội GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  22. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 7 phạm mạng. Điện thoại di động trở thành mục tiêu tấn công chủ yếu, cung cấp hàng triệu các mục tiêu tiềm năng. Chúng cũng có rất nhiều lỗ hổng. Các nhà sản xuất thường không cài sẵn phần mềm bảo mật trên thiết bị của mình [14]. Thêm nữa, vì nhỏ gọn và giá rẻ, điện thoại di động không những dễ mất và tương đối dễ bị trộm cắp mà còn có vòng đời sử dụng tương đối ngắn trước khi người sử dụng mong muốn một thiết bị mới hơn. Tất cả những trường hợp này dẫn đến nguy cơ mất an toàn thông tin nghiêm trọng trên điện thoại di động. Nếu thông tin nhạy cảm bị khai thác, tội phạm có thể xác định được cụ thể đối tượng mà chúng đang lợi dụng, mục tiêu tấn công và thậm chí cả cơ hội thành công khi tấn công [12]. Trong một khảo sát, 36% người sử dụng điện thoại đã từng có một thiết bị bị mất. Tại Mỹ, 113 điện thoại bị mất mỗi phút [21]. Tại Vương quốc Anh, nạn trộm cắp điện thoại gây thiệt hại 390 triệu bảng mỗi năm với hơn 2 triệu thiết bị bị đánh cắp, tương đương với 229 thiết bị trong một giờ [8]. Những sự thật này cho thấy rằng bảo mật thiết bị di động là một mối quan tâm hàng đầu hiện nay. Hiểu được những nguy cơ và các kịch bản rủi ro khác nhau cho phép các nhà phát triển ứng dụng có thể thiết kế hệ thống quản lý bảo mật thích hợp để giảm thiểu rủi ro. Trong các phần tiếp theo, khóa luận sẽ thực hiện nghiên cứu các kịch bản rủi ro và nghiên cứu các giải pháp để xây dựng hệ thống quản lý bảo mật trên điện thoại thông minh. 2.2 Kịch bản rủi ro Trong phần này khóa luận đề cập đến một số trường hợp xảy ra trong thực tế về mất mát dữ liệu trên điện thoại thông minh và những hậu quả của nó. Qua đó cho thấy sự cấp thiết phải xây dựng một hệ thống quản lý bảo mật để bảo vệ dữ liệu, thiết bị của người dùng. • Kịch bản 1: Minh đang trên đường đến trường. Trong túi sách của Minh có chiếc điện thoại di động mà mẹ cậu đưa để gọi trong các trường hợp cần thiết. Giữa đường, Minh bị một nhóm thanh niên chặn đường và cướp mất túi sách của mình. Chuyện mất điện thoại chỉ là một vấn đề đơn giản. Minh đã mua một chiếc điện thoại, một thẻ SIM khác và không quan tâm về sự cố này. Tuy nhiên, một thời gian sau đó Minh nhận được một số thông tin từ bạn GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  23. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 8 bè và người thân của cậu rằng ai đó đã mạo danh cậu để vay mượn tiền bạc từ họ bằng số thuê bao đã mất trước đó. • Kịch bản 2: Khánh là một nhân viên phụ trách mảng marketing của một công ty quảng cáo lớn. Anh được công ty cấp cho điện thoại di động để phục vụ công việc. Điện thoại của anh lưu trữ các thông tin về khách hàng, các giao dịch, email, các trao đổi cá nhân. Trong một lần đi tham dự hội thảo, anh bị ai đó lấy trộm điện thoại của mình. Sau sự việc này, tất cả thông tin về khách hàng và kế hoạch, chiến lược của công ty anh lọt vào tay đối thủ. Giám đốc công ty đã rất tức giận và sa thải Khánh. • Kịch bản 3: Vy là một nhân viên văn phòng làm việc tại một công ty xuất nhập khẩu. Công việc bận rộn, giao tiếp khách hàng thường xuyên nên Vy để điện thoại di động trên bàn làm việc cho tiện. Rời phòng làm việc vì có công việc đột xuất, Vy đã để quên điện thoại trong phòng cho tới ngày hôm sau. Mọi chuyện bắt đầu khi mọi người trong công ty bàn tán về chuyện đời tư của Vy. Sự thật là một đồng nghiệp đã đọc lén các tin nhắn và hình ảnh riêng tư của Vy trên chiếc điện thoại để quên ngày hôm đó và phát tán chúng. Các câu chuyện trên chỉ là một phần rất nhỏ trong các tình huống thực tế. Tuy vậy nó đã khẳng định việc mất mát dữ liệu có thể xảy ra ở bất cứ đâu và bất cứ lúc nào trong khi hậu quả không thể lường trước được. Nếu các kịch bản này diễn ra theo hướng của kịch bản trong phần 1.3; khi mà các thiết bị được cài đặt phần mềm quản lý bảo mật thì rõ ràng mức độ ảnh hưởng đã được giảm hẳn. Điều đó cho thấy, việc xây dựng và phát triển hệ thống quản lý bảo mật là một vấn đề quan trọng cần phải nghiên cứu cẩn thận. Trong phần tiếp theo, khóa luận sẽ đưa ra các luận cứ về đặc tính của một thiết bị an toàn và yêu cầu cần thiết khi phát triển hệ thống quản lý bảo mật nhằm đảm bảo một thiết bị được an toàn. 2.3 Đặc điểm của một thiết bị an toàn Theo Clarke et al. [4], các hành vi trộm cắp xuất phát từ bản chất của hàng hóa. Đề tài này đã thúc đẩy nhiều công trình nghiên cứu nhằm đưa ra các đặc tính chung của các sản phẩm hấp dẫn tội phạm (HOT products). Theo Cohen GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  24. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 9 and Felson [5] các đặc tính đó là tính giá trị, tính hấp dẫn, có thể nhìn thấy được và dễ bị tổn thương mà tác giả gói gọn trong từ viết tắt VIVA (Value, Inertia, Visibility, Accessibility). Năm 1999, Clarke et al. [4] tái định nghĩa các đặc tính của HOT products thành CRAVED (Concealable, Removable, Available, Valuable, Enjoyable, Disposable). Mỗi đặc tính là một thành phần quan trọng giải thích vì sao các sản phẩm hấp dẫn tội phạm. Các đặc tính này hiển nhiên và không thể thay đổi được. Vấn đề là làm cách nào để chúng ta có thể thiết kế một sản phẩm an toàn hơn kể cả khi chúng mang những đặc tính như vậy? Các tác giả Whitehead, Mailley, Storer, McCardle, Torrens, and Farrell trong bài viết "IN SAFE HANDS: A Review of Mobile Phone Anti-theft Designs" đã đề xuất thiết kế sản phẩm an toàn nên bao gồm một hoặc hơn một tập hợp các đặc tính, mà tác giả gọi là IN SAFE HANDS (Identifiable, Neutral, Seen, Attached, Findable, Executable, Hidden, Automatic, Necessary, Detectable, Se- cure). Chi tiết về các đặc tính này được thể hiện chi tiết ở bảng 2.1. Đặc tính Mô tả chi tiết Identifiable Thiết bị phải có thể xác định được bởi chủ sở hữu. Các tính năng bảo vệ thiết bị không nên gây ảnh hưởng đến trải nghiệm của người dùng. Các tính năng này không Neutral nên làm cho thiết bị khó khăn hơn trong việc xử lý và thực hiện các tính năng vốn có của mình. Seen Thiết bị phải trong tầm kiểm soát (tầm nhìn) và có báo động để tăng tính răn đe tội phạm. Một sản phẩm an toàn nên có tính cố định; được cố định ở một vị trí hoặc gắn trên cơ thể người sử dụng. Các túi Attached bảo vệ thiết bị đeo trên người là một minh chứng cho đặc tính này. Findable Nếu bị mất hoặc bị trộm cắp, thiết bị có thể theo dõi và được tìm thấy. Thiết bị di động có thể được vô hiệu hóa nếu chúng bị mất hoặc bị trộm cắp. Ngoài ra thiết bị nên được điều Executable khiển từ xa thực hiện một số yêu cầu khác nhau. Hidden Một sản phẩm nên được ẩn đối với người dùng. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  25. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 10 Thiết bị sẽ được bảo vệ tốt hơn với những ứng dụng bảo mật tự động. Trong số đó, thẻ SIM cũng được tự động Automatic bảo vệ bởi mã PIN, nhưng hiếm khi được sử dụng trên điện thoại di động. Thiếu tự động hóa cho phép người phạm tội để tận dụng lợi thế bởi sự thờ ơ về bảo mật của một bộ phận người dùng. Một thiết bị an toàn cần thiết phải chứng thực chủ sở hữu bằng các thông tin cần thiết, chẳng hạn như mã số Necessary PIN cá nhân, sinh trắc học,. . . Các thiết kế phải có thể xác định được một hành vi trộm cắp đối với thiết bị đang xảy ra hoặc đã xảy ra. Thiết kế Detectable chống trộm thiết bị phải có khả năng phát hiện và cảnh báo các nguy cơ bị trộm cắp. Các thiết bị nên được bảo mật. Chúng không nên bị tấn công (bằng phần mềm) hoặc dễ dàng xóa bỏ các chương Secure trình bảo mật. Bảng 2.1: Các đặc tính của thiết kế an toàn Việc định nghĩa các đặc tính trên là những cơ sở lý thuyết cần thiết trong việc giải quyết các vấn đề lý luận trong thiết kế hệ thống quản lý bảo mật được đề cập đến ở chương1. Các phần tiếp theo sẽ khảo sát và đánh giá một số hệ thống đã được phát triển trước đó và đi sâu tìm hiểu các kiến thức cần nắm vững để phát triển một hệ thống quản lý bảo mật tốt. 2.4 Các hệ thống đã được phát triển Trong phần này, khóa luận xin giới thiệu về một số hệ thống, phần mềm quản lý bảo mật tiêu biểu đã được phát triển trên hệ điều hành Android. Các phần mềm này thực hiện rất nhiều chức năng bảo mật như Security & Antivirus, Web Protection, Anti-theft Protection, Call & SMS Filtering, Privacy Protection, Phone Finding, Backup & Restore,. . . . Hệ thống được xây dựng trong khóa luận này không thể so sánh về sự đa dạng tính năng như các hệ thống đã phát triển trước đó. Tuy nhiên, vì chỉ tập trung các tính năng bảo vệ dữ liệu, Anti- theft Protection, Phone Finding, Mobile forensics cho nên hệ thống mà khóa GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  26. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 11 luận đã phát triển có một số điểm nổi bật riêng. Do đó, trong phần này khóa luận chỉ chú trọng đến các tính năng trên của các hệ thống trước đó. 2.4.1 Lookout Security & Antivirus Phần mềm bảo mật đứng đầu các kết quả khi tìm kiếm bằng từ khóa security trên Google Play (Android Market). Phần mềm có khoảng 50 triệu người cài đặt và gần 300000 người dùng đánh giá sản phẩm hạng 5 sao. Phần mềm được tạp chí TechCrunch đánh giá là “Top 10 Best Free Apps”, tạp chí PCWorld đánh giá “5 out of 5 stars!”.1 Các tính năng của phần mềm bao gồm: • Security & Antivirus • Find My Phone Giao diện tính năng Find My Phone của phần mềm Lookout Security & Antivirus như hình 2.1. Hình 2.1: Tính năng Find My Phone của Lookout Security & Antivirus Các tính năng Find My Phone bao gồm: – Tìm kiếm thiết bị trên Google Map trực tiếp trên Lookout.com (yêu cầu tài khoản đăng nhập). 1 Accessed Feb 16,2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  27. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 12 – Báo động lớn và khẩn cấp để tìm kiếm thiết bị kể cả khi thiết bị trong chế độ im lặng. – Tự động lưu trữ vị trí cuối cùng của thiết bị trên Lookout.com để phục vụ công tác tìm kiếm kể cả khi thiết bị hết pin. – Điều khiển thiết bị từ xa từ Lookout.com để tránh người sử dụng thiết bị trái phép. – Xóa dữ liệu để không ai có thể đọc được chúng trong các trường hợp cần thiết. • Backup & Restore – Backup danh bạ liên lạc tự động. – Phục hồi danh bạ đến những thiết bị mới từ tài khoản Lookout.com. – Bảo vệ các files hình ảnh và lịch sử cuộc gọi một cách tự động. – Chuyển đổi danh bạ, hình ảnh và lịch sử cuộc gọi đến các thiết bị mới sử dụng tài khoản Lookout.com 2.4.2 Kaspersky Mobile Security Kaspersky Mobile Security là một phần mềm bảo mật di động do hãng bảo mật nổi tiếng Kaspersky phát triển. Kapersky Mobile Security sử dụng các công nghệ bảo mật mới nhất để bảo vệ các thiết bị Android chống lại virus điện thoại, các nguy cơ từ Internet, các website lừa đảo (phishing), spyware và spam. Phần mềm dễ sử dụng, cung cấp tính năng bảo vệ nâng cao trong các trường hợp điện thoại bị mất hoặc bị hư hỏng bằng cách điều khiển bảo vệ dữ liệu từ xa và truy tìm dấu vết của thiết bị. Phần mềm bao gồm các tính năng cụ thể như sau: • Antivirus Protection • Web Protection • Call & SMS Filtering • Anti-theft Protection – Điều khiển từ xa vô hiệu hóa thiết bị trong các trường hợp bị mất hoặc bị hư hỏng. – Điều khiển từ xa xóa dữ liệu cá nhân trên thiết bị điện thoại. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  28. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 13 – Tìm kiếm điện thoại bị mất sử dụng GPS, Wifi và Google Maps. – Vô hiệu hóa, format hoặc truy tìm vị trí thiết bị ngay cả khi SIM card đã bị thay đổi. • Privacy Protection – Quản lý dữ liệu, người sử dụng dữ liệu. – Ẩn các thông tin quan trọng và nhạy cảm: danh bạ, tin nhắn cá nhân, lịch sử cuộc gọi. Giao diện tính năng Anti-theft của phần mềm Kaspersky Mobile Security như hình 2.2. Hình 2.2: Tính năng Anti-theft của Kaspersky Mobile Security 2.4.3 Bitdefender Anti-Theft Bitdefender Anti-Theft là một sản phẩm của hãng bảo mật Bitdefender. Ứng dụng này cho phép tìm kiếm, khóa, xóa dữ liệu trên những thiết bị Android bị mất hoặc hư hỏng bất kỳ lúc nào và bất cứ đâu. Ngoài ra, ứng dụng còn cho phép bảo vệ dữ liệu cá nhân giảm thiểu mất mát dữ liệu; vô hiệu hóa việc xóa bỏ ứng dụng khi đã được cài đặt, cung cấp các phương pháp bảo vệ thiết bị thông minh. Các tính năng cốt lõi của ứng dụng có thể kể đến như: GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  29. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 14 • Multi-device: Ứng dụng Bitdefender Anti-Theft sử dụng được cho tất cả các thiết bị gia đình, bao gồm laptops, smartphones hay tablets. • Tìm kiếm thiết bị • Khóa thiết bị thông qua điều khiển từ xa. • Quản lý ứng dụng bằng Password hoặc mã PIN. • Điều khiển từ xa để xóa dữ liệu quan trọng của thiết bị. • Báo động khi có điều khiển kể cả khi thiết bị trong chế độ im lặng. • Cảnh báo thẻ SIM bị thay đổi. • Sử dụng các tin nhắn lệnh (SMS Commands) để điều khiển. • Direct Contact: Gửi tin nhắn lệnh đến điện thoại di động để điều khiển thiết bị thực hiện cuộc gọi hoặc trả lời cuộc gọi. Hình 2.3 giới thiệu về giao diện của tính năng điều khiển từ xa. Hình 2.3: Giao diện điều khiển của ứng dụng Bitdefender Anti-Theft GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  30. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 15 2.5 Hệ điều hành Android Android là một môi trường hệ điều hành hoàn chỉnh dựa trên hệ điều hành nhân Linux v2.6. Lúc đầu, đích triển khai đối với Android là lĩnh vực điện thoại di động, gồm các loại điện thoại thông minh và các loại thiết bị điện thoại kiểu gập chi phí thấp. Tuy nhiên, phạm vi đầy đủ các dịch vụ điện toán của Android và sự hỗ trợ chức năng phong phú làm cho nó có tiềm năng mở rộng vượt ra ngoài thị trường điện thoại di động. Do đó, Android có thể hữu ích đối với các nền tảng và ứng dụng khác. Trong phần này, khóa luận xin điểm qua khái quát về hệ điều hành này và lý do vì sao tác giả lại chọn Android làm nền tảng đầu tiên để nghiên cứu, phát triển hệ thống quản lý bảo mật. 2.5.1 Sự phát triển của hệ điều hành Android Android là hệ điều hành trên điện thoại di động (và hiện nay là cả trên một số đầu phát HD, HD Player) phát triển bởi Google. Trước đây, Android được phát triển bởi công ty liên hợp Android (sau đó được Google mua lại vào năm 2005) [24]. Nền tảng Android được các công ty phần mềm lựa chọn vì chi phí phát triển thấp, tùy chỉnh, hệ thống điều hành nhẹ cho các thiết bị công nghệ cao mà không cần phải phát triển lại từ đầu. Android có một cộng đồng những nhà phát triển rất lớn viết các ứng dụng cho hệ điều hành của mình. Hiện tại có khoảng 700000 ứng dụng và game trên Google Play, số lượt tải ứng dụng đạt ngưỡng 25 tỷ lượt từ khi Android xuất hiện và bình quân có khoảng 1.5 tỷ lượt tải ứng dụng mỗi tháng và không ngừng tăng lên [19]. Những yếu tố này đã giúp cho Android để trở thành nền tảng được sử dụng rộng rãi nhất trên điện thoại thông minh, vượt qua nền tảng Symbian trong quý IV năm 2010 [22]. Trong quý III năm 2012, các thiết bị Android được bán ra chiếm thị phần 75% thị trường điện thoại thông minh toàn thế giới với 136 triệu thiết bị được kích hoạt [6]. 2.5.2 Đặc trưng của hệ điều hành Android Android cung cấp đầy đủ một bộ phần mềm cho các thiết bị điện thoại: một hệ điều hành, các middleware và ứng dụng chủ chốt. Hệ điều hành Android có bốn đặc trưng sau: tính mở, tính ngang hàng giữa các ứng dụng, phá vỡ ranh giới ứng dụng và dễ dàng phát triển ứng dụng [2]. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  31. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 16 1. Tính mở: Hệ điều hành Android được xây dựng từ cấp độ phần cứng cho phép nhà phát triển xây dựng các ứng dụng sử dụng lợi thế đầy đủ của thiết bị đã cung cấp. Android được xây dựng để thực sự mở. Một ứng dụng có thể gọi tới bất kỳ một chức năng cốt lõi nào của điện thoại như thực hiện cuộc gọi, gửi tin nhắn hay sử dụng máy ảnh, cho phép các nhà phát triển tạo ra những trải nghiệm phong phú và gắn kết hơn cho người sử dụng. Android được xây dựng trên nhân Linux mở. Thêm nữa, nó sử dụng một máy ảo tùy biến được thiết kế để tối ưu hóa bộ nhớ và tài nguyên phần cứng trong một môi trường di động. Android là một mã nguồn mở, nó có thể được mở rộng để kết hợp với các công nghệ tiên tiến mới xuất hiện. Nền tảng này sẽ tiếp tục phát triển bởi cộng đồng các nhà phát triển làm việc với nhau để tạo ra các ứng dụng di động sáng tạo. Sự ra mắt của Android vào ngày 5 tháng 11 năm 2007 gắn với sự thành lập của liên minh thiết bị cầm tay mã nguồn mở, bao gồm 84 công ty phần cứng, phần mềm và viễn thông nhằm mục đích tạo nên một chuẩn mở cho điện thoại di động trong tương lai.1 2. Tính ngang hàng giữa các ứng dụng: Android không phân biệt giữa các ứng dụng cốt lõi của điện thoại và các ứng dụng của bên thứ ba. Tất cả các ứng dụng đều được xây dựng để có thể truy cập bằng tất cả khả năng của một điện thoại cung cấp cho người dùng. Với các thiết bị được xây dựng trên nền tảng Android, các ứng dụng có thể đáp ứng đầy đủ nhu cầu của người sử dụng. Người dùng có thể tự do tùy biến, cài đặt ứng dụng và tùy chỉnh thiết bị. 3. Phá vỡ ranh giới ứng dụng: Android phá vỡ các rào cản để xây dựng các ứng dụng mới và sáng tạo. Ví dụ, một nhà phát triển có thể kết hợp thông tin từ các trang web với dữ liệu trên điện thoại di động của một cá nhân - ví dụ như địa chỉ liên lạc của người dùng, lịch, hoặc vị trí địa lý - để cung cấp một trải nghiệm người dùng có liên quan hơn. Với Android, một nhà phát triển có thể xây dựng một ứng dụng cho phép người dùng xem vị trí của bạn bè của họ và được cảnh báo khi họ đang có trong vùng phụ cận như một cơ hội để kết nối. 4. Dễ dàng phát triển ứng dụng: Android cung cấp khả năng truy cập vào một loạt các thư viện và các công cụ hữu ích có thể được sử dụng để 1 Accessed Feb. 16, 2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  32. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 17 xây dựng các ứng dụng hữu ích. Ví dụ, Android cho phép các nhà phát triển lấy được vị trí của điện thoại, cho phép các thiết bị giao tiếp với các mạng xã hội. Ngoài ra, Android còn bao gồm một tập hợp đầy đủ các công cụ đã được xây dựng từ phần cứng cung cấp cho các nhà phát triển hiệu năng cao và cái nhìn sâu vào các ứng dụng của họ. Với những đặc tính trên của hệ điều hành Android, tác giả quyết định sử dụng nền tảng này là nền tảng đầu tiên để phát triển hệ thống quản lý bảo mật. 2.5.3 Lập trình trên Android Hiện nay, có nhiều công nghệ được sử dụng để phát triển ứng dụng trên thiết bị di động chạy trên nền tảng Android, có thể kể đến là PhoneGap của Adobe, Mono Android của Xamarin, Android của Google. Mono Android của Xamarin là một công nghệ mới, sử dụng nền tảng ngôn ngữ lập trình C# để phát triển ứng dụng trên Android, sau đó có thể tùy chỉnh nhanh chóng để có được một ứng dụng chạy trên các nền tảng khác như iOS hay Windows Phone. Tuy nhiên, vì công cụ hỗ trợ lập trình và API phải có bản quyền để phát triển ứng dụng, nên nhóm tác giả đã không chọn giải pháp này. Về PhoneGap, đây là một công nghệ Hybrid sử dụng kết hợp Javascript, HTML5, CSS để xây dựng ứng dụng đa nền tảng. Chúng ta có thể sử dụng lợi thế của HTML5, CSS, Javascript để xây dựng một ứng dụng đẹp, mượt mà, tương tác server tốt. Nhưng vì trong ứng dụng này, đòi hỏi việc tương tác phần cứng thiết bị, các dịch vụ chạy ngầm, các file/thư mục trong hệ thống phần cứng ở mức độ cao và yêu cầu quyền root user thì PhoneGap lại không là một sự lựa chọn hợp lý. Vì vậy, khi xem xét đến việc sử dụng chính Android API của Google cung cấp để phát triển ứng dụng, nhóm tác giả đã giải quyết được hai vấn đề trên, đồng thời cũng nhận thấy rằng Android API hiện tại đã được phát triển gần như hoàn chỉnh, nên mọi sự hỗ trợ dành cho việc phát triển là đầy đủ. Kết hợp với cộng đồng phát triển lớn, nên có sự hỗ trợ hay thảo luận khi gặp các vấn đề khó giải quyết trong quá trình thực hiện đề tài. Nhóm đã quyết định chọn Android API làm nền tảng chính để xây dựng ứng dụng này. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  33. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 18 2.6 Android Forensics 2.6.1 Nhận dạng và vô hiệu hóa điện thoại Android Trong thực tế, chúng ta có thể xác định thiết bị điện thoại di động dựa vào hai yếu tố: thiết bị và SIM. Thiết bị được xác định bởi một dãy số gọi là IMEI, ngược lại, thẻ SIM thì được xác định bằng dãy MSISDN. Theo London Taxi 2007, các thiết bị độc lập không thể nhận dạng được nếu thiếu một trong hai thông tin này [16]. Có một vài cách thức bảo mật cơ bản để bảo vệ điện thoại của bạn. Thẻ SIM có chứa một chuỗi password gọi là Personal Identification Number (PIN) thực hiện theo cơ chế ngăn chặn người dùng không được xác thực. Tuy nhiên, việc sử dụng mã PIN chỉ được thực thi khi thẻ SIM được chuyển đổi qua lại giữa các thiết bị. Thẻ SIM vẫn hoạt động bình thường kể cả khi điện thoại hết pin. Người dùng có vẻ như miễn cưỡng sử dụng mã PIN mặc dầu nhà cung cấp dịch vụ có một số biện pháp để ngăn chặn sử dụng SIM của họ một cách trái phép [11]. Theo một khảo sát trên 297 người sử dụng điện thoại di động (thực hiện bởi Clarke and Furnell (2005))[3] có đến 34% người dùng không sử dụng mã PIN và 30% người dùng tin rằng chứng thực mã PIN là phiền phức. Với 66% người dùng còn lại thì: 38% trong số đó quên mã PIN ít nhất một lần và tự khóa thẻ SIM đối với chính mình, 45% sử dụng mã PIN mặc định, 42% thay đổi chúng một lần sau khi mua và chỉ có 13% thay đổi mã PIN nhiều hơn một lần. Thêm vào đó, tất cả các nhà cung cấp dịch vụ đều có thể vô hiệu hóa thẻ SIM nếu bạn yêu cầu. Ở Việt Nam, người dùng có thể dễ dàng vô hiệu hóa thẻ SIM của mình bằng cách cung cấp một số thông tin cần thiết cho nhà cung cấp dịch vụ. Việc này đặc biệt quan trọng để ngăn chặn kẻ xấu lợi dụng hoặc đọc lén các thông tin trên SIM. Tuy nhiên, việc vô hiệu hóa này không đồng thời khóa thiết bị chứa chúng. Điều này tạo điều kiện cho kẻ xấu có thể gắn thẻ SIM khác vào thiết bị và sử dụng. Ngoài ra, một số nhà cung cấp cũng có thể vô hiệu hóa thiết bị nếu như người dùng biết số IMEI của thiết bị. Tuy nhiên một vấn đề nghiêm trọng là rất ít người sử dụng biết được số IMEI của chính họ. Vấn đề thứ hai cần chú ý là không phải số IMEI là duy nhất (khoảng 10% hoặc ít hơn [11]). Do đó việc vô hiệu hóa thiết bị theo số IMEI có thể ảnh hưởng đến những người dùng hợp pháp. Hơn nữa với một số thiết bị chuyên dụng, người dùng có thể thay đổi số GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  34. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 19 IMEI của thiết bị một cách nhanh chóng và hợp lệ. Rõ ràng, việc vô hiệu hóa thẻ SIM chỉ có thể giảm được nguy cơ mất an toàn thông tin trên thẻ SIM, dữ liệu trên thiết bị vẫn có thể bị đọc lén hoặc sử dụng vào mục đích xấu. Việc vô hiệu hóa thiết bị cũng không khả thi. Thực tế này đặt ra vấn đề làm cách nào để có thể vô hiệu hóa dữ liệu trên thiết bị cũng như cảnh báo khi có hành vi thay thế thẻ SIM của thiết bị? 2.6.2 Tổ chức và lưu trữ dữ liệu của hệ điều hành An- droid Các thiết bị Android lưu trữ một lượng dữ liệu đồ sộ về thông tin cá nhân lẫn công việc. Các ứng dụng là nơi lưu trữ và sản sinh chính của những dữ liệu này và bao gồm các loại sau: • Các ứng dụng cốt lõi của hệ điều hành Android. • Các ứng dụng được cài đặt bởi nhà sản xuất thiết bị. • Các ứng dụng được cài đặt bởi các thiết bị mạng không dây. • Các ứng dụng thêm vào của Google/Android. • Các ứng dụng cài đặt bởi người sử dụng, điển hình là từ Google Play (Android Market). Các ứng dụng này lưu trữ dữ liệu tại một trong hai vị trí: lưu trữ tại bộ nhớ trong của thiết bị hoặc lưu trữ tại bộ nhớ ngoài của thiết bị. Khi lưu trữ ứng dụng ở bộ nhớ ngoài (SD Card hay emulated SD Card), người dùng có thể chỉ định vị trí bất kỳ. Ngược lại, lưu trữ dữ liệu ở bộ nhớ trong của thiết bị phải chịu sự quản lý điều hành của Android APIs. Khi một ứng dụng được cài đặt, dữ liệu của ứng dụng này được lưu trữ trong thư mục con của /data/data và được đặt tên với tên package tương ứng. Ví dụ, ứng dụng Gmail với tên package com.google.android.gm, dữ liệu của ứng dụng này sẽ được lưu trữ tại /data/data/com.google.android.gm. Bên trong thư mục dữ liệu của ứng dụng, Android quy định một chuẩn chung cho các thư mục con. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  35. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 20 Bảng 2.2 giới thiệu một số thư mục con chung cần thiết của một ứng dụng lưu trữ tại /data/data. Tên thư mục Mô tả chi tiết shared-prefs Thư mục lưu trữ các biến Shared Preferences theo định dạng xml. lib Thư mục lưu trữ các file thư viện tùy chỉnh cần thiết cho ứng dụng. files Các files của ứng dụng được tạo bởi nhà phát triển. cache Lưu trữ cache files sinh ra bởi ứng dụng (thường là cache files của web browser hoặc các ứng dụng sử dụng WebKit engine. databases Lưu trữ dữ liệu SQLite databases và các journal files. Bảng 2.2: Thư mục con của /data/data/ Android cung cấp năm phương thức lưu trữ dữ liệu cho các ứng dụng: 1. Shared preferences Shared preferences cho phép các lập trình viên lưu trữ các cặp khóa-giá trị (key-value) của những kiểu dữ liệu chính (boolean, float, int, long, string). Các dữ liệu đó được lưu trữ trong các file xml và đặt tại thư mục shared- prefs. Ví dụ, ứng dụng Gmail của Google lưu trữ các biến shared preferences trong file Gmail.xml (hình 2.4). Qua hình trên, chúng ta có thể thấy được tên tài khoản Gmail của người sử dụng được lưu tại file xml này. Hình 2.4: Các biến shared preferences của ứng dụng Gmail GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  36. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 21 2. Các file lưu trữ tại bộ nhớ trong Các ứng dụng có thể lưu trữ dữ liệu trên các files được lưu trữ tại /data/- data/ và nhà phát triển có thể quản lý, thao tác trên những dữ liệu này. Mặc định, những dữ liệu này chỉ có thể truy xuất bởi ứng dụng sinh ra nó, ngay cả người dùng cũng không thể xem được nội dung của file nếu họ không có quyền root. Các lập trình viên có thể chỉnh sửa tùy chọn bảo mật của hệ điều hành để các tiến trình của ứng dụng khác có thể truy xuất và cập nhật lại các files này. Ví dụ về cấu trúc thư mục dữ liệu của ứng dụng Google Maps /data/data/com.google.android.apps.maps (Hình 2.5). (a) Cấu trúc thư mục dữ liệu (b) Cấu trúc thư mục databases Hình 2.5: Cấu trúc thư mục dữ liệu của ứng dụng Google Maps 3. Các file lưu trữ tại bộ nhớ ngoài Phương thức lưu trữ này kém an toàn về bảo mật và vị trí lưu trữ hơn phương thức trên. Ưu điểm về sự thuận tiện có được khi sử dụng SD Cards cũng chính là nguyên nhân gây mất an toàn dữ liệu lớn nhất của phương thức lưu trữ này. Bất kỳ thiết bị nào cũng có thể sử dụng những dữ liệu được lưu trữ tại đây (chẳng hạn như hình ảnh, video, . . . ). Rõ ràng, khách hàng sẽ không hài lòng khi dữ liệu trên SD Cards của họ không sử dụng được giữa các thiết bị. 4. SQLite databases Hệ điều hành Android cung cấp các APIs cho phép các lập trình viên sử GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  37. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 22 dụng SQLite để phát triển ứng dụng. Các files SQLite thường được lưu trữ theo đường dẫn /data/data /databases. Tuy nhiên, không có sự hạn chế nào về sự lưu trữ các file database này. Hình 2.6 cho thấy cấu trúc thư mục databases của ứng dụng Android Browser. Hình 2.6: Cấu trúc thư mục database của ứng dụng Android Browser 5. Network Phương thức lưu trữ này thực sự hữu ích trong thời đại điện toán đám mây ngày nay. Các lập trình viên có thể sử dụng các classes và phương thức trong hai package java.net.* và android.net.* để tương tác với network, web servers. Các ứng dụng tương tác với network cần thiết nhiều mã lệnh, trong khi các dữ liệu có thể không được lưu trữ trên thiết bị. Do đó, thông tin cấu hình và các file database là những thông tin quan trọng cần khai thác nhất đối với các ứng dụng network. Dropbox hiện tại là một ứng dụng file sharing khá phổ biến trên các nhiều nền tảng khác nhau. Trên Android, ứng dụng được cài đặt khoảng 100 triệu lần với gần 175000 người dùng đánh giá 5 sao.1 Sau khi cài đặt, chúng ta có thể tìm thấy thư mục dữ liệu của ứng dụng tại /data/data/- com.dropbox.android. Dữ liệu có thể được phát hiện ở ít nhất bốn trong năm phương thức này [12]. Ngoài ra, Linux kernel và Android stack còn cung cấp thông tin thông qua các 1 Accessed Feb 16, 2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  38. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 23 file logs, debugging và các services. Tất nhiên, mặc định hầu hết những dữ liệu quan trọng chỉ có thể đọc được khi chúng ta có quyền root user. Tận dụng khai thác những dữ liệu này, chúng ta có thể tìm được nhiều thông tin nhạy cảm của người dùng. Điều này giúp ích cho các cơ quan pháp chứng và hỗ trợ người dùng tìm kiếm thiết bị một cách dễ dàng và chính xác hơn. 2.6.3 Android Rooting và ảnh hưởng của nó đến mobile forensics Như đã trình bày ở phần trên các thông tin quan trọng và nhạy cảm của người dùng đều được lưu trữ tại bộ nhớ của thiết bị hoặc thẻ nhớ SD Card. Không giống như các hệ điều hành máy tính, mặc định một ứng dụng Android không thể tự động truy cập đến dữ liệu hoặc các files được tạo bởi một ứng dụng Android khác. Bản chất máy ảo Android chỉ cho phép mỗi ứng dụng chạy trên tiến trình riêng của mình. Bảo mật trên nền tảng Android dựa vào các quyền hạn được gán bởi người dùng hoặc định danh nhóm người dùng trên các ứng dụng. Một ứng dụng không thể can thiệp đến dữ liệu của một ứng dụng khác khi mà nó không được cấp quyền để làm thế1[15]. Ngoài ra, các thông tin được ẩn và không thể can thiệp bởi người dùng thiết bị. Tuy nhiên, nếu người dùng thực hiện rooting thiết bị, việc đọc và tìm kiếm những dữ liệu lại trở thành dễ dàng. Rooting một thiết bị chỉ đơn thuần có nghĩa là cho phép thiết bị đạt được quyền truy cập đến thư mục root (/) và có những quyền hạn của root user. Một số người dùng thích sửa đổi các thiết bị vượt ra ngoài ý định của các nhà sản xuất thiết bị hoặc nhà cung cấp. Họ sử dụng thuật ngữ rooting mang ý nghĩa truy cập được vào thư mục gốc và các quyền hạn để thực hiện chỉnh sửa thiết bị một cách đáng kể nhằm tăng thời lượng sử dụng pin hoặc tăng hiệu suất của thiết bị, cài đặt và chạy các ứng dụng yêu cầu quyền root, sử dụng Wifi Hotspot, cài đặt firmware tùy chỉnh trên thiết bị.2 Dễ nhận thấy, thay đổi dữ liệu theo cách như vậy không phải là những thông tin pháp lý đáng giá và sẽ không được thực hiện trong một cuộc điều tra[15]. Thay vào đó, việc truy xuất và lấy được dữ liệu của những ứng dụng cài đặt trên thiết bị đã rooted rất đáng quan tâm. Đó là những thông tin rất hữu ích cho quá trình điều tra. Thật vậy, Hoog [12] cho biết trình duyệt mặc định Android lưu trữ password 1Những quyền hạn này được khai báo bởi lập trình viên trong file AndroidManifest.xml 2 20android-phone, Accessed Feb 20, 2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  39. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 24 dưới dạng plaintext cùng với dữ liệu về username và đường dẫn URL. Đúng như mong đợi, sau vài bước tìm kiếm, tác giả đã nắm giữ nhiều thông tin tài khoản đã từng sử dụng được sử dụng trên thiết bị (hình 2.7). Bên cạnh đó, các thông tin khác về lịch sử duyệt web, lịch sử tìm kiếm, bookmark cũng được tìm thấy trên một file databases khác (hình 2.8). Điều này là rất hữu ích cho các giám định pháp chứng mặc dù một thực tế bảo mật kém từ góc độ người dùng. Hình 2.7: Android Browser plaintext password (a) Lịch sử duyệt web (b) Các bookmark của trình duyệt Hình 2.8: Các dữ liệu được khai thác từ trình duyệt web Android GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  40. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 25 Tiếp tục tìm kiếm, tác giả phát hiện hai file: - contacts2.db của ứng dụng Phone Contacts theo đường dẫn /data/data/com.android.providers.contacts/databases. - mmssms.db của ứng dụng Messaging theo đường dẫn /data/data/com.android.providers.telephony/databases. Dễ dàng tìm thấy được dữ liệu về thông tin liên lạc, hình ảnh, danh bạ, số điện thoại, email, lịch sử cuộc gọi (Call Logs), thời gian cuộc gọi; các tin nhắn cá nhân, tin nhắn đa phương tiện, thậm chí bao gồm cả những tin nhắn đã bị xóa,. . . . Contacts2.db còn lưu trữ dữ liệu liên lạc của nhiều loại tài khoản khác nhau như Gmail, Exchange, Facebook, Twitter,. . . (hình 2.9). (a) Lịch sử cuộc gọi (Call logs) (b) Danh sách tin nhắn (c) Các tài khoản được đồng bộ Hình 2.9: Các dữ liệu về danh bạ và tin nhắn GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  41. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 26 Một số dữ liệu hữu ích khác có thể khai thác như: • Ứng dụng Gmail với đường dẫn dữ liệu /data/data/com.google.android.gm Mỗi tài khoản Gmail lưu trữ dữ liệu của mình trên những file databases riêng biệt. File lưu trữ được đặt theo định dạng mailstore.xxxx@gmail.com.db với xxxx@gmail.com là tên tài khoản, trong đó bao gồm toàn bộ dữ liệu email của tài khoản đó. Các dữ liệu này đều lưu trữ dưới dạng plain text. Ngoài ra, một số file databases lưu trữ các thông tin phụ như downloads.db, suggestions.db, gmail.db cũng là những dữ liệu cần quan tâm. Ví dụ như bảng conversations lưu trữ dữ liệu về email của chủ tài khoản (hình 2.10). Hình 2.10: Dữ liệu trong ứng dụng Gmail • Ứng dụng Facebook với đường dẫn dữ liệu /data/data/com.facebook.katana Dữ liệu quan trọng nhất cần khai thác đối với ứng dụng này là file fb.db. File này chứa gần như toàn bộ tất cả thông tin quan trọng chỉ trong ba bảng dữ liệu: – friends–data: lưu trữ toàn bộ thông tin kết nối bạn bè của chủ tài khoản, bao gồm: tên đầy đủ, tên hiển thị trên Facebook, hình ảnh đại diện,. . . – user–statuses: lưu trữ toàn bộ các cập nhật trạng thái status của người dùng lên Facebook. – mailbox–messages: lưu trữ toàn bộ tin nhắn cá nhân của người dùng trên Facebook. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  42. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 27 Ngoài ra, chúng ta còn có thể khai thác nhiều thông tin hữu ích khác từ ứng dụng mạng xã hội này. Ví dụ về một số dữ liệu có thể khai thác được từ Facebook (hình 2.11). (a) Dữ liệu về bạn bè trên Facebook (b) Các notifications của người dùng Hình 2.11: Các dữ liệu được khai thác từ Facebook • Ứng dụng Google Maps Ứng dụng lưu trữ nhiều thông tin quan trọng về vị trí, chỉ dẫn tìm đường, các thông tin về địa điểm,. . . . Dữ liệu hữu ích nhất của ứng dụng này là hai file da–destination–history.db và search–history.db. Ngoài ra, các file dữ liệu khác cũng có chứa một số thông tin, tuy nhiên, chúng không thật sự hữu ích trong các phân tích pháp chứng. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  43. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 28 2.7 Các kiến thức cần thiết khác Trong đề tài, tác giả sử dụng PHP làm ngôn ngữ xây dựng web service nhằm phục vụ một số chức năng ứng dụng yêu cầu, đồng thời phát triển service hoàn chỉnh trong tương lai. Có nhiều framework và tác giả đã chọn một framework được đánh giá là ưu việt nhất để xây dựng web service, đó là Yii framework. Trong phần tiếp theo, khóa luận sẽ trình bày các kiến thức cần thiết để xây dụng Web Server cho hệ thống. 2.7.1 Web Service Web service là một phương pháp giao tiếp giữa hai thiết bị điện tử (thường được gọi là client và server) sử dụng giao thức HTTP (Hyper Text Transport Protocol). Theo W3C, web service là một hệ thống phần mềm được thiết kế để hỗ trợ giao tiếp giữa các thiết bị thông qua mạng internet.1 Điểm đặc trưng của web service là ứng dụng có thể giao tiếp với server một cách độc lập ngôn ngữ, nền tảng, theo chuẩn mở do sử dụng HTTP, XML và được phân hóa rõ ràng. Kiến trúc web service được mô tả ở hình 2.12. Web service được chia làm hai Hình 2.12: Kiến trúc web service nhóm chính là web service dựa trên nền tảng SOAP và web service dựa trên kiến trúc REST. SOAP được hiểu là viết tắt của cụm từ Simple Object Access Protocol, tuy nhiên hiện nay nó được biết đến với tên là Service Oriented Architecture (SOA) Protocol. SOAP là một giao thức giao tiếp có cấu trúc như XML và mã hóa 1 Accessed 05-Feb-2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  44. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 29 thành định dạng chung cho các ứng dụng trao đổi với nhau. Ý tưởng bắt đầu từ Microsoft và phần mềm Userland, trải qua nhiều lần thay đổi, hiện tại là phiên bản SOAP 1.2 với nhiều ưu điểm vuợt trội hơn bản SOAP 1.1. SOAP được xem như là cấu trúc xương sống của các ứng dụng phân tán xây dựng từ nhiều ngôn ngữ, hệ điều hành khác nhau. SOAP là một đặc tả việc sử dụng các tài liệu XML theo dạng các thông điệp. Bản thân SOAP không định ra các ngữ nghĩa ứng dụng hoặc cách cài đặt chi tiết. SOAP cung cấp một cơ chế đơn giản và gọn nhẹ cho việc trao đổi thông tin có cấu trúc và định dạng giữa các thành phần trong một môi trường phân tán sử dụng XML. SOAP được thiết kế dựa trên những chuẩn nhằm giảm chi phí tích hợp các hệ thống phân tán xây dựng trên nhiều nền tảng khác nhau ở mức càng thấp càng tốt. Đặc tả về SOAP định nghĩa một mô hình trao đổi dữ liệu dựa trên 3 khái niệm cơ bản: Các thông điệp là các tài liệu XML, chúng được truyền đi từ bên gửi đến bên nhận, bên nhận có thể chuyển tiếp dữ liệu đến nơi khác. REST là viết tắt của cụm từ Representation State Transfer (chuyển giao trạng thái biểu diễn). REST xác định một nhóm các nguyên lý kiến trúc, bằng cách đó bạn có thể thiết kế các dịch vụ mạng, chú trọng vào các tài nguyên hệ thống, bao gồm các trạng thái tài nguyên được định dạng như thế nào và được chuyển tải qua HTTP thông qua một lượng lớn người dùng và được viết bởi những ngôn ngữ khác nhau. Có nhiều kiến trúc dựa trên REST và tiêu biểu là kiến trúc RESTful. Hiện nay, REST gần như chiếm vị trí của thiết kế giao diện dựa trên SOAP hay WSDL vì nó là cách thức đơn giản hơn rất nhiều để sử dụng.1 Một thiết kế của dịch vụ mạng REST sẽ tuân theo bốn nguyên lý cơ bản sau: • Sử dụng các phương thức HTTP một cách rõ ràng. • Phi trạng thái. • Hiển thị cấu trúc thư mục như URIs. • Chuyển đổi JavaScript Object Notation (JSON) và XML hoặc cả hai. 1 Accessed Feb. 5, 2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  45. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 30 2.7.2 Yii framework Yii là một PHP framework được xây dựng bởi Qiang Xue, để phát triển các ứng dụng web quy mô lớn dựa trên nền tảng component (thành phần sử dụng lại). Yii cho phép tái sử dụng tối đa các thành phần của hệ thống (ứng dụng) để tăng tốc độ viết ứng dụng. Yii là viết tắt của từ “Yes, it is!” Hoặc cũng có thể là viết ngắn gọn 3 chữ cái đầu của Easy (dễ dàng), Efficient (hiệu suất) và Extensible (khả năng mở rộng). • Lịch sử của Yii Tiền thân của Yii chính là Prado framework, được phát triển bởi Qiang Xue vào khoảng tháng 1/2008. Sau gần 1 năm phát triển, tới 8/12/2008, bản Yii đầu tiên đã được phát hành và nhanh chóng được mọi người đón nhận. Yii đang nổi lên như là một framework tốt bởi các tính năng của nó mang lại. Ưu điểm của Yii là tính đơn giản trong cách viết kết hợp với thế mạnh “scripting” của PHP và cơ chế mảng index (associative array). Yii cũng được viết bởi những người viết “thực tế” hơn Zend nên có sẵn những công cụ mạnh mẽ nhất cho người viết ứng dụng. • Yêu cầu hệ thống Web server hỗ trợ PHP 5.1.0+. Lập trình viên yêu cầu phải có kiến thức căn bản về lập trình hướng đối tượng. • Sử dụng Yii tốt nhất khi nào? Yii là framework MVC, có kiến trúc OOP và hướng component nên mức độ tái sử dụng giữa các project rất cao. Yii đặc biệt chạy nhanh hơn Zend và Symfony. Yii, nói chung, là một framework phát triển ứng dụng Web nên có thể dùng để viết mọi loại ứng dụng Web. Yii nhẹ và được trang bị giải pháp cache tối ưu nên nó đặc biệt hữu dụng cho ứng dụng web có dung lượng dữ liệu trên đường truyền lớn như web portal, forum, CMS, e-commerce,. . . • So sánh Yii với các framework khác – Giống như hầu hết các PHP framework, Yii là một MVC framework. – Yii tốt hơn các framework khác bởi tính hiệu quả, nhiều tính năng và có tài liệu hướng dẫn đầy đủ. Yii được thiết kế cẩn thận từ ban đầu để GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  46. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 31 đáp ứng nhu cầu phát triển ứng dụng web nghiêm ngặt. Yii là kết quả của kinh nghiệm phát triển ứng dụng Web lâu năm của các tác giả và sự phân tích kỹ lưỡng, tận dụng những điểm mạnh của các framework khác. Yii kết hợp những ý tưởng và những kiến thức của các framework và ứng dụng lập trình web đi trước nó. 2.7.3 Ozeki SMS Gateway Trong chương trình, tác giả có sử dụng phần mềm Ozeki SMS Gateway1 để sử dụng làm tổng đài số, thực hiện nhắn tin đến số điện thoại người dùng khi nhận được yêu cầu. Các thiết bị cần thiết để lập tổng đài số này gồm: một thiết bị USB 3G, một SIM còn tài khoản sử dụng, máy tính có cài đặt phần mềm và phần mềm đang ở trạng thái kích hoạt. Sau khi cài đặt và cấu hình,2 ta có thể sử dụng để làm tổng đài thực thi nhận hoặc gởi tin nhắn. Có nhiều cách thức làm việc với phần mềm để thực thi nhắn tin, và tác giả đã chọn cách thực thi nhắn tin theo dạng quét cơ sở dữ liệu để nhận các record mới thêm vào bảng dữ liệu (ở đây là bảng ozekimessageout) với trạng thái (cột status) là “send”. Phần mềm sau khi được cài đặt và kích hoạt sẽ hoạt động thực hiện quét cơ sở dữ liệu sau khoản thời gian n phút được thiết lập trong quá trình cấu hình tổng đài. Đây cũng là một giải pháp để thực thi nhắn tin quảng cáo hiện nay. 2.8 Thảo luận Như đã tìm hiểu ở các phần trên, việc rooting thiết bị giúp người dùng có được quyền hạn của root user và qua đó cho phép người sử dụng tùy chỉnh thiết bị vượt ra ngoài những quy định của các nhà thiết kế thiết bị hoặc nhà cung cấp. Điều này có thể giúp thiết bị gia tăng một cách đáng kể thời lượng sử dụng pin và hiệu suất của thiết bị, cài đặt và chạy các ứng dụng yêu cầu quyền root, cài đặt firmware và hệ điều hành tùy chỉnh. Điều này mang lại những trải nghiệm mới mẻ, vượt trội cho người dùng. Tuy nhiên, việc rooting thiết bị Android có thể gây ra nguy cơ bảo mật cao. Dữ liệu nhạy cảm có thể bị khai thác bằng nhiều cách thức khác nhau mà người dùng không thể kiểm soát được. Tóm lại, nếu người dùng không thể quản lý được thiết bị của mình, họ không nên rooting. Ngược lại, nếu bạn muốn cảm nhận sức mạnh thật sự của thiết bị và hệ điều hành Android, hãy rooting và cài đặt các phần mềm quản lý bảo 1Download tại 2Tham khảo tại GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  47. CHƯƠNG 2. KHẢO SÁT HIỆN TRẠNG VÀ CÁC KIẾN THỨC LIÊN QUAN 32 mật cho chúng. Mặc dầu vậy, trong bất cứ trường hợp nào, việc cài đặt một ứng dụng quản lý bảo mật trên thiết bị luôn là một đề nghị cần được quan tâm. 2.9 Kết chương Qua khảo sát, phân tích các số liệu, các tác giả đã nêu bật lên nguy cơ mất an toàn thông tin đối với điện thoại di động và những hậu quả của nó. Từ đó, các tác giả đã tìm hiểu về đặc tính của các sản phẩm HOT Products và các đặc tính của một sản phẩm an toàn IN SAFE HANDS nhằm phát triển một hệ thống quản lý bảo mật dữ liệu hoàn chỉnh. Tiếp tục, các tác giả đã khảo sát các hệ thống và phần mềm đã phát triển trước đó, định hướng hệ thống cần phát triển mạnh về tính năng nào; các tác giả cũng đã đi tìm hiểu sâu về hệ điều hành Android, nghiên cứu lĩnh vực mobile forenics về cách thức tổ chức và lưu trữ dữ liệu trên Android, lợi ích và nguy cơ từ rooting thiết bị. Chương tiếp theo sẽ đề cập đến quá trình thiết kế và phát triển hệ thống có thể bảo vệ dữ liệu và thiết bị cũng như tận dụng ưu thế của những thiết bị rooted. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  48. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 33 Chương 3: Thiết kế hệ thống 3.1 Đặc tả yêu cầu 3.1.1 Mục đích, phạm vi của hệ thống 3.1.1.1 Mục đích xây dựng hệ thống Tác giả đặt tên cho hệ thống quản lý bảo mật sắp phát triển là TUI Security với từ TUI được lấy từ tên gọi của chú chim Tui, một loài chim ở New Zealand (hình 3.1). Chim Tui thông minh và náo nhiệt.1 Điều này giống như các đặc tính mà hệ thống sắp được xây dựng. Ngoài ra, TUI Security còn có thể diễn dịch như là UIT Security - ứng dụng bảo mật của sinh viên trường Đại học Công Nghệ Thông Tin. Hình 3.1: Chim Tui - New Zealand 1 Online; Accessed 01-Mar-2013 GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  49. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 34 Việc xây dựng hệ thống TUI Security nhằm các mục tiêu sau: • Giúp người sử dụng điện thoại thông minh nền tảng Android giảm thiểu nguy cơ mất an toàn thông tin trong trường hợp điện thoại bị trộm cắp, thất lạc, hư hỏng. • Giúp người sử dụng điện thoại thông minh quản lý dữ liệu và thiết bị của mình tốt hơn. • Giúp các cơ quan chức năng khai thác dữ liệu từ những chiếc điện thoại bị trộm, phục vụ công tác điều tra. • Giúp nghiên cứu về vấn đề android forensics, cũng như về lợi ích và những nguy cơ khi rooting thiết bị Android. 3.1.1.2 Phạm vi của hệ thống Phần mềm ứng dụng được xây dựng trên nền tảng Android 4.0+ sử dụng Android SDK. Hệ thống Web Server được xây dựng trên nền tảng Yii Frame- work. Các chức năng điều khiển hệ thống hoạt động trên hạ tầng mạng GSM, UMTS và hệ thống định vị toàn cầu GPS. Một số chức năng chỉ hoạt động đối với thuê bao của nhà mạng Viettel, Mobifone, VinaPhone hoạt động trên đất nước Việt Nam. Hệ thống được xây dựng là kết quả của việc khảo sát yêu cầu, tìm hiểu, nghiên cứu các tài liệu liên quan trong chương2. 3.1.2 Yêu cầu của hệ thống Trong phần này, khóa luận đề cập đến các yêu cầu khi thiết kế hệ thống TUI Security. Các yêu cầu được đưa ra thỏa mãn các đặc tính của sản phẩm an toàn IN SAFE HANDS mà tác giả đã đề cập trong chương2. 3.1.2.1 Yêu cầu chức năng TT Tên chức năng Mô tả chi tiết Hệ thống quản lý người sử dụng bằng tài khoản đăng nhập; người sử dụng quản lý ứng dụng 1 Quản trị hệ thống bằng mã PIN xác nhận. Người sử dụng phải có tài khoản đăng nhập mới có thể sử dụng các tính năng của hệ thống. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  50. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 35 Hệ thống yêu cầu người sử dụng cấu hình mã PIN và các thông tin điều khiển cần thiết. Cho 2 Thiết lập hệ thống phép thiếp lập và dễ dàng thay đổi các thông và cấu hình số. Hệ thống cung cấp chức năng hỗ trợ khẩn cấp trong trường hợp điện thoại vừa bị trộm, cướp. 3 Chức năng hỗ trợ Chức năng này bao gồm các tính năng cơ bản, khẩn cấp cần thiết để vô hiệu hóa dữ liệu trên thiết bị một cách an toàn, nhanh chóng nhất. Người dùng có thể quản lý quyền hạn và phạm vi ảnh hưởng của ứng dụng đối với thiết bị. 4 Quản lý ứng dụng Ứng dụng được chia nhỏ thành các cụm chức năng riêng biệt. Người dùng có thể kích hoạt hoặc vô hiệu hóa các cụm chức năng này dễ dàng, nhanh chóng. Cho phép điều khiển thiết bị điện thoại di động Android thông qua tin nhắn SMS. Các 5 Chức năng điều tin nhắn có thể là tin nhắn lệnh thuần hoặc là khiển thiết bị từ xa tin nhắn lệnh được nhúng vào tin nhắn quảng cáo. Cho phép khai thác thông tin vị trí của thiết bị thông qua định vị GPS hoặc 3G. Ngoài ra 6 Chức năng tìm kiếm còn có thể lấy thông tin và dữ liệu của thuê thiết bị bao hiện đang sử dụng thiết bị. Cho phép cảnh báo bằng âm thanh báo động và khóa thiết bị khi có những hành vi sử dụng 7 Cảnh báo và phòng thiết bị trái phép (như hành động thay thế chống trộm SIM của thiết bị). Báo động được điều khiển từ xa hoặc tự động. Âm thanh báo động kể cả khi thiết bị trong chế độ im lặng. Trong khi báo động, hệ thống gởi thông báo đến người sử dụng. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  51. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 36 Ứng dụng hoạt động một cách tự động thông qua các điều khiển từ xa. Ứng dụng cũng được 8 Tự động, an toàn và bảo vệ an toàn và bảo mật, không cho phép bảo mật gỡ bỏ ứng dụng đối với đối tượng người dùng không được chứng thực. Cho phép sao lưu hoặc phục hồi các dữ liệu quan trọng và nhạy cảm (danh bạ, tin nhắn) 9 Sao lưu, phục hồi thủ công hoặc được điều khiển từ xa. dữ liệu 10 Khai thác thông tin Cho phép nhận các điều khiển từ xa để lấy dữ liệu của thiết bị. Bảng 3.1: Bảng đặc tả yêu cầu chức năng của hệ thống 3.1.2.2 Yêu cầu kỹ thuật Dưới đây là bảng yêu cầu kỹ thuật của hệ thống cần tuân thủ khi thiết kế và hiện thực (bảng 3.2) TT Nội dung yêu cầu Ứng dụng hoạt động trên thiết bị, xác thực người dùng thông qua Web Server. Hệ thống cho phép lưu trữ và quản lý thông 1 tin, cấu hình của từng tài khoản người sử dụng. Giao diện ứng dụng được thiết kế khoa học, hợp lý, thân thiện với người dùng, hoạt động mượt mà, tăng cường trải nghiệm 2 người dùng. Thiết kế giao diện tuân thủ các chuẩn thiết kế giao diện của Google. 3 Hệ thống phải đáp ứng khả năng an toàn, bảo mật theo hai mức: mức xác thực người sử dụng, mức xác thực cơ sở dữ liệu. 4 Toàn bộ các dữ liệu và các thông số cấu hình cần lưu trữ, quản lý chặt chẽ. Phải có cơ chế sao lưu dữ liệu, các thông tin cấu hình đảm bảo nhanh chóng đưa hệ thống hoạt động trở lại trong trường 5 hợp có sự cố xảy ra. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  52. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 37 6 Hệ thống phải có cơ chế hạn chế phạm vi ảnh hưởng của ứng dụng trên thiết bị (theo tùy chọn của người dùng). 7 Các tính năng cảnh báo, bảo vệ dữ liệu, chống trộm phải có khả năng tự hoạt động một cách độc lập, ẩn đối với người sử dụng. 8 Ứng dụng phải được bảo vệ an toàn, ẩn đối với người dùng, chỉ cho phép người dùng hợp pháp gỡ bỏ ứng dụng. 9 Ứng dụng cho phép thay đổi thiết lập cấu hình an toàn, nhanh chóng. Bảng 3.2: Bảng yêu cầu kỹ thuật của hệ thống 3.1.2.3 Yêu cầu thiết bị Để hệ thống có thể chạy thành công các tính năng cung cấp, thì điện thoại của người dùng phải thỏa mãn các điều kiện sau: • Điện thoại phải được rooted. Điều này giúp khai thác tốt nhất dữ liệu của thiết bị và thực thi các điều kiện bảo mật ứng dụng hoạt động. • Điện thoại chạy hệ điều hành Android 4.0+ để được hỗ trợ tốt nhất về giao diện và các gói thư viện cung cấp. • Số dư tài khoản SIM phải đủ để thực hiện các chức năng liên quan đến tin nhắn SMS. • Điện thoại hỗ trợ cảm biến gia tốc (accelerator), microphone còn hoạt động tốt. Mục đích sử dụng cho việc thực thi chức năng lắng nghe từ xa. • Để đạt được kết quả chính xác trong việc thu thập vị trí, thì người dùng cần hỗ trợ chương trình bằng cách kích hoạt GPS trên thiết bị. • Ngoài ra, điện thoại của người dùng cũng cần phải kết nối với thẻ nhớ, mục đích tạo các file lưu trữ tạm thời khi chương trình hoạt động. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  53. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 38 3.2 Thiết kế hệ thống 3.2.1 Thiết kế kiến trúc hệ thống 3.2.1.1 Mô hình hệ thống Hệ thống quản lý bảo mật TUI Security bao gồm hai thành phần: Web Server và ứng dụng TUI Security chạy trên nền tảng Android (hình 3.2). Web Server hoạt động trên môi trường Internet, làm nhiệm vụ quản lý tài khoản và chứng thực người dùng. Ứng dụng TUI Security hoạt động trên thiết bị với hai nhiệm vụ chính: điều khiển thiết bị từ xa và thực thi các điều khiển nhận được. Trong hình 3.2, thiết bị “Intermediate Phone” thực hiện chức năng điều khiển thiết bị từ xa; thiết bị “Lost/Stolen Phone” thực hiện chức năng lắng nghe, thực thi các điều khiển và trả về kết quả cho “Intermediate Phone”. Cụ thể, ứng dụng cho phép người dùng chủ động gửi đi các tin nhắn chứa mã lệnh điều khiển thông qua các nhà dịch vụ mạng. Bên cạnh đó, ứng dụng cũng phải liên tục lắng nghe các tin nhắn đến và phân tích cấu trúc tin nhắn đó. Nếu tin nhắn đến là một tin nhắn điều khiển, ứng dụng sẽ thực thi điều khiển đó và trả về kết quả (thông qua tin nhắn trả lời hoặc email). Web Server Mail Server Internet Internet Listen SMS relay Send Control SMS Receive Result SMS Send Result SMS Intermediate Phone Base Station Lost/Stolen Phone Hình 3.2: Mô hình hệ thống TUI Security GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  54. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 39 3.2.1.2 Kiến trúc ứng dụng TUI Security Dựa vào mô hình hệ thống trong phần trình bày trên, tác giả thiết kế kiến trúc cho ứng dụng TUI Security như hình 3.3. Giao diện chính Giao diện cấu hình Giao diện điều khiển Giao diện chức năng Bộ phận thực thi điều khiển Bộ phận điều khiển thiết bị Bộ phận lắng Bộ phận xác thực Bộ phận xử lý Bộ phận soạn nghe điều khiển tương tác thảo câu lệnh Bộ phận phân Bộ phận thực thi Bộ phận truy Bộ phận chuyển tích điều khiển xuất dữ liệu tiếp Bộ phận điều Bộ phận xác thực Bộ phận lưu trữ khiển ứng dụng Hình 3.3: Kiến trúc ứng dụng TUI Security Toàn thể ứng dụng chia thành hai thành phần: phần giao diện người dùng và phần ứng dụng. • Phần giao diện người dùng bao gồm các giao diện tương tác, giao diện điều khiển, giao diện cấu hình ứng dụng và các giao diện chức năng khác. • Phần ứng dụng: Ứng dụng TUI Security hoạt động trên thiết bị với hai nhiệm vụ chính: điều khiển thiết bị từ xa và thực thi điều khiển nên phần ứng dụng chia thành hai bộ phận chính: Bộ phận thực hiện điều khiển thiết bị từ xa và bộ phận thực thi điều khiển nhận được. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  55. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 40 – Bộ phận điều khiển thiết bị: Thực hiện nhiệm vụ phân tích yêu cầu của người dùng, soạn thảo tin nhắn điều khiển chứa câu lệnh tương ứng với yêu cầu của người dùng và gửi tin nhắn điều khiển đó tới thiết bị đích. – Bộ phận thực thi lệnh: Thực hiện nhiệm vụ lắng nghe và phân tích các tin nhắn đến thiết bị. Nếu tin nhắn đến là tin nhắn điều khiển, bộ phận này tiếp tục xác thực với mã PIN của ứng dụng và thực thi lệnh điều khiển khi xác thực mã PIN thành công. – Ngoài ra, thành phần ứng dụng còn chứa các bộ phận khác thực hiện nhiệm vụ xác thực người dùng, cảnh báo và điều khiển ứng dụng tự động, bộ phận lưu trữ các thông tin và cấu hình. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  56. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 41 3.2.2 Thiết kế Use Case Diagram 3.2.2.1 Danh sách tác nhân Các đối tượng giao tiếp với hệ thống bao gồm (hình 3.4): Web User User Phone Owner Intermediate User Hình 3.4: Danh sách các tác nhân sử dụng hệ thống • Phone Owner: là những người tương tác trực tiếp với ứng dụng trên thiết bị của họ. Đây là thành phần cài đặt và sử dụng hệ thống trên thiết bị và là tác nhân quan trọng nhất của hệ thống. • Web User: là thành phần sử dụng các dịch vụ hệ thống thông qua website. Web User có thể là Phone Owner sử dụng các dịch vụ web. • Intermediate User: là thành phần người sử dụng trung gian. Thành phần này được hiểu như là người sử dụng các tính năng của hệ thống thông qua các điện thoại di động trung gian. Intermediate User cũng có thể là Phone Owner sử dụng các thiết bị khác để điều khiển thiết bị của mình. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  57. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 42 3.2.2.2 Use Case Diagram Các tác nhân trong phần trên sẽ sử dụng các use case như hình 3.5. Register Account Setup PIN > Web User > Login App Setup > Setup buddy > Unlock app Input PIN User Phone Owner Enable/Disable Find the Phone Service Setting Intermediate User Remote Wipe Backup & Restore > Get Data > Remote Control Device > Control Device Hình 3.5: Use Case Diagram Các use case của hệ thống phản ánh việc thiết kế chức năng hệ thống phù hợp với các yêu cầu chức năng trong phần 3.1.2. Do đó, trong khóa luận này tác giả chỉ đề cập đến việc đặc tả hai use case quan trọng: Login App và Remote Control Device. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  58. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 43 • Use case Login App (hình 3.6) Hình 3.6: Use case Login App Use Case Login App Mô tả Use Case này mô tả hành động sử dụng tài khoản đăng nhập vào ứng dụng. Tác nhân Phone Owner Dòng sự kiện - Người sử dụng sau khi đăng ký tài khoản thành công. - Người sử dụng đăng nhập ứng dụng bằng tài khoản. Các điều kiện đặc biệt Không có Tiền điền kiện Người sử dụng đã đăng ký tài khoản ứng dụng. Hậu điều kiện - Ứng dụng được toàn quyền sử dụng. - Các thông số được cấu hình thành công và được lưu trữ. - Nếu xác thực tài khoản không thành công, hiển thị thông tin hướng dẫn người dùng. Ngoại lệ Thông báo lỗi khi xác thực tài khoản không thành công hoặc khi không có kết nối internet. Bảng 3.3: Đặc tả Use Case Login App GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  59. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 44 • Use case Remote Control Device (hình 3.7) Hình 3.7: Use case Remote Control Device Use Case Send Control Command Mô tả Use Case này mô tả hành động người sử dụng gửi tin nhắn điều khiển đến một thiết bị khác. Tác nhân - Phone Owner - Intermediate User Dòng sự kiện - Người sử dụng chọn tính năng điều khiển thiết bị của ứng dụng. - Người sử dụng cung cấp thông tin về số điện thoại của thiết bị cần điều khiển (target number) và mã PIN của ứng dụng TUI Security được cài đặt trên thiết bị đó (target PIN). Các điều kiện đặc biệt Không có. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  60. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 45 Tiền điều kiện - Ứng dụng xác thực người dùng thành công. - Thẻ SIM gắn trên thiết bị phải còn đủ tài khoản để thực hiện gửi tin nhắn. - Ứng dụng phải cấu hình đầy đủ các thông tin yêu cầu. Hậu điều kiện - Ứng dụng gửi tin nhắn điều khiển thành công. Ngoại lệ - Hiển thị thông báo lỗi khi người dùng không cung cấp target number và target PIN. Hệ thống yêu cầu người sử dụng cung cấp lại các thông tin này. - Thông báo lỗi khi người dùng chưa cấu hình các thông tin của ứng dụng đầy đủ. Thoát khỏi tính năng, hiển thị màn hình điều khiển thiết bị. Bảng 3.4: Đặc tả Use Case Send Control Command GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  61. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 46 3.3 Thiết kế sơ đồ khối và giải thuật Trong phần này, tác giả tiến hành thiết kế phần sơ đồ khối và nêu lên các giải thuật để giải quyết các vấn đề và các chức năng cần thực thi trong chương trình. 3.3.1 Các tính năng cơ bản Ứng dụng cung cấp các tính năng cơ bản luôn hoạt động khi ứng dụng được cài đặt vào thiết bị mà không cần kích hoạt các dịch vụ cho phép thực thi như các tính năng điều khiển. Các tính năng cơ bản của ứng dụng cung cấp cho người dùng bao gồm: sao lưu và phục hồi dữ liệu (danh bạ và tin nhắn) trực tiếp trên thiết bị, thực thi các lệnh hủy dữ liệu trong trường hợp khẩn cấp (dữ liệu trên SD card, các tài khoản ứng ụng Yahoo, Facebook, dữ liệu Youtube, dữ liệu Maps, danh bạ, tin nhắn). Giải thuật cho tính năng sao lưu dữ liệu tin nhắn và danh bạ trực tiếp từ thiết bị đơn giản là duyệt qua file cơ sở dữ liệu chứa tin nhắn SMS và danh bạ của người dùng trong thư mục cài đặt ứng dụng (/data/data/com.android.providers.contacts/databases/contact2.db đối với dữ liệu danh bạ và /data/data/com.android.providers.telephony/databases/mmssms.db đối với dữ liệu tin nhắn), sau đó copy file này lưu trữ tại SD card, đồng thời gởi file thu thập được về địa chỉ email đã được cài đặt trước đó (nếu không được thiết lập, địa chỉ email mặc định là địa chỉ email của thành viên nhóm). Ngược lại, đối với tính năng phục hồi dữ liệu tin nhắn và danh bạ trực tiếp từ thiết bị, chương trình sẽ cho phép người dùng duyệt qua thẻ nhớ để tìm file sao lưu và copy (ghi đè) file này vào thư mục chứa file cơ sở dữ liệu của ứng dụng danh bạ và tin nhắn. Trong trường hợp khẩn cấp khi người dùng muốn hủy dữ liệu trên thiết bị, người dùng có thể nhắn tin tới điện thoại của mình với tín hiệu khẩn cấp kèm theo mật khẩu điều khiển, chương trình sẽ chứng thực mật khẩu điều khiển nhận được. Sau khi chứng thực thành công, chương trình sẽ thực thi các chức năng được hỗ trợ mà không cần kiểm tra các dịch vụ này có được cung cấp hay không. Trong trường hợp này, chương trình sẽ thực thi các nhiệm vụ sau: xóa toàn bộ dữ liệu trên SD card, xóa SMS, xóa danh bạ, xóa các tài khoản ứng dụng của người dùng (yahoo, facebook, email, tài khoản google, nếu người dùng có sử dụng các ứng dụng này). Các tính năng xóa dữ liệu ứng dụng và GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  62. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 47 xóa cơ sở dữ liệu tin nhắn/danh bạ hoạt động trên các thiết bị đã được rooted và chương trình truy cập hệ thống dưới quyền root user (sử dụng các lệnh hệ thống để thực thi). Sơ đồ khối của tính năng nhận và thực thi chức năng trong trường hợp khẩn cấp được mô tả trong hình 3.8. Bắt đầu Tin nhắn khẩn cấp. Kèm mật khẩu điều khiển Chứng thực Sai mật khẩu điều khiển Đúng Xóa dữ liệu SD Điện thoại card đã rooted Đúng Xóa dữ liệu các ứng dụng Xóa dữ liệu tin Yahoo, Facebook, nhắn/danh bạ Youtube, Maps Kết thúc Hình 3.8: Sơ đồ khối xử lý trong trường hợp khẩn cấp GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  63. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 48 3.3.2 Tính năng điều khiển Chương trình cung cấp tính năng điều khiển từ xa để hỗ trợ người dùng trong trường hợp họ không thể tương tác trực tiếp với thiết bị. Tính năng này được thực thi thông qua việc nhắn tin SMS từ một thiết bị khác đến điện thoại muốn điều khiển kèm theo mật khẩu chứng thực. Chức năng này được cung cấp có thể phục vụ trong việc điều tra tội phạm khi sử dụng ứng dụng như một đặc vụ ngầm theo dõi diễn biến hoạt động và khi đó các thông tin dữ liệu thu thập được sẽ làm bằng chứng pháp lý có giá trị cao. Các tính năng điều khiển chương trình cung cấp gồm có: nhắn tin sao lưu và xóa tin nhắn, danh bạ; nhắn tin lấy thông tin dữ liệu; nhắn tin xóa dữ liệu trên SD card; nhắn tin thực thi lắng nghe (recording); nhắn tin phát âm thanh cảnh báo và khóa màn hình. Để thực thi các tính năng điều khiển, ứng dụng phải được kích hoạt dịch vụ cho phép thực thi các lệnh điều khiển được gởi qua SMS dạng tin nhắn quảng cáo. Sau khi nhận được các tin nhắn quảng cáo, kèm theo mật khẩu điều khiển (là mã PIN), chương trình tiến hành chứng thực mật khẩu và phân tích tin nhắn để nhận các mã lệnh điều khiển. Một tin nhắn ứng với một lệnh điều khiển. Sau đó sẽ thực thi ngầm các chức năng yêu cầu nếu thỏa các điều kiện thực thi. Thuật giải các chức năng sao lưu dữ liệu tin nhắn, danh bạ sau khi nhận được tín hiệu điều khiển từ xa là: duyệt qua cơ sở dữ liệu, sau đó đọc dữ liệu và ghi vào file XML với định dạng JSON, tức mỗi hàng là một object và các giá trị ở các cột của hàng đó là một object con của nó. Sau đó lưu file XML này lại trong thư mục của chương trình trên thẻ SD card. Sau đó, chương trình sẽ kiểm tra kết nối mạng và gởi kết quả về địa chỉ email người dùng đã đăng ký trước đó và xóa file sau khi gởi thành công. Nếu không có kết nối mạng, file thu thập được cũng sẽ bị xóa bỏ. Đối với tin nhắn điều khiển yêu cầu lấy thông tin người dùng, các thông tin này được chứa trong các cơ sở dữ liệu ở thư mục cài đặt, tùy vào từng loại thông tin muốn lấy: Yahoo, Facebook, SMS, Contact, . . . mà chương trình sẽ quyết định thực thi. Ứng dụng sẽ truy cập hệ thống dưới quyền root user để vào các thư mục chứa các file cơ sở dữ liệu ứng dụng để lấy về các dữ liệu cần thiết. Các thư mục lưu file cơ sở dữ liệu: • Danh bạ: /data/data/com.android.providers.contacts/databases/contact2.db. • SMS: /data/data/com.android.providers.telephony/databases/mmssms.db. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  64. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 49 • Dữ liệu Google Maps: /data/data/com.google.android.apps.maps/databases/search_history.db. • Dữ liệu Youtube: /data/data/com.google.android.youtube/databases/history.db • Dữ liệu ứng dụng Facebook: /data/data/com.facebook.katana/databases/fb.db. • Dữ liệu ứng dụng Yahoo Messenger: /data/data/com.yahoo.mobile.client.android.im/databases/mesenger.db. • Calendar: /data/data/com.android.providers.calendar/databases/calendar.db. • Thông tin tài khoản: /data/system/accounts.db Sơ đồ khối xử lý khi nhận tin nhắn điều khiển lấy thông tin dữ liệu ứng dụng hoặc xóa dữ liệu trên SD card được mô tả như trong hình 3.9. Làm sao biết những gì đang diễn ra xung quanh thiết bị khi không mang bên mình? Hoặc khi muốn dùng thiết bị để chia sẻ âm thanh thực cho người khác. Người dùng có thể sử dụng tính năng lắng nghe chương trình cung cấp bằng cách gởi tin nhắn với lệnh điều khiển thực thi việc lắng nghe âm thanh và gởi kết quả về email để theo dõi. Thuật giải cho chức năng lắng nghe được xây dựng dựa trên việc kích hoạt dịch vụ chạy ngầm tương tác phần cứng thiết bị là microphone để lắng nghe những âm thanh xung quanh thiết bị. File kết quả sẽ được lưu lại sau khoảng thời gian được người dùng cài đặt trước đó và nó sẽ được gởi về email để người dùng có thể theo dõi nếu có kết nối mạng. Có 2 cách để kết thúc hành động lắng nghe của thiết bị là: • Sau khi được kích hoạt lắng nghe, cảm biến gia tốc được kích hoạt để lắng nghe sự tương tác trên thiết bị. Nếu sự tương tác này lớn hơn độ nhiễu cho phép của ứng dụng và nó xảy ra lớn hơn khoảng thời gian giới hạn, hành động lắng nghe sẽ được kết thúc. • Hành vi lắng nghe sẽ được kết thúc sau khi hết thời gian lắng nghe mà người dùng đã cài đặt trước. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  65. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 50 Bắt đầu Nhận SMS điều khiển. Kèm mật khẩu điều khiển Sai Chứng thực mật khẩu Đúng Sao lưu tin nhắn/danh Xóa dữ liệu SD card bạ Điện thoại đã Sai rooted Đúng Truy cập hệ thống lấy dữ liệu ứng dụng Có Không Kết nối mạng Gởi email (có đính kèm file Xóa file thu thập được thu thập được) Kết thúc Hình 3.9: Sơ đồ khối xử lý khi nhận tin nhắn điều khiển lấy thông tin trên thiết bị Sơ đồ khối xử lý khi nhận tin nhắn thực thi lắng nghe và điều kiện kết thúc lắng nghe được mô tả trong hình 3.10 và hình 3.11. Theo hình 3.10, sau khi chứng thực và kiểm tra dịch vụ được kích hoạt hay chưa? Nếu không thỏa sẽ kết thúc; ngược lại, nếu thỏa sẽ tiến hành bật microphone và lắng nghe. Kết quả được ghi vào file có định dạng .3gp. Chương trình sẽ kiểm tra điều kiện kết thúc (được mô tả trong sơ đồ khối 3.11) để kết GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  66. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 51 Bắt đầu Nhận tin nhắn điều khiển. Kèm mật khẩu chứng thực Chứng thực Sai mật khẩu Đúng Dịch vụ được Sai kích hoạt Đúng Bật microphone và thực thi lắng nghe Ghi file mới Lưu file với định dạng .3gp Sai Sau thời Kết thúc Sai gian phân lắng nghe đoạn Đúng Đúng Có Kết nối Không mạng Gởi email (có file đính kèm) Xóa file Tín hiệu kết thúc Đúng Kết thúc Hình 3.10: Sơ đồ khối xử lý khi nhận tin nhắn điều khiển thực thi lắng nghe thúc quá trình lắng nghe. Nếu vẫn còn trong điều kiện cho phép, sau khoản thời gian phân đoạn được cài đặt trước, kết quả mỗi phân đoạn này sẽ được gởi về email sau khi kiểm tra kết nối mạng thành công. Đồng thời, sẽ tiến hành ghi kết quả lắng nghe vào một file mới và quay lại vòng lặp trên. Sau khi nhận tín hiệu kết thúc, tức điều kiện kết thúc lắng nghe có kết quả trả về đúng, chương trình sẽ kết thúc hành động lắng nghe. GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  67. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 52 Bắt đầu Kết thúc lắng Sai Kết thúc sau nghe khi có tương khi hết thời gian tác với thiết bị lắng nghe Đúng Đúng Sai Hết thời gian lắng nghe Đúng Sai Có tương tác Độ nhiễu Sai Kết thúc với thiết bị Đúng cho phép lắng nghe Đúng Kết thúc Hình 3.11: Sơ đồ khối mô tả điều kiện để kết thúc việc lắng nghe trên thiết bị Theo sơ đồ khối trong hình 3.11, có hai điều kiện kết thúc lắng nghe, các điều kiện này sẽ được gởi kèm theo sự lựa chọn của người điều khiển lúc nhấn vào nút điều khiển thực thi lắng nghe. Đó là tự động kết thúc khi có tương tác với thiết bị, hoặc là kết thúc khi hết thời gian được cài đặt. Trong điều kiện thứ nhất, chương trình sử dụng hệ cảm biến gia tốc của thiết bị để xác định thiết bị có tương tác hay không và lọc đi các giá trị nhiễu cho phép. Nếu vượt qua các giá trị nhiễu này hoặc điều kiện thứ hai xảy ra, thì tín hiệu kết thúc lắng nghe lập tức được bật lên. Khi người dùng muốn biết điện thoại của mình đang ở đâu đó quanh họ, hoặc muốn tạm thời ngăn chặn sự tương tác từ người khác, người dùng sẽ nhắn tin điều khiển với lệnh khóa màn hình và phát âm thanh cảnh báo. Giải thuật cho GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương
  68. CHƯƠNG 3. THIẾT KẾ HỆ THỐNG 53 tính năng này là sau khi nhận SMS và xác thực, chương trình sẽ tiến hành sinh một Activity và hiển thị ra màn hình dạng lock với các ô mã PIN, đồng thời kích hoạt khởi chạy một file nhạc. Vì lý do bảo mật, nên từ phiên bản Android 4.0 trở đi, nút Home trên thiết bị sẽ không được ghi đè lên, vì vậy người dùng có thể sử dụng phím Home để tắt màn hình lock, nhưng âm chuông cảnh báo vẫn còn. Để tắt màn hình lock này và tắt âm cảnh báo, người dùng phải nhập đúng mã PIN vào các ô xác thực trên màn hình hoặc đăng nhập ứng dụng. Sơ đồ khối cho giải thuật này được mô tả như trong hình 3.12. 3.3.3 Tính năng tìm thông tin vị trí thiết bị Tính năng này được thực thi khi người dùng muốn biết vị trí hiện tại của thiết bị (khi không mang bên mình) và các thông tin về thuê bao của số điện thoại hiện tại. Để yêu cầu vị trí thiết bị, người dùng nhắn tin có mã lệnh yêu cầu vị trí kèm mật khẩu chứng thực. Sau khi bên nhận nhận và xử lý, kết quả thu được sẽ được gởi về email thiết lập, đồng thời gởi một yêu cầu lên server (kèm thông tin username, password, thông tin vị trí thu thập) để tổng đài số gởi tin nhắn phản hồi về cho bên yêu cầu. Đối với bên nhận SMS yêu cầu, muốn có được vị trí chính xác của thiết bị, chương trình cần sự hỗ trợ từ người dùng bằng cách bật chế độ định vị toàn cầu GPS. Nếu không bật GPS, thì chương trình sẽ lấy vị trí theo thông tin kết nối mạng 3G. Bên nhận yêu cầu thông tin thuê bao xử lý bằng cách gởi tin nhắn đến tổng đài 1414 để lấy về thông tin thuê bao. Sau khi lấy được các thông tin sẽ gởi kết quả về email cũng như yêu cầu lên server để tổng đài phản hồi về cho bên gởi yêu cầu. Sơ đồ khối bên nhận SMS và đáp ứng yêu cầu được mô tả trong hình 3.13. 3.3.4 Bảo mật Phần này chúng tôi sẽ trình bày giải thuật cho 2 phần: bảo mật ứng dụng và bảo mật cho người dùng. Tính năng bảo mật ứng dụng nhằm ẩn mình và tránh lại việc gỡ cài đặt của người dùng (không dùng các ứng dụng gỡ cài đặt có quyền root user, hoặc không truy cập vào hệ thống thiết bị). Tính năng bảo mật người dùng cung cấp các chức năng phát chuông cảnh báo khi số lần nhập sai mã PIN đăng nhập lớn hơn n lần (với n được người GVHD: TS. Nguyễn Anh Tuấn SVTH: Nguyễn Thành Vinh - Lê Văn Thương