Android là một hệ điều hành mã nguồn mở xây dựng trên nền tảng Linux, chủ yếu sử dụng trên các thiết bị thông minh như điện thoại di động, máy tính bảng và hiện nay là cả các đầu phát HD
Trang 1TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
AN NINH MẠNG QUỐC TẾ
ATHENA
BÁO CÁO ĐỀ TÀI THỰC TẬP CNTT
Nghiên cứu các Trojan, Malware cho phép đánh cắp dữ liệu như danh sách contact, tin nhắn trên điên thoại sử dụng Android và gửi ra ngoài
CBHD: Thầy VÕ ĐỖ THẮNG
SVTH: Nguyễn Đức Thái MSSV: 51002962
TPHCM, ngày 18 tháng 08 năm 2014
Trang 2TRƯỜNG ĐẠI HỌC BÁCH KHOA
KHOA KHOA HỌC & KỸ THUẬT MÁY TÍNH
AN NINH MẠNG QUỐC TẾ
ATHENA
BÁO CÁO ĐỀ TÀI THỰC TẬP CNTT
Nghiên cứu các Trojan, Malware cho phép đánh cắp dữ liệu như danh sách contact, tin nhắn trên điên thoại sử dụng Android và gửi ra ngoài
CBHD: Thầy VÕ ĐỖ THẮNG
SVTH: Nguyễn Đức Thái MSSV: 51002962
TPHCM, ngày 18 tháng 08 năm 2014
Trang 3LỜI CẢM ƠN KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH
Tôi xin chân thành cảm ơn trường Đại học Bách Khoa thành phố Hồ Chí Minh khoa Khoa Học và Kỹ Thuật Máy Tính đã tạo điều kiện cho tôi tham gia và hoàn thành tốt đợt thực tập này Để cho tôi được làm việc và học hỏi và làm việc trong môi trường chuyên nghiệp với những kinh nghiệm hữu ích Những kinh nghiệm này sẽ giúp tôi hoàn thiện hơn trong công việc sau này
Tôi cũng xin cảm ơn quý thầy trong khoa đã tận tình giảng dạy và trang bị cho tôi những kiến thức thiết yếu để hoàn thành đợt thực tập này
Một lần nữa, tôi xin chân thành cảm ơn
Hồ Chí Minh, Ngày 18 tháng 8 Năm 2014
Sinh viên thực tập
Nguyễn Đức Thái
Trang 4LỜI CẢM ƠN TRUNG TÂM ATHENA
Tôi xin chân thành cảm ơn Ban giám đốc Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế Athena, toàn thể các anh chị trong công ty đã tận tình giúp đỡ tôi trong đợt thực tập vừa qua, tạo điều kiện để tôi có cơ hội tham gia
và hoàn thành thực tập tại trung tâm
Đặc biệt, tôi xin chân thành cảm ơn thầy Võ Đỗ Thắng đã tận tình giúp đỡ, cung cấp tài liệu tham khảo, hướng dẫn tôi để có thể hoàn thành đề tài tốt nhất Mặc dù đã cố gắng hoàn thành báo cáo thực tập tốt nhất với tất cả nỗ lực của bản thân nhưng do năng lực hiểu biết và kinh nghiệm bản thân chắc chắn không tránh khỏi thiếu sót nhất định, rất mong được sự thông cảm, chia sẻ tận tình để tôi hoàn thành bản báo cáo thực tập tốt hơn
Một lần nữa, tôi xin chân thành cảm ơn
Hồ Chí Minh, Ngày 18 tháng 8 Năm 2014
Sinh viên thực tập
Nguyễn Đức Thái
Trang 5Điện thoại di động có chứa hầu hết thông tin cá nhân của người sử dụng như địa chỉ nhà, tài khoản ngân hàng, những hồ sơ quan trọng, Câu hỏi đặt ra, liệu rằng những thông tin đó có thể nào bị đánh cắp không? Đề tài này sẽ cho chúng ta một cái nhìn khái quát về việc đánh cắp, hack các thông tin, nghe lén,… trên điện thoại di động, đặc biệt là điện thoại sử dụng hệ điều hành Android
Tôi cam kết, kết quả đạt được do tôi tự thực hiện dưới sự hướng dẫn của thầy Võ Đỗ Thắng (Trung tâm Athena), không sao chép từ người khác Các bước của quá trình thực hiện được tôi ghi lại bằng video và có thuyết minh từng bước Chi tiết của các clip ghi lại quá trình thực hiện được liệt kê bên dưới
Trang 6NHẬN XÉT CỦA KHOA
TPHCM, ngày tháng năm 2014
Trưởng Khoa
Trang 7NHẬN XÉT CỦA CÔNG TY THỰC TẬP
TPHCM, ngày tháng năm 2014
Giám đốc
Trang 8NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN
TPHCM, ngày tháng năm 2014
Giáo viên hướng dẫn
Trang 9MỤC LỤC
LỜI CẢM ƠN KHOA KHOA HỌC VÀ KỸ THUẬT MÁY TÍNH i
LỜI CẢM ƠN TRUNG TÂM ATHENA ii
TRÍCH YẾU iii
NHẬN XÉT CỦA KHOA iv
NHẬN XÉT CỦA CÔNG TY THỰC TẬP v
NHẬN XÉT CỦA GIÁO VIÊN HƯỚNG DẪN vi
MỤC LỤC vii
DANH MỤC HÌNH x
DANH MỤC BẢNG xiii
CHƯƠNG 0: GIỚI THIỆU CHUNG VỀ CÔNG TY THỰC TẬP 1
CHƯƠNG 1: TỔNG QUAN VỀ ANDROID 3
1.1 Khái niệm 3
1.2 Đặc điểm 3
1.3 Lịch sử phát triển 4
1.4 Sự ra mắt các phiên bản Android 5
CHƯƠNG 2: CÀI ĐẶT VÀ NGHIÊN CỨU HỆ ĐIỀU HÀNH ANDROID TRÊN MÔI TRƯỜNG GIẢ LẬP 7
2.1 Cài đặt hệ điều hành Android 2.3 và 4.x trên môi trường giả lâp 7
2.1.1 Cài đặt Java SE trên máy tính 7
2.1.2 Cài đặt Eclipse và Android SDK 9
2.1.3 Tạo máy AVD (Android Virtual Device) 11
2.2 So sánh sự khác nhau giữa hai phiên bản Android 2.3 và 4.x 15
2.2.1 Sự khác nhau về yêu cầu phần cứng cần thiết để cài đặt 15
2.2.2 Sự khác nhau về giao diện 15
2.2.3 Sự khác nhau về tính năng 17
2.2.4 Sự khác nhau về giao thức mạng 17
CHƯƠNG 3: MÃ ĐỘC TRÊN ANDROID 18
3.1 Định nghĩa 18
3.2 Mã độc trong môi trường Android 18
3.2.1 Android là một môi trường lý tưởng cho mã độc phát triển 18
3.2.2 Phân loại mã độc Android 18
Trang 103.3 Thực trạng 19
3.4 Malware – tiêu biểu của mã độc trên Android 20
3.5 Cơ chế hoạt động của Malware 20
3.6 Mục đích của Malware DroidDream 21
3.7 Cơ chế bảo mật trong Android 21
3.7.1 Tính bảo mật trong Android 21
3.7.2 Cơ chế Permission: 22
3.7.3 Google Play: 22
CHƯƠNG 4: CÀI ĐẶT MỘT SỐ CHƯƠNG TRÌNH CÓ MÃ ĐỘC TRÊN ANDROID 23
4.1 iCalendar 23
4.1.1 Các công cụ cần thiết: 23
4.1.2 Các bước thực hiện: 23
4.2 iMatch 28
4.2.1 Các công cụ cần thiết: 28
4.2.2 Các bước thực hiện: 28
CHƯƠNG 5: NGHIÊM CỨU KALI LINUX, CƠ CHẾ TẠO MÃ ĐỘC TRÊN KALINIX ĐỂ XÂM NHẬP VÀO ANDROID 31
5.1 Tổng quan 31
5.2 Cải tiến của Kali Linux so với Backtrack 31
5.2.1 Kali phát triển trên nền tảng hệ điều hành Debian 31
5.2.2 Tính tương thích kiến trúc 31
5.2.3 Hỗ trợ mạng không dây tốt hơn 31
5.2.4 Khả năng tùy biến cao 32
5.2.5 Dễ dàng nâng cấp giữa các phiên bản Kali trong tương lai 32
5.3 Cài đặt Kali Linux 32
5.3.1 Chuẩn bị 32
5.3.2 Cài đặt 32
5.4 Tạo mã độc trên Kali Linux để xâm nhập Android 45
5.5 Kết luận 54
CHƯƠNG 6: XÂM NHẬP VÀO ANDROID THÔNG QUA INTERNET TỪ VPS 55
6.1 Cài đặt Metasploit trên VPS 55
6.2 Tấn công Android từ VPS 60
Trang 11CHƯƠNG 7: KẾT QUẢ ĐẠT ĐƯỢC 64 CHƯƠNG 8: TÀI LIỆU THAM KHẢO 65
Trang 12DANH MỤC HÌNH
Hình 0.1: cơ cấu tổ chức Athena 2
Hình 2.1: Download Java SE 7
Hình 2.2: Chọn phiên bản Java 7
Hình 2.3: Cài đặt Java 8
Hình 2.4: Cài đặt Java tiếp 8
Hình 2.5: Kiểm tra Java đã được cài đặt 9
Hình 2.6: Download Android SDK 10
Hình 2.7: Chọn phiên bản Android SDK 10
Hình 2.8: Giải nén file Android SDK tải về 10
Hình 2.9: Khởi động Android SDK Manager 11
Hình 2.10: Chọn và cài đặt các gói API cần thiết 11
Hình 2.11: Khởi động Android Virtual Device Manager 12
Hình 2.12: Tạo mới máy ảo Android 12
Hình 2.13: Thông số cho máy ao Android 13
Hình 2.14: Khởi động máy ảo Android 14
Hình 2.15: Máy ảo Android khởi động hoàn tất 14
Hình 4.1: Folder Super Apk Tool 23
Hình 4.2: Super Apk Tool 24
Hình 4.3: Mở file iCalendar.apk 24
Hình 4.4: View Smali Code 25
Hình 4.5: Thư mục iCalendar 25
Hình 4.6: File iCalendar.smali 26
Hình 4.7: File SmsReceiver.smali 26
Hình 4.8: Build Projects 27
Hình 4.9: Cài đặt thành công iCalendar 27
Hình 4.10: Android02 nhận được tin nhắn từ iCalendar 28
Hình 4.11: Thư mục untils 29
Hình 4.13: Nội dung tin nhắn 2 29
Hình 4.14: Nội dung tin nhắn 3 29
Hình 4.15: Nội dung tin nhắn 4 29
Hình 4.16: Kết quả chạy chương trình iMatch 30
Hình 5.1: Chon phương thức cái đặt 33
Hình 5.2: Tìm đường dẫn đến file iso Kali Linux 33
Hình 5.3: Chọn dung lượng đĩa 34
Hình 5.4: Xác nhận cài Đặt 34
Hình 5.5: Cài đặt Kali Linux 35
Hình 5.6: Chọn Ngôn Ngữ 35
Hình 5.7: Chọn khu vực 36
Hình 5.8: Khu vực Asia 36
Hình 5.9: Chọn quốc gia Viet Nam 37
Hình 5.10: Chọn bảng mã 37
Hình 5.11: Chọn kiểu bàn phím 38
Hình 5.12: Đặt Hostname 38
Trang 13Hình 5.13: Đặt Domain name 39
Hình 5.14: Đặt root password 39
Hình 5.15: Tùy chọn ổ đĩa 40
Hình 5.16: Chọn ổ đĩa cài đặt 40
Hình 5.17: Phương thức cài đặt ổ đĩa 41
Hình 5.18: Xác nhận thông số cài đặt 41
Hình 5.19: Xác nhận định dạng ổ đĩa 42
Hình 5.20: Cài đặt bắt đầu 42
Hình 5.21: Tìm kiếm cập nhật qua internet 43
Hình 5.22: Xác nhận cài đặt GRUD 43
Hình 5.23: Xác nhận cài đặt thành công 44
Hình 5.24: Đăng nhập Kali Linux 44
Hình 5.25: Tùy chọn Kali Linux 45
Hình 5.26: Kiểu kết nối mạng 45
Hình 5.27: Tùy chọn mạng 46
Hình 5.28: chọn mạng vật lý để sử dụng 47
Hình 5.29: lệnh ifconfig 47
Hình 5.30: Tạo backdoor 47
Hình 5.31: file chứa backdoor 48
Hình 5.32: lệnh msfconsole 48
Hình 5.33: Mở cổng lắng nghe 49
Hình 5.34: Cài đặt backdoor trên Android 49
Hình 5.35: Kết nối thành công đến máy Android 50
Hình 5.36: Lệnh help 50
Hình 5.37: Lệnh sysinfo 50
Hình 5.38: Lệnh ipconfig 51
Hình 5.39: nhóm lệnh về camara 51
Hình 5.40: File ảnh chụp bảng lệnh webcam_snap 51
Hình 5.41: lệnh record_mic 52
Hình 5.42: File ghi âm bằng lệnh record_mic 52
Hình 5.43: Lệnh ls tại thư mục sdcard 52
Hình 5.44: Lệnh download 53
Hình 5.45: File được download 53
Hình 5.4: Lệnh ls –l 54
Hình 6.1: Kết nối VPS 55
Hình 6.2: Đăng nhập VPS 56
Hình 6.3: Download metasploit 56
Hình 6.4: Chọn phiên bản metasploit 56
Hình 6.5: điền thông tin 57
Hình 6.6: Cài đặt metasploit 57
Hình 6.7: Xác nhận điều khoản 58
Hình 6.8: Địa chỉ cài đặt 58
Hình 6.9: Tắt Anti-Virus và Firewall 59
Hình 6.10: SSL Port 59
Trang 14Hình 6.12: Cài đặt thành công 60
Hình 6.13: Tao backdoor 61
Hình 6.14: Metasploit console 61
Hình 6.15: thiết lập thông tin cho cổng lắng nghe 62
Hình 6.16: mở cổng lắng nghe 62
Hình 6.17: Kết nối thành công 62
Trang 15DANH MỤC BẢNG
Bảng 2.1: Khác nhau về yêu cầu phần cứng 15
Bảng 2.2: Khác nhau về giao diện 16
Bảng 2.3: Khác nhau về tính năng 17
Bảng 2.4: Khác nhau về giao thức mạng 17
Bảng 3.1: Phân loại mã độc Android 19
Trang 16CHƯƠNG 0: GIỚI THIỆU CHUNG VỀ CÔNG TY THỰC
TẬP
Cơ sở 1_Tại TP Hồ Chí Minh:
Trung Tâm Đào Tạo Quản Trị Mạng và An Ninh Mạng Quốc Tế ATHENA Số 2 Bis Đinh Tiên Hoàng, Phường Đa Kao, Tp Hồ Chí Minh, Việt Nam
Điện thoại: ( 84-8 ) 3824 4041, Hotline: 0943 23 00 99
Cơ sở 2_Tại TP Hồ Chí Minh:
Trung Tâm Đào Tạo Quản Trị Mạng và An Ninh Mạng Quốc Tế ATHENA 92 Nguyễn Đình Chiểu ,Phường Đa Kao,Quận 1, Tp Hồ Chí Minh, Việt Nam
Điện thoại: (84-8) 2210 3801, Hotline: 0943 20 00 88
Website: www.athena.edu.vn or www.athena.com.vn
Trung Tâm Đào Tạo Quản Trị Mạng & An Ninh Mạng Quốc Tế ATHENA được thành lập từ năm 2004, là một tổ chức quy tụ nhiều trí thức trẻ Việt Nam đầy năng động, nhiệt huyết và kinh nghiệm trong lãnh vực CNTT, với tâm huyết góp phần vào công cuộc thúc đẩy tiến trình đưa công nghệ thông tin là ngành kinh tế mũi nhọn, góp phần phát triển nước nhà
Lĩnh vực hoạt động:
Trung tâm ATHENA đã và đang tập trung chủ yếu vào đào tạo chuyên sâu quản trị mạng, an ninh mạng, thương mại điện tử theo các tiêu chuẩn quốc tế của các hãng nổi tiếng như Microsoft, Cisco, Oracle, Linux LPI, CEH Song song đó, trung tâm ATHENA còn có những chương trình đào tạo cao cấp dành riêng theo đơn đặt hàng của các đơn vị như Bộ Quốc Phòng, Bộ Công An, ngân hàng, doanh nghiệp, các cơ quan chính phủ, tổ chức tài chính…
Sau gần 10 năm hoạt động,nhiều học viên tốt nghiệp trung tâm ATHENA
đã là chuyên gia đảm nhận công tác quản lý hệ thống mạng, an ninh mạng
Trang 17cho nhiều bộ ngành như Cục Công Nghệ Thông Tin - Bộ Quốc Phòng , Bộ Công
An, Sở Thông Tin Truyền Thông các tỉnh, bưu điện các tỉnh,…
Ngoài chương trình đào tạo, Trung tâm ATHENA còn có nhiều chương trình hợp tác và trao đổi công nghệ với nhiều đại học lớn như đại học Bách Khoa Thành Phố Hồ Chí Minh, Học Viện An Ninh Nhân Dân( Thủ Đức), Học Viện Bưu Chính Viễn Thông, Hiệp hội an toàn thông tin (VNISA), Viện Kỹ Thuật Quân Sự…
Đội ngũ giảng viên:
Tất cả các giảng viên trung tâm ATHENA có đều tốt nghiệp từ các trường đại học hàng đầu trong nước Tất cả giảng viên ATHENA đều phải có các chứng chỉ quốc tế như MCSA, MCSE, CCNA, CCNP, Security+, CEH,có bằng
sư phạm Quốc tế (Microsoft Certified Trainer) Đây là các chứng chỉ chuyên môn bắt buộc để đủ điều kiện tham gia giảng dạy tại trung tâm ATHENA
Bên cạnh đó, các giảng viên ATHENA thường đi tu nghiệp và cập nhật kiến thức công nghệ mới từ các nước tiên tiến như Mỹ , Pháp, Hà Lan, Singapore,
và truyền đạt các công nghệ mới này trong các chương trình đào tạo tại trung tâm ATHENA
Cơ cấu tổ chức Trung tâm Athena
Hình 0.1: cơ cấu tổ chức Athena
Trang 18CHƯƠNG 1: TỔNG QUAN VỀ ANDROID
1.1 Khái niệm
Android là một hệ điều hành mã nguồn mở xây dựng trên nền tảng Linux, chủ yếu sử dụng trên các thiết bị thông minh như điện thoại di động, máy tính bảng (và hiện nay là cả các đầu phát HD, smart TV …) 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 Theo ComScore, đến đầu tháng 3 năm 2014, Android chiếm 51.7% thị phần hệ điều hành trên smartphone tại Mỹ (iOS chiếm 41.6%), là hệ điều hành số một trên điện thoại thông minh
Android ra mắt vào năm 2007 cùng với sự tuyên bố thành lập Liên minh thiết
bị cầm tay mở gồm 78 công ty phần cứng, phần mềm và viễn thông với mục tiêu đẩy mạnh các tiêu chuẩn mở cho các thiết bị di động Hệ điều hành Android bao gồm 12 triệu dòng mã: 3 triệu dòng XML, 2.8 triều dòng mã C, 1.75 triệu dòng mã C++ và 2.1 triệu dòng mã Java Thể hiện tính mở của Android, Google công bố hầu hết các mã nguôn của Android theo bản cấp phép Apache
1.2 Đặc điểm
- Tính mở: Ngay từ ban đầu, Android ra mắt là một hệ điều hành mã nguôn
mở, được xây dựng trên nhân Linux mở sử dụng một máy ảo mà đã được tối ưu hóa bộ nhớ và phần cứng với môi trường di động; nó có thể được mở rộng để kết hợp tự do giữa các công nghệ nổi trội Tính mở hoàn toàn của Android cho phép người phát triển tạo các ứng dụng hấp dẫn với đầy đủ các điểm mạnh của các thiết
bị cầm tay hiện có Hơn nữa, một ứng dụng trong Android có thể gọi tới bất kỳ một chức năng lõi nào như tạo cuộc gọi, gửi tinh nhắn hay sử dụng máy ảnh… cho phép người phát triển tạo phần mềm phong phú hơn, dễ dàng liên kết các tính năng cho người dùng Những nền tảng ưu điểm này sẽ tiếp tục phát triển bởi cộng đồng phát triển để tạo ra các ứng di động hoàn hảo
- Tính ngang bằng của ứng dụng: Với Android, không có sự khác nhau
giữa các ứng dụng điện thoại cơ bản với ứng dụng của bên thứ ba Chúng được xây dựng để truy cập như nhau tới một loạt các ứng dụng và dịch vụ của điện thoại Với các thiết bị được xây dựng trên nền tảng Android, người dùng có thể đáp ứng đầy đủ các nhu cầu mà họ thích Chúng ta có thể đổi màn hình nền, kiểu gọi điện thoại, hay bất kể ứng dụng nào Chúng ta thậm chí có thể hướng dẫn điện thoại chỉ xem những ảnh mình thích
- Phá vỡ rào cản phát triển ứng dụng: Android phá vỡ rào cản để tạo ứng
dụng mới và cải tiến Một người phát triển có thể kết hợp thông tin từ trang web với dữ liệu trên điện thoại cá nhân – chẳng hạn như danh bạ, lịch hay vị trí trên bản đồ – để cung cấp chính xác hơn cho người khác Với Android, người phát triển
có thể xây dựng một ứng dụng mà cho phép người dùng xem vị trí của những
Trang 19người bạn và thông báo khi họ đang ở vị trí lân cận Tất cả được lập trình dễ dàng thông qua sự hỗ trợ của MapView và dịch vụ định vị toàn cầu GPS
- Xây dựng ứng dụng dễ dàng và nhanh chóng: Android cung cấp bộ thư
viện giao diện lập trình ứng dụng đồ sộ và các công cụ để viết các ứng dụng phức tạp Ví dụ, Android có thể cho phép người phát triển biết được vị trí của thiết bị và cho phép các thiết bị giao tiếp với nhau để có thể tạo nên mạng xã hội chia sẻ ngang hàng rộng khắp Thêm nữa, Android còn bao gồm một bộ công cụ đầy đủ giúp cho việc phát triển trở nên dễ dàng
1.3 Lịch sử phát triển
Tháng 10 năm 2003, Tổng công ty Android (Android, Inc.) được thành lập tại Palo Alto, California bởi Andy Rubin (đồng sáng lập công ty Danger), Rich Miner (đồng sáng lập Tổng công ty Viễn thông Wildfire), Nick Sears (từng là Phó giám đốc T-Mobile) và Chris White (trưởng thiết kế và giao diện tại WebTV) để phát triển, theo lời của Rubin, "các thiết bị di động thông minh hơn có thể biết được vị trí và sở thích của người dùng" Mặc dù các nhân viên đều là những người
có tiếng tăm nhưng công ty sau khi thành lập lại hoạt động một cách âm thầm mà chỉ tiết lộ rằng họ đang làm phần mềm cho điện thoại di động Không lâu sau đó (cùng trong năm 2003) công ty lâm vào tình trạng cạn kiệt tài chính
Ngày 17 tháng 8 năm 2005, Google mua lại Tổng công ty Android biến nó thành một bộ phận trực thuộc của mình đồng thời giữ cũng giữ lại các nhân viên chủ chốt gồm Rubin, Miner và While Hành động này dẫn đến nhiều tin đồn cho rằng Google dự tính tham gia vào thị trường điện thoại di động Tại Google, nhóm
do Rubin đứng đầu đã phát triển một nền tảng thiết bị di động phát triển trên nền nhân Linux được Google quảng bá đến các nhà sản xuất điện thoại di động như là một hệ thống uyển chuyển và có khả năng nâng cấp Google đã liên hệ với hàng loạt hãng phần cứng cũng như đối tác phần mềm, bắn tin cho các nhà mạng rằng
họ sẵn sàng hợp tác với các cấp độ khác nhau
Ngày 5 tháng 11 năm 2007, Liên minh thiết bị cầm tay mở (Open Handset Alliance), một hiệp hội bao gồm nhiều công ty với cả những gã khổng lồ như Texas Instruments, Tập đoàn Broadcom, Google, HTC, Intel, LG, Tập đoàn Marvell Technology, Motorola, Nvidia, Qualcomm, Samsung Electronics, Sprint Nextel và T-Mobile được thành lập với mục đích phát triển các tiêu chuẩn mở cho thiết bị di động Cùng ngày, Android cũng được ra mắt với vai trò là sản phẩm đầu tiên của Liên minh, một nền tảng thiết bị di động được xây dựng trên nhân Linux phiên bản 2.6 Chiếc điện thoại chạy Android đầu tiên được bán ra là HTC G1, phát hành ngày 22 tháng 10 năm 2008 Biểu trưng của hệ điều hành Android mới là một con rôbốt màu xanh lá cây do hãng thiết kế Irina Blok tại California vẽ
Từ năm 2008, Android đã trải qua nhiều lần cập nhật để dần dần cải tiến hệ điều hành, bổ sung các tính năng mới và sửa các lỗi trong những lần phát hành
Trang 20của một món ăn tráng miệng; ví dụ như phiên bản 1.5 Cupcake (bánh bông lan nhỏ
có kem) tiếp nối bằng phiên bản 1.6 Donut (bánh vòng) Phiên bản mới nhất hiện nay là Android 4.4 và Android L (dành cho nhà phát triển) được phát hành vào năm 2014
1.4 Sự ra mắt các phiên bản Android
- Android alpha: là phiên bản nội bộ trong Google và OHA được nghiên cứu
và phát triển trước khi Android beta ra mắt, với các phiên bản khác nhau là "Astro Boy", "Bender" và "R2-D2"
- Android beta: được phát hành vào ngày 5 tháng 7 năm 2007 Tiếp theo đó
bộ phát triển phần mềm (SDK) ra mắt ngày 12 tháng 11 năm 2007
- Android 1.0 (API mức độ 1): Kỉ nguyên Android chính thức khởi động vào ngày 22 tháng 10 năm 2008, khi mà chiếc điện thoại T-Mobile G1 chính thức được bán ra ở Mỹ Đến ngày 23 tháng 9 năm 2008, Google chính thức bán ra phiên bản thương mại của phần mềm
- Android 1.1 (API mức độ 2): phát hành ngày 9 tháng 2 năm 2009 Đây là bản cập nhật đầu tiên giúp giải quyết lỗi, thay đổi Android API và thêm vào một
số tính năng
- Android 1.5 (API mức độ 3, phát hành ngày 27 tháng 4 năm 2009) và Android 1.6 (API mức độ 4, phát hành ngày 15 tháng 9 năm 2009): Bản cập nhật bao gồm một số tính năng mới và sử đổi giao diện người dùng UI
- Android 2.x (2.0-2.1 API mức độ 7, 2.2 API mức độ 8, 2.3-2.3.2 API mức
độ 9, 2.3.3-2.3.7 API mức độ 10): phát hành từ tháng 10 năm 2009 đến tháng 2 năm 2011 với nhiều tính năng mới được thêm vào, thay đổi giao diện người dùng cũng như nâng cao khả năng bảo mật
- Android 3.x (3.1 API mức độ 12, 3.2 API mức độ 13) phát hành từ tháng 5 đến tháng 7 năm 2011 với tên gọi Honeycomb là phiên bản dành riêng cho máy tính bảng Mặc dù không để lại nhiều dấu ấn đắc biệt trên thị trường nhưng phiên bản này là nền tảng cho Android 4.0
- Android 4.x (từ API mức độ 15 đến API mức độ 19) phát hành từ tháng 12 năm 2011 và tiếp tục đến nay Được xem là sự thay đổi lớn trong lịch sử phát triển của Android với nhiều cải tiến về mặt công nghệ cung như tính năng Đặc biệt phiên bản này là sự hợp nhất cho hệ điều hành smartphone và máy tính bảng
- Android 5 (API mức độ 20): phát hành tháng 7 năm 2014 là phiên bản cho nhà phát triển
Trang 21Theo sự kiên GOOGLE I/O năm 2013 đã thống kê rằng thị phần của hai nền tảng Android 2.3 va Android 4.x vẫn được ưa chuộng nhất (38.5% và 33.0%) vì thế tiếp theo chúng ta chủ yếu tìm hiểu 2 phiên bản này
Trang 22CHƯƠNG 2: CÀI ĐẶT VÀ NGHIÊN CỨU HỆ ĐIỀU HÀNH
ANDROID TRÊN MÔI TRƯỜNG GIẢ LẬP
2.1 Cài đặt hệ điều hành Android 2.3 và 4.x trên môi trường giả lâp 2.1.1 Cài đặt Java SE trên máy tính
Để cài đặt Android trên môi trường giả lập trước tiên cần cài đặt môi trường Java For Developers để chạy được Eclipse và Android SDK Ở đây mình sử dụng hệ điều hành Windows 8 64-bit (các phiên bản Windows khác đều tương tự) Đầu tiên bạn cần dowload bộ cài đặt Java SE tại link sau
http://www.oracle.com/technetwork/java/javase/downloads/index.html
Hình 2.1: Download Java SE
Chọn Jaca Platform (JDK) 8u5 để chuyển sang trang tiếp theo
Hình 2.2: Chọn phiên bản Java
Chọn phiên bản thích hợp với hệ điều hành để tải về Ở đây mình chọn bản cho Windows 64-bit
Trang 23Chạy bộ cài đặt vừa được tải về ta được như hình sau
Hình 2.3: Cài đặt Java
Chọn Next để tiếp tục
Hình 2.4: Cài đặt Java tiếp
Tiếp tục chọn Next để cài đặt và đợi tiến trình hoàn tất
Trang 24Sau khi cài xong, các bạn kiểm tra lại bộ JDK đã được cài đặt thành công
bằng cách vào cmd gõ lệnh “java” Nếu màn hình hiện ra như sau thì bạn đã cài
đặt thành công:
Hình 2.5: Kiểm tra Java đã được cài đặt
2.1.2 Cài đặt Eclipse và Android SDK
Trước tiên download bộ ADT Bundle for Windows gồm Eclipse và Android SDK được tích hợp sẵn tại địa chỉ: http://developer.android.com/sdk/index.html
Trang 26Hình 2.9: Khởi động Android SDK Manager
Sẽ xuất hiện 1 cửa sổ mới như sau:
Hình 2.10: Chọn và cài đặt các gói API cần thiết
Công việc tiếp theo là các bạn chỉ cần tích chọn các phần API cần cài rồi click vào nút Install packages ở góc dưới bên phải và chờ cho nó download và cài
đặt là xong
2.1.3 Tạo máy AVD (Android Virtual Device)
Sau khi khởi chạy xong Eclipse Bạn vào: Windows -> Android Virtual Device Manager
Hoặc các bạn cũng có thể click ngay vào biểu tượng AVD trên menu
của Eclipse:
Trang 27Hình 2.11: Khởi động Android Virtual Device Manager
Click vào New để tạo mới:
Hình 2.12: Tạo mới máy ảo Android
Cửa sổ mới mở ra, các bạn điền đầy đủ các thông số vào theo yêu cầu:
Trang 28Hình 2.13: Thông số cho máy ao Android
- AVD Name: Các bạn chỉ được sử dụng cách ký tự: A -> Z, a -> z, và “.,
-, _” mà thôi
- Target: Bạn chọn phiên bản Android để test
- SD Card: Là dung lượng bộ nhớ ảo của thẻ SD
Và một số thông tin khác…
Các bạn click OK để hoàn thành tạo mới một AVD
Bây giờ bạn vào phần Android Virtual Device Manager như ban đầu thì
bạn sẽ thấy tên máy ảo mới mình vừa tạo rồi
Nhấn Start để khởi chạy máy ảo (bạn có thể sẽ phải chờ một khoảng thời
gian để máy ảo khởi chạy):
Trang 29Hình 2.14: Khởi động máy ảo Android
Và đây là giao diện cuối cùng:
Hình 2.15: Máy ảo Android khởi động hoàn tất
Thực hiện tương tự để tạo Android phiên bản 4.x
Trang 302.2 So sánh sự khác nhau giữa hai phiên bản Android 2.3 và 4.x
2.2.1 Sự khác nhau về yêu cầu phần cứng cần thiết để cài đặt
Cần ít nhất 128 MB bộ nhớ có sẵn cho
Kernel và cho không gian người sử dụng
Cần ít nhất 340 MB bộ nhớ có sẵn cho kernel và cho không gian người sử dụng
Dung lượng Ram tối thiểu cần thiết là
- Mật độ phải được ít nhất 100 dpi
- Tỉ lệ màn hình từ 1.333 (4:3) đến 1,85 (16:9)
Yêu cầu có các phím vậy lý Không yêu cầu có có phím vật lý
Các API Android bao gồm trình quản
lý download các ứng dụng có thể sử
dụng để tải dữ liệu.Trình quản lí
download phải có khả năng tải tập tin có
dung lượng ít nhất 55 MB
Các API Android bao gồm trình quản
lý download các ứng dụng có thể sử dụng để tải dữ liệu.Trình quản lí download phải có khả năng tải tập tin có dung lượng ít nhất 100 MB
Bảng 2.1: Khác nhau về yêu cầu phần cứng
2.2.2 Sự khác nhau về giao diện
Giao diện người dùng của Android dựa trên nguyên tắc tác động trực tiếp, sử dụng cảm ứng chạm tương tự như những động tác ngoài đời thực như vuốt, chạm, kéo dãn và thu lại để xử lý các đối tượng trên màn hình.Sự phản ứng với tác động của người dùng diễn ra gần như ngay lập tức, nhằm tạo ra giao diện cảm ứng mượt
mà, thường dùng tính năng rung của thiết bị để tạo phản hồi rung cho người dùng Những thiết bị phần cứng bên trong như gia tốc kế, con quay hồi chuyển và cảm biến khoảng cách được một số ứng dụng sử dụng để phản hồi một số hành động
Trang 31khác của người dùng, ví dụ như điều chỉnh màn hình từ chế độ hiển thị dọc sang chế
độ hiển thị ngang tùy theo vị trí của thiết bị, hoặc cho phép người dùng lái xe đua bằng xoay thiết bị, giống như Các thiết bị Android sau khi khởi động sẽ hiển thị màn hình chính, điểm khởi đầu với các thông tin chính trên thiết bị, tương tự như khái niệm desktop (bàn làm việc) trên máy tính để bàn Màn hính chính Android thường gồm nhiều biểu tượng (icon) và tiện ích (widget); biểu tượng ứng dụng sẽ mở ứng dụng tương ứng, còn tiện ích hiển thị những nội dung sống động, cập nhật tự động như dự báo thời tiết, hộp thư của người dùng, hoặc những mẩu tin thời sự ngay trên màn hình chính Màn hình chính có thể gồm nhiều trang xem được bằng cách vuốt ra trước hoặc sau, mặc dù giao diện màn hình chính của Android có thể tùy chỉnh ở mức cao, cho phép người dùng tự do sắp đặt hình dáng cũng như hành vi của thiết bị theo sở thích
Những ứng dụng do các hãng thứ ba có trên Google Play và các kho ứng dụng khác còn cho phép người dùng thay đổi "chủ đề" của màn hình chính, thậm chí bắt chước hình dáng của hệ điều hành khác như Windows Phone chẳng hạn Phần lớn những nhà sản xuất, và một số nhà mạng, thực hiện thay đổi hình dáng và hành vi của các thiết bị Android của họ để phân biệt với các hãng cạnh tranh Ở phía trên cùng màn hình là thanh trạng thái, hiển thị thông tin về thiết bị và tình trạng kết nối Thanh trạng thái này có thể "kéo" xuống để xem màn hình thông báo gồm thông tin quan trọng hoặc cập nhật của các ứng dụng, như email hay tin nhắn SMS mới nhận, mà không làm gián đoạn hoặc khiến người dùng cảm thấy bất tiện.Trong các phiên bản đời đầu, người dùng có thể nhấn vào thông báo để mở ra ứng dụng tương ứng, về sau này các thông tin cập nhật được bổ sung theo tính năng, như có khả năng lập tức gọi ngược lại khi có cuộc gọi nhỡ mà không cần phải mở ứng dụng gọi điện ra Thông báo sẽ luôn nằm đó cho đến khi người dùng đã đọc hoặc xóa nó đi
Trang 32Không có tính năng mở khóa màn hình
nhận diện khuôn mặt
Có tính năng mở khóa màn hình nhận diện khuôn mặt
Không hỗ trợ chỉnh sửa hình ảnh Hỗ trợ chỉnh sửa hình ảnh , tự động
nhận diện được tất cả các camera trên thiết bị
Trang 33CHƯƠNG 3: MÃ ĐỘC TRÊN ANDROID
3.1 Định nghĩa
Mã độc là một đoạn code được đưa vào phần mềm nhằm thay đổi các thực thi của hệ điều hành hoặc các chương trình bảo vệ máy tính mà không cần sự cho phép của người sử dụng Bằng cách này, phần mềm có chứa mã độc sẽ:
- Phá hoại hệ thống máy tính như xóa, sửa, làm hỏng file, dữ liệu…
3.2 Mã độc trong môi trường Android
3.2.1 Android là một môi trường lý tưởng cho mã độc phát triển
Phần lớn các smartphone đều hỗ trợ các ứng dụng email, internet baking…Sử
dụng các ứng dụng này đồng nghĩa với việc cung cấp thông tin cá nhân
Android hiện tại giữ vị trí số một trong các hệ điều hành dành cho smartphone
và máy tính bảng
Android là một hệ điều hành mã nguồn mở
3.2.2 Phân loại mã độc Android
Có nhiều cách phân loại khac nhau như: Troy Vennon dựa vào cách hoạt động lây nhiễm của mã độc đã chia ra làm bốn loại, K.H.Khan & M.N.Tahir phân loai mã độc làm 6 nhóm Theo trang web forenics chuyên nghiên cứu về mã độc dựa vào mục tiêu của mã độc để chia ra làm 9 họ:
Gửi tin nhắn trái phép (IMEL, )
Trang 34Một báo cáo mới vừa được công bố, cho thấy mức độ nghiêm trọng của mã độc trên Android - hệ điều hành di động phổ biến nhất thế giới có đến 99,9% số lượng mã độc mới được phát hiện trong quý I năm 2013 được thiết kế để nhắm đến nền tảng Android Đây là một con số báo động về tình trạng mã độc trên nền tảng di động của Google vừa được hãng bảo mật Kaspersky Lab công bố
Phần lớn trong số các loại mã độc trên Android là virus trojan, một dạng virus chủ yếu để sử dụng để đánh cắp tiền của người dùng bị lây nhiễm bằng cách gửi đến họ những tin nhắn lừa đảo, đọc lén các thông tin cần thiết và gửi báo cáo đến nơi khác, ăn cắp thông tin như là mật khẩu và số thẻ tín dụng, cài đặt lén các phần mềm chưa được cho phép, … Loại mã độc này chiếm đến 63% tổng số các loại
mã độc mới được phát tán trên Android trong quý I năm 2013
Các nhà nghiên cứu bảo mật của Kaspersky cũng báo cáo một sự bùng nồ về
số lượng các mã độc hại trên di động Theo đó chỉ tính riêng trong 3 tháng đầu năm 2013, Kaspersky đã phát hiện được số lượng mã độc mới trên các nền tảng di động bằng tổng số lượng mã độc được phát hiện trong cả năm 2012 mà Android
là nền tảng chịu ảnh hưởng nặng nhất
Với việc Android tiếp tục trở thành “mồi ngon” của hacker trong việc phát tán các loại mã độc, có vẻ như Android đang dần trở thành một “Windows thứ 2” trên lĩnh vực bảo mật, khi sự phổ biến của nền tảng này đang thu hút tối đa sự chú
ý của các tin tặc, đồng thời việc quản lý các ứng dụng cho Android một cách lỏng lẻo càng tạo điều kiện cho mã độc được phát tán dễ dàng hơn trên nền tảng di động này
Trang 35Bên cạnh lĩnh vực mã độc trên nền tảng di động, báo cáo về tình trạng bảo mật trong quý 1/2013 của Kaspersky cũng cho biết 91% các vụ phát tán mã độc chủ yếu dựa vào việc phát tán các đường link trang web có chứa mã độc Các đường link có chứa mã độc này chủ yếu được phát tán thông qua email và trên các mạng xã hội như Facebook, Twitter… Đây được xem là biện pháp được yêu thích nhất hiện nay của hacker
Con số cụ thể các loại mã độc (bao gồm cả trên nền tảng di động và các nền tảng khác) đã được Kaspersky phát hiện và vô hiệu hóa trong quý I năm 2013 là 1.345.570 352 mã độc (hơn 1 tỉ mã độc) Trong đó có hơn 60% các loại mã độc phát tán từ 3 quốc giá: Mĩ (25%), Nga (19%) và Hà Lan (14%)
3.4 Malware – tiêu biểu của mã độc trên Android
Đã không chỉ là mối lo ngại với người sử dụng máy tính, hiện nay Malware đã
và đang tấn công mạnh mẽ đến các hệ điều hành dành cho smartphone, đặc biệt là Android
Malware (phần mềm ác tính) viết tắt của cụm từ Malicious Sofware, là một phần mềm máy tính được thiết kế với mục đích thâm nhập hoặc gây hỏng hóc máy tính mà người sử dụng không hề hay biết Người viết nên nó ban đầu chỉ tập trung vào máy tính, nhất là Windows khi nó chiếm đến 90% tổng số Malware xuất hiện trên các nền tảng, bên cạnh đó là các OS khác như Linux, Chrome OS, MacOs nhưng không đáng kể Tuy nhiên giờ đây khi smartphone đang ngày càng phát triển và phổ biến dần thay thế máy tính từ các công việc soạn thảo văn bản, giải trí đến giao dịch ngân hàng thì nó trở thành mục tiêu tấn công của Malware
Theo thống kê của các hãng bảo mật trên thế giới thì hiện các Malware hiện nay mới chỉ dừng lại ở mức độ xâm nhập và ăn cắp thông tin của người dùng và
nó chưa có cơ chế lây lan Theo các kết quả trên thì Malware trên Smartphone hiện nay về cách thức hoạt động giống như một phần mềm gián điệp (Trojan), phần lớn nhắm vào dịch vụ Mobile Banking trên Smartphone để lấy cắp thông tin, các thao tác xác nhận thông qua việc sử dụng SMS Spy, tức là theo dõi tin nhắn SMS khi bạn thực hiện giao dịch với ngân hàng Bên cạnh đó là nhằm vào các cuộc gọi thực hiện trên máy bạn, tắt một số dịch vụ để dễ kiểm soát
3.5 Cơ chế hoạt động của Malware
Lấy một ví dụ cụ thể về 1 Malware rất phổ biến trong thời gian vừa qua đó
là Malware DroidDream Malware này hoạt động qua 2 giai đoạn:
- Giai đoạn 1: DroidDream được nhúng vào trong một ứng dụng (số lượng ứng dụng chứa Malware này hiện đã nhiều hơn 50 ứng dụng) và sẽ chiếm được quyền root vào thiết bị của bạn ngay sau khi bạn chạy ứng dụng đó trong lần sử dụng đầu tiên
Trang 36- Giai đoạn 2: Tự động cài đặt một ứng dụng thứ 2 với một permission đặc biệt cho phép quyền uninstall Một khi các ứng dụng thứ 2 được cài đặt, nó có thể gửi các thông tin nhạy cảm tới một máy chủ từ xa và âm thầm tải thêm các ứng dụng khác Một khi DroidDream chiếm được quyền root, Malware này sẽ chờ đợi
và âm thầm cài đặt một ứng dụng thứ hai, DownloadProviderManager.apk như một ứng dụng hệ thống Việc cài đặt ứng dụng hệ thống này nhằm ngăn ngừa người dùng xem hoặc gỡ bỏ cài đặt các ứng dụng mà không được phép
Không giống như giai đoạn 1, người dùng phải khởi động ứng dụng để bắt đầu việc lây nhiễm, ở giai đoạn thứ 2 ứng dụng tự động làm một số việc như là confirm, checkin….Một điều nữa khiến cho bạn không thể biết chúng hoạt động lúc nào, đó là Malware DroidDream này được lập trình để làm hầu hết các công việc của mình vào khoảng thời gian từ 11h đêm tới 8h sáng ngày hôm sau Đây là khoảng thời gian mà điện thoại ít có khả năng được sử dụng nhất Điều này làm cho người dùng khó khăn hơn trong việc phát hiện một hành vi bất thường trên chiếc smartphone của mình
3.6 Mục đích của Malware DroidDream
DroidDream được coi là một trong những Malware đầu tiên trên Android, mục đích của con DroidDream này mới chỉ dừng lại ở mức độ làm cho chiếc điện
thoại của người dùng tự động cài đặt những ứng dụng chứa mã độc khác Tuy nhiên các biến thể của nó đã kịp thời biến đổi để gây ra các mối nguy hại lớn hơn
rất nhiều Ví dụ như Hippo SMS được tìm thấy mới đây có khả năng tự gửi tin
nhắn mà không cần sự cho phép của người dùng, việc này sẽ khiến tiền cước phí của người dùng tăng lên một cách chóng mặt mà người dùng không biết rõ lí do
tại sao Hoặc một Malware khác là Zitmo, Malware này đưa ra các ứng dụng kích
hoạt mọi hành động liên quan đến dịch vụ ngân hàng, tiếp nhận SMS gửi đến và chuyển tới máy chủ Các đoạn code dùng 1 lần mà các ngân hàng thường gửi tới khách hàng thông qua tin nhắn SMS để chứng thực sẽ bị thu thập bởi các malware này
Hiện nay còn có một số Malware còn có khả năng nghe lén tất cả các cuộc điện thoại Vấn đề này thực sự nguy hiểm khi tất cả các vấn đề riêng tư của chúng
ta đang bị một theo dõi, vì vậy những mối nguy hiểm từ mã độc trên android đang thực sự đe dọa đến an sự an toàn của người dùng hệ điều hành này
3.7 Cơ chế bảo mật trong Android
3.7.1 Tính bảo mật trong Android
- Các ứng dụng android được tách biệt với nhau trong quá trình thực thi
- Các ứng dụng android được phân biệt bởi system ID
- Các ứng dụng android phải được signing mới có thể cài đặt vào hệ thồng
- Bảo mật trong android được thể hiện qua cơ chế “Permission”
Trang 373.7.2 Cơ chế Permission:
Bất cứ những tác vụ nào gây ảnh hưởng cho các ứng dụng khác, hệ điều hành
và người sử dụng thiết bị đều đươc bảo vệ bởi cơ chế Permission, ví dụ như đọc gửi tin nhắn, truy cập mạng, thực hiện cuộc gọi, truy cập vào thông tin cá nhân, Nói cách khác người lập trinh ứng dụng sẽ khai báo Permission cho những nguông tài nguyên này sẽ được thông báo đến người dùng trước khi cài đặt ứng dụng
3.7.3 Google Play:
Kiểm soát các mã độc trên ứng dụng
Trang 38CHƯƠNG 4: CÀI ĐẶT MỘT SỐ CHƯƠNG TRÌNH CÓ MÃ
ĐỘC TRÊN ANDROID
4.1 iCalendar
iCalendar là 1 chương trình dạng lịch xuất xứ từ Trung Quốc có gắn kèm mã độc thực hiện gửi 1 tin nhắn đến 1 số điện thoại định trước mà không thông qua sự cho phép của người dùng
4.1.1 Các công cụ cần thiết:
- Super Apk tool: https://code.google.com/p/super-apk-tool/
- File iCalendar.apk: malware.php
http://securityxploded.com/demystifying-android Hai máy ảo Android (xem hướng dẫn tạo máy ảo ở trên)
4.1.2 Các bước thực hiện:
Khởi động cả 2 máy ảo Android Ở đây gồm 2 máy Android01 mã số 5554 dùng làm máy cài iCalendar và Android02 mã số 5556 dùng làm máy nhận tin nhắn trái phép từ máy Android01
Dùng Winrar giải nén tập tin Super Apk tool vừa download về vào thư mục
bất kỳ ta được như hình:
Hình 4.1: Folder Super Apk Tool
Chọn và khởi động phiên bản phù hợp với hệ điều hành
Trang 39Hình 4.2: Super Apk Tool
Tại màn hình chính của Super Apk Tool chọn Project -> New Project
Hình 4.3: Mở file iCalendar.apk
Tại cửa sổ hiện ra tìm đến thư mục lưu trữ file iCalendar.apk và mở ra Đặt
tên cho project tại mục Project Name (có thể để mặc định) -> chọn Ok để xác
Trang 40nhận Đợi chương trình giải mà ngược xong ta được như hình Vào View -> View Smali Code
Hình 4.4: View Smali Code
Tại đây vào tiếp theo đường dẫn \com\mj\iCalendar ta được
Hình 4.5: Thư mục iCalendar
Mở file iCalendar.smali và file SmsReceiver.smali bằng Notepad hoặc
Notepad++ và thực hiện như hình bên dưới sau đó lưu lại