Tải bản đầy đủ
CÔNG NGHỆ TƯỜNG LỬA STATIC PACKET FILTERING

CÔNG NGHỆ TƯỜNG LỬA STATIC PACKET FILTERING

Tải bản đầy đủ

Hình 2. Tường lửa lọc gói tin trong mô hình OSI
Bởi vì TCP/IP là chuẩn giao tiếp trên thực tế của các giao thức trong các
mạng ngày nay, hầu hết các tường lửa lọc gói tin hỗ trợ giao thức này, ngoài ra
tường lửa lọc gói tin có thể hỗ trợ các giao thức khác như : IPX, AppleTalk,
DECnet và địa chỉ MAC lớp 2 và chuyển tiếp thông tin…
2.1.1. Hành động lọc gói tin - Filtering Actions
Khi thực hiện lọc gói tin, các quy tắc lọc gói tin được xác định trên tường
lửa, các quy tắc này được sử dụng phù hợp với nội dung gói tin để xác định lưu
lượng truy cập được cho phép hay bị từ chối. Khi lưu lượng bị từ chối, hai hành
động có thể được thực hiện: Thông báo cho người gửi lưu lượng truy cập dữ liệu
của họ đã bị từ chối hoặc loại bỏ các dữ liệu mà không cần bất kỳ thông báo
nào.Việc này có thể quan trọng khi triển khai thực hiện một giải pháp bảo mật
với tường lửa, với tùy chọn đầu tiên, người dùng biết rằng lưu lượng truy cập đã
được lọc bởi một bức tường lửa. Nếu đây là một người sử dụng nội bộ để truy cập
vào một nguồn tài nguyên nội bộ, người sử dụng có thể gọi các quản trị viên và
thảo luận về các vấn đề. Các quản trị viên sau đó có thể thay đổi các quy tắc lọc để
cho phép người dùng truy cập nếu người dùng có đặc quyền thích hợp. Nếu các
bức tường lửa lọc gói tin không gửi lại một tin nhắn, người sử dụng sẽ không biết
tại sao kết nối không được thiết lập và sẽ phải dành nhiều thời gian xử lý sự cố.

25

Tuy nhiên, nếu một hacker trên Internet đang cố gắng truy cập tài nguyên
nội bộ trong mạng và hacker sẽ gửi trở lại một thông điệp rằng thông tin đang
được lọc, điều này mang lại cho tin tặc thông tin và cách bảo vệ mạng nội bộ đó.
Trong trường hợp này có thể sẽ phải cần tới tường lửa chặn gói tin lặng lẽ ngăn
chặn các lưu lượng xâm nhập vào trong mạng. Ví dụ, có thể có một máy chủ web
nội bộ chạy trên cổng 80 của thiết bị, phải có một quy tắc lọc chặn lưu lượng truy
cập cổng 80 cho hầu hết các người dùng bên ngoài, ngoại trừ cho các địa điểm
văn phòng từ xa. Khi một hacker cố gắng để tiếp cận đến cổng 80 sử dụng
phương pháp quét cổng, nếu tường lửa lọc gói tin gửi lại một thông điệp rằng
cổng 80 đang được lọc, hacker sẽ biết rằng mạng đang sử dụng một thiết bị lọc để
bảo vệ tài nguyên nội bộ và sẽ dành nhiều thời gian điều tra phản ứng với các loại
các gói tin khác nhau và cố gằng vượt qua tường lửa này.

2.1.2. Thông tin lọc – Filtering information
Một bức tường lửa lọc gói tin có thể lọc trên các loại thông tin sau đây:
-

Địa chỉ nguôn và địa chỉ đích tầng 3
Thông tin giao thức tầng 3
Thông tin giao thức tầng 4
Giao diện lưu lượng gửi và nhận

Ví dụ, một bộ định tuyến Cisco có thể được sử dụng để lọc tin nhắn ICMP
(Layer 3), hoặc địa chỉ IP nguồn và đích (Layer 3) và số cổng TCP (Layer 4).
Bảng 2.1 Hiển thị một số trong những điều mà một giao thức TCP / IP
tường lửa lọc gói tin có thể lọc :
Tầng

Thông tin lọc được

3

Địa chỉ IP

3

Các giao thức TCP/IP như: IP, ICMP, OSPF, TCP, UDP...

3
4

Thông tin ưu tiên của địa chỉ IP (loại dịch vụ [ToS])
Số cổng TCP và UDP

26

4

Cờ điều khiển TCP như SYN, ACK, FIN, PSH, RSK và các cờ khác
Bảng 2.1 Thông tin lọc gói tin TCP/IP
Có thể sử dụng rất nhiều thông tin khi đưa ra quyết định lọc trên tường

lửa lọc gói tin. Ví dụ, kiểm tra các bảng lọc các bức tường lửa lọc gói tin (router,
trong ví dụ này) được sử dụng trong Hình 2.2. Bảng 2.1 cho thấy quy tắc lọc gói
tin của router. Giả rằng những quy định được kích hoạt trên giao diện WAN kết
nối với Internet như lưu lượng truy cập vào giao diện.

Hình 2. Ví dụ tường lửa lọc gói tin
Quy
tắc
1
2
3
4

Địa chỉ
nguồn
Any
Any
Any
Any

Địa chỉ đích

Giao thức

200.1.1.2
200.1.1.3
200.1.1.4
Địa chỉ khác

TCP
UDP
TCP
Any

Giao thức
IP
Cổng 80
Cổng 53
Cổng 25
Any

Bảng 2.2 Bảng lọc gói tin của Router

27

Hành
động
Cho phép
Cho phép
Cho phép
Loại bỏ

Trong ví dụ này, trạng thái quy tắc 1 quy định rằng nếu lưu lượng truy cập
từ bất kỳ thiết bị trên mạng Internet được gửi tới cổng TCP 80 : 200.1.1.2, các
bức tường lửa lọc gói tin sẽ cho phép nó qua. Tương tự như vậy, nếu lưu lượng
truy cập được gửi tới UDP port 53 : 200.1.1.3 hoặc TCP cổng 25 : 200.1.1.4 thì sẽ
được cho phép qua còn bất kỳ lưu lượng truy cập nào khác sẽ bị hủy bỏ.
Điều quan trọng chỉ ra rằng nếu bỏ qua quy tắc 4 có thể có vấn đề với một
bức tường lửa lọc gói tin. Một bức tường lửa lọc gói tin sẽ sảy ra một trong hai
trường hợp:
-

Nếu thỏa mãn bộ quy tắc thì cho phép lưu lượng truy cập đi qua
Nếu không thỏa mãn bộ quy tắc thì không cho lưu lượng truy cập đi
qua.

Ví dụ : Giả sử có một bức tường lửa lọc gói tin sử dụng quá trình đầu tiên,
nếu bỏ qua quy tắc 4 trong Bảng 2.2 và không có sự thỏa mãn trong các quy tắc 1
đến 3 thì tất cả lưu lượng khác sẽ được cho phép.
Nếu tường lửa lọc gói tin sử dụng quá trình thứ hai tức là bỏ qua quy tắc 4
trong Bảng 2.2 thì bất kỳ lưu lượng truy cập không phù hợp với ba quy tắc đầu
tiên sẽ bị loại bỏ (Cisco sử dụng quá trình này với các ACLs).
Hiểu biết về thiết lập các quy tắc của tường lửa lọc gói tin cũng như sự
hiểu biết các quy tắc được xử lý như thế nào là vô cùng quan trọng, cần phải rất
thận trọng khi tạo ra hoặc thay đổi các quy tắc: Một cấu hình sai lầm vô ý có thể
tạo ra một lỗ hổng bảo mật rất lớn trong bức tường lửa lọc gói tin.
Một điều quan trọng là làm thế nào các bộ lọc gói tin được kích hoạt trên
các bức tường lửa. Thông thường, chúng được kích hoạt trên một giao diện với
một hướng được chỉ định cho luồng lưu lượng. Ví dụ, một bức tường lửa lọc gói
tin có thể cho phép bạn lọc lưu lượng truy cập khi nó đi kèm một giao diện, bỏ lại
một giao diện hoặc cả hai. Nếu nó cho phép lọc theo cả hai hướng, điều này cho
phép ta linh hoạt hơn trong việc tạo ra bộ quy tắc: có thể hạn chế lưu lượng truy
cập vào mạng cũng như lưu lượng người dùng cố gắng rời khỏi nó. Thông

28

thường, quy tắc gửi ra bên ngoài cho người dùng lọc thông tin trên cả lớp 3 và
lớp 4. Khi thiết lập chính sách về truy cập Internet, trong nhiều tình huống một
cách đơn giản ở lớp 3 bộ lọc gói tin có thể được sử dụng để hạn chế quyền truy
cập vào Internet của người sử dụng nội bộ. Tất nhiên, luôn có thể áp dụng lọc lưu
lượng truy cập của người dùng ở lớp 4 để cụ thể về những gì họ được phép truy
cập vào các trang web và các ứng dụng.
2.1.3. Ưu điểm của tường lửa lọc gói tin ( Packet –Filtering
Firewalls)
Các bức tường lửa lọc gói tin có 2 ưu điểm chính :
-

Có thể xử lý các gói tin ở tốc độ rất nhanh
Có thể dễ dàng phù hợp với hầu hết các gói tin ở tầng 3 và đầu đoạn dữ
liệu ở tầng 4, cung cấp sự linh hoạt lớn trong việc thực hiện các chính
sách an ninh.

Bởi vì tường lửa lọc gói tin chỉ kiểm tra thông tin ở tầng 3 và (hoặc) tầng 4
nên nhiều sản phẩm định tuyến hỗ trợ loại lọc này bao gồm các thiết bị định
tuyến Cisco với việc sử dụng các ACLs tiêu chuẩn và mở rộng. Tùy thuộc vào mô
hình router mà có thể mở rộng bộ lọc với tốc độ rất cao.
Bởi vì bộ định tuyến thường ở vòng ngoài của mạng và cung cấp truy cập
mạng WAN và MAN nên có thể sử dụng bộ lọc gói tin để cung cấp một lớp bảo
mật bổ sung. Các router thường được gọi là vành đai hoặc router biên. Ngay cả
với các tầng đơn giản là tầng 3 và 4 thì tường lửa lọc gói tin có thể cung cấp sự
bảo vệ chống lại nhiều loại tấn công, bao gồm cả một số loại tấn công từ chối dịch
vụ (DoS) và có thể lọc ra lưu lượng truy cập không cần thiết, không mong muốn
tới mạng. Điều này cho phép một bức tường lửa nội bộ để đối phó với các loại mối
đe dọa và tấn công khác mà các bức tường lửa lọc gói tin không thể phát hiện
hoặc đối phó.
2.1.4. Nhược điểm của tường lửa lọc gói tin

29

Dù có những ưu điểm như trên song tường lửa lọc gói tin cũng có những
nhược điểm như sau:
-

Phức tạp trong việc cấu hình
Không thể ngăn chặn các cuộc tấn công ở lớp ứng dụng
Dễ bị ảnh hưởng bởi các cuộc tấn công trên giao thức TCP / IP.
Không hỗ trợ xác thực kết nối người dùng
Hạn chế khả năng đăng nhập.

Một trong những nhược điểm của bức tường lửa lọc gói tin liên quan đến
việc thiết lập và duy trì các bộ quy tắc. Đối TCP/IP, phải làm quen với những hoạt
động khác nhau của giao thức TCP/IP và các trường trong phần đầu bao gồm IP,
TCP, UDP, ICMP. Nếu không có kiến thức này, có thể vô tình chặn lưu lượng truy
cập mà có nghĩa vụ phải cho phép hoặc cho phép lưu lượng truy cập mà đáng lẽ
có nghĩa vụ phải ngăn chặn. Trong tình huống nào đó, nếu không cẩn thận trong
việc cấu hình có thể được tạo rất nhiều vấn đề phức tạp do đó bất kỳ thay đổi nào
phải được kiểm tra kỹ lưỡng để đảm bảo cấu hình đúng.
Tường lửa lọc gói tin không thể ngăn chặn tất cả các loại tấn công . Ví dụ,
có thể cho phép lưu lượng truy cập đến cổng 80 đến một máy chủ web cụ thể có
trong mạng. Bằng cách này, các bức tường lửa lọc gói sẽ kiểm tra địa chỉ đích
trong gói tin lớp 3 và số cổng đích trong phân đoạn mạng. Nếu phù hợp các bức
tường lửa lọc gói cho phép lưu lượng truy cập. Một vấn đề với cách tiếp cận này
là các bức tường lửa lọc gói tin không kiểm tra được các nội dung thực tế của các
kết nối HTTP. Một trong những phương pháp phổ biến nhất của hacking một
mạng là tận dụng các lỗ hổng được tìm thấy trong các máy chủ web. Một bức
tường lửa lọc gói tin không thể phát hiện các cuộc tấn công bởi vì chúng xuất
hiện trên các kết nối TCP đã được phép.
Ngoài ra, bộ tường lửa lọc gói tin không thể phát hiện và ngăn chặn một số
loại tấn công giao thức TCP / IP, chẳng hạn như việc gửi tràn TCP SYN và giả
mạo IP. Nếu một bức tường lửa lọc gói tin cho phép lưu lượng truy cập đến một
máy chủ web nội bộ. Một hacker có thể tận dụng lợi thế này và gửi tràn ngập các

30

máy chủ web với SYNs TCP đến cổng 80 để chiếm toàn bộ tài nguyên trên máy
chủ. Một ví dụ khác, một bức tường lửa lọc gói tin không thể phát hiện tất cả các
loại của các tấn công tấn công giả mạo IP. Nếu bạn cho phép lưu lượng truy cập
từ một mạng bên ngoài, chẳng hạn như 201.1.1.0/24, lọc gói tường lửa của bạn
chỉ có thể kiểm tra địa chỉ IP nguồn trong gói tin, nó không thể xác định xem đây
là nguồn thực (đích) của gói tin. Một hacker có thể tận dụng lợi thế này để thực
hiện một cuộc tấn công DoS chống lại mạng nội bộ bởi gửi liên tục các gói tin với
lưu lượng truy cập cho phép từ một nguồn cho phép.
Việc giả mạo IP và tấn công DoS thường có thể được xử lý bằng cách xác
thực lưu lượng truy cập đầu tiên trước khi cho phép qua tường lửa nhưng một
bức tường lửa lọc gói tin chỉ kiểm tra được thông tin ở lớp 3 và 4 và việc xác thực
đòi hỏi một bức tường lửa có thể xử lý thông tin xác thực ở lớp 7 (lớp ứng dụng).
Tường lửa lọc gói tin thường hỗ trợ chức năng đăng nhập nhưng chức
năng đăng nhập được giới hạn chỉ trong thông tin lớp 3 và 4. Nếu một người nào
đó đã thực hiện một cuộc tấn công máy chủ web trên cổng 80 và tường lửa lọc
gói tin đã từ chối lưu lượng truy cập cổng 80, tường lửa lọc gói có thể từ chối các
hành động đăng nhập nhưng không may, các bức tường lửa sẽ không đăng nhập
dữ liệu ở lớp ứng dụng gói gọn trong phân đoạn vận chuyển HTTP. Do đó quản trị
viên sẽ biết một người nào đó đã cố gắng để truy cập vào cổng 80 trên máy chủ
nhưng không biết những gì người đó đã làm.
Do những hạn chế trên nên các bức tường lửa lọc gói tin được sử dụng
trong các lĩnh vực sau đây:
-

Là dòng đầu tiên của vòng bảo vệ (tuyến vành đai)
Sử dụng trong các chính sách bảo mật và xác thực
Trong các mạng SOHO

Một số công ty sử dụng tường lửa lọc gói tin như là một dòng đầu tiên của
bảo vệ , Một số loại tường lửa khác đằng sau nó cung cấp thêm các chính sách an
ninh bổ sung, ví dụ như PIX/ASA Cisco.

31

Ngoài ra tường lửa lọc gói tin có thể được sử dụng cho việc điều khiển truy
cập nội bộ giữa các mạng con và các phòng ban khác khi việc xác thực không cần
thiết, ví dụ chỉ quan tâm đến việc kiểm soát truy cập tới các nguồn tài nguyên nội
bộ từ người dùng mà không quan tâm đến các cuộc tấn công tinh vi từ bên ngoài
của hacker về người dùng.
Nhiều mạng SOHO sử dụng bức tường lửa lọc gói tin vì sự đơn giản và ít
chi phí so với các loại tường lửa khác, SOHOs quan tâm đến bảo mật cơ bản với
một chi phí hợp lý, dù các tường lửa lọc gói tin không thể bảo vệ an toàn tuyệt đối
cho các SOHOs nhưng nó cung cấp sự bảo vệ tối thiểu cho mạng trước những tấn
công.
2.1.5. Các vấn đề với tường lửa lọc gói tin
Một trong những vấn đề mà tường lửa lọc gói tin phải lọc với lưu lượng
truy cập và làm thế nào bức tường lửa trạng thái có đối phó với nó. ví dụ Hình 2.3
thể hiện các bức tường lửa lọc gói tin có một quy tắc được đặt trên giao diện gửi
đến từ Internet bất kỳ lưu lượng truy cập bên ngoài được gửi đến 200.1.1.10 (của
một người sử dụng máy tính) đều bị từ chối và khi 170.1.1.1 cố gắng truy cập
200.1.1.10 thì các bức tường lửa lọc gói tin sẽ chặn lưu lượng truy cập.

32

Hình 2. Tường lửa lọc gói tin khởi tạo kết nối
Tuy nhiên điều gì sẽ xảy ra nếu một người nào đó bên trong mạng, chẳng
hạn như 200.1.1.10 cố gắng truy cập vào thiết bị bên ngoài (170.1.1.1)? Giả sử
rằng đây là một yêu cầu HTTP đến 170.1.1.1, trong đó có một máy chủ web đang
chạy trên nó. HTTP sử dụng TCP và TCP qua bắt tay ba bước để thiết lập một kết
nối trước khi dữ liệu được chuyển giao: SYN, SYN / ACK, và ACK. Ban đầu,
200.1.1.10 gửi một SYN để thiết lập một kết nối. Với TCP (UDP), một số cổng
nguồn được chọn là lớn hơn so với 1023, đại diện này kết nối cụ thể. Điểm đến là
cổng 80, nói với 170.1.1.1 rằng đây là một yêu cầu HTTP cho các dịch vụ web.
Khi các bức tường lửa lọc gói tin nhận được lưu lượng truy cập vào giao
diện nội bộ của mình, nó sẽ kiểm tra xem lưu lượng truy cập cho 200.1.1.10 có
được phép rời khỏi mạng không. Trong trường hợp này, không có quy tắc lọc
ngăn chặn điều này, vì vậy lưu lượng truy cập cho 200.1.1.10 lưu lượng truy cập
được gửi đến 170.1.1.1.
170.1.1.1 bây giờ phản hồi lại tin nhắn TCP SYN 200.1.1.10 với một SYN /
ACK (bước thứ hai trong cái bắt tay ba bước), như thể hiện trong hình 1.8. Tuy

33

nhiên, khi các bức tường lửa lọc gói tin kiểm tra các gói tin, nó xác định rằng bởi
vì điểm đến là 200.1.1.10 nên các gói dữ liệu sẽ bị hủy bỏ theo các quy tắc lọc gói
tin của nó. Vì vậy, kết nối không thể được thiết lập với máy chủ web bên ngoài và
từ chối người dùng nội bộ truy cập web.

Hình 2. Tường lửa lọc gói tin – Phản hồi xử lý
Các cổng mở
Có thể giải quyết vấn đề này với các bức tường lửa lọc gói dữ liệu theo hai cách:
-

Mở các cổng đích lớn hơn 1.023 khi lưu lượng truy cập trở lại nguồn
Kiểm tra các bit điều khiển TCP để xác định lưu lượng truy cập được trả
về.

Ở trường hợp thứ nhất các nguồn ban đầu mở ra một cổng nguồn lớn hơn
1.023, chẳng hạn cổng 10.000 và sử dụng một cổng đích 80 cho HTTP. Vì vậy, để
cho phép lưu lượng truy cập trở lại từ 170.1.1.1, các bức tường lửa lọc gói dữ liệu
cần một nguyên tắc sẽ cho phép cổng 10000. Tất nhiên, vấn đề với điều này là
nguồn có thể sử dụng bất kỳ số nào lớn hơn cổng nguồn 1.023: Cho dù là miễn phí

34

và được chọn bởi hệ điều hành là một trong những chỉ định. Vì vậy, bạn sẽ phải
cho phép tất cả các cổng lớn hơn 1023 để cho phép lưu lượng truy cập trở lại
200.1.1.10 như thể hiện trong Hình 2.5.

Hình 2. Tường lửa lọc gói tin – Mở cổng
Chú ý rằng nếu mở cổng lớn hơn 1.023 không phải là một điều được
khuyến khích để cho phép lưu lượng truy cập trả về từ kết nối gốc, khi đó đã tạo
ra một lỗ hổng bảo mật rất lớn tường lửa sẽ mở ra các cổng để tấn công tất cả
các loại thiết nội bộ.
Ở trường hợp thứ hai là kiểm tra các bit điều khiển TCP để kiểm tra thông
tin tầng giao vận về kết nối để xác định xem nó có là một phần của một kết nối
hiện có và nếu như vậy, cho phép lưu lượng truy cập trả về tới 200.1.1.1. Với TCP,
điều này có thể được thực hiện bằng cách kiểm tra những cờ điều khiển trong
phần đầu đoạn TCP. Chúng được thể hiện trong Bảng 2.3 và được định nghĩa
trong RFC 793. Lưu ý rằng mã số nhiều thường được gọi là cờ và có thể được gửi
trong cùng một phần đầu đoạn, chẳng hạn như SYN và ACK (SYN / ACK) hoặc
FIN, ACK (FIN / ACK).

35