Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vnCHƯƠNG 1: TỔNG QUAN CÁC GIẢI PHÁP BẢO VỆ WEB SERVER 1.1.Tổng quan Web Server Web Server là máy chủ có dun
Trang 1Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
ĐẠI HỌC THÁI NGUYÊN
TRƯỜNG ĐẠI HỌC CNTT&TT
Lê Hồng Sơn
GIẢI PHÁP BẢO VỆ WEB SERVER DỰA TRÊN REVERSE PROXY
LUẬN VĂN THẠC SĨ KHOA HỌC MÁY TÍNH
Thái Nguyên - 2012
Trang 2Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
MỞ ĐẦU
1 Lý do chọn đề tài: 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 đó Hiểm hoạ
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
vv… Các nhà quản trị mạng luôn phải đau đầu, lo lắng tìm các phương pháp
để bảo vệ Web server và an toàn thông tin cho toàn bộ hệ thống
Xuất phát từ những nhu cầu trên, học viên quyết định lựa chọn đề tài
“Nghiên cứu giải pháp bảo vệ Web Server dựa trên Reverse Proxy” mong muốn nghiên cứu, đánh giá khả năng bảo vệ Web Server và lựa chọn một ứng dụng để cấu hình và cài đặt thử nghiệm mô hình cụ thể Ư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
2 Đối tượng và phạm vi nghiên cứu: Trong những năm vừa qua, hàng
loạt các vụ tấn công vào hệ thống Web Server của các trang mạng xã hội tạo
ra những quan tâm rất lớn trong các nhà quản trị hệ thống mạng thông tin
Sử dụng Reverse Proxy là một cách bảo vệ Web Server 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
Việc bảo vệ Web Server có nhiều biện pháp khác nhau, do đó đối tượng
nghiên cứu của luận văn chỉ tập trung vào việc nghiên cứu giải pháp bảo vệ
Trang 3Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Web Server dựa trên Reverse Proxy Sau đó cấu hình và cài đặt thử nghiệp bằng phần mềm mã nguồn mở NGINX
3 Hướng nghiên cứu của đề tài: Việc nghiên cứu và đánh giá các vấn
đề trong đề tài dựa trên các cơ sở khoa học và phương pháp luận nghiên cứu sau:
Hệ thống lý thuyết tổng quan về bảo mật trên Web Server; SSL; HTTPS; Reverse Proxy
Nghiêm cứu mô hình triển khai hệ thống mạng bảo mật cho Web Server
và cấu hình và cài đặt thử nghiệm Reverse Proxy bằng phần mềm NGINX
4 Phương pháp nghiên cứu: Thu nhập hệ thống lý thuyết tổng quan về
bảo mật trên web server; SSL; HTTPS; Reverse Proxy Tham khảo các tài liệu liên quan ở trong nước, nước ngoài và trên Internet; sử dụng phương pháp phân tích, liệt kê, thực nghiệm,…
5 Ý nghĩa khoa học của đề tài: Nghiên cứu tìm hiểu giải pháp bảo vệ
Web Server dựa trên Reverse Proxy, cấu hình và cài đặt thử nghiệp bằng phần mềm mã nguồn mở NGINX
Vì điều kiện thời gian có giới hạn và năng lực của bản thân, mặc dù đã
cố gắng nhưng đề tài chắc có thể chưa đi sâu phân tích hết các khía cạnh, chi tiết có liên quan Kính mong Thầy hướng dẫn và Hội đồng bảo vệ luận văn tốt nghiệp cho ý kiến đóng góp thêm để đề tài được hoàn thiện hơn
Trang 4Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 1:
TỔNG QUAN CÁC GIẢI PHÁP BẢO VỆ WEB SERVER
1.1.Tổng quan 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)
Web Server gửi đến Client những trang Web thông qua môi trường Internet qua giao thức HTTP, HTTPS; giao thức được thiết kế để gửi các file đến Web Browser và các giao thức khác
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 đó, Web Server sẽ nhận yêu cầu và gửi lại những thông tin yêu cầu Giống các phần mềm khác Web Server cũng chỉ là một ứng dụng phần mềm Nó được cài đặt, 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
Hình 1.1 Mô hình hoạt động Web Server
Web Server còn có thể được tích hợp với Database hay điều khiển việc kết nối vào Database để có thể truy cập và kết xuất thông tin từ Database lên các trang Web và truyền tải chúng đến người dùng Web Server phải hoạt
Trang 5Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
động liên tục 24/24 giờ, 7 ngày một tuần và 365 ngày một năm, để phục vụ cho việc cung cấp thông tin trực tuyến
Có nhiều Web Server khác nhau, việc lựa chọn một web server phù hợp
sẽ dựa trên các tiêu chí đánh giá Khả năng làm việc với hệ điều hành, các ứng dụng khác, thiết lập các chương trình ứng dụng phía server, bảo mật dữ liệu, xuất bản trang web, các công cụ hỗ trợ khi xây dựng các trang web Hiện nay, có 2 loại web server thông dụng nhất là : Internet Information Services (IIS), Apache Web Server
1.1.1 Internet Information Services (IIS)
Internet Information Services (IIS) là một dịch vụ tùy chọn của Windows Server cung cấp các tính năng về Web site
Giải pháp phổ biến nhất của Microsoft cho một web site là chạy IIS trên nền Windows Server IIS là dịch vụ thông tin Internet do Microsoft phát triển, sản phẩm này được tích hợp cùng với hệ điều hành Windows Phiên bản mới nhất hiện nay là IIS 7.0 được chạy trên hệ điều hành Windows Server
2003, 2008 Phiên bản này được Microsoft thiết kế lại dưới dạng module, vừa kế thừa ưu điểm của những phiên bản trước,vừa tăng cường tính bảo mật
và ổn định Những điểm đáng chú ý trong IIS 7.0 bao gồm:
IIS 7.0 cung cấp 2 công cụ quản trị, một dưới dạng đồ họa và một dưới dạng dòng lệnh Những công cụ quản trị này cho phép bạn:
- Quản lý tập trung IIS và ASP.NET;
- Xem thông tin, chẩn đoán, trong đó bao gồm các thông tin real-time;
- Thay đổi quyền trên các đối tượng site và ứng dụng;
- Ủy quyền cấu hình các đối tượng site và ứng dụng cho các thành viên không có quyền quản trị;
Trang 6Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 1.2 Phần mềm IIS7
Thay đổi cách thức lưu trữ thông tin cấu hình IIS 7.0 và ASP.NET
vào một vị trí, từ đó cho phép:
- Cấu hình IIS và ASP.NET với một định dạng thống nhất
- Dễ dàng sao chép các file cấu hình và nội dung của site hoặc ứng dụng đến một máy tính khác
Dễ dàng chẩn đoán và khắc phục sự cố nhờ vào thông tin real-time và
hệ thống file log ở mức độ chi tiết
IIS 7.0 được thiết kế dưới dạng module, cho phép bổ sung cũng như
loại bỏ các thành phần từ Web Server khi cần
Khả năng tương thích cao đối với các ứng dụng đã triển khai trong các
phiên bản IIS trước Khi đó triển khai IIS 7.0 có thể chạy các ứng dụng ASP hoặc ASP.NET 2.0 đã được xây dựng từ trước mà không cần phải thay đổi mã nguồn
Trong IIS bao gồm nhiều dịch vụ dịch vụ như: dịch vụ Web Server, dịch
vụ FTP Server … Ở đây chỉ đề cập đến dịch vụ Web Server IIS Web Server
Trang 7Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
đáp ứng mọi yêu cầu chủ yếu của một Web Server như: độ tin cậy, hiệu năng, khả năng theo dõi giám sát, tính bảo mật và tính khả thi trong việc phát triển các dịch vụ ứng dụng Tất cả các cải tiến này là kết quả là sự kết hợp chặt chẽ cùng với các tính năng mới được cung cấp trong hệ điều hành Windows Người dùng có thể triển khai liên tục các ứng dụng mạng lên các Server với nội dung mới nhất IIS hỗ trợ đầy đủ các hệ thống ngôn ngữ lập trình như Visual Basic, Visual Basic Script, J scriptMT được phát triển bởi Microsoft và Java Conponent, ứng dụng CGI dành cho các ngôn ngữ lập trình Web cơ sở, ISAPI mở rộng và các bộ lọc
1.1.2 Apache Web Server
Apache Web Server được xem như một sự nỗ lực rất lớn trong việc phát triển và duy trì một Web Server mã nguồn mở cho các hệ điều hành, bao gồm Unix, Linux và Windows Đây là một Web Server hội tụ tất cả các tính năng: bảo mật, hiệu suất, mở rộng và phát triển cung cấp các dịch vụ Web được đồng bộ trong các chuẩn Web hiện hành
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
Trang 8Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 1.3 Phần mềm apache
- 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.2 Một số phương thức tấn công web server
1.2.1 Authentication attacks
Authentication đóng một vai trò rất quan trọng trong việc đảm bảo tính
an ninh của một web application Khi một user cung cấp login name và password để xác thực tài khoản của mình, web application cấp quyền truy xuất cho user dựa vào login name mà user nhập vào đã được lưu trong cơ sở
Trang 9Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Giải pháp tốt hơn cho vấn đề này là sử dụng một vài hình thức
“multi-factor authentication” (chứng thực sử dụng nhiều yếu tố)
Vấn đề ở đây là sức mạnh tính toán của các máy tính ngày này 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” chỉ 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…)
Thật không may, 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 “threat” như vậy là tạo ra
các mật khẩu mạnh “strong password” (độ 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
Trang 10Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Nhưng ngay cả khi người ta có thể nhớ được các “strong password” (tất nhiên độ phức tạp của “password” này cần ở mức vừa phải) như dài từ 12 đến
16 ký tự, thì vẫn còn các vấn đề khác mà các hệ thống chứng thực chỉ dựa vào
“password” phải đối mặt
1.2.2 HTTP Response Splitting
Lỗi HTTP Response Splitting tấn công vào ứng dụng web và diễn ra khi
nó không thể xử lý đúng các thông tin đầu vào người dùng nhập
Kẻ tấn công từ xa có thể gửi một yêu cầu HTTP đặc biệt làm cho máy chủ web định dạng yêu cầu nhầm tưởng rằng nó chứa 2 yêu cầu HTTP chứ không phải một Chỉ yêu cầu thứ nhất được xử lý bởi người sử dụng HTTP Response Splitting cho phép tiến hành một lượng lớn các cuộc tấn công kiểu như web cache positioning, deface, “cross-user defacement”, chặn và ăn cắp thông tin người dùng và Cross site Scripting
1.2.3 File Inclusion Attacks
Khi một trang web sử dụng các lệnh include, require,… để gọi đến một file khác, sơ ý để người dùng có thể thay đổi file cần gọi đến Như vậy Website đó đang đứng trước nguy cơ bị tấn công File Inclusion Tùy vào mức
độ bảo mật của Server, hacker có thể include đến file trên Server đó hoặc include đến file trên Server khác (remote include) Với từng mức độ hacker có thể có nhiều cách để up 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 dùng để tấn công local 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,…Có thể lấy thông tin truy nhập cơ sở dữ liệu
Trang 11Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
(database) qua file cấu hình của website, sau đó truy nhập vào cơ sở dữ liệu: xem 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 load_file() Phòng chống File Inclusion Attacks
1.2.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ữ
Trang 12Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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
1.2.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ện SELECT, sử dụng câu lệnh INSERT, sử dụng các
stored-procedures Để phòng tránh, ta có thể thực hiện ở hai mức:
Kiểm soát chặt chẽ dữ liệu nhập vào hãy bảo vệ các câu lệnh SQL là
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
Trang 13Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
1.2.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 client khác Gồm có các kiểu tấng 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 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 nó
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ó
Trang 14Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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)
Hình 1.4 Mô hình tấn công web server kiểu DDoS
Đâ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ể "ngốn" hết băng thông của mục tiêu trong nháy mắt
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 khuyế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 15Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
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 để phòng chống DoS:
- Mô hình hệ thống cần phải được xây dựng hợp lý, tránh phụ thuộc lẫn nhau quá mức
- Thiết lập mật khẩu mạnh (strong password) để bảo vệ các thiết bị mạng
và các nguồn tài nguyên quan trọng khác
- Thiết lập các mức xác thực đối với người sử dụng cũng như các nguồn tin trên mạng Đặc biệt, nên thiết lập chế độ xác thực khi cập nhật các thông tin định tuyến giữa các router
- 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
1.3 Một số giải pháp bảo mật cho web server
Các 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 đó Hiểm hoạ có thể là bất cứ cái gì từ kiểu 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 Vì vậy để bảo vệ Web Server cần triển khai những vấn
Trang 16Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 1.5 Mô hình bảo vệ Web Server
+ Hệ thống lưu trữ: Các thiết bị lưu trữ dữ liệu tích hợp SAN (Storage Area Network)
+ Ngoài việc những động tác kiểm tra của một bức tường lửa thông thường, WAF sẽ kiểm tra sâu hơn, sẽ kiểm tra các nội dung HTTP ở lớp ứng dụng, Đặt các Web Server của bạn trong vùng DMZ Thiết lập firewall của bạn không cho các kết nối tới Web Server trên toàn bộ các cổng, ngoại trừ cổng 80 (http), cổng 443 (https) và các cổng dịch vụ mà bạn sử dụng
+ Đăng ký và cập nhật định kỳ các bản sửa lỗi mới nhất về an toàn, bảo mật từ các nhà cung cấp
+ Thực hiện toàn bộ việc cập nhật từ mạng Intranet Duy trì trang Web ban đầu trên mỗi Server trên hệ thống mạng Intranet và tạo các thay đổi và cập nhật ở đây; sau đó mới đẩy các cập nhật này lên Website qua một kết nối SSL
Trang 17Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 1.6 Báo cáo rủi ro các cuộc tấn công Web
Ngoài ra để tăng độ bảo mật cho Web Server ta có thể sử dụng một số
giải pháp sau:
1.3.1 Sử dụng mod_security
Hình 1.7 Mô hình Sử dụng mod_security
Trang 18Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Mod_Security là một bộ máy phát hiện và phòng chống xâm nhập dành cho các ứng dụng Web hoặc một Web application firewall Hoạt động như một module của máy chủ web Apache, mục đích của ModSecurity là tăng cường bảo mật cho các ứng dụng web, bảo vệ chúng khỏi các loại tấn công đã biết và chưa biết Modsecurity có thể :
- Theo dõi HTTP traffic để phát hiện những dấu hiệu bất thường
- Lọc các dữ liệu ra vào Web Server
- Ghi lại các tương tác giữa Client và Web Server
1.3.2 Secure Web Server (HTTPS)
Là một sự kết hợp giữa giao thức HTTP và giao thức bảo mật SSL hay TLS cho phép trao đổi thông tin một cách bảo mật trên Internet Các kết nối HTTPS thường được sử dụng cho các giao dịch thanh toán trên World Wide Web và cho các giao dịch nhạy cảm trong các hệ thống thông tin
HTTPS được sử dụng trong nhiều tình huống, chẳng hạn như các trang đăng nhập cho ngân hàng, các hình thức, ích đăng nhập công ty, và các ứng dụng khác, trong đó dữ liệu cần phải được an toàn
1.3.3 Internet Acceleration and Security (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
Trang 19Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
- 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 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.8 Mô hình sử dụng phần mềm ISA
Trang 20Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
CHƯƠNG 2:
GIẢI PHÁP BẢO VỆ WEB SERVER DỰA TRÊN REVERSE PROXY
Ngày nay, cùng với sự phát triển nhanh chóng của Internet, số lượng các giao dịch qua mạng ngày càng tăng Việc thực hiện một giao dịch an toàn là một yêu cầu thiết thực nhất là trong thương mại điện tử và các lĩnh vực nhạy cảm khác như ngân hàng, tài chính, an ninh…
Để bảo vệ Web Server không bị các hacker tấn công là vấn đề có tính cấp bách, hiện nay có rất nhiều biện pháp bảo vệ Web Chương 2 của luận văn trình bày về Giải pháp bảo vệ Web Server dựa trên Reverse Proxy
2.1 Giao thức SSL/TLS
2.1.1.Giao thức SSL
2.1.1.1.Giới thiệu giao thức SSL
Giao thức SSL là chữ viết tắt từ Secure Socket Layer, đây là một
tiêu chuẩn an ninh công nghệ toàn cầu tạo ra một liên kết được mã hóa giữa máy chủ web và trình duyệt Liên kết này đảm bảo tất cả các dữ liệu trao đổi giữa máy chủ web và trình duyệt luôn được bảo mật và an toàn
Hoạt động ở giữa giao thức TCP và các giao thức tầng ứng dụng của mô hình OSI SSL hoạt động độc lập và trong suốt với các giao thức khác vì vậy
nó có thể làm việc với bất kỳ giao thức nào trên tầng ứng dụng và tầng giao vận trong mô hình OSI
SSL nhận dữ liệu từ các giao thức tầng trên, mã hoá dữ liệu rồi chuyển xuống cho các giao thức tầng thấp hơn Tại nơi nhận, giao thức tầng dưới cung cấp dữ liệu cho giao thức SSL, giao thức SSL giải mã dữ liệu rồi tiếp tiếp chuyển cho các giao thức tầng ứng dụng xử lý tiếp
Về cấu trúc, SSL là một bộ gồm các giao thức thành phần được phân tầng Giao thức Handshake điều khiển việc thiết lập liên kết, giao thức Alert
Trang 21Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
điều khiển việc thông báo lỗi, giao thức ChangCipher thực hiện kích hoạt các dịch vụ bảo mật và giao thức Record thực hiện việc đóng gói các thông điệp
do các giao thức tầng trên gửi xuống và chuyển tiếp các thông điệp đến nơi nhận Mối quan hệ giữa các giao thức thành phần SSL được mô tả trong hình
Hình 2.1 Sơ đồ quan hệ giữa SSL và các giao thức khác
Các dịch vụ bảo mật trong SSL bao gồm mã hoá, xác thực và kiểm tra tính toàn vẹn dữ liệu
2.1.1.2 Cơ chế hoạt động của giao thức SSL
Giao thức SSL là một bộ gồm 4 giao thức được phân thành hai tầng, tầng trên gồm có giao thức bắt tay SSL (Handshake Protocol), giao thức cảnh báo (Alert Protocol), giao thức Change Cipher Spec Các giao thức này được sử dụng để khởi tạo một phiên, điều khiển lỗi và thực hiện các thay đổi khác khi cần thiết Tầng dưới gồm giao thức bản ghi SSL (Record Protocol) quy định cách thức vận chuyển dữ liệu giữa bên gửi và bên nhận
Trang 22Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
là kiểu kết nối phổ biến nhất);
2 Kiểu kết nối có xác thực cả máy chủ và máy khách
Mục đích của việc bắt tay trong giao thức SSL nhằm: Giúp máy chủ và máy khách thương lượng các thuật toán bảo vệ dữ liệu trong một phiên làm việc, trao đổi các thông tin cần thiết để tạo khoá phiên và giúp máy khách và máy chủ xác thực lẫn nhau
Khởi tạo phiên giao tiếp SSL không xác thực máy khách
Trong phiên bắt tay, máy chủ và máy khách trao đổi các thông điệp với nhau, các bước và thông điệp trong quá trình bắt tay
Bảng 2.1 Quá trình bắt tay SSL không xác thực máy khách
ServerHelloDone gửi cho máy khách
ClientKeyExChange
6 Máy khách gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ
bảo mật
7 Máy khách gửi thông điệp Finished để máy chủ kiểm tra tính toàn
vẹn của các thông điệp đã gửi
9 Máy chủ gửi thông điệp Finished để máy khách kiểm tra tính toàn
vẹn của các thông điệp đã gửi
Trang 23Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Khởi tạo phiên giao tiếp SSL có xác thực máy khách
Xác thực máy khách là một tùy chọn được hỗ trợ trong SSL 3.0 Các bước và thông điệp khởi tạo phiên SSL có xác thực máy khách được mô tả trong bảng
Bảng 2.2 Quá trình bắt tay SSL có xác thực máy khách
Bước Hành động
1 Máy khách gửi thông điệp ClientHello tới máy chủ đề xuất các tuỳ
chọn cho phiên SSL
tuỳ chọn cho phiên SSL
khách
ServerHelloDone gửi cho máy khách
10 Máy khách gửi thông điệp Finished máy chủ kiểm tra tính toàn vẹn
của các thông điệp đã gửi
11 Máy chủ gửi thông điệp ChangeCipherSpec để kích hoạt các dịch vụ
bảo mật
của các thông điệp đã gửi
Trang 24Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.2 Sơ đồ quá trình bắt tay SSL
Máy khách thực hiện các bước sau để xác thực máy chủ:
- Kiểm tra thời hạn sử dụng của chứng chỉ số;
- Kiểm tra CA cung cấp chứng chỉ số có tin cậy hay không;
- Kiểm tra khoá công khai của CA có thích hợp với chữ ký điện tử của người đưa ra không;
- Kiểm tra xem tên miền trong chứng chỉ số máy chủ có tương ứng và tên miền của máy chủ hay không
Trang 25Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Hình 2.3 Sơ đồ xác thực Server
Xác thực máy khách
Máy chủ thực hiện các bước sau đây để xác thực máy khách:
- Kiểm tra xem khoá công khai trong chứng chỉ số của máy khách có phù
hợp với chữ ký điện tử được ký bởi máy khách hay không;
- Kiểm tra xem chứng chỉ số đã hết thời hạn sử dụng chưa;
- Kiểm tra CA cung cấp chứng chỉ số có tin cậy hay không;
- Kiểm tra khoá công khai của CA có thích hợp với chữ ký điện tử của người đưa ra không;
- Kiểm tra xem chứng chỉ số của người dùng có nằm trong danh sách LDAP cho người dùng hay không
Giao thức bản ghi SSL
Giao thức bản ghi SSL tiếp nhận các thông điệp từ các tầng trên, phân đoạn dữ liệu, nén dữ liệu nếu nó được hỗ trợ, bổ sung MAC, mã hoá dữ liệu,
Trang 26Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
đóng rồi chuyển xuống tầng dưới Tại nơi nhận, dữ liệu được xử lý ngược lại,
nó được giải mã, kiểm tra tính toàn vẹn dữ liệu, giải nén, ghép đoạn và chuyển dữ liệu nên tầng trên Quá trình trên được mô tả trong hình vẽ
Hình 2.4 Hoạt động giao thức bản ghi SSL
Khuôn dạng thông điệp của giao thức bản ghi SSL gồm hai phần: phần
tiêu đề và phần nội dung Phần tiêu đề gồm các trường Content type,
Version, Length Phần nội dung là toàn bộ thông điệp của giao thức tầng trên được đóng gói
Bảo vệ thông điệp bản ghi SSL
Sau khi phân đoạn tại tầng bản ghi dữ liệu được bổ sung mã xác thực MAC và mã hoá trước khi gửi nên đường truyền
Tính toán mã xác thực thông điệp (MAC)
SSL hỗ trợ hai thuật toán tính toán mã xác thực thông điệp đó là MD5 và SHA Giá trị băm sau khi tính toán đều được bổ sung vào dữ liệu ban đầu, giá trị độ dài của một bản ghi SSL bao gồm cả độ dài dữ liệu lẫn độ dài MAC
Trang 27Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Mã hoá dữ liệu Cả dữ liệu và mã xác thực MAC được mã hoá để đảm
bảo tính bí mật khi truyền SSL hỗ trợ hai kiểu mã hoá, mã hoá dòng và mã hoá khối
Hình 2.7 Mã hóa dòng Hình 2.8 Mã hóa khối
Giao thức cảnh báo SSL
SSL sử dụng giao thức Alert để chuyển thông báo lỗi giữa các bên tham gia giao tiếp Thông điệp Alert được đóng gói bởi giao thức bản ghi SSL, ngoài phần tiều đề của tầng bản ghi, thông điệp Alert gồm hai trường: trường level và trường description
Trang 28Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Trường Level mô tả mức độ nguy hiểm của lỗi Các lỗi có thể là warning (với giá trị trường Level là 1) hoặc fatal (với giá trị trường Level là 2) Khi nhận được thông báo lỗi fatal hệ thống ngay lập tức huỷ bỏ phiên làm việc Các lỗi warning có mức độ nguy hiểm kém hơn, hệ thống nhận lỗi này vẫn có thể cho phép tiếp tục phiên hiện tại; tuy nhiên cả hai bên phải làm mất hiệu lực của số định danh phiên và không sử dụng cho bất kỳ kết nối tiếp theo được thiết lập
Trường Description mô tả chi tiết lỗi cụ thể Trường này gồm một byte
và có thể nhận một trong các giá trị trong bảng dưới đây:
Bảng 2.3 Giá trị của trường Describtion trong thông điệp Alert
Giá
trị
Tên lỗi Mức độ Ý nghĩa
Unexpected-Message
thông điệp sai; lỗi này luôn luôn là fatal
thông điệp với mã xác thực bị sai
Decompression-Failure
thông điệp, và không giải nén được
Handshake-Failure
lượng được tập dịch vụ an ninh có thể chấp nhận
chứng chỉ số nhưng bị hỏng (chẳng hạn chữ ký của nó không thể kiểm tra được)
Trang 29Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Certificate-Revoked
chứng chỉ số đã bị thu hồi bởi CA
thông điệp bắt tay với một giá trị tham
số không hợp lệ hoặc xung đột với tham
số khác
Giao thức ChangeCipherSpec
ChangeCipherSpec là giao thức đơn giản nhất trong các giao thức thành phần của SSL và được dùng để kích hoạt các dịch vụ bảo mật trong phiên giao tiếp Thông điệp ChangeCipherSpec báo hiệu sự thay đổi trạng thái các tham số bảo mật trong phiên SSL
2.1.2 Giao thức TLS
2.1.2.1 Giới thiệu giao thức TLS
Transport Layer Security (TLS) là một giao thức mật mã cung cấp thông tin liên lạc an toàn trên Internet được IETF (Internet Engineering Task Force)
tổ chức quy định các tiêu chuẩn trên Internet, chuẩn hóa SSL và tạo ra TLS cập nhật lần cuối trong Request for Comments (RFC) 5246 , được dựa trên các thông số SSL trước đó được phát triển bởi Netscape
Một số phiên bản của giao thức được sử dụng rộng rãi trong các ứng dụng như duyệt web, thư điện tử, fax Internet, tin nhắn tức thời và voice-over-
IP (VoIP) để bảo vệ giao thức lớp ứng dụng như HTTP, FTP và cải thiện tốc
độ truyền dữ liệu hoặc thiết lập phiên làm việc các ứng dụng
Trang 30Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
Ứng dụng nổi bật của TLS là để đảm bảo cho lưu lượng truy cập World Wide Web thực HTTP để tạo thành HTTPS Các ứng dụng đáng chú ý khác là thương mại điện tử và quản lý tài sản
Simple Mail Transfer Protocol (SMTP) cũng được bảo vệ bởi TLS Các ứng dụng này sử dụng giấy chứng nhận khóa công khai để xác minh danh tính của thiết bị đầu cuối
Nhiều nhà cung cấp dịch vụ an ninh mạng hiện nay kết hợp mã hóa TLS với khả năng xác thực trong việc hỗ trợ cho các ứng dụng Client / Server TLS có một số lợi thế khi sử dụng tường lửa và NAT traversal làm cho
nó dễ dàng hơn để quản lý truy cập từ xa với số lượng lớn
TLS là một tiêu chuẩn để bảo vệ tín hiệu ứng dụng Session Initiation Protocol (SIP) TLS có thể được sử dụng để cung cấp chứng thực và mã hóa các tín hiệu SIP kết hợp với VoIP và các ứng dụng khác dựa trên SIP
2.1.2.2 Cơ chế hoạt động của giao thức TLS
Handshake Protocol là chịu trách nhiệm cho việc xác thực và trao đổi khóa cần thiết để thiết lập hoặc tiếp tục phiên an toàn Khi thiết lập một phiên
an toàn, quá trình Handshake thực hiện như sau:
Khách hàng xác thực bắt tay TLS
1 Client gửi một thông điệp ClientHello xác định phiên bản TLS giao
thức cao nhất nó hỗ trợ, một số ngẫu nhiên, một danh sách các bộ mã hoá đề xuất và phương pháp nén
2 Server đáp ứng với nhắn ServerHello, có phiên bản giao thức được
lựa chọn, một số ngẫu nhiên, bộ mật mã và phương pháp nén từ các lựa chọn
được cung cấp bởi khách hàng Các Server cũng có thể gửi một phiên như là
một phần của thông điệp để thực hiện một cái bắt tay trở lại
3 Server sẽ gửi tin nhắn Giấy chứng nhận (phụ thuộc vào các bộ mật
Trang 31Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
mã đã chọn, điều này có thể đƣợc bỏ qua bởi các máy chủ)
Hình 2.9 Quá trình bắt tay TLS
4 Các Server yêu cầu một giấy chứng nhận Client, để kết nối có thể
đƣợc hai bên xác thực, sử dụng tin nhắn CertificateRequest
5 Server gửi một tin nhắn ServerHelloDone, cho thấy nó đƣợc thực
hiện với đàm phán bắt tay
6 Client đáp ứng với một thông điệp Giấy chứng nhận, trong đó có
giấy chứng nhận của Client
7 Client sẽ gửi tin nhắn ClientKeyExchange, có thể chứa một phím,
PreMasterSecret công cộng, hoặc không có gì (Một lần nữa, điều này phụ
thuộc vào thuật toán mã hóa đƣợc lựa chọn.) PreMasterSecret này đƣợc mã
hóa bằng cách sử dụng khóa công khai của các chứng chỉ Server
Trang 32Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
8 Client sẽ gửi tin nhắn CertificateVerify là một chữ ký trên tin bắt tay
trước đó bằng cách sử dụng khóa riêng của Client Chữ ký này có thể được xác minh bằng cách sử dụng khóa công khai chứng chỉ của Client Điều này cho phép Server biết rằng Client có thể truy cập vào các khóa riêng của giấy chứng nhận và do đó sở hữu giấy chứng nhận
9 Client và Server sau đó sử dụng các số ngẫu để tính toán một bí mật phổ biến, được gọi là "bậc thầy bí mật" Tất cả các dữ liệu quan trọng khác cho kết nối này có nguồn gốc từ bí mật mà Server và Client tạo ra các giá trị ngẫu nhiên được thông qua một hàm giả ngẫu nhiên được thiết kế cẩn thận
Cuối cùng, Client sẽ gửi một tin nhắn mã hóa hoàn thành, có chứa một
băm và MAC trong thông báo bắt tay trước
Các Server sẽ cố gắng để giải mã tin nhắn Kết thúc của Client Nếu giải
mã hoặc kiểm tra xác nhận không thành công, những cái bắt tay được coi là
đã thất bại và kết nối nên được dỡ bỏ Server sẽ gửi thông báo Finished mã hóa của riêng mình Client thực hiện các giải mã và xác minh
2.2 Giao thức HTTPS
2.2.1 Giới thiệu giao thức HTTPS
2.2.1.1 Giới thiệu giao thức HTTP
HTTP là chữ viết tắt từ Hyper Text Transfer Protocol (giao thức truyền
tải siêu văn bản) Được xây dựng dựa vào nền của Internet và sử dụng giao thức TCP/IP để truyền tải thông tin giữa các Web Client và Web Server
HTTP là giao thức Client/Server dùng cho World Wide Web Nó cung cấp cách để Web Browser truy xuất Web server và yêu cầu các văn bản hypermedia được tạo bởi HTML Các văn bản HTML có thể chứa các siêu kiên kết (hyperlink) đến các nơi khác nhau, có thể trong cùng một văn bản, một văn bản khác cùng một Web site hay một văn bản trên một Web site
Trang 33Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn
khác HTTP có nhiệm vụ xử lý các liên kết này và cung cấp giao thức truyền tin cho Client/Server
HTTP là giao thức hướng đối tượng tổng quát, không trạng thái, có thể dùng cho nhiều nhiệm vụ chẳng hạn như đặt tên cho Server và các hệ thống quản lý đối tượng phân tán, thông qua việc mở rộng các phương thức theo yêu cầu các lệnh Khi Client đang chạy Web Browser gõ tên Server hay địa chỉ IP vào trường Address, browser sẽ định vị địa chỉ này trên mạng (mạng intranet nội bộ hay mạng internet tùy thuộc vào sự kết nối) và sự kết nối sẽ được thực hiện đến Web server đã chỉ định HTTP là giao thức lệnh và điều khiển xác lập việc truyền tin giữa Client và Server và chuyển lệnh qua lại giữa hai hệ thống
Chẳng hạn, khi bạn 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
Hình 2.10 Giao thức HTTP
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