Tải bản đầy đủ (.docx) (23 trang)

CÀI ĐẶT MỘT HỆ THỐNG IDSIPS DỰA TRÊN PHẦN MỀM

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

TRƯỜNG ĐẠI HỌC KHOA CÔNG NGHỆ THÔNG
TIN
BỘ MÔN MẠNG MÁY TÍNH
----***----

AN NINH MẠNG
ĐỀ TÀI:
CÀI ĐẶT MỘT HỆ THỐNG IDS/IPS DỰA TRÊN
PHẦN MỀM
Giảng viên hướng dẫn
Sinh viên thực hiện

Lớp: Mạng máy tính K58

Hà Nội – 10/2017.

Mục lục



I. Đặt vấn đề
Ngày nay, nhu cầu trao đổi dữ liệu qua hệ thống mạng máy tính trở thành vô cùng
quan trọng trong mọi hoạt động của xã hội. Vấn đề bảo đảm an ninh, an toàn cho
thông tin trên mạng ngày càng là mối quan tâm hàng đầu của các công ty, các tổ chức,
các nhà cung cấp dịch vụ. Cùng với thời gian, các kỹ thuật tấn công ngày càng tinh vi
hơn khiến các hệ thống an ninh mạng trở nên mất hiệu quả. Các hệ thống an ninh
mạng truyền thống thuần túy dựa trên các tường lửa nhằm kiểm soát luồng thông tin ra
vào hệ thống mạng một cách cứng nhắc dựa trên các luật bảo vệ cố định. Với kiểu
phòng thủ này, các hệ thống an ninh sẽ bất lực trước kỹ thuật tấn công mới, đặc biệt là
các cuộc tấn công nhằm vào điểm yếu của hệ thống. Vì vậy cần phải có một hệ thống
nhằm giám sát luồng thông tin vào ra trên mạng và bảo vệ các hệ thống mạng khỏi sự


tấn công từ Internet. Kiểm soát nguồn này, thông báo cho những người có trách nhiệm
khi nó xác định được khả năng có sự xâm nhập.
Hơn nữa, tường lửa chỉ làm việc với những gói tin khi chúng đi vào và đi ra khỏi
mạng. Một khi kẻ xâm nhập đã vượt qua được tường lửa, người đó có thể tung hoành
trên mạng, do đó hệ thống IDS/IPS có vai trò rất quan trọng. Bài báo cáo của nhóm
chúng em sẽ trình bày chi tiết về hệ thống IDS/IPS và tiến hành cài đặt hệ thống phát
hiện xâm nhập mạng – Snort.
II. Tổng quan IDS/IPS
II.1.

Hệ thống IDS (Intrusion detecsion system)

II.1.1. Khái niệm
Là một thiết bị hoặc phần mềm ứng dụng theo dõi một mạng lưới hoặc hệ thống hoạt
động nhằm phát hiện hiện tượng bất thường, các hoạt động xâm nhập trái phép vào hệ
thống.
II.1.2. Tính năng
Giám sát lưu lượng mạng và các hoạt động khả nghi
Cảnh báo về tình trạng mạng cho hệ thống và nhà quản trị
Kết hợp với các hệ thống giám sát, tường lửa, diệt virus tạo thành một hệ thống
bảo mật hoàn chỉnh
3


II.1.3. Phân loại
Có 2 loại chính:
NIDS (Network Based IDS): Là những IDS giám sát trên toàn bộ mạng. Nguồn
thông tin chủ yếu của NIDS là các gói dữ liệu đang lưu thông trên mạng. NIDS
thường được lắp đặt tại ngõ vào của mạng, có thể đứng trước hoặc sau tường
lửa. Hình sau mô tả vị trí một NIDS điển hình trong sơ đồ mạng.


HIDS (Host Based IDS): Là những IDS giám sát hoạt động của từng máy tính
riêng biệt. Do vậy, nguồn thông tin chủ yếu của HIDS ngòai lưu lượng dữ liệu
đến và đi từ máy chủ còn có hệ thống dữ liệu nhật ký hệ thống (system log) và
kiểm tra hệ thống (system audit). HIDS được cài đặt trực tiếp trên các máy
(host) cần giám sát.
II.2.

Hệ thống IPS (Intrusion prevension system)

II.2.1. Khái niệm
Là hệ thống theo dõi, ngăn ngừa kịp thời các hoạt động xâm nhập không mong muốn
II.2.2. Chức năng
Xác định các hoạt động nguy hại, lưu trữ các thông tin này. Sau đó, kết hợp với
firewall để dừng ngay các hoạt động này, và cuối cùng đưa ra các báo cáo chi
tiết về các hoạt động xâm nhập trái phép trên.
4


Hệ thống IPS được xem là trường hợp mở rộng của hệ thống IDS, cách thwucs
hoạt động cũng như đặc điểm của 2 hệ thống này tương tự nhau. Điểm khác
nhau duy nhất là hệ thống IPS ngoài khả năng theo dõi, giám sát thì còn có
chức năng ngăn chặn các hoạt động nguy hại đối với hệ thống. Hệ thống IPS sử
dụng tập luật tương tự như hệ thống IDS.
II.2.3. Phân loại
Tương tự như hệ thống IDS, hệ thống IPS được chia ra thành 2 loại chính:
NIPS (Network Based IPS) – Hệ thống ngăn ngừa xâm nhập mạng: Thường
được triển khai trước hoặc sau firewall. Khi triển khai IPS trước firewall là có
thể bảo vệ được toàn bộ hệ thống bên trong kể cả firewall, vùng DMZ. Có thể
giảm thiều nguy cơ bị tấn công từ chối dịch vụ đối với firewall. Ngược lại, khi

triển khai IPS sau firewall có thể phòng tránh được một số kiểu tấn công thông
qua khai thác điểm yếu trên các thiết bị di động sử dụng VPN để kết nối vào
bên trong.
HIPS (Host Based IPS) – Hệ thống ngăn ngừa xâm nhập host: Thường được
triển khai với mục đích phát hiện và ngăn ngừa kịp thời các hoạt động xâm
nhập trên các host.
III.

Hệ thống phát hiện xâm nhập mạng - Snort

III.1.

Khái niệm

Snort là một NIDS được phát triển bởi Martin Roesch vào năm 1998, là phần
mềm mã nguồn mở, hoàn toàn miễn phí và dễ sử dụng với nhiều tính năng
mạnh mẽ.Hiện tại, Snort đang được điều hành bởi Sourcefire và nằm trong
những nền tảng phát triển của hãng firewall Checkpoint.
Mặc dù tất cả các phương pháp phát hiện xâm nhập vẫn còn mới nhưng Snort
được đánh giá là hệ thống tốt nhất hiện nay.
Phiên bản hiện tại Snort 2.9.9.0.
Kiểm tra các gói dữ liệu vào và ra bằng cách tạo các rule phát hiện các gói dữ
liệu bất thường.
Có thể chạy trên nhiều hệ thống nền như Windows, Linux, Solaris, MacOS…
5


III.1.1.

Chức năng


Snort có thể phục vụ như một bộ phận lắng nghe gói tin, lưu lại thông tin hoặc một hệ
thống phát hiện xâm nhập mạng (NIDS). Bên cạnh đó có rất nhiều add-on cho Snort
để quản lý (ghi log, quản lý, tạo rules,…). Tuy không phải là phàn lõi của Snort nhưng
các thành phần này đóng vai trò quan trọng trong việc sử dụng cũng như khai thác các
tính năng của Snort.
III.1.2.

Hoạt động của Snort

III.1.2.1. Cấu trúc của Snort
Snort được chia thành nhiều thành phần một cách logic. Những thành phần này làm
việc cùng nhau để phát hiện các cuộc tấn công cụ thể và để tạo ra các định dnagj cần
thiết từ hệ thống phát hiện. Snort bao gồm các thành phần chính sau đây: Packet
Decoder, Preprocessor, Detection Engine, Login and alerting System và Output
Modules.

6


Ở hình trên cho thấy bất kỳ dữ liệu nào đến từ Internet đều đi vào packet decoder. Trên
đường đi của nó với các modules đầu ra, nó hoặc bị loại bỏ, ghi nhận hoặc một cảnh
báo được tạo ra.
Packet Decoder (bộ phận giải mã gói tin): Các gói dữ liệu đi vào các cổng giao
tiếp mạng. Và được giải mã bởi Packet Decoder, trong đó xác định giao thức
được sử dụng cho gói tin và dữ liệu phù hợp với hành vi được cho phép của
phần giao thức của chúng. Packet Decoder có thể tạo ra các cảnh báo riêng của
mình dựa trên phần header của giao thwucs, các gói tin quá dài, bất thường
hoặc không chính xác tùy chọn TCP được thiết lập trong phần header. Có thể
kích hoạt hoặc vô hiệu hóa các cảnh báo dài dòng cho tất cả các trường trong

tập tin snort.conf. Sau khi dữ liệu được giải mã đúng, chúng sẽ được gửi đến bộ
phận tiền xử lý (Preprocessor).
Preprocessor (bộ phận tiền xử lý): Các Preprocessor là những thành phần hoặc
plug-in có thể sử dụng cho Snort để sắp xếp, chỉnh sửa các gói dữ liệu trước khi
bộ phận Detection Engine làm việc với chúng. Một số Preprocessor cũng thực
hiện phát hiện dấu hiệu dị thường bằn cách tìm trong phần tiêu đề của gói tin và
tạo ra các cảnh báo. Preprocessor rất quan trọng với bất kỳ hệ thống IDS nào để
chuẩn bị dữ liệu cần thiết về gói tin để bộ phận Detection Engine là việc.
Detection Engine (bộ phận kiểm tra): Là bộ phận quan trọng nhất của Snort.
Trách nhiệm của nó là phát hiện bất kỳ dấu hiệu tấn công nào tồn tại trong gói
tin bằng cách sử dụng các rule để đối chiếu với thông tin trong gói tin. Nếu gói
7


tin là phù hợp với rule, hành động thích hợp được thực hiện. Hiệu suất hoạt
động của bộ phận này phụ thuộc vào các yếu tố như: số lượng rule, cấu hình
máy mà Snort đnag chạy, tốc độ bus sử dụng cho máy Snort, lưu lượng mạng.
Detection Engine có thể phân chia gói tin và áp dụng rule cho các phần khác
nhau của gói tin. Các phần đó có thể là:
• Phần IP header của gói tin
• Phần header của tầng transport: Đây là phần tiêu đề bao gồm TCP, UDP
hoặc các header của tầng transport khác. Nó cũng có thể làm việc với header
của ICMP.
• Phần header của các lớp ứng dụng: Bao gồm header của lớp ứng dụng,
nhưng không giới hạn, DNS header, FPT header, SNMP header và SMTP
header
• Packet payload: Có nghĩa là có thể tạo ra rule được sử dụng bởi detection
engine để tìm kiếm một chuỗi bên trong dữ liệu của gói tin
Logging and Alerting System (Bộ phận ghi nhận và thông báo): khi bộ phận
Detection Engine phát hiện ra các dáu hiệu tấn công thì nó sẽ thông báo cho bộ

phận Logging ang Alerting System. Các ghi nhận, thông báo có thể được lưu
dưới dạng văn bản hoặc một số định dnagj khác. Mặc định thì chúng được lưu
tại thư mục /var/log/snort.
Output Models (bộ phận đầu ra): Bộ phận đầu ra của Snort phụ thuộc vào việc
ta ghi các ghi nhận, thông báo theo cách thức nào. Có thể cấu hình bọ phận này
để thực hiện các chức năng sau:
• Gửi thông tin SNMP
• Gửi các thông điệp đến hệ thống ghi log
• Lưu các ghi nhạn và thông báo vào cơ sở dữ liệu (My SQL, Oracle,…)
• Chỉnh sửa cấu hình trên Router, Firewall
III.1.2.2. Các chế độ thực thi của Snort
Sniff model (snort -v)
8


Ở chế độ này, Snort hoạt động như một chương trình thu thập và phân tích gói tin
thông thường, lắng nghe gói tin trên mạng, sau đó giải mã và hiển thị chúng lên màn
hình console. Không cần sử dụng file cấu hình, các thông tin Snort sẽ thu được khi
hoạt động ở chế độ này:
• Date and time
• Source IP address
• Source port number
• Destination IP address
• Destination port
• Transport layer protocol used in this packet
• Time to live or TTL value in this packet
• Type of service or TOS value
• Packer ID
• Length of IP header
• IP payload

• Don’t fragment or DF bit is set in IP header
• Two TCP flags A nad p are on
• TCP sequence number
• Acknowledgement number in TCP header
• TCP Window field
• TCP header length
Packet logger mode (snort –l/var/log/snort)
Khi chạy ở chế đô này, Snort sẽ tập hợp tất cả các gói packet nó thấy được và đưa vào
log theo cấu trúc phâ tầng. Một thư mục mới sẽ được tạo ra ứng với địa chỉ nó bắt
được, và dư xlieeuj sẽ phụ thuộc vào địa chỉ mà nó lưu trong thư mục đó. Snort đặt các
9


packet vào trong file ASCII, với tên liên quan đến giao thức và cổng. Sự sắp xếp này
dễ dàng nhận ra ai đnag kết nối vào mạng của mình và giao thức, cổng nào đang sử
dụng. Đơn giản sử dụng ls-R để hiện danh sách các thư mục.
Tuy nhiên sự phân cấp này sẽ tạo ra nhiều thưu mục trong giờ cao điểm nên rất khó để
xem hết tất cả các thư mục và file này. Nếu ai đó sử dụng full scan với 65536 TCP Port
và 65535 UDP port và sẽ tạo ra 131000 hoặc từng ấy file
Log với dạng nhị phân (library) tất cả nhwunxg gì có thể đọc được bởi Snort, nó almf
tăng tốc độ khả năng bắt gói tin của Snort. Hầu hết các hệ thống có thể capture và log
ở tốc độ 100Mbps mà không có vấn đề gì.
Network intrusion Detection System (NIDS) NIDS mode (snort –c
/etc/snort/snort.conf –l eth0)
Snort thường được sử dụng như một NIDS. Nó nhẹ, nhanh chóng, hiệu quả và sử dụng
các rule để áp dụng lên gói tin. Khi phát hiện có dấu hiệu tấn công ở trong gói tin thì
nó sẽ ghi lại và tạo thông báo. Khi dùng ở chế độ này phải khai báo file cho Snort hoạt
động. Thông tin về thông báo khi hoạt động ở chế độ này:
− Fast mode: Date and time. Alert message. Source and destination IP
address, Source and destination ports, Type of packet.

− Full model: gồm các thông tin như chế độ fast mode và thêm một số
thông tin sau: TTL, value, TOS value, Length of packet header, length of
packet. Type of packet. Code ofpacket, ID of packet, Sequece number
• Inline mode
Đây là phiên bản chỉnh sửa từ Snort cho phép phân tích các gói tin từ firewall iptables
sử dụng các tập lệnh mới như: pass, drop, reject. Sau đó só khớp vưới rule và thông
báo cho intables xử lý các gói tin đó (cho phé hoặc bỏ).
III.1.2.3. Cấu trúc của rules
Một trong những chức năng được đánh giá cao nhất của Snort là cho phép sử
dụng tự viết các rule của riêng mình. Ngoài số lượng lớn các rule đi kèm với
Snort, người quản trị có thể vận dụng khả năng của mình để phát triển ra các

10


rule riêng thay vì phụ thuộc vào các cơ quan, tổ chức bên ngoài. Rule Snort
được chia làm hai phần: rule header và rule options.
• Rule header: Chứa thông tin để xác định một packet cũng như tất cả những
gì cần thực hiện với tất cả các thuộc tính chỉ định trong rule. Rule header
bao gồm các thành phần sau: Rule action, protocol, IP address, port number,
Direction operator.
− Rule action: Cho Snort biết phải làm gì khi nó tìm thấy một gói tin phù
hợp với rule, có năm hành động được mặc định sãn trong Snort: Alert:
Cảnh báo và ghi lại packet, log: ghi lại packet, pass: bỏ qua packet
− Protocol: Trường tiếp theo của rule là protocol. Hiện nay, Snort chỉ hỗ
trợ bốn giao thức sau: TCP, UDP, ICMP. IP. Trong tương lai có thể hỗ trợ
thêm các giao thức khác như: ARP, IGRP, GRE, OSPF, RIP,…
− IP address: Các địa chỉ IP được hình thành bởi dnagj thập phân:
xxxx.xxxx.xxxx.xxxx và một CIDR. Snort không ucng cấp cơ chế tra
cứu tên host tương ứng vưới địa chỉ IP. CIDR: cho biết địa chỉ lớp mạng

− Port number: Có thể được xác định gồm: Any port, static port.
− Direction Operation: Chỉ ra hướng đi của rule, có hai loại đó là: : chỉ ra
hướng bắt nguồn từ địa chỉ IP và port bến trái, <-+: hướng của rule này
là hai chiều, điều này sẽ thuận lợi cho việc phân tích cả 2 mặt của một
trafic, như là tellnet hoặc POP3…
• Rule Option: Đây chính là trái tim chính của Snort, có 4 loại rule options
chính: general, Payload, Non-Payload, Post-detections.
− General options: Cung cấp thông tin về rule nhưng không gây ra bất kỳ
ảnh hưởng nào đến quá trình phát hiện packet
− Payload Detection Rule Options: Tìm kiếm thông tin trong phần payload
của packet. Phần này gồm các từ khóa như: content, nocase, rawbytes,
depth, offset, within, http client body, http cookie, http header, http
method, http uri, fast pattem, uricontent, urilent, isdataat, pcre, byte test,
byte jump, ftpbuonce, asnl, CVS.
11


− Non-Payload Detection Rule Options: Tìm kiếm thông tin trong phần
non-payload của packet, bao gồm các từ khóa: frag, offset, ttl, tos, id,
ipopts, fragbits,…
− Post-Detection Rule Options: Xảy ra khi một rule được kích hoạt, gồm
các từ khóa: logto, session, resp, react, tag, activated hy, count.
III.2.

Vị trí của Snort trong hệ thống mạng

Vì bộ cảm biến Snort chỉ có thể cảnh báo trên những gì nó thấy nên vị trí của bộ cảm
biến là rấ quan trọng. Trong nhiều mạng, việc đặt bộ cảm biến ở một số vị trí sai có thể
làm cho ta bỏ qua toàn bộ lưu lượng mạng.
III.2.1.


Giữa Router và firewall

Nếu đặt bộ cảm biến Snort ở giữa Router và firewall, ta có thể thấy toàn bộ lưu lượng
mạng bên trong và Internet. Ta sẽ không thể thấy được lưu lượng giữ các DMZ và
Internet. Trong trường hợp này, một sự tấn công vào web server sẽ không bị phát hiện.

12


III.2.2.

Trong vùng DMZ

Nếu bộ cảm biến đặt tại điểm trong vùng DZM, ta sẽ thấy tất cả lưu lượng giữa các hệ
thống DMZ và Internet. Trong trường hợp này, ta sẽ không thấy lưu lượng giữa mạng
bên trong và Internet.

13


14


III.2.3.

Sau firewall

Nếu đặt bộ cảm biến sau firewall sẽ cho phép ta thấy tất cả lưu lượng di chuyển
giwuax cả hai mạng (bên trong và DZM) với Internet. Tuy nhiên, lưu lượng giữa DZM

và mạng bên trong không thể thấy được

15


III.3.

Cài đặt

Bước 1:
Tiến hành download Snort, WinPcap, Rules.
Bước 2: Chạy file cài đặt Snort
Chọn “I Agree” để tiếp tục

Chọn “Next”.

16


Đợi quá trình cài đặt diễn ra cho đến khi hoàn tất nhấn “Close”.

Bước 3: Chạy file cài đặt WinPcap (thư viện giúp Snort bắt các gói tin)

17


Chọn “I Agree” để tiếp tục

Chọn “Install” để cài đặt.


Chọn “Finish” để kết thúc

18


III.4.

Cấu hình

Bước 1: Giải nén file Rules và copy vào folder Snort theo đường dẫn C:\Snort vừa cài
đặt.
Bước 2: Cấu hình file snort.conf từ Snort\ect.
Ta tiến hành lần lượt theo các Step đã được sắp xếp trong hình
Step 1: Set the network variables
Dòng lệnh 45 địa chỉ mạng HOM_NET từ trạng thái “any”

Chuyển thành địa chỉ của máy mà ta cài Snort để tiến hành giám sát xâm nhập mạng
trái phép, như sau:

Dòng lệnh 48 dải EXTERNAL_NET từ trạng thái “any”

Được chuyển thành “!$HOME_NET”

Từ dòng lệnh 103 đến 110 (trừ dòng 105 thêm # đầu dòng) ta thêm đường dẫn đến các
file tương ứng

Step 2: Configure the decoder
Dòng 182 thêm đường dẫn cho file log
19



Step 3: Configure the base detection engine
Step 4: Configure dynamic loaded libraries
Dòng 243 từ đường dẫn /usr/local/lib/snort_dynamicpreprocessor/

Chỉnh thành đường dẫn đến file được chứa trong thư mục Snort

Dòng 246 từ đường dẫn /usr/local/lib/snort_dynamicengine/libsf_engine.so

Chỉnh thành đường dẫn đến file được chứa trong thư mục Snort

Thêm dấu “#” vào đầu dòng lệnh 249.
Step 5: Configure preprocessors
Thêm dấu “#” vào đầu dòng các lệnh từ 261 đến 265

Dòng 332 thêm “#” vào đầu dòng của câu lệnh.
Bỏ dấu “#” ở dòng 415.

20


Dòng lệnh 508 và 509 từ đường dẫn

Sẽ được chỉnh lại như sau

Tạo một file mới với tên white.list sau đó lưu vào theo đường dẫn C:Snort\etc\rules
Tạo một file mới với tên black.list sau đó lưu vào theo đường dẫn C:Snort\etc\rules
Step 7: Customize your rule set
Từ dòng lệnh 543 đến 660 sẽ được chỉnh sửa từ dấu “/” thành dấu “\”
Step 8: Customize your preprocessor and decoder alerts

Các dòng lệnh từ 668 đến 670 sẽ được chỉnh sửa cụ thể là bỏ dấu “#” đầu dòng
Step 9: Customize your Shared Object Snort Rules
Quá trình cấu hình kế thúc
Vào cmd chạy lệnh để kiểm tra xem việc cài đặt đã thành công hay chưa? Cụ thể như
sau:
Di chuyển vào chế độ của Snort vưới câu lệnh cd C: \Snort\bin

Chạy câu lệnh Snort – V để xem thông tin của Snort vừa cài đặt

21


Chạy câu lệnh Snort – W để xem tập luật mà ta được đặt ra cho Snort

Chạy câu lệnh để kiểm tra xem có xuất hiện lỗi trong qua strinhf cấu hình hay không.
Nếu không Snort sẽ được báo cài đặt thành công

Xuất hiện lỗi tại dòng 326

Quay lại file snort.conf xóa dấu “\” ở dòng 324 và chạy lại câu lệnh trong cmd
Sau khi chạy câu lệnh trong cmd, thông báo có lỗi tại dòng 326
Quay lại file snort.conf xóa 2 dòng lệnh 325 và 326, tiếp theo chạy lại câu lệnh trong
cmd
Thông báo cài đặt thành công

22


III.5.


Viết một luật đơn giản trong Snort

Bước 1: Add luật vào file local.rules với nội dung như sau

Bước 2: Vào cmd tiến hành chạy câu lệnh
snort –c C:\Snort\etc\snort.conf -i 2 -l C:\Snort\log
Bước 3: Tiến hành ping từ một máy bất kỳ đến máy được cài Snort (ip:192.168.1.1)
Sau khi đồng thời ping thông và Snort làm khong có vấn đề gì ta sẽ thu được nội dung
thông báo về việc xâm nhập mạng như sau:

23



×