Đi cùng với sự phát triển không ngừng của các nhóm ngành nghề kinh tế, xã
hội; lĩnh vực khoa học số cũng đã và đang d ần chiếm giữ vị thế quan trọng trong xu
thế phát triển chung của xã hội loài người. Nhận thấy được tầm quan trọng đó, cùng
với sự yêu thích cá nhân, tôi đã tham gia khóa học chu yên ngành mạng máy tính tại
trường Đại Họ c Hoa Sen. Bên cạnh sự nỗ lực của bản thân, cùng v ới sự giúp đỡ, hỗ
trợ của các thầy cô, tôi đã có kết quả tốt và có được cơ hội thực hiện đề tài tốt nghiệp
này
KHOA KHOA HỌC CÔNG NGHỆ
NGÀNH MẠNG MÁY TÍNH
LỚP VT081A
BÁO CÁO ĐỀ TÀI TỐT NGHIỆP
Tên sinh viên thực hiện:
Giáo viên hướng dẫn:
QUAN MINH TÂM
LƯU THANH TRÀ
Ngày nộp báo cáo: .............................................................
Người nhận báo cáo (ký tên và ghi rõ họ tên):
……………………………………………………………………………………..
Tháng 07 /năm 2011
TRÍCH YẾU
Đi cùng với sự phát triển không ngừng của các nhóm ngành nghề kinh tế, xã
hội; lĩnh vực khoa học số cũng đã và đang dần chiếm giữ vị thế quan trọng trong xu
thế phát triển chung của xã hội loài người. Nhận thấy được tầm quan trọng đó, cùng
với sự yêu thích cá nhân, tôi đã tham gia khóa học chuyên ngành mạng máy tính tại
trường Đại Học Hoa Sen. Bên cạnh sự nỗ lực của bản thân, cùng với sự giúp đỡ, hỗ
trợ của các thầy cô, tôi đã có kết quả tốt và có được cơ hội thực hiện đề tài tốt nghiệp
này. Để đạt kết quả tốt với những mục tiêu đề ra, tôi đã tham khảo thêm tư liệu bên
ngoài, cùng với sự hướng dẫn trực tiếp của giáo viên Lưu Thanh Trà. Khi bắt tay vào
thực hiện đề tài tốt nghiệp này, tôi mới nhận thấy được nhưng khó khăn trong kỹ thuật
thực tiễn, cũng như những lỗ hổng kiến thức chưa vững chắc của bản thân để củng cố
và rèn luyện thêm. Tôi luôn cố gắng để hoàn thiện các kỹ năng chuyên ngành, kiến
thức cần có trong nghề không để chỉ phục vụ cho luận án tốt nghiệp này, mà đó sẽ là
nền tảng tốt cho tôi trong công việc ở tương lai.
1
MỤC LỤC
TRÍCH YẾU................................................................................................................. II
MỤC LỤC .................................................................................................................. III
ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN ........................................................ V
LỜI CẢM ƠN ............................................................................................................ VI
NHẬP ĐỀ ...................................................................................................................... 7
NỘI DUNG ĐỀ TÀI ..................................................................................................... 8
CHƯƠNG I: TỔNG QUAN IDS-IPS, SNORT..................................8
1.
TỔNG QUAN IDS – IPS ........................................................................................ 8
1.1.
Khái niệm ..................................................................................................................................................... 8
1.2.
Phương thức phát hiện ................................................................................................................................. 9
1.3.
Phân loại ....................................................................................................................................................... 9
2.
TỔNG QUAN SNORT TRÊN MÃ NGUỒN MỞ ................................................ 15
2.1.
Giới thiệu .................................................................................................................................................... 15
2.2.
Kiến trúc Snort............................................................................................................................................ 15
2.2.1.
Packet decoder ....................................................................................................................................... 16
2.2.2.
Preprocessors ......................................................................................................................................... 17
2.2.3.
Detection Engine.................................................................................................................................... 19
2.2.4.
Outputs................................................................................................................................................... 19
3.
RULES .................................................................................................................. 20
3.1.
Giới thiệu .................................................................................................................................................... 20
3.2.
Rule header ................................................................................................................................................. 20
3.3.
Rule option ................................................................................................................................................. 22
3.3.1.
Nhóm General ........................................................................................................................................ 23
3.3.2.
Nhóm Payload........................................................................................................................................ 27
3.3.3
Nhóm Non-payload................................................................................................................................ 37
3.3.4
Nhóm Post-Detection ............................................................................................................................. 44
CHƯƠNG II: TRIỂN KHAI SNORT...............................................48
1.
YÊU CẦU .............................................................................................................. 48
2.
CÀI ĐẶT ............................................................................................................... 49
3.
CẤU HÌNH CƠ BẢN............................................................................................ 51
4.
SỬ DỤNG BASE THEO DÕI CẢNH BÁO ........................................................ 53
5.
TÍCH HỢP XÁC ĐỊNH VÙNG CỦA ĐỊA CHỈ IP............................................. 59
6.
THEO DÕI NHỮNG CẢNH BÁO SNORT TRÊN GOOGLEEARTH. ........... 60
7.
TÙY CHỈNH CẤU HÌNH SNORT.CONF .......................................................... 65
CHƯƠNG III: XÂY DỰNG SNORT IPS ........................................70
1.
SNORT INLINE ................................................................................................... 70
1.1.
Giới thiệu .................................................................................................................................................... 70
1.2.
Triển khai.................................................................................................................................................... 70
2.
SNORT SAM......................................................................................................... 73
2.1.
Giới thiệu .................................................................................................................................................... 73
2.2.
Triển khai.................................................................................................................................................... 73
2.2.1.
Triển khai SnortSam và iptables ................................................................................................................. 74
2.2.2.
Triển khai SnortSam và ACL trên router Cisco .......................................................................................... 78
CHƯƠNG IV: TÌM HIỂU CÁC LUẬT DÙNG TRONG SNORT ..84
1.
NGUYÊN TẮC VIẾT LUẬT ................................................................................ 84
2.
KHẢO SÁT LUẬT 1 ............................................................................................. 84
3.
KHẢO SÁT LUẬT 2 ............................................................................................. 85
4.
KHẢO SÁT LUẬT 3 ............................................................................................. 87
5.
KHẢO SÁT LUẬT 4 ............................................................................................. 89
6.
KHẢO SÁT LUẬT 5 ............................................................................................. 89
7.
KHẢO SÁT LUẬT 6 ............................................................................................. 90
8.
KHẢO SÁT LUẬT 7 ............................................................................................. 90
9.
KHẢO SÁT LUẬT 8 ............................................................................................. 94
10.
KHẢO SÁT RULE CHỐNG DOS/DDOS TẠI APPLICATION LAYER ........ 100
11.
PHP – SHELL UPLOAD ................................................................................... 105
KHÓ KHĂN – THUẬN LỢI ................................................................................... 108
HƯỚNG PHÁT TRIỂN TƯƠNG LAI ................................................................... 109
PHỤ LỤC .................................................................................................................. 110
1.
TÀI LIỆU THAM KHẢO ................................................................................... 110
2.
WEBSITE THAM KHẢO .................................................................................. 110
3.
PHỤ LỤC HÌNH ẢNH ...................................................................................... 111
1
ĐÁNH GIÁ CỦA GIÁO VIÊN HƯỚNG DẪN
.....................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
......................................................................................................................................
Ngày… tháng… năm…
KÝ TÊN
………………………………………..
LỜI CẢM ƠN
Với đề tài “Tìm hiểu và phát triển các luật để phòng chống các virus mới sử
dụng hệ thống mã nguồn mở Snort”, tôi đã có dịp tiếp xúc thực tế với hệ thống IDSIPS trên môi trường mã nguồn mở và phương án triển khai trong môi trường thực tế,
tiếp thu được một số dạng tấn công qua môi trường internet…
Để được kết quả trên, tôi chân thành cảm ơn thầy Lưu Thanh Trà
– trưởng ngành Mạng máy tính, trường Đại học Hoa Sen, đã hướng dẫn chi tiết, đề
xuất những phương án mang tính chất định hướng, tạo thuận lợi cho việc nghiên cứu
đề tài để tôi
có thể hoàn thành quyển báo cáo này. Ngoài ra, với những kiến thức chuyên ngành
thầy đã chia sẻ trong thời gian làm báo cáo sẽ thật sự giúp ích cho tôi trong công việc
tương lai theo hướng xây dựng và kiện toàn bảo mật bảo mật hệ thống.
Trong thời gian thực hiện nghiên cứu đề tài từ 03/2011 đến 07/2011, thầy đã hỗ
trợ tôi tiếp xúc với những môi trường an ninh mạng thực tế, tạo tiền đề cho việc định
hướng công việc trong tương lai.
Trân trọng.
3
NHẬP ĐỀ
Trong thời gian gần đây, an ninh mạng được xem như là vấn đề nan giải cho
các nhà quản trị mạng và những công ty cung cấp giải pháp bảo mật… Với hàng loạt các
cuộc tấn công vào các cơ quan chính phủ, công ty, ngân hàng… đã tạo nên một
bài toán là:
Khắc phục cho hệ thống đã bị tấn công.
Phương án chống lại áp dụng cho những hệ mạng khác.
Cập nhật mới nhất những dạng tấn công để phòng tránh trước khi cuộc
tấn công xảy ra.
Với những hãng cung cấp giải pháp an ninh nổi tiếng như Kaspersky, Norton,
Cisco, Checkpoint…thì giá thành triển khai cao, không thể tham khảo mã nguồn vì
đây là những sản phẩm thương mại phần lớn là mã nguồn đóng (close source).
Tồn tại cho việc nghiên cứu và áp dụng thực tế, Snort đã phát huy tính năng
mạnh mẽ thông qua khả năng đáp ứng nhu cầu an ninh trên những hệ
mạng khác nhau. Khả năng tùy biến linh động trên mã nguồn mở giúp
Snort có một số lượng người dùng lớn trên thế giới, tạo nên một cộng đồng phát
triển Snort có chiều rộng về
số thành viên lẫn chiều sâu về kiến thức bảo mật.
4
NỘI DUNG ĐỀ TÀI
CHƯƠNG I: TỔNG QUAN IDS-IPS, SNORT
1.
TỔNG QUAN IDS – IPS
1.1. Khái niệm
Hệ thống phát hiện xâm nhập (IDS) là một hệ thống được xây dựng cho việc
phát hiện các hành vi xâm phạm (truy xuất) không hợp pháp và là một cổng theo dõi
hoạt động trên hệ thống mạng hoặc một số máy trạm được chỉ định. Một IDS
hoạt động dựa vào phân tích các luồng thông tin, tập tin ghi log của một (nhiều) máy
trạm, router,
firewall,
server…
sau
đó
những
thông
tin
này
được
so
sánh với những signature được lưu bên trong chính IDS. Những signature là những
dấu hiệu xâm nhập
đã được biết đến. Việc so sánh thông tin nguồn với những signature giúp cho IDS có
thể nhận biết được thông tin di chuyển trong mạng có thể gây ra nguy cơ hoặc đang bị
tấn công hay không, từ đó IDS sẽ có những cảnh báo đến người quản trị.
Trong khi đó một IPS có thể đưa ra hành động để phản ứng lại những hành vi
bất hợp lệ như việc ngắt kết nối hoặc hủy những packets có thể gây tổn thương cho
mạng. Việc phản ứng có thể thực hiện một cách tự động hoặc có thể được chỉ định bởi
quản trị viên.
Ngày nay, sự khác biệt giữa IDS và IPS là không rõ ràng. Một IDS có thể thực
hiện chức năng của một IPS. Một số IDS hiện nay có thể đóng vai trò như một IPS với
những hành động phản ứng như là một tùy chọn. Thông thường, đối với một hệ thống
mạng nhỏ thì IPS là giả pháp lựa chọn hàng đầu cho việc bảo đảm an ninh hệ thống do
khả năng phát hiện, cảnh báo và ngăn chặn của IPS một cách tự động. Trong khi đó,
tại những mô hình mạng quy mô lớn thì IDS chỉ có nhiệm vụ theo dõi và cảnh báo,
việc ngăn chặn được giao cho những thiết bị khác an ninh chuyên dụng
khác như tường lửa… Việc phân bổ nhiệm vụ này giúp cho hệ thống vận hành một
cách linh
động và bảo mật hơn.
5
IDS/IPS có thể là xây dựng bằng phần mềm hoặc được kết hợp vào thiết bị phần
cứng.
1.2. Phương thức phát hiện
Tương tự những phần mềm diệt virus hiện tại, các IDS hoạt động dựa vào 2
cách thức chính: Signature detection và Anomaly dectection.
Sinatures là những dấu hiệu tích lũy các hành vi (cách thức) hoạt động trong
những dạng tấn công đã được biết đến, IDS sẽ so sánh tình trạng hiện tại với cơ sở dữ
liệu được lưu bên trong nó để xác định gói tin. Những signature cần được phát triển và
cập nhật thường xuyên từ những nhà phát triển phần mềm hoặc thiết bị IDS/IPS. Việc
cập nhật có thể là miễn phí hoặc tính phí tùy vào nhà sản xuất.
Anomaly dectection:
Phương thức phát hiện bất
thường dựa vào
cách hoạt động bình thường của IDS để phát hiện ra những bất thường có thể xuất
hiện trong tương lai. Thông thường, việc phát hiện bất thường dựa vào những hồ sơ
mẫu có sẵn
để lấy mẫu, tìm ra những hành động nào là bình thường, từ đó những hành động tấn
công không khớp với mẫu này được xem là không hợp lệ.
1.3. Phân loại
Dựa vào nhiệm vụ và vị trí của IDS khi triển khai trên thực tế, IDS được chia
thành 3 loại:
NIDS: Network-based Intrusion Detection System.
HIDS: Host-based Intrusion Detection System.
DIDS: Distributed Intrusion Detection System.
Network-based Intrusion Detection System
6
Hình
1: Mô hình
NIDS
NIDS được triển khai để theo dõi trên một phân khúc mạng hoặc một subnet,
thường được bố trí tại các gateway kết nối với router,
switch,
firewall… Thông
thường, để thiết lập một NIDS thì NIC (Network Interface Card) cần chuyển sang chế
độ Promiscuous, ở chế độ này thì NIC có thể theo dõi toàn bộ lưu lương di chuyển qua
mạng.
NIDS khi phân
tích
gói tin ở chế độ stream, nghĩa là
phân
tích header hoặc
payload của gói tin thì còn gọi là NIDS stateless. Đối với những gói tin bị phân mảnh
thì NIDS sẽ cần ráp lại thành một tập tin hoàn chỉnh sau đó mới xem xét thông tin bên
trong, hay còn gọi là NIDS statefull.
Ưu điểm:
Chi phí thấp, vì ta chỉ cần đặt NIDS tại những đoạn mạng trọng yếu, thiết bị
được lắp đặt tại vị trí nhất định mà không cần cài thêm phần mềm trên toàn mạng.
7
NIDS được cài đặt và theo dõi hoàn toàn độc lập với hệ thống, không tác động
đến sự vận hành trên những thiết bị khác, không bị ảnh hưởng khi trong mạng có vấn
đề xảy ra.
Kẻ tấn công khó có thể xóa bỏ dấu vết khi tấn công do NIDS sử dụng thông tin
theo thời gian thật để ghi log. Tập tin log không thể xóa bỏ do không nằm ở máy trạm,
NIDS giúp nhanh chóng phát hiện được kẻ tấn công là ai phục vụ công tác điều tra.
Kẻ tấn công không thể biết sự tồn tại của IDS vì thiết bị chỉ nhận thông tin về
mà không trả lời bất kỳ yêu cầu nào, nên việc phát hiện IDS là khó khăn.
Tính chất theo dõi bao phủ cho toàn hệ thống mạng.
Nhược điểm:
Khi NIDS xử lý các gói tin trên mạng rộng hoặc có mật độ lưu thông cao sẽ
dẫn đến tình trạng phân đoạn NIDS sẽ dùng tối đa hiệu xuất, có thể gây ra tình trạng
nghẽn mạng gây mất gói tin dẫn đến việc bỏ qua những nguy cơ tiềm
ẩn có thể. Những nhà phát triển khắc phục bằng cách cứng hóa thiết bị để tăng tốc
độ làm việc của IDS
Đối với những luồng thông tin bị mã hóa thì NIDS dường như không thể phát
hiện được, nếu có việc tấn công từ trong kết nối VPN thì NIDS không còn phát hiện
hiệu quả.
Không thể biết cuộc tấn công có thành công hay không.
Yêu cầu cập nhật những dấu hiệu mới là cần thiết để cho NIDS hoạt động hiệu
quả.
Một số hệ thống NIDS cũng gặp khó khăn khi phát hiện các cuộc tấn
công
mạng từ các gói tin phân mảnh. Các gói tin định dạng sai này có thể làm cho
NIDS
hoạt động sai và đổ vỡ.
Host-based Intrusion Detection System
8
Hình
2: Mô hình
HIDS
HIDS có hai điểm khác nhau so với NIDS là:
HIDS được cài đặt để bảo vệ những host cục bộ.
Vận hành ở chế độ nonpromiscuous.
Host-based IDS tìm kiếm dấu hiệu của xâm nhập vào một host cục bộ; thường
sử dụng các cơ chế kiểm tra và phân tích các thông tin được logging. Nó tìm kiếm các
hoạt động bất thường như login, truy nhập file không thích hợp, bước leo thang các
đặc quyền không được chấp nhận.
Kiến trúc IDS này thường dựa trên các luật (rule-based) để phân tích các hoạt
động trong cách host, HIDS cài đặt cho việc theo dõi cácchủ, máy
máy
trạm,
laptop…
9
Vị trí triển khai HIDS được phân tán trong toàn mạng nên đây là bất lợi khi
môi trường mạng của bạn phát triển lớn hơn sau này, nghĩa là số lượng HIDS cũng
cần đượng tăng lên.
Ưu điểm:
Do hoạt động dựa vào sự ghi nhận tập tin log nên HIDS có thể cho biết cuộc
tấn công có thành công hay chưa.
Giám sát cụ thể hoạt động của hệ thống, việc mà NIDS không thể đảm nhiệm
như: truy cập tập tin, đổi quyền, đăng nhập trái phép…
Thích nghi tốt trong môi trường chuyển mạnch, mã hóa: việc chuyển mạch và
mã hoá thực hiện trên mạng và do HIDS cài đặt trên máy nên nó không bị ảnh hưởng
bởi hai kỹ thuật trên (dữ liệu mã hóa đã được giải mã tại host).
Chỉ áp những rule cần thiết phụ thuộc vào server đang giám sát (Web server,
FTP server…)
Triển khai cài đặt lên hạ tầng mạng đã có, không yêu cầu thêm thiết bị phần
cứng.
Nhược điểm:
Giá thành cao: một số lượng HIDS phân tán trong toàn mạng đòi hỏi giá thành
triển khai cao. Một số host không được bảo vệ cũng có thể là một lỗ hổng an ninh gây
hại đến hệ thống, kẻ tấn công có thể lấy những thông tin xác thực, tài liệu dễ bị xâm
phạm…
Mật độ bao phủ thấp.
Khó quản trị do các HIDS bị phân tán trong toàn mạng, HIDS cần cài đặt trên
những host quan trọng dẫn đến việc cấu hình, quản lý, cập nhật là một
khối lượng công việc lớn cho người điều hành hệ thống.
Thông tin không đáng tin cậy, do hacker có thể xóa dấu vết sau khi xâm nhập
kéo theo là việc HIDS hoạt động sai, không phát hiện được xâm nhập.
10
Không phát huy được khả năng khi một cuộc tấn côn DOS, DDOS xảy ra.
Hệ thống bên trong sụp đổ kéo theo HIDS cũng mất tác dụng.
Distributed Intrusion Detection System
Hình
3: Mô hình
DIDS
DIDS là một giải pháp tổng thể trong việc xây dựng, quản lý hệ thống cảnh báo
an ninh mạng. Mô hình quản lý trập trung trong DIDS giúp tăng hiệu suất giám sát
hoạt động trên đường truyền mạng, giảm thiểu nguy cơ gây gián đoạn từ bất cứ vị trí
nào. Để hoạt động được như vậy, thì mô hình DIDS kết hợp NIDS và HIDS, những
thông tin này được quản lý tập trung tại trạm quản lý cho việc kết xuất báo cáo, cập
nhật rule mới cho những IDS khác được phân bổ trong hệ thống.
11
2.
TỔNG QUAN SNORT TRÊN MÃ NGUỒN MỞ
2.1. Giới thiệu
Snort là một NIDS được phát triển bởi Martin Roesch, đây là một phần 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 được điều hành bởi SOURCEfire và cũng nằm trong những nền tảng phát triển
của hãng tường lửa nổi tiếng Checkpoint.
Ưu điểm của Snort là nhẹ, mạnh mẽ, có tính tùy biến cao khi triển khai trên hệ
thống và đây cũng là mục tiêu mong muốn của nhà phát triển cũng như của người sử
dụng.
Snort đã thể hiện được tính uyển chuyển của mình khi có thể triển khai trên
nhiều nền tảng hệ điều hành x86, x64 khác nhau như: Windows, Linux, FreeBSD…
và kiến trúc Sparc như: MacOSX, Solaris, HP-UX…Việc kết hợp với các thiết bị
an ninh khác để chặn việc truy cập như: ACL của Cisco, Checkpoint,
iptables trên Linux… cũng là một lợi điểm khi có ý định xây dựng Snort.
Hiệu suất cao: Snort có thể theo dõi 24/7 với thời gian thật, nên việc phát hiện
xâm nhập vào hệ thống là liên tục. Hỗ trợ mạnh mẽ giao thức TCP/IP, các giao thức
khác có thể vẫn được hỗ trợ như là một tùy chọn ICMP, IPX, MPLS…
Do xây dựng với kiến trúc mở, nên Snort có một lực lượng phát triển đông đảo
khá lớn từ người dùng cho đến những hãng bảo mật nổi tiếng. Việc phát hiện những
phương pháp tấn công thường xuyên được cập nhật nếu bạn đăng ký làm thành viên.
2.2. Kiến trúc Snort
Snort có các chế độ làm việc:
Packet sniffer
Packet logger
NIDS
12
Hình
2.2.1.
4: Quy trình thu thập, xử lý gói
tin
Packet decoder
Luồng dữ liệu sẽ qua packet decoder trước tiên, tại
đi
đây
những gói tin sẽ
được giải mã và theo dõi những thông tin: etherner header, IP header, TCP header,
payload… Snort hỗ trợ những công nghệ: Ethernet, 802.11,Token Ring, FDDI, Cisco
HDLC, SLIP,PPP và OpenBSD’s PF. Những tham số cấu hình cho việc giải mã được
lưu trong tập tin snort.conf
Tùy vào chế độ sử dụng, decoder sẽ có những hành vi tương ứng sau khi giả
mã gói tin:
Packet sniffer: (Snort –v ) gói tin sau khi giải mã sẽ được hiển thị lên màn hình
console.
Packet logger: (Snort –l /var/log/snort) gói tin sau khi giải mã sẽ ghi vào một
tập tin với cấu trúc binary hoặc mã ASCII.
13
NIDS: (Snort –c /etc/snort/etc/snort.conf) gói tin sau giải mã sẽ được
khi
chuyển sang quá trình Preprocessor tương ứng.
Hình 5: TCP
packet
2.2.2.
Preprocessors
Đây là một plug-in dùng cho Snort, nhiệm vụ của preprocessor là dịch những
gói tin rời rạc thành định dạng chuẩn thông thường để có thể sử dụng được. Quá trình
preprocessor cực kỳ hữu dụng khi có các cuộc tấn công dạng phân mảnh gói tin để
đánh lừa IDS (Firewall evasion) như tấn công dạng teardrop . Tiến trình preprocessor
giúp cho việc nhận định dạng tấn công một cách thuận lợi.
Hình
6: Lưu đồ quy trình
Prerocessor
Frag3: hoạt động trên sự phân mảnh của gói tin, nối những gói bị phân mảnh
14
thành tập tin nguyên vẹn sau đó trả ngược lại decoder để phân tích nội dung bên trong.
15
Stream5: hoạt động dựa vào địa chỉ gói tin, theo dõi trên luồng thông tin, các
gói tin lại đưa ngược về decoder. Trong phiên bản Snort 2.9.0 Stream5 được thay thế
cho Stream4 và flow được dùng trong những phiên bản trước đó.
Hình
7: Tổng thể cơ chế
Snort
http_inspect: cung cấp cơ chế phân giải chuỗi ký tự trở về dạng chuẩn của một
cấu trúc URI, nó bỏ
qua
những gói tin Respond từ server đến client, chỉ xem
xét
những gói tin Request client đến server. Nhờ vậy, IDS có giảm được lượng
từ
thể
thông tin không cần thiết phải theo dõi, do thông thường những gói tin tấn công xuất
phát từ phía client (Client thường gởi Request và server chỉ trả lời Respond).
16
Hình 8: HTTP
inspect
2.2.3.
Detection Engine
Các gói tin được xử lý tại preprocessor sẽ chuyển qua quá trình Detection, thật
chất đây là quá trình gói tin được so sánh với các rule để xác định gói tin có hợp lệ
không. Detection engine thế hệ mới tập trung vào 4 giao thức chính: TCP,UDP, IP,
ICMP.
Hình
2.2.4.
9: Cơ chế phát hiện (Detection Engine)
Outputs
17
Khi detection phát hiện những gói tin trùng với bộ luật thì sẽ ghi nhận sự kiện
và ghi log. Việc ghi log có thể xuất ra nhiều kiểu khác nhau như: database / syslog/
XML/ TCPDUMP/ Unifiled.
Dữ liệu sau khi xuất có thể sử dụng bởi các chương trình phân tích log cho việc
thống kê.
3.
RULES
3.1. Giới thiệu
Các phương thức tấn công cũng tương tự virus, hầu hết các hoạt động xâm phạm đều
để lại những dấu hiệu riêng để nhận biết. Các thông tin và dấu hiệu này được sử dụng
để tạo rule cho Snort. Rule là một thành phần cốt lõi cho một hệ thống IDS nhận biết
được các cuộc tấn công. Những hệ thống honey pots được xây dựng nhằm thu thập
các dấu hiệu tấn công, từ đó những nhà phát triển có thể cập nhật những dấu hiệu mới
cho sản phẩm. Với Snort là một IDS mã nguồn mở, thì ngoài việc cập nhật rule từ nhà
sản xuất (www.Snort.org) thì người dùng còn có thể phát triển riêng những rule tùy
biến vào mục đích mà mình sử dụng.
Những cuộc tấn công trên một gói tin được nhận biết dựa vào phần header hoặc trong
payload (nội dung gói tin), các luật có thể áp dụng cho tất cả các phần khác nhau của
một gói dữ liệu để có thể nhận dạng dấu hiệu tấn công.
Hình
10: Cấu trúc
rule
Một rule có 2 phần: rule header và rule option.
3.2. Rule header
18
Action:
Là phần chỉ định hành động nào sẽ được thực hiện khi các dấu hiệu của gói tin
được nhận dạng chính xác. Có các hành động sau:
Alert: tạo ra một cảnh báo và ghi log.
Log: ghi log sự kiện
Pass: cho gói tin đi qua IDS mà không cần kiểm tra. Hành động
này dùng khi cần tăng tốc IDS với những gói tin ta chỉ định không cần kiểm tra.
Activate: tạo cảnh báo và kích hoạt một luật khác.
Dynamic: được kích hoạt khi dùng với hành động activate
Drop: hủy gói tin và ghi lại log.
Reject: hủy gói tin, ghi log và gởi TCP reset nếu gói tin đến là gói TCP
hoặc ICMP port unreachable nếu là giao thức UDP.
Sdrop: hủy gói tin, không ghi log.
Các phương thức alert, log, pass, activate, dynamic là 5 hanh động chính
trong
Snort. Ba chức năng drop, reject, sdrop là tùy chọn dùng ở chế độ inline.
Protocol
Chỉ rõ giao thức của gói tin mà ta cần kiểm tra. Snort hỗ trợ những giao thức:
IP (version 4 và version 6), TCP, UDP, ICMP. Các giao thức ARP, IGRP,
GRE, OSPF, RIP, IPX… sẽ phát triển trong tương lai hoặc trong phiên bản hiện tại có
một
số giao thức hỗ trợ như là một tùy chọn.
Address
Cung cấp địa chỉ nguồn và địa chỉ đích mà luật cần theo dõi. Việc xác định địa
chỉ là nguồn hay là đích phụ thuộc vào hướng (direction). Ta có thể khai báo một địa
chỉ IP, lớp mạng (subnet), trên tất cả IP hoặc loại trừ một IP, subnet.
Ví dụ:
19
alert tcp any any -> 192.168.1.10/32 80 (msg: “TTL=100”; ttl:
100;)
#cảnh báo những gói tin có ttl=100 từ tất cả các nguồn đến webserver tại địa
chi 192.168.1.10:80
alert icmp
![192.168.2.0/24] any -> any any (msg: “Ping with TTL=100”;
#dùng dấu ! để phủ định những IP mà ta không muốn kiểm tra.
ttl: 100;)
alert icmp
![192.168.2.0/24, 192.168.8.0/24]
any
-> any
any (msg: “Ping
with TTL=100”; ttl: 100;)
Port
Luật áp dụng trên những dịch vụ cụ thể dựa vào số cổng, ta có thể khai báo port
chỉ định, dãy port (dùng dấu “:” ngăn cách cổng bắt đầu và cổng kết thúc) hoặc phủ
định port ( dùng dấu “!” trước port muốn phủ định).
alert udp any 1024:2048 -> any any (msg: “UDP ports”;)
#chỉ ra dãy port
mà muốn theo dõi từ 1024 đến 2048.
Direction
Dùng để xác định đâu là nguồn hay đích, ta dùng những ký hiệu sau cho việc
định hướng: ->, <-, <>. Ký hiệu <> dùng khi kiểm tra cả client và server.
3.3. Rule option
Phần Rule Option nằm ngay sau phần Rule Header và được bao bọc trong dấu ngoặc
đơn. Nếu có nhiều option thì các option sẽ được phân cách với nhau bằng dấu chấm
phẩy “;”. Một option gồm 2 phần: một từ khoá và một tham số, hai phần này phân
cách nhau bằng dấu hai chấm.
Ví dụ:
msg: “Detected confidented” #msg là từ khoá còn “Detected confidented” là tham số.
Có 4 nhóm option chính :
20
general : cung cấp những thông tin về rule, không gây tác động ảnh hưởng đển hoạt
dộng phát hiện của IDS
payload : những option thuộc nhóm này sẽ tìm kiếm nội dụng trong payload của gói
tin.
non-payload: những option nhóm non-payload sẽ tìm nội dung trong phần header gói
tin.
post-detection: các option trong nhóm này sẽ đưa ra những hành động khi những mẫu
so sánh trong nhóm pay-load và non-payload trùng khớp với gói tin.
3.3.1.
Nhóm General
Msg
Cú pháp: msg:"";
Tạo một thông điệp cảnh ab1o khi rule được so trùng, msg tạo thuật lợi khi ta
kết hợp Snort với những chương trình quản lý khác như BASE
Reference
Cú pháp: reference:, ;
Chức năng reference cho phép ta tham chiếu những thông tin về dạng tấn công
từ những trang web bảo mật. Bảng dưới liệt kê những hệ thống hỗ trợ cho việc tham
chiếu.
SYSTEM
bugtraq
cve
nessus
arachnids
mcafee
osvdb
url
URL
http://www.securityfocus.com/bid/
http://cve.mitre.org/cgi-bin/cvename.cgi?name=
http://cgi.nessus.org/plugins/dump.php3?id=
(currently down) http://www.whitehats.com/info/IDS
http://vil.nai.com/vil/content/v
http://osvdb.org/show/osvdb/
http://
Ví dụ:
21
alert tcp any any -> any 7070 (msg:"IDS411/dos-realaudio";flags:AP; content:"|fff4
fffd 06|"; reference:arachnids,IDS411;)
log tcp any any -> any 12345 (reference:CVE, CAN-2002-1010;
reference:URL,www.poc2.com; msg:" NetBus";)
Gid
Cú pháp: gid:;
Từ khóa gid (generator id) được sử dụng để định danh phần nào trong luật tạo
ra thông báo (message), những gid do người dùng định nghĩa cần lớn hơn 1.000.000,
những gid do Snort sử dụng được lưu trong file gen-msg.map trong thư mục source
cài đặt Snort-2.9.0.5/etc. Từ khóa gid nên được sử dụng chung với sid
Sid
Cú pháp: sid:;
Sid là một số duy nhất dùng định danh cho một rule trong Snort, sid giúp dễ
dàng cho việc quản lý rule. Những rule do người dùng định nghĩa cần
có sid
>=1.000.000, những rule do Snort phân phối có sid 100-999.999 và những sid <100
được dùng cho việc phát triển trong tương lai.
Rev
Cú pháp: rev:;
Chỉ số revision dùng cho việc xác định bản chỉnh sửa của luật, nhận diện phiên
bản của luật, thuận tiện cho việc quản lý luật cần cập nhập. rev cũng nên dùng chung
với sid.
alert tcp any any -> any 80 (content:"BOB"; sid:1000983; rev:1;)
Classtype
Cú pháp: classtype:;
22
Classtype
attempted-admin
attempted-user
inappropriate-content
policy-violation
shellcode-detect
successful-admin
successful-user
trojan-activity
unsuccessful-user
web-application-attack
attempted-dos
attempted-recon
bad-unknown
default-login-attempt
denial-of-service
misc-attack
non-standard-protocol
rpc-portmap-decode
successful-dos
successful-reconlargescale
successful-reconlimited
suspicious-filenamedetect
suspicious-login
system-call-detect
unusual-client-portconnection
web-applicationactivity
icmp-event
misc-activity
network-scan
not-suspicious
protocol-commanddecode
string-detect
unknown
tcp-connection
Description
Attempted Administrator Privilege Gain
Attempted User Privilege Gain
Inappropriate Content was Detected
Potential Corporate Privacy Violation
Executable code was detected
Successful Administrator Privilege Gain
Successful User Privilege Gain
A Network Trojan was detected
Unsuccessful User Privilege Gain
Web Application Attack
Attempted Denial of Service
Attempted Information Leak
Potentially Bad Traffic
Attempt to login by a default
username
and
password
Detection
of a Denial of Service Attack
Misc Attack
Detection of a non-standard protocol
or
event
Decode of an RPC Query
Denial of Service
Large Scale Information Leak
Priority
high
high
high
high
high
high
high
high
high
high
medium
medium
medium
medium
medium
medium
medium
medium
medium
medium
Information Leak
medium
A suspicious filename was detected
medium
An attempted login using a
suspicious
username
A systemwas
calldetected
was detected
A client was using an unusual port
medium
Access to a potentially vulnerable
web
application
Generic ICMP event
Misc activity
Detection of a Network Scan
Not Suspicious Traffic
Generic Protocol Command Decode
medium
A suspicious string was detected
Unknown Traffic
A TCP connection was detected
medium
medium
low
low
low
low
low
low
low
very low
23
Priority
Cú pháp: priority: ;
Các luật có thể được phân loại và gán cho một chỉ số độ ưu tiên để nhóm và
phân biệt chúng với nhau. Để hiểu rõ hơn về từ khoá này ta đầu tiên phải hiểu được
file
classification.config
(được
load
trong
Snort.conf
với
classification.config). Mỗi dòng trong file classification.config
sau: config
classification:
dòng
include
có cú pháp như
name, description, priority
Name: là tên dùng để phân loại, tên này sẽ được dùng với từ khoá classtype
trong các luật Snort.
Description: mô tả về loại lớp này
priority: là một số chỉ độ ưu tiên mặc định của lớp này. Độ ưu tiên này có thể
được điều chỉnh trong từ khoá priority của phần option trong luật của Snort.
Ví dụ : config
classification: DoS , Denial of Service Attack, 2
và trong luật:
alert
udp
any any -> 192.168.1.0/24
6838
(msg: “DoS”; content: “server”;
6838
(msg:”DoS”; content: “server”;
classtype: DoS;)
alert
udp
any any -> 192.168.1.0/24
classtype: DoS; priority: 1;)
Trong câu lệnh thứ 2 thì ta đã ghi đè lên giá trị priority mặc định của lớp đã định
nghĩa.
Metadata
Cú pháp:
metadata:key1 value1;
24
metadata:key1 value1, key2 value2;
Metadata cho phép người viết luật đính kèm theo những thông tin mô tả về luật
mà họ viết, những metadata này khi khai báo cần theo một cấu trúc. Bảng bên dưới
liệt kê những giá trị mà Snort hỗ trợ:
o
metadata chỉ có giá trị sử dụng khi một Host Atttribute Table được cung
cấp.
Ví dụ:
alert tcp any any -> any 80 (msg:"Shared Library Rule Example"; \metadata:engine
shared; metadata:soid 3|12345;)
alert tcp any any -> any 80 (msg:"Shared Library Rule Example"; \metadata:engine
shared, soid 3|12345;)
alert tcp any any -> any 80 (msg:"HTTP Service Rule Example"; \metadata:service
http;)
3.3.2.
Nhóm Payload
content
Cú pháp: content: [!]“”
Dùng tìm kiếm nội dung được chỉ định trong luật với nội dụng gói tin.
Một đặc tính quan trọng của Snort là nó có khả năng tìm một mẫu dữ liệu bên
trong một gói tin. Mẫu này có thể dưới dạng chuỗi ASCII hoặc hex code (hệ 16).
Ví dụ 1: alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “GET”;
msg: “GET match”;)
25
Luật trên tìm mẫu “GET” trong phần dữ liệu của tất cả các gói tin
TCP có nguồn đi từ mạng 192.168.1.0/24
và đi đến các địa chỉ không
thuộc mạng đó. Từ “GET” này rất hay được dùng trong các tấn công HTTP.
Ví dụ 2: alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “|47 45 54|”;
msg: “GET match”;)
Nội dung của luật trong ví dụ 2 tương tự ví dụ 1 nhưng phần nội dung kiểm tra
được thay thế bằng một dãy số hex.
Trong đó: 47 45 54 trong dãy hex tương ứng với ASCII là GET.
Ta có thể dùng cả hai dạng trên trong cùng một luật với điều kiện nội dung mã
ASCII đặt trong dấu ngoặc kép “” và nội dung là số hex thì đặt trong cặp dấu | |.
Nocase
Cú pháp: nocase;
Dùng kết hợp với từ khóa content, mục đích cho việc sử dụng nocase là tạo ra
một kiểm tra với nội dung không phân biệt chữ hoa hay thường (noncasesensive)
Ví dụ:
alert tcp any any -> any 23 (content: "administrator"; nocase;)
#so sánh chuỗi
administrator không phân biệt chữ hoa hay thường.
Rawbytes
Dùng kiểm tra những gói tin dạng RAW, những gói tin được giải mã trong tiến
trình preprocessor sẽ được bỏ qua.
alert tcp any any -> any 21 (msg:"Telnet NOP"; content:"|FF F1|"; rawbytes;)
Depth
Cú pháp: depth:;
26
Dùng xác định trí kết thúc so sánh xét từ điểm offset thiết lập.
alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; depth: 40; msg:
“HTTP matched”;)
#tìm nội dung từ byte thứ 4 đến byte thứ 40.
Từ khoá này sẽ giúp giảm thời gian tìm kiếm khi mà đoạn dữ liệu trong gói tin
là khá lớn.
Offset
Cú pháp : offset:<“number”>;
Dùng để xác định vị trí bắt đầu tìm kiếm (chuỗi chứa trong từ khoá content ) là
offset tính từ đầu phần dữ liệu của gói tin.
Ví dụ sau sẽ tìm chuỗi “HTTP” bắt đầu từ vị trí cách đầu đoạn dữ liệu của gói
tin là 4 byte:
alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; msg: “HTTP
matched”;)
Distance
Cú pháp: distance: <“number”>;
So sánh chính xác nội dung trong content từ vị trí đầu đến khoảng cách được
chỉ định trong distance.
Within
Cú pháp: within:[|];
Dùng so sánh nội dung trong khoảng chỉ định từ vị trí (nội dung) xác định được
đầu tiên đến vị trí (nội dung) kế tiếp.
Ví dụ: content:"081660"; content:"vt081a"; within:20; #tìm trong 20 bytes tiếp
theo từ vị trí 081660 được xác định, xem trong khoảng 20 bytes này có chuỗi vt081a
hay không. Những trường hợp sau là hợp với rule trên:
27
081660 is member of vt081a
081660 is vt081a
081660 is studied at vt081a
http_client_body
Cú pháp: http_client_body;
Dùng phân tích nội dung chuỗi ký tự URI trong request message thay vì kiểm
tra toàn bộ nội dung gói tin.
Ví dụ:
log tcp any any -> any 80 (content:"Logging PHF”; http_client_body;)
http_cookie
Cú pháp: http_cookie;
Dùng phát hiện nội dung trong một cookie của một http header, chúng được đặt
tên Cookie trong http requests và Set-Cookie trong http responess.
http_raw_cookie
Cú pháp: http_raw_cookie;
Dùng tách những cookie có cấu trúc bất thường (UNNORMALIZED),
chức năng này phải được dùng chung với enable_cookie.
http_header
Cú pháp: http_header;
Tìm nội dung chỉ rõ trong toàn bộ http header, dùng trong những header thông
thường (NORMALIZED).
http_raw_header
Cú pháp http_raw_header;
28
Dùng tách những header có cấu trúc bất thường (UNNORMALIZED), không
dùng chung với chức năng rawbytes, http header, fast pattern.
http_method
Cú pháp: http_method;
Dùng so sánh phương thức trong giao thức http với content chỉ định.
Ví dụ:
alert tcp any any -> any 80 (content:"ABC"; content:"GET"; http_method;)
http_uri
Cú pháp: http_uri;
So sánh trường URI Request với content chỉ định trước đó.
Ví dụ:
alert tcp any any -> any 80 (content:"asd"; content:"EFG"; http_uri;)
#tìm
mẫu
EFG tron một URI bình thường.
http_raw_uri
Tương tự http_uri nhưng phân tích những gói tin không bình thường.
http_stat_code
Cú pháp: http_stat_code;
Phân tích trường Status code trong gói http server respone.
Ví dụ:
alert tcp any
http_stat_code;)
any
->
any
80
(content:"ABC";
content:"200";
#phân tích mẫu 200(OK) trong header.
http_stat_msg
29
Cú pháp: http_stat_msg;
Phân tích thông tin trong http server respone, so sánh với content trước đó.
Ví dụ:
alert tcp any any -> any 80 (content:"ABC"; content:"Not Found"; http_stat_msg;)
http_encode
Cú pháp:
http_encode:[uri|header|cookie],[!][ any any (msg:"UTF8/UEncode Encoding present";
http_encode:uri,utf8|uencode;)
alert tcp any any -> any any (msg:"No UTF8"; http_encode:uri,!utf8;)
fast_pattern
Cú pháp:
fast_pattern:only;
fast_pattern:,;
fast_pattern thiết lập lại nội dung bên trong một rule, nó tăng tốc độ so nội dung mẫu
với gói tin bằng cách chọn ra content có nội dung dài nhất (content có nội dung dài thì
tỉ lệ chính xác cao hơn), từ đó Snort có thể quyết định nhanh chóng trong việc so mẫu
trong rule.
uricontent
Cú pháp: uricontent:[!]"";
Ví dụ về URI:
30
URI
Đường dẫn thông thường
/scripts/..%c0%af../winnt/system32/cmd.exe?/
/winnt/system32/cmd.exe?/c
c+ver
+ver
/cgi/cgi-bin/phf?
bin/aaaaaaaaaaaaaaaaaaaaaaaaaa/..%252fp%68f
?
Phương pháp kiểm trai uri rất quan trọng cho việc kiểm tra những hacker sử
dụng kiểu tấn công upload shell lên web server để thực thi lệnh.
Uri_content có thể dùng với các tùy chọn nocase, depth, offset,
distance,
within, fast pattern.
urilen
Cú pháp:
urilen:min<>max;
urilen:[<|>];
Kiểm tra độ dài URI.
Ví dụ:
uri_len:5
uri_len:<5
uri_len:5<>10
So sánh độ dài chính xác bằng 5 bytes.
So sánh độ dài nhỏ 5 bytes.
So sánh độ dài lớn hơn 5 và nhỏ hơn 10 bytes.
isdataat
Cú pháp: isdataat:[!][, relative|rawbytes];
Kiểm tra có payload có dữ liệu hay không từ vị trí chỉ định, tùy chọn relative sẽ
kiểm tra từ vị trí cuối content trước isdataat đến kết thúc.
pcre
Cú pháp:
pcre:[!]"(//|m)[ismxAEGRUBPHMCOIDKYS]";
31
PCRE (Perl Compatible Regular Expression) được tích hợp từ phiên bản 2.1,
dùng so sánh những trường hợp đặc biệt mà từ khóa content không kiểm
tra được. Đây là một điểm mạnh trong những phiên bản mới về sau giúp cho IDS linh
động hơn trong việc kiểm tra gói tin và phát hiện những cuộc tấn công dạng sử dụng
gói tin bất
thường.
i
s
m
Phân biệt chữ hoa, chữ thường.
Kiểm tra bao gồm những dòng mới sau dấu “.”
Mặc định, một chuỗi là một dòng bao gồm những ký tự. ^ đại diện cho
đầu dòng và $ đại diện cho cuối dòng. Khi tùy chọn m được chỉ định thì
việc kiểm tra sẽ tác động đến dòng mới trong bộ đệm.
Bỏ qua ký tự khoảng trắng trong chuỗi.
Mẫu cần phải được so trùng từ vị trí bắt đầu bộ đệm.
Mẫu cần phải được so trùng từ vị trí cuối bộ đệm.
Nghịch đảo chuỗi ký tự.
So tìm mẫu toàn bộ (tương tự distance:0)
So mẫu trong trường URI (tương tự uri_content và http_uri). Không cho
phép những yêu cầu URI bất thường.
So trùng những gói yêu cầu URL bất thường (tượng tự http_raw_uri).
So trùng nội dung thân (body) của những http request bất thường (tương
tự http_client_body).
So những header HTTP request hoặc HTTP response
(tương tự
http_header)
Tương tự http_raw_header.
Tương tự http_method.
Tương tự http_cookie.
Tương tự http_raw_cookie.
Tương tự http_stat_code.
Tương tự http_stat_msg.
Tương tự rawbytes.
Chép đè những so sánh pcre đã được cấu hình hạn chế cho biểu thứ
này.
x
A
E
G
R
U
I
P
H
D
M
C
K
S
Y
B
O
file_data
Cú pháp:
file_data;
file_data:mime;
32
Tùy chọn này dùng để thay thế con trỏ ( được sử dụng trong payload tại tiến
trình xử lý rule) tại vị trí
bắt đầu trong
nội dung gói HTTP response hoặc dữ
liệu trong thân gói SMTP.
base64_decode
Cú pháp: base64_decode[:[bytes ][, ][offset [, relative]]];
Dùng giải mã header của gói http được mã bằng base64, dùng cho
những
HTTP authorization header.
base64_data
Cú pháp: base64_data;
Base64_data dùng giả mã payload gói tin dùng phương pháp base64, nếu trong
rule tính năng này được chỉ định thì tiến trình xử lý sẽ nhảy (jump) đến phần payload
để kiểm tra. base64_data phải nằm phía sau từ khóa base64_decode.
Ví dụ:
alert tcp any any -> any any (msg:"Authorization NTLM"; \
content:"Authorization:"; http_header; \
base64_decode:bytes 12, offset 6, relative; base64_data; \
content:"NTLMSSP"; within:8;)
byte_test
Cú pháp:
byte_test:, [!], , \
[, relative][, ][, string, ][, dce];
Dùng kiểm tra byte chỉ định bằng các toán tử, kiểm tra dựa trên giá trị binary
hoặc chuyển từ hexa sang binary.
33
byte_jump
Cú pháp:
byte_jump:, \
[, relative][, multiplier ][, ][, string, ]\
[, align][, from_beginning][, post_offset ][, dce];
Đọc một phần nội dung gói tin, sau đó nhảy đến phần khác để đọc tiếp tục.
byte_extract
Cú pháp:
byte_extract:, , \
[, relative][, multiplier ][, ]\
[, string, ][, align ][, dce];
Dùng trích xuất một số byte chỉ định vào một biến, những biến này sẽ được sử
dụng về sau tại những luật khác nhau.
fptbounce
Cú pháp: ftpbounce;
Dùng phát hiện tấn công ftp bounce.
asn1
Cú pháp :
asn1:[bitstring_overflow][, double_overflow][, oversize_length ][,
absolute_offset |relative_offset ];
Phát hiện dựa trên những phương thức mã hóa, từ đó xác định những phương
thức mã hóa có thể gây hại cho server.
34
cvs
Cú pháp: cvs: