Báo Cáo Đồ Án Nhập Môn Đảm Bảo An Toàn Thông Tin Với WebGoat

Đồ án nghiên cứu đồ án nhập môn đảm bảo an toàn và an tòan thông tin chương trình webgoat, thiết kế chi tiết, tính toán kỹ thuật theo tiêu chuẩn, đánh giá tính khả thi dự án.

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

Báo Cáo Đồ Án

2020

141
1
0

Phí lưu trữ

35 Point

Mục lục chi tiết

1. CHƯƠNG I: TỔNG QUAN VỀ ĐỀ TÀI

2. CHƯƠNG II: LỢI ÍCH CỦA WEBGOAT MANG LẠI

3. CHƯƠNG III: HƯỚNG DẪN CÀI ĐẶT WEBGOAT

4. CHƯƠNG IV: CÁC BÀI HỌC TẤN CÔNG MẠNG VÀ PHƯƠNG PHÁP ĐỂ NGĂN CHẶN TRÊN WEBGOAT

4.1. Cross-Site Scripting (XSS)

4.2. Access Control Flaws

5. CHƯƠNG V: TỔNG KẾT

CHƯƠNG VI: TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng Quan Về Đào Tạo An Ninh Mạng Với WebGoat

Đào tạo an ninh mạng là một lĩnh vực quan trọng trong thời đại số. WebGoat là một công cụ hữu ích giúp người học hiểu rõ về các lỗ hổng bảo mật trong ứng dụng web. Chương trình này không chỉ cung cấp lý thuyết mà còn cho phép thực hành trực tiếp các kỹ thuật tấn công và phòng ngừa.

1.1. WebGoat Là Gì Và Tại Sao Nên Sử Dụng

WebGoat là một ứng dụng web mã nguồn mở được phát triển bởi OWASP. Nó cung cấp một môi trường học tập an toàn để người dùng có thể thực hành các kỹ thuật tấn công mà không gây hại cho hệ thống thực tế.

1.2. Lợi Ích Của Việc Đào Tạo An Ninh Mạng

Việc đào tạo an ninh mạng giúp nâng cao nhận thức về bảo mật thông tin. Người học sẽ hiểu rõ hơn về các mối đe dọa và cách phòng ngừa hiệu quả, từ đó bảo vệ tốt hơn cho hệ thống của mình.

II. Vấn Đề An Ninh Mạng Hiện Nay Và Thách Thức Đối Với WebGoat

An ninh mạng đang trở thành một vấn đề cấp bách với sự gia tăng các cuộc tấn công mạng. WebGoat giúp người học nhận diện và hiểu rõ các lỗ hổng bảo mật phổ biến, từ đó tìm ra giải pháp khắc phục.

2.1. Các Mối Đe Dọa An Ninh Mạng Phổ Biến

Các mối đe dọa như tấn công SQL Injection, Cross-Site Scripting (XSS) đang gia tăng. WebGoat cung cấp các bài học thực tế để người học có thể nhận diện và phòng ngừa các mối đe dọa này.

2.2. Thách Thức Trong Việc Đào Tạo An Ninh Mạng

Một trong những thách thức lớn là việc cập nhật kiến thức về các lỗ hổng mới. WebGoat thường xuyên cập nhật các bài học để phản ánh tình hình an ninh mạng hiện tại.

III. Phương Pháp Đào Tạo An Ninh Mạng Với WebGoat

WebGoat sử dụng phương pháp học tập thực hành để giúp người học nắm vững kiến thức. Các bài học được thiết kế để người học có thể thực hành các kỹ thuật tấn công và phòng ngừa.

3.1. Hướng Dẫn Cài Đặt WebGoat

Để bắt đầu, người dùng cần cài đặt WebGoat từ GitHub và thiết lập môi trường Java. Hướng dẫn chi tiết sẽ giúp người dùng dễ dàng thực hiện.

3.2. Các Bài Học Tấn Công Mạng Trên WebGoat

WebGoat cung cấp nhiều bài học về các loại tấn công khác nhau như SQL Injection, XSS. Mỗi bài học đều có hướng dẫn chi tiết và bài tập thực hành.

IV. Ứng Dụng Thực Tiễn Của WebGoat Trong Đào Tạo An Ninh Mạng

WebGoat không chỉ là một công cụ học tập mà còn là một nền tảng để kiểm tra và phát triển kỹ năng an ninh mạng. Người học có thể áp dụng kiến thức vào thực tế để bảo vệ hệ thống của mình.

4.1. Kết Quả Nghiên Cứu Về Hiệu Quả Đào Tạo

Nghiên cứu cho thấy rằng việc sử dụng WebGoat trong đào tạo an ninh mạng giúp người học nắm vững kiến thức và kỹ năng thực hành tốt hơn.

4.2. Các Tình Huống Thực Tế Được Mô Phỏng

WebGoat mô phỏng các tình huống tấn công thực tế, giúp người học có cái nhìn rõ hơn về cách thức hoạt động của các cuộc tấn công mạng.

V. Kết Luận Về Tương Lai Của Đào Tạo An Ninh Mạng Với WebGoat

Đào tạo an ninh mạng với WebGoat sẽ tiếp tục phát triển và mở rộng. Với sự gia tăng của các mối đe dọa, nhu cầu về nhân lực có kỹ năng an ninh mạng sẽ ngày càng cao.

5.1. Tương Lai Của WebGoat

WebGoat sẽ tiếp tục cập nhật và cải tiến để đáp ứng nhu cầu đào tạo an ninh mạng ngày càng cao. Các bài học mới sẽ được thêm vào để phản ánh các mối đe dọa hiện tại.

5.2. Vai Trò Của Nhân Lực An Ninh Mạng

Nhân lực có kỹ năng an ninh mạng sẽ đóng vai trò quan trọng trong việc bảo vệ thông tin và hệ thống. Đào tạo với WebGoat sẽ giúp phát triển nguồn nhân lực chất lượng cao.

10/07/2025
Báo cáo đồ án nhập môn đảm bảo an toàn và an tòan thông tin chương trình webgoat

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

CHƯƠNG I : TỔNG QUAN ĐỀ TÀI Với sự phát triển nhanh chóng của công nghệ thông tin, thì thông tin cá nhân và các thông tin của công việc cần được bảo mật đang là thứ rất được coi trọng. Mọi thông tin quan trọng của một tổ chức công ty có thể đáng giá hàng nghìn đô, cũng vì vậy sự ra đời của các tin tặc hay còn gọi là hacker nhằm kiếm được món lợi nhuận khổng lồ từ thông tin của tổ chức công ty khác nhằm bán lại luôn là mục đích của nhóm người này. Từ đó đòi hỏi cần sự bảo vệ thông tin cần phải phát triển hơn nữa để ngăn chặn từ đó WebGoat, 1 chương trình được làm ra để đào tạo và phát triển nhân lực trẻ để tìm hiểu hướng tấn công của các tin tặc để ngăn chặn. WebGoat chính là một server application được cố tình lập trình có rất nhiều lỗi bảo mật.

Thông qua đó, nó hướng dẫn người dùng thực hành những kỹ thuật tấn công ở trên để hiểu rõ hơn bản chất về lỗ hổng mà web applications thường gặp. OWASP là nhà thành lập, phát triển và kiểm tra chức năng mới sử dụng thử nghiệm thâm nhập của WebGoat được thành lập vào năm 2001 bởi Mark Curphey và cho đến nay thì Matt Konda là người lãnh đạo của tổ chức này. WebGoat dựa vào hướng tiếp cận của một hacker để biết họ sẽ làm gì để đưa ra giải pháp ngăn chặn những cuộc tấn công an ninh mạng này khiến cho những hacker này không thể xâm nhập vào thiết bị hay hệ thống thông tin của người dùng. WebGoat được thiết kế với 8 bài học chính và người học phải hoàn thành các tiến trình nhỏ để hoàn thành các bài học.

Mỗi bài học là một hướng khác nhau và WebGoat vẫn đang cập nhật các loại tấn công phổ biến mới của các hacker hiện nay. Mục tiêu chính của WebGoat là tạo ra một môi trường giảng dạy tương tác trên thực tế để bảo mật ứng dụng web, và trong tương lai WebGoat định hướng trở thành một nền tảng đo điểm chuẩn bảo mật và một trang Web dựa trên Java Honeypot. 1 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT WebGoat đã cho ra mắt phiên bản mới nhất 8.0 vào ngày 21 tháng 5 năm nay trên github.com và vẫn đang tiếp tục cập nhật và phát triển chương trình CHƯƠNG II : LỢI ÍCH CỦA WEBGOAT MANG LẠI +Giải thích lỗ hổng: Thay vì 'chỉ hack', WebGoat đề cao việc giảng dạy, tập trung vào việc giải thích ngay từ đầu. +Học bằng cách tự làm: Trong quá trình giải thích về lỗ hổng, WebGoat xây dựng các bài tập sẽ giúp bạn hiểu cách hoạt động của các lỗ hổng này.

+Giải thích giảm thiểu: Cuối mỗi bài học, bạn sẽ nhận được một cái nhìn tổng quan về các biện pháp giảm thiểu có thể sẽ giúp bạn trong quá trình phát triển.  Bạn có thể thực hành các loại tấn công khác nhau và WebGoat sẽ hướng dẫn bạn cách thực hiện cuộc tấn công và dẫn bạn theo con đường thực hiện khám phá và thử nghiệm CHƯƠNG III : HƯỚNG DẪN CÀI ĐẶT WEBGOAT Bước 1:Cài đặt WebGoat tại : https://github.com/ WebGoat/WebGoat và cài đặt Java để chạy được WebGoat Bước 2:Chạy file .jar vừa tải về (đối với window), đối với linux thì chạy qua cmd.Mở thư mục chứa file.jar rồi chạy lệnh: java -jar [Tên tệp jar] Bước 3:Mở browser, truy cập http://localhost:8080/WebGoat. Sau đó tạo tài khoản để đăng nhập WebGoat 2 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT CHƯƠNG IV : CÁC BÀI HỌC TẤN CÔNG MẠNG TRÊN WEBGOAT 1. HTTP Basic Bài học này trình bày những kiến thức cơ bản để hiểu việc truyền dữ liệu giữa trình duyệt và ứng dụng web và cách bẫy một yêu cầu / phản hồi bằng proxy HTTP.

Cách HTTP hoạt động: Tất cả các giao dịch HTTP đều tuân theo cùng một định dạng chung. Mỗi yêu cầu của máy khách và phản hồi của máy chủ có ba phần: dòng yêu cầu hoặc phản hồi, phần tiêu đề và phần thân thực thể. Khách hàng bắt đầu một giao dịch như sau:  Máy khách liên hệ với máy chủ và gửi yêu cầu tài liệu. Yêu cầu GET có thể có các tham số url và các tham số đó sẽ có sẵn trong nhật ký truy cập web.html?param=value HTTP / 1.0  Tiếp theo, máy khách gửi thông tin tiêu đề tùy chọn để thông báo cho máy chủ về cấu hình của nó và các định dạng tài liệu mà nó sẽ chấp nhận.

o Tác nhân người dùng: Mozilla / 4.06 Chấp nhận: image / gif, image / jpeg, /  Trong yêu cầu ĐĂNG, dữ liệu do người dùng cung cấp sẽ tuân theo các tiêu đề tùy chọn và không phải là một phần của dữ liệu có trong URL ĐĂNG.1 Bài học số 2 Nhập tên của bạn vào trường nhập bên dưới và nhấn "Bắt đầu!" để nộp. Máy chủ sẽ chấp nhận yêu cầu, đảo ngược đầu vào và hiển thị lại cho người dùng, minh họa những điều cơ bản về xử lý một yêu cầu HTTP. Nhập hello -> Máy chủ sẽ chấp nhận yêu cầu, đảo ngược đầu vào và hiển thị lại cho người dung thành olleH như hình dưới. 3 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT 1.3 Bài học số 3 Mục tiêu của bài này là tìm hiểu WebGoat đã sử dụng loại lệnh HTTP nào cho bài học này.

A POST or a GET. Gõ POST -> rồi ấn go -> sau đó vào phần Network của trang web Vào headers Sẽ thấy được kết quả như trên hình -> Nhập kết quả =>Hoàn thành bài học 4 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT b. HTTP Proxy Tổng quan về proxy HTTP Nhiều khi proxy được sử dụng như một cách để truy cập nội dung bị chặn. Người dùng có thể kết nối với máy chủ A, máy chủ này chuyển tiếp nội dung từ máy chủ B… Vì Máy chủ B bị chặn trong mạng của người dùng.

Đó không phải là trường hợp sử dụng mà chúng ta sẽ giải quyết ở đây, nhưng khái niệm thì giống nhau. HTTP Proxy nhận yêu cầu từ máy khách và chuyển tiếp chúng. Họ cũng thường ghi lại chúng. Chúng hoạt động như một người trung gian (hãy ghi nhớ điều đó nếu bạn quyết định sử dụng máy chủ proxy để kết nối với một số hệ thống bị chặn khác).

Chúng tôi sẽ chưa đi sâu vào HTTP và HTTPS, nhưng đó là một chủ đề quan trọng trong mối quan hệ với proxy. Khả năng proxy Các proxy nằm giữa máy khách của bạn và máy chủ mà máy khách đang nói chuyện. Bạn có thể ghi lại và phân tích các yêu cầu và phản hồi. Bạn cũng có thể sử dụng proxy để sửa đổi (giả mạo) các yêu cầu và phản hồi.

Proxy cũng có các chức năng tự động hoặc bán tự động cho phép bạn đạt được hiệu quả trong việc kiểm tra và phân tích tính bảo mật của trang web. Các sử dụng khác cho proxy Đặc biệt ZAP cũng có thể được sử dụng trong quá trình phát triển trong CI / CD, DevOps hoặc môi trường xây dựng / thử nghiệm tự động khác. Bài học này hiện không có bất kỳ chi tiết nào về điều đó, nhưng nó là đáng nói. Có một số ví dụ trên internet về việc nó được tích hợp vào CI / CD với Jenkins, maven hoặc các quy trình xây dựng khác.

5 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT Thiết lập chặn như đã lưu ý ở trên và sau đó gửi biểu mẫu / yêu cầu bên dưới bằng cách nhấp vào nút gửi. Khi yêu cầu của bạn bị chặn (chạm điểm ngắt), hãy sửa đổi nó theo các bước. Bước 1 ấn submit -> mở Burp bắt dữ liệu Vào header đổi method post thành get Thêm vào header x-request-intercepted:true Thay đổi giá trị đầu vào thành Request are tampered easily Ấn forward =>Hoàn thành bài học https://www.com/watch?v=6ZMSqXF2jao 2. Mục đích 6 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT - Người dùng nên có hiểu biết cơ bản về cách hoạt động của SQL và nó được sử dụng để làm gì.

- Người dùng sẽ hiểu được các phương pháp tốt nhất để bảo vệ khỏi các cuộc tấn công SQL Injection. - Người dùng sẽ chứng minh kiến thức về String SQL Injection và Numeric SQL Injection. SQL là gì? Ngôn ngữ truy vấn có cấu trúc - Structured Query Language (SQL) là một cách để tương tác với cơ sở dữ liệu và được thông dịch bởi cơ sở dữ liệu. Một số lưu ý: - SQL không phải viết tắt của Standard Query Language.

- Có nhiều phiên bản SQL, hầu hết các cơ sở dữ liệu có một số chức năng tùy chỉnh. - Hầu hết các nhà cung cấp đều có phần mở rộng độc quyền. ** Ngôn ngữ thao tác dữ liệu - Data Manipulation Language (DML) Cho phép thực thi các câu truy vấn bao gồm cú pháp để chọn (SELECT), cập nhật (UPDATE), chèn (INSERT), xóa (DELETE). **Ngôn ngữ định nghĩa dữ liệu - Data Definition Language (DDL) Dùng để định nghĩa cấu trúc của cơ sở dữ liệu bao gồm định nghĩa các hàng, các cột, các bảng dữ liệu,…ví dụ như CREATE, ALTER, DROP, TRUNCATE.

** Ngôn ngữ điều khiển dữ liệu - Data Control Language (DCL) Sử dụng để phân quyền người dùng bao gồm các lệnh GRANT (trao một quyền cho người dùng) và REVOKE (thu hồi quyền đã trao cho người dùng). SQL Injection là gì? Một cuộc tấn công SQL Injection bao gồm việc chèn hoặc "tiêm" dữ liệu độc hại thông qua đầu vào truy vấn SQL từ máy khách đến ứng dụng. 7 Downloaded by mon hon (monmon1@gmail.com) lOMoARcPSD|39211872 WEBGOAT Khai thác SQL Injection thành công có thể: - Đọc và sửa đổi dữ liệu nhạy cảm từ cơ sở dữ liệu. - Thực thi các thao tác quản trị trên cơ sở dữ liệu.

 Shutdown auditing hoặc DBMS.  Cắt ngắn các bảng và log.  Thêm người dùng. - Khôi phục nội dung của một tệp nhất định có trên hệ thống tệp DBMS.

- Đưa ra các lệnh cho hệ điều hành. Hậu quả của SQL Injection Các cuộc tấn công SQL Injection cho phép những kẻ tấn công: - Giả mạo danh tính. - Giả mạo dữ liệu hiện có. - Gây ra các vấn đề từ chối như vô hiệu hóa các giao dịch hoặc thay đổi số dư.

- Cho phép tiết lộ toàn bộ dữ liệu trên hệ thống. - Hủy dữ liệu hoặc làm cho dữ liệu đó không khả dụng. - Trở thành quản trị viên của máy chủ cơ sở dữ liệu. SQL Injection phổ biến hơn trong PHP, Classic ASP, Cold Fusion và các ngôn ngữ cũ hơn: - Các ngôn ngữ không cung cấp hỗ trợ truy vấn được tham số hóa.

- Các truy vấn được tham số hóa đã được thêm vào các phiên bản mới hơn. - Những người sớm áp dụng công nghệ web (tức là Old Code).

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