Đánh giá an toàn thông tin cho các ứng dụng di động

16:10 | 19/04/2018

Ngày nay, thiết bị di động ngày càng phát triển đa dạng và phổ biến trên nhiều nền tảng khác nhau (Java, Android, IOS, RIMS…). Sự phát triển của các ứng dụng di động đang dần len lỏi vào mọi mặt của đời sống, phục vụ nhu cầu học tập, giả trí, kinh doanh. Bên cạnh sự tiện ích mà nó mang lại, các ứng dụng di động tiềm ẩn rất nhiều các nguy cơ gây mất an toàn thông tin.

Bên cạnh những giá trị to lớn mà các ứng dụng di động mang lại, thì nó cũng có nhiều nguy cơ tiềm ẩn như: Do ứng dụng di động được cài đặt trực tiếp trên máy của người dùng, dẫn đến các ứng dụng có thể bị dịch ngược, tiết lộ thông tin, lấy cắp thông tin cá nhân của người dùng, phát tán mã độc. Ứng dụng di động thường cung cấp các dịch vụ tiện ích có lợi ích về tài chính (Nạp tiền, thanh toán trực tuyến, mua hàng…), dẫn đến những nguy cơ về thất thoát, trộm cắp, gian lận tài chính.

Vì vậy, cần phải tìm ra lỗ hổng bảo mật của ứng dụng trước khi kẻ tấn công tìm được là điều vô cùng quan trọng. Bài báo này sẽ trình bày phương pháp, quy trình tìm lỗi của ứng dụng di động, áp dụng với những ứng dụng sắp triển khai, đã triển khai và đang vận hành.

Phương pháp thực hiện

 Có hai phương pháp đánh giá ứng dụng di động là phương pháp phân tích động và phương pháp phân tích tĩnh.

Phương pháp phân tích động

Hướng tiếp cận của phương pháp này là cài đặt trực tiếp ứng dụng lên môi trường đánh giá, thực hiện duyệt tất cả các chức năng của chương trình, đồng thời sử dụng các công cụ để giám sát, thay đổi dữ liệu của chương trình đánh giá bằng cách duyệt tất cả các chức năng của chương trình. Phương pháp này sẽ giám sát tất cả kết nối giữa ứng dụng và máy chủ, xác định lỗi của chương trình.

Các bước đánh giá gồm: Xây dựng môi trường chạy ứng dụng; Xác định các chức năng và các kết nối của ứng dụng; Liệt kê tất cả các điểm đầu vào ứng dụng; Xác định khả năng tấn công; Xác định khả năng mắc lỗi.

Xây dựng môi trường chạy ứng dụng:

Môi trường chạy ứng dụng là một phần rất quan trọng để thực hiện đánh giá ứng dụng, nếu môi trường đánh giá không đáp ứng đủ chức năng của ứng dụng, thì việc đánh giá sẽ rất khó khăn và không thể đánh giá hết được các chức năng của ứng dụng. Việc xây dựng môi trường chạy ứng dụng gồm hai phần chính là, thiết lập môi trường mạng và cài đặt ứng dụng lên môi trường thử nghiệm.

Xác định các chức năng và các kết nối của ứng dụng:

Bước này cần duyệt tất cả chức năng của ứng dụng thông qua proxy. Kết thúc bước này cần xây dựng cấu trúc cây thư mục của ứng dụng. Cây bao gồm các file, thư mục, các request/response, URL phục vụ cho việc tìm điểm vào ứng dụng.

Xác định khả năng tấn công:

Bước này tiến hành phân tích từng điểm vào ứng dụng, xác định điểm vào đó có thể mắc lỗi gì không. Mục đích là xác định khả năng tấn công ứng dụng; ánh xạ giữa cấu trúc bên trong và chức năng của ứng dụng ở phía máy chủ. Ví dụ, một chức năng đăng ký tài khoản người dùng thì chắc chắn có tương tác tới database.

Với mỗi điểm vào ứng dụng thu được ở trên, nhận diện các lỗi thông dụng thường xuất hiện ở chúng. Cụ thể như sau:

Nếu ứng dụng sử dụng nền tảng do bên thứ ba cung cấp, thì tiến hành tìm kiếm những lỗ hổng bảo mật đã được công bố tại: www.osvdb.org.

Kiểm tra khả năng mắc lỗi:

Dựa vào thông tin về điểm vào, tiến hành kiểm tra khả năng mắc lỗi với từng điểm vào ứng dụng.

Phương pháp phân tích tĩnh

Khi thực hiện cần dịch ngược ứng dụng, nhằm mục đích xác định những lỗi liên quan đến lập trình không an toàn. Quá trình thực hiện phân tích tĩnh phụ thuộc vào đặc trưng của từng loại ứng dụng, các bước chính để thực hiện bước này bao gồm: Dịch ngược ứng dụng; Liệt kê file thư mục, dịch vụ, môđun của ứng dụng; Xác định lỗi.

Dịch ngược ứng dụng:

Mục đích dịch ngược chương trình sang mã nguồn có thể dễ dàng đọc phục vụ cho việc xác định lỗi của chương trình.

Liệt kê file thư mục, dịch vụ, môđun của ứng dụng:

Khi giải nén, dịch ngược chương trình nếu xác định có những tệp tin thư mục không phải là những tệp tin thư mục cơ bản của nền tảng ứng dụng cần đánh giá, thì người đánh giá cập nhật tên tệp tin và thư mục đó vào bảng danh sách tệp tin thư mục của chương trình để phục vụ cho việc xác định lỗi.

Xác định lỗi:

Dựa vào thông tin về các tệp tin thư mục và các thành phần dịch vụ được xác định ở trên, ta tiến hành kiểm tra khả năng mắc lỗi với từng nội dung.

Điện thoại di động là nơi chứa rất nhiều các thông tin nhạy cảm của mỗi cá nhân. Chính vì vậy, việc đảm bảo an toàn thông tin cho các ứng dụng di động là rất quan trọng và cần được chú trọng. Thực tế cho thấy, nếu như không quan tâm đến các lỗ hổng trên các ứng dụng di động, thì hậu quả rất nghiêm trọng. Kẻ tấn công có thể lợi dụng các lỗ hổng, điểm yếu an ninh để tấn công vào các hệ thống bên trong, lấy cắp hoặc phá hoại những dữ liệu quan trọng.

Một ứng dụng di động sau khi được kiểm tra đánh giá sẽ đạt được rất nhiều lợi ích: xác định khả năng bị tấn công của hệ thống, khả năng kết hợp các nguy cơ nhỏ và nguy cơ lớn, cung cấp hiện trạng bảo mật của đối tượng và đưa ra các giải pháp kiện toàn để khắc phục. Tình hình an ninh mạng phức tạp như hiện nay thì việc kiểm tra đánh giá để khắc phục các lỗ hổng bảo mật là điều vô cùng quan trọng.