Trong bối cảnh này, việc đảm bảo an toàn thông tin của ứng dụng di động trở thành một yếu tố quan trọng không chỉ đối với người sử dụng mà còn đối với các nhà phát triển và nhà quản trị
Trang 1HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG
KHOA AN TOÀN THÔNG TIN
PT,
LA
DE TAI: NGHIEN CUU PHUONG PHAP PHAT HIEN
LO HONG BAO MAT CUA PHAN MEM UNG DUNG
TREN HE DIEU HANH ANDROID
Giảng viên hướng dẫn : PGS TS DO XUAN CHỢ
Sinh viên thực hiện : NGUYEN KIEU TRINH
Lớp : ` DI9CQAT01-B
Niên khóa : 2019 - 2024
Hệ : Đại học chính quy
Hà Nội, tháng | năm 2024
Trang 3HỌC VIEN CÔNG NGHỆ BƯU CHÍNH VIỄN THONG
KHOA AN TOÀN THÔNG TIN
PT,
LA
DO AN
TOT NGHIEP DAI HOC
DE TAI: NGHIEN CUU PHUONG PHAP PHAT HIEN
LO HONG BAO MAT CUA PHAN MEM UNG DUNG
TREN HE DIEU HANH ANDROID
Giảng viên hướng dẫn : PGS TS DO XUAN CHỢ
Sinh viên thực hiện : NGUYEN KIEU TRINH
Trang 4Đô án tôt nghiệp Lời cảm ơn
LỜI CẢM ƠN
Trong suốt quá trình hoc tập, thực tập va thực hiện đồ án tốt nghiệp, em luôn
nhận được sự quan tâm, hướng dẫn, giúp đỡ và chỉ bảo tận tình từ các thầy cô
trong Khoa Công nghệ thông tin 1, cũng như các thầy cô trong Khoa An toàn
thông tin — Học viện Công nghệ Bưu chính Viễn thông, bên cạnh đó là sự giúp
đỡ của bạn bè.
Lời đầu tiên, em xin gửi lời cảm ơn chân thành đến tới các Thầy, Cô trong
Khoa Công Nghệ Thông Tin I, cùng Khoa An toàn thông tin và toàn thể các cán
bộ của Học viện Công nghệ Bưu chính Viễn thông Hà Nội, đã truyền đạt cho em
những kiến thức hữu ích và quan trọng trong suốt quá trình em học tập và rèn
luyện tại trường.
Đặc biệt, em xin gửi lời biết ơn sâu sắc tới Thầy giáo hướng dẫn đồ án tốt
nghiệp của em — PGS TS Đỗ Xuân Chợ Trong suốt khoảng thời gian làm đồ
án, thầy đã tận tình hướng dẫn và chỉ dạy, giúp em có những định hướng và
phương pháp tiếp cận trong quá trình tìm hiểu, thực hiện cho tới những bước
cuối cùng dé đồ án được hoàn thành
Cuối cùng, em xin cảm ơn gia đình, bạn bẻ và đồng nghiệp đã luôn ở bên
cạnh em, quan tâm động viên, giúp em có điều kiện tốt nhất trong cả quá trình
học tập cũng như khi thực hiện đồ án
Do trình độ kiến thức cũng như kinh nghiệm thực tế còn nhiều hạn chế, nên
trong đồ án của em không thể tránh khỏi những thiếu sót Vì thế, em rất mong
nhận được sự quan tâm, góp ý của các Thầy, Cô để đồ án của em được hoàn
thiện hơn.
Những ý kiến cũng như góp ý của các Thầy, Cô sẽ giúp em nhận ra những
hạn chế, qua đó em sẽ có thêm những nguồn tư liệu cũng như kiến thức mới cho
con đường học tập cũng như công việc sau này.
Em xin chân thành cảm ơn!
Hà Nội, thang 1 năm 2024
Sinh viên thực hiện
Nguyễn Kiều Trinh
Nguyễn Kiều Trinh - B19DCAT197 iii
Trang 5Đồ án tốt nghiệp Nhận xét, đánh giá, cho điểm
(của người hướng dân)
NHAN XET, DANH GIA, CHO DIEM
(Của Người hướng dẫn)
Di€M (bằng chữ )
Đồng ý/Không đồng ý cho sinh viên bảo vệ trước hội đồng cham đồ án tốt
nghiệp?
Hà Nội, ngày tháng năm 2023
CÁN BỘ - GIẢNG VIÊN HƯỚNG DẪN
(ký, họ tên)
Nguyễn Kiều Trinh - B19DCAT197 iv
Trang 6Đồ án tốt nghiệp đại học Danh mục
NHAN XÉT, ĐÁNH GIÁ, CHO DIEM
(Của Người phản biện)
Hà Nội, ngày tháng năm 2023
CÁN BỘ - GIẢNG VIÊN PHẢN BIỆN
(ký, họ tên)
Nguyễn Kiều Trinh — B19DCAT197 iv
Trang 7Đồ án tốt nghiệp Mục lục
MỤC LỤCDANH MỤC CÁC TU VIET TẮTT - ¿St +x+EEE+EEEE2E+ESEEEEEEEEEESErErrrrrreree viii
DANH MỤC BẢNG -2- 52-5 9S SE EEE1E7127171711111111111 1111111 ye ix
DANH MỤC HINH VE uw.cssscssssssssessessesssssvcssesesssssscssesssssessssnesnesuesscsnessevsssaveeeees x
MỞ YO 52 5222 12112121121121121121121111121121111211211211211 2112112110101 0 |
CHƯƠNG 1: TONG QUAN VE UNG DUNG ANDROID -: 3
1.1 Gidi thiệu về hệ điều hành Android [ I] -2- 2s s+s++setx+xererxzes 3
1.2 Giới thiệu về cau trúc ứng dụng Android [1] [2] -««+- 5
1.2.1 Giao tiếp với hệ điều hành 2-2 2+52+S£+EE+EE£EEzEerxerrrerszee 5
1.2.2 Android Manifest cccccccccceesccccssssssccssssessccessssssecesseesssseeees 5
1.2.3 Các thành phan trong ứng dung Android c5 s+c+sscxe¿ 61.3 Một vài van dé bảo mật thường gặp trong ứng dụng Android 9
1.3.1 Van dé phân quyền - 2 2Ss+EE‡EEEEE2EEEE2EEEEEEE2EEEEEeEErreeg 91.3.2 Var đề lưu trữ ce+E2E2E21211211211111111 E111 cxe 101.3.3 Vấn đề WebViews -c- 2c c2 2211212112111 re 11
CHUONG 2: PHUONG PHAP KIEM THU AN TOAN UNG DUNG
ANDROID 12
2.1 Tổng quan về kiểm thử an tồn (security testing) s- seers 12
2.1.1 _ Giới thiệu về kiểm thử an tồn (security testing) - 122.1.2 _ Giới thiệu về kiểm thử an tồn trên ứng dụng Android 122.1.3 So sánh kiểm thử an tồn (security testing) và kiểm thử xâm nhập
UM9s10vi10i80:51ii12 212777 4 12
2.2 Phương pháp thực hiện kiểm thử an tồn [ I] -¿ 2sz5sz=s¿ 13
2.2.1 Phan tích tinh (static anaÏyS1S) - 5c csScsxssskssseersreee 13 2.2.2 _ Phân tích động (dynamic anaÌyS1S) +55 ssssss++sssseeexssss 15
2.2.3 Kiểm thử bảo mật tích hợp -¿- ¿set +k‡EeEEkeEerkrkererkes 15
2.3 Một vài cơng cụ phân tích tinh ứng dung Android - - 16
2.3.1 QARK (Quick Android Review KTẨ) 2-55 S5 s+<ccsee2 16 2.3.2 AndroBugs FramewWOTĂ - c1 vi rrrerree 16 2.3.3 MobSF (Mobile Security Framework) - «+ ss++ss+sssss2 16
2.4 Tổng quan về OWASP MASVS v.2.0.0 [1] [3] -se- 17
2.4.1 Giới thiệu về OWASP 2c 2k 2H22 21211211212 reo 17
Nguyễn Kiều Trinh — vì
Trang 8Đồ án tốt nghiệp Mục lục
2.4.2 Giới thiệu về OWASP MASVS v.2.0.0 -©22©c2+cczszzezxee 18
2.4.3 OWASP ae ch 19
2.4.4 Các nhóm kiểm soát (control group) OWASP MASVS v.2.0.0 19
2.5 Nội dung danh sách kiểm thử an toàn ứng dụng di động OWASP dành
cho ứng dụng di dộng Android (OWASP MASVS Checklist) 29
CHƯƠNG3: XAY DỰNG, CÀI ĐẶT CÔNG CỤ & THUC NGHIỆM 35
3.1 GiGi thiệu CONG CỤ - cv ngư 35
3.2 Phân tích thiết kế 2-cct22EktttEkritttrittrrrrrrrrrrirrrreried 35
3.2.1 Phân tích yêu cầu -2¿+E++E++E22EE2E2EE2E2EEEE2EE2EEEEEerrrer 353.3 Thiết kế công Cụ -22+2E2EE2 2 12E121215112111212121111 111 cxe 36
3.4 Sơ đồ quy trình xử lý của CON CỤ - 2 2 2+cz+Ez+EszErxerszrersrree 37
3.5 Cấu trúc mã nguồn CUA CONG 00) 01 38
3.6 Xây dựng nội dung bộ lọc rà quét lỗ hồng ¿2-5 2 s+s+Escszxd 38
3.6.1 _ Phân tích yêu cầu 2-5 Ek E EEEE 2111111111111 38
3.6.2 Xây dựng nội dung bộ ÏỌC - ¿c2 33+ E*E+eeereeesereereses 39
3.6.3 Cau tạo một tệp json cho một module lỗ hồng'ạỘạáa 393.7 Khả năng kế thừa hướng dẫn OWASP MASTG và tiêu chuẩn OWASP
MASVS va0 CONG 0 39
3.8 Cải đẶ HH HH TH TH TH TH HH HH HT nh nh nhà 4]
3.8.1 Cài đặt trực tiep eee essccsessscsscsscsscsscsssssessssecsnessesncsneensaeeeneees 41
3.8.2 Cai đặt thông qua DoCK€T - c6 5c S331 3 3+ vEEeeeeeeesseeeree 42
3.0 Thử nghiỆm - - c1 1 TH ng HH ng re 44
3.9.1 _ Đối tượng thử nghiệm -2- 2-52 ©E+EE+EEtEEeEEeEEerkerkerkrrered 44
3.9.2 _ Thử nghiệm CONG CỤ - - + +1 k SE v vs ve 45
3.9.3 Kết quả đầu ra -c k1 151121121 1121111 11111 tk 46
3.10 _ Đánh giá hiệu quả - -.- SĂ 5c SE SE S SE SH HH HH nh, 47
3.10.1 So sánh kết quả thực nghiệm công cụ OMSA & Mobsf 47
3.10.2 _ Đánh giá tổng quan các công cụ - 2+cz+c+xerzrreerees 49
450097) A.4|Q(IA 51
Nguyén Kiéu Trinh — vũ
Trang 9Đồ án tốt nghiệp Danh mục các từ viết tắt
DANH MỤC CÁC TU VIET TAT
Từ viết tắt Từ day du
API Application Programming Interface
APK Android Package Kit
CA Certificate Authority
IDE Integrated Development Environment
IPC Inter-Process Communication
MASTG Mobile Application Security Testing Guide
MASVS Mobile Application Security Verification Standard
MFA Multi-Factor Authentication OWASP Open Web Application Security Project
PHI Personally Identifiable Information QARK Quick Android Review Kit
SDK Software Development Kit XML Extensible Markup Language XSS Cross-Site Scripting
Trang 10Đồ án tốt nghiệp Danh mục bảng
DANH MỤC BẢNGBang 1 So sánh kiểm thử an toàn và kiểm thử xâm nhập - s5: 12
Bảng 2 Nội dung OWASP MAS Checklist cho ứng dụng Android 30
Bang 3 Những đầu mục kiểm thử chưa được ứng dụng vào công cụ 40
Bang 4 So sánh kết quả thực nghiệm - 25c ©S2ESE£E£E£EE2EeEEzEerxrrered 48
Bang 5 Đánh giá hiệu quả các công cụ phân tích tĩnh -. -«+++-«+2 49
Nguyễn Kiều Trinh — ix
Trang 11Đồ án tốt nghiệp Danh mục hình vẽ
DANH MỤC HÌNH VE Hình 1.1 Bộ cài đặt phần mềm Android - 2 2 2 2+S£+££+E£+E£+EzzEzEzzzezxee 3
Hình 1.2 Một tệp Android ManIfEst - + 2 322 E321 E+2EEE£EEseexeeeerreses 6
Hình 1.3 Một ACfIVI - Tnhh HH nh TT TH TH nh HH Hư 6
Hình 1.4 Một Boardcast Ñ€C€1V€T - 2c 3312230111112 v1 vn ng g1 1 xxx 8
Hình 2.1 Logo công cụ QARK - 2c 22c 1321112111311 111 11kg 16
Hình 2.2 Logo công cụ MobSkE - cv ng TH nếp 17
Hình 2.3 Trang chủ OWASP Mobile Application Se€curIfy «- 18
Hình 3.1 Lưu đồ xử lý công cụ OIMSA 2 52+E2EE2EE2EEEEEEE2EEEEErEerrkee 37 Hình 3.2 Tệp json cho một module lỗ hỗng -2- 2 2 2522 £2+E£2zE+£zzS2 39 Hình 3.3 Đường dẫn tải công cụ OMSA ¿-2- 5-5222 2EvErterrrrrrrrrrres 42 Hình 3.4 Giao diện công cụ OMSA 111 H111 11119 111 111g 11 ngư 42 Hình 3.5 Giao diện Docker Deskfop - 5 5 23c 3322 E£++EEE+seeexeeeesresss 43 Hình 3.6 Tép Dockerfile cài đặt công cụ OMSA c + +S+ss++seexsss 43 Hình 3.7 Tạo thành công Docker Image cho công cụ OMSA 44
Hình 3.8 Ung dụng Android InsecureBanikv2 2 2+ 2+ e+x+EzEzEezxzes 44 Hình 3.9 Công cụ OMSA tiến hành quá trình rà quét lỗ hồng 45
Hình 3.10 Cau hình một Docker Conntainer dé chạy công cụ OMSA 46
Hình 3.11 Công cụ OMSA tiến hành rà quét lỗ hồng thông qua Docker 46
Hình 3.12 Một phan kết quả rà quét lỗ hồng của công cụ OMSA 47
Nguyễn Kiều Trinh —
Trang 12Đồ án tốt nghiệp Mở đầu
MỞ ĐẦUỨng dụng di động Android ngày nay đóng vai trò quan trọng trongcuộc sống hàng ngày của chúng ta, từ việc giao tiếp, giải trí đến quản lýcông việc và tài chính Trong bối cảnh này, việc đảm bảo an toàn thông
tin của ứng dụng di động trở thành một yếu tố quan trọng không chỉ đối
với người sử dụng mà còn đối với các nhà phát triển và nhà quản trị hệthống
Hiện nay, có 2 phương pháp chính dé kiểm thử an toàn các ứng dụng
Android là phân tích động và phân tích tinh Phân tích động thực hiện
việc kiểm tra bằng cách chạy ứng dụng trong môi trường thực và theo dõi
hành vi của nó trong quá trình chạy Ngược lại, phân tích tĩnh thực hiện
đánh giá bang cách kiểm tra mã nguồn và tài nguyên của ứng dụng mà
không chạy nó.
Với đề tài “Nghiên cứu phương pháp phát hiện lỗ hỗng bảo mật
của phần mềm ứng dụng trên hệ điều hành Android”, đồ án này tập
trung nghiên cứu về bộ tiêu chuẩn kiểm thử ứng dụng di động OWASPMASVS (OWASP Mobile Application Security Verification Standard)
phiên bản 2.0.0 và tài liệu hướng dẫn kiểm thử an toàn ứng dụng di động
OWASP MASTG (OWASP Mobile Application Security Testing Guide)
phiên bản 1.6.0, từ đó phát triển công cụ phân tích tĩnh ứng dụng Android
thông qua file apk.
Đồ án được chia thành 03 chương với nội dung như sau:
Chương 1: Tổng quan về ứng dụng AndroidChương này sẽ giới thiệu về hệ điều hành Android, cấu trúc của ứngdụng Android và một vài vấn đề bảo mật thường gặp với ứng dụng
Android.
Chương 2: Phương pháp kiểm thử an toàn ứng dụng Android
Nội dung chương 2 sẽ giới thiệu về kiểm thử an toàn, 2 phương phápkiểm thử an toàn: phân tích tĩnh & phân tích động Cùng với đó là giới
Nguyễn Kiều Trinh — 1
Trang 13gồm phần kế thừa từ tiêu chuan OWASP MASVS, tài liệu OWASP
MASTG và phần tự phát triển các chức năng của công cụ Kế tiếp là phần
cài đặt, thực nghiệm công cụ va đánh giá kết quả đạt được với công cụ
phân tích tĩnh tự động khác.
Do thời gian có hạn cũng như kiến thức của còn hạn chế nên quá trình
thực hiện đồ án sẽ khó tránh khỏi những thiếu sót Em rất mong nhậnđược các ý kiến đóng góp của các Thay, Cô dé đồ án của em được hoàn
thiện hơn.
Em xin chân thành cảm ơn!
Nguyễn Kiều Trinh — 2
Trang 14Đồ án tốt nghiệp Chương 1: Tổng quan
CHUONG 1: TONG QUAN VE UNG DUNG ANDROID1.1 Giới thiệu về hệ điều hành Android [1]
Android là một nền tảng mã nguồn mở dựa trên Linux, được phát triển bởiOpen Handset Alliance (một liên minh do Google dẫn đầu), và đóng vai trò là hệ
điều hành di động Hiện nay, nền tảng này là cơ sở cho nhiều loại công nghệ
hiện đại, bao gồm điện thoại di động, máy tính bảng, thiết bị đeo thông minh,
tivi và các thiết bị thông minh khác Các phiên bản Android thông thường đi
kèm với nhiều ứng dụng được cài sẵn và hỗ trợ cài đặt ứng dụng từ bên thứ ba
thông qua cửa hàng Google Play và các cửa hàng khác.
Bộ cài đặt phần mềm của Android bao gồm nhiều tầng khác nhau Mỗi tầngđịnh nghĩa các giao diện và cung câp các dịch vụ cụ thê.
Activity Location Package Notification
View Systern Resource Telephony
Native C/C++ Libraries Android Runtime
OpenMAX AL < Android Runtime (ART)
Media Framework OpenGL ES Core Libraries
Bluetooth
Power Management
Hinh 1.1 B6 cai dat phan mém Android
Nguyén Kiéu Trinh — 3
Trang 15Đồ án tốt nghiệp Chương 1: Tổng quan
- Kernel (Nhân): Ở tầng thấp nhất, Android dựa trên một biến thé của hạt
nhân Linux và bao gồm một số thành phần thêm vào đáng kể, như Low
Memory Killer, wake locks, driver Binder IPC, v.v.
- HAL (Hardware Abstraction Layer — Lớp trừu tượng phan cứng):
định nghĩa một giao diện tiêu chuẩn để tương tác với các thành phần phầncứng tích hợp sẵn Nhiều triển khai HAL được đóng gói thành các modulethư viện chia sẻ mà hệ thống Android gọi khi cần Điều này là cơ sở cho
việc cho phép ứng dụng tương tác với phần cứng của thiết bị Ví dụ nhưcho phép một ứng dụng điện thoại thông thường sử dụng micro và loa của
thiết bị
- Runtime Environment (Môi trường thực thi): Ứng dụng Android được
viết bằng Java và Kotlin sau đó được biên dịch thành mã bytecode Dalvik,
có thể được thực thi bằng cách sử dụng một môi trường thực thi giải thích
các hướng dẫn bytecode và thực thi chúng trên thiết bị đích Đối với
Android, điều này được gọi là “Môi trường thực thi Android” (AndroidRuntime - ART) Điều này tương tự như máy ảo Java (JVM - Java virtual
machine) cho ứng dụng Java hoặc môi trường đơn (mono runtime) cho ứng dụng NET.
- Sandboxing (Môi trường cách ly): Ung dụng Android không có quyền
truy cập trực tiếp vào tai nguyên phần cứng và mỗi ứng dụng chạy trongmáy ảo hoặc môi trường cách ly (sandbox) riêng của nó Điều này chophép hệ điều hành kiểm soát chính xác các tài nguyên và quyên truy cập
bộ nhớ trên thiết bị Ví dụ, một ứng dung gặp sự cố không ảnh hưởng đến
các ứng dụng khác đang chạy trên cùng thiết bị Android kiểm soát số
lượng tối đa tài nguyên hệ thống được cấp phát cho các ứng dụng, ngăn
chặn bất kỳ ứng dụng nào chiếm đa số tài nguyên quá nhiều Đồng thời,thiết kế môi trường cách ly này có thể xem xét như một trong nhữngnguyên tac của chiến lược bảo mật toàn diện (defense-in-depth) củaAndroid Một ứng dụng độc hại từ bên thứ ba, có đặc quyền thấp, không
Nguyễn Kiều Trinh — 4
Trang 16Đồ án tốt nghiệp Chương 1: Tổng quan
nên có khả năng thoát khỏi môi trường của nó và đọc bộ nhớ của một ứng
dụng đối tác trên cùng thiết bị
1.2 Giới thiệu về cấu trúc ứng dụng Android [1] [2]
1.2.1 Giao tiếp với hệ điều hành
Ứng dụng Android tương tác với các dịch vụ hệ thống thông qua khung phát
triển Android (Android Framework), một tầng trừu tượng cung cấp các API Java
cấp cao Da số các dịch vụ này được triệu hồi thông qua các cuộc gọi phương
thức Java bình thường và được dịch thành các cuộc gọi IPC (Inter-Process
Communication) đến các dich vụ hệ thống đang chạy ở nên Ví dụ về các dịch
Tệp ‘Manifest’ mô tả cau trúc của ứng dụng, các thành phan của nó (hoạt
động (Activities), dich vụ (Services), cung cấp nội dung (Content Providers) va
bộ nhận intent (Intent Receivers), va các quyền được yêu cầu (Request
Permission)) Nó cũng chứa thông tin tổng quan về ứng dụng, như biểu tượng,
sô phiên bản và giao diện.
Nguyễn Kiều Trinh — 3
Trang 17Đồ án tốt nghiệp Chương 1: Tổng quan
Tệp có thể liệt kê các thông tin khác như API tương thích (3 loại phiên bản
SDK: tối thiểu, mục tiêu và tối đa) và loại bộ nhớ mà ứng dụng có thể được cài
đặt (bên ngoài hoặc bên trong).
<manifest
package="com.owasp.myappLication android: versionCode="6.1" >
1.2.3 Cac thanh phan trong tng dung Android
Ung dung Android được tao thành từ một số thành phan cấp cao Các thành
khai ba Activities khác nhau Các Activities được khai báo bằng cách mở rộng
Nguyễn Kiều Trinh — 6
Trang 18Đồ án tốt nghiệp Chương 1: Tổng quanlớp Activity và chứa tat cả các yếu tô giao điện người dùng: mảnh (Fragments),
khung nhìn (Views), và khung thiết kế (Layouts)
Mỗi Activity có một vòng đời riêng và cần theo dõi các thay đổi hệ thống
để xử lý chúng Các Activity có thể ở trong các trạng thái sau: active (hoạt
động), paused (tạm dừng), stopped (đã dừng), va inactive (không hoạt động).
Các trạng thái này được quản lý bởi hệ điều hành Android
1.2.3.2 Fragments
Fragment đại diện cho một phần của giao diện người dùng bên trong
Activity Fragment được giới thiệu trong Android với phiên ban Honeycomb 3.0
(API level 11) Chúng được thiết kế dé đóng gói các phần của giao diện dé thuận
tiện tái sử dụng và phù hợp với kích thước màn hình khác nhau.
Fragments là các thực thê tự trị vì chúng bao gồm tất cả các thành phần cần
thiết của chúng (chúng có khung thiết kế riêng, nút, v.v.) Tuy nhiên, chúng cần
được tích hợp với các Activities để có ích: Fragments không thê tồn tại một cách
độc lập Chúng có một vòng đời riêng, liên quan đến vòng đời của các Activities
mà chúng triển khai Vì Fragments có vòng đời riêng, lớp Fragment chứa các
quản lý sự kiện có thé được định nghĩa lại và mở rộng
1.2.3.3 Content Providers
Android sử dung SQLite dé lưu trữ dữ liệu vĩnh viễn SQLite là một côngnghệ lưu trữ dữ liệu quan hệ nhẹ, hiệu quả, mã nguồn mở không đòi hỏi nhiều
công suất xử lý, lý tưởng cho việc sử dụng trên thiết bị di động
Android cung cấp API đầy đủ với các lớp cụ thể như Cursor,
ContentValues, SQLiteOpenHelper, ContentProvider, ContentResolver, v.v.
Content Providers cung cấp cơ chế tuyệt vời dé trừu tượng hóa nguồn dữ
liệu và chia sẻ dữ liệu giữa các ứng dụng.
1.2.3.4 Services
Nguyễn Kiều Trinh — 7
Trang 19Đồ án tốt nghiệp Chương 1: Tổng quan
Services là các thành phần của hệ điều hành Android (dựa trên lớp Service)thực hiện các nhiệm vụ ở nền (xử ly dữ liệu, khởi động intents va thông báo,
v.v.) mà không hiền thị giao điện người dùng
Services được thiết kế dé chạy các quy trình lâu dai Ưu tiên hệ thống của
chúng thấp hơn so với ứng dụng đang hoạt động nhưng cao hơn so với ứng dụng
không hoạt động, giúp chúng ít bị hủy khi hệ thống cần tải nguyên
1.2.3.5 Inter-Process Communication
Giao tiếp giữa các tiến trình cho phép các ứng dụng trao đổi tin hiệu va ditliệu một cách an toàn Android sử dụng Binder, một triển khai tùy chỉnh của
OpenBinder, làm cơ sở cho giao tiếp liên tiến trình
Khung phát triển Binder (Binder Framework): Bao gồm nhiều khía cạnh như
Binder Driver, Binder Protocol, IBinder Interface, Binder Object, Binder
Service va Binder Client Giao tiếp qua Binder giúp ứng dụng chuyên tin hiệu
va dir liệu một cach an toàn.
1.2.3.6 Intents
Intent là một khung phát triển giao tiếp bất đồng bộ được xây dựng trên nền
tảng của Binder Khung này cho phép cả gửi tin nhắn điểm-điểm
(point-to-point) và đăng ký nhận tin nhắn Một Intent là một đối tượng tin nhắn có thê
được sử dụng dé yêu cầu một hành động từ một thành phan ứng dụng khác
Mặc du Intent hỗ trợ giao tiếp giữa các thành phan theo nhiều cách, có ba
trường hợp sử dụng cơ bản: khởi chạy một Activity, khởi chạy một Service, gửi
một Broadcast.
Có 2 loại Internt: Explicit Intent (intent rõ rang), dùng dé đặt tên cho thành
phần sẽ được khởi chạy, và Implicit Intent (intent ngụ ý), được gửi đến hệ điều
hành đề thực hiện một hành động nhất định trên một tập đữ liệu nhất định
1.2.3.7 Broadcast Receivers
Nguyễn Kiều Trinh — 8
Trang 20Đồ án tốt nghiệp Chương 1: Tổng quan
với các sự kiện (nội bộ, được khởi chạy bởi các ứng dụng khác hoặc bởi hệ điều
hành) Thông thường, chúng được sử dụng để cập nhật giao diện người dùng,
khởi động dịch vụ, cập nhật nội dung vả tạo thông báo người dùng.
Có hai cách để làm cho một Broadcast Receiver được biết đến bởi hệ thống.
Một cách là khai báo nó trong tệp Android Manifest Trong Manifest, nên xác
định một liên kết giữa Broadcast Receiver và một bộ lọc Intent dé chỉ định các
hành động ma Receiver được thiết lập dé lắng nghe
1.3 Một vài vẫn đề bảo mật thường gặp trong ứng dụng Android
Ứng dụng Android, giống như bất kỳ hệ thống nào khác, có thể gặp phải
nhiều lỗ hồng bảo mật Dưới đây là một số van dé bảo mật thường gặp mà các
nhà phát triển và chuyên gia bảo mật cần lưu ý:
1.3.1 Vấn đề phân quyền
Android gán một danh tính hệ thống riêng biệt (ID người dùng và ID nhóm
Linux) cho mỗi ứng dụng đã được cài đặt Bởi vì mỗi ứng dụng Android hoạt
động trong một môi trường cách ly (sand box), ứng dụng phải yêu cầu một cách
rõ ràng quyền truy cập vào tài nguyên và dữ liệu nằm ngoài môi trường cách ly
của chúng.
Chúng yêu cầu quyền này bang cách khai báo các quyền họ cần sử dụng dé
truy cập dữ liệu và tính năng hệ thống Tùy thuộc vào mức độ nhạy cảm hoặc
quan trọng của dữ liệu hoặc tính năng đó, hệ thống Android sẽ tự động cấp
quyén hoặc yêu cau người dùng phê duyệt yêu cau
Nguyễn Kiều Trinh — 9
Trang 21Đồ án tốt nghiệp Chương 1: Tổng quan
Các quyền Android được phân loại thành bốn loại khác nhau dựa trên mức độ
bảo vệ mà chúng cung câp:
- Normal (Bình thường): Quyền này cung cấp quyền truy cập cho ứng
dụng vào các tính năng cấp ứng dụng với mức độ rủi ro tối thiểu đối với
các ứng dụng khác, người dùng và hệ thống Đối với các ứng dụng dành
cho Android 6.0 (API cấp 23) trở lên, các quyền này được cấp tự độngvào thời điểm cài đặt Đối với các ứng dụng dành cho API cấp thấp hơn,người dùng cần phê duyệt chúng vào thời điểm cài đặt Ví dụ:
android.permission.INTERNET.
- Dangerous (Nguy hiểm): Quyền này thường cung cấp quyền kiểm soát
của ứng dụng đối với đữ liệu người dùng hoặc kiểm soát của thiết bị mộtcách ảnh hưởng đến người dùng Loại quyền này có thé không được cấp
tự động vào thời điểm cài đặt; việc liệu ứng dụng có nên có quyền đó hay
không có thể để lại quyết định cho người dùng Ví du:
android.permission.RECORD_ AUDIO.
- Signature (Chữ ký): Quyền này chi được cấp nếu ứng dụng yêu cầu
được ký bằng chứng chỉ giống với chứng chỉ được sử dụng để ký ứng
dụng đã khai báo quyền đó Nếu chữ ký khớp, quyền sẽ được cấp tự động
vào thời điểm cài đặt Ví dụ:
android.permission ACCESS MOCK LOCATION.
- SystemOrSignature (Hệ thống hoặc Chữ ky): Quyền nay chi được cấp
cho các ứng dụng nhúng trong hình ảnh hệ thống hoặc có chữ ký giốngvới chữ ký được sử dụng dé ky ứng dụng đã khai báo quyền đó Ví du:
android.permission ACCESS DOWNLOAD MANAGER.
Một vai van đề liên quan đến phân quyền có thé kế đến như “yêu cầu quyền
quá mức”, khi một số ứng dụng yêu cầu quyền hạn không cần thiết hoặc quá
mức so với chức năng thực tế của chúng Hoặc ngược lại 'không kiểm soát
quyền han’, khi thiếu kiểm soát đối với quyền han có thé dẫn đến việc sử
dụng sai mục đích và môi đe dọa bảo mật.
Nguyễn Kiều Trinh — 10
Trang 22Đồ án tốt nghiệp Chương 1: Tổng quan
1.3.2 Vấn đề lưu trữ
Dữ liệu nhạy cảm và riêng tư phải được bảo vệ, hoặc tốt hơn, nên giữ chúng
ra khỏi bộ nhớ thiết bị Việc lưu trữ dữ liệu là quan trọng đối với nhiều ứng
dụng di động Thông thường, chỉ nên lưu trữ ít dữ liệu nhạy cảm nhất có thể trên
bộ nhớ cục bộ vĩnh viễn Tuy nhiên, trong hầu hết các tình huống thực tế, một số
loại đữ liệu người dùng cần được lưu trữ Ví dụ, yêu cầu người dùng nhập một
mật khâu rất phức tạp mỗi lần ứng dụng bắt đầu không phải là ý tưởng tốt về
mặt tiện ích sử dụng.
Hầu hết các ứng dụng cần lưu trữ một loại mã xác thực cục bộ nào đó dé
tránh điều này Thông tin nhận dang cá nhân (Personally identifiable
information - PII) và các loại dữ liệu nhạy cảm khác cũng có thể được lưu nếu
một tình huống cụ thể yêu cầu Dữ liệu nhạy cảm dễ bị đánh cắp khi nó không
được ứng dụng bảo vệ đúng cách khi lưu trữ liên tục Ứng dung có thé lưu trữ
dữ liệu ở nhiều nơi, ví dụ, trên thiết bị hoặc trên thẻ SD ngoại vi Ngoài ra , việc
lưu trữ thông tin cá nhân quá lâu mà không cần thiết có thể tăng nguy cơ bị tấn
công.
1.3.3 Vấn đề WebViews
WebViews là một thành phần trong bộ phát triển phần mềm Android
(Android SDK - Software Development Kit) cho phép hiển thị nội dung trang
web bên trong ứng dụng mà không cần chuyên hướng người dùng đến trình
duyệt web bên ngoài bằng cách sử dụng trình duyệt web tích hợp sẵn trong hệ
điều hành Android, giúp hiển thị trang web với đầy đủ tính năng như trên trình
duyệt bình thường.
Van dé bảo mật ứng dụng Android liên quan đến WebViews khá phô biến là
việc thực thi JavaScript trong WebViews.
JavaScript có thể được chèn vào ứng dụng web thông qua các kỹ thuật XSS
như Reflected, Stored, hoặc DOM-based Cross-Site Scripting (XSS) Với ứng
dung di động chạy trong một môi trường cách ly (sand box) và không có 16 hong
này khi triển khai một cách nguyên bản Tuy nhiên, WebViews có thê là một
Nguyễn Kiều Trinh — II
Trang 23Đồ án tốt nghiệp Chương 1: Tổng quanphần của ứng dụng nguyên bản để cho phép xem trang web Mỗi ứng dụng có
bộ nhớ cache WebView riêng, không được chia sẻ với Trình duyệt nguyên ban
hoặc các ứng dụng khác.
Trên Android, WebViews sử dụng bộ động WebKit dé hiển thị trang web,
nhưng các trang web này được thu gọn xuống chức năng tối thiểu, ví dụ, các
trang không có thanh địa chỉ Nếu triển khai WebView quá lỏng lẻo và cho phép
sử dụng JavaScript, JavaScript có thé được sử dụng để tan công ứng dụng và
truy cập vào dir liệu của nó.
Nguyễn Kiều Trinh — 12
Trang 24Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
CHƯƠNG 2: PHƯƠNG PHÁP KIEM THU AN TOÀN UNG DỤNG
ANDROID2.1 Tổng quan về kiểm thử an toàn (security testing)
2.1.1 Giới thiệu về kiểm thử an toàn (security testing)
Kiểm thử an toàn là quá trình đánh giá và đảm bảo răng một hệ thống, ứngdụng, hay một sản phẩm phần mềm đáp ứng các tiêu chuan bảo mật và không có
lỗ hồng an ninh nao có thé bị lợi dụng Mục tiêu chính của kiểm thử an toàn là
đảm bảo rằng hệ thống hoặc ứng dụng đáp ứng các tiêu chuẩn bảo mật và không
có lỗ hồng nào trong quá trình triển khai
2.1.2 Giới thiệu về kiểm thử an toàn trên ứng dụng Android
Kiểm thử an toàn trên ứng dụng Android là bước quan trọng để đảm bảongười dùng trải nghiệm an toàn Chuyên gia kiểm thử đảm bảo tính bảo mật của
dữ liệu truyền tải và ngăn chặn lạm dụng cảm biến như camera, microphone
Đánh giá an toàn của quản lý đăng nhập và quyên truy cập là trọng tâm, giúp hệ
thống chống lại các tấn công
Kiểm thử an toàn không chỉ bảo vệ ứng dụng mà còn xây dựng niềm tin từngười dùng, đặc biệt trong bối cảnh quan tâm ngày càng cao về quyên riêng tư
và an toàn thông tin.
2.1.3 So sánh kiểm thir an toàn (security testing) và kiểm thử xâm nhập
(penetration testing)
Bang 1 So sánh kiểm thử an toàn và kiểm thử xâm nhập
Tiêu chí Kiêm thử an toàn Kiêm thử xâm nhập
Phạm vi Bao gồm một loạt các | Tập trung hơn vao việc tìm kiếm
phương pháp kiểm thử để | và khai thác lỗ héng bảo mật cụ
đảm bảo rằng hệ thống, ứng | thể trong hệ thống hoặc ứng
dụng hoặc sản phẩm đáp | dụng Kiểm thử xâm nhập được
ứng các yêu cầu bảo mật cơ | thực hiện để kiểm tra khả năng
bản Kiêm thử an toàn có | chông lại các cuộc tân công thực thê bao gôm kiêm thử bảo | tê và xác định cách mà một kẻ
Nguyễn Kiều Trinh — 13
Trang 25Đồ án tốt nghiệp Chương 2: Phương pháp kiêm thử
mật, kiểm thử chấp nhận, vàkiểm thử chức năng để đảm
Tìm hiểu cách một kẻ tấn công
có thể xâm nhập vào hệ thống,
đánh giá mức độ nguy cơ thực tế
và cung cấp thông tin chỉ tiết vềcách bảo mật có thể được cải
giá mức độ an toàn của hệ
thống.
Thường đòi hỏi sự can thiệp thủ
công để thực hiện các kịch bảntan công và tìm kiếm lỗ hồng
bảo mật cụ thê
Thời điểm
thực hiện
Có thể được thực hiện ởnhiều giai đoạn trong quátrình phát triển và triển khai
hệ thống
Thường được thực hiện sau khi
hệ thống hoặc ứng dụng đã hoànthành và trước khi triển khai,
hoặc định kỳ để kiểm tra định kỳ
Cung cấp một báo cáo chỉ tiết về
lỗ hồng cụ thé được tim thấy và
cách chúng có thể được khắc
phục.
2.2 Phương pháp thực hiện kiểm thử an toàn [1]
Phương pháp thực hiện kiểm thử an toàn bao gồm hai khía cạnh quan
trọng: phân tích tinh (static analysis) và phân tích động (dynamic analysis).
Nguyễn Kiêu Trinh — 14
Trang 26Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
2.2.1 Phân tích tinh (static analysis)
Phân tích tinh là quá trình đánh giá các thành phan của hệ thống ma khôngthực hiện thực tế các thử nghiệm chạy Trong kiểm thử an toàn, phân tích tĩnh
tập trung vào đánh giá mã nguồn, cau trúc dữ liệu, và thiết kế dé xác định các 16
hồng bảo mật có thé xuất hiện mà không cần chạy ứng dụng
2.2.1.1 Phan tích tinh thủ công
Người kiểm thử thực hiện kiểm tra mã nguồn thủ công băng cách phân tích
mã nguồn của ứng dụng di động dé tìm kiếm lỗ hồng bảo mật Phương pháp có
thể đa dạng từ việc tìm kiếm từ khóa cơ bản thông qua lệnh 'grep' đến việc kiêm
tra từng dòng mã nguồn
Các môi trường phát triển tích hợp (IDEs) thường cung cấp các chức năng
kiểm tra mã nguồn co bản và có thé được mở rộng băng các công cụ khác
Phương pháp phổ biến cho kiểm tra mã nguồn thủ công bao gồm việc xác định
các chỉ báo lỗ hồng bảo mật quan trong bang cách tìm kiếm các API và từ khóa
nhất định, như cuộc gọi phương thức liên quan đến cơ sở dữ liệu như
"executeStatement" hoặc "executeQuery" Mã chứa các chuỗi này là điểm xuất
phát tốt cho phân tích thủ công
Khác biệt so với phân tích tự động, kiểm tra mã nguồn thủ công rat tốt dé
xác định các lỗ hồng trong lô-gic kinh doanh, vi phạm tiêu chuẩn và các thiếu
sót trong thiết kế, đặc biệt là khi mã nguồn là kỹ thuật an toàn nhưng có logic sai
lầm Những tình huống như vậy thường không thé được phát hiện bởi bất kỳ
công cụ phân tích mã tự động nảo.
Việc kiểm tra mã nguồn thủ công đòi hỏi một chuyên gia kiểm tra mãnguồn chuyên nghiệp, có kiến thức sâu sắc về cả ngôn ngữ và các khung phát
triển được sử dụng cho ứng dụng di động Kiểm tra mã nguồn day đủ có thé là
một quá trình chậm, tẻ nhạt, tốn thời gian đối với người kiêm thử, đặc biệt là đối
với các mã nguôn lớn có nhiêu phụ thuộc.
2.2.1.2 Phân tích tĩnh tự động
Nguyễn Kiều Trinh — 1Š
Trang 27Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
Các công cụ phân tích tự động có thể được sử dụng dé tăng tốc quá trìnhkiêm thử Chúng kiêm tra mã nguồn dé đảm bảo tuân thủ với một bộ quy tắc hay
các quy trình hay thực hành tốt của ngành, sau đó thường hiển thị một danh sách
các phát hiện hay cảnh báo và chỉ ra tất cả các vi phạm phát hiện được Một SỐ
công cụ phân tích tĩnh chạy trên ứng dụng đã biên dịch, một số cần được cung
cấp mã nguồn gốc, và một số chạy như tiện ích mở rộng phân tích trực tiếp trong
IDE.
Mặc dù một số công cụ phân tích mã tĩnh tích hợp nhiều thông tin về cácquy tắc và ngữ nghĩa cần thiết dé phân tích ứng dụng di động, chúng có thé tạo
ra nhiều kết quả dương tính giả, đặc biệt là nếu chúng không được cau hình cho
môi trường đích Do đó, một chuyên gia bảo mật luôn cần xem xét kết quả một
cách cân thận.
2.2.2 Phân tích động (dynamic analysis)
Phân tích động là quá trình kiểm thử hệ thống khi đang chạy để đánh giá
cách nó phản ứng và chống lại các cuộc tấn công thực tế Trong kiểm thử an
toàn, phân tích động thường bao gồm việc thực hiện các kịch bản tan công, kiêm
tra mức độ an toản của cơ sở dữ liệu, và đánh giá khả năng chống lại các
phương thức tan công phổ biến
Các chuyên gia thường sử dụng các công cụ tự động và thủ công để môphỏng cuộc tấn công và đánh giá sự an toàn của hệ thống Phân tích động giúp
xác định lỗ hồng hiện tại và kiểm tra khả năng chống lại các tình huống nguy cơ
trong môi trường thực tế
2.2.2.1 Kiém thir tương tác người dùng
Một chiến lược quan trọng trong phân tích động là kiểm thử tương tácngười dùng Điều nay bao gồm việc mô phỏng các hành động của người dùng dé
xác định liệu ứng dụng có xử lý chúng một cách an toàn hay không Các tác vụ
như đăng nhập, chuyển đổi giữa các màn hình, và thao tác với dữ liệu đều là
điểm tập trung
Nguyễn Kiều Trinh — 16
Trang 28Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
2.2.3 Kiểm thử bảo mật tích hợp
Kiểm thử bảo mật tích hợp là quá trình tích hợp các phương pháp phân tích
và động trong chu trình phát triển phần mềm Việc này giúp đảm bảo rằng các lỗ
hồng bảo mật được phát hiện và khắc phục từ giai đoạn sớm, giảm nguy cơ phát
sinh vân đề sau này và tăng cường bảo mật tông thê của ứng dụng.
2.3 Một vài công cu phân tích tinh ứng dung Android
2.3.1 QARK (Quick Android Review Kit)
QARK là một công cụ phan tích tinh mã nguồn mở dành cho ứng dụngAndroid Nó tập trung vao việc tự động kiểm tra mã nguồn dé phat hién va bao
cáo về các lỗ hồng bảo mật phô biến, giúp nha phát trién va chuyên gia an ninh
đánh giá và cải thiện tính an toàn của ứng dụng.
2.3.2 AndroBugs Framework
AndroBugs Framework là một công cụ phân tích tĩnh mã nguồn mở chuyên
dụng cho ứng dụng Android Với khả năng tự động quét mã nguồn, nó giúp xác
định và hiểu rõ về các lỗ hong bảo mật trong mã nguồn của ứng dụng, hỗ trợ quá
trình kiểm thử an toản
2.3.3 MobSF (Mobile Security Framework)
Nguyén Kiéu Trinh — 17
Trang 29Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
MobSF là một khung phát triển (framework) an toàn di động cung cap khanăng kiểm thử an toàn tự động và thủ công cho ứng dụng di động, bao gồm cả
Android Nó kết hợp các công cụ kiểm thử mạnh mẽ dé đánh giá bao mật tong
thé của ứng dụng di động, từ phân tích tĩnh đến phân tích động
Các công cụ được liệt kê bên trên, cung cấp khả năng kiểm tra mã nguồn và
xác định lỗ hổng bảo mật một cách tự động, giúp nhà phát triển và chuyên gia
bảo mật đánh giá và cải thiện chât lượng mã nguôn.
Tuy nhiên, nhược điểm đáng chú ý của nhiều công cụ này là chưa tích hợp
hoặc tích hợp chưa hoàn toàn các bộ tiêu chuẩn nồi tiếng về an toàn thông tin,
như bộ tiêu chuẩn kiểm thử ứng dụng di động OWASP MASVS Sự đồng bộ
với các tiêu chuẩn này quan trọng dé đảm bao rằng tất cả các khía cạnh của an
toàn đêu được đánh giá một cách toàn diện và chặt chẽ.
2.4 Tổng quan về OWASP MASVS v.2.0.0 [1] [3]
2.4.1 Giới thiệu về OWASP
OWASP, hoặc Open Web Application Security Project, là một tổ chức philợi nhuận quốc tế tập trung vào việc nghiên cứu và phát triển kiến thức về bảo
mật ứng dụng web OWASP được thành lập nhằm mục tiêu chia sẻ thông tin,
công cụ, và tài nguyên liên quan đến bảo mật ứng dụng web để giúp cải thiện
chất lượng bảo mật của ứng dụng và giảm rủi ro an ninh trong lĩnh vực này
Sứ mệnh chính của OWASP là làm cho việc phat triển, triển khai, và quản
lý ứng dụng web trở nên an toàn hơn bằng cách cung cấp các hướng dẫn, công
cụ, và nguôn thông tin chi tiét vê các môi đe dọa an ninh và phương pháp bảo
Nguyễn Kiều Trinh — 18
Trang 30Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
mật hiện đại Tổ chức này hoạt động dưới hình thức cộng đồng mở, thu hút sự
tham gia của hàng ngàn chuyên gia an ninh thông tin, nhà phát triển, và chuyên
gia bảo mật trên khắp thế giới
Một trong những đóng góp lớn nhất của OWASP là danh sách OWASP
Top Ten, là danh sách các rủi ro bảo mật phổ biến nhất trong ứng dụng web
Danh sách này cung cấp một hướng dẫn cho các nhà phát triển và chuyên gia an
ninh về những điểm quan trọng cần chú ý dé đảm bảo an toàn cho ứng dụng
architects and developers seeking to develop secure mobile applications, as well
MASVS-CRYPTO-† as security testers to ensure completeness and consistency of test results.
Mobile Application Security
MASVS-AUTH Verification Standard
Download the MASVS v2.0.0
MASVS-NETWORK
MASVS-PLATFORM
Hình 2.7 Trang chu OWASP Mobile Application Security
OWASP MASVS (Tiêu chuẩn xác minh bảo mật ứng dung di động) là tiêuchuẩn ngành về bảo mật ứng dụng dành cho thiết bị di động Nó có thể được sử
dụng bởi các kiến trúc sư và nhà phát triển phần mềm di động đang tìm cách
phát triển các ứng dụng di động an toàn, cũng như người kiểm tra bảo mật để
dam bảo tinh day đủ và nhất quán của kết quả kiêm tra
Phiên bản 2.0.0 của OWASP MASVS, phát hành vào ngày | tháng 4 năm
2023, được các nhà phát triển cải tiễn dé trở nên đơn giản hóa và tường minh
hơn so với phiên ban cũ 1.5.0 được phát hành vào thang 8 năm 2022.
Nguyễn Kiều Trinh — 19
Trang 31Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
Dé hoàn thiện tiêu chuân MASVS, OWASP đồng thời cũng cung cap
“Hướng dẫn kiểm thử an toàn ứng dụng di động OWASP” (OWASP MASTG —
Mobile Application Security Testing Guide) và “Danh sách kiểm thử an toàn
ứng dụng đi động OWASP” (OWASP MAS Checklist), nhằm kết hợp để tạo
nên bộ trợ lý hoàn hảo để xác minh các điều khiển được liệt kê trong tiêu chuẩn
OWASP MASVS và thé hiện sự tuân thủ
2.4.3 OWASP MASTG
OWASP MASTG (OWASP Mobile Application Security Testing Guide) là
một hướng dẫn toàn diện dé kiểm tra bao mật ứng dung di động
OWASP MASTG cung cấp cho người đọc kiến thức tổng quan về hệ điều
hành Android và iOS, các van đề bảo mật xung quanh ứng dụng di động va
hướng dẫn kiểm thử ứng dụng di động theo 2 cách, phân tích tĩnh và phân tích
động, dựa trên bộ tiêu chuẩn OWASP MASVS và danh sách các đầu mục kiểm
thử an toàn từ OWASP MAS Checklist.
2.4.4 Các nhóm kiểm soát (control group) OWASP MASVS v.2.0.0
Tiêu chuẩn trên được chia ra làm nhiều nhóm kiểm soát an toàn, gắn nhãn
MASVS-XXXXX, đại diện cho các khu vực quan trọng nhất của bề mặt tấn
- MASVS-NETWORK: Giao tiếp mang an toàn giữa ứng dụng dành cho
thiết bi di động và các điểm cuối từ xa (dữ liệu đang truyền)
- MASVS-PLATFORM: Tương tác an toàn với nền tang di động co bản
và các ứng dụng đã cài đặt khác.
Nguyễn Kiều Trinh — 20
Trang 32Đồ án tốt nghiệp Chương 2: Phương pháp kiểm thử
- MASVS-CODE: Các phương pháp hay nhất về bảo mật dé xử lý dữ liệu
và luôn cập nhật ứng dụng.
- MASVS-RESILIENCE: Khả năng phục hồi đối với các nỗ lực đảo
ngược kỹ thuật và giả mạo.
2.4.4.1 MASVS-STORAGE: Lưu trữCác ứng dụng di động xử lý nhiều loại dit liệu nhạy cảm, chăng hạn như
thông tin nhận dạng cá nhân (PII), tài liệu mật mã, bi mật và khóa API, thường
cần được lưu trữ cục bộ Dữ liệu nhạy cảm này có thể được lưu trữ ở các vị trí
riêng tư, chăng hạn như bộ nhớ trong của ứng dụng hoặc trong các thư mục công
cộng mà người dùng hoặc các ứng dụng khác được cai đặt trên thiết bị có thé
truy cập được Tuy nhiên, dữ liệu nhạy cảm cũng có thể vô tình được lưu trữ
hoặc tiếp xúc với các vị trí có thể truy cập công khai, thường là tác dụng phụ của
việc sử dụng một số API hoặc khả năng hệ thống nhất định như sao lưu hoặc
nhật ký.
Danh mục này được thiết kế dé giúp nhà phát triển đảm bảo rằng mọi dirliệu nhạy cảm do ứng dụng có ý lưu trữ đều được bảo vệ đúng cách, bat ké vị trí
mục tiêu là gì Nó cũng bao gồm các rò ri không chủ ý có thé xảy ra do sử dụng
API hoặc khả năng hệ thống không đúng cách
2.4.4.1.1 MASVS-STORAGE-1
Nội dung: Ứng dụng lưu trữ dữ liệu nhạy cảm một cách an toàn
Ứng dụng xử lý dữ liệu nhạy cảm đến từ nhiều nguồn như người dùng,
backend, dịch vụ hệ thống hoặc các ứng dụng khác trên thiết bị và thường cần
lưu trữ cục bộ Vị trí lưu trữ có thé là riêng tư đối với ứng dụng (vi dụ: bộ nhớ
trong của ứng dụng) hoặc ở chế độ công khai và do đó người dùng hoặc các ứng
dụng đã cải đặt khác có thể truy cập được (ví dụ: các thư mục công cộng như
thư mục ‘Download’) Kiểm soát này đảm bảo rằng mọi đữ liệu nhạy cảm được
ứng dụng cố ý lưu trữ đều được bảo vệ đúng cách độc lập với vi trí dich
2.4.4.1.2 MASVS-STORAGE-2
Nguyễn Kiều Trinh — 21