1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm hiểu giải pháp bảo vệ Web Server sử dụng Reverse Proxy

53 38 1

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Tìm hiểu Giải pháp Bảo vệ Web Server Sử dụng Reverse Proxy
Tác giả Dương Hoàng Long
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Kỹ thuật điện tử, viễn thông
Thể loại Đề tài tốt nghiệp
Năm xuất bản 2023
Thành phố Hà Nội
Định dạng
Số trang 53
Dung lượng 2,81 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Cấu trúc

  • CHƯƠNG 1: TỔNG QUAN VỀ WEB SERVER (7)
    • 1.1. Tổng quan về Web Server (7)
      • 1.1.1. Định nghĩa Web Server (7)
      • 1.1.2. Nguyên lý hoạt động của Web Server (7)
      • 1.1.3. Các giao thức bảo vệ trên Web Server (8)
      • 1.1.4. Các giao thức sử dụng trên Web Server (14)
      • 1.1.5. Các Web Server thông dụng (15)
    • 1.2. Các nguy cơ mất an toàn Web Server (18)
      • 1.2.1. Kiểm soát các truy vấn cơ sở dữ liệu tránh tấn công SQL Injection (18)
      • 1.2.2. Xử lý dữ liệu đầu vào để tránh lỗ hổng XSS (18)
      • 1.2.3. Kiểm soát file trên hệ thống (18)
      • 1.2.4. Kiểm tra quyền truy cập người dùng (19)
    • 1.3. Một số phương thức tấn công Web Server (19)
      • 1.3.1. Tấn công xác thực (Authentication attacks) (19)
      • 1.3.2. HTTP Response Splitting (20)
      • 1.3.3. File Inclusion Attacks (20)
      • 1.3.4. Cross-Site Scripting (21)
      • 1.3.5. SQL Injection (22)
      • 1.3.6. Tấn công từ chối dịch vụ (DOS) (22)
    • 1.4. Một số giải pháp bảo vệ cho Web Server (25)
      • 1.4.1. Máy chủ tăng tốc và bảo vệ Internet (ISA) (25)
      • 1.4.2. Bảo vệ Web Server bằng tường lửa (26)
      • 1.4.3. Bảo vệ Web Server bằng Reverse Proxy (28)
    • 1.5. Kết luận (29)
  • CHƯƠNG 2: GIẢI PHÁP BẢO VỆ WEB SERVER SỬ DỤNG REVERSE (30)
    • 2.1. Tổng quan Reverse Proxy (30)
      • 2.1.1. Giới thiệu về Proxy (30)
      • 2.1.2. Giới thiệu Reverse Proxy (31)
    • 2.2. Cơ chế hoạt động của Reverse Proxy (32)
      • 2.2.1. Mô hình giải pháp Reverse Proxy (32)
      • 2.2.2. Cơ chế hoạt động của Reverse Proxy (33)
    • 2.3. Cân bằng tải bằng Reverse Proxy (35)
    • 2.4. Cache Reverse Proxy (37)
    • 2.5. Lợi ích về an toàn của Reverse Proxy (37)
    • 2.6. Kết luận (38)
  • CHƯƠNG 3: CẤU HÌNH VÀ CÀI ĐẶT THỬ NGHIỆM REVERSE PROXY SỬ DỤNG NGINX (39)
    • 3.1. Giới thiệu phần mềm NGINX (39)
    • 3.2. Mô hình triển khai Nginx Reverse Proxy (41)
    • 3.3. Cài đặt và cấu hình hệ thống (41)
      • 3.3.1. Tạo trang Web trên Web Server (41)
      • 3.3.2. Cài đặt nginx trên máy Reverse Proxy (42)
    • 3.4. Triển khai sử dụng Nginx để triển khai SSL/TLS cho website (44)
    • 3.5. Cài đặt ModSecurity cho Nginx Reverse Proxy (47)
    • 3.6. Kết luận (51)
  • KẾT LUẬN (52)
  • TÀI LIỆU THAM KHẢO (53)

Nội dung

Tìm hiểu giải pháp bảo vệ Web Server sử dụng Reverse ProxyHiện nay, bảo mật thông tin đang đóng một vai trò thiết yếu trong mọi hoạt động liên quan đến việc ứng dụng công nghệ thông tin. Trong đó Web Server luôn là những vùng đất màu mỡ cho các hacker tìm kiếm các thông tin giá trị hay gây rối vì một mục đích nào đó. Thời gian vừa qua, đã xảy ra hàng loạt các vụ tấn công vào hệ thống Web Server mang lại không ít phiền toái cho cả người dùng lẫn nhà cung cấp. Hiểm họa có thể là tấn công từ chối dịch vụ, quảng cáo các website có nội dung không lành mạnh, xoá, thay đổi nội dung các file hay phần mềm chứa mã nguy hiểm vv… Đây là vấn đề rất cấp bách, cần có giải pháp cụ thể để khắc phục vấn đề này. Trong đó phương pháp sử dụng Reverse Proxy là một biện pháp bảo vệ Web Server có tính khả thi cao. Reverse Proxy đứng giữa một Server và tất cả Client mà Server phải phục vụ, hoạt động như một trạm kiểm soát, các request từ Client bắt buộc phải vào Reverse Proxy. Tại Reverse Proxy sẽ kiểm soát, lọc bỏ các request không hợp lệ và luân chuyển các request hợp lệ đến đích cuối cùng là các Server. Ưu điểm của giải pháp này là chi phí để xây dựng hệ thống bảo vệ Web Server là thấp.học viện kỹ thuật mật mã

Trang 1

BỘ THÔNG TIN VÀ TRUYỀN THÔNG HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHÓA LUẬN TỐT NGHIỆP

ĐỀ TÀI: TÌM HIỂU GIẢI PHÁP BẢO VỆ WEB SERVER SỬ DỤNG

REVERSE PROXY

Sinh viên thực hiện:

Dương Hoàng Long

Hà Nội - 2023

Trang 2

MỤC LỤC

MỤC LỤC 2

DANH MỤC CÁC TỪ VIẾT TẮT 4

DANH MỤC HÌNH VẼ 5

LỜI CẢM ƠN Error! Bookmark not defined LỜI CAM ĐOAN Error! Bookmark not defined. LỜI NÓI ĐẦU 6

CHƯƠNG 1: TỔNG QUAN VỀ WEB SERVER 7

1.1 Tổng quan về Web Server 7

1.1.1 Định nghĩa Web Server 7

1.1.2 Nguyên lý hoạt động của Web Server 7

1.1.3 Các giao thức bảo vệ trên Web Server 8

1.1.4 Các giao thức sử dụng trên Web Server 14

1.1.5 Các Web Server thông dụng 15

1.2 Các nguy cơ mất an toàn Web Server 18

1.2.1 Kiểm soát các truy vấn cơ sở dữ liệu tránh tấn công SQL Injection 18

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

1.2.3 Kiểm soát file trên hệ thống 18

1.2.4 Kiểm tra quyền truy cập người dùng 19

1.3 Một số phương thức tấn công Web Server 19

1.3.1 Tấn công xác thực (Authentication attacks) 19

1.3.2 HTTP Response Splitting 20

1.3.3 File Inclusion Attacks 20

1.3.4 Cross-Site Scripting 21

1.3.5 SQL Injection 22

1.3.6 Tấn công từ chối dịch vụ (DOS) 22

1.4 Một số giải pháp bảo vệ cho Web Server 25

1.4.1 Máy chủ tăng tốc và bảo vệ Internet (ISA) 25

1.4.2 Bảo vệ Web Server bằng tường lửa 26

1.4.3 Bảo vệ Web Server bằng Reverse Proxy 28

1.5 Kết luận 29

CHƯƠNG 2: GIẢI PHÁP BẢO VỆ WEB SERVER SỬ DỤNG REVERSE PROXY 30

2.1 Tổng quan Reverse Proxy 30

2.1.1 Giới thiệu về Proxy 30

2.1.2 Giới thiệu Reverse Proxy 31

2.2 Cơ chế hoạt động của Reverse Proxy 32

Trang 3

2.2.1 Mô hình giải pháp Reverse Proxy 32

2.2.2 Cơ chế hoạt động của Reverse Proxy 33

2.3 Cân bằng tải bằng Reverse Proxy 35

2.4 Cache Reverse Proxy 37

2.5 Lợi ích về an toàn của Reverse Proxy 37

2.6 Kết luận 38

CHƯƠNG 3: CẤU HÌNH VÀ CÀI ĐẶT THỬ NGHIỆM REVERSE PROXY SỬ DỤNG NGINX 39

3.1 Giới thiệu phần mềm NGINX 39

3.2 Mô hình triển khai Nginx Reverse Proxy 41

3.3 Cài đặt và cấu hình hệ thống 41

3.3.1 Tạo trang Web trên Web Server 41

3.3.2 Cài đặt nginx trên máy Reverse Proxy 42

3.4 Triển khai sử dụng Nginx để triển khai SSL/TLS cho website 44

3.5 Cài đặt ModSecurity cho Nginx Reverse Proxy 47

3.6 Kết luận 51

KẾT LUẬN 52

TÀI LIỆU THAM KHẢO 53

Trang 4

DANH MỤC CÁC TỪ VIẾT TẮT

HTTP HyperText Transfer Protocol Giao thức truyền tải siêu văn bản IIS Internet Information Services Dịch vụ thông tin Internet

FTP File Transfer Protocol Giao thức truyền tập tin

SSL Secure Sockets Layer Tầng socket bảo mật

TLS Transport Layer Security Bảo mật tầng giao vận

API Application Programming

Interface

Giao diện lập trình ứng dụng

SQL Structured Query Language Ngôn ngữ truy vấn mang tính cấu

trúc HTML HyperText Markup Language Ngôn ngữ đánh dấu siêu văn bản PHP Personal Home Page Ngôn ngữ lập trình kịch bản DoS Denial of Service Tấn công từ chối dịch vụ

ISA Internet Acceleration and

Security

Máy chủ tăng tốc và bảo mật Internet

VPN Virtual Private Network Mạng riêng ảo

DMZ Demilitarized Zone Khu phi quân sự

WAF Web Application Firewall Tường lửa ứng dụng web

URL Uniform Resource Locator Định vị tài nguyên thống nhất

Trang 5

DANH MỤC HÌNH VẼ

Hình 1.1: Mô tả một phiên làm việc của dịch vụ Web 8

Hình 1.2: Cấu trúc của giao thức SSL/TLS 11

Hình 1.3: Vị trí của SSL/TLS trong mô hình TCP/IP 12

Hình 1.4: Mô hình hoạt động HTTPS 14

Hình 1.5: Mô hình tấn công kiểu DDoS (Distributed Denial of Service) 24

Hình 1.6: Mô hình sử dụng phần mềm ISA 25

Hình 1.7: Mô hình bảo vệ Web Server bằng tường lửa 26

Hình 1.8: Mô hình bảo vệ Web Server sử dụng Reverse Proxy 28

Hình 2.1: Mô hình hoạt động của Proxy 31

Hình 2.2: Mô hình hoạt động của Reverse Proxy 32

Hình 2.4: Mô hình Reverse Proxy bảo vệ 32

Hình 2.5: Sơ đồ kiểm tra yêu cầu qua Reverse Proxy bảo vệ 33

Hình 2.6: Sơ đồ Reverse Proxy bỏ qua yêu cầu không hợp lệ 34

Hình 2.7: Sơ đồ cân bằng tải bằng Reverse Proxy 36

Hình 3.1: Sơ đồ kiến trúc Nginx 40

Hình 3.2: Mô hình triển khai thử nghiệm Reverse Proxy bằng Nginx 41

Hình 3.3: Nội dung trang web 42

Hình 3.4: Chỉnh sửa file host để truy cập vào trang web ductu.com 42

Hình 3.5: Giao diện trang web ductu.com 42

Hình 3.6: Cấu hình SELinux 43

Hình 3.7: Cấu hình Nginx 44

Hình 3.9: Giao diện truy cập Web Server bằng HTTPS 46

Hình 3.10: Chứng thư số của trang web ductu.com 47

Hình 3.11: Thiết lập sử dụng Modsecurity 49

Hình 3.12: Khởi động lại Nginx sau khi đã thiết lập Modsecurity 50

Hình 3.13: Trạng thái hoạt động của Nginx sau đã được thiết lập sử dụng Modsecurity 50

Hình 3.14: Ví dụ tấn công lên Website 50

Hình 3.15: Thông báo trả về khi Website bị tấn công 50

Hình 3.16: Nhật ký của ModSecurity khi Website bị tấn công 51

Trang 6

LỜI NÓI ĐẦU

Hiện nay, bảo mật thông tin đang đóng một vai trò thiết yếu trong mọi hoạt động liên quan đến việc ứng dụng công nghệ thông tin Trong đó Web Server luôn

là những vùng đất màu mỡ cho các hacker tìm kiếm các thông tin giá trị hay gây rối vì một mục đích nào đó

Thời gian vừa qua, đã xảy ra hàng loạt các vụ tấn công vào hệ thống Web Server mang lại không ít phiền toái cho cả người dùng lẫn nhà cung cấp Hiểm họa có thể là tấn công từ chối dịch vụ, quảng cáo các website có nội dung không lành mạnh, xoá, thay đổi nội dung các file hay phần mềm chứa mã nguy hiểm vv…

Đây là vấn đề rất cấp bách, cần có giải pháp cụ thể để khắc phục vấn đề này Trong đó phương pháp sử dụng Reverse Proxy là một biện pháp bảo vệ Web Server có tính khả thi cao Reverse Proxy đứng giữa một Server và tất cả Client

mà Server phải phục vụ, hoạt động như một trạm kiểm soát, các request từ Client bắt buộc phải vào Reverse Proxy Tại Reverse Proxy sẽ kiểm soát, lọc bỏ các request không hợp lệ và luân chuyển các request hợp lệ đến đích cuối cùng là các Server Ưu điểm của giải pháp này là chi phí để xây dựng hệ thống bảo vệ Web Server là thấp

Trang 7

CHƯƠNG 1: TỔNG QUAN VỀ WEB SERVER 1.1 Tổng quan về Web Server

1.1.1 Định nghĩa Web Server

Web Server là máy chủ có dung lượng lớn, tốc độ cao, được dùng để lưu trữ thông tin như một ngân hàng dữ liệu, chứa những website đã được thiết kế cùng với những thông tin liên quan khác (các mã Script, các chương trình, và các file Multimedia) Máy chủ này sử dụng một chương trình chạy thường trú để nhận và phục vụ các truy vấn http hoặc https từ các máy đầu cuối

Tất cả các Web Server đều có một địa chỉ IP (IP Address) hoặc cũng có thể có một Domain Name Giả sử khi người sử dụng nhập vào thanh Address trên trình duyệt của máy một dòng http://www.ductu.com sau đó gõ phím Enter, khi đó người sử dụng đã gửi một yêu cầu đến một Server có trang chủ của Web là www.ductu.com Server này sẽ tìm trang Web có tên là index.htm rồi gửi nó đến trình duyệt của người sử dụng Bất kỳ một máy tính nào cũng có thể trở thành một Web Server bằng cách cài đặt lên nó một chương trình phần mềm Server Software

và sau đó kết nối vào Internet Khi máy tính kết nối đến một Web Server và gửi đến yêu cầu truy cập các thông tin từ một trang Web nào đó, phần mềm Web Server sẽ nhận yêu cầu và gửi lại những thông tin mà người sử dụng mong muốn Web Server Software cũng chỉ là một ứng dụng phần mềm Phần mềm Web Server được cài đặt, và chạy trên máy tính dùng làm Web Server, nhờ có chương trình này mà người sử dụng có thể truy cập đến các thông tin của trang Web từ một máy tính khác ở trên mạng (Internet, Intranet) Phần mềm Web Server còn có thể được tích hợp với cơ sở dữ liệu (Database), hay điều khiển việc kết nối vào cơ sở dữ liệu để có thể truy cập và kết xuất thông tin từ cơ sở dữ liệu lên các trang Web và truyền tải chúng đến người dùng Tất cả các Web Server đều hiểu và chạy được các file *.htm và *.html, tuy nhiên mỗi Web Server lại phục vụ một số kiểu file chuyên biệt chẳng hạn như IIS của Microsoft dành cho *.asp, *.aspx ; Apache dành cho *.php ; Sun Java System Web Server dành cho *.jsp Phần lớn các Web server sử dụng cổng 80, nhưng cũng có thể thay đổi để Web server có thể cài đặt trên cổng không tiêu chuẩn nếu muốn "dấu" Web server như là một Web server

đa host trên một máy tính bằng việc ánh xạ mỗi server cho một cổng khác nhau 1.1.2 Nguyên lý hoạt động của Web Server

Cơ chế hoạt động của dịch vụ web là một điển hình của mô hình client/server

Trang 8

Chương trình đầu trên client là các trình duyệt web ví dụ như IE, Firefox, Google Chrome chương trình cuối trên Server là các trình web server (IIS WWW Service) Web server và trình duyệt web giao tiếp với nhau bằng giao thức HTTP Khi máy client kết nối vào Internet, người dùng gõ địa chỉ trang web cần truy nhập vào trình duyệt Web Trình duyệt web tạo một yêu cầu HTTP về trang web

đó và gửi nó tới Web server Web server nhận được yêu cầu, xử lý yêu cầu đó và tạo một đáp ứng HTTP gửi trả lại trình duyệt web Thông báo đó được dịch bởi trình duyệt và hình thành một trang web tới người dùng

Chi tiết một phiên làm việc HTTP diễn ra như sau:

Bước 1: Trình duyệt Web tạo một kết nối TCP/IP với Web server

Bước 2: Trình duyệt Web thực hiện một yêu cầu về một trang web tới Web server; thực hiện yêu cầu này bởi một yêu cầu HTTP; sau đó gửi thông báo này tới Web server thông qua kết nối TCP/IP

Bước 3: Web server nhận được yêu cầu này xử lý nó trên cơ sở phương thức

mà yêu cầu gửi tới sử dụng

Server sau đó gửi trả lại một đáp ứng HTTP Một phần của đáp ứng này gồm một dòng trạng thái mô tả yêu cầu HTTP của client gửi đến có đáp ứng thành công hay không

Bước 4: Khi trình duyệt web nhận được đáp ứng HTTP, kết nối TCP/IP bị đóng lại, phiên làm việc HTTP kết thúc

Hình 1.1: Mô tả một phiên làm việc của dịch vụ Web

1.1.3 Các giao thức bảo vệ trên Web Server

1.1.3.1 Bộ giao thức SSL/TLS

SSL (Sercure Socket Layer) là giao thức an toàn làm việc tại tầng ứng dụng

và mức trên của tầng vận tải, nó được dùng phổ biến trên mạng Internet hiện nay trong các giao dịch điện tử an toàn Đến thời điểm hiện tại, SSL có các phiên bản sau:

Trang 9

Hình 1.1: Bộ giao thức SSL/TLS

SSL 1.0

Ra đời năm 1994, được sử dụng nội bộ bởi Netscape Communications SSL 1.0 tồn tại một số nhược điểm nghiêm trọng và chưa từng được sử dụng ở bên ngoài

SSL 2.0

Được tích hợp vào Netscape Communications phiên bản từ 1.0 đến 2.x Với phiên bản SSL2.0, theo đánh giá của các chuyên gia thì vẫn còn tồn tại một số điểm yếu về bảo mật như: Độ dài khóa xác thực ngắn (40bit), cơ chế kiểm tra tính toàn vẹn dữ liệu không chặt chẽ (không kiểm tra xác thực độ dài padding), tấn công quay lui thuật toán,…

SLL 3.0

Với phiên bản SSL 3.0, các tồn tại của SSL 2.0 đã được khắc phục, ngoài ra,

Trang 10

trong SSL 3.0 còn bổ sung một số tính năng mới so với phiên bản trước đó

Giao thức SSL 3.0 và các thông số kỹ thuật được công bố chính thức vào tháng 3 năm 1996 Nó được tích hợp trong tất cả các trình duyệt bao gồm Microsoft Internet Explorer 3.0, Netscape Navigator 3.0 và OpenSSL 3.0 đã được điều chỉnh bởi IETF TLS WG

Bộ giao thức SSL/TLS có thể cung cấp các tính năng xác thực, bí mật và toàn vẹn dữ liệu cho các giao dịch an toàn

Xác thực: Đảm bảo tính xác thực của nguồn gốc thông tin và tính chân thực

của các người dùng tham gia giao dịch

Bí mật: Đảm bảo tính bí mật của thông tin thông qua việc sử dụng các kỹ

thuật mật mã để mã hóa thông tin khi truyền nhận

Toàn vẹn dữ liệu: Đảm bảo thông tin không bị sai lệch, thay đổi trái phép

trong quá trình truyền nhận

Cấu trúc của bộ giao thức SSL/TLS

Cấu trúc của SSL/TLS được mô tả trong Hình 1.2 Thực chất, SSL/TLS là một chồng các giao thức bảo mật được bổ sung vào tầng ứng dụng và tầng trung gian phía dưới tầng ứng dụng, phía trên tầng vận tải

SSL/TLS có thể cung cấp các dịch vụ an toàn cho các ứng dụng sử dụng bộ giao thức TCP/IP, ví dụ như bảo mật giao dịch WEB, Email, mạng riêng ảo VPN

Bộ giao thức SSL/TLS bao gồm:

 Giao thức SSL handshake: Thực hiện việc thiết lập hoặc thỏa thuận các tham

số cho phiên truyền thông

 Giao thức SSL Change Cipher Spec: Thực hiện việc trao đổi và thỏa thuận

bộ tham số an toàn như: Thuật toán mã hóa, thuật toán Hash, khóa mật mã,… dùng cho phiên liên lạc an toàn

Trang 11

 Giao thức SSL Alert: Định nghĩa và xử lý các thông báo quan trọng được sử dụng trong bộ giao thức SSL/TLS

 Giao thức SSL Record: Xử lý mã/giải mã dữ liệu của ứng dụng

Hình 1.2: Cấu trúc của giao thức SSL/TLS

Ứng dụng của bộ giao thức SSL/TLS trong việc bảo mật thông tin

Bộ giao thức SSL/TLS được thiết kế nhằm mục đích cung cấp các chức năng

an toàn: Bảo mật, xác thực và toàn vẹn dữ liệu cho các phiên truyền thông trên môi trường mạng máy tính Bộ giao thức này hoạt động ở tầng giữa tầng ứng dụng

và tầng vận tải, thể hiện như ở hình sau:

Trang 12

Hình 1.3: Vị trí của SSL/TLS trong mô hình TCP/IP

Do vậy, trong thực tế, SSL/TLS thường được sử dụng để:

 Bảo mật dữ liệu cho các phiên truyền thông HTTPS (HTTPS – giao dịch Web có bảo mật)

 Bảo mật cho các phiên liên lạc sử dụng giao thức SIP ứng dụng cho các dịch

Trang 13

chất sau của thông tin:

 Bảo mật (Confidentiality): Sử dụng phương thức mã hóa (encryption) để đảm bảo rằng các thông điệp được trao đổi giữa client và server không bị kẻ khác đọc được

 Tính toàn vẹn (Integrity): Sử dụng phương thức băm (hashing) để cả Client

và Server đều có thể tin tưởng rằng thông điệp mà chúng nhận được có không bị mất mát hay chỉnh sửa

 Tính xác thực (Authenticity): Sử dụng chứng thực số (digital certificate) để giúp Client có thể tin tưởng rằng Server, Website mà họ đang truy cập thực sự là Server Website mà họ mong muốn vào, chứ không phải bị giả mạo

Dưới đây là một số thông tin quan trọng được chứa trong chứng thư SSL mà bất cứ máy trạm nào cũng có thể xem được bằng cách click vào biểu tượng ổ khóa trên thanh công cụ của trình duyệt Web:

 Thông tin về chủ sở hữu của chứng thư (như tên tổ chức, tên cá nhân hoặc domain của website…)

 Tên và chữ ký số của CA cấp chứng thư

 Khoảng thời gian mà chứng thư còn hiệu lực sử dụng

 Khóa công khai của Server, Website Còn khóa bí mật được lưu trữ trên chính Server (không có trong chứng thư) và tuyệt đối không thể để lộ

 Một số thông tin phụ khác như: loại chứng thư SSL, các thuật toán dùng để

mã hóa và hàm băm chiều dài (tính bằng bit) của khóa, cơ chế trao đổi khóa (như RSA, DSA…)

Quá trình giao tiếp giữa Client và Server thông qua HTTPS:

Trang 14

Hình 1.4: Mô hình hoạt động HTTPS

1 Máy trạm gửi yêu cầu cho một trang an toàn (có URL bắt đầu với https://)

2 Máy chủ gửi lại cho máy trạm chứng thư của nó

3 Máy trạm gửi chứng thư này tới CA (mà được ghi trong chứng thư) để kiểm chứng

Giả sử chứng thư đã được xác thực và còn hạn sử dụng hoặc máy trạm vẫn cố tình truy cập mặc dù trình duyệt Web đã cảnh báo rằng không thể tin cậy được chứng thư này (do là dạng chứng thư self-signed SSL hoặc chứng thư hết hiệu lực, thông tin trong chứng thư không đúng…) thì mới xảy ra bước 4 sau

4 Máy trạm tự tạo ra ngẫu nhiên một khóa mã hóa đối xứng, rồi sử dụng khóa công khai (trong chứng thư) để mã hóa khóa đối xứng này và gửi về cho server

5 Server sử dụng khóa bí mật (tương ứng với khóa công khai trong chứng thư

ở trên) để giải mã ra khóa đối xứng ở trên

6 Sau đó, cả server và máy trạm đều sử dụng khóa đối xứng đó để mã hóa, giải mã các thông điệp trong suốt phiên truyền thông Các khóa đối xứng sẽ được tạo ra ngẫu nhiên và có thể khác nhau trong mỗi phiên làm việc với server Ngoài

mã hóa thì cơ chế hàm băm sẽ được sử dụng để đảm bảo tính toàn vẹn cho các thông điệp được trao đổi

1.1.4 Các giao thức sử dụng trên Web Server

1.1.4.1 Giao thức HTTP

HTTP là chữ viết tắt từ HyperText Transfer Protocol (giao thức truyền tải siêu văn bản) Đây là giao thức cơ bản mà World Wide Web sử dụng HTTP xác định

Trang 15

cách các thông điệp (các file văn bản, hình ảnh đồ hoạ, âm thanh, video, và các file multimedia khác) được định dạng và truyền tải ra sao, và những hành động nào mà các Web server (máy chủ Web) và các trình duyệt Web (browser) phải làm Chẳng hạn, khi gõ một địa chỉ Web URL vào trình duyệt Web, một lệnh HTTP sẽ được gửi tới Web server để ra lệnh và hướng dẫn nó tìm đúng trang Web được yêu cầu và kéo về mở trên trình duyệt Web Nói cách khác, HTTP là giao thức truyền tải các file từ một Web server vào một trình duyệt Web để người dùng

có thể xem một trang Web đang hiện diện trên Internet HTTP là một giao thức ứng dụng của bộ giao thức TCP/IP (các giao thức nền tảng cho Internet) HTTP

là một giao thức “phi trạng thái” (stateless) bởi vì mỗi lệnh đều được thực thi một cách độc lập, lệnh sau không biết bất cứ điều gì về các lệnh đã đến trước mình Đây chính là một hạn chế, khiếm khuyết của HTTP Nó là nguyên nhân chính của tình trạng rất khó thực thi các trang Web có khả năng phản ứng thông minh đối với lệnh mà người dùng nạp vào Và sự hạn chế này đang được các nhà phát triển khắc phục trong các công nghệ mới như ActiveX, Java, JavaScript và cookies

1.1.4.2 Giao thức FTP

FTP là viết tắt từ File Transfer Protocol (giao thức truyền tải file) là một giao thức dùng để tải lên (upload) các file từ một trạm làm việc (workstation) hay máy tính cá nhân tới một FTP server hoặc tải xuống (download) các file từ một máy chủ FTP về một trạm làm việc (hay máy tính cá nhân) Đây là cách thức đơn giản nhất để truyền tải các file giữa các máy tính trên Internet FTP hiện được dùng phổ biến để upload các trang Web từ nhà thiết kế Web lên một máy chủ host trên Internet, truyền tải các file dữ liệu qua lại giữa các máy tính trên Internet, cũng như để tải các chương trình, các file từ các máy chủ khác về máy tính cá nhân Dùng giao thức FTP, bạn có thể cập nhật (xóa, đổi tên, di chuyển, copy,) các file tại một máy chủ Nếu dùng chức năng FTP của một ứng dụng quản lý file (như Total Commander), bạn có thể tiến hành các tác vụ xử lý file trên máy chủ giống như ngay trên máy tính của mình

1.1.5 Các Web Server thông dụng

1.1.5.1 Web Server Apache

Apache là một chương trình dành cho máy chủ đối thoại qua giao thức HTTP Apache chạy trên các hệ điều hành như Unix, Microsoft Windows, Novell Netware và các hệ điều hành khác Apache đóng một vai trò quan trọng trong quá

Trang 16

trình phát triển của mạng web thế giới (World Wide Web) Khi được phát hành lần đầu, Apache là chương trình máy chủ mã nguồn mở duy nhất có khả năng cạnh tranh với chương trình máy chủ tương tự của Netscape Communications Corporation mà ngày nay được biết đến qua tên thương mại Sun Java System Web Server Từ đó trở đi, Apache đã không ngừng tiến triển và trở thành một phần mềm có sức cạnh tranh mạnh so với các chương trình máy chủ khác về mặt hiệu suất và tính năng phong phú Từ tháng 4 năm 1996, Apache trở thành một chương trình máy chủ HTTP thông dụng nhất Hơn nữa, Apache thường được dùng để so sánh Apache được phát triển và duy trì bởi một cộng đồng mã nguồn mở dưới sự bảo trợ của Apache Software Foundation Apache được phát hành với giấy phép Apache License và là một phần mềm tự do và miễn phí

Các đặc điểm nổi bật của Apache:

 Apache có thể chạy kết hợp giữa chế độ đa xử lý và chế độ đa chỉ lệnh

 Hỗ trợ nhiều giao thức: Apache được phát triển để có thể phục vụ trên nhiều giao thức khác nhau

 Ngày càng hỗ trợ tốt hơn cho các hệ điều hành khác như: Linux, OS và Windows

 Ngày càng phát triển và hoàn thiện các API (Application Program Interface)

 Hỗ trợ IPv6

 Hỗ trợ nhiều modul dùng để lọc các dòng dữ liệu đến hoặc đi từ server

 Hỗ trợ nhiều ngôn ngữ hiển thị các thông báo lỗi

 Ngày càng đơn giản và dễ dàng thiết lập các tham số cho Web Server qua các file cấu hình

1.1.5.2 Microsoft Internet Information Services (IIS)

Microsoft Internet Information Services (các dịch vụ cung cấp thông tin Internet) là các dịch vụ dành cho máy chủ chạy trên nền hệ điều hành Windows nhằm cung cấp các thông tin lên mạng, nó bao gồm nhiều dịch vụ khác nhau như Web Server, FTP Server, Nó có thể được sử dụng để xuất bản nội dung của các trang Web lên Internet/Intranet bằng việc sử dụng giao thức HTTP

Trong chiến lược giành thị phần Internet của Microsoft, máy chủ Web Internet Information Service (IIS) là một trong những ưu tiên hàng đầu Phiên bản đầu tiên IIS 1.0 được giới thiệu cách đây từ lâu cùng với Windows NT 4.0 vào năm 1996 Đến năm 1999, IIS 5.0 (trên nền Windows 2000 Server) nhanh chóng trở thành máy chủ web phổ biến nhất vào thời điểm đó, mặc dù chỉ vài tháng sau nó phải

Trang 17

đối mặt với những lỗ hổng bảo mật nghiêm trọng, bị các virus như Red Code, Nimbda khai thác Phiên bản IIS 6.0 trên nền Windows Server 2003 được đánh giá là máy chủ web chắc chắn, ổn định, nhờ những thay đổi quan trọng trong kiến trúc IIS 7.0 hiện được cung cấp trong Windows Vista và Windows Server 2008,

hệ điều hành máy chủ được phát hành vào đầu năm 2008 IIS 7.0 là một phiên bản được xem xét một cách tỉ mỉ trong thiết kế từ kinh nghiệm của các phiên bản trước Phiên bản 7.0 ra đời tạo một nền tảng linh hoạt và an toàn nhất cho việc cấu hình web và các ứng dụng Phiên bản IIS 8.0 chỉ khả dụng trong Windows Server 2012 và Windows 8 IIS 8.0 bao gồm SNI (ràng buộc SSL với tên máy chủ thay vì địa chỉ IP), Khởi tạo ứng dụng, hỗ trợ chứng thư SSL tập trung và mở rộng

đa lõi trên phần cứng NUMA, cùng với các tính năng mới khác Phiên bản IIS 8.5 được bao gồm trong Windows Server 2012 R2 và Windows 8.1 Phiên bản này bao gồm công cụ xử lý trang Idle worker-Out, Kích hoạt trang web động, Ghi nhật

ký nâng cao, ghi nhật ký ETW và Rebind chứng thư tự động

1.1.5.3 Sun Java System Web Server (JSWS)

Sun Java System Web Server (JSWS) được phát triển dựa trên chương trình máy chủ web NCSA và được biết đến dưới một số tên như Sun ONE, Netscape Enterprise Server, và iPlanet Enterprise Server Khi AOL mua Netscape năm

1999, công ty này đã cộng tác với Sun Microsystems để hỗ trợ và tiếp tục phát triển sản phẩm Netscape Sự cộng tác này được gọi tên là iPlanet và hoạt động của nó kéo dài 3 năm và hết hạn vào tháng 3 năm 2002 Khi kết thúc, iPlanet trở thành một phần của Sun bởi vì máy chủ web và các phần mềm thương mại điện

tử mà iPlanet bán đã có quan hệ chặt chẽ với hoạt động kinh doanh của Sun hơn của Time Warner Sun JSWS là sản phẩm thương mại, tuy nhiên chi phí bản quyền của nó là chấp nhận được Mức phí của nó thay đổi tùy thuộc vào năng lực của bộ

vi xử lý của máy chủ mà nó cài đặt lên, tuy nhiên phần lớn website trả với mức phí từ USD 1400 đến USD 5000 cho việc mua bản quyền này Phần mềm của Sun cũng hoạt động được trên nhiều hệ điều hành như: HP_UX, Solaris và cả Windows Theo đánh giá mới đây, chỉ có khoảng 5% máy chủ web sử dụng Sun JSWS Tuy nhiên một số website nổi tiếng nhất, tấp nập nhất lại vẫn đang sử dụng phần mềm máy chủ này của Sun, điển hình là BMW, Dilbert, E*TRADE, Excite, Lycos và Schwab Báo cáo từ công ty tư vấn như Gartner, Inc chỉ ra rằng Sun JSWS được sử dụng với mức hơn 40% đối với các website công cộng và hơn 60% của 100 website kinh doanh đứng đầu Cũng như phần lớn các chương tình máy

Trang 18

chủ khác, Sun JSWS hỗ trợ phát triển các ứng dụng động cho các ứng dụng

1.2 Các nguy cơ mất an toàn Web Server

1.2.1 Kiểm soát các truy vấn cơ sở dữ liệu tránh tấn công SQL Injection

Nguy cơ: Khi truy vấn tới cơ sử dữ liệu, lập trình viên thường sử dụng cách

cộng xâu Input từ người dùng, các câu truy vấn này có thể bị mắc lỗi SQL Injection hoặc HQL Injection (nếu sử dụng Hibernate) Bằng việc lợi dụng các lỗi này, kẻ tấn công có thể xem, thêm, sửa, xóa dữ liệu trong database từ đó chiếm được tài khoản admin, lấy cắp thông tin người dùng…

Khắc phục: Truy vấn SQL phải dùng PrepareStatement, tất cả tham số phải

được add bằng hàm (setParam ), không được xử dụng cách cộng xâu trong truy

vấn

Với một số trường hợp sử dụng ORDER BY không thể dùng được hàm setParam thì có thể định nghĩa một mảng chứa toàn bộ các column (field) cần ORDER BY gọi là whitelist Mỗi khi cần ORDER BY thì kiểm tra lại xem column (field) đó có thuộc mảng whitelist đã định nghĩa không

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

Nguy cơ: Kết quả server trả về cho người dùng chủ yếu dưới dạng HTML

Nội dung trả về thường bao gồm cả những giá trị mà người dùng nhập vào hệ thống có thể bị mắc lỗi XSS nếu không kiểm soát dữ liệu đầu vào

Khắc phục: Encode dưới dạng HTML các ký tự đặc biệt do client gửi đến

bao gồm: <, >, &, ’, ”, / trong các trường hợp:

 Dữ liệu client gửi lên máy chủ

 Dữ liệu lấy ra từ database khi trả về cho client

1.2.3 Kiểm soát file trên hệ thống

Nguy cơ: Các thao tác với file thường sử dụng tên file, đường dẫn file được

gửi lên từ client, nếu ứng dụng không kiểm soát tốt các giá trị này (việc kiểm soát phải được thực hiện phía server) có thể dẫn đến việc download hoặc upload các file không hợp lệ

Khắc phục: Kiểm soát tên file, đường dẫn file được gửi lên từ client, phần

mở rộng của file (chỉ cho phép thực hiện với các file có định dạng theo yêu cầu) Không bắt buộc phải kiểm tra nội dung file

Các hàm liên quan đọc ghi file, biến đường dẫn file phải được lọc /, \và kí tự

Trang 19

null

Phần file name ban đầu người dùng upload lên server phải bỏ đi, dùng 1 chuỗi mới ngẫu nhiên thay thế cho tên file Tên này được sinh ra ngẫu nhiên không được dùng các thuật toán md5, SHA256… Thay vào đó có thể sử dụng các hàm sinh chuỗi ngẫu nhiên có sẵn trong ngôn ngữ lập trình để sinh ra tên file

1.2.4 Kiểm tra quyền truy cập người dùng

Nguy cơ: Trong các hệ thống có phân quyền, mỗi người dùng chỉ được phép

truy cập các chức năng, các dữ liệu mà mình được phép Tuy nhiên, nếu việc kiểm tra quyền không được kiểm soát tốt thì người dùng có thể truy cập được các chức năng, các dữ liệu không được quyền

Khắc phục: Kiểm tra quyền trong từng request gửi lên server Việc kiểm tra

quyền gồm 2 nội dung kiểm tra là:

 Người dùng có được phép thực thi chức năng theo request hay không?

 Nếu người dùng được phép thực thi chức năng thì kiểm tra tiếp người dùng

có được phép thao tác chức năng đó trên dữ liệu trong request hay không?

1.3 Một số phương thức tấn công Web Server

1.3.1 Tấn công xác thực (Authentication attacks)

Xác thực đóng một vai trò rất quan trọng trong việc đảm bảo tính an ninh của một ứng dụng Web Khi một người dùng cung cấp tên truy cập và mật khẩu để xác thực tài khoản của mình, ứng dụng Web cấp quyền truy xuất cho người dùng dựa vào tên truy cập mà người dùng nhập vào đã được lưu trong cơ sở dữ liệu HTTP có một số phương thức xác thực:

Trang 20

thực hiện tấn công này, hacker có thể vượt rào xác thực và vào hệ thống với quyền truy xuất mà mình mong muốn Với quyền đăng nhập cao nhất admin, hacker có thể toàn quyền điều khiển hệ thống web bị tấn công

Vấn đề ở đây là sức mạnh tính toán của các máy tính ngày càng tăng Chúng

có khả năng xử lý một lượng lớn dữ liệu chỉ trong một khoảng thời gian ngắn Một “password” là một chuỗi các ký tự (có trên bàn phím) mà một người cần ghi nhớ và cung cấp cho máy tính khi cần thiết (như để đăng nhập vào máy tính, truy cập tài nguyên trên mạng…)

Tuy nhiên, các mật khẩu mà quá phức tạp để ghi nhớ đối với con người thì lại

dễ dàng bị dò ra bởi các công cụ “pasword cracking” trong một khoảng thời gian ngắn đến kinh ngạc Các kiểu tấn công như “dictionary attack”, “brute fore attack”

và “hybrid attack” thường được sử dụng để đoán và bẻ khóa mật khẩu

Phương thức bảo vệ duy nhất chống lại những hiểm họa như vậy là tạo ra các mật khẩu mạnh (độ dài của mật khẩu thường từ 8 ký tự trở lên, trong đó bao gồm

cả chữ cái in thường/in hoa, chữ số, ký tự đặc biệt) và sử dụng thêm các yếu tố khác (vân tay, smart card, võng mạc mắt,…) cho việc chứng thực

Trong lập trình PHP có lệnh là include, require, quire_once, include_once cho phép file hiện tại gọi đến một file khác Tùy thuộc vào mức độ bảo mật của server, kẻ tấn công có thể include file trên chính máy chủ đó (include local) hay include đến một file ở máy khác (include remote) Mục đích của kẻ tấn công là chạy được các hàm hệ thống và thu thập các thông tin nhạy cảm của hệ thống Tất

cả công việc trên kẻ tấn công có thể đạt được khi chạy được web shell (hay còn gọi là web hack tool) như c99shell, r57shell,…

Kẻ tấn công có web shell trong tay sẽ đọc được tất cả các file trong website

Trang 21

đang chạy shell đó Nếu server kém bảo mật thì kẻ tấn công có thể đọc được file của toàn bộ hệ thống, file của các website khác trên cùng máy chủ đó Lỗi này hay được tấn dụng để tấn công local attack: kiểu tấn công máy chủ, website qua một site bị lỗi trên máy chủ Nếu có quyền ghi, tất cả các file có thể bị thay đổi deface trang chủ, chèn mã độc để thu thập thông tin đăng nhập, ẩn dấu backdoor

để lần sau vào tiếp, … Kẻ tấn công cũng có thể lấy thông tin truy nhập cơ sở dữ liệu (database) qua file cấu hình của website, sau đó truy nhập vào cơ sở dữ liệu

ăn trộm dữ liệu, xóa, thay đổi dữ liệu,… Trong trường hợp này, cơ sở dữ liệu là MySql cho phép sử dụng hàm loadfile, thì kẻ tấn công có thể tận dụng để đọc file

từ hệ thống và file của các site khác qua MySql bằng lệnh LOAD DATA LOCAL INFILE

1.3.4 Cross-Site Scripting

Cross-Site Scripting (XSS) là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP …), những thẻ HTML hay những đoạn mã script nguy hiểm có thể gây nguy hại cho những người sử dụng khác Trong đó, những đoạn mã nguy hiểm đựơc chèn vào hầu hết được viết bằng các Client-Site Script như JavaScript, JScript, HTML Kỹ thuật tấn công XSS đã nhanh chóng trở thành một trong những lỗi phổ biến nhất của Web Applications và mối đe doạ của chúng đối với người sử dụng ngày càng lớn XSS thường được sử dụng với các mục đích như đánh cắp thông tin giúp hacker có thể truy cập được vào những thông tin nhạy cảm, lấy được quyền truy cập miễn phí vào những nội dung đúng

ra phải trả tiền mới có được Dò xét sở thích của người sử dụng mạng, thay đổi diện mạo một trang web nào đó Tấn công từ chối dịch vụ (DoS) Mã JavaScript độc có thể truy cập bất cứ thông tin nào sau đây:

 Cookie cố định được duy trì bởi trình duyệt

 RAM Cookie

 Tên của tất cả các cửa sổ được mở từ site bị lỗi XSS

 Bất cứ thông tin mà có thể truy cập được từ DOM hiện tại (như value, mã HTML…)

Những người phát triển web có thể bảo vệ website của mình khỏi bị lợi dụng thông qua tấn công XSS, bằng cách đảm bảo những trang phát sinh động không chứa các tag của script bằng cách lọc và xác nhận hợp lý các dữ liệu đầu vào từ phía người dùng hoặc mã hóa và lọc các giá trị xuất cho người dùng

Trang 22

1.3.5 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 trong việc kiểm tra dữ liệu nhập trong các ứng dụng web, thông báo lỗi của hệ quản trị cơ sở dữ liệu để "tiêm vào" (inject) và thi hành các câu lệnh SQL bất hợp pháp

Hậu quả của nó rất tai hại vì nó cho phép những kẻ tấn công có thể thực hiện các thao tác xóa, sửa, … do có toàn quyền trên cơ sở dữ liệu của ứng dụng, thậm chí là server mà ứng dụng đó đang chạy Lỗi này thường xảy ra 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

Có bốn dạng gồm: vượt qua kiểm tra lúc đăng nhập (authorization bypass),

sử dụng câu lệnh SELECT, sử dụng câu lệnh INSERT, sử dụng các procedures Để phòng tránh, ta có thể thực hiện ở hai mức:

stored-Kiểm soát chặt chẽ dữ liệu nhập vào: Bảo vệ các câu lệnh SQL bằng cách

kiểm soát chặt chẽ tất cả các dữ liệu nhập nhận được từ đối tượng Request (Request, Request.QueryString, Request.Form, Request.Cookies, and Request.ServerVariables)

Thiết lập cấu hình an toàn cho hệ quản trị cơ sở dữ liệu: Cần có cơ chế

kiểm soát chặt chẽ và giới hạn quyền xử lí dữ liệu đến tài khoản người dùng mà ứng dụng web đang sử dụng Quyền càng bị hạn chế, thiệt hại càng ít

Ngoài ra để tránh các nguy cơ từ SQL Injection attack, nên chú ý loại bỏ bất

kì thông tin kĩ thuật nào chứa trong thông điệp chuyển xuống cho người dùng khi ứng dụng có lỗi Các thông báo lỗi thường tiết lộ các điểm yếu của hệ thống 1.3.6 Tấn công từ chối dịch vụ (DOS)

DoS (Denial of Service) có thể mô tả như hành động ngăn cản những người dùng hợp pháp của một dịch vụ nào đó truy cập và sử dụng dịch vụ đó DoS là kẻ tấn công sẽ chiếm dụng một lượng lớn tài nguyên mạng như băng thông, bộ nhớ…làm mất khả năng xử lý các yêu cầu dịch vụ đến từ các máy trạm khác Gồm

có các kiểu tấn công sau:

Kiểu tấn công SYN flood

Lợi dụng cách thức hoạt động của kết nối TCP/IP, hacker bắt đầu quá trình thiết lập một kết nối TPC/IP tới mục tiêu muốn tấn công mà không gửi trả gói tin ACK, khiến cho mục tiêu luôn rơi vào trạng thái chờ (đợi gói tin ACK từ phía yêu

Trang 23

cầu thiết lập kết nối) và liên tục gửi gói tin SYN ACK để thiết lập kết nối Một cách khác là giả mạo địa chỉ IP nguồn của gói tin yêu cầu thiết lập kết nối SYN

và cũng như trường hợp trên, máy tính đích cũng rơi vào trạng thái chờ vì các gói tin SYN ACK không thể đi đến đích do địa chỉ IP nguồn là không có thật Kiểu tấn công SYN flood được các hacker áp dụng để tấn công một hệ thống mạng có băng thông lớn hơn hệ thống của hacker

Kiểu tấn công Land Attack

Kiểu tấn công Land Attack cũng tương tự như SYN flood, nhưng hacker sử dụng chính IP của mục tiêu cần tấn công để dùng làm địa chỉ IP nguồn trong gói tin, đẩy mục tiêu vào một vòng lặp vô tận khi cố gắng thiết lập kết nối với chính

Kiểu tấn công UDP flood

Hacker gửi gói tin UDP echo với địa chỉ IP nguồn là cổng loopback của chính mục tiêu cần tấn công hoặc của một máy tính trong cùng mạng Với mục tiêu sử dụng cổng UDP echo (port 7) để thiết lập việc gửi và nhận các gói tin echo trên 2 máy tính (hoặc giữa mục tiêu với chính nó nếu mục tiêu có cấu hình cổng loopback), khiến cho 2 máy tính này dần dần sử dụng hết băng thông của chúng,

và cản trở hoạt động chia sẻ tài nguyên mạng của các máy tính khác trong mạng

Tấn công kiểu DDoS (Distributed Denial of Service)

Đây là cách thức tấn công rất nguy hiểm Hacker xâm nhập vào các hệ thống máy tính, cài đặt các chương trình điều khiển từ xa, và sẽ kích hoạt đồng thời các chương trình này vào cùng một thời điểm để đồng loạt tấn công vào một mục tiêu Với DDoS, các hacker có thể huy động tới hàng trăm thậm chí hàng ngàn máy tính cùng tham gia tấn công cùng một thời điểm (tùy vào sự chuẩn bị trước đó của hacker) và có thể sử dụng hết băng thông của mục tiêu trong nháy mắt

Trang 24

Hình 1.5: Mô hình tấn công kiểu DDoS (Distributed Denial of Service)

Hậu quả mà DoS gây ra không chỉ tiêu tốn nhiều tiền bạc, và công sức mà còn mất rất nhiều thời gian để khắc phục Vì vậy, cần sử dụng các biện pháp sau

 Xây dựng hệ thống lọc thông tin trên router, firewall… và hệ thống bảo vệ chống lại SYN flood

 Liên tục cập nhật, nghiên cứu, kiểm tra để phát hiện các lỗ hổng bảo mật và

có biện pháp khắc phục kịp thời

Tấn công kiểu Smurf Attack

Kiểu tấn công này cần một hệ thống rất quan trọng, đó là mạng khuếch đại Hacker dùng địa chỉ của máy tính cần tấn công bằng cách gửi gói tin ICMP echo cho toàn bộ mạng (broadcast) Các máy tính trong mạng sẽ đồng loạt gửi gói tin ICMP reply cho máy tính mà hacker muốn tấn công Kết quả là máy tính này sẽ không thể xử lý kịp thời một lượng lớn thông tin và dẫn tới bị treo máy

Trang 25

1.4 Một số giải pháp bảo vệ cho Web Server

1.4.1 Máy chủ tăng tốc và bảo vệ Internet (ISA)

Internet Acceleration and Security (ISA) cung cấp một tường lửa linh hoạt, có hiệu quả, và dễ sử dụng Có hai phiên bản ISA 2006 bao gồm:

 Standard Edition

 Enterprise Edition

ISA Server 2006 đáp ứng nhu cầu bảo vệ và chia sẻ băng thông, có thể xây dựng firewall để:

 Kiểm soát các luồng dữ liệu vào và ra hệ thống mạng nội bộ

 Kiểm soát quá trình truy cập của người dùng theo giao thức, thời gian và nội dung nhằm ngăn chặn việc kết nối vào những trang web có nội dung không thích hợp

 Bên cạnh đó chúng ta còn có thể triển khai hệ thống VPN Site to Site hay Remote Access hỗ trợ cho việc truy cập từ xa Với Web Server cần được bảo vệ chặt chẽ trong một môi trường riêng biệt thì ISA SERVER 2006 cho phép triển khai các vùng DMZ (khu phi quân sự) ngăn ngừa sự tương tác trực tiếp giữa người bên trong và bên ngoài hệ thống

 Ngoài các tính năng bảo mật thông tin trên, ISA SERVER 2006 còn có hệ thống đệm (cache) giúp kết nối Internet nhanh hơn do thông tin trang web có thể được lưu sẵn trên RAM hay đĩa cứng, giúp tiết kiệm đáng kể băng thông

Hình 1.6: Mô hình sử dụng phần mềm ISA

Trang 26

1.4.2 Bảo vệ Web Server bằng tường lửa

Tường lửa ứng dụng web (Web Application Firewall – WAF) là một giải pháp nhằm bảo vệ cho ứng dụng web tránh khỏi các lỗi bảo mật, các cuộc tấn công từ

mã độc và tin tặc Trong những năm gần đây, xu hướng tấn công vào ứng dụng web đang ngày càng trở nên phổ biến Các kỹ thuật tấn công chủ yếu là: Cross-site scripting, SQL injection và nhiều các kỹ thuật khác… Tất cả các kỹ thuật này đều nhắm vào lớp ứng dụng trong mô hình OSI Các lỗ hổng trong ứng dụng web chủ yếu xảy ra do người lập trình, cấu hình hệ thống và các lỗ hổng trong các nền tảng, thư viện

Tường lửa ứng dụng web WAF là một giải pháp nhằm bảo vệ cho ứng dụng web tránh khỏi các lỗi bảo mật web nói trên WAF là một thiết bị phần cứng hoặc phần mềm được cài lên máy chủ có chức năng theo dõi các thông tin được truyền qua giao thức http/https giữa trình duyệt của người dùng và máy chủ web tại lớp

7 Một WAF có khả năng thực thi các chính sách bảo mật dựa trên các dấu hiệu tấn công, các giao thức tiêu chuẩn và các lưu lượng truy cập ứng dụng web bất thường Đây là điều mà các tường lửa mạng khác không làm được

Hình 1.7: Mô hình bảo vệ Web Server bằng tường lửa ứng dụng

Ngày đăng: 20/05/2023, 14:51

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w