Tải bản đầy đủ (.pdf) (66 trang)

Giải pháp bảo vệ Web Server dựa trên Reverse Proxy

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (3.38 MB, 66 trang )

1

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

























ĐẠ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

2

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
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… 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ệ
3

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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.







4

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
5

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

độ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ị;
6

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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
7

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

đá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 script
MT
đƣợ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.
8

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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ở
dữ liệu. HTTP có một số phƣơng thức xác thực:
- Basic
- Digest
- Form-based.
- NTLM.
9

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


- Negotiate.
- Client-side.
- Microsoft Passport.
Kiểu tấn công này không dựa vào lỗ hổng an ninh trên hệ điều hành và
phần mềm của server. Nó phụ thuộc vào mức độ an ninh và phức tạp của
password đƣợc lƣu trữ và mức độ khó khăn để cho attacker có thể tiếp cận
đƣợc server. Khi 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.
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.
10

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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
11

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


(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ữ
12

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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.
13


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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ó
14


Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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.
15

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
đề sau:
+ Kết nối bên ngoài bao gồm các thiết bị định tuyến kết nối ADSL,
Lease-line… cùng các thiết bị cân bằng tải.
+ Kết nối bảo mật: Các thiết bị tƣờng lửa (Firewall), các hệ thống phòng
chống tấn công IDS/IPS và phần mềm giám sát hệ thống.
+ Các Web Server cài đặt hệ điều hành Windows, Linux… và các giải
pháp phòng chống virus, chống thƣ rác (spam mail)
16

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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.

17

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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
18

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


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.
19

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


- 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








20

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
21

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

đ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.
Giao thức bắt tay SSL
Giao thức bắt tay SSL làm nhiệm vụ khởi tạo một phiên SSL và thiết lập
kết nối. Có hai kiểu kết nối SSL đƣợc sử dụng:
1. Kiểu kết nối có xác thực máy chủ và không xác thực máy khách (đây
22

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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
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.
2
Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các
tuỳ chọn SSL.
3
Máy chủ gửi thông điệp Certificate để máy khách xác thực.
4
Máy chủ kết thúc phiên thƣơng lƣợng của nó với thông điệp
ServerHelloDone gửi cho máy khách
5
Máy khách cung cấp thông tin tạo khoá phiên qua thông điệp
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.
8
Máy chủ gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ bảo mật.
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.
23

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên

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.
2
Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các
tuỳ chọn cho phiên SSL.
3
Máy chủ gửi thông điệp Certificate để máy khách xác thực.
4
Máy chủ gửi tiếp thông điệp CertificateRequest để yêu cầu xác thực máy
khách
5
Máy chủ kết thúc phiên thƣơng lƣợng của nó với thông điệp
ServerHelloDone gửi cho máy khách
6
Máy khách gửi thông điệp Certificate để máy chủ xác thực.
7
Máy khách gửi tiếp thông điệp CertificateVerify phục vụ cho việc xác
thực
8
Máy khách cung cấp thông tin để tạo khoá phiên qua thông điệp
ClientKeyExChange.
9
Máy khách gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ
bảo mật.
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.
12
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.
24

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên


Hình 2.2 Sơ đồ quá trình bắt tay SSL
Xác thực trong giao thức SSL.
Giao thức SSL sử dụng chứng chỉ số vào việc xác thực các bên tham gia
giao tiếp. Hai kiểu xác thực đƣợc hỗ trợ trong phiên bản SSL 3.0 là xác thực
máy chủ và xác thực máy khách.
Xác thực máy chủ
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.
25

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên



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,

×