1. Trang chủ
  2. » Luận Văn - Báo Cáo

Đồ án môn học an toàn mạng máy tính snort – ids:ips

19 2 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Đồ Án Môn Học An Toàn Mạng Máy Tính Snort – Ids/Ips
Tác giả Nhóm 7
Người hướng dẫn Lê Đức Thịnh
Trường học Đại Học Quốc Gia TP.HCM Trường Đại Học Công Nghệ Thông Tin
Chuyên ngành An Toàn Mạng Máy Tính
Thể loại Đồ án
Thành phố TP.HCM
Định dạng
Số trang 19
Dung lượng 1,78 MB

Nội dung

IDS/IPS/IDPS thường tập trung xác định các sự cố có thể ảy ra và hỗ trợ ứng phó x với sự ố ằng các cách cơ bản như sau: c b - Ghi log các thông tinh có thể được attacker s d ng.. Xác địn

Trang 1

1

ĐẠI HỌC QUỐC GIA TP.HCM

TRƯỜNG ĐẠI HỌC CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN MÔN HỌC

AN TOÀN MẠNG MÁY TÍNH

NHÓM 7

Giáo viên hướng dẫn – Lê Đức Thịnh

Sinh viên thực hiện:

21521034 – Ngô Tuấn Kiệt

Trang 2

2

TABLE OF CONTENTS

I T ng quan IDS/IPS/IDPS: 4

1 Các khái niệm: 4

2 Cách hoạt động: 4

3 Phận lo 5ại:

4 Các công ngh IDPS: 7ệ

II Snort 8

1 Giới thi u v snort: 8ệ ề

2 Lý do ch n snort: 9ọ

3 Qui trình phân tích gói tin c a snort: 9ủ

4 Cấu trúc c a snort rules 10ủ

5 Cách tạo các signature để phát hi n xâm nh p: 11ệ ậ

6 Qua m t snort: 11ặ

7 Snort logs: 13

III Mô hình tri n khai: 13

IV Cài đặt, cấu hình: 14

V Cài đặt Mở R ộng – elk stack: 15

VI Kết luận: 18 VII Tài liệu tham kh o: 19 ả

Trang 3

3

TABLE OF FIGURES

Figure 1: Life of a packet in Snort 9

Figure 2: Snort rule 10

Figure 3: Architecture 14

Figure 4: Snort 15

Figure 5: elasticsearch 16

Figure 6: elasticsearch.yml 16

Figure 7: kibana.yml 17

Figure 8: kibana dashboard 17

Figure 9: filebeat.yml 18

Trang 4

4

I TỔNG QUAN IDS/IPS/IDPS:

“Intrusion detection” – Phát hi n xâm nhập là quy trình theo dõi các sự ki n di n ra ệ ệ ễ trong một h ệ thống máy tính ho c m ng máy tính và phân ặ ạ tích để nh n biậ ết các dấu

hi u cệ ủa sự ất thườ b ng (hành vi xâm nh p - intrusion) ậ

“Intrusion detection system (IDS)” - Hệthống phát hiện xâm nh p là h ậ ệthống

ph n m m hoầ ề ặc phần c ng t ứ ự động thực hiện quy trình phát hi n xâm nh p ệ ậ

“Intrusion prevention system (IPS)” – H thống ngăn chặn xâm nh p là h ệ ậ ệthống có

tất cả chức năng của IDS, và có th d ng s xâm nh p ể ừ ự ậ

“Intrusion detection and prevention system (IDPS)” – Là sự k t hợp c a IDS và ế ủ IPS

IDS/IPS/IDPS thường tập trung xác định các sự cố có thể ảy ra và hỗ trợ ứng phó x

với sự ố ằng các cách cơ bản như sau: c b

- Ghi log các thông tinh có thể được attacker s d ng ử ụ

- Nhận bi t các hành vi vi ph m chính sách b o mế ạ ả ật

- Theo dõi việc truyền file và xác định các file đáng ngờ

Xác định, ngăn chặn các hoạt động do thám, vốn có thể là dấu hiệu sắp có tấn công (cảnh báo s m) và thông báo cho qu n tr viên ớ ả ị

Xác định các vấn đề trong chính sách bảo mật

Tài liệu hóa các mối đe dọa hiện có đói với một tổ ch c.ứ

Cách IPS ngăn chặn xâm nh p:

- IPS d ng hoừ ạt động t n công: Ng t kấ ắ ết nối, hoặc phiên làm việc đang bị ử s

dụng để ấ t n công Ch n truy c p vào m c tiêu (hoặ ậ ụ ặc các máy có nguy cơ làm

mục tiêu), …

- IPS thay đổi môi trường bảo mật: Tài cấu hình một thiết bị mạng (ví dụ tường lửa, router, switch) để chặn truy c p t attacker hoặc thậm chỉ vá các ậ ừ

l h ng d a trên b quy tỗ ổ ự ộ ắc đã đư c đợ ịnh nghĩa

- IPS thay đổi nội dung của hoạt động tấn công: Loại bỏ hoặc thay thế những thành phần độc hại c a tủ ấn công để nó thành bình thường Hoạt động như proxy và bình thường hóa các yêu cầu được gửi đến (đóng gói lại payload của yêu cầu, b các thông tin header) ỏ

Trang 5

5

IDS/IPS/IDPS không phải lúc nào cũng phát hiện và ngăn chặn đúng Thường s có ẽ hai trường hợp đó là False positive (dương tính giả) và False negative (âm tính giá) Trong thực tế giảm m t tộ ỷ lệ sẽ làm tăng tỷ ệ l còn lại, Tùy theo đánh giá và nhu cầu

để giảm t lệ thông báo sai (Giảm false positive và false negative) ỉ

Dựa trên các k thu t phát hi ỹ ậ ện tấn công:

- Signature-based

- Anomaly-based

- Specification-based

- Hybrid

Specification-based

Hybrid Cách

hoạt

động

Signature là một

mẫu tương ứng với

một nguy cơ tấn

công (cơ sở dữ li u ệ

v ề các cuộc tấn

công đã biết

trước) K thuật ỹ

phát hi n ệ

Signature-based là

một quá trình so

sánh các signature

với các sự ện ki

quan sát được để

xác định sự cố có

thể có

Tạo m t profile ộ

cơ sở (được tạo qua th ng kê, ố máy học, clustering, fuzzing) đại di n ệ cho các hành vi bình thường, hoạt động nào không

gi ng profile ố được đánh dấu là

bất thường

Thu thập các

hoạt động chính xác của chương trình hoặc giao thức và theo dõi

hoạt động của nó dựa trên các ràng

bu c ộ

Kết hợp 3 k ỹ thuật trước

Ưu

điểm

Độ chính xác cao,

t l c nh báo sai ỉ ệ ả

thấp

Phát hiện được

cả hành vi bất thương đã biết và chưa biết

Xác định được chuỗi lệnh bất thường, kiểm tra được tính hợp lý của từng câu

l nh, t l false ệ ỉ ệ positive th p ấ

Kết hợp của

3 ưu điểm bên

Nhược

điểm

Không phản ng ứ

được v i những ớ

hành vi chưa biết

Tỉ l ệ false positive cao, ít

hi u qu trong ệ ả

Khó, thậm chí không th phát ể triển các mô hình

Giới hạn phạm vi ho t ạ

động c a m t ủ ộ

Trang 6

6

trước ho c biặ ến đổi

nh trong nh ng ỏ ữ

tấn công đã biết

môi trường mạng động

giao th c chính ứ xác hoàn toàn

chương trình giao thức

Tích hợp sao cho 3 kỹ thuật riêng

biệt có thể cùng tương tác

Dựa trên ngu n d ồ ữ liệu:

- Network-based

- Host-based

- Hybrid

Network-based IDPS (NIDPS) theo dõi lưu lượng mạng cho một phần của mạng (network segment) hoặc các thiết bị, phân tích các hoạt động mạng và các giao thức, ứng dụng để xác định các hành vi bất thường

- Thường tri n khai biên mể ở ạng, như gần tưởng lửa hoặc router biên, server VPN, server remote access và mạng không dây

- Gồm nhiều sensor đặt ở nhiều điểm khác nhau trong mạng để theo dõi lưu lượng mạng

Host-based IDPS (HIDPS) theo dõi các đặc điểm của một host riêng lẻ và sự

ki n xệ ảy ra trong host đó để phát hi n bệ ất thường

- Theo dõi lưu lượng m ng c a host, log h ạ ủ ệ thống, các iền trình đang chạy, các

hoạt động ng d ng, truy cứ ụ ập và thay đỏi file, thay đổi cấu hình h ệ thống hay

- Được triển khai trên host quan tr ng (các server có thọ ể truy cập t bên ngoài, ừ các server chứa thông tin quan tr ng) ọ

Hybrid IDPS được phát triển để hướng đến xem xét tất cả các dữ li u từ các sư ệ

ki n trên host và s ki n trong ph n m ng, k t h p chệ ự ệ ầ ạ ế ợ ức năng của cả network và host-based IDPS

- Tích hợp ưu điểm của cả 2 kỹ thuật trên

- C n tích h p sao cho 2 k ầ ợ ỹ thuật riêng l có thẻ ể cùng tương tác và hoạt động trong cùng m t hộ ệ thống

Trang 7

7

Các thành phần chính:

Sensor hoặc Agent: theo dõi và phân tích các hoạt động

- Sensor: Network-based IDPS

- Agent: Host-based IDPS

Server qu n lý: thiả ết bị trung tâm nhận các thông tin t các sensor hoừ ặc agent để

qu n lý ả

Server cơ sở dữ liệu: nơi lưu trữ các thông tin sự kiện theo dõi được bởi các sensor hay agent và server quản lý (optional)

Console: chương trình cung cấp giao diện tương tác với IDPS cho người dùng

hoặc quản tr viên (GUI or CLI) ị

Thu thập thông tin:

- Thu thập thông tin trên host ho c m ng t các hoặ ạ ừ ạt động quan sát được Ví

dụ: OS, các host, các ứng dụng được dùng, xác định các đặc điểm chung của

m ng, ạ …

Ghi log:

- Ghi log các dữ liệu liên quan đến s ự kiện phát hiện được

- Ghi log các dữ u có th liệ ể được dùng để ể ki m tra tính h p l cợ ệ ủa cảnh báo, điều tra các sự s và liên kết các sự kiện giữa IDPS và các ngu n log khác ố ồ

- Các trường dữ liệu phổ biến: thời gian xảy ra sự kiện, loại sự kiện, mức độ quan tr ng (ví d ọ ụ độ ưu tiên, mức độ nghiêm trọng, tác động, độ tin c y), ậ hành động ngăn chặn đã thực hiện (nếu có), gói tin bắt được (NIDS), user ID (HIDS)

- Thông thường, log nên được lưu trữ ở ả ội bộ c n và tập trung để đảm bảo tính toàn vẹn và s n sàng cẵ ủa dữ liệu

Phát hiện:

- Theo ngưỡng (Threshold): là 1 giá trị thiế ật l p giới hạn giữa hành vi bình thường và bất thường, xác định mức đ tộ ối đa có thể chấp nhận được (là bình thường)

- Blacklists (hot lists): là m t danh sách các thộ ực thể ời rạ r c (có th là hosts, ể

Trang 8

8

file, hay phần m rở ộng file) đã được xác định trước đó là có liên quan đến

hoạt động độc hại, được dùng để nhận d ng và ch n các hoạ ặ ạt động có nguy

cơ cao là có hại, và cũng dùng để gán độ ưu tiên cho hơn cho các cảnh báo

có liên quan đến blacklist

- Whitelist: là một danh sách các thực thể ời rạc đã được biết là bình thườ r ng, được sử d ng nhằụ m giảm ho c lo i b ặ ạ ỏcác trường hợp false positive (dương tính giả) bao g m các hoồ ạt động bình thường t ừ các host đáng tin cậy

- Thiết lập c nh báo ả

- Xem và chỉnh s a mã ngu n ử ồ

Ngăn chặn:

- IDPS thường cho phép quản trị viên cấu hình khả năng ngăn chặn cho mỗi loại cảnh báo mà nó đưa ra

- Thường bao gồm bậ ắt khả năng ngăn chặn, cũng như chỉ địt/t nh rõ loại khả năng ngăn chặn nào nên dùng

II SNORT

Snort là Open Source IDS (NIDS) thông d ng nhụ ất trên thế ớ ử ụ gi i s d ng một tập

h p quy t c giúp phát hiợ ắ ện hành động đáng ngờ và s d ng nh ng quy tử ụ ữ ắc đó để tìm

kiếm những gói tin gi ng và gố ửi thông báo đến cho người dung (Signature-based) Snort cũng có thể được chạy với mode inline để hoạt động như một IPS

Các mode c a snort: ủ

- Sniffer Mode: Theo dõi l u lư ượng m ng trên mạ ột giao diện c ụ thể và hi n th ể ị thông tin về các gói tin trên màn hình

- Packet Logger Mode: Ch ế độ này cho phép Snort l u tr các gói tin m ng b bư ữ ạ ị ắt được vào m t tộ ệp log để ểm tra sau này ki

- Network Intrusion Detection Mode (NIDS): Snort theo dõi lưu lượng m ng và ạ

so sánh nó với các t p luậ ật (rules) được xác định trước để phát hi n xâm nh p ệ ậ

hoặc các hoạt động đáng ngờ trên m ng Khi phát hi n mạ ệ ột tấn công hoặc mẫu xâm nh p, Snort ghi l i thông tin v s c và có th ậ ạ ề ự ố ể thực hiện các hành động

nh gư ửi cảnh báo hoặc ngăn chặ ư ượng độc hại.n l u l

Trang 9

9

- Inline Mode: Chế độ này còn được gọi là IPS (Intrusion Prevention System) Snort hoạt động nh mư ột tường l a và có khử ả năng ngăn chặ ư ượn l u l ng m ng ạ

độc hại bằng cách chặn các gói tin xâm nhập trước khi chúng đạt đích

Mã nguồn mở: Snort là một dự án mã nguồn mở, điều này có nghĩa là mã nguồn của nó có thể được xem xét và kiểm tra bởi cộng đồng toàn cầu Do đó nó đã tạo ra

một hệ thống b o m t m ng m nh m ả ậ ạ ạ ẽ và đáng tin cậy với sự đóng góp từ nhi u nhà ề phát tri n trên th gi i ể ế ớ

Khả năng phát hiện cao: Snort s dử ụng nhiều phương pháp phân tích và nhận biết xâm nh p, bao gậ ồm cả ểm tra chữ ki ký, phân tích dựa trên nội dung, và theo dõi hành vi mạng Điều này giúp nó phát hiện được nhiều loại tấn công khác nhau và cung cấp b o vả ệ toàn diện cho mạng

Cộng đồng và H ỗ trợ: Có một cộng đồng r ng l n cộ ớ ủa người dùng Snort, bao gồm

cả những người dùng chuyên nghiệp và cộng đồng người sử ụ d ng bình thường Điều này đảm bảo rằng sẽ luôn có nhiều người hỗ trợ bạn khi gặp khó khăn

Linh hoạt và Tu ỳ chỉnh: Snort cung c p kh ấ ả năng tuỳ chỉnh cao đố ới các quy i v

tắc, cho phép người qu n tr tinh ch nh cả ị ỉ ấu hình để ph n ng v i nhu c u c ả ứ ớ ầ ụ thể ủa c

h ệ thống m ng ạ

Hiệu suất: Snort đượ ối ưu hóa để hoạt độc t ng hi u qu trên nhi u n n t ng và môi ệ ả ề ề ả trường mạng Nó có thể đáp ứng yêu cầu về hiệu suất của các hệ thống mạng l n và ớ

phức tạp

Figure 1: Life of a packet in Snort

Trang 10

10

Trong mô hình kiến trúc trên, hệ thống Snort được chia thành 4 ph ần:

Module Decoder: X lý gi i mã các gói tin Snort s dử ả ử ụng thư viện pcap để ắt b

mọi gói tin trên mạng lưu thông qua hệ thống Gói tin sau khi được giải mã sẽ đưa vào module ti n x ề ử lý

Module Preprocessors: Tiền x , chu n bử lý ẩ ị gói tin để đưa cho module phát hiện phân tích Nó kết hợ ại các gói tin đã đượp l c phân mảnh để ửi đi trở ại thành một g l gói tin nguyên vẹn ban đàu Sau đó nó sẽ ả gi i mã và chu n hóa giao thẩ ức

(decode/normalize) Nếu snort chỉ thực hiện đơn thuần vi c so sánh d u vệ ữ liệ ới dấu

hi u nh n d ng s x y ra tình tr ng b sót hành vi xâm nh p Do v y, 1 s module ệ ậ ạ ẽ ả ạ ỏ ậ ậ ố tiền x ử lý của Snort phải có nhiệm v gi i mã và ch nh sụ ả ỉ ửa, sắp x p lế ại các thông tin đàu vào Ngoài ra nó còn cung cấp plugin để phát hiện các xâm nh p bậ ất thường (non-rule/anomaly) Hi n Snort cung cệ ấp đi kèm 2 plugin là portscan (quét cổng) và

bo (back office m t lo n trojan) – – ộ ạ

Module Detection Engine: Phát hi nệ Đây là module quan trọng nhất của snort Nó chịu trách nhiệm phát hiện các dấu hiệu xâm nhập Module sử d ng các luật (rule) ụ được định nghĩa từ trư c đểớ so sánh với dữ li u thu thập được từ ệ đó xá định xem có xâm nh p x y ra hay không ậ ả

Figure 2: Snort rule

Trang 11

11

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 chính là 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 ộ Trong snort, có 5 action được định nghĩa: Pass (bỏ qua gói tin này), Log (dùng để log gói tin), Alert ( gửi c nh báo), Drop/Reject (bả ỏ), Activate ( tạo ra c nh báo hoả ặc kích ho t thêm luạ ật khác để ểm tra điề ki u ki n cệ ủa gói tin) và Dynami c (luật được

gọi bởi luật Activate)

Protocol: M t giao thộ ức cụ thể như tcp, udp, icmp, ip

Src/Dst IP: Địa chỉ ngu n hoồ ặc địa chỉ đích (tùy thuộc vào hướng của gói tin) Snort cũng cung cấp toán tử “!” để loại trử địa chỉ ip

Port: C ng cổ ủa địa ch ngu n hoỉ ồ ặc địa chỉ đích

Option: N m ngay sau phằ ần header, được bao bọc trong dấu ngoặc đơn, nếu có nhiều options thì được phân cách nhau b i d u chở ầ ấm phẩy M t option s có 2 ph n ộ ẽ ầ

một là từ khóa và hai là giá tr ị được phân cách nhau b i d u hai chở ấ ấm

Các t khóa ph bi n trong ph n Option: ừ ổ ế ầ

- Từ khóa flags: Ki m tra c ể ờ trong head (ACK, SYN, FIN,…)

- Từ khóa classtype: để phân loại và gom nhóm độ ưu tiên của lu t ậ

- Từ khóa content: Tìm kiếm một m u d ẫ ữ liệu bên trong gói tin, thường được dùng như các signature để kiểm tra

- Từ khóa prce: dùng để ểm tra mẫ ki u d u bên trong gói tin thông qua regex ữ liệ

- Từ khóa dsize: Đối sánh với chiều dài ph n d u ầ ữ liệ

Dựa trên những gì snort phát hiện, hoặ ừ mc t ột tool thứ 3 (Wireshark, Tcpdump,…)

để ta có thể xây dựng b ộsignature để ết snort rules trên đó mộ vi t cách dễ dàng hơn

dựa trên header, payload, … Ngoài ra, xem xét log hệ thống để theo dõi các s ki n ự ệ quan trọng và không bình thường, phân tích log để tìm ki m các mế ẫu hay đặc điểm của các cuộc tấn công là một điều t i quan tr ng ố ọ

Một cách chuyên nghiệp hơn đó chính là các tiêu chuẩn an toàn như PCI-DSS, HIPAA, NIST,… Ta có thể dựa trên đó để xây dựng một bộ xương sống tiêu chuẩn cho các snort rules

Một số phương pháp có thể được sử ụng để ố ắ d c g ng qua m t Snort hoặ ặc các hệ thống phát hiện xâm nhập (IDS) khác Dưới đây là một số cách mà người tấn công

có thể dùng để qua mặt Snort:

Trang 12

12

- Thay Đổi Giao Thức: ử ụ S d ng các bi n th cế ể ủa giao thức để tránh các quy tắc Snort có th ki m tra ể ể

- S D ng Mã Hóa: S dử ụ ử ụng mã hóa để che gi u n i dung thấ ộ ực sự ủ c a gói tin, làm cho nó khó kiểm tra bởi IDS

- Chia Nh Gói Tin: Chia nh ỏ ỏ các gói tin để làm cho chúng khó b nh n diị ậ ện như

là m t phộ ần của một cuộc tấn công

- S D ng Kử ụ ỹ Thuật Tấn Công "Slow and Low": T n công h ấ ệ thống mục tiêu với

tốc đ thấộ p và d n dầ ần tăng cường, làm cho các cảm biến IDS khó nh n di n ậ ệ

- S D ng Kử ụ ỹ Thuật "Fragmentation": Chia nh ỏ các gói tin thành các phần nh ỏ để tránh việc bị nh n di n bậ ệ ởi IDS

- Thay Đổi Địa Chỉ IP và Cổng: Sử dụng nhiều địa chỉ IP và cổng khác nhau để

t o ra s ạ ự khó khăn cho việc phân tích traffic

- S D ng Các Công C B o V ử ụ ụ ả ệ Khỏi IDS: Các công c và k ụ ỹ thuật như

SnortSam có th ể được s dử ụng để ngăn chặn các IP đang được theo dõi b i IDS ở

Do đó, cộng đồng an ninh mạng và các chuyên gia an ninh luôn phát tri n các ể phương pháp và công cụ mới để ngăn chặn các nỗ lực cố gắng qua mặt hệ thống

b o mả ật

Một ví dụ như sau:

alert tcp any any -> $HOME_NET 80 (msg: "Comment SQL

Injection Detected"; content: " "; sid:10000002;)

alert tcp any any -> $HOME_NET 80 (msg: "Comment SQL

Injection Detected"; content: "#"; sid:10000003;)

Phát hi n SQL Injection v i payload có chệ ớ ứa hoặc # Rules snort này khá đơn ,

gi n và ta hoàn toàn có th bypass vì nó không bao quát tả ể ất cả cuộc tấn công sql injection như " or ""=" ,

Vì vậy ta c n nâng c p nó lên mầ ấ ột chút như:

Với boolean sql injection dùng rule:

alert tcp any any -> any any (msg:”Possible Boolean-based Blind SQL Injection Attempt”; flow:to_server,established; content:”GET”; nocase; http_method; content:”/”;

http_uri;

){2}[^&]*’/i”; sid:1000002;)

Với inline comment:

Ngày đăng: 11/02/2025, 16:20