Hình 2.17. Cấu trúc Rule

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 52 - 84)

tiêu chuẩn cho việc so sánh một luật dựa vào gói dữ liệu. Rule option thường chứa một thông điệp cảnh báo và thông tin về thông điệp sẽ được sử dụng để phát sinh cảnh báo. Rule option cũng chứa tiêu chuẩn cho việc so sánh một luật dựa vào gói dữ liệu. Một rule có thể phát hiện một loại hay nhiều loại hành vi xâm nhập. Rule “thông minh” là rule có thể áp dụng lên nhiều dấu hiệu xâm nhập.

Rule option theo sau rule header và được đặt trong cặp dấu ngoặc đơn. Có thể một lựa chọn hay nhiều lựa chọn truyền vào cùng dấu. Nếu bạn sử dụng nhiều lựa chọn, dạng lựa chọn này là AND. Hành động trong rule header chỉ được gọi khi tất cả những tiêu chuẩn trong lựa chọn là đúng. Bạn đã sử dụng option như msg ttl. Tất cả những lựa chọn được định nghĩa bởi từ khóa. Những Rule option chứa các đối số. Thường thì những lựa chọn có 2 phần: một từ khóa và một đối số. Những đối số truyền vào từ lựa chọn từ khóa bằng một dấu “:”. Chẳng hạn như:

msg: "Detected confidential";

Lựa chọn msg là từ khóa và Detected confidential là đối số cho từ khóa này.

2.7. XÂY DỰNG CƠ CHẾ PHÒNG THỦ

Không cần quan tâm đến mình có phải là mục tiêu tấn công hay không, hay bắt đầu từng bước xây dựng kịch bản trước cho mình bỏi vì không thể nào biết được attacker có “nhắm” đến mình hay không, hay mình có bị “trở thành” agent hoặc hander? Dưới đây là những giai đoạn trong phạm vi “bảo vệ, phát hiện và đáp trả”.

Chuẩn bị: phải hiểu rõ cơ cấu vận hành hệ thống bên trong và phải có

những công cụ cần thiết thực hiện bắt gói và phân tích trên cả host lẫn mạng (network). Đó cũng là cách để phòng chống những cuộc tấn công đơn

giản trước khi bị DoS/DDoS.

Phát hiện: Không phải tất cả những cuộc tấn công nào cũng đều

gây cho hệ thống của mình bị “lỗi”, tuy nhiên, nếu có lỗi thì phải biết lỗi đó là gì. Từ những vấn đề đơn giản được phát hiện thì mới có thể phòng tránh được những vấn đề phức tạp hơn. Bằng cách ghi lại một cách định kỳ những công việc mà hệ thống hoạt động, tuy nhiên vẫn phải đảm bảo về mặt pháp lý. Chẳng hạn, bạn có thể phân loại những host nào đó mà mình cho là nguy hiểm hay xây dựng một IDS hoạt động trên mạng.

Nhận dạng: nếu không thường xuyên bắt dữ liệu để xác định

công cụ tấn công DoS/DDoS. Bạn cũng có thể được hỗ trợ bởi những tổ chức phân tích các công cụ hiện có trên internet mà attacker hay sử dụng, từ đó hiểu được cơ chế hoạt động của DoS/DDoS. Bằng cách chia sẽ thật nhiều thông tin về tấn công, nó sẽ hạ thấp một mạng tấn công DDoS.

Đáp trả: thực hiện khóa lưu lượng tạm ngưng cuộc tấn công,

nhận dạng những máy tính bị thỏa hiệp và thu thập chứng cứ phục vụ về mặt pháp lý, hay tóm lược một bảng báo cáo nhanh cho các điều tra viên để họ giúp đỡ bạn trong thời kỳ “khủng hoảng” vì DDoS.

Phân tích sau một vụ tấn công: điều này rất quan trọng nhằm xác

định những gì bạn làm được và chưa làm được. Bạn thu được những gì? có nhận dạng ra cuộc tấn công đó không? Nhất định mỗi một công cụ viết ra đều phải có một cơ chế hoạt động riêng của nó. DoS/DDoS cũng vậy, và từ “vô số” những packet mà bạn thu được, bạn có thể rút ra dấu hiệu của nó? Đó cũng đồng nghĩa với việc bạn có một “sơ hỡ” nào đó của hệ thống bên trong.

2.7.1. Chuẩn bị trước một cuộc tấn công DoS/DDoS

Chuẩn bị là bước quan trọng đầu tiên trong công tác quản trị rủi ro. Hiểu như thế nào mạng của mình được tổ chức và nó làm việc như thế nào sẽ giúp cho bạn nhận biết những hệ thống nào còn “yếu” và rất có thể trở thành mục tiêu của attacker. Cũng cố và tổ chức lại hệ thống mạng sẽ giúp cho bạn chống lại những cuộc tấn công đơn giản và tối thiểu hóa tính “hủy diệt” khi bắt gặp. Cuối cùng, chuẩn bị như là một thủ tục cần thiết nhằm phản ứng lại một cách nhanh

chóng khi một cuộc tấn công xảy ra và sẽ thu được nhiều kinh nghiệm thiếu sót cho mình

2.7.1.1. Hiểu rõ hệ thống bên trong

Ảnh hưởng từ DoS/DDoS thường rõ ràng nhất đó là bản thân hệ thống mạng bị trì hoãn và đình trệ các kết nối. Phụ thuộc vào tài nguyên của hệ thống, bạn sẽ cảm nhận được ảnh hưởng của DoS thuộc về một dịch vụ cụ thể, những máy tính hay những mạng con bị nghẽn kết nối. Phải nắm rõ giá trị thuộc về tổ chức:

• Tầm quan trọng trong việc kinh doanh hằng ngày của tổ chức.

• Chi phí thất thoát là bao nhiêu khi có sự cố.

• Những dịch vụ nào là quan trong hơn hết.

• Chi phí tồn động khi kết nối đến công ty bị giảm.

Hầu hết những doanh nghiệp ngày nay đều hoạt động trên Internet, như e- mail, hỗ trợ trực tuyến khách hàng, thương mại điện tử,… do đó vấn đề về kết nối rất quan trọng.

2.7.1.2. Bảo mật trên những host đầu cuối

Sau giai đoạn chuẩn bị, tiếp theo bạn phải đảm bảo hệ thống đầu cuối an toàn. Đó là: giảm thiểu những lỗ hỗng có thể trở thành máy tính bị “thỏa hiệp” và cấu hình hệ thống cho phù hợp.

Giảm thiểu lỗi trên máy tính

Trong khi hầu hết nhiều kế hoạch phổ biến để có một cuộc tấn công DoS hiệu quả đó là tạo ra số lượng lớn các gói tin truyền đi, nếu hệ thống mục tiêu có một phần mềm lỗi, lợi dụng nó có thể chỉ cần một vài gói tin thì cũng có thể shutdown host đó mà vẫn đạt được hiệu quả đáng kể. Có rất nhiều loại tấn công theo cách này. Hơn nữa, tất cả những kỹ thuật để thu được những máy tính làm agent đều đạt được bằng cách khai thác những lỗ hổng này. Vì vậy sữa lỗ hổng trên hệ thống không những cải thiện tình trạng bảo mật trước nhiều mối nguy hại (virus, worm, malware,...) mà nó còn tránh bị “lôi kéo” vào những cuộc tấn công trên những nơi khác. (adsbygoogle = window.adsbygoogle || []).push({});

Ngày nay những ứng dụng và hệ điều hành đều chạy trên những host cục bộ và luôn yêu cầu thường xuyên vá lỗi và nâng cấp. Nhiều nhà cung cấp có một hệ thống tự động cập nhật . Những hệ thống này sẽ cho bạn biết khi nào có một lỗ

hỗng mới được khám phá và sẽ phân phối, cài đặt đến hệ thống của bạn. Ví dụ, Microsoft thường duy trì bản cập nhật trên website http:// www . w indo w supd a t e . c om trên hệ thống sử dụng hệ điều hành Window, người dùng có thể tìm hiểu các lỗ hổng mới đồng thời tải những bản vá lỗi liên quan và cập nhật. Red Hat, cộng đồng phát triển trên hệ điều hành Linux cũng duy trì một website với những cảnh báo và những sản phẩm vá lỗi trên http:// www . re dh a t. c om/ a pps/suppo r t/ erra t a / . Hay người dùng cũng có thể cho tự động cập nhật tại : //http www . re dh a t/so f t ware / r hn/upd a t e . Trên những hệ thống khác như MacOS cũng có những dịch vụ cập nhật phần mềm.

Các phần mềm phát hiện virus cần phải thường xuyên cập nhật những dấu hiệu virus mới. Đôi khi việc này cũng giúp bạn phát hiện và ngăn chặn những nỗ lực xâm nhập vào hê thống. Mỗi sản phẩm phát hiện virus đều có chế độ tự động cập nhật.

Xét về giao thức, chẳng hạn như TCP SYN, đây là trường hợp mà attacker lợi dụng những điểm yếu của nó và khai thác triệt để. Có một sự thay đổi về giao thức TCP, bản vá TCP syncookie, xử lý thành công đối với loại tấn công này bằng cách thay đổi những bước xác lập kết nối. Bản vá này rất thích hợp đối với giao thức nguyên thủy. Đối với những hệ điều hành như Linux, FreeBSD đã phát triển kỹ thuật TCP syncookie trên cả những hệ thống người dùng, cho phép họ có thể tùy chỉnh (mặc định là disable) bằng cách cấu hình

“echo1>/proc/sys/net/ipv4/tcp_syncookies” trong đoạn mã khi khởi động máy. WindowsNT bảo vệ tấn công dạng SYN bằng cách phát hiện các kết nối dạng half-open và thay đối các retransmission (truyền lại) và chỉ định bộ đệm, và thời gian, bằng cách thay đổi thông số trong registry: HKLM  system  CurrentcontrolSet  Services  Tcpip  SynAttackProtect thành 1 hoặc 2. Đối với

hệ thống về Unix như FreeBSD, thực thi dòng lệnh sau “sysct1 –w

net.inet.tcp.syncookies=1”.

Xác thực trong giao thức cũng là cách thường được áp dụng. Phát triển một máy chủ có tính năng yêu cầu các client khi có kết nối vào phải xác thực đảm bảo đúng địa chỉ thật.

Nhiều hệ điều hành mặc định có thể bật những dịch vụ không thường xuyên sử dụng. Những dịch vụ này lắng nghe trên những port, đôi khi nó cung cấp một backdoor vào máy của bạn. Hãy thận trọng disable tất cả những dịch vụ không cần thiết và đóng những port không sử dụng và lọc lưu lượng cho những dịch vụ khác. Ví dụ, nếu một host không hoạt động như một DNS server, thì không cần phải cho phép DNS request đến nó. Có thể xây dựng một tường lửa các nhân (chẳng hạn như IPtable sẵn có trên Linux hay những sản phẩm khác trên Window) để lọc lưu lượng. Lọc tại bộ định tuyến (router) cục bộ (chẳng hạn sử dụng một loại “screened subnet” của tường lửa) cũng rất tốt. Giám sát những dịch vụ hiện đang hoạt động trên host của bạn, bạn có thể nhìn vào danh sách các port đang mở hay sử dụng một công cụ scan port (như Nmap – http:// www .ins e c u re .or g /nm a p/ind e x.html ) tương tự, tuy nhiên sử dụng nó thật cẩn thận vì nó có thể làm tổn hại hệ thống của mình.

Hầu hết các công cụ tấn công DDoS sử dụng kỹ thuật giả mạo địa chỉ IP, thường là giả mạo địa chỉ nguồn để tránh bị phát hiện. Thực hiện lọc lưu lượng vào/ra để xóa đi các gói tin giả mạo đó. Bằng cách sử dụng những địa chỉ IP bên trong chỉ định rõ ràng và chỉ cho phép đúng những địa chỉ đó mới có thể định tuyến ra ngoài (đây cũng là một kỹ thuật cải tiến thường áp dụng ngày nay).

Tóm lại, cố gắng fix (sửa) những lỗ hổng càng sớm càng tốt, khi đó nó sẽ làm cho attacker rất khó khăn trong tấn công DoS/DDoS. Hoặc ít nhất cũng giảm bớt tốc độ tấn công thay vì để từ chối dịch vụ nhanh chóng, họ phải tạo ra một luồng lưu lượng cao thực sự.

Thiết lập giới hạn trên hệ thống

Ngoài việc vá lỗ hổng bảo mật, một trong những bước đầu tiên mà lỡ xảy ra trường hợp bị DDoS tại dịch vụ hay hệ thống đầu cuối – nhưng cuối cùng nó không “đủ mạnh” để làm sụp đổ hoàn toàn. Đó chính là giới hạn các tài nguyên trên hệ thống tại “ranh giới” của lưu lượng ra vào. Những hệ thống này phải tiếp nhận tất cả lưu lượng và thực hiện “sàn lọc” chỉ chấp nhận những kết nối hợp lệ đi vào.

• Tối ưu bộ xử lý CPU.

• Quản lý khả năng thực thi của đĩa.

• Quản lý khả năng thực thi của mạng.

• Tối ưu bộ nhớ.

• Xử lý số lượng các kết nối vào server.

2.7.1.3. Củng cố hệ thống mạng

Ngoài vấn đề về bảo mật tại những host cục bộ, chúng ta cũng phải nghĩ đến tính bảo mật trên mạng. Đó chính là tính dự phòng và nó được thiết kế và thực thi như sao.

Dự phòng mạng:

Một giải pháp theo “hướng thẳng” để xử lý luồng lưu lượng cao đó là mua nhiều tài nguyên, một cách thức được biết đến đó là overprovisioning.

Nhưng vấn đề đặt ra là chi phí, trong khi đó attacker tốn rất ít, thậm chí là không tốn một xu để tuyển dụng nguồn tài nguyên phong phú trên internet.

Một hình thức của overprovisioning là nâng cấp tài nguyên máy chủ. Nâng cấp máy chủ với bộ xử lý mới nhất, ổ đĩa lớn, bộ nhớ mạnh. Hoặc sử dụng nhiều máy chủ dự phòng hay sử dụng nó như một bộ máy cân bằng tải. Điều này cũng cải thiện phần nào các người dùng hợp lệ. Đối với các doanh nghiệp lớn, họ phải mở rộng theo nhiều cách như vậy. Một cuộc tấn công DoS/DDoS ở mức độ trung bình thì việc cung cấp các hệ thống dự phòng là điều đáng quan tâm.

Nếu như hệ thống của bạn quản lý và giao tiếp ra bên ngoài trên một đường mạng chung, thì lúc này hãy nghĩ đến băng thông. Nếu bạn đang sử dụng một đường dây diện thoại chia sẽ kết nối internet, bạn hãy cố gắng “nâng cấp”, liên lạc với nhà cung cấp dịch vụ internet để đặt mua một băng thông khác, bởi vì mục tiêu của tấn công DoS vẫn là từ chối dịch vụ. Một băng thông thấp càng làm cho bạn bị đình trệ trong kết nối.

Thiết kế:

Khi tấn công DDoS gửi số lượng lớn các yêu cầu từ dịch vụ của bạn, nhất định hệ thống của bạn phải chịu ảnh hưởng về lỗi. Thiết kế, tổ chức mạng sao cho nó có khả năng chịu lỗi lâu hơn. Đôi khi việc dự trù trước về lỗi xảy ra cũng mang nhiều lợi ích trong công cuộc phòng chống những sự kiện không mong muốn. Sau

đây là những công nghệ sử dụng để thiết kế:

Phân chia các dịch vụ. Bạn có thể cung cấp những đường mạng vật lý khác nhau cho nhiều dịch vụ khác nhau, kết nối đến những nhà cung cấp dịch vụ khác nhau hay phân chia thành nhiều mạng con. Cách tốt nhất là chia thành nhiều nhóm tùy theo cấu trúc bên trong mạng của bạn, chẳng hạn: nhóm những host làm máy chủ Web (server), những máy chủ ứng dụng, máy chủ CSDL,v.v… Có thể thiết lặp ràng buộc các chính sách như đặt tường lửa ở mỗi nhóm này.

Phân tách các dịch vụ trên những host. Thay vì bạn tập trung nhiều dịch vụ trên một host, bạn có thể tách từng dịch vụ riêng đảm nhận rên từng host riêng. Ví dụ bạn có thể chỉ mở một số port SMTP (25) và POP3 (110) chỉ trên máy chủ chứa nhận e-mail, các port không cần thiết thì nên đóng lại. Khi đó nếu có một hành vị lạ xảy ra trên các host này, bạn sẽ nhận biết một cách dễ dàng. (adsbygoogle = window.adsbygoogle || []).push({});

Phân chia đường mạng. Phân chia đường mạng trong tổ chức sao cho hợp lý cũng là cách làm tốt để tránh ảnh hưởng đến các đường mạng khác. Chẳng hạn, bạn có một Web server trên một đường mạng riêng kết nối với internet; bạn có một mail server cũng riêng biệt; giả sử bạn bị tấn công DoS/DDoS trên Webserver, khi đó các nhân viên vẫn trao đổi e-mail bình thường. Thời gian còn lại là bạn xử lý cái Webserver đó mà thôi.

Giảm bớt “tầm nhìn” ra bên ngoài. Nếu attacker có thể “học” được cách tổ chức bên trong mạng của bạn, họ có thể thu được nhiều lợi ích phục vụ cho việc tấn công. Có một số công nghệ phụ giúp một cách tìm ẩn mạng của mình. Chẳng hạn, khóa những gói ICMP ECHO_REPLY có thể ngăn chặn attacker học cách thức định tuyến của mình. Hoặc “cắt” thành 2 vùng DNS riêng với cùng một tên DNS. Một vùng sẽ chứa danh sách những dịch vụ có thể truy xuất ra ngoài thông qua tường lửa (External DNS server). Vùng kia sẽ chứa những dịch vụ cung cấp truyền thông bên trong giữa các nhân viên với nhau (Internal DNS server).

2.7.1.4. Chuẩn bị ứng phó với tấn công

Lập kế hoạch ứng phó khi bất ngờ có một cuộc tấn công DoS xảy ra. Để đáp trả lại cuộc tấn công, yêu cầu phải nhanh chóng phát hiện và nhận dạng chính xác

lưu lượng nào là lưu lượng tấn công để mà lọc nó và giới hạn tốc độ của nó. Phát hiện, nhận dạng và đáp trả có thể thực hiện bằng cách xấy dựng một hệ thống phòng chống DoS/DDoS hay cũng có thể mua những sản phẩm thương mại sẵn có trên thị trường.

Bạn sẽ chọn cho mình một kỹ thuật phòng chống và cấu hình sử dụng nó.

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 52 - 84)