Tải bản đầy đủ

Nghiên cứu giải pháp bảo vệ web server dựa trên reverse proxy

1

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 số
ứ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ệ


2

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.


3

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


4

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


5

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ạn 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 bạn 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 ta đề cập đến dịch vụ Web Server. IIS Web Server
đá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,


6

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.


7

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.


8

- 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 “multifactor 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.


9

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


10

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


11

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.


12

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ó


13

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.


14

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


15

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.


16

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


17

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.


18

- 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


19

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


20

đ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


21

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ỳ
2

chọn cho phiên SSL.
Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các

3
4

tuỳ chọn SSL.
Máy chủ gửi thông điệp Certificate để máy khách xác thực.
Máy chủ kết thúc phiên thương lượng của nó với thông điệp

5

ServerHelloDone gửi cho máy khách
Máy khách cung cấp thông tin tạo khoá phiên qua thông điệp

6

ClientKeyExChange.
Máy khách gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ

7

bảo mật.
Máy khách gửi thông điệp Finished để máy chủ kiểm tra tính toàn

8
9

vẹn của các thông điệp đã gửi.
Máy chủ gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ bảo mật.
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.
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.


22

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ỳ
2

chọn cho phiên SSL.
Máy chủ trả lời máy khách bằng thông điệp ServerHello đáp ứng các

3
4

tuỳ chọn cho phiên SSL.
Máy chủ gửi thông điệp Certificate để máy khách xác thực.
Máy chủ gửi tiếp thông điệp CertificateRequest để yêu cầu xác thực máy

5

khách
Máy chủ kết thúc phiên thương lượng của nó với thông điệp

6
7

ServerHelloDone gửi cho máy khách
Máy khách gửi thông điệp Certificate để máy chủ xác thực.
Máy khách gửi tiếp thông điệp CertificateVerify phục vụ cho việc xác

8

thực
Máy khách cung cấp thông tin để tạo khoá phiên qua thông điệp

9

ClientKeyExChange.
Máy khách gửi thông điệp ChangeCipherSpec để kích hoạt dịch vụ

10

bảo mật.
Máy khách gửi thông điệp Finished máy chủ kiểm tra tính toàn vẹn

11

của các thông điệp đã gửi.
Máy chủ gửi thông điệp ChangeCipherSpec để kích hoạt các dịch vụ

12

bảo mật.
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

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.


24

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,


25

đó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.


Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×