Hình 2.11. Protocol Exploit Attack(1)

Một phần của tài liệu Nghiên cứu và xây dựng mô hình phòng chống tấn công từ chối dịch vụ ứng dụng Snort (Trang 40)

nhưng không nhận được ACK packet cuối cùng sau một khoảng thời gian quy định thì nó sẽ resend lại SYN/ACK REPLY cho đến hết thời gian timeout. Toàn bộ tài nguyên hệ thống “dự trữ” để xử lý phiên giao tiếp nếu nhận được ACK packet cuối cùng sẽ bị “phong tỏa” cho đến hết thời gian timeout.

Malicious TCP Client Victim

TCP Server

SYS packet with a deliberately fraudulent (spoofed) source IP return address

SYS/ACK

SYN

80

?

Hình 2.12. Protocol Exploit Attack(2)

Nắm được điểm yếu này, attacker gởi một SYN packet đến nạn nhân với địa chỉ bên gởi là giả mạo, kết quả là nạn nhân gởi SYN/ACK REPLY đến một địa chỉ khác và sẽ không bao giờ nhận được ACK packet cuối cùng, cho đến hết thời gian timeout nạn nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống. Tuy nhiên, nếu lượng SYN packet giả mạo đến với số lượng nhiều và dồn dập, hệ thống của nạn nhân có thể bị hết tài nguyên.

SYN ACK SYN/ACK Client Server SYN SYN/ACK SYN/ACK

Server Attacker/Agent

Hình 2.13. Protocol Exploit Attack(3)

+ PUSH = ACK Attack: Trong TCP protocol, các packet được chứa trong buffer, khi buffer đầy thì các packet này sẽ được chuyển đến nơi cần thiết. Tuy nhiên, bên gởi có thể yêu cầu hệ thống unload buffer trước khi buffer đầy bằng cách gởi một packet với PUSH và ACK mang giá trị là 1. Những packet này làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong TCP buffer ngay lập tức và gửi một ACK packet trở về khi thực hiện xong điều này, nếu quá trình được diễn ra liên tục với nhiều Agent, hệ thống sẽ không thể xử lý được lượng lớn packet gửi đến và sẽ bị treo.

2.4.2.2. Malformed Packet Attack

Malformed Packet Attack là cách tấn công dùng các Agent để gởi các packet có cấu trúc không đúng chuẩn nhằm làm cho hệ thống của nạn nhân bị treo.

Có hai loại Malformed Packet Attack:

+ IP address attack: dùng packet có địa chỉ gởi và nhận giống nhau làm cho hệ điều hành của nạn nhân không xử lý nổi và bị treo.

+ IP packet options attack ngẫu nhiên hóa vùng OPTION trong IP packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ thống của nạn nhân phải tốn thời gian phân tích, nếu sử dụng số lượng lớn Agent có thể làm hệ thống nạn nhân hết khả năng xử lý.

2.5. TÌM HIỂU VỀ IDS 2.5.1. Khái niệm

IDS (Intrusion Detection System_ hệ thống phát hiện xâm nhập) là một thống giám sát lưu thông mạng, các hoạt động khả nghi và cảnh báo cho hệ thống, nhà quản trị.

Ngoài ra IDS cũng đảm nhận việc phản ứng lại với các lưu thông bất thường hay có hại bằng cách hành động đã được thiết lập trước như khóa người dùng hay địa chỉ IP nguồn đó truy cập hệ thống mạng,…..

IDS cũng có thể phân biệt giữa những tấn công bên trong từ bên trong (từ những người trong công ty) hay tấn công từ bên ngoài (từ các hacker). IDS phát hiện dựa trên các dấu hiệu đặc biệt về các nguy cơ đã biết (giống như cách các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline(thông số đo đạc chuẩn của hệ thống) để tìm ra các dấu hiệu khác thường.

Ta có thể hiểu tóm tắt về IDS như sau :

Chức năng quan trọng nhất : giám sát -cảnh báo - bảo vệ

- Giám sát : lưu lượng mạng , các hoạt động khả nghi.

- Cảnh báo : báo cáo về tình trạng mạng cho hệ thống , nhà quản trị.

- Bảo vệ : Dùng những thiết lập mặc định và sự cấu hình từ nhà quản trị mà có những hành động thiết thực chống lại kẻ xâm nhập và phá hoại.

- Chức năng mở rộng :

- Phân biệt : "thù trong giặc ngoài"

- Phát hiện : những dấu hiệu bất thường dựa trên những gì đã biết hoặc nhờ vào sự so sánh thông lượng mạng hiện tại với baseline.

2.5.2. Các thành phần và chức năng của IDS

IDS bao gồm các thành phần chính: Thành phần thu thập thông tin gói tin. Thành phần phát hiện gói tin.

Thành phần xử lý (phản hồi)

Hình 2.14. Mô hình kiến trúc phát hiện xâm nhập

Thành phần này có nhiệm vụ lấy tất cả các gói tin đi đến mạng. Thông thường các gói tin có địa chỉ không phải của một card mạng thì sẽ bị card mạng đó hủy bỏ nhưng card mạng của IDS được đặt ở chế độ thu nhận tất cả. Tất cả các gói tin qua chúng đều được chụp, xử lý, phân tích đến từng trường thông tin. Bộ phận thu nhận gói tin sẽ đọc thông tin từng trường trong gói tin, xác định chúng thuộc kiểu gói tin nào, dịch vụ gì… Các thông tin này được chuyển đến thành phần phát hiện tấn công.

2.5.2.2. Thành phần phát hiện gói tin

Ở thành phần này, các bộ cảm biến đống vai trò quyết đinh. Vai trò của bộ cảm biến là dùng để lọc thông tin và loại bỏ những thông tin dữ liệu không tương thích đạt được từ các sự kiện liên quan đến hê thống bảo vệ, vì vậy có thể phát hiện được các hành động nghi ngờ.

2.5.2.3. Thành phần phản hồi

Khi có dấu hiệu của sự tấn công hoặc thâm nhập, thành phần phát hiện tấn công sẽ gởi tín hiệu báo hiệu (alert) có sự tấn công hoặc thâm nhập đến thành phần phản ứng. Lúc đó thành phần phản ứng sẽ kích họat tường lửa thực hiện chức năng ngăn chăn cuộc tấn công hay cảnh báo tới người quản trị.

2.5.3. Phân loại IDS

Cách thông thường nhất để phân loại hệ thống IDS (cũng như IPS) là dựa vào đặc điểm của nguồn dữ liệu thu nhập được. Trong trường hợp này, các hệ thống IDS được chia thành các loại sau:

• Host-based IDS (HIDS): Sử dụng dữ liệu kiểm tra từ một máy trạm đơn để phát hiện xâm nhập.

• Network-based IDS (NIDS): Sử dụng dữ liệu trên toàn bộ lưu thông mạng, cùng với dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập.

2.5.4. Network Base IDS (NIDS)

Được đặt giữa kết nối hệ thống mạng bên trong và mạng bên ngoài để giám sát toàn bộ lưu lượng vào ra.

Có thể là một thiết bị phần cứng riêng biệt được thiết lập sẵn hay phần mềm cài đặt trên máy tính. Chủ yếu dùng để đo lưu lượng mạng được sử dụng. Tuy nhiên có thể xảy ra hiện tượng nghẽn cổ chai khi lưu lượng mạng hoạt động ở mức cao.

Hình 2.15. Mô Hình NIDS

2.5.4.1. Ưu điểm của Network-Based IDS

• Chi phi thấp: Do chỉ cần cài đặt NIDS ở những vị trí trọng yếu là có thể giám sát lưu lượng toàn mạng nên hệ thống không cần phải nạp các phần mềm và quản lý trên các máy toàn mạng.

• Phát hiện được các cuộc tấn công mà HIDS bỏ qua: Khác với HIDS, NIDS kiểm tra header của tất cả các gói tin vì thế nó không bỏ sót các dấu hiệu xuất phát từ đây.

• Khó xóa bỏ dấu vết (evidence): Các thông tin lưu trong log file có thể bị kẻ đột nhật sửa đổi để che dấu các hoạt động xâm nhập, trong tình huống này HIDS khó có đủ thông tin để hoạt động. NIDS sử dụng lưu thông hiện hành trên mạng để phát hiện xâm nhập. Vì thế, kẻ đột nhập không xóa bỏ được các dấu vết tấn công.

• Phát hiện và đối phó kịp thời: NIDS phát hiện các cuộc tấn công ngay khi xảy ra, vì thế việc cảnh báo và đối phó có thể thực hiện được nhanh hơn.

• Có tính độc lập cao: Lỗi hệ thống không ảnh hưởng đáng kể nào đối với công việc của các máy trên mạng.

2.5.4.2. Hạn chế của Network-Based IDS

• Bị hạn chế với Switch: nhiều lợi điểm của NIDS không phát huy được trong các mạng chuyển mạch hiện đai. Thiết bị switch chia mạng thành nhiều phần độc lập vì thế NIDS khó thu thập được thông tin trong toàn mạng.

• Hạn chế về hiệu năng: NIDS sẽ gặp khó khăn khi phải xử lý tất cả các gói tin trên mạng rộng hoặc có mật độ lưu thông cao, dẫn đến không thể phát hiện các cuộc tấn công thực hiện vào lúc cao điểm.

• Tăng thông lượng mạng: Một hê thống phát hiện xâm nhập có thể cần truyền một dung lượng dữ liệu lớn trở về hệ thống phân tích trung tâm, có nghĩa là một gói tin được kiểm soát sẽ sinh ra một lượng lớn tải phẩn tích.

• Một hệ thống NIDS thường gặp khó khăn trong việc xử lý các cuộc tấn công trong một phiên được mã hóa.

• 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ỡ.

2.5.5. Host Base IDS (HIDS)

Được cài đặt cục bộ trên một máy tính làm cho nó trở nên linh hoạt hơn nhiều so với NIDS. Kiểm soát lưu lượng vào ra trên một máy tính, có thể được triển khai trên nhiều máy tính trong hệ thống mạng. HIDS có thể được cài đặt trên nhiều dạng máy tính khác nhau cụ thể như các máy chủ, máy trạm, máy tính xách tay. HIDS cho phép bạn thực hiện một cách linh hoạt trong các đoạn mạng mà NIDS không thể thực hiện được. Lưu lượng đã gửi tới máy tính HIDS được phân tích và chuyển qua nếu chúng không chứa mã nguy hiểm. HIDS được thiết kế hoạt động chủ yếu trên hệ điều hành Windows , mặc dù vậy vẫn có các sản phẩm hoạt động trong nền ứng dụng UNIX và nhiều hệ điều hành khác.

2.5.5.1. Ưu điểm của Host IDS

- Xác định được kết quả của cuộc tấn công: Do HIDS sử dụng dữ liệu log lưu các sự kiện xảy ra, nó có thể biết được cuộc tấn công là thành công hay thất bại với độ chính xác cao hơn NIDS.

- Giám sát được các hoạt động của thể của hệ thống: HIDS có thể giám sát các hoạt động mà NIDS không thể như: truy nhập file, thay đổi quyền, các hành động thực thi, truy nhập dịch vụ được phân quyền. Đồng thời nó cũng giám sát các hoạt động chỉ được thực hiện bởi người quản trị.

- Phát hiện các xâm nhập mà NIDS bỏ qua.

- Thích nghi tốt với môi trường chuyển mạch, mã hóa: Việc chuyển mạch và mã hóa 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.

- Không yêu cầu thêm phần cưng: Được cài đặt trực tiếp trên hạ tầng mạng có sẵn (FTP server, Webserver) nên HIDS không yêu cầu phải cài đặt thêm các phần cứng khác.

2.5.5.2. Hạn chế của Host IDS

- Khó quản trị.

- Thông tin nguồn không an toàn. - Chi phí cao.

- Chiếm tài nguyên hê thống.

2.6. TÌM HIỂU VỀ SNORT 2.6.1. Giới thiệu chung về Snort

Snort là một hệ thống phát hiện xâm nhập mạng (NIDS) mã nguồn mở, là miễn phí. NIDS là một dạng IDS, được sử dụng để quét luồng dữ liệu trên mạng. Cũng có những IDS cơ bản trên host (host-based), nó được cài đặt trên host riêng và phát hiện những cuộc tấn công chỉ trên host đó thôi. Mặc dù tất cả phương pháp phát hiện xâm nhập vẫn còn mới, nhưng Snort giữ một vị trí là hệ thống chất lượng thuộc loại hàng đầu ngày nay. Snort có thể làm việc chung với những sản phẩm khác. Những sản phẩm đó bao gồm cơ sở dữ liệu MySQL và điều khiển phân tích cho cơ sở dữ liệu xâm nhập (ACID) Snort có khả năng ghi dữ liệu thu thập được (như là những cảnh báo alerts và những thông điệp dạng log khác) vào một cơ sở dữ liệu. MySQL được sử dụng làm cơ sở dữ liệu thông dụng, nó là nơi mà dữ liệu sẽ lưu giữ. Sử dụng Apache web server và ACID, bạn có thể phân tích dữ liệu này. Sự kết hợp của Snort, Apache, MySQL, và ACID giúp ta ghi dữ liệu phát hiện xâm nhập vào trong cơ sở dữ liệu và xem, phân tích nó về sau, bằng một giao diện

web cơ bản.

Snort sử dụng những rule lưu trong những text file, nó có thể xem được bằng một trình soạn thảo văn bản. Những rule được nhóm theo từng loại. Những rule đi cùng với mỗi loại được lưu trữ trong những file riêng. Những file này sau đó được tập hợp trong một file cấu hình chính, gọi là snort.conf. Snort đọc những rule này mỗi lần chạy và xây dựng các cấu trúc dữ liệu bên trong nó hoặc áp dụng những rule đó để capture dữ liệu. Việc tìm những signature và sử dụng chúng trong rule là một công việc đòi hỏi phải tinh tế, khi dùng nhiều rule, sẽ có nhiều công việc xử lý hơn được yêu cầu để capture dữ liệu trong thời gian thực. Snort cho phép định nghĩa lại rule cho việc phát hiện xâm nhập và rất “linh hoạt” cho ta thêm vào rule riêng của mình.

2.6.2. Các thành phần và cơ chế hoạt động của Snort

Snort được chia thành nhiều phần. Những phần này làm việc cùng nhau nhằm phát hiện những loại tấn công khác nhau và sinh ra trong một định dạng yêu cầu từ hệ thống phái hiện. Một Snort IDS cơ bản gồm các thành phần chính sau:

a. Packet Decoder: Bộ giải mã gói. b. Preprocessors: Bộ tiền xử lý.

c. Detection Engine : bộ máy phát hiện

d. Logging and Alerting System : hệ thống ghi và cảnh báo. e. Output Modules : Các modun xuất.

Hình 2.16 . Cơ chế hoạt động của IDS

Packet Decoder: Packet decoder lấy những gói từ những loại khác nhau của giao diện mạng và chuẩn bị đưa chúng vào preprocessed hoặc gửi nó qua detection engine. Giao diện có thể là Ethernet, SLIP, PPP, v.v..

Preprocessors: Preprocessors là những thành phần hay những plug-in được sử dụng cùng với Snort để sắp xếp và thay đổi những gói dữ liệu trước khi detection engine thực hiện công việc tìm kiếm nếu gói dữ liệu đó là nguy hiểm. Một vài preprocessor còn có thể thực hiện tìm ra những dấu hiệu bất thường trong tiêu đề gói và sinh ra cảnh báo. Preprocessor rất là quan trọng đối với IDS nhằm chuẩn bị những gói dữ liệu để phân tích cho việc thiết lập rule trong detection engine. Hacker sử dụng những công nghệ khác nhau nhằm đánh lừa một IDS bằng nhiều cách khác nhau. Preprocessor cũng có thể sử dụng cho những gói phân mảnh. Khi một gói dữ liệu có kích thước lớn truyền vào một host, gói đó thường bị phân mảnh. Cho ví dụ, kích thước mặc định lớn nhất cho gói dữ liệu trong mạng Ethernet thường là 1500 byte. Giá trị này được điều khiển bởi giá trị MTU (Maximum Transfer Unit) cho giao diện mạng. Điều này có nghĩa là nếu bạn gửi dữ liệu lớn hơn 1500 byte, nó sẽ cắt thành nhiều gói, mỗi gói phân mảnh đó có kích thước nhỏ hơn hoặc bằng 1500 byte. Hệ thống

nhận sẽ tái hợp để thành gói dữ liệu nguyên thủy. Trên IDS, trước khi áp dụng những rule hay tìm một signature ta phải tái hợp gói. Cho ví dụ, phân nửa dấu hiệu có thể cho thấy trong một đoạn này và nửa kia trong đoạn khác. Để phát hiện chính xác dấu hiệu, bạn phải kết hợp tất cả phân đoạn của mảnh. Hacker sử dụng sự phân mảnh để đánh bại những hệ thống IDS. Preprocessor thường được dùng để bảo vệ những loại tấn công này. Preprocessor trong Snort có thể phân mảnh gói, giải mã HTTP URI, tái hợp luồng TCP, v.v.. Những chức năng này rất là quan trọng trong thành phần IDS.

Detection Engine: Detection engine là thành phần quan trọng nhất trong Snort. Nó chịu trách nhiệm phát hiện nếu có hành vi xâm nhập trong một gói. Detection engine tận dụng những rule Snort để làm việc này. Những rule được đọc trong cấu trúc dữ liệu bên trong hay buộc chặt chúng vào nơi mà chúng sẽ so khớp với tất cả các gói. Nếu một gói nào đó khớp với rule, hành động thích hợp sẽ sinh ra, chẳng hạn gói đó sẽ bị hủy. Những hành động đó có thể là ghi gói hay sinh cảnh báo. Detection engine làm việc khác nhau trong mỗi phiên bản Snort khác nhau. Trong tất cả phiên bản Snort 1.x, detection engine ngừng xử lý

Một phần của tài liệu Nghiên cứu và xây dựng mô hình phòng chống tấn công từ chối dịch vụ ứng dụng Snort (Trang 40)

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

(86 trang)
w