Luận văn thạc sĩ: Xây dựng ca kiểm thử an toàn thông tin cho ứng dụng web

Luận văn thạc sĩ kỹ thuật phân tích vnu uet xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web, đánh giá thực trạng, chỉ ra hạn chế, đề xuất giải pháp khả thi cho thực

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Luận Văn Thạc Sỹ

2014

114
4
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

LỜI CAM ĐOAN

1. CHƯƠNG 1: KHÁI NIỆM CƠ BẢN

1.1. Các khái niệm cơ bản trong kiểm thử phần mềm

1.2. Khái niệm về kiểm thử phần mềm

1.3. Các phương pháp kiểm thử

1.4. Các chiến lược kiểm thử

1.5. Kiểm thử an toàn thông tin cho ứng dụng web

1.5.1. Khái niệm ứng dụng web

1.5.2. Hoạt động của một ứng dụng Web

1.5.3. Kiểm thử ATTT cho ứng dụng web

1.5.4. Quy trình kiểm thử an toàn thông tin

2. CHƯƠNG 2: THIẾT KẾ CA KIỂM THỬ ATTT CHO ỨNG DỤNG WEB

2.1. Phương pháp thiết kế ca kiểm thử ATTT

2.2. Tổng hợp nguy cơ về ATTT cho ứng dụng web

2.3. Tương tác với cơ sở dữ liệu tránh lỗ hổng SQL Injection

2.4. Xử lý dữ liệu đầu vào tránh lỗ hổng XSS

2.5. Sử dụng Token trong phương thức GET và POST tránh lỗ hổng CSRF

2.6. Kiểm tra quyền truy cập của người dùng

2.7. Kiểm soát các thao tác với file

2.8. Mã hóa dữ liệu nhạy cảm

2.9. HTTP Only cookie

2.10. Chuyển hướng và chuyển tiếp thiếu thẩm tra

2.11. Thất thoát thông tin và xử lý lỗi không đúng cách

2.12. Sử dụng captcha an toàn

2.13. Mật khẩu mạnh

2.14. Các ca kiểm thử ATTT

2.14.1. Ca kiểm thử mức chung

2.14.2. Ca kiểm thử cho chức năng Đăng nhập – Đăng xuất

2.14.3. Ca kiểm thử cho chức năng Tìm kiếm

2.14.4. Ca kiểm thử cho chức năng Thêm mới

2.14.5. Ca kiểm thử cho chức năng Sửa

2.14.6. Ca kiểm thử cho chức năng Xóa

2.14.7. Ca kiểm thử cho chức năng Xem thông tin

2.14.8. Ca kiểm thử cho chức năng Download

2.14.9. Ca kiểm thử cho chức năng Upload

2.14.10. Ca kiểm thử cho chức năng Import

2.14.11. Ca kiểm thử cho chức năng Trang có chuyển hướng

2.14.12. Ca kiểm thử liên quan đến dữ liệu nhạy cảm

2.14.13. Ca kiểm thử cho chức năng liên quan đến mật khẩu

3. CHƯƠNG 3: VẬN DỤNG VÀ CÔNG CỤ HỖ TRỢ

3.1. Minh họa phương pháp kiểm thử

3.2. Công cụ hỗ trợ

3.3. Quản lý các ca kiểm thử an toàn thông tin

3.4. Sinh các ca kiểm thử với từng chức năng của hệ thống website

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về kiểm thử an toàn thông tin cho ứng dụng web

Kiểm thử an toàn thông tin cho ứng dụng web là một quy trình quan trọng nhằm đảm bảo rằng các ứng dụng web không chỉ hoạt động đúng chức năng mà còn bảo vệ dữ liệu và tài nguyên của người dùng khỏi các mối đe dọa từ bên ngoài. Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, việc bảo mật thông tin trở thành một yêu cầu cấp thiết. Các lỗ hổng bảo mật có thể dẫn đến những hậu quả nghiêm trọng, từ việc mất dữ liệu đến thiệt hại tài chính lớn. Do đó, việc thực hiện kiểm thử an toàn thông tin là cần thiết để phát hiện và khắc phục các lỗ hổng này.

1.1. Khái niệm về kiểm thử an toàn thông tin

Kiểm thử an toàn thông tin là quá trình đánh giá và kiểm tra các ứng dụng web nhằm phát hiện các lỗ hổng bảo mật. Điều này bao gồm việc kiểm tra các phương thức xác thực, quyền truy cập, và các lỗ hổng phổ biến như SQL Injection, XSS, và CSRF. Mục tiêu chính là đảm bảo rằng ứng dụng có thể chống lại các cuộc tấn công và bảo vệ thông tin nhạy cảm của người dùng.

1.2. Tầm quan trọng của kiểm thử an toàn thông tin

Trong thời đại số hóa, các ứng dụng web trở thành mục tiêu chính của các cuộc tấn công mạng. Việc kiểm thử an toàn thông tin không chỉ giúp bảo vệ dữ liệu mà còn nâng cao uy tín của doanh nghiệp. Một ứng dụng an toàn sẽ tạo niềm tin cho người dùng, từ đó tăng cường sự trung thành và doanh thu cho doanh nghiệp.

II. Các thách thức trong kiểm thử an toàn thông tin cho ứng dụng web

Mặc dù kiểm thử an toàn thông tin là rất quan trọng, nhưng vẫn tồn tại nhiều thách thức trong quá trình thực hiện. Các ứng dụng web ngày càng phức tạp, với nhiều công nghệ và nền tảng khác nhau, điều này làm cho việc kiểm thử trở nên khó khăn hơn. Ngoài ra, sự phát triển nhanh chóng của các phương thức tấn công cũng yêu cầu các chuyên gia bảo mật phải luôn cập nhật kiến thức và kỹ năng của mình.

2.1. Sự phức tạp của ứng dụng web hiện đại

Các ứng dụng web hiện đại thường sử dụng nhiều công nghệ khác nhau, từ front-end đến back-end, và kết nối với nhiều dịch vụ bên ngoài. Điều này tạo ra nhiều điểm yếu tiềm ẩn mà các chuyên gia kiểm thử cần phải xem xét. Việc hiểu rõ cấu trúc và hoạt động của ứng dụng là rất quan trọng để thực hiện kiểm thử hiệu quả.

2.2. Tốc độ phát triển của các phương thức tấn công

Các phương thức tấn công mạng đang ngày càng trở nên tinh vi và khó phát hiện. Các hacker không ngừng phát triển các kỹ thuật mới để khai thác lỗ hổng bảo mật. Do đó, các chuyên gia kiểm thử cần phải liên tục cập nhật và cải thiện kỹ năng của mình để đối phó với những mối đe dọa này.

III. Phương pháp kiểm thử an toàn thông tin hiệu quả cho ứng dụng web

Để đảm bảo an toàn thông tin cho ứng dụng web, có nhiều phương pháp kiểm thử khác nhau có thể được áp dụng. Mỗi phương pháp có những ưu điểm và nhược điểm riêng, và việc lựa chọn phương pháp phù hợp sẽ giúp tối ưu hóa quy trình kiểm thử.

3.1. Kiểm thử tĩnh và động

Kiểm thử tĩnh là phương pháp kiểm tra mã nguồn mà không cần chạy ứng dụng, giúp phát hiện lỗi ngay từ giai đoạn phát triển. Trong khi đó, kiểm thử động yêu cầu chạy ứng dụng để kiểm tra các chức năng và bảo mật. Cả hai phương pháp đều cần thiết để đảm bảo an toàn thông tin cho ứng dụng web.

3.2. Sử dụng công cụ kiểm thử tự động

Công cụ kiểm thử tự động giúp tiết kiệm thời gian và tăng cường độ chính xác trong quá trình kiểm thử. Các công cụ này có thể phát hiện các lỗ hổng bảo mật phổ biến và cung cấp báo cáo chi tiết về các vấn đề cần khắc phục. Việc sử dụng công cụ tự động là một phần quan trọng trong quy trình kiểm thử an toàn thông tin.

IV. Ứng dụng thực tiễn của kiểm thử an toàn thông tin

Kiểm thử an toàn thông tin không chỉ là lý thuyết mà còn có nhiều ứng dụng thực tiễn trong các doanh nghiệp. Việc thực hiện kiểm thử an toàn thông tin giúp phát hiện và khắc phục các lỗ hổng bảo mật, từ đó bảo vệ dữ liệu và tài nguyên của doanh nghiệp.

4.1. Các ca kiểm thử điển hình

Các ca kiểm thử điển hình bao gồm kiểm thử chức năng đăng nhập, kiểm thử quyền truy cập, và kiểm thử các lỗ hổng như SQL Injection và XSS. Những ca kiểm thử này giúp phát hiện các vấn đề bảo mật nghiêm trọng và đảm bảo rằng ứng dụng hoạt động an toàn.

4.2. Kết quả nghiên cứu và ứng dụng

Nghiên cứu cho thấy rằng việc thực hiện kiểm thử an toàn thông tin giúp giảm thiểu rủi ro bảo mật và tăng cường độ tin cậy của ứng dụng. Các doanh nghiệp đã áp dụng kiểm thử an toàn thông tin thành công đã ghi nhận sự cải thiện đáng kể trong việc bảo vệ dữ liệu và tài nguyên của mình.

V. Kết luận và hướng phát triển trong kiểm thử an toàn thông tin

Kiểm thử an toàn thông tin cho ứng dụng web là một lĩnh vực đang phát triển nhanh chóng. Với sự gia tăng của các mối đe dọa bảo mật, việc thực hiện kiểm thử an toàn thông tin trở nên cần thiết hơn bao giờ hết. Các doanh nghiệp cần đầu tư vào quy trình kiểm thử và nâng cao nhận thức về bảo mật để bảo vệ dữ liệu và tài nguyên của mình.

5.1. Tương lai của kiểm thử an toàn thông tin

Tương lai của kiểm thử an toàn thông tin sẽ tiếp tục phát triển với sự xuất hiện của các công nghệ mới như trí tuệ nhân tạo và học máy. Những công nghệ này có thể giúp tự động hóa quy trình kiểm thử và phát hiện các lỗ hổng bảo mật một cách hiệu quả hơn.

5.2. Đề xuất cải tiến quy trình kiểm thử

Để nâng cao hiệu quả của kiểm thử an toàn thông tin, các doanh nghiệp nên xem xét việc áp dụng các phương pháp kiểm thử mới, đào tạo nhân viên về bảo mật, và thường xuyên cập nhật các công cụ kiểm thử. Việc này sẽ giúp đảm bảo rằng ứng dụng web luôn được bảo vệ trước các mối đe dọa bảo mật.

22/07/2025
Luận văn thạc sĩ vnu uet xây dựng các ca kiểm thử an toàn thông tin cho ứng dụng web

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

MỞ ĐẦU Trong thời đại bùng nổ công nghệ thông tin hiện nay, phần mềm đã đi vào mọi ngõ ngách của cuộc sống và đã có những ảnh hƣởng to lớn đến đời sống của con ngƣời. Bởi vậy mà hơn bao giờ hết, việc kiểm thử và đảm bảo chất lƣợng phần mềm càng trở lên quan trọng. Giờ đây, việc kiểm thử phần mềm cũng không chỉ đơn thuần là kiểm thử cho các chức năng hoạt động tốt, mà còn phải đảm bảo bảo mật phần mềm. Bởi những nỗ hổng về bảo mật là những nguy cơ rất nguy hiểm có thể dẫn đến những hậu quả nghiêm trọng.

Các loại tội phạm công nghệ cao, an ninh mạng là những vấn đề thuộc an ninh phi truyền thống đang ngày càng phổ biến và tác động, ảnh hƣởng đến an ninh quốc gia. Theo tờ USA Today, năm 2012, tội phạm công nghệ cao gây thiệt hại cho nƣớc Mỹ khoảng 67,2 tỷ USD, trên toàn cầu khoảng 400 tỷ USD, chỉ đứng sau tội phạm ma túy (460 tỷ USD) [1]. Thực trạng an toàn thông tin tại Việt Nam đang tiềm ẩn nhiều nguy cơ. An ninh mạng vẫn chƣa thực sự đƣợc quan tâm tại các cơ quan, doanh nghiệp.

Theo nhận định của các chuyên gia Công ty Bkav [2], hầu hết cơ quan doanh nghiệp của Việt Nam chƣa bố trí đƣợc nhân sự phụ trách an ninh mạng hoặc năng lực và nhận thức của đội ngũ này chƣa tƣơng xứng với tình hình thực tế. Vấn đề an ninh mang đang trở lên hiện hữu, ảnh hƣởng sâu rộng, tác động đến các vấn đề chính trị, kinh tế và an ninh quốc gia. Việc đảm bảo bảo mật phần mềm đã trở thành yêu cầu cấp thiết và bắt buộc đối với bất kỳ phần mềm nào. Vì vậy, việc kiểm thử bảo mật cũng trở thành 1 yêu cầu bắt buộc trong quy trình kiểm thử phần mềm của rất nhiều công ty.

Xuất phát từ nhu cầu thực tế này, chúng tôi đã nghiên cứu và tìm hiểu về an toàn thông tin đối với các ứng dụng web và các phƣơng pháp kiểm thử để tìm ra các nỗ hổng về bảo mật của ứng dụng web. Sau một quá trình nghiên cứu dƣới sự hƣớng dẫn của TS. Đặng Đức Hạnh, tôi đã hoàn thành luận văn “XÂY DỰNG CÁC CA KIỂM THỬ AN TOÀN THÔNG TIN CHO ỨNG DỤNG WEB”. Luận văn đƣợc cấu trúc thành 3 chƣơng nhƣ sau: - Chƣơng 1: Khái niệm cơ bản - Chƣơng 2: Thiết kế các ca kiểm thử ATTT cho ứng dụng web - Chƣơng 3: Vận dụng và công cụ hỗ trợ 1 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com CHƢƠNG 1.

KHÁI NIỆM CƠ BẢN Trong Chƣơng 1 chúng tôi trình bày về những khái niệm cơ bản trong kiểm thử phần mềm và kiểm thử an toàn thông tin. Các khái niệm cơ bản trong kiểm thử phần mềm Chúng tôi xin tóm lƣợc lại những khái niệm cơ bản về kiểm thử phần mềm, các phƣơng pháp và chiến lƣợc kiểm thử. Khái niệm về kiểm thử phần mềm Kiểm thử phần mềm [5] là quá trình khảo sát một hệ thống hay thành phần dƣới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó. Mục đích của kiểm thử phần mềm là tìm ra các lỗi hay khiếm khuyết phần mềm nhằm đảm bảo hiệu quả hoạt động tối ƣu của phần mềm trong nhiều điều kiện khác nhau.

Có thể định nghĩa một cách dễ hiểu nhƣ sau: Kiểm thử phần mềm [6] là một tiến trình hay một tập hợp các tiến trình đƣợc thiết kế để đảm bảo mã máy tính thực hiện theo cái mà chúng đã đƣợc thiết kế để làm, và không thực hiện bất cứ thứ gì không mong muốn. Đây là một pha quan trọng trong quá trình phát triển hệ thống, giúp cho ngƣời xây dựng hệ thống và khách hàng thấy đƣợc hệ thống mới đã đáp ứng yêu cầu đặt ra hay chƣa. Các phương pháp kiểm thử Trong thực tế, có 2 phƣơng pháp kiểm thử phần mềm [6] thƣờng đƣợc sử dụng là phƣơng pháp kiểm thử tĩnh (static testing) và kiểm thử động (dynamic testing). Kiểm thử tĩnh (static testing): Là phƣơng pháp kiểm thử phần mềm đòi hỏi phải duyệt lại các yêu cầu và các đặc tả bằng tay, thông qua việc sử dụng giấy, bút để kiểm tra logic, lần từng chi tiết mà không cần chạy chƣơng trình.

Phƣơng pháp này chủ yếu dùng để kiểm tra tính đúng đắn của mã lệnh, thuật toán và các tài liệu đặc tả. Ngoài ra, phƣơng pháp này có thể dùng để xem xét các yêu cầu và thông số kỹ thuật. Kiểm thử tĩnh cũng có thể đƣợc thực hiện một cách tự động. Trong các môi trƣờng lập trình, thƣờng có sẵn một trình thông dịch hay biên dịch kiểm tra tính đúng đắn của cú pháp chƣơng trình, đó cũng là một cách kiểm thử tĩnh nhƣng đƣợc thực hiện tự động.

2 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com Kiểm thử động (dynamic testing): Là phƣơng pháp kiểm thử thông qua việc dùng máy chạy chƣơng trình để điều tra trạng thái tác động của chƣơng trình. Đó là kiểm thử dựa trên các ca kiểm thử xác định bằng sự thực hiện của đối tƣợng kiểm thử hay chạy chƣơng trình. Kiểm thử động là kiểm tra cách thức hoạt động của mã lệnh, tức là kiểm tra sự phản ứng vật lý từ hệ thống tới các biến luôn thay đổi theo thời gian. Trong kiểm thử động, phần mềm phải thực sự đƣợc biên dịch và chạy.

Kiểm thử động bao gồm làm việc với phần mềm, nhập các giá trị đầu vào và kiểm tra xem liệu đầu ra có nhƣ mong muốn hay không. Các chiến lược kiểm thử Trong chiến lƣợc kiểm thử, chúng ta có ba chiến lược kiểm thử [6] hay dùng nhất là: kiểm thử hộp đen, kiểm thử hộp trắng, và kiểm thử hộp xám. Chi tiết các phƣơng pháp này nhƣ mô tả phần dƣới. Kiểm thử hộp đen – Black box Một trong những chiến lƣợc kiểm thử quan trọng là kiểm thử hộp đen, hƣớng dữ liệu, hay hƣớng vào ra.

Kiểm thử hộp đen xem chƣơng trình nhƣ là một “hộp đen”. Mục đích của bạn là hoàn toàn không quan tâm về cách cƣ xử và cấu trúc bên trong của chƣơng trình. Thay vào đó, tập trung vào tìm các trƣờng hợp mà chƣơng trình không thực hiện theo các đặc tả của nó. Ở mức kiểm thử này, kiểm thử viên chỉ xem xét dữ liệu đầu vào và giá trị đầu ra có giống với mong muốn không, mà không cần phải quan tâm hệ thống làm thế nào để đƣa đƣợc giá trị đầu ra nhƣ mong muốn.

Kiểm thử dựa trên đặc tả là cần thiết, nhƣng không đủ để ngăn chặn những rủi ro chắc chắn. Kiểm thử hộp đen không có mối liên quan nào tới mã lệnh và kiểm thử viên chỉ rất đơn giản tâm niệm là: một mã lệnh phải có lỗi. Sử dụng nguyên tắc “Hãy đòi hỏi và bạn sẽ đƣợc nhận”, những kiểm thử viên hộp đen tìm ra lỗi mà những lập trình viên không tìm ra. Nhƣng, ngƣời ta nói kiểm thử hộp đen “giống nhƣ là đi trong bóng tối mà không có đèn vậy”, bởi vì kiểm thử viên không biết các phần mềm đƣợc kiểm tra thực sự đƣợc xây dựng nhƣ thế nào.

Đó là lý do mà có nhiều trƣờng hợp mà một kiểm thử viên hộp đen viết rất nhiều ca kiểm thử để kiểm tra một thứ gì đó mà đáng lẽ có thể chỉ cần kiểm tra bằng 1 ca kiểm thử duy nhất. Trong khi đó, một số phần của chƣơng trình lại không đƣợc kiểm tra chút nào. Do vậy, kiểm thử hộp đen có ƣu điểm là đánh giá khách quan, nhƣng lại có nhƣợc điểm là một kiểu thăm dò mù. Kiểm thử hộp trắng – White box Là một chiến lƣợc kiểm thử khác, trái ngƣợc hoàn toàn với kiểm thử hộp đen, kiểm thử hộp trắng hay kiểm thử hƣớng logic cho phép bạn khảo sát cấu trúc bên trong của chƣơng trình.

Chiến lƣợc này xuất phát từ dữ liệu kiểm thử bằng sự kiểm thử tính 3 LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com logic của chƣơng trình. Kiểm thử viên sẽ truy cập vào cấu trúc dữ liệu và giải thuật bên trong chƣơng trình (và cả mã lệnh thực hiện chúng). Phƣơng pháp kiểm thử hộp trắng cũng có thể đƣợc kết hợp với phƣơng pháp kiểm thử hộp đen để tạo ra bộ các ca kiểm thử đầy đủ nhằm giảm thiểu rủi ro. Kiểm thử hộp xám – Gray box testing Kiểm thử hộp xám đòi hỏi phải có sự truy cập tới cấu trúc dữ liệu và giải thuật bên trong cho những mục đích thiết kế các ca kiểm thử, nhƣng là kiểm thử ở mức ngƣời sử dụng hay mức hộp đen.

Việc thao tác tới dữ liệu đầu vào và định dạng dữ liệu đầu ra là không rõ ràng, giống nhƣ một chiếc “hộp xám”, bởi vì đầu vào và đầu ra rõ ràng là ở bên ngoài “hộp đen” mà chúng ta vẫn gọi về hệ thống đƣợc kiểm tra. Sự khác biệt này đặc biệt quan trọng khi quản lý kiểm thử tích hợp – Intergartion testing giữa 2 modun mã lệnh đƣợc viết bởi hai chuyên viên thiết kế khác nhau, trong đó chỉ giao diện là đƣợc đƣa ra để kiểm thử. Kiểm thử hộp xám có thể cũng bao gồm cả thiết kế đối chiếu để quyết định, ví dụ, giá trị biên hay thông báo lỗi. Kiểm thử an toàn thông tin cho ứng dụng web Bên cạnh kiểm thử chức năng cho phần mềm, việc kiểm thử an toàn thông tin cho mỗi ứng dụng cũng là một vấn đề rất quan trọng.

Đặc biệt là với các ứng dụng web, loại ứng dụng có đối tƣợng ngƣời dùng rất đa dạng và phức tạp. Ứng dụng web hiện cũng là mục tiêu tấn công của nhiều hacker. Bởi vậy, việc đảm bảo an toàn thông tin cho các ứng dụng web là một yêu cầu cấp thiết. Để nghiên cứu kỹ hơn về vấn đề này, chúng ta sẽ đi tìm hiểu từng khái niệm để hiểu rõ hơn thế nào là kiểm thử an toàn thông tin cho ứng dụng web.

Khái niệm ứng dụng web Ứng dụng Web là một ứng dụng chủ/khách sử dụng giao thức HTTP để tƣơng tác với ngƣời dùng hay hệ thống khác. Trình khách dành cho ngƣời sử dụng thƣờng là một trình duyệt Web nhƣ Internet Explorer hay Firefox. Cũng có thể là một chƣơng trình đóng vai trò đại lý ngƣời dùng hoạt động nhƣ một trình duyệt tự động. Ngƣời dùng gửi và nhận các thông tin từ trình chủ thông qua việc tác động vào các trang Web.

Tốc độ phát triển các kỹ thuật xây dựng ứng dụng Web cũng phát triển rất nhanh.

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