ANDROID
2.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, ứng dụ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ảo ngườ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
Đồ á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 bảo rằng tất cả các khía cạnh của hệ thống đều an
toàn.
tân công có thê xâm nhập vào hệ
thống.
Mục tiêu Đả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.
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
thiện.
Phương
pháp thực hiện
Thường sử dụng các kỹ
thuật kiểm thử tự động và kiểm thử thủ công để đánh
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ản tan 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àn thành và trước khi triển khai, hoặc định kỳ để kiểm tra định kỳ
mức độ an toản.
Phản hoi và báo cáo
Tập trung vào việc xác định các vân đê bảo mật và đưa ra gợi ý đê cải thiện tính an
toàn của hệ thống.
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
Đồ á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ông thự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Š
Đồ á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ình
kiê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ác quy 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ác ngườ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
Đồ á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ụng Android. 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
Đồ á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 kha nă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 phi lợ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
Đồ á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
web.
AAST MASVS MASChecklist MAS Crackr
MASVS
OWASP MASVS
Intro
MASVS-STORAGE
© GitHub Repo
The OWASP MASVS (Mobile Application Security Verification Standard) is the MENE-GHUETO industry standard for mobile app security. It can be used by mobile software
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
i The MASVS Control Groups
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êu chuẩ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
Đồ á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
công ứng dụng di động:
- MASVS-STORAGE: Lưu trữ an toàn dữ liệu nhạy cảm trên thiết bị (dữ
liệu lưu trữ).
- MASVS-CRYPTO: Chức năng mật mã được sử dụng để bảo vệ đữ liệu
nhạy cảm.
- MASVS-AUTH: Cơ chế xác thực và ủy quyền được sử dụng bởi ứng dụng dành cho thiết bị di động.
- 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
Đồ á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 dir liệ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