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

Báo cáo thực tập An ninh mạng

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 (1.91 MB, 37 trang )

TRƯỜNG ĐẠI HỌC ĐIỆN LỰC
KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO MƠN HỌC
THỰC TẬP AN NINH MẠNG

ĐỀ TÀI:
TÌM HIỂU VỀ HỆ THỐNG PHÁT HIỆN VÀ NGĂN
CHẶN XÂM NHẬP IPS/IDS - SNORT
Sinh viên thực hiện

: TRẦN ĐĂNG QUANG

Giảng viên hướng dẫn

: PHẠM QUANG HUY

Ngành

: CÔNG NGHỆ THÔNG TIN

Chuyên ngành

: QUẢN TRỊ AN NINH MẠNG

Lớp

: D13QTANM

Khóa


: 2018-2023

Hà Nội, tháng 4 năm 2022


PHIẾU CHẤM ĐIỂM

Giảng viên hướng dẫn chấm:
Họ và tên

Chữ ký

Ghi chú

Chữ ký

Ghi chú

Chữ ký

Ghi chú

PHẠM QUANG HUY

Sinh viên thực hiện:
Họ và tên

TRẦN ĐĂNG QUANG

Giảng viên chấm

Họ và tên


Mục Lục
Lời nói đầu

8

CHƯƠNG 1: TỔNG QUAN VỀ IPS/IDS

9

1.1. Giới thiệu về IPS/IDS

9

1.1.1. Định nghĩa

9

1.1.2. So sánh sự khác nhau giữa IPS và IDS

9

1.2. Cơ chế hoạt động của hệ thống IPS/IDS

10

1.2.1. Phát hiện sự lạm dụng:


10

1.2.2. Phát hiện sự bất thường

11

1.3. Một vài sản phẩm IPS/IDS
CHƯƠNG 2. ỨNG DỤNG SNORT TRONG IPS/IDS

13
15

2.1. Giới thiệu về Snort

15

2.2. Kiến trúc của Snort

16

2.2.1. Module giải mã gói tin

16

2.2.2. Module tiền xử lý

16

2.2.3. Module phát hiện


17

2.2.4. Module log và cảnh báo

17

2.2.5. Module kết xuất thông tin

17

2.3. Bộ luật của Snort

18

2.3.1. Giới thiệu

18

2.3.2. Cấu trúc luật của Snort

18

2.3.2.1. Phần tiêu đề

19

2.3.2.2. Các tùy chọn

20


2.4 Chế độ ngăn chặn của Snort : Snort - Inline

22

2.4.1 Tích hợp khả năng ngăn chặn vào Snort

22

2.4.2 Những bổ sung cho cấu trúc luật của Snort hỗ trợ Inline mode

23

CHƯƠNG 3: CÀI ĐẶT VÀ CẤU HÌNH SNORT 2.9 TRÊN CENTOS 7

23

3.1. Cài đặt

23

3.2. Giải thích cấu hình

34


3.2.1. Định nghĩa các biến

34

3.2.2. Cấu hình module tiền xử lý


35

3.2.3. Cấu hình module kết xuất thơng tin

35

3.3.4. Cấu hình bộ luật

36

Kết luận

36


Hình 1.1: Vị trí đặt của IDS trong hệ thống mạng................................................9
Hình 1.2: Sơ đồ kết hợp 2 cơ chế hoạt động.......................................................13
Hình 2.1: Kiến trúc của Agent thu thập, phân tích.............................................16
Hình 2.2: Cấu trúc luật của snort........................................................................18
Hình 2.3: Cấu trúc phần Header.........................................................................19
Hình 3.1: Update và cài đặt một số gói cần thiết................................................23
Hình 3.2: Tạo folder chứa source.......................................................................24
Hình 3.3: Cài đặt libpcap....................................................................................24
Hình 3.4: Cài DAQ.............................................................................................24
Hình 3.5: Cài đặt LUAJIT..................................................................................25
Hình 3.6: Cài đặt snort........................................................................................25
Hình 3.7: Update thư viện...................................................................................25
Hình 3.8: Tạo liên kết.........................................................................................26
Hình 3.9: Kiểm tra version.................................................................................26

Hình 3.10: Tạo user và group.............................................................................26
Hình 3.11: Tạo thư mục lưu cấu hình.................................................................26
Hình 3.12: Phân quyền.......................................................................................27
Hình 3.13: Tạo file..............................................................................................27
Hình 3.14: Copy thư mục tới file cấu hình.........................................................27
Hình 3.15: Sửa thơng tin.....................................................................................27
Hình 3.16: Thay đổi thơng tin.............................................................................28
Hình 3.17: Kiểm trâ file cấu hình.......................................................................28
Hình 3.18: Add rule............................................................................................28
Hình 3.19: Kiểm tra............................................................................................28
Hình 3.20: Cảnh bảo của snort...........................................................................29
Hình 3.21: cài các gói cần thiết..........................................................................29
Hình 3.22: Down load và cài đặt........................................................................29
Hình 3.23: Kiểm tra version...............................................................................29
Hình 3.24: Thêm cấu hình..................................................................................30
Hình 3.25: Đăng nhập để tải rules......................................................................30
Hình 3.26: Sửa thơng tin trong file config..........................................................30
Hình 3.27: Chạy lệnh..........................................................................................31
Hình 3.28: Chạy lệnh Pulledpork.......................................................................31
Hình 3.29: Thêm dịng lệnh vào file...................................................................31
Hình 3.30: Cài đặt gói cần thiết..........................................................................31
Hình 3.31: Định dạng lại dữ liệu đầu ra.............................................................31
Hình 3.32: Cài đặt...............................................................................................32


Hình 3.33: Thay đổi giá trị.................................................................................32
Hình 3.34: Tạo folder log...................................................................................32
Hình 3.35: Kiểm tra banyard..............................................................................32
Hình 3.36: Cấu hình MySQL..............................................................................32
Hình 3.37: Tạo DB.............................................................................................33

Hình 3.38: Tạo bảng...........................................................................................33
Hình 3.39: cấu hình kết nối.................................................................................33
Hình 3.40: Cấu hình nội dung.............................................................................33
Hình 3.41: Cho phép khởi chạy cùng hệ thống..................................................34
Hình 3.42: Thêm nội dung vào file.....................................................................34
Hình 3.43: Cho phép khởi chạy cùng hệ thống..................................................34


LỜI CẢM ƠN
Trong thời gian làm đồ án tốt nghiệp, em đã nhận được nhiều sự giúp đỡ,
đóng góp ý kiến và chỉ bảo nhiệt tình của thầy cơ, gia đình và bạn bè.
Em xin gửi lời cảm ơn chân thành đến thầy Nguyễn Khánh Tùng, giảng
viên khoa Công nghê thông tin - trường Đại học Điện Lực người đã tận tình
hướng dẫn, chỉ bảo em trong suốt quá trình làm đồ án.
Em cũng xin chân thành cảm ơn các thầy cô giáo trong trường Đại Học
Điện Lực đã hết lòng dạy bảo chúng em trong những năm học Đại Học, giúp
chúng em có những kiến thức và kinh nghiệm quý báu trong chuyên môn và
cuộc sống, giúp chúng em bước những bước đi đầu tiên trong hành trang vào
đời.
Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè, đã luôn tạo điều
kiện, quan tâm, giúp đỡ, động viên em trong suốt quá trình học tập và hoàn
thành đồ án tốt nghiệp.


Lời nói đầu
An ninh thơng tin nói chung và an ninh mạng nói riêng hiện đang là vấn
đề được quan tâm trên toàn thế giới. Cùng với sự phát triển của mạng Internet,
việc đảm bảo an ninh thông tin càng phải được chú trọng và đặt lên hàng đầu.
Đối với lĩnh vực an ninh mạng, việc phát hiện và phòng chống xâm nhập
là bước đầu của việc ngăn chặn các cuộc tấn công mạng. Dù là đối với các

doanh nghiệp nhỏ hay lớn, thì việc đảm bảo hệ thống an ninh mạng của doanh
nghiệp không bị xâm nhập vẫn là một trong những yêu cầu được đặt lên hàng
đầu để phịng chống các cuộc tấn cơng an ninh mạng có chủ đích. Trong xu
hướng đó, em mong muốn có thể tìm hiểu và nghiên cứu các cơng cụ cũng như
giải pháp an ninh mạng về phát hiện và phòng chống xâm nhập mạng qua báo
cáo thực tập này.
Mặc dù có nhiều cố gắng trong quá trình học tập cũng như trong thời gian
thực hiện báo cáo, nhưng với lượng kiến thức hạn hẹp nên báo cáo của em
không thể tránh khỏi thiếu sót. Chúng em rất mong nhận được sự góp ý quý báu
của thầy để báo cáo của em được hoàn thiện hơn.
Em xin chân thành cảm ơn!


CHƯƠNG 1: TỔNG QUAN VỀ IPS/IDS
1.1. Giới thiệu về IPS/IDS
1.1.1. Định nghĩa
IDS là viết tắt của Intrusion Detection System – Hệ thống phát hiện xâm
nhập. Đây là một phần mềm chuyên dụng được xây dựng để giám sát lưu lượng
mạng, đồng thời cảnh báo mỗi khi có các hành vi bất thường xâm nhập vào hệ
thống.

Hình 1.1: Vị trí đặt của IDS trong hệ thống mạng
Hiện nay có hai loại hệ thống IDS chính:
● NIDS (Network Intrusion Detection System): Hệ thống phát hiện xâm
nhập mạng, hệ thống sẽ tập hợp các gói tin để phân tích sâu bên trong
nhằm xác định các mối đe dọa tiềm tàng mà không làm thay đổi cấu trúc
của gói tin.
● HIDS (Host-based Intrusion Detection System): Hệ thống phát hiện xâm
nhập dựa trên máy chủ, được cài đặt trực tiếp trên các máy tính cần theo
dõi. HIDS giám sát lưu lượng đến và đi từ thiết bị để cảnh báo người

dùng về những xâm nhập trái phép.
Các hệ thống IDS hiện đại được xây dựng để thu thập lưu lượng mạng từ mọi
thiết bị thông qua cả NIDS và HIDS. Vì vậy có thể cải thiện đáng kể khả năng
phát hiện xâm nhập trên hệ thống.


1.1.2. So sánh sự khác nhau giữa IPS và IDS
Nếu Firewall là hệ thống chặn tất cả các truy cập, sau đó người quản trị sẽ
cài đặt và cho phép 1 số truy cập nhất định vào hệ thống mạng. Thì IDS là hệ
thống giám sát mạng và phát hiện các hoạt động khơng phù hợp, khơng chính
xác hoặc bất thường, trong khi IPS là hệ thống phát hiện xâm nhập hoặc tấn
công và thực hiện các bước chủ động để ngăn chặn chúng. Sự khác biệt chính
giữa hai điều này không giống như IDS, IPS chủ động thực hiện các bước để
ngăn chặn hoặc chặn các hành vi xâm nhập được phát hiện. Các bước ngăn chặn
này bao gồm các hoạt động như thả các gói dữ liệu độc hại và đặt lại hoặc chặn
lưu lượng truy cập đến từ các địa chỉ IP độc hại. IPS có thể được coi là một
phần mở rộng của IDS, có các khả năng bổ sung để ngăn chặn sự xâm nhập
trong khi phát hiện chúng.
1.2. Cơ chế hoạt động của hệ thống IPS/IDS
Có hai cách tiếp cận cơ bản đối với việc phát hiện và phòng chống xâm nhập là:
- Phát hiện sự lạm dụng (Misuse Detection Model): Hệ thống sẽ phát hi n
các xâm nhập (dựa trên các dấu hiệu - signatures) hoặc các điểm dễ bị tấn
công của hệ thống.
- Phát hiện sự bất thường (Anomaly Detection Model): Hệ thống sẽ phát
hiện các xâm nhập bằng cách tìm kiếm các hành động khác với hành vi
thông thường của người dùng hay hệ thống.
1.2.1. Phát hiện sự lạm dụng:
Phát hiện sự lạm dụng là phát hiện những kẻ xâm nhập đang cố gắng đột
nhập vào hệ thống mà sử dụng một số kỹ thuật đã biết. Nó liên quan đến việc
mô tả đặc điểm các cách thức xâm nhập vào hệ thống đã được biết đến, mỗi

cách thức này được mô tả như một mẫu. Hệ thống phát hiện sự lạm dụng chỉ
thực hiện kiểm soát đối với các mẫu đã rõ ràng. Mẫu có thể là một xâu bit cố
định (ví dụ như một virus đặc tả việc chèn xâu), dùng để mô tả một tập hay một
chuỗi các hành động đáng nghi ngờ.
Ở đây, ta sử dụng thuật ngữ kịch bản xâm nhập (intrusion scenario). Một
hệ thống phát hiện sự lạm dụng điển hình sẽ liên tục so sánh hành động của hệ
thống hiện tại với một tập các kịch bản xâm nhập để cố gắng dò ra kịch bản
đang được tiến hành. Hệ thống này có thể xem xét hành động hiện tại của hệ
thống được bảo vệ trong thời gian thực hoặc có thể là các bản ghi kiểm tra được
ghi lại bởi hệ điều hành


Các kỹ thuật để phát hiện sự lạm dụng khác nhau ở cách thức mà chúng
mơ hình hố các hành vi chỉ định một sự xâm nhập. Các hệ thống phát hiện sự
lạm dụng thế hệ đầu tiên sử dụng các luật (rules) để mơ tả những gì mà các nhà
quản trị an ninh tìm kiếm trong hệ thống. Một lượng lớn tập luật được tích luỹ
dẫn đến khó có thể hiểu và sửa đổi bởi vì chúng khơng được tạo thành từng
nhóm một cách hợp lý trong một kịch bản xâm nhập.
1.2.2. Phát hiện sự bất thường
Phát hiện sự bất thường được chia thành phát hiện tĩnh và phát hiện động.
Phát hiện tĩnh:
Dựa trên giả thiết ban đầu là phần hệ thống được kiểm sốt phải ln ln
khơng đổi. Ở đây, ta chỉ quan tâm đên phần mềm của vùng hệ thống đó (giả
sử là phần cứng khơng cần phải kiểm tra). Phần tĩnh của một hệ thống bao
gồm 2 phần con: mã hệ thống và dữ liệu của phần hệ thống đó. Hai thơng tin
này đều được biểu diễn dưới dạng một xâu bit nhị phân hoặc một tệp các
xâu. Nếu biểu diễn này có sự sai khác so với dạng thức gốc thì hoặc có lỗi
xảy ra hoặc một kẻ xâm nhập đã thay đổi nó. Lúc này, bộ phát hiện tĩnh sẽ
được thông báo đề kiểm tra tính tồn vẹn dữ liệu.
Cụ thể là: bộ phát hi n tĩnh đưa ra một hoặc vài xâu bit cố định để định nghĩa

trạng thái mong muốn của hệ thống. Các xâu này giúp ta thu được một biểu
diễn về trạng thái đó, có thể ở dạng nén. Sau đó, nó so sánh biểu diễn trạng
thái thu được với biểu diễn tương tự được tính tốn dựa trên trạng thái hiện tại
của cùng xâu bit cố định. Bất kỳ sự khác nhau nào đều là thể hiện lỗi như
hỏng phần cứng hoặc có xâm nhập.
Biểu diễn trạng thái tĩnh có thể là các xâu bit thực tế được chọn để định nghĩa
cho trạng thái hệ thống, tuy nhiên điều đó khá tốn kém về lưu trữ cũng như về
các phép toán so sánh. Do vấn đề cần quan tâm là việc tìm ra được sự sai khác
để cảnh báo xâm nhập chứ không phải chỉ ra sai khác ở đâu nên ta có thể sử
dụng dạng biểu diễn được nén để giảm chi phí. Nó là giá trị tóm tắt tính được
từ một xâu bit cơ sở. Phép tính tốn này phải đảm bảo sao cho giá trị tính
được từ các xâu bit cơ sở khác nhau là khác nhau. Có thể sử dụng các thuật
tốn checksums, message-digest (phân loại thông điệp), các hàm băm.
Một số bộ phát hiện xâm nhập kết hợp chặt chẽ với meta-data (dữ liệu mô tả các đối tượng dữ liệu)
hoặc thông tin về cấu trúc của đối tượng được kiểm tra. Ví dụ, meta-data cho một log file bao gồm
kích cỡ của nó. Neu kích cỡ của log file tăng thì có thể là một dấu hiệu xâm nhập.

Phát hiện động:


Hành vi của hệ thống (behavior) được định nghĩa là một chuỗi các sự kiện phân
biệt, ví dụ như rất nhiều hệ thống phát hiện xâm nhập sử dụng các bản ghi kiểm
tra (audit record), sinh ra bởi hệ điều hành để định nghĩa các sự kiện liên quan,
trong trường hợp này chỉ những hành vi mà kết quả của nó là việc tạo ra các bản
ghi kiểm tra của hệ điều hành mới được xem xét.
Các sự kiện có thể xảy ra theo trật tự nghiêm ngặt hoặc không và thơng tin phải
được tích luỹ. Các ngưỡng được định nghĩa để phân biệt ranh giới giữa việc sử
dụng tài nguyên hợp lý hay bất thường.
Nếu không chắc chắn hành vi là bất thường hay khơng, hệ thống có thể dựa vào
các tham số được thiết lập trong suốt quá trình khởi tạo liên quan đến hành vi.

Ranh giới trong trường hợp này là khơng rõ ràng do đó có thể dẫn đến những
cảnh báo sai .
Cách thức thông thường nhất để xác định ranh giới là sử dụng các phân loại
thống kê và các độ lệch chuẩn. Khi một phân loại được thiết lập, ranh giới có
thể được vạch ra nhờ sử dụng một số độ lệch chuẩn. Nếu hành vi nằm bên ngồi
thì sẽ cảnh báo là có xâm nhập.
Cụ thể là: các hệ thống phát hiện động thường tạo ra một profile (dữ liệu) cơ sở
để mô tả đặc điểm các hành vi bình thường, chấp nhận được. Một dữ liệu bao
gồm tập các đo lường được xem xét về hành vi, mỗi đại lượng đo lường gồm
nhiều chiều:
- Liên quan đến các lựa chọn: thời gian đăng nhập, vị trí đăng nhập.
- Các tài nguyên được sử dụng trong cả quá trình hoặc trên một đơn vị thời
gian: chiều dài phiên giao dịch, số các thông điệp gửi ra mạng trong một
đơn vị thời gian
- Chuỗi biểu diễn các hành động
Sau khi khởi tạo dữ liệu cơ sở, q trình phát hiện xâm nhập có thể được bắt
đầu. Phát hiện động lúc này cũng giống như phát hiện tĩnh ở đó chúng kiểm sốt
hành vi bằng cách so sánh mô tả đặc điểm hiện tại về hành vi với mô tả ban đầu
của hành vi được mong đợi (chính là dữ liệu cơ sở), để tìm ra sự khác nhau. Khi
hệ thống phát hiện xâm nhập thực hiện, nó xem xét các sự kiện liên quan đến
thực thể hoặc các hành động là thuộc tính của thực thể. Chúng xây dựng thêm
một dữ liệu hiện tại.
Các hệ thống phát hiện xâm nhập thế hệ trước phải phụ thuộc vào các bản ghi
kiểm tra (audit record) để bắt giữ các sự kiện hoặc các hành động liên quan. Các
hệ thống sau này thì ghi lại một cơ sở dữ liệu đặc tả cho phát hiện xâm nhập.
Một số hệ thống hoạt động với thời gian thực, hoặc gần thời gian thực, quan sát


trực tiếp sự kiện trong khi chúng xảy ra hơn là đợi hệ điều hành tạo ra bản ghi
mô tả sự kiện.

Để có được một hệ thống phát hiện xâm nhập tốt thì cần phải kết hợp cả 2
phương pháp phát hiện sự bất thường và phát hiện lạm dụng, các hệ thống kết
hợp sẽ cho hiệu quả bảo mật tốt hơn và phát hiện nhiều loại tấn công hơn.

Hình 1.2: Sơ đồ kết hợp 2 cơ chế hoạt động
1.3. Một vài sản phẩm IPS/IDS
McAfee IntruShield 3000 [hãng thiết bị McAfee]
● Giảm thiểu rủi ro cho hệ thống theo phương pháp chủ động – Thiết bị
phát hiện và ngăn chặn xâm nhập trái phép McAfee IntruShield đảm bảo
tính sẵn sàng và bảo mật của của các thành phần quan trọng của cơ sở hạ
tầng mạng thông qua các biện pháp chủ động phát hiện và ngăn chặn xâm
nhập trái phép cho phép phát hiện và ngăn chặn các hình thức tấn công
trước khi chúng tác động đến hệ thống.
● Phản ứng của McAfee là IntruShield 3000, tăng cường mật độ cổng cao
và công nghệ IPS ảo để mở rộng khả năng phát hiện mạng cho từng thiết
bị. IntruShield có thể hỗ trợ tối đa 1.000 IPS trên mỗi thiết bị. Hơn thế
nữa, IntruShield có 12 cổng giám sát gigabit để giám sát sáu liên kết song
cơng tồn bộ. IntruShield tích hợp với dữ liệu máy quét VM từ máy quét


Foundstone của McAfee, cũng như Nessus, giúp IPS đánh giá các cuộc
tấn công dựa trên các lỗ hổng thực tế.
● Bảo vệ hệ thống trước các nguy cơ tấn công ngày càng đa dạng – thiết bị
IntruShield 3000 đi kèm với một công cụ quy tắc và một bộ các bộ lọc
mạnh mẽ được thiết kế để chặn tràn bộ đệm, spyware, các cuộc tấn công
shellcode, bot và dị thường giao thức. Các tính năng tiên tiến của nó bao
gồm bảo vệ VoIP, khả năng tích hợp trình qt lỗ hổng và khả năng giải
mã và kiểm tra giao dịch SSL.
● Tính chính xác cao, mức độ cảnh báo giả thấp – Với sự kết hợp cả 3 công
nghệ nhận dạng tiên tiến là: Signature detection, anomaly detection và

DDoS detection, IntruShield cải thiện đáng kể tính chính xác của thiết bị
IDS và giảm thiểu các cảnh báo giả của hệ thống.
Snort – Mã nguồn mở [phát triển bởi Sourcefire]
Snort là một hệ thống phòng chống và phát hiện xâm nhập dựa trên mạng
(IPS/IDS) nguồn mở được phát triển bởi Sourcefire. Snort hoạt động như một
phần mềm đứng giữa sự giao tiếp của hai máy tính. Khơng chỉ chạy trên các hệ
điều hành nguồn mở như GNU/Linux mà Snort cịn có thể chạy được trên các
nền tảng thương mại như Microsoft Windows, OpenBSD, Solaris, HP-UX…
Cisco Stealthwatch
Cisco Stealthwatch là một NIDS và HIDS dành cho các thiết bị Windows,
Linux hoặc macOS. Giải pháp này là một hệ thống phát hiện xâm nhập không
cần tác nhân, cho phép mở rộng quy mô dễ dàng, tùy theo nhu cầu của các tổ
chức và doanh nghiệp. Qau đó, ta có thể chuẩn bị cho bất kỳ phương pháp ngăn
chặn xâm nhập nào trong tương lai.
Cisco Stealthwatch phát hiện và phản hồi xâm nhập thông qua giám sát thực
thể, sử dụng machine learning để thiết lập các đường baseline về những hành vi
được xem là có thể chấp nhận được.
Cisco Stealthwatch cũng sử dụng phương pháp tiếp cận mơ hình hành vi
(behavioral modeling approach) để giám sát các endpoint của mạng, các dịch vụ
được lưu trữ trên đám mây và trung tâm dữ liệu. Các bất thường hoặc hoạt động
đáng ngờ được tìm thấy sẽ được báo cáo nhanh chóng admin, từ đó nhanh
chóng giải quyết các hành vi xâm nhập.
Cisco Stealthwatch được thiết kế để phát hiện phần mềm độc hại trong lưu
lượng mạng được mã hóa mà khơng cần phải giải mã. Việc này giúp đảm bảo


khơng xâm phạm vào các chính sách liên quan đến quyền riêng tư của người
dùng internet.
Ngoài ra, giải pháp này cũng cho phép ngữ cảnh hóa dữ liệu phát hiện xâm nhập
bằng cách bao gồm các thông tin như người dùng, thời gian, địa điểm và ứng

dụng được sử dụng. Điều này mang lại cho bạn kiến thức toàn diện về các hoạt
động đáng ngờ , cho phép kiểm tra đúng dữ liệu phù hợp.

CHƯƠNG 2. ỨNG DỤNG SNORT TRONG IPS/IDS
2.1. Giới thiệu về Snort
Snort là một hệ thống phòng chống và phát hiện xâm nhập dựa trên mạng
(IPS/IDS) nguồn mở được phát triển bởi Sourcefire. Snort hoạt động như một
phần mềm đứng giữa sự giao tiếp của hai máy tính. Khơng chỉ chạy trên các hệ
điều hành nguồn mở như GNU/Linux mà Snort cịn có thể chạy được trên các
nền tảng thương mại như Microsoft Windows, OpenBSD, Solaris, HP-UX….
Tương tự như các bộ quét virus (virus scanner), Snort chỉ có thể chống lại các
cuộc tấn cơng một cách hiệu quả nếu như nó biết được dấu hiệu (signature) của
các cuộc tấn cơng đó. Dựa vào điểm này, các hacker “cao thủ” có thể điều chỉnh
các cuộc tấn cơng để thay đổi signature của cuộc tấn cơng đó. Từ đó các cuộc
tấn cơng này có thể “qua mặt” được sự giám sát của Snort. Như vậy có thể thấy
rằng, để Snort hoạt động một cách hiệu quả thì một trong những yếu tố quan
trọng cần phải chú ý là các luật viết cho Snort, kể cả việc tạo ra các luật mới.
- Tính năng:
Snort có khả năng phát hiện, chống sự xâm nhập trái phép nhằm đảm bảo bảo
mật hệ thống mạng. Vì Snort là một hệ thống phát hiện xâm nhập dựa trên mạng
nên nếu có một đĩa cứng có dung lượng lưu trữ lớn và tốc độ quay nhanh thì hệ
thống Snort sẽ hoạt động tốt hơn. Các packet trước khi được gửi đến máy tính
đích sẽ được snort kiểm tra, thẩm định. Snort có thể phát hiện nhiều loại xâm
nhập như: buffer overflows, stealth port scans, CGI attacks, SMB probes, OS
fingerprinting attempts…
Chức năng chính của Snort đó là packet sniffing, packet logging và networkbased intrusion detection. Khi snort hoạt động, nó sẽ đọc các tập luật, giám sát
luồng dữ liệu chạy qua hệ thống và sẽ phản ứng nếu có bất kì luồng dữ liệu nào
phù hợp với tập luật của nó. Cụ thể hơn, tập luật có thể được tạo ra để giám sát
các nỗ lực quét cổng (scanning), tìm dấu vết (footprinting), hoặc nhiều phương



pháp khác mà các hacker dùng để tìm cách chiếm quyền hệ thống. Nếu một
cuộc tấn công được phát hiện bởi Snort thì nó có thể phản ứng bằng nhiều cách
khác nhau phụ thuộc vào cấu hình mà bạn thiết lập, chẳng hạn như nó có thể gửi
thơng điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sự bất
thường trong các gói tin đó.
2.2. Kiến trúc của Snort
Snort bao gồm nhiều thành phần, với mọi phần có một chức năng riêng.
Các phần chính đó là:

Module giải mã gói tin (Packet Decoder)

Module tiền xử lý (Preprocessors)

Module phát hi n (Detection Engine)

Module log và cảnh báo (Logging and Alerting System)

Module ket xuat thơng tin (Output Module)

Kiến trúc của Snort được mơ tả trong hình sau:

Hình 2.3: Kiến trúc của Agent thu thập, phân tích
Khi hoạt động, Snort sẽ thực hiện việc lắng nghe và thu thập tất cả các gói tin đi
qua nó. Sau đó gói tin sẽ được chuyển đến module Tiền xử lý, rồi module phát
hiện. Tại đây, tùy theo việc có phát hiện được xâm nhập hay khơng mà gói tin
có thể được bỏ qua hoặc đưa vào module Log để xử lý. Khi cảnh báo được xác
định, module kết xuất thông tin sẽ thực hiện việc cảnh báo và đưa ra cảnh báo
theo định dạng mong muốn.
2.2.1. Module giải mã gói tin

Module giải mã gói tin bắt mọi gói tin trên mạng lưu thơng qua hệ thống. Bắt
các gói dữ liệu các nhau của tầng network (Ethernet, SLIP, PPP….);
Một gói tin sau khi được giải mã sẽ được đưa tiếp vào module tiền xử lý.


2.2.2. Module tiền xử lý
Thực hiện 3 nhiệm vụ chính:
Kết hợp lại các gói tin: Khi một dữ liệu lớn được gửi đi, thơng tin sẽ khơng
đóng gói tồn bộ vào một gói tin mà thực hiện phân mảnh, chia thành nhiều gói
tin rồi mới gửi đi. Khi Snort nhận được các gói tin này, nó phải thực hiện kết
nối lại để có gói tin ban đầu. Module tiền xử lý giúp Agent có thể hiểu được các
phiên làm việc khác nhau;
Giải mã và chuẩn hóa giao thức (decode/normalize): cơng việc phát hiện xâm
nhập dựa trên dấu hiệu nhận dạng nhiều khi thất bại khi kiểm tra các giao thức
có dữ liệu có thể được biểu diễn dưới nhiều dạng khác nhau.
Phát hiện các xâm nhập bất thường (nonrule/anormal): xử lý các xâm nhập
khơng thể hoặc rất khó phát hiện bằng các luật thông thường.
2.2.3. Module phát hiện
Đây là module quan trọng nhất, nó chịu trách nhiệm phát hiện các dấu hiệu xâm
nhập. Module phát hiện sử dụng các luật được định nghĩa trước để so sánh với
dữ liệu thu thập được, từ đó xác định xem có xâm nhập xảy ra hay không;
Một vấn đề quan trọng đối với module phát hiện và vấn đề thời gian xử lý gói
tin: một IDS thường nhận rất nhiều gói tin và bản thân nó cũng có rất nhiều luật
xử lý. Khi lưu lượng mạng quá lớn có thể xảy ra việc bỏ sót hoặc khơng phản
hồi đúng lúc. Khả năng xử lý của module phát hiện phụ thuộc vào nhiều yếu tố:
số lượng các luật, tốc độ hệ thống, băng thông mạng;
Một module phát hiện có khả năng tách các phần của gói tin ra và áp dụng luật
lên từng phần của gói tin:
+ IP header
+ Header ở tầng transport: TCP, UDP

+ Header ở tầng application: DNS, HTTP, FTP …
+ Phần tải của gói tin.
2.2.4. Module log và cảnh báo
Tùy thuộc vào module phát hiện có nhận dạng được xâm nhập hay khơng mà
gói tin có thể bị ghi log hay đưa ra cảnh báo. Các file log là các file dữ liệu có
thể ghi dưới nhiều định dạng khác nhau.


2.2.5. Module kết xuất thông tin
Module này thực hiện các thao tác khác nhau tùy thuộc vào việc cấu hình lưu
kết quả xuất ra như thế nào. Tùy theo cấu hình hệ thống mà nó có thể thực hiện
các cơng việc như sau:
- Ghi log file
- Ghi syslog
- Ghi cảnh báo vào cơ sở dữ liệu
- Tạo file log XML
- Cấu hình lại Router, firewall
- Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP
2.3. Bộ luật của Snort
2.3.1. Giới thiệu
Hầu hết các cuộc tấn công đều có dấu hiệu riêng biệt, các thơng tin về dấu hiệu
này sẽ được sử dụng để tạo bộ luật cho snort. Các bẫy (honey pots) được tạo ra
để giả lập các cuộc tấn công và thu thập các dấu hiệu, tìm hiểu xem các kẻ tấn
cơng làm gì cũng như các thông tin về công cụ và công nghệ mà kẻ tấn cơng sử
dụng.
Ngược lại, cũng có các cơ sở dữ liệu về các lỗ hổng mà hacker có thể khai thác.
Cơ sở dữ liệu này được cập nhật thường xuyên. Các dạng tấn công đã biết này
được dùng như dấu hiệu phát hiện xâm nhập. Các dấu hiệu có thể xuất hiện
trong phần header của một gói tin hoặc nằm trong phần nội dung của chúng. Hệ
thống của Snort hoạt động trên các luật (rule), các luật này được dựa trên các

dấu hiệu nhận biết của các dạng tấn cơng. Các luật có thể được áp dụng cho các
thành phần khác nhau của gói tin hoặc dữ liệu.
2.3.2. Cấu trúc luật của Snort
Tìm hiểu một ví dụ:
alert tcp 192.168.0.0/22 23 -> any any (content:”confidential”; msg: “Detected
confidential”)
Cấu trúc luật có dạng như sau:


Hình 2.4: Cấu trúc luật của snort
Cấu trúc luật của Snort đều có 2 phần, Header và Option.
- Phần Header: chứa thơng tin về hành động mà luật đó sẽ thực hiện khi
phát hiện ra có xâm nhập nằm trong gói tin và nó cũng chứa tiêu chuẩn để
áp dụng luật với gói tin đó.
- Phần Option: chứa thơng điệp cảnh báo và các thơng tin về các phần của
gói tin dùng để tạo nên cảnh báo. Phần Option chứa các tiêu chuẩn phụ
thêm để đối sánh với gói tin.
Dưới đây là cấu trúc của phần Header:
Hình 2.5: Cấu trúc phần Header
- Action: là phần quy định loại hành động nào được thực thi. Thông thường
các hành động tạo ra một cảnh báo hoặc log thơng điệp hay kích hoạt một
luật khác.
Protocol: giao thức cụ thể
Address: địa chỉ nguồn và địa chỉ đích
Port: xác định các cổng nguồn, cổng đích của một gói tin
Direction: phần này sẽ chỉ ra địa chỉ nguồn và địa chỉ đích
2.3.2.1. Phần tiêu đề
Dưới đây là trình bày chi tiết của các phần
Action:
Có 5 luật được định nghĩa:

● Pass: cho phép Snort bỏ qua gói tin này
● Log: dùng để log gói tin. Có thể log vào file hay vào CSDL
● Alert: gửi thông điệp cảnh báo khi dấu hiệu xâm nhập được phát hiện
● Activate: tạo ra cảnh báo và kích hoạt thêm các luật khác để kiểm tra
thêm điều kiện của gói tin
● Dynamic: đây là luật được gọi bởi các luật khác có hành động là Activate
Protocol:
Chỉ ra loại gói tin mà luật được áp dụng:
● IP
● ICMP
● TCP


● UDP
Nếu là IP thì Snort sẽ kiểm tra header của lớp liên kết để xác định loại gói tin.
Nếu bất kỳ giao thức nào khác, Snort sẽ sử dụng header IP để xác định loại giao
thức
Address:
Có 2 phần là địa chỉ đích và địa chỉ nguồn. Nó có thể là 1 IP đơn hoặc 1 dải
mạng. Nếu là “any” thì áp dụng cho tất cả địa chỉ trong mạng. Chú ý: nếu là một
host thì có dạng: IP-address/32. VD: 192.168.0.1/32
Snort cung cấp phương pháp để loại trừ địa chỉ IP bằng cách sử dụng dấu “!”.
VD: alert icmp ![192.168.0.0/22] any -> any any (msg: “Ping with TTL=100”;
ttl: 100;)
Lưu ý: dấu “[]” chỉ cần dùng khi đằng trước có “!”
Port:
Số port để áp dụng cho các luật. VD: telnet là 23, DNS là 53 … Port chỉ áp
dụng cho 2 giao thức là TCP và UDP
Để sử dụng 1 dãy các port thì ta phân biệt bởi dấu “:”. VD: alert udp any
1024:8080 -> any any (msg: “UDP port”;)

Direction:
Chỉ ra đâu là nguồn, đâu là đích. Có thể là -> hay <- hoặc <>. Trường hợp <> là
khi ta muốn kiểm tra Client và Server.

2.3.2.2. Các tùy chọn
Rule option nằm ngay phía sau phần rule Header và được nằm trong dấu nháy
đơn, nếu có nhiều option thì các option sẽ được ngăn cách bằng dấu phẩy. Sau
đây là chi tiết một vài option của Snort:
Từ khóa ack
Trong header TCP có chứa trường Acknowledgement Number với độ dài 32 bit.
Trường này chỉ ra số thứ tự tiếp theo gói tin TCP của bên gửi đang được chờ để
nhận. Trường này chỉ có ý nghĩa khi mà cờ ACK được thiết lập. Các công cụ
như Nmap sử dụng đặc điểm này để ping một máy. Ví dụ nó có thể gửi gói tin
TCP tới cổng 80 với cờ ACK được bật và số thứ tự là 0. Bởi vậy bên nhận thấy
gói tin khơng hợp lệ sẽ gửi lại gói tin RST. Và khi nhận được gói RST này,
Nmap sẽ biết được IP này đang tồn tại hay không.
Để kiểm tra loại ping TCP này thì ta có thể dùng luật sau:
Alert tcp any any -> 192.168.0.0/22 any (flags: A; ack: 0; msg: “TCP ping
detected”)
Từ khóa classtype



×