Đồ án TN Học viện Kỹ thuật Mật mã: Công cụ kiểm thử bảo mật ứng dụng Web/Mobile

Khám phá công cụ và phương pháp kiểm thử bảo mật ứng dụng web/mobile qua ví dụ thực tế. Hướng dẫn chi tiết giúp phát hiện lỗ hổng hiệu quả, nâng cao độ an toàn

Trường đại học

Học viện Kỹ thuật Mật mã

Chuyên ngành

An toàn thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2022

104
1
0

Phí lưu trữ

35 Point

Tóm tắt

I. Tại sao Kiểm thử bảo mật ứng dụng Web Mobile là bức tường thành vững chắc cho doanh nghiệp 50 ký tự

Trong bối cảnh kỷ nguyên số hóa bùng nổ, ứng dụng Web và Mobile trở thành huyết mạch của mọi hoạt động kinh doanh và tương tác cá nhân. Tuy nhiên, sự tiện lợi đi kèm với những rủi ro an ninh mạng tiềm ẩn. Các cuộc tấn công mạng ngày càng tinh vi, đe dọa nghiêm trọng đến dữ liệu người dùng, uy tín doanh nghiệp và hoạt động kinh doanh liên tục. Chính vì lẽ đó, kiểm thử bảo mật ứng dụng Web/Mobile không còn là một tùy chọn mà đã trở thành một yêu cầu bắt buộc, đóng vai trò như một "bức tường thành vững chắc" bảo vệ tài sản số.

Hoạt động này bao gồm việc xác định, phân tích và giảm thiểu các lỗ hổng bảo mật trong phần mềm ứng dụng. Mục tiêu cuối cùng là ngăn chặn các cuộc tấn công từ chối dịch vụ (DoS), rò rỉ dữ liệu nhạy cảm, chiếm quyền điều khiển hệ thống và các hình thức xâm nhập trái phép khác. Theo nghiên cứu "Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng" của Nguyễn Thị Thúy Kiều (2022), việc kiểm thử bảo mật giúp các tổ chức chủ động phát hiện và khắc phục các điểm yếu trước khi chúng bị khai thác bởi tin tặc. Đây là một khoản đầu tư chiến lược, giúp tiết kiệm chi phí sửa chữa hậu sự cố và bảo vệ niềm tin của khách hàng.

Sự phát triển nhanh chóng của công nghệ, cùng với áp lực đưa sản phẩm ra thị trường, đôi khi khiến các nhà phát triển bỏ qua các khía cạnh bảo mật. Hậu quả là các ứng dụng thường chứa đựng những lỗ hổng bảo mật ứng dụng web hoặc di động, tạo cơ hội cho kẻ xấu. Do đó, việc áp dụng các phương pháp kiểm thử bảo mật hiệu quả, sử dụng các công cụ kiểm thử bảo mật ứng dụng chuyên dụng, và tuân thủ một quy trình kiểm thử bảo mật ứng dụng chuẩn mực là cực kỳ quan trọng. Hoạt động này không chỉ giúp tuân thủ các quy định về quyền riêng tư dữ liệu như GDPR hay HIPAA mà còn xây dựng một hệ sinh thái số an toàn, bền vững.

1.1. Định nghĩa kiểm thử bảo mật ứng dụng và vai trò then chốt

Kiểm thử bảo mật ứng dụng là quá trình kiểm tra một ứng dụng phần mềm để tìm kiếm các lỗ hổng bảo mật có thể bị khai thác. Mục đích chính là đánh giá khả năng chống lại các cuộc tấn công của ứng dụng, đảm bảo tính toàn vẹn, bảo mật và khả dụng của dữ liệu. Không giống như kiểm thử chức năng tập trung vào việc ứng dụng hoạt động như thế nào, kiểm thử bảo mật tập trung vào việc ứng dụng có thể bị tấn công như thế nào. Vai trò then chốt của hoạt động này là proactive, tức là phát hiện sớm các điểm yếu trong giai đoạn phát triển, giúp giảm chi phí và rủi ro so với việc phát hiện sau khi ứng dụng đã triển khai rộng rãi. Đây là một phần không thể thiếu của vòng đời phát triển phần mềm an toàn (SDLC).

1.2. Thách thức an toàn thông tin ứng dụng trong thời đại số

Trong thời đại số, thách thức về an toàn thông tin ứng dụng ngày càng gia tăng. Số lượng và mức độ phức tạp của các cuộc tấn công mạng liên tục tăng vọt. Các ứng dụng hiện đại thường tích hợp nhiều thành phần, thư viện của bên thứ ba, và API, tạo ra bề mặt tấn công rộng lớn hơn. Tin tặc không ngừng tìm kiếm các phương pháp mới để khai thác. Một lỗ hổng nhỏ có thể dẫn đến hậu quả nghiêm trọng, từ mất dữ liệu khách hàng, thiệt hại tài chính, đến làm tổn hại danh tiếng doanh nghiệp. Việc duy trì một chiến lược an toàn thông tin ứng dụng toàn diện và cập nhật là yếu tố sống còn để đối phó với những mối đe dọa luôn biến đổi.

II. Khám phá các lỗ hổng bảo mật ứng dụng web và di động phổ biến nhất hiện nay 59 ký tự

Để thực hiện kiểm thử bảo mật ứng dụng Web/Mobile hiệu quả, việc hiểu rõ các loại lỗ hổng bảo mật phổ biến là yếu tố tiên quyết. Các lỗ hổng bảo mật ứng dụng web và di động thường xuyên được OWASP (Open Web Application Security Project) cập nhật trong danh sách Top 10, phản ánh các mối đe dọa hàng đầu mà các nhà phát triển và chuyên gia bảo mật cần đối mặt. Những điểm yếu này có thể xuất hiện do lỗi trong quá trình lập trình, cấu hình sai hệ thống, hoặc thiếu các biện pháp bảo vệ cơ bản. Việc nắm vững cơ chế hoạt động của từng loại lỗ hổng giúp định hướng quá trình kiểm thử bảo mật và đề xuất các giải pháp phòng thủ phù hợp.

Theo tài liệu "Đồ án tốt nghiệp: Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng" của Nguyễn Thị Thúy Kiều (2022), các lỗ hổng như Cross-Site Scripting (XSS), Cross-Site Request Forgery (CSRF), Server-Side Request Forgery (SSRF), Server-Side Template Injection (SSTI), Insecure Direct Object References (IDOR), HTTP request smuggling, Sensitive data exposure và Missing function level access control là những mối đe dọa đáng kể. Mỗi loại lỗ hổng này có phương thức khai thác và tác động riêng biệt, yêu cầu các kỹ thuật kiểm thử bảo mật ứng dụng chuyên biệt để phát hiện. Ví dụ, một lỗ hổng XSS có thể cho phép kẻ tấn công chèn mã độc vào trình duyệt của người dùng, trong khi SQL Injection có thể dẫn đến việc kiểm soát toàn bộ cơ sở dữ liệu. Việc thường xuyên cập nhật kiến thức về các lỗ hổng bảo mật ứng dụng web mới nổi và cách thức khai thác chúng là điều cần thiết để duy trì an ninh mạng vững chắc.

2.1. Tổng quan về lỗ hổng XSS CSRF SSRF trên nền tảng web

Lỗ hổng XSS (Cross-Site Scripting) cho phép kẻ tấn công chèn các script độc hại vào các trang web hợp pháp, sau đó script này sẽ chạy trên trình duyệt của người dùng khác. Mục tiêu thường là đánh cắp cookie, session token hoặc chiếm đoạt tài khoản. Lỗ hổng CSRF (Cross-Site Request Forgery) khiến người dùng cuối vô tình thực hiện các hành động không mong muốn trên một ứng dụng web mà họ đã đăng nhập. Kẻ tấn công lợi dụng niềm tin của trình duyệt vào người dùng. Lỗ hổng SSRF (Server-Side Request Forgery) cho phép kẻ tấn công khiến máy chủ gửi yêu cầu HTTP đến các vị trí tùy ý, bao gồm cả các hệ thống nội bộ, thường là để đọc dữ liệu nhạy cảm hoặc tương tác với dịch vụ nội bộ.

2.2. Phân tích lỗ hổng IDOR và Server Side Template Injection nguy hiểm

Lỗ hổng IDOR (Insecure Direct Object References) xảy ra khi một ứng dụng sử dụng một mã định danh đối tượng có thể dự đoán được (ví dụ: ID tài khoản, ID đơn hàng) trong URL hoặc tham số mà không có kiểm soát truy cập thích hợp. Điều này cho phép kẻ tấn công truy cập hoặc sửa đổi tài nguyên của người dùng khác chỉ bằng cách thay đổi giá trị của mã định danh. Server-Side Template Injection (SSTI) là một lỗ hổng trong đó kẻ tấn công có thể chèn các mẫu độc hại vào máy chủ, cho phép thực thi mã từ xa, truy cập tệp hệ thống hoặc khai thác các lỗ hổng khác của máy chủ. Đây là một loại lỗ hổng đặc biệt nguy hiểm khi các ứng dụng web hiện đại ngày càng sử dụng nhiều công cụ tạo mẫu.

2.3. Hiểu rõ các vấn đề sensitive data exposure và kiểm soát truy cập

Sensitive data exposure (lộ dữ liệu nhạy cảm) là một lỗ hổng phổ biến khi các ứng dụng không bảo vệ đầy đủ thông tin cá nhân hoặc thông tin nhạy cảm của người dùng. Điều này có thể do mã hóa yếu, lưu trữ dữ liệu không an toàn, hoặc thiếu các biện pháp bảo vệ dữ liệu trong quá trình truyền tải. Khiến thông tin như mật khẩu, dữ liệu tài chính, thông tin sức khỏe dễ dàng bị đánh cắp. Ngoài ra, "Missing function level access control" là một vấn đề nghiêm trọng, nơi ứng dụng không kiểm tra quyền truy cập của người dùng khi họ cố gắng thực hiện các chức năng cụ thể. Điều này cho phép người dùng có ít đặc quyền hơn truy cập vào các chức năng mà chỉ người dùng có quyền cao hơn mới được phép, dẫn đến việc lạm dụng hoặc sửa đổi dữ liệu trái phép.

III. Hướng dẫn quy trình kiểm thử bảo mật ứng dụng hiệu quả từ A đến Z 59 ký tự

Việc thực hiện kiểm thử bảo mật ứng dụng Web/Mobile đòi hỏi một cách tiếp cận có hệ thống và một quy trình kiểm thử bảo mật ứng dụng rõ ràng. Một quy trình được xác định tốt sẽ đảm bảo rằng các lỗ hổng được phát hiện một cách toàn diện và kịp thời, giảm thiểu rủi ro an ninh mạng. Không có một quy trình "phù hợp cho tất cả", nhưng một khung chung có thể được điều chỉnh để phù hợp với các dự án và tổ chức khác nhau. Theo tài liệu nghiên cứu của Nguyễn Thị Thúy Kiều (2022), việc tuân thủ một quy trình chặt chẽ là chìa khóa để đạt được kết quả kiểm thử đáng tin cậy và có thể hành động được.

Quy trình này thường bắt đầu từ giai đoạn lập kế hoạch, nơi phạm vi kiểm thử được xác định rõ ràng, bao gồm các ứng dụng, môi trường, và các loại lỗ hổng mục tiêu. Tiếp theo là giai đoạn thu thập thông tin và nhận diện (reconnaissance), nơi các thông tin về ứng dụng được thu thập để hiểu rõ hơn về kiến trúc và các công nghệ sử dụng. Giai đoạn phân tích lỗ hổng là trọng tâm, sử dụng cả công cụ tự động và kiểm tra thủ công để phát hiện các điểm yếu. Sau đó, giai đoạn khai thác lỗ hổng nhằm xác nhận tính khả thi của các lỗ hổng đã tìm thấy và đánh giá tác động tiềm ẩn. Cuối cùng, một báo cáo chi tiết về các lỗ hổng, mức độ nghiêm trọng và đề xuất khắc phục sẽ được tạo ra, sau đó là giai đoạn kiểm thử lại sau khi các bản vá lỗi được áp dụng. Một quy trình đánh giá an toàn ứng dụng web toàn diện không chỉ giúp phát hiện vấn đề mà còn cung cấp lộ trình rõ ràng để tăng cường bảo mật. Điều này đặc biệt quan trọng khi đối phó với các lỗ hổng bảo mật ứng dụng web phức tạp.

3.1. Các phương pháp kiểm thử bảo mật ứng dụng cần biết

Có ba phương pháp kiểm thử bảo mật ứng dụng chính: Black-box, White-box và Grey-box. Kiểm thử Black-box (hộp đen) được thực hiện mà không có kiến thức về mã nguồn hoặc cấu trúc bên trong của ứng dụng, mô phỏng một kẻ tấn công bên ngoài. Kiểm thử White-box (hộp trắng) yêu cầu truy cập đầy đủ vào mã nguồn, cấu hình hệ thống, cho phép phân tích sâu về logic và thực thi của ứng dụng. Kiểm thử Grey-box (hộp xám) kết hợp cả hai, cung cấp một phần kiến thức về bên trong ứng dụng (ví dụ: truy cập thông tin người dùng cơ bản) để thực hiện các cuộc tấn công có mục tiêu hơn. Việc lựa chọn phương pháp phù hợp phụ thuộc vào mục tiêu kiểm thử, nguồn lực và giai đoạn phát triển của ứng dụng.

3.2. Xây dựng quy trình đánh giá an toàn ứng dụng web tiêu chuẩn

Một quy trình đánh giá an toàn ứng dụng web tiêu chuẩn bao gồm các bước sau: (1) Lập kế hoạch và xác định phạm vi: Định rõ các ứng dụng, hệ thống và mục tiêu kiểm thử. (2) Thu thập thông tin: Tập hợp dữ liệu về ứng dụng, kiến trúc, công nghệ và các điểm cuối. (3) Phân tích lỗ hổng: Sử dụng công cụ tự động (scanner) và kiểm tra thủ công để xác định điểm yếu. (4) Khai thác và xác nhận: Thử nghiệm khai thác các lỗ hổng đã phát hiện để đánh giá tác động. (5) Phân tích và báo cáo: Tổng hợp kết quả, đánh giá mức độ nghiêm trọng và đưa ra đề xuất khắc phục chi tiết. (6) Khắc phục và kiểm thử lại: Đảm bảo các lỗ hổng đã được vá và không có hồi quy.

IV. Top công cụ kiểm thử bảo mật ứng dụng Web Mobile không thể bỏ qua 60 ký tự

Để tối ưu hóa hiệu quả của kiểm thử bảo mật ứng dụng Web/Mobile, việc sử dụng các công cụ kiểm thử bảo mật ứng dụng chuyên dụng là điều không thể thiếu. Các công cụ này giúp tự động hóa quá trình quét, phát hiện và đôi khi cả khai thác lỗ hổng, tiết kiệm thời gian và nguồn lực đáng kể. Từ các công cụ đa năng cho web đến các giải pháp chuyên biệt cho di động hay cơ sở dữ liệu, mỗi công cụ đều có thế mạnh riêng, đóng góp vào một chiến lược bảo mật toàn diện. Nghiên cứu "Tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng" của Nguyễn Thị Thúy Kiều (2022) đã đi sâu vào một số công cụ hàng đầu, minh họa khả năng của chúng trong việc phát hiện các lỗ hổng bảo mật ứng dụng web phổ biến.

Việc lựa chọn công cụ phù hợp phụ thuộc vào loại ứng dụng, ngân sách, và các loại lỗ hổng cần tập trung. Các công cụ như Burp Suite, Acunetix, NessusSQLMap là những cái tên nổi bật trong cộng đồng bảo mật, được các chuyên gia tin dùng để xác định các điểm yếu từ lỗ hổng XSS đến lỗ hổng SQL Injection. Burp Suite cung cấp một bộ công cụ toàn diện cho kiểm thử thủ công và tự động, trong khi Acunetix và Nessus nổi bật với khả năng quét tự động mạnh mẽ. SQLMap lại là lựa chọn hàng đầu cho việc khai thác các vấn đề liên quan đến cơ sở dữ liệu. Kết hợp các công cụ này trong một quy trình kiểm thử bảo mật ứng dụng sẽ mang lại cái nhìn sâu sắc và khả năng bảo vệ vượt trội cho mọi nền tảng số.

4.1. Sức mạnh của Burp Suite trong kiểm thử bảo mật ứng dụng web

Burp Suite là một bộ công cụ toàn diện và mạnh mẽ được sử dụng rộng rãi trong kiểm thử bảo mật ứng dụng web. Nó cung cấp một proxy chặn lưu lượng, giúp phân tích các yêu cầu và phản hồi HTTP/S. Với các module như Scanner, Intruder, Repeater và Decoder, Burp Suite hỗ trợ đắc lực trong việc tự động quét lỗ hổng, brute-force tấn công, sửa đổi yêu cầu để tìm kiếm lỗ hổng XSS, CSRF, SQL Injection và nhiều loại khác. Burp Scanner, đặc biệt, là một công cụ DAST (Dynamic Application Security Testing) hiệu quả, có khả năng phát hiện tự động hàng trăm loại lỗ hổng. Sự linh hoạt và khả năng mở rộng thông qua các plugin đã biến Burp Suite thành công cụ không thể thiếu cho bất kỳ chuyên gia bảo mật ứng dụng web nào.

4.2. Acunetix và Nessus Bộ đôi hoàn hảo cho quét lỗ hổng tự động

Acunetix là một máy quét lỗ hổng web tự động hàng đầu, nổi tiếng với khả năng phát hiện chính xác các lỗ hổng bảo mật ứng dụng web phức tạp như SQL Injection và XSS. Nó có khả năng tự động khám phá toàn bộ cấu trúc trang web và ứng dụng, sau đó kiểm tra các lỗ hổng dựa trên cơ sở dữ liệu rộng lớn. Trong khi đó, Nessus là một máy quét lỗ hổng mạng và hệ thống toàn diện, được sử dụng để xác định các điểm yếu trong máy chủ, thiết bị mạng, và các ứng dụng chạy trên đó, bao gồm cả cấu hình sai và các bản vá lỗi còn thiếu. Khi kết hợp, Acunetix tập trung vào lớp ứng dụng web, còn Nessus mở rộng phạm vi ra toàn bộ hạ tầng, tạo thành một bộ đôi hoàn hảo cho việc quét lỗ hổng tự động và toàn diện.

4.3. SQLMap Công cụ hàng đầu khai thác lỗ hổng SQL Injection

SQLMap là công cụ mã nguồn mở, tự động hóa quá trình phát hiện và khai thác lỗ hổng SQL Injection trên cơ sở dữ liệu. Được giới bảo mật và hacker sử dụng thường xuyên, SQLMap có khả năng nhận diện nhiều kỹ thuật SQL Injection khác nhau, từ Boolean-based blind, Time-based blind, Error-based, đến Union query-based. Công cụ này không chỉ giúp phát hiện lỗ hổng mà còn có thể liệt kê các cơ sở dữ liệu, bảng, cột, truy xuất dữ liệu, và thậm chí đọc/ghi tệp trên máy chủ cơ sở dữ liệu. Theo tài liệu của Nguyễn Thị Thúy Kiều (2022), SQLMap được xem là một trong những công cụ khai thác SQL tốt nhất hiện nay, đặc biệt hữu ích trong quá trình kiểm thử xâm nhập để đánh giá mức độ nghiêm trọng của các lỗ hổng SQL Injection. Việc cài đặt SQLMap thường yêu cầu Python, và nó đã được tích hợp sẵn trong các hệ điều hành chuyên về bảo mật như Kali Linux.

V. Minh họa kiểm thử bảo mật ứng dụng thực tế và phương pháp phòng thủ hiệu quả 60 ký tự

Việc hiểu biết lý thuyết về các lỗ hổng bảo mậtcông cụ kiểm thử bảo mật ứng dụng là cần thiết, nhưng khả năng áp dụng chúng vào thực tiễn mới là yếu tố quyết định sự thành công của một chiến lược an ninh mạng. Phần minh họa kiểm thử bảo mật ứng dụng thực tế cung cấp cái nhìn trực quan về cách các công cụ hoạt động và làm thế nào các lỗ hổng được phát hiện và khai thác. Từ đó, các phương pháp phòng thủ phù hợp mới có thể được đề xuất và triển khai hiệu quả. Đồ án tốt nghiệp của Nguyễn Thị Thúy Kiều (2022) đã cung cấp các ví dụ chi tiết về việc sử dụng Burp Scanner để tìm lỗ hổng và cách khai thác các điểm yếu trên các ứng dụng web cụ thể, đồng thời đề xuất các biện pháp phòng chống.

Trong thực tế, một chuyên gia bảo mật sẽ bắt đầu bằng việc quét tự động các ứng dụng bằng các công cụ như Burp Scanner hoặc Acunetix để có cái nhìn tổng thể về các lỗ hổng tiềm ẩn. Sau khi các điểm yếu được xác định, họ sẽ tiến hành kiểm tra thủ công và khai thác để xác nhận mức độ nghiêm trọng. Ví dụ, việc phát hiện một lỗ hổng SQL Injection bằng Burp Suite có thể được xác minh và khai thác sâu hơn bằng SQLMap để chứng minh khả năng truy cập dữ liệu trái phép. Từ những minh họa này, các tổ chức có thể học hỏi cách xây dựng một hàng rào phòng thủ nhiều lớp, kết hợp giữa việc kiểm soát đầu vào, mã hóa dữ liệu, và quản lý quyền truy cập chặt chẽ. Mục tiêu là không chỉ phát hiện mà còn xây dựng khả năng phục hồi trước các cuộc tấn công, đảm bảo an toàn thông tin ứng dụng một cách liên tục và bền vững.

5.1. Cách sử dụng Burp Scanner để tìm lỗ hổng bảo mật ứng dụng

Để sử dụng Burp Scanner để tìm lỗ hổng bảo mật ứng dụng, trước tiên cần cấu hình trình duyệt để chuyển hướng lưu lượng truy cập qua Burp Proxy. Sau đó, trong Burp Suite, chỉ định phạm vi (Scope) cho các trang web cần kiểm thử để tập trung quét. Burp Scanner sẽ tự động thu thập thông tin và gửi các payload tấn công đến ứng dụng, tìm kiếm các dấu hiệu của lỗ hổng XSS, SQL Injection, Path Traversal, và các điểm yếu khác. Kết quả quét được trình bày chi tiết, bao gồm loại lỗ hổng, mức độ nghiêm trọng, và các thông tin liên quan. Ví dụ, trên trang web 'quanlyhocvien' được đề cập trong tài liệu gốc, Burp Scanner có thể phát hiện các lỗ hổng bằng cách phân tích các phản hồi từ máy chủ khi gửi các yêu cầu đã được thay đổi. Chức năng này giúp nhanh chóng xác định các điểm yếu ban đầu để kiểm tra sâu hơn.

5.2. Khai thác lỗ hổng SQL Injection và phương pháp phòng chống

Khai thác lỗ hổng SQL Injection thường bắt đầu bằng việc chèn các ký tự đặc biệt (ví dụ: dấu nháy đơn) vào các trường nhập liệu của ứng dụng để kiểm tra phản ứng của cơ sở dữ liệu. Nếu ứng dụng dễ bị tấn công, kẻ tấn công có thể sử dụng các lệnh SQL khác để truy xuất thông tin nhạy cảm, sửa đổi dữ liệu hoặc thậm chí thực thi lệnh trên máy chủ. Công cụ như SQLMap tự động hóa quá trình này, cho phép liệt kê cấu trúc cơ sở dữ liệu và trích xuất dữ liệu. Để phòng chống, các phương pháp phòng chống chính bao gồm: sử dụng Prepared Statements (hoặc tham số hóa truy vấn) để tách biệt dữ liệu và mã SQL; thực hiện Input Validation (kiểm tra đầu vào) mạnh mẽ để loại bỏ các ký tự độc hại; áp dụng Principle of Least Privilege (nguyên tắc đặc quyền tối thiểu) cho tài khoản cơ sở dữ liệu; và sử dụng Web Application Firewall (WAF) để lọc lưu lượng truy cập độc hại. Đảm bảo cập nhật phần mềm và cơ sở dữ liệu thường xuyên cũng là một biện pháp quan trọng.

VI. Tương lai của kiểm thử bảo mật ứng dụng Web Mobile và xu hướng mới 60 ký tự

Bối cảnh an ninh mạng luôn thay đổi, và với nó, tương lai của kiểm thử bảo mật ứng dụng Web/Mobile cũng không ngừng phát triển. Các cuộc tấn công ngày càng trở nên phức tạp, đòi hỏi các phương pháp kiểm thử và phòng thủ phải liên tục được cải tiến. Sự xuất hiện của các công nghệ mới như Trí tuệ nhân tạo (AI), Học máy (ML) và blockchain đang mở ra những hướng đi mới cho việc phát hiện và ngăn chặn lỗ hổng bảo mật ứng dụng web và di động. "An toàn thông tin ứng dụng" không còn là một giai đoạn riêng lẻ mà đã trở thành một phần không thể tách rời của toàn bộ vòng đời phát triển phần mềm (SDLC), thể hiện qua sự trỗi dậy của triết lý DevSecOps.

Trong tương lai gần, kiểm thử bảo mật tự động sẽ đóng vai trò ngày càng trung tâm. Các công cụ sẽ trở nên thông minh hơn, có khả năng phân tích ngữ cảnh, học hỏi từ các cuộc tấn công trước đây và đưa ra các khuyến nghị chính xác hơn. Việc tích hợp sâu hơn các công cụ bảo mật vào quy trình CI/CD (Continuous Integration/Continuous Delivery) sẽ giúp phát hiện lỗ hổng sớm hơn, thậm chí ngay trong giai đoạn mã hóa. Bên cạnh đó, các mô hình kiểm thử dựa trên rủi ro và các phương pháp kiểm thử liên tục sẽ giúp các tổ chức duy trì một tư thế bảo mật mạnh mẽ trước các mối đe dọa mới. Nắm bắt các xu hướng này là chìa khóa để đảm bảo rằng các ứng dụng Web và Mobile vẫn an toàn và đáng tin cậy trong môi trường kỹ thuật số đầy biến động.

6.1. Vai trò của An toàn thông tin ứng dụng trong kỷ nguyên số hóa

Trong kỷ nguyên số hóa, an toàn thông tin ứng dụng là trụ cột không thể thiếu. Với việc dữ liệu trở thành tài sản quý giá nhất, việc bảo vệ các ứng dụng khỏi các cuộc tấn công mạng là ưu tiên hàng đầu. Một lỗ hổng duy nhất có thể dẫn đến thiệt hại hàng triệu đô la, mất niềm tin của khách hàng và uy tín doanh nghiệp. Vai trò của an toàn thông tin không chỉ giới hạn ở việc ngăn chặn truy cập trái phép mà còn đảm bảo tính toàn vẹn, khả dụng và tuân thủ các quy định pháp lý. Nó là nền tảng cho sự phát triển bền vững của bất kỳ tổ chức nào dựa trên công nghệ, đòi hỏi một chiến lược bảo mật chủ động và liên tục được cập nhật để đối phó với các mối đe dọa mới.

6.2. Xu hướng kiểm thử bảo mật tự động và tích hợp DevSecOps

Xu hướng kiểm thử bảo mật tự động đang định hình lại cách các tổ chức tiếp cận an ninh ứng dụng. Thay vì thực hiện kiểm thử theo đợt, các công cụ tự động hóa như SAST (Static Application Security Testing), DAST (Dynamic Application Security Testing) và IAST (Interactive Application Security Testing) cho phép kiểm tra liên tục trong suốt vòng đời phát triển. Việc này được tăng cường bởi triết lý DevSecOps, tích hợp bảo mật vào mọi giai đoạn của quy trình DevOps. DevSecOps thúc đẩy một văn hóa nơi tất cả các bên liên quan – nhà phát triển, vận hành và chuyên gia bảo mật – cùng chịu trách nhiệm về an ninh. Mục tiêu là "shift left" bảo mật, tức là phát hiện và khắc phục lỗ hổng càng sớm càng tốt, giảm thiểu chi phí và rủi ro. Các công cụ thông minh hơn, tích hợp API, và phân tích hành vi sẽ là trọng tâm của xu hướng này.

Tóm tắt và mô tả trên trang này được tạo với sự hỗ trợ của AI từ nội dung tài liệu gốc; tài liệu do người dùng đóng góp và được kiểm duyệt trước khi xuất bản. Báo lỗi nội dung.

14/04/2026
Tiểu luận đồ án tốt nghiệp tìm hiểu một số công cụ kiểm thử bảo mật ứng dụng web hoặc mobile hoặc các loại ứng dụng khác và minh họa

Trích đoạn nội dung tài liệu

CHƯƠNG 1: TÌM HIỂU CÁC LỖ HỔNG BẢO MẬT TRÊN ỨNG DỤNG WEB 1. Tổng quan về ứng dụng web Trong thời đại phát triển hiện nay, Internet được xem như một kênh truyền thông tiết kiệm chi phí mà bất kỳ doanh nghiệp nào cũng sử dụng. Tuy nhiên, để hoạt động giao dịch diễn ra nhanh chóng và trao đổi thông tin thị trường trở nên hiệu quả, các doanh nghiệp cần phải sử dụng web application để nắm rõ và lưu trữ toàn bộ dữ liệu cần thiết và phương tiện xử lý thông tin. Các doanh nghiệp sẽ chuyển từ mô hình truyền thông sang mô hình lưới và mô hình điện toán đám mây.

Các web application cung cấp cho doanh nghiệp khả năng hợp lý hoá nhiều hoạt động, tăng hiệu quả và giảm chi phí đáng kể. Định nghĩa Website là một tập hợp các trang thông tin có chứa nội dung dạng văn bản, chữ số, âm thanh, hình ảnh, video, v. được lưu trữ trên máy chủ (web server) và có thể truy cập từ xa thông qua mạng Internet. Web application hay ứng dụng web là một phần mềm ứng dụng trên nền tảng web để chạy các phần mềm theo nhu cầu và mong muốn của người dùng.

Thông qua các thuật toán lập trình web application, người dùng có thể thực hiện được một số công việc như tính toán, mua sắm, chia sẻ ảnh,… vì application có tính tương tác cao. Tình trạng bảo mật các ứng dụng web hiện nay Theo trích dẫn lời phát biểu của Phó Trưởng Ban Kinh tế Trung ương trong bài báo: “An ninh không gian mạng: 4.161 cuộc tấn công trong 10 tháng đầu năm 2020” của trang laodong.vn như sau: “Thực tiễn cho thấy, chúng ta đang phải đối mặt với cuộc tấn công mạng ngày càng nguy hiểm, tinh vi hơn. Tại Việt Nam, theo 3 h số liệu thống kê của Bộ Thông tin và Truyền thông, trong 10 tháng đầu năm 2020, số lượng cuộc tấn công mạng gây ra sự cố đã ghi nhận 4. Theo bài báo: “Toàn cảnh an ninh mạng Việt Nam năm 2020: Tổn thất hơn 1 tỷ USD do virus máy tính”.

Trong năm qua, hàng loạt vụ tấn công mạng quy mô lớn diễn ra trên toàn cầu, điển hình như vụ việc nhà máy của Foxconn bị tin tặc tấn công, bị đòi 34 triệu USD tiền chuộc dữ liệu; hay 267 triệu thông tin người dùng Facebook được rao bán; Intel bị tin tặc tấn công, gây rò rỉ 20 GB dữ liệu bí mật… Mới đây nhất, T-Mobile, một trong những nhà mạng lớn nhất của Mỹ cũng đã trở thành nạn nhân tiếp theo của hacker. Theo quan sát của Bkav, tại Việt Nam, nhiều trang thương mại điện tử lớn, một số nền tảng giao hàng trực tuyến có nhiều người sử dụng, đã bị xâm nhập và đánh cắp dữ liệu. Chỉ tính riêng năm 2020, hàng trăm tỷ đồng đã bị hacker chiếm đoạt qua tấn công an ninh mạng liên quan đến ngân hàng, trong đó chủ yếu là các vụ đánh cắp mã OTP giao dịch của người dùng. Cùng với những trào lưu trên mạng xã hội tiềm ẩn hiểm họa.

Một xu hướng tấn công mới của các hacker chính là tấn công chuỗi cung ứng hay còn gọi là Suppy Chain Attack. Thay vì nhắm mục tiêu trực tiếp vào nạn nhân, tin tặc tấn công vào các nhà sản xuất phần mềm mà nạn nhân sử dụng, cài mã độc vào phần mềm ngay từ khi "xuất xưởng". Một khi nạn nhân tải hoặc cập nhật phần mềm phiên bản mới từ nhà sản xuất, mã độc sẽ được kích hoạt, hacker có thể dễ dàng xâm nhập thành công vào các hệ thống được bảo vệ nghiêm ngặt 1. Sự khác nhau giữa Website và Web app WEB SITE WEB APP Tính tương tác thấp, ít chức năng Tính tương tác cao, nhiều chức (Xem, đọc, click qua lại giữa các năng (Đăng thông tin, upload file, xuất link…) báo cáo…) Được tạo thành từ các trang html Được tạo bởi html và code ở tĩnh và một số tài nguyên (hình ảnh, back end (PHP, C#, Java, …) âm thanh, video) 4 h Được dùng để lưu trữ, hiển thị Được dùng để “thực hiện một thông tin công việc”, thực hiện các chức năng của một ứng dụng Bảng 1.

So sánh sự khác nhau giữa Website và Web app Khả năng tương tác Mục đích của website là giúp người dùng dễ dàng điều hướng và trích xuất thông tin liên quan đáp ứng nhu cầu của người dùng. Vì vậy, website cung cấp những thông tin hữu ích với tính tương tác thấp và ít chức năng. Người đọc chỉ có thể xem, nhìn và nghe và click qua lại giữa các link… chứ không thể tác động hay tạo nên sự ảnh hưởng nào của trang. Ngược lại, mục đích của web app lại là phản hồi lại tương tác của người dùng cũng như cung cấp cho họ khả năng thao tác dữ liệu.

Do đó, với web app bạn có thể đọc, nghe, thao tác dữ liệu trên trang bằng cách nhấn nút, gửi biểu mẫu, nhận phản hồi từ trang, nhắn tin trực tuyến, thanh toán,… Khả năng tích hợp Khi nói đến việc tích hợp với các phần mềm hoặc công cụ trực tuyến khác thì các web app thường hữu ích hơn các website. Tích hợp của bên thứ ba cho phép web app thu thập, lưu trữ và xử lý dữ liệu. Chúng cũng cung cấp trải nghiệm người dùng cấp cao và tạo điều kiện thuận lợi trong việc cung cấp nội dung được cá nhân hóa. Với web app, khả năng tích hợp tương đối hiện đại hơn.

Hiện nay có nhiều phần mềm được tích hợp trên web app, điển hình là phần mềm CRM. Đối với website, mặc dù chúng vẫn có khả năng tích hợp các phần mềm, công cụ khác như phần mềm kế toán, phần mềm quản lý nhưng vẫn còn bị giới hạn vì phần lớn website chỉ cung cấp đến người dùng những chức năng cốt lõi, phục vụ cho việc giới thiệu là chính. Khả năng xác thực 5 h Đối với các website, thông tin xác thực là không bắt buộc. Nếu website của bạn có thông tin nhạy cảm và bạn muốn hạn chế truy cập trái phép, thì xác thực người dùng sẽ đến lúc cần dùng đến.

Quy trình xác thực chỉ cho phép người dùng có đăng nhập và mật khẩu thích hợp truy cập vào website và dữ liệu. Tuy nhiên, đối với các web app, đó là một tính năng bắt buộc phải có. Ví dụ: bạn không nhất thiết phải đăng nhập vào Wikipedia để truy cập thông tin. Tuy nhiên, bạn cần có ID và mật khẩu đăng nhập để đăng nhập và truy cập dữ liệu trên Facebook.

Ngôn ngữ sử dụng khi thiết kế So với web app, website được thiết kế khá đơn giản, chủ yếu hiển thị các nội dung văn bản, hình ảnh và hỗ trợ việc giới thiệu, nhận thông tin của người dùng từ form yêu cầu, các lập trình viên website thường sử dụng CMS WordPress bởi mã nguồn chuẩn SEO, giao diện dễ dàng sử dụng, giúp tiết kiệm chi phí và thời gian triển khai web. Ngược lại, do tính chất khác biệt, nên web app sẽ được thiết kế bằng nhiều ngôn ngữ lập trình hơn với mức độ phức tạp cao hơn. Ngoài HTML, CSS ra thì một số ngôn ngữ lập trình khác được áp dụng khi thiết kế web app: PHP, Java, .NET, Ruby, Python, Javascript,… 1. Nguyên lý hoạt động của ứng dụng web Một ứng dụng Web thông thường được cấu trúc như một ứng dụng ba lớp.

Ở dạng phổ biến nhất, một trình duyệt Web hoặc giao diện người dùng là lớp thứ nhất. Tầng thứ hai là công nghệ kỹ thuật tạo nội dung động như Java servlets (JSP) hay Active Server Pages (ASP). Còn tầng thứ ba là cơ sở dữ liệu chứa nội dung (như tin tức) và dữ liệu người dùng (như username, password, mã số bảo mật xã hội, chi tiết thẻ tín dụng). Quá trình hoạt động bắt đầu với yêu cầu được tạo ra từ người dùng trên trình duyệt, gửi qua Internet tới trình chủ Web ứng dụng (Web application Server).

Web 6 h ứng dụng truy cập máy chủ chứa cơ sở dữ liệu để thực hiện nhiệm vụ được yêu cầu: cập nhật, truy vấn thông tin đang nằm trong cơ sở dữ liệu. Sau đó ứng dụng Web gửi thông tin lại cho người dùng qua trình duyệt. Các lỗ hổng phổ biến trên ứng dụng web 1. SQL Injection SQL Injection là một kỹ thuật cho phép những kẻ tấn công lợi dụng lỗ hổng của việc kiểm tra dữ liệu đầu vào trong các ứng dụng web và các thông báo lỗi của hệ quản trị cơ sở dữ liệu trả về để inject (tiêm vào) và thi hành các câu lệnh SQL bất hợp pháp.

SQL injection có thể cho phép những kẻ tấn công thực hiện các thao tác như delete, insert, update, v. trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy. SQL injection thường được biết đến như là một vật trung gian tấn công trên các ứng dụng web có dữ liệu được quản lý bằng các hệ quản trị cơ sở dữ liệu như SQL Server, MySQL, Oracle, DB2, Sysbase. SQL Injection cho phép kẻ tấn công có thể thực hiện các thao tác xóa, hiệu chỉnh… do có toàn quyền trên cơ sở dữ liệu của ứng dụng, gây ra những thiệt hại lớn khiến những dữ liệu trong database bị lộ ra ngoài.

Sự tấn công của SQL không những cho phép những kẻ tấn công đọc được, chỉnh sửa được dữ liệu. Họ có thể lợi điểm này để xóa toàn bộ dữ liệu và làm cho hệ thống web ngừng hoạt động, tạo các bảng dữ liệu mới nó có thể điều khiển toàn bộ hệ quản trị CSDL và với quyền hạn rộng lớn.Việc lộ thông tin gây ảnh hưởng rất lớn đến hình ảnh, uy tín, bảo mật công ty. Để hạn chế lỗ hổng SQL Injection, chúng ta cần: - Không tin tưởng những input người dùng nhập vào - Sử dụng các thủ tục được lưu trữ - Chuẩn bị sẵn các lệnh - Thông báo lỗi đúng - Giới hạn quyền truy cập 7 h - Loại bỏ các ký tự meta và extend - Chuyển các giá trị numberic sang integer hoặc dùng ISNUMBERIC - Xóa các stored procedure trong database master [4] 1. Cross-Site Scripting (XSS) XSS là viết tắt từ cụm từ tiếng Anh Cross-Site Scripting là một kiểu tấn công bảo mật cho phép kẻ tấn công đưa các tập lệnh độc hại vào phần nội dung của các trang web đáng tin cậy khác.

Tấn công Cross-site scripting xảy ra khi một nguồn không đáng tin cậy được phép đưa code của chính nó vào một ứng dụng web và mã độc đó được bao gồm trong nội dung gửi đến trình duyệt của nạn nhân. Kiểu tấn công này không nhắm trực tiếp vào người dùng mà thay vào đó sẽ khai thác lỗ hổng trong trang web hoặc ứng dụng web mà nạn nhân truy cập.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ