Kiểm tra nhanh tính hợp lệ của gói tin

Một phần của tài liệu Kết hợp firewall và hệ thống phát hiện xâm nhập (IDS) để bảo vệ hệ thống mạng của doanh nghiệp trên nền tảng hệ điều hành linux (Trang 45 - 114)

Kiểm tra nhanh các gói tin là việc nên làm. Iptables cho phép ta kiểm tra tất cả cờ trong gói tin IP. Những luật sau đây cho phép ta kiểm tra cờ trạng thái TCP và loại bỏ nếu không hợp lệ là một gói IP.

# All of the bits are cleared

$IPT ­A INPUT ­p tcp ­­tcp­flags ALL NONE ­j DROP # SYN and FIN are both set

$IPT ­A INPUT ­p tcp ­­tcp­flags SYN,FIN SYN,FIN ­j DROP # SYN and RST are both set

$IPT ­A INPUT ­p tcp ­­tcp­flags SYN,RST SYN,RST ­j DROP ...

$IPT ­t nat ­­policy PREROUTING DROP $IPT ­t nat ­­policy OUTPUT DROP $IPT ­t nat ­­policy POSTROUTING DROP $IPT ­t mangle ­­policy PREROUTING DROP $IPT ­t mangle ­­policy OUTPUT DROP $IPT ­­policy INPUT DROP

$IPT ­­policy OUTPUT DROP $IPT ­­policy FORWARD DROP

2.6.7 Sử dụng kết nối có trạng thái để giảm xét luật

Bằng cách sử dụng trạng thái của một kết nối đã được thiết lập trước đó ta có thể giảm bớt việc kiểm tra luật cho Firewall. Các yêu cầu kết nối từ người dùng sẽ được điều khiển tùy từng loại dịch vụ. Ta cũng nên nhớ rằng cần phải cho phép cả hai chain INPUT và OUTPUT để cho giảm kiểm tra luật đối với cả hai hướng vào/ra.

Bởi vì module trạng thái cần nhiều RAM, Firewall script cần phải đưa ra luật cho cả có trạng thái hoặc không trạng thái. Module trạng thái cho phép ta giảm thiểu kiểm luật trong điều kiện hoạt động bình thường. Những luật chuẩn không trạng thái cũng cần phải được thêm vào trong trường hợp mục trong bảng trạng thái hết giờ tồn tại hoặc đã bị xóa mất vì thiếu bộ nhớ.

2.6.8 Ngăn giả mạo địa chỉ

Việc ngăn chặn một số địa chỉ không hợp lệ này được lọc ở chain INPUT. Những địa chỉ này sẽ không bao giờ được xem là hợp lệ như là một gói tin đến từ Internet. Ở mức lọc gói, một vài trường hợp giả mạo địa chỉ nguồn có thể xác định được. Luật sau sẽ loại bỏ gói tin được xem là đến chính máy Firewall.

$IPT ­A INPUT ­i $INTERNET ­s $IPADDR ­j DROP if [ "$CONNECTION_TRACKING" = "1" ]; then

$IPT ­A INPUT ­m state ­­state ESTABLISHED,RELATED \ ­j ACCEPT

$IPT ­A OUTPUT ­m state ­­state ESTABLISHED,RELATED \ ­j ACCEPT

$IPT ­A INPUT ­m state ­­state INVALID ­j DROP $IPT ­A OUTPUT ­m state ­­state INVALID ­j DROP fi

Ta không cần phải ngăn gói tin đi ra mà đích nhằm vào chính máy Firewall. Nếu ta gửi gói tin đến interface bên ngoài của Firewall, gói tin đó sẽ đến hàng đợi của interface loopback chứ không phải đến hàng đợi interface bên ngoài. Những gói tin chứa địa chỉ máy Firewall là địa chỉ nguồn sẽ không bao giờ đến được interface bên ngoài, cho dù ta có gửi gói tin đó ra interface bên ngoài.

Như đã biết, địa chỉ IP private trong mỗi lớp A, B, C được sử dụng cho mạng LAN bên trong. Địa chỉ này không được sử dụng trên Internet. Router không hỗ trợ định tuyến gói tin với địa chỉ nguồn là địa chỉ private trừ những Firewall làm nhiệm vụ trung chuyển gói tin chứa địa chỉ nguồn là private. Ngoài ra, một vài trường hợp cũng có thể làm ta nhận được gói tin với địa chỉ private, vì vậy, ta cần ngăn chặn những gói tin bắt nguồn từ địa chỉ này. Ngoài địa chỉ private, địa chỉ loopback cũng được xem là không hợp lệ nếu nhận được.

2.6.9 Cấu hình cho phép một số dịch vụ TCP thông dụng 2.6.9.1 Email 2.6.9.1 Email

Email là dịch vụ hầu hết mọi người dùng đều cần. Email được gửi bằng giao thức SMTP có cổng TCP là 25. Email nhận thông qua một trong ba giao thức SMTP, IMAP, POP. POP và IMAP là dịch vụ nhận mail. POP hoạt động tại cổng 110 còn IMAP hoạt động tại cổng 143. Chi tiết hoạt động của ba giao thức trên thể hiện trong bảng sau:

$IPT ­A INPUT ­i $INTERNET ­s $CLASS_A ­j DROP $IPT ­A INPUT ­i $INTERNET ­s $CLASS_B ­j DROP $IPT ­A INPUT ­i $INTERNET ­s $CLASS_C ­j DROP $IPT ­A INPUT ­i $INTERNET ­s $LOOPBACK ­j DROP

Để gửi mail ta thường gửi thông qua một relay mail do ISP cung cấp. Nếu biết được địa chỉ relay mail của ISP ta xây dựng luật như sau:

Ngược lại ta có thể cho phép gửi mail đến mọi server nếu không biết đích xác địa chỉ của ISP relay mail.

Để nhận được email ta cũng phải xây dựng luật để cho phép. Những luật sau cho phép ta nhận mail bằng một SMTP server.

Trong trường hợp ta không sử dụng một SMTP server bên trong, ta có thể sử dụng dịch vụ mail do ISP cung cấp. Trong trường hơp ISP sử dụng một POP server, ta phải cấu hình luật để nhận mail như là một POP client.

Trong trường hợp ISP sử dụng IMAP server thì ta cũng phải sẽ thay số hiệu cổng ­­dport thành cổng 143.

2.6.9.2 Telnet

$IPT ­A OUTPUT ­o $INTERNET ­p tcp \

­s $IPADDR ­­sport $UNPRIVPORTS ­d $POP_SERVER \ ­­dport 110 ­m state ­­state NEW ­j ACCEPT $IPT ­A INPUT ­i $INTERNET ­p tcp \

­­sport $UNPRIVPORTS ­d $IPADDR ­­dport 25 \ ­m state ­­state NEW ­j ACCEPT

$IPT ­A OUTPUT ­o $INTERNET ­p tcp ­s $IPADDR \

­­sport $UNPRIVPORTS ­d $SMTP_GATEWAY ­­dport 25 \ ­m state ­­state NEW ­j ACCEPT

SMTP_GATEWAY="my.isp.server"

$IPT ­A OUTPUT ­o $INTERNET ­p tcp ­s $IPADDR \

­­sport $UNPRIVPORTS ­d $SMTP_GATEWAY ­­dport 25 \ ­m state ­­state NEW ­j ACCEPT

Telnet là dịch vụ mạng kém bảo mật. Ngày nay ta nên sử dụng phiên làm việc trên SSH thay vì Telnet. Tuy nhiên nếu cần ta có thể mở dịch vụ này như sau.

Tuy nhiên ta nên giới hạn địa chỉ truy cập nếu có thể bằng cách thêm vào tùy chọn --destination.

Để cho phép người dùng bên ngoài telnet vào bên trong ta sẽ thêm những luật sau.

2.6.9.3 SSH

Ngày nay SSH được sử dụng ngày càng nhiều hơn thay cho telnet. SSH là dịch vụ mạng được bảo mật. Gói dữ liệu truyền đi đã được mã hóa. Để cho phép điều khiển một phiên SSH từ máy firewall ta cấu hình lệnh sau.

Tương tự như dịch vụ telnet, ta nên giới hạn lại dải địa chỉ cho phép truy cập ra bên ngoài nếu có thể. Những luật sau sẽ cho phép kết nối SSH từ bên ngoài đến SSH server cục bộ.

$IPT ­A INPUT ­i $INTERNET ­p tcp ­­sport $SSH_PORTS \ ­d $IPADDR ­­dport 22 ­m state ­­state NEW ­j ACCEPT

$IPT ­A OUTPUT ­o $INTERNET ­p tcp \ ­s $IPADDR ­­sport $SSH_PORTS \

­­dport 22 ­m state ­­state NEW ­j ACCEPT

$IPT ­A INPUT ­i $INTERNET ­p tcp ­­sport $UNPRIVPORTS ­d $IPADDR ­­dport 23 ­m state ­­state NEW ­j ACCEPT

$IPT ­A OUTPUT ­o $INTERNET ­p tcp \ ­s $IPADDR ­­sport $UNPRIVPORTS \

2.6.9.4 FTP

FTP là một trong những phương thức truyền dữ liệu, tập tin giữa hai máy trên mạng thông dụng nhất. Ngày nay, FTP sử dụng giao diện web ngày càng trở nên phổ biến. Tuy nhiên, giống như telnet, FTP gửi thông tin xác thực dạng văn bản thuần, vì thế FTP cũng được xem là giao thức kém bảo mật. Thay vào đó ngày nay ta sử dụng giao thức SFTP hay SCP để tăng khả năng bảo mật cho FTP.

FTP thừa kết từ mô hình client/server thuần TCP. FTP sử dụng hai kết nối tách biệt, một để điều khiển lệnh và một để gửi dữ liệu và những thông tin khác. Để cho phép yêu cầu FTP đi ra qua kênh điều khiển, ta cấu hình lệnh sau.

Để có thể gửi nhận dữ liệu ta phải cho phép FTP hoạt động trên cổng 20. Trong trường hợp FTP sử dụng port mode.

Ngược lại, khi FTP sử dụng passive mode.

Trong trường hợp trong mạng có chạy dịch vụ FTP và ta muốn cho phép người dùng bên ngoài có thể truy cập vào trong ta cần thay đổi lại

$IPT ­A OUTPUT ­o $INTERNET ­p tcp \ ­s $IPADDR ­­sport $UNPRIVPORTS \

­­dport $UNPRIVPORTS ­m state ­­state NEW ­j ACCEPT $IPT ­A INPUT ­i $INTERNET ­p tcp ­­sport 20 \

­d $IPADDR ­­dport $UNPRIVPORTS \ ­m state ­­state NEW ­j ACCEPT $IPT ­A OUTPUT ­o $INTERNET ­p tcp \ ­s $IPADDR ­­sport $UNPRIVPORTS \

các chain, địa chỉ đích và nguồn cũng như số hiệu cổng tương ứng cho ba mẫu luật trên.

2.6.9.5 Dịch vụ Web

Thông thường dịch vụ web thường lắng nghe ở cổng 80. Để cho phép một truy cập web ra bên ngoài ta thêm những luật sau.

Trong trường hợp trong mạng dựng lên một trang web tại Firewall và đưa ra cho phép người dùng bên ngoài truy cập vào thì ta cần thêm những luật sau.

Ngày nay vấn đề bảo mật của dịch vụ web cũng cần được nâng cao. Secure Socket Layer (SSL) và Transport Layer Security (TLS). Ta cần cho phép sử dụng giao thức này để có thể truy cập được dịch vụ web bảo mật. Để cấu hình luật ta chỉ cần thêm luật với số hiệu cổng là 443 thay vì 80 như ở trên.

$IPT ­A INPUT ­i $INTERNET ­p tcp \

­­sport $UNPRIVPORTS ­d $IPADDR ­­dport 80 \ ­m state ­­state NEW ­j ACCEPT

$IPT ­A OUTPUT ­o $INTERNET ­p tcp \ ­s $IPADDR ­­sport $UNPRIVPORTS \

Một cách truy cập web khác đó là thông qua proxy. Thông thường proxy này do ISP cung cấp. Web proxy thường lắng nghe trên hai cổng 8008 và 8080. SQUID sử dụng cổng mặc định là 3128. Nếu sử dụng một web proxy nào đó, ta nên cho phép đến địa chỉ đó.

WEB_PROXY_SERVER="my.www.proxy" WEB_PROXY_PORT="www.proxy.port" $IPT ­A OUTPUT ­o $INTERNET ­p tcp \ ­s $IPADDR ­­sport $UNPRIVPORTS \

­d $WEB_PROXY_SERVER ­­dport $WEB_PROXY_PORT \ ­m state ­­state NEW ­j ACCEPT

Chương 3: HỆ THỐNG PHÁT HIỆN XÂM NHẬP (Intrusion Detection System - IDS)

3.1 Tổng quan về hệ thống phát hiện xâm nhập – IDS 3.1.1 Sự cần thiết của tìm kiếm và phát hiện xâm nhập 3.1.1 Sự cần thiết của tìm kiếm và phát hiện xâm nhập

Ngày nay, an toàn mạng đã trở thành một vấn đề hết sức quan trọng. Những kẻ phá hoại (hacker) và xâm nhập mạng (intruder) đã đạt được nhiều thành công trong việc tấn công vào các thành phần và các dịch vụ mạng. Nhiều phương pháp đã được phát triển để đảm bảo an toàn cho hạ tầng và cho truyền thông trên mạng Internet, ta có thể kể tới một số phương pháp điển hình như: sử dụng bức tường lửa (firewall), mã hoá dữ liệu (encryption) và các mạng riêng ảo (virtual private networks). Phát hiện xâm nhập mạng (intrusion detection) là một kỹ thuật mới, được xuất hiện cách đây không xa. Sử dụng phương pháp phát hiện xâm nhập, ta có thể thu thập và sử dụng các dấu vết từ những kiểu tấn công đã được biết trước, từ đó tìm ra xem liệu có kẻ nào đó đang cố gắng tấn công vào mạng hay máy của bạn. Những thông tin được thu thập theo cách này sẽ được sử dụng để làm tăng khả năng an toàn cho mạng cũng như cho các mục đích khác. Kỹ thuật phát hiện xâm nhập mạng hiện đã được cài đặt trong các sản phẩm thương mại cũng như trong sản phẩm có mã nguồn mở. Ngoài ra, còn phải kể tới nhiều công cụ phát hiện các lỗ hổng (vulnerability) giúp phát hiện các lỗ hổng an toàn trong mạng.

3.1.1.1 Xâm nhập mạng là gì?

Để hiểu khái niệm “phát hiện xâm nhập – instrusion detection” thì cần phải biết khái niệm “xâm nhập - instrusion”. Một xâm nhập là một hành động không được uỷ quyền đối với một hệ thống trong mạng hoặc trên toàn bộ mạng của bạn. Hành động này có thể được thực hiện từ một người dùng không được uỷ quyền trên hệ thống và đang cố gắng tạo ra quyền truy nhập

hiệp với một dịch vụ đang chạy nhằm mục đích để tạo một tài khoản trên hệ thống...

3.1.1.2 Phát hiện xâm nhập mạng là gì?

Phát hiện xâm nhập là một bộ các kỹ thuật và các phương pháp được sử dụng để tìm kiếm và phát hiện các hành động nghi ngờ (suspicious activities) trên mạng và trên chính máy của bạn.

3.1.2 Một số khái niệm cơ bản trong hệ thống phát hiện xâm nhập 3.1.2.1 Hệ thống phát hiện xâm nhập (IDS) 3.1.2.1 Hệ thống phát hiện xâm nhập (IDS)

IDS (Intrusion Detection System) là phần cứng, phần mềm, hoặc kết hợp cả phần cứng và phần mềm được sử dụng để giám sát hoạt động trên hệ thống mạng và phân tích để tìm ra các dấu hiệu vi phạm đến các quy định bảo mật máy tính, chính sách sử dụng và các tiêu chuẩn an toàn thông tin. Các dấu hiệu này xuất phát từ rất nhiều nguyên nhân khác nhau như hackers xâm nhập trái phép, người dùng cuối truy nhập vào các tài nguyên không được phép truy cập..v.v. Mỗi hệ thống IDS sẽ có các khả năng khác nhau phụ thuộc vào sự phức tạp và sự tinh vi của các thành phần chứa trong đó. IDS có thể sử dụng các kỹ thuật phát hiện xâm nhập dựa trên dấu vết (signature- based) hoặc dựa trên sự bất thường (anomally-based) hoặc cả hai.

3.1.2.2 Network IDS – NIDS

NIDS là một hệ thống phát hiện xâm nhập mạng, nó bắt gói dữ liệu được truyền đi trên môi trường mạng (cables, wireless) và so sánh chúng với một cơ sở dữ liệu chứa các dấu hiệu xâm nhập. Nếu gói tin chứa mẫu mà phù hợp với một dấu hiệu xâm nhập, thì hệ thống sẽ sinh ra cảnh báo hoặc ghi lại xâm nhập này vào một tệp hoặc một cơ sở dữ liệu nhật ký.

3.1.2.3 Host IDS – HIDS

HIDS (Host-based intrusion detection system) được cài đặt trên máy cần bảo vệ. Hệ thống xâm nhập này sẽ tìm kiếm trong các tệp trên hệ thống hoặc các tệp nhật ký của ứng dụng để phát hiện bất kỳ một hành động xâm nhập nào.

3.1.2.4 Các dấu hiệu (Signatures)

Dấu hiệu (signature) là các mẫu (pattern) mà được tìm kiếm bên trong gói dữ liệu. Một dấu hiệu được sử dụng để tìm kiếm một hoặc nhiều các kiểu tấn công khác nhau. Cho ví dụ, sự hiện diện của một mẫu “script/iisadmin” trong một gói tin đi tới một Web Server có thể chỉ ra đây là một hành động xâm nhập trái phép.

Các dấu hiệu có thể có mặt trong các phần khác nhau của một gói dữ liệu phụ thuộc vào bản chất của tấn công đó. Cho ví dụ, ta có thể tìm thấy các dấu hiệu trong phần IP header, phần header của tầng vận chuyển (transport layer header) TCP hoặc UDP, hoặc trong phần nội dung của gói tin (payload).

Thường IDS dựa trên các dấu hiệu để tìm ra các xâm nhập trái phép. Do vậy, IDS cần phải thường xuyên cập nhật các dấu hiệu mới cho một kiểu tấn công mới tương ứng.

3.1.2.5 Sensor

Một máy trên đó đang chạy một hệ thống phát hiện xâm nhập thì được gọi là một sensor.

3.1.3 Chức năng của IDS

3.1.3.1 Các ứng dụng cơ bản của IDS

 Nhận diện các nguy cơ có thể xảy ra.

 Ghi nhận thông tin, log để phục vụ cho việc kiểm soát nguy cơ.

 Nhận diện các hoạt động thăm dò hệ thống.

 Nhận diện các yếu khuyết của chính sách bảo mật.

 Ngăn chặn vi phạm chính sách bảo mật.

3.1.3.2 Các tính năng chính của IDS

 Lưu giữ thông tin liên quan đến các đối tượng giám sát.

 Cảnh báo những sự kiện quan trọng liên quan đến đối tượng quan sát.

 Xuất báo cáo.

3.1.4 Phân loại

Có nhiều tiêu chí để phân loại một IDS:

3.1.4.1 Theo tiêu chí phương pháp phát hiện

Theo tiêu chí này thì có 2 loại IDS là: Phát hiện bất thường và phát hiện theo mẫu có sẵn:

Phát hiện bất thường (anomaly-based intrusion detection system)

Trong phát hiện bất thường, người quản trị hệ thống định ra các giới hạn về trạng thái, sự cố, giao thức và kích thước gói tin trong mạng. Bộ phát hiện bất thường sẽ giám sát các phân đoạn mạng để so sánh trạng thái của chúng với các giới hạn và xem chúng có bình thường hay không.

Có một số kỹ thuật giúp thực hiện phát hiện sự không bình thường của các cuộc tấn công như dưới đây:

o Phát hiện theo ngưỡng: Các mức ngưỡng (threshold) về các hoạt động bình thường được đặt ra, nếu có sự bất thường nào đó như đăng nhập (login) với số lần quá quy định, số lượng các tiến trình hoạt động trên vi xử lý (CPU), số lượng một loại gói tin được gửi vượt quá mức…

o Phát hiện kiểu tự học-(Self-learning detection): Kỹ thuật phát hiện này bao gồm hai bước, khi thiết lập hệ thống phát hiện tấn công, nó sẽ chạy ở chế độ tự học thiết lập một hồ sơ (profile) về cách cư xử của mạng với các hoạt động bình thường. Sau thời gian khởi tạo, hệ thống sẽ chạy ở chế

Một phần của tài liệu Kết hợp firewall và hệ thống phát hiện xâm nhập (IDS) để bảo vệ hệ thống mạng của doanh nghiệp trên nền tảng hệ điều hành linux (Trang 45 - 114)

Tải bản đầy đủ (PDF)

(114 trang)