1
Khoa Mạng máy tính và truyền thông
Trường Đại học Công Nghệ Thông
Tin
Ứng Dụng Truyền Thông Và An Ninh Thông Tin
Designing Firewalls
Designing Firewalls
2
Giảng Viên Hướng Dẫn : ThS. NCS. Tô Nguyễn Nhật Quang
Nhóm 2 :
• 08520435 Nguyễn Thành Trung
• 08520530 Trương Thị Thùy Duyên
• 08520292 Phạm Phú Phúc
• 08520548 Lê Kim Hùng
Contents
3
1. Các thành phần của Firewall
Những quan niệm về bảo mật mạng ngày nay rất đa dạng và những đề tài thách thức được
thảo luận. Có nhiều khu vực khác nhau của các loại kiến trúc mạng được quan tâm, nó bắt
đầu từ những thông báo hệ thống để cơ sở dữ liệu, từ tập tin đến in ra các giải pháp để
truy nhập mạng từ xa.
Nó không bắt đầu chưa lâu mà bảo mật và bảo vệ mạng là tài sản căn bản được làm làm
rõ lĩnh vực của kỹ sư mạng, đó là người có sự hiểu biết về công nghệ, kỹ năng cao và
thường chăm chỉ để nói và hiểu các vấn đề nếu bạn không phải là một kỹ sư mạng.
Những thử thách mà người kỹ sư mạng phải đối mặt đó là khả năng truy nhập, bảo vệ tài
sản và giảm thiểu nguy cơ không an toàn, không có sự thay đổi cho tất cả và tại cùng một
thời điểm, công nghệ được sử dụng địa chỉ cấp phát trải qua sự biến đổi trong cả một khu
vực phức tạp. Chie cần nhìn vào duy nhất một khu vực mở rộng trong khu vực tường lửa
để thấy cụ thể làm thế nào để biến đổi một cách trực tiếp, và tác động sâu để hệ thống bảo
mật mạng và trên khả năng nhận biết của người dùng về bảo mật và cả người cung cấp
nó.
Sau đây là một ví dụ đơn giản về Firewall
Tường lửa nằm ở một vị trí hợp lý đó là nằm giữa mạng nội bộ và mạng Wan. Tưởng lửa
ở đó để thực hiện mục đích của nó chính là cấm và cho phép các kết nối trên các luật mà
được người quả trị tạo ra và đăng ký trên thiết bị.
Ở những năm trước, những tùy chọn được cung cấp để dễ dàng cho phép hay cấm các
truy nhập một các đặc trưng đủ để cung cấp bảo mật và bảo vệ ở mức độ cơ bản là hầu
hết nếu không phải là tất cả mạng của chúng ta. Thách thức được đặt ra là làm sao xây
dựng được một hệ thống vững chắc dựa trên các mối quan hệ để cung cấp những yếu tố
bảo mật cơ bản, hacker và kẻ phá hoại đã ngồi lại và bàn cách làm sao có thể phá vỡ được
4
hệ thống tường lữa. và kết qua là nhiều chi tiết mới được thêm vào để tường lữa trở thành
một phần không thể thiếu của bảo mật mạng để bảo vệ mạng từ những truy nhập trái phép
và không mong muốn từ mạng trong các trường hợp cụ thể.
Ngoài việc cấm và cho phép các truy nhập, ngày nay trong một tường lữa còn cũng cấp
các dịch vụ sau:
- NAT: được dùng bởi router để có thể dich một địa chỉ nội bộ thành một địa chỉ bên
ngoài
- Bắt dữ liệu: tùy chọn này cho phép router lưu trử dữ liệu được cho phép bởi các
người dùng mạng.
- Hạn chế trên nội dung: Tùy chọn này có giá trị trên những hệ thống mới. Cho phép
người quản trị hạn chế truy nhập nội dung internet bằng cách sử dụng từ khóa.
2. Các phương thức của tường lửa:
Tường lửa có 2 phương thức chính dùng để thực hiện bảo mật bên trong một mạng. Mặc
dù có nhiều biến thể xong chúng vẫn xoay quanh 2 loại chính đó là :
• Lọc gói tin
• Máy chủ proxy hay các cổng chương trình.
Lọc gói tin là loại đầu tiên của tường lữa được sử dụng trong nhiều hệ thống để bảo vệ
mạng. Nó có nhiều phương thức phổ biến được thực thi để bắt một gói tin sử dụng router.
Nhiều router có khả năng cho phép hay cấm các gói tin dựa trên các luật mà người quản
trị đặt ra.
Mặc dù có nhiều loại tường lửa thực hiện chức năng lọc, chúng bị giới hạn bởi chúng chỉ
được thiết kế để phân tích tiêu đề của gói tin. Ví dụ chúng ta có thể cấm FTP nhưng
chúng ta chỉ cấm lệnh PUT trong FTP.
Thêm vào máy chủ proxy giúm cho tường lửa có khả năng tạo ra nhiều cơ sở bảo mật hơn
là sử dụng lọc gói tin chính thống. Phần mềm proxy được sử dụng để tạo ra để có thể
phân tích nhiều hơn các tiêu đề của gói tin.
Proxy servers sử dụng phần mềm để chặn đứng các truyền thông trên mạng mà được định
trù từ trước. Chương trình có thể nhận ra các yêu cầu và đại diện cho người dùng tạo ra
các yêu cầu để gửi cho máy chủ. Trong trường hợp này một người dùng bên trong không
thể có một kết nối trực tiếp đến môt máy chủ ở bên ngoài, thay vì một kết nối trực tiếp,
một cấu trúc proxy giống như man-in-middle giúp tạo ra một kết nối giữa người dùng mà
máy chủ này.
Thuận lợi chính trong việc sử dụng phần mềm proxy là có thể thực hiện cho phép hay
cấm sự giao tiếp dựa trên dữ liệu thật sự của gói tin, chứ không chỉ header. Trong những
công việc khác thì proxy giúp nhận ra những phương thức giao tiếp, và sẻ phản ứng lại,
không chỉ là đóng mở các cổng theo sự chỉ đạo.
3. Tường lửa có thể làm gì
5
Vì thế nếu một tường lữa có thể dùng để lọc gói tin, máy chủ proxy, một sự kết hợp cả
hai hay tùy chọn lọc được tạo ra môi trường an toàn cho dữ liệu của bạn.
Một cách không may, giống như những trường hợp thông thường, đây là phạm vi của
việc hợp nhất, không có những cuộc trao đổi khác tại nơi mà sẽ có sự cho phép của người
quản lý mạng để thu được những hiểu biết tốt hơn về những nguyên nhân phía sau cần
cho một tường lửa. Và những tiêu chí cho nơi đặt tường lửa bên trong một mô hình mạng
để có được sự phục vụ tốt nhất.
Trong những mối quan hệ của người quản trị mạng chúng ta và những băn khoăn về việc
mua một thiết bị mà sẻ làm một lượng lớn công việc, tất cả hay hầu hết những thức đó, có
hoặc không có sự bảo mật mạng được thiết lập trong câu hỏi. Nó sẽ giúp cho chúng ta
tóm tắc được việc tường lửa không thế làm gì, vì thế chúng ta có thể bắt đầu hiểu những
gì chúng có thể làm.
Một vài khu vực nơi mà tường lửa sẽ khó khan trong việc bảo mật mạng theo các dạng
sau:
- Virus: Một vài tường lửa có thể có khả năng phát hiện virus, tuy nhiên kể tấn công
có thể đóng gói virus vào trong nhiều dạng và tường lửa không được thể kế giống
như hệ thông diệt vurus, Vì thế tường lửa có thể phát hiện ra virus nhưng chúng ta
vẫn cần một hệ thống diệt vurus.
- Sự lạm dụng của người làm công: Đây là một điểm khó, nhưng là điểm có giá trị.
Những người làm công thường làm những việc vô thức. Họ có thể quên địa chỉ
mail hay chạy các chương trình không an toàn từ bạn bè.
- Kết nối phụ: Nếu người dùng có một modems trong máy của họ thì họ có thể sử
dụng các kết nối không dây, họ có thể tạo ra một kết nối internet cho riêng minh.
Những kết nối này không được bảo vệ bởi tường lửa. Nếu bật chế độ chia sẻ tập
tin và máy in, nó sẽ đem lại những kết quả nguy hiểm. Trong khi tường lửa được
cấu hình một cách đúng đắng.
- Lừa đảo trong xã hội: Hình thức này thì không thể tránh khỏi nếu người quản lý
làm lộ thông tin về tường lửa.
- Kiến trúc thấp: Nếu không có một thiết kế kỹ cho tường lửa, nó sẽ trở nên rất khó
khăn có thể là không thể cấu hình tường lửa theo đúng để bảo đảm sự an toàn cần
thiết phòng ngừa bên trong mạng trong một thời gian dài.
4. Thi hành các chính sách cho tường lửa:
Không có một loại tường lửa nào được coi là tiêu chuẩn bên trong một mạng. Những nội
dung đề cập ở dưới đây trình bày nhiều loại tường lửa được phát triển khác nhau:
a. Một thiết bị lọc gói tin:
Hình mô tả dưới đây là một mạng được bảo vệ bởi 1 thiết bị được cấu hình như
6
một bộ lọc gói tin, cho phép hay cấm các truy cập dựa trên tiêu đề của gói tin.
b. Thiết bị “Multi-home”:
Mạng được bảo vệ bởi một thiết bị có kết cấu gồm nhiều card mạng, trên đó sẽ cài
phần mềm proxy, phần mềm này sẽ điều chỉnh các gói tin đi theo các hướng xác
định:
c. Một Screened Host:
Giống như hình ở dưới đây, một mạng được bảo vệ bởi sự kết hợp của các cấu trúc
của máy chủ proxy và cấu trúc lọc gói tin. Bộ lọc gói tin cho phép vào bên trong
nếu nó lưu thông qua máy chủ proxy. Nếu một người dùng giao tiếp trực tiếp với
bộ lọc proxy thì dữ liệu sẽ bị từ chối.
7
d. Miền phi quân sự:
Trong hình mô phỏng dưới đây, một mạng được chỉ định là một “zone” hay một
miền, nó được tạo ra để cho đặt máy chủ, cần được cho phép để vào internet và cả
các người dùng bên trong. Đây là một vùng đặc biệt, nó yêu cầu 2 thiết bị lọc, và
có thể có nhiều máy tồn tại bên trong đường biên giới.
5. Xây dựng một chính sách tường lửa
Trước khi tiến hành cấu hình ta cần phải có một Firewall Policy (Chính sách về tường
lửa). Để tránh trường hợp lựa chọn và cài đặt Firewall không chính xác, hiệu quả.
8
Một tường được thiết kế và triển khai một cách chính xác, phải dựa trên một chính sách
cụ thể. Đó là một phần trong chính sách bảo mật tổng thể của tổ chức sử dụng firewall đó.
Thường firewall policy thực hiện theo hai hướng sau :
- Từ chối tất cả, chỉ cho phép những lưu thông hợp lệ.
- Cho phép tất cả, cấm những lưu thông không hợp lệ.
Công việc này là một phần của việc quản trị và bảo mật mạng, ví dụ : tạo một danh sách
các cổng mà trojan, các ứng dụng mà người dùng không đươc phép sử dụng … sau đó tạo
ra các chính sách để chặn chúng. Ngược lại sẽ cho phép những lưu thông hợp lệ.
Có nhiều thành phần khác nhau trong chính sách bảo mật, phổ biến như :
- Acceptable Usage Statement
- Network Connection Statement
- Contracted Worker Statement
- Firewall Administrator Statement.
Sau khi xây dựng chính sách bảo mật tổng thể, nó sẽ bao gồm nhiều vấn đề khác nhau
nên khối lượng thông tin sẽ rất lớn.Từ những thông tin đó, ta sẽ trích dẫn những thông tin
riêng biệt để xây dựng chính sách cho tường lửa.
a. The Acceptable Use Statement
Thực hiện cần có sự thống nhất của tổ chức để miêu tả chi tiết cách thực một máy tính
hoạt động trong mạng, việc này tương đối khó khăn đối với một số tổ chức.Cần phải
đạt được sự cân bằng để duy trì an ninh một cách chặt chẽ và đảm bảo cho nhân viên
có đủ khả năng thực hiện tốt công việc của họ.
Máy tính là thiết bị thường bị sử dụng sai mục đích nhất trong hệ thống. Người sử dụ
thường cố gắng thoát khỏi sự kiểm soát của các chính sách bảo mật.
Một số điểm cần lưu ý trong thành phần này là :
- Các ứng dụng không được phép cài đặt.(Từ những nguồn như internet, CD,
USB, đĩa mềm ).
- Việc sao lưu ứng dụng được cài đặt tại một máy tính của tổ chức. (cho phép /
không do tổ chức đó quyết định )
- Việc sử dụng tài khoản tại các máy tính, khi không có người sử dụng, máy phải
ở trong trạng thái khóa và có chế độ bảo vệ mật khẩu
- Máy tính và các ứng dụng cài đặt trên nó chỉ liên quan đến hoạt động của tổ
chức đó. Không được phép sử dụng để đe dọa hay quấy rối bất cứ cá nhân nào.
- Các dịch vụ email được phép sự dụng.
9
Chúng ta xem xét những vấn đề trên để xem có hoặc không thể áp đặt chúng trên
tường lửa. Một số như việc cài đặt ứng dụng, đe dọa đến cá nhân không thể thực thi
trên tường lửa nhưng chúng sẽ có ích trong chính sách bảo mật tổng thể.
b. The Network Connection Statement
Phần này của chính sách liên quan đến các loại thiết bị được cấp kết nối vào
mạng. Đây là nơi bạn có thể xác định các vấn đề liên quan đến việc vận hành hệ
thống mạng, các thiết bị sử dụng mạng, và việc các thiết bị được cấu hình cho phép
sử dụng mạng một cách an toàn như thế nào.
Phần này được thi hành trên tường lửa nhiều nhất, xác định lưu lượng thực tế của
mạng. Một số thành phần cần chú ý :
- Chỉ quản trị viên mới có quyền thực hiện quét mạng.
- Người dùng có thể truy cập vào các trang site FTP để upload và
download các tập tin cần thiết, nhưng máy tính nội bộ có thể sẽ không cài đặt
FTP server.
- Người dùng có thể truy cập WWW trên cổng 80 và Email trên cổng 25. Nhưng
không thể truy cập NNTP trên mọi cổng.
- Người sử dụng subnet 10.0.10.0 được phép sử dụng SSH cho việc quản trị từ
xa và ngược lại.
- Người dùng có thể không được chạy bất kỳ phần mềm chat Internet nào.
- Không được download file lớn hơn 5Mb
- Phần mềm Anti-virus phải được cài đặt, hoạt động tốt, cập nhật thường xuyên
hàng tuần trên máy trạm và cập nhật hằng ngày trên server.
- Chỉ có quản trị viên mới được phép cài đặt phần cứng mới trên máy tính (Bao
gồm cả NIC và modem)
- Không cho phép những kết nối trái phép ra internet dưới bất kỳ hình thức nào.
Trong phần này nhựng kỹ thuật cho phép các cổng, subnet hay các máy tính trong
mạng. Những vấn đề này có thể được thực thi trên tường lửa
c. The Contracted Worker Statement
Phần này thường bị bỏ qua. Đó là các chính sách phải giải quyết các vấn đề của người
lao động theo hợp đồng, hoặc chỉ là tạm thời. Những cá nhân có thể chỉ yêu cầu truy
cập thường xuyên đển các tài nguyên trên mạng.
Một số vấn đề cần chú ý là :
10
- Không có những người sử dụng tạm thời, hoặc theo hợp đồng không được phép
truy cập trái phép đến các tài nguyên, hay thực hiện quét mạng, copy dữ liệu từ
máy tính ra bất kỳ thiết bị nào khác.
- Không được sử dụng FTP, telnet, SSH cho khi chưa được sự cho phép dựa trên
văn bản.
d. The Firewall Administrator Statement
- Firewall administrator phải được chứng nhận bởi các nhà cung cấp firewall.
- Phải có chứng chỉ SCNA
- Phải nắm rõ các ứng dụng được cài đặt trên các máy tính trong mạng.
- Phải báo cáo trực tiếp với trưởng bộ phận bảo mật.
- Phải luôn trong tư thế sẵn sàng 24/24
Những vấn đề liệt kê ở đây sẽ có ích trong việc soạn ra chính sách cho firewall. Ngoài ra
cách chính sách về Firewall cần phải được thay đổi thường xuyên cho phụ hợp với an ninh
thế giới.
6. Packet Filter và việc thiết lập tập các quy tắc trong Packet Filter
6.1. Tổng quan về Packet Filter
Thiết lập được một chính sách bảo mật chặt chẽ là một trong những điểm quan trọng
trong việc hình thành hệ thống firewall hoàn chỉnh. Tuy nhiên, bên cạnh đó người
quản trị còn phải nắm được các kiểu firewall hiện nay cũng như tác động của chúng
tới hệ thống mạng cần bảo vệ. Phần tiếp theo sẽ đi vào chi tiết một kiểu firewall đã có
từ rất sớm và hiện tại vẫn là thành phần cơ bản nhất của hệ thống firewall, đó là
Packet Filter.
Packet Filter là kiểu firewall đầu tiên được sử dụng để bảo vệ mạng nội bộ. Thông
thường (và cho đến tận bây giờ), Packet Filterđược cài đặt sẵn trên các router và thực
thi dưới dạng access control list.
Packet Filter sử dụng một tập các quy tắc để quyết định xem gói tin nào được phép
cho qua, gói tin nào bị cấm. Quy tắc này được xây dựng dựa trên các thông tin trong
phần header của gói tin. Packet Filterkhông kiểm tra phần payload sinh ra từ lớp ứng
dụng.
11
Router trở thành điểm truy nhập vào mạng và là nơi Packet Filterthực thi chức năng
của nó. Cũng vì vậy mà chức năng của Packet Filtertrên mỗi router sẽ được thiết kế
khác nhau, tùy thuộc vào vị trí của router đó trong hệ thống mạng.
Hình: Ví dụ về vị trí của Packet Filtertrong hệ thống mạng.
Ở ví dụ đầu tiên, chỉ có duy nhất một thiết bị đóng vai trò là Packet Filtercho mạng
này. Việc bảo mật phụ thuộc hoàn toàn vào các quy tắc của Packet Filtertrên thiết bị
này, do đó nó cần được cấu hình thật chặt chẽ.
Ở ví dụ thứ hai, Packet Filtercần được cấu hình sao cho mạng ngoài và mạng nội bộ
không được kết nối trực tiếp với nhau. Các phiên giao tiếp cần thiết được thực hiện
qua Proxy Server.
Ở ví dụ thứ ba, vùng DMZ được thiết lập. Ta có 2 thiết bị đóng vai trò Packet
Filtervà chúng sẽ được cấu hình khác nhau. Thiết bị có kết nối trực tiếp ra mạng
ngoài cần đảm bảo mạng ngoài chỉ có thể thực hiện kết nối tới các proxe server trong
12
DMZ, không vào được mạng nội bộ. Tương tự, thiết bị kết nối trực tiếp với mạng nội
bộ kiểm soát các kết nối từ mạng nội bộ, không cho phép ra mạng ngoài.
6.2. Các quy tắc trong Packet Filter
6.2.1. Các vấn đề cần quan tâm
Packet Filterhoạt động dựa trên các quy tắc. Các quy tắc này được đưa ra đảm
bảo thực thi đúng mục đích của chính sách ban đầu.
Một vài vấn đề cần quan tâm khi thiết lập tập các quy tắc:
- Mạng nội bộ được truy cập dịch vụ nào trên internet?
- Internet được truy cập vào dịch vụ nào của mạng nội bộ?
- Máy nào được quyền truy cập đặc biệt nào đó, mà máy khác không có?
Mặc dù mỗi thiết bị có các cách khác nhau để thực thi các quy tắc này, nhưng
thường vẫn phải quan tâm đến các vấn đề sau:
- Bộ luật được đặt tại interface nào? Là interface kết nối tới mạng nội bộ, hay
interface kết nối tới mạng ngoài?
- Hướng của gói tin. Bộ luật thực thi trên các gói tin đi vào interface đó, hay là
đi ra?
- Địa chỉ. Luật này được thiết lập dựa trên ip nguồn, ip đích, hay cả hai?
- Số hiệu cổng (port)
- Các giao thức tầng cao hơn. Bộ luật có được thiết lập dựa trên giao thức sử
dụng IP, như UDP? TCP?
6.2.2. Port, Socket và ACK bit
Trước khi đi vào việc thiết lập các luật như thê nào, ta lướt qua lại các khái
niệm TCP/IP, port, socket.
Địa chỉ IP đại diện cho máy trong phiên làm việc, port đại diện cho điểm đến
thực sự của giao tiếp, tức ứng dụng cụ thể. Socket bao gồm một ip đi kèm với
một port.
13
Port nhỏ hơn 1023 được sử dụng cho các ứng dụng phổ biến. Port lớn hơn
1023 được sử dụng cho host khi thực hiện kết nối.
Ví dụ trên: client gởi yêu cầu request tới website sẽ gởi gói tin với port đích là
80, port nguồn được máy random, ở đây là 2157. Web server khi trả lời cho
client sẽ sử dụng 2157 làm port đích.
Bây giờ, giả sử ta thiết lập tập quy tắc sao cho mạng nội bộ truy cập đến web
pages trên internet và miền DMZ, internet có thể truy cập đến dịch vụ web trên
web server, còn lại các dịch vụ khác không được phép truy cập ra internet.
Ta thấy,
rule 1 cho phép các kết nối từ bên ngoài vào mạng bên trong với port đích là
80, tức dịch vụ web. Để có thể trả về yêu cầu web, rule 2 cho phép mạng bên
14
trong đi ra ngoài với port đích > 1024. Tương tự cho rule 3 và 4 cho phép truy
cập web từ mạng nội bộ ra ngoài internet. Nhìn sơ qua có vẻ như tập luật này
thực hiện đúng yêu cầu ban đầu, tuy nhiên nó có những lỗ hổng rất lớn:
firewall cho phép tất cả các kết nối từ bên ngoài vào mạng bên trong với port
đích > 1023. Như vậy một chương trình Trojan đơn giản cũng có thể phá hủy
mạng.
Để tăng cường bảo mật, ta sử dụng thêm thông tin về port nguồn.
Một tùy chọn khác có thể được sử dụng để tăng độ bảo mật, đó là ACK bits.
Trong quy trình bắt tay 3 bước, bước thứ nhất gởi yêu cầu request, chỉ mình cờ
SYN được bật, bit ACK = 0. Nhưng từ bước thứ 2, khi hồi đáp lại request trước
đó, bit ACK sẽ được set = 1. Firewall có thể sử dụng yếu tố này để đảm bảo gói
tin là sự hồi âm từ một kết nối xuất phát từ mạng nội bộ. Lúc này rule4 có thể
được sửa như sau để đảm bảo an toàn hơn cho hệ thống:
Th
eo đó, chỉ những gói tin trả lời cho kết nối xuất phát từ mạng nội bộ có port
nguồn 80 mới được đi qua Packet Filter.
6.2.3. Tính nhất quán, trọn vẹn và súc tích của tập quy tắc
Thiết kế tập quy tắc cho Packet Filtercần đảm bảo 3 yếu tố sau: tính nhất quán,
tính trọn vẹn, và tính súc tích. Tính nhất quán đảm bảo không có sự mâu thuẫn
giữa các quy tắc với nhau. Tính trọn vẹn đảm bảo tập quy tắc đã liệt kê hết các
trường hợp có thể xảy ra. Và tính súc tích đảm bảo sự ngắn gọn và không bị
trùng lấp của tập quy tắc. Ba tính chất này sẽ được giải thích trong ví dụ sau:
15
Ở mô hình trên, Packet Filterđược đặt trên Gateway Router nối mạng nội bộ và
mạng Internet. Bộ quy tắc trên được thiết kế nhằm cho phép mạng ngoài truy
cập vào dịch vụ Mail trên Mail Server. Mạng bên trong được phép kết nối tới
mạng bên ngoài. Và cấm các kết nối xuất phát từ các host được cho là nguy
hiểm từ Internet.
Tính nhất quán: Ta xét quy tắc thứ 2. Mục đích của nó là hủy tất cả các gói tin
xuất phát từ các host không đáng tin cậy ngoài Internet. Tuy nhiên, vì r
2
được
đặt sau r
1
nên các gói tin xuất phát từ các host không đáng tin cậy, nhưng sử
dụng dịch vụ SMTP, thì lại được cho qua. Tập quy tắc này không đạt được tính
nhất quán.
Tính trọn vẹn: ở tập quy tắc trên, với quy tắc r
4
, các gói tin nếu không trùng với
các trường hợp phía trên, sẽ được cho qua. Như vậy tập quy tắc này sẽ chấp
nhận các gói tin không phải là mail, tới Mail Server, và các gói tin mail, tới các
host thông thường. Đây có thể là một lỗ hổng bị khai thác bởi các attacker, do
đó các luồng giao tiếp này cần bị cấm. Ta có thể thêm vào sau quy tắc r
1
hai
quy tắc sau:
(a) ( I =0) ^(S = any ) ^(D = Mail Server )^ (N = any ) ^(P = any ) -> discard
(b) ( I =0) ^(S = any ) ^(D = any ) ^(N = 25)^( P = tcp) -> discard
16
Tính súc tích: Một quy tắc được coi là thừa khi bỏ quy tắc đó thì không ảnh
hưởng gì tới hoạt động của Packet Filter. Trong ví dụ này, quy tắc r
3
là một quy
tắc thừa, vì gói tin thỏa mãn r
3
thì cũng sẽ thỏa mãn r
4
, mà r
3
và r
4
lại có cùng
cách xử lý như nhau.
Như vậy ta thấy, nếu không đảm bảo được tính nhất quán và tính trọn vẹn,
firewall ta xây dựng sẽ bị lỗi. Attacker có thể dựa vào lỗ hổng này để tấn công
hệ thống mạng của ta. Trong khi đó, nếu vi phạm tính súc tích sẽ khiến hiệu
năng hoạt động của firewall giảm sút.
6.3. Các kiểu Packet Filter
6.3.1. Stateless Packet Filter
Stateless Packet Filter, hay còn được gọi là Standard Packet Filter, thường
được đặt tại router biên, thi hành theo một tập lệnh được cấu hình từ trước.
Stateless Packet Filterxử lý các gói tin một cách độc lập với nhau dựa vào
thông tin trên header của các giao thức. Tùy vào mỗi chương trình sẽ có các
thông tin khác nhau được sử dụng, tuy nhiên có thể tóm gọn lại thành một số
trường thường dùng như sau:
Ip address filtering:
Là hình thức lâu đời nhất của packet filtering, chỉ sử dụng địa chỉ ip để đưa ra
quyết định cấm/ cho phép một traffic.
Như ta đã biết, có hai cách thiết kế một tập quy tắc. Hoặc là từ chối tất cả, chỉ
cho phép những kết nối được liệt kê. Hoặc là mặc định chấp nhận tất cả, chỉ
cấm những quy tắc được nêu ra. Với số lượng lớn địa chỉ IP, nếu thiết kế theo
kiểu mặc định chấp nhận tập quy tắc sẽ rất dài, tăng khả năng lỗi và không phù
hợp với tổ chức lớn. Do đó phương pháp mặc định từ chối thường được sử
dụng. Nó giúp thực thi các quy tắc một cách dễ dàng hơn và gây khó khăn cho
kẻ tấn công. Kẻ tấn công buộc phải tìm hiểu, xác định các địa chỉ được cho
17
phép, từ đó có thể giả dạng địa chỉ của gói tin để vượt qua bộ lọc. Đặc biệt hiệu
quả đối với các kiểu tấn công không cần gói tin trả về, ví dụ như DoS.
TCP/UDP Port:
Giúp bảo mật tốt hơn, và cũng như với địa chỉ IP, sẽ dễ dàng quản lý hơn nếu
chỉ mở những port cần thiết và cấm tất cả các port còn lại.
Protocol Filter:
Trong trường hợp lọc thêm theo port vẫn chưa đảm bảo, ta có thể dùng đến
protocol filtering. Protocol filtering sẽ kiểm tra nội dung của header để xác
định giao thức được dùng ở tầng kế trên, từ đó cho phép gói tin đi qua hay
không. Một vài giao thức thường được kiểm tra:
• TCP
• UDP
• ICMP
• IGMP
Fragmentation:
Sự phân mảnh xảy ra khi một gói tin đi từ mạng này qua mạng kia có đơn vị
truyền tải tối đa (MTU) nhỏ hơn kích thước của gói tin. Chẳng hạn, các packet
di chuyển qua Ethernet không thể quá 1,518 bytes, như vậy, trọng tải tối đa của
IP layer phải ít hơn 1480 bytes. Tại điểm nhận cuối, các phân mảnh sẽ được
ghép lại thành gói tin ban đầu. Các phân mảnh có thể được chia nhỏ ra nữa nếu
chúng phải đi qua những mạng có MTU nhỏ hơn kích thước của phân mảnh.
18
Các trường cần quan tâm về fragmentation:
• Fragment ID: Đây cũng như số hiệu IP duy nhất của packet gốc, Tất cả
các đoạn phân mảnh còn lại cũng dùng chung ID này.
• Fragment offset : Mỗi đoạn đánh dấu chỗ của nó trong sự nối tiếp của
packet khi bị phân mảnh. Tại địa chỉ nhận, số này được sử dụng để ráp các
đoạn đúng thứ tự.
• Fragment length: Mỗi đoạn đều chứa 1 phần để mô tả toàn bộ chiều dài
của mình.
• More fragments flag: Cho biết đây có phải là phân mảnh cuối cùng
không.
Những nguy hại từ sự phân mảnh: khi packet filtering phân tích header của một
gói tin IP, nếu gói tin đã bị phân mảnh, Packet Filtersẽ dựa vào trường offset để
xác định đây có phải là fragment đầu tiên hay không (fragment đầu tiên có
offset bằng 0). Nếu là phân mảnh đầu tiên, gói tin sẽ được kiểm tra tính hợp lệ
19
dựa vào các quy tắc đã thiết lập của hệ thống. Nếu là những phân mảnh kế tiếp
thì sẽ được packet filtering cho qua. Sở dĩ như vậy là vì theo lý thuyết, nếu
thiếu fragment đầu tiên thì gói tin gốc ban đầu sẽ không thể sử dụng được. Tuy
nhiên, không phải lúc nào cũng vậy. Các attacker đã dựa vào lỗ hổng này để
“qua mặt” Packet Filtermột cách dễ dàng. Thực tế một số kiểu tấn công đã
được sử dụng thành công như:
• Tiny fragment attack: đây là dạng tấn công bằng cách chia thật nhỏ và
(thật khéo) IP packet ban đầu ra thành từng fragment rất nhỏ, sao cho một phần
thông tin của TCP header nằm trong IP packet ban đầu nằm trong fragment thứ
hai. Do Packet Filterchỉ kiểm tra fragment có offset = 0, và với bộ TCP header
đã bị chia ra như vậy, khả năng Packet Filterlọc sót ra rất lớn. Như vậy gói tin
dễ dàng đi qua Packet Filtervà được ghép lại hoàn chỉnh tại điểm nhận.
• Overlapping fragment attack: tại host destination, sau khi nhận đủ các
fragment từ một packet ban đầu (bằng cách nhìn vào field MF và tính tổng
cộng chiều dài của các fragment đã nhận được), công việc tái lập packet ban
đầu sẽ bắt đầu. Rất không may là thuật toán tái lập nằm trong RFC của IP hiện
tại cho phép các fragment có thể ghi đè lên nhau. Kẻ tấn công gửi fragment đầu
tiên (offset = 0) với đầy đủ thông tin hợp lệ để vượt qua static packet filter, sau
đó sẽ dùng các fragment tiếp theo (offset !=0, không bị kiểm tra bởi static
packet filter) để ghi đè lên vùng thông tin header của fragment đầu tiên.
Teardrop attack: chỉnh sửa trường offset của các phân mảnh. Khi offset +
length của packet 1 khác với offset của packet 2 thì overlapping xảy ra, có thể
khiến máy bị crash.
Giải pháp
• Thiết lập độ dài tối thiểu của fragment đầu tiên sao cho đảm bảo đầy đủ
thông tin cần thiết để kiểm tra.
20
• Cấm tất cả các gói tin phân mảnh.
• Cấu hình trên router buộc gói tin phải được ghép lại hoàn chỉnh trước
khi truyền.
6.3.2. Stateful Packet Inspection
Có thể nhận thấy rằng mặc dù đã rất nỗ lực nhưng Stateless Packet Filterđơn
giản và không đảm bảo độ bảo mật trong môi trường internet hiện nay.
Statefull Packet Filterhoạt động dựa trên các kĩ thuật tương tự như stateless
packet filter, tuy nhiên nó không thực thi trên từng gói tin một cách độc lập với
nhau, mà còn dựa vào trạng thái kết nối tại tầng Session để lọc các gói tin.
Thông tin này được lưu lại và sử dụng cho những lần kế tiếp.
Trong mô hình TCP/IP và mô hình OSI thì stateful firewall hoạt động từ lớp
Transport trở lên cho đến lớp Application. Tất cả các stateful firewall đều hoạt
động dựa vào một bộ luật đã được các nhà quản trị qui định khi cấu hình sao
cho phù hợp với nhu cầu của họ. Khi một stateful firewall nhận được một
packet, việc đầu tiên mà nó làm là nhìn vào state table của mình, có hai trường
hợp xảy ra:
Nếu stateful firewall tìm thấy một entry nằm trong state table của mình có
thông tin liên quan đến packet vừa nhận, thì ngay lập tức nó sẽ cho phép packet
đó đi qua mà không cần xem xét gì thêm.
Nếu stateful firewall không tìm thấy entry nào nằm trong state table của mình
có liên quan đến packet vừa nhận, thì lúc này, stateful firewall sẽ dựa vào bộ
luật của mình cùng với các thông tin của packet mà xem xét có cho phép
packet đó đi qua hay không. Nếu được cho phép, thì một entry miêu tả
connection mà packet này thuộc về sẽ được ghi vào state table của stateful
21
firewall. Nếu không được cho phép, stateful firewall sẽ ngay lập tức loại bỏ
packet này mà không thông báo gì lại cho phía bên gửi.
Ví dụ, một client trong mạng nội bộ thiết lập một kết nối tới một máy nào đó
ngoài internet, nó sẽ thực hiện quá trình bắt tay 3 bước, mà cụ thể đầu tiên nó
sẽ gởi gói tin request với cờ SYN được bật. Nếu gói tin này hợp lệ, một entry
lưu thông tin về kết nối này sẽ được ghi lại trong state table. Khi bộ lọc nhận
được gói tin trả về, nó sẽ kiểm tra trong state table để chắc chắn rằng đây là gói
tin trả lời yêu cầu request kia. Giả sử gói tin là SYN/ACK, như vậy kết nối
được mở, các gói tin trao đổi về sau của kết nối đó sẽ chỉ cần được kiểm tra
trong state table và cho qua. Để đề phòng gói tin thiết lập kết nối được gởi đi
nhưng không nhận được gói tin trả lời, sau một khoảng thời gian nhất định
entry đó sẽ bị xóa đi, thường là trong khoảng vài phút. Điều này nhằm đảm bảo
hệ thống không tạo ra lỗ hổng bảo mật nào.
22
7. Proxy Server
Như bạn đã thấy, packet filter là một lựa chọn để bảo vệ mạng với tường lửa. Nhưng
chúng ta cũng yêu cầu giúp đỡ để tạo ra một môi trường an toàn hơn. Một trong những
cách để tăng cường an ninh là để thêm các dịch vụ của một proxy server.
Proxy server ban đầu thường được sử dụng để cache truy cập các trang web, tăng tốc
mạng và sử dụng Internet. Chúng được phát triển không chỉ để cache các trang web, mà
còn trở thành một phần an ninh của hệ thống mạng.
Packet filter hoạt động bằng cách kiểm tra các thông tin header và căn cứ quyết định trên
các quy tắc được xác định hoặc các polocies. Proxy hoạt động ở lớp application, và có thể
cung cấp các dịch vụ mạng. Proxy hoạt động như một loại gateway (đó là lý do tại sao nó
cũng được gọi là một cổng ứng dụng), cho tất cả các gói tin thông qua.
Khi một proxy được cấu hình và chạy trên mạng, không có giao tiếp trực tiếp giữa client
và server. Các packet filter cho phép giao tiếp trực tiếp này, trong khi các proxy chặn nó.
Một khác biệt đáng kể giữa packet filter và proxy sever là proxy hiểu các ứng dụng hoặc
dịch vụ được sử dụng, và packet filter không làm được. Proxy server sau đó có thể cho
phép hoặc từ chối truy cập, dựa trên thực tế chức năng mà người dùng đang cố gắng để
thực hiện.
7.1. Tiến trình Proxy
Trong ví dụ này, client đã yêu cầu một trang web, và xác định server có trang web.
Các yêu cầu cho trang web thông qua proxy server. Tại thời điểm này, proxy server
không hoạt động như một bộ định tuyến và chuyển tiếp gói tin. Những gì nó làm lấy
từ các điều luật liên quan đến dịch vụ này và quyết định nếu yêu cầu được cấp hay
không.
Một khi các proxy đã quyết định cho phép các yêu cầu, một gói tin mới là tạo với một
địa chỉ IP nguồn của proxy server. Gói tin mới này là yêu cầu cho các trang web từ
các sever đích. Các web server nhận được yêu cầu, và trả về trang web cho các máy
chủ yêu cầu. Trong khi các proxy đang chạy, các máy chủ yêu cầu là proxy server.
23
Khi proxy nhận được các trang web, nó sẽ kiểm tra điều luật của nó để xem trang này
là được phép. Một khi quyết định được thực hiện để proceed, proxy tạo một gói tin
mới với các trang web như là payload, và sẽ gửi đến client ban đầu.
Hình dưới đây là một minh hoạ của các chức năng cơ bản mà một proxy server có thể
làm được trong mạng. Chú ý các gói tin của client không bao giờ trực tiếp đến máy
chủ, và ngược lại.
Hình 4-12: Một WWW proxy đang chạy trên mạng.
Loại hình dịch vụ này có thể tăng tính bảo mật của mạng đáng kể, không có gói tin mà
truyền trực tiếp từ client đến server. Các dịch vụ proxy sẽ cần phải được cấu hình cho
từng loại dịch vụ được cho phép. Ví dụ, một proxy riêng biệt sẽ cần thiết cho SMTP,
WWW, FTP, Telnet, nếu tất cả các dịch vụ này sẽ được sử dụng.
Các máy chủ proxy cần phải được cấu hình để làm việc trong cả hai hướng, giống như
một packet filter. Đây là cách duy nhất để chắc chắn rằng không có gói tin vượt qua
được proxy server.
7.2. Lợi ích Proxy
Có rất nhiều lợi ích cho mạng, từ một điểm bảo mật, mà một proxy có thể cung cấp.
Danh sách các thuận lợi lớn, cung cấp được những lợi ích chính:
24
• Ẩn client.
• Lọc nội dung.
• Truy cập đơn điểm.
7.2.1. Ẩn client
Tiến trình proxy cơ bản làm nổi bật tính năng này. Khả năng có địa chỉ IP bên
trong của client không bao giờ xuất hiện trên Internet là một lợi ích lớn. Những
kẻ tấn công không biết cấu trúc nội bộ của mạng việc truy cập vào và tấn công
các client nội bộ mất thời gian hơn.
7.2.2. Lọc nội dung
Trong thời kỳ hiện đại, các doanh nghiệp có thể rất nhạy cảm với nhu cầu của
nhân viên. Điều này bao gồm tiếp xúc với bất kỳ tài liệu dễ bị tấn công, nhưng có
thể được ngăn chặn.
Bộ lọc nội dung có thể được lập trình cho kiểm tra nhiều loại. Chúng có thể được
lập trình để tìm kiếm các từ khóa hoặc cụm từ nhất định. Nhiều quản trị viên sử
dụng bộ lọc để chặn các trang web headhunter là chủ yếu và tiếp tục đăng tải các
trang web.
Các bộ lọc này cũng có thể được sử dụng để ngăn chặn điều khiển ActiveX được
download, Java Applet được chạy, hoặc thực thi được đính kèm vào email.
7.2.3. Truy nhập đơn điểm
Một trong những lợi ích đáng kể của proxy server là khả năng có một điểm duy
nhất để đăng nhập truyền tải dữ liệu. Khi tất cả lưu lượng đi qua một điểm duy
nhất, nó tương đối dễ dàng để tạo lại toàn bộ một phiên duyệt web cho người sử
dụng để xác định lỗi.
7.3. Các vấn đề Proxy
25