<![CDATA[Latest posts for the topic "Giám sát an ninh mạng - Bàn về giải pháp chống DDoS"]]> /hvaonline/posts/list/8.html JForum - http://www.jforum.net Giám sát an ninh mạng - Bàn về giải pháp chống DDoS http://www.slideshare.net/thaidn/network-security-monitoring-or-how-to-mitigate-a-ddos-attack-in-20 Mình tập trung thảo luận về cách thức chống DDoS mà tôi đề cập ở đoạn in nghiêng nhỉ? ---- Để bắt đầu thì tôi xin chia sẻ một câu chuyện. Cách đây không lâu, web site của một khách hàng bị tấn công từ chối dịch vụ DDoS. Vào lúc cao trào của vụ tấn công, có hơn 10.000 IP đến từ khắp nơi trên thế giới liên tục gửi hàng ngàn yêu cầu mỗi giây đến hệ thống của khách hàng này. Hình ảnh (slide số 4) mà quý vị đang thấy trên màn hình gồm có 2 phần nhỏ. Phần ở trên là lưu lượng dữ liệu ra vào hệ thống lúc bình thường, không bị tấn công. Phần ở dưới là lưu lượng dữ liệu ra vào hệ thống của ngay tại thời điểm đang bị tấn công dữ dội. Như quý vị cũng thấy, chỉ trong vòng 10', từ lúc 16h10 đến 16h20, lượng dữ liệu ra vào đã tăng đột biến lên gấp gần 10 lần lúc bình thường. Nhưng đồng thời, chỉ trong vòng chưa tới 20', chúng tôi đã kiểm soát được vụ tấn công này, và đưa toàn bộ hệ thống trở lại tình trạng bình thường. Chúng tôi làm được như vậy tất cả là nhờ vào việc đã áp dụng tốt các công nghệ và nguyên tắc của giám sát an ninh mạng. Nếu quý vị từng phải xử lý một vụ tấn công DDoS, tôi tin chắc có một câu hỏi mà quý vị đã phải tự hỏi nhiều lần: chuyện gì đang diễn ra vậy? Tại sao hệ thống của tôi đang chạy ngon lành tự dưng lại cứng đơ, khách hàng không sử dụng được nữa? Bản thân tôi cho rằng đây là câu hỏi tối quan trọng mà bất kỳ ai làm việc trong lĩnh vực an ninh mạng đều phải tự hỏi và phải có câu trả lời xác đáng. Ngay tại thời điểm này đây, ngay khi quý vị đang ngồi ở đây nghe tôi trình bày, quý vị có biết ai đang làm gì ở đâu như thế nào trên hệ thống của quý vị hay không? Tại sao câu hỏi đó quan trọng? Tại sao quý vị cần phải biết được ai đang làm gì ở đâu như thế nào trên hệ thống của quý vị? Đơn giản vì chúng ta không thể bảo vệ một hệ thống nếu chúng ta không biết được trạng thái của hệ thống đó. Và chúng ta chỉ có thể biết được trạng thái của một hệ thống bằng cách theo dõi nó thường xuyên. Nói cách khác, chúng ta phải biết được tất cả các hoạt động đã và đang diễn ra trên hệ thống. Thử nhìn vào hoạt động của một khách sạn. Để đảm bảo an ninh, người ta phải đặt camera theo dõi ở khắp nơi. Các camera này chắc hẳn sẽ đưa hình ảnh về một địa điểm tập trung, nơi có các chuyên viên theo dõi 24/7 để kịp thời phát hiện và đối phó với các sự cố an ninh. Tương tự như thế, muốn đảm bảo an ninh thông tin chúng ta cũng phải tiến hành theo dõi 24/7. Nhưng trong thực tế, theo quan sát của tôi, rất ít tổ chức ở VN có một hệ thống giám sát an ninh như thế. Để bảo vệ hệ thống mạng của mình, các doanh nghiệp và các tổ chức công thường triển khai các thiết bị như tường lửa, phần mềm chống và diệt virus, thiết bị phát hiện xâm nhập, thiết bị ngăn chặn xâm nhập. Rõ ràng họ nghĩ rằng, các thiết bị này đảm bảo an ninh mạng cho họ nên họ mới đầu từ nhiều tiền của để triển khai chúng. Thật tế hầu hết những người giữ quyền quyết định đầu tư cho an toàn thông tin thường hay hành động theo thị trường. Ví dụ như cách đây vài năm, tường lửa là mốt. Ai cũng đầu tư làm hệ thống tường lửa nên chúng ta cũng phải làm tường lửa. Sau đó, các giải pháp phát hiện xâm nhập lên ngôi. Bây giờ cái gì đang là trào lưu quý vị biết không? ISO 27001. Lãnh đạo doanh nghiệp thấy các các doanh nghiệp khác triển khai ISO 27001 nên họ cũng muốn doanh nghiệp của họ phải đạt được chuẩn này. Tôi không nói rằng tường lửa, thiết bị phát hiện xâm nhập hay đạt được các chuẩn như ISO 27001 và ITIL là không có tác dụng, nhưng câu hỏi chúng ta cần phải tự hỏi là: tại sao sau khi triển khai quá trời thứ đắt tiền và tốn thời gian như thế, chúng ta vẫn bị xâm nhập, chúng ta vẫn bị tấn công? Liệu ISO 27001 hay tường lửa có giúp bạn khắc phục được một vụ tấn công từ chối dịch vụ trong vòng 20'? Rồi khi đã bị xâm nhập, có thiết bị đắt tiền hay tiêu chuẩn nào giúp quý vị biết được hệ thống của quý vị bị xâm nhập khi nào, tại sao và như thế nào hay không? Chỉ có con người mới có khả năng làm việc đó. Đây là điều tôi muốn nhấn mạnh, các thiết bị hay các tiêu chuẩn sẽ trở nên vô tác dụng nếu chúng ta không có con người thường xuyên theo dõi, giám sát hệ thống. Nghĩa là, chúng ta cần các chuyên gia giám sát hệ thống có chuyên môn cao. Tại sao chúng ta cần phải có chuyên gia, tại sao tự bản thân các thiết bị hay các tiêu chuẩn không thể bảo vệ hệ thống mạng? Bởi vì những kẻ tấn công rất thông minh, không thể dự đoán và rất có thể có động lực cao nhất là khi thương mại điện tử phát triển như bây giờ. Máy móc và quy trình không thể ngăn chặn được họ, chắc chắn là như thế. Máy móc chắc chắn sẽ thua khi chiến đấu với não người. Đó là lý do chúng ta cần con người, cần những chuyên gia, để biến an ninh mạng thành một cuộc chiến cân sức hơn giữa người và người, thay vì giữa máy và người. Câu hỏi đặt ra là các chuyên gia an ninh mạng cần gì để có thể phát hiện và xử lý các sự cố an ninh mạng cũng như xây dựng các kế hoạch phòng thủ? Câu trả lời chỉ có một: tất cả dữ liệu mà chúng ta có thể thu thập được trên hệ thống mạng trong khi sự cố xảy ra! Quý vị còn nhớ ví dụ của tôi v/v làm sao để bảo vệ an ninh cho một khách sạn? Người quản lý cố gắng thu thập tất cả các dữ liệu, ở đây là hình ảnh và âm thanh, bằng các camera đặt khắp nơi trong khách sạn, và họ cần có các chuyên gia lành nghề để phân tích các hình ảnh này để kịp thời xử lý các sự cố. Họ có hệ thống chống và phát hiện cháy, họ có hệ thống chống trộm, nhưng những máy móc đó chỉ là công cụ, phần việc chính vẫn phải do con người, là các chuyên gia thực hiện. Tóm lại, để đảm bảo an ninh, chúng ta cần phải theo dõi giám sát hệ thống mạng 24/7, và để làm chuyện đó chúng ta cần có các chuyên gia và các chuyên gia cần dữ liệu để thực hiện công việc của họ. Giám sát an ninh mạng chính là phương thức giúp chúng ta có thể thực hiện việc này một cách tối ưu nhất. Vậy giám sát an ninh mạng là gì? Thuật ngữ giám sát an ninh mạng được chính thức định nghĩa vào năm 2002 và về cơ bản nó gồm 3 bước: thu thập dữ liệu, phân tích dữ liệu và leo thang thông tin. Để thu thập dữ liệu, chúng ta sẽ sử dụng các phần mềm hay giải pháp có sẵn trên thị trường để thu thập dữ liệu ghi dấu hoạt động của các máy chủ, thiết bị mạng, phần mềm ứng dụng, cơ sở dữ liệu...Nguyên tắc của thu thập dữ liệu là thu thập càng nhiều càng tốt, với mục tiêu là chúng ta phải có đầy đủ thông tin về trạng thái, log file của tất cả các thành phần trong hệ thống cần phải bảo vệ. Bởi vì có muôn hình vạn trạng các loại tấn công và sự cố ATTT, chúng ta không thể biết trước dữ liệu nào là cần thiết để có thể phát hiện và ngăn chặn loại tấn công nào. Nên kinh nghiệm của tôi là nếu mà luật pháp và công nghệ cho phép, cứ thu thập hết tất cả dữ liệu mà quý vị có thể. Nguyên tắc “thà giết lầm còn hơn bỏ sót” có thể áp dụng ở đây. Nếu phần mềm có thể giúp chúng ta làm công việc thu thập dữ liệu, thì để phân tích dữ liệu và ra quyết định, như đã nói ở trên, chúng ta cần có chuyên gia, bởi chỉ có chuyên gia mới có thể hiểu rõ ngữ cảnh của dữ liệu mà phần mềm đã thu thập được. Ngữ cảnh là tối quan trọng. Một dữ liệu được thu thập trong ngữ cảnh A có thể sẽ có ý nghĩa rất khác với cùng dữ liệu đó nếu nó thuộc về ngữ cảnh B. Ví dụ như một ngày đẹp trời hệ thống thu thập dữ liệu cảnh báo rằng một số file chương trình trên một máy chủ quan trọng đã bị thay đổi. Nếu như xét ngữ cảnh A là máy chủ đó đang được nâng cấp phần mềm, thì thông tin này không có nhiều ý nghĩa. Nhưng nếu như ở ngoài ngữ cảnh A đó, nói cách khác, không có một yêu cầu thay đổi phần mềm nào đang được áp dụng cho máy chủ đó cả, thì rõ ràng rất có thể máy chủ đó đã bị xâm nhập. Và chỉ có những chuyên gia mới có thể cung cấp được những ngữ cảnh như thế. Quy trình giúp cho chúng ta leo thang thông tin. Leo thang thông tin là việc các chuyên gia báo cáo lên trên cho những người có quyền quyết định những vấn đề mà họ cho là quan trọng, cần phải điều tra thêm. Những người có quyền quyết định là những người có đủ thẩm quyền, trách nhiệm và năng lực để quyết định cách đối phó với các sự cố ANTT tiềm tàng. Không có leo thang thông tin, công việc của các chuyên gia sẽ trở thành vô ích. Tại sao phải phân tích để phát hiện các sự cố ANTT tiềm tàng nếu như chẳng có ai chịu trách nhiệm cho việc xử lý chúng? Quay trở lại với câu chuyện vụ tấn công từ chối dịch vụ mà tôi chia sẻ ban đầu. Hệ thống giám sát an ninh mạng của chúng tôi thu thập tất cả dữ liệu liên quan đến hoạt động của các thiết bị như tường lửa, máy chủ proxy, máy chủ web, các ứng dụng web chạy trên các máy chủ web. Dựa vào nguồn dữ liệu phong phú này, các chuyên gia của chúng tôi đã không mất quá nhiều thời gian để phân tích và nhận ra các dấu hiệu bất thường trên hệ thống. Họ leo thang thông tin bằng cách thông báo cho tôi, và tôi quyết định kích hoạt quá trình đối phó với sự cố ANTT, ở đây là đối phó khi bị tấn công từ chối dịch vụ. Về mặt kỹ thuật, chúng tôi đã cài đặt sẵn các biện pháp kiểm soát tự động trên hệ thống giám sát an ninh mạng, nên các chuyên gia của tôi chỉ phải theo dõi vụ tấn công xem có diễn tiến gì bất thường hay không mà không phải thực hiện thêm bất kỳ thao tác nào. Về mặt hành chính, tôi thông báo cho lãnh đạo doanh nghiệp và các đơn vị như Trung Tâm Chăm Sóc Khách hàng, Trung tâm Vận hành Data Center cũng như mở kênh liên lạc với các ISP để nhờ họ trợ giúp nếu như đường truyền bị quá tải. Như quý vị đã thấy trong một slide ở phía trước, chỉ chưa tới 20', vừa ngay sau lần kích hoạt hệ thống phòng thủ đầu tiên, vụ tấn công đã được kiểm soát thành công. Hệ thống giám sát an ninh mạng cũng giúp chúng tôi làm các báo cáo để gửi lãnh đạo cũng như gửi các cơ quan điều tra nhờ hỗ trợ truy tìm thủ phạm. Toàn bộ phương thức giám sát an ninh mạng chỉ đơn giản như thế. Đến đây là chúng ta xong phần 1 của bài trình bày này. Tiếp theo tôi sẽ chia sẻ một số thông tin về hệ thống cũng như công tác giám sát an ninh mạng. Về mặt kỹ thuật, chúng tôi không mất quá nhiều thời gian cho việc thiết kế hệ thống và lựa chọn giải pháp, bởi vì ngay từ đầu chúng tôi đã xác định đây là một lĩnh vực tương đối mới mẻ, thành ra một giải pháp hoàn chỉnh sẽ không có trên thị trường. Thay vào đó, giống như phát triển phần mềm theo nguyên lý agile, chúng tôi làm vừa làm vừa điều chỉnh. Chúng tôi khởi đầu bằng việc xây dựng một hệ thống log tập trung. Như đã nói ở trên, đây là công đoạn thu thập dữ liệu. Trong quá trình làm, chúng tôi nhận thấy hầu hết các ứng dụng chạy trên nền UNIX hay các thiết bị mạng đều hỗ trợ sẵn chuẩn syslog, thành ra chúng tôi quyết định chọn phần mềm mã nguồn mở syslog-ng làm công cụ chính để thu thập log. Tuy nhiên có hai vấn đề: các máy chủ Windows mặc định không hỗ trợ syslog; và một số ứng dụng do chúng tôi tự phát triển hay mua ngoài cũng không hỗ trợ syslog. Đối với vấn đề thứ nhất, chúng tôi cài đặt thêm một phần mềm cho các máy chủ Windows, để đẩy các sự trên trên đó về hệ thống log của chúng tôi. Đối với vấn đề thứ hai, việc đầu tiên chúng tôi làm là xây dựng một quy định về log của các ứng dụng. Trong quy định này chúng tôi yêu cầu tất cả các ứng dụng muốn được cấp quyền chạy trên hệ thống của chúng tôi thì phải thỏa mãn các tiêu chí về log các sự kiện. Chúng tôi cũng hướng dẫn và cung cấp thư viện phần mềm mẫu để các lập trình viên có thể tích hợp vào phần mềm có sẵn của họ. Syslog-ng là một phần mềm mã nguồn mở tuyệt vời. Nó hoạt động cực kỳ ổn định, bền vững. Trong suốt hơn 3 năm triển khai hệ thống này, chúng tôi chưa bao giờ gặp sự cố ở phần mềm này. Nhưng syslog-ng cũng chỉ làm tốt nhiệm vụ thu thập dữ liệu, làm sao phân tích dữ liệu đó? Trên thị trường lúc bấy giờ có khá nhiều công cụ giúp giải quyết vấn đề này. Chúng tôi lần lượt thử nghiệm các công cụ này, và rồi chúng tôi phát hiện ra Splunk. Chúng tôi hay gọi phần mềm này là “Splunk toàn năng”. Một công cụ phân tích dữ liệu trên cả tuyệt vời! Splunk rất hay, nhưng nếu không có các chuyên gia có kỹ năng phân tích dữ liệu để khai thác Splunk thì hệ thống cũng sẽ không đem lại nhiều ích lợi. Cái hay của Splunk là ở chỗ nó đã làm cho công việc phân tích log tưởng như nhàm chán trở nên cực kỳ thú vị. Chỉ trong một thời gian ngắn, nhân viên của tôi đã bị Splunk mê hoặc. Cái tên “Splunk toàn năng” cũng là do anh ấy đặt cho Splunk. Thành ra chúng tôi cũng không mất quá nhiều thời gian để huấn luyện, bởi vì tự bản thân giải pháp nó đã đủ thú vị để cuốn hút con người chủ động tìm hiểu nó. Điều tối quan trọng nhất đối với một hệ thống giám sát an ninh là khả năng phân tích một lượng dữ liệu lớn một cách nhanh chóng. Splunk làm rất tốt việc này. Tuy vậy trên thị trường vẫn có các giải pháp khác hoàn toàn miễn phí như tôi liệt kê ở trên. Bản thân tôi cho rằng Hadoop + Scribe + Hive là một hướng nghiên cứu nhiều tiềm năng. Với hệ thống này, bây giờ chúng tôi có thể an tâm rằng tôi có thể biết được chuyện gì đang diễn ra trên hệ thống mạng của các khách hàng của chúng tôi ngay tại thời điểm tôi đang viết những dòng này. Về phía lãnh đạo doanh nghiệp, họ cũng an tâm khi biết rằng, chúng tôi có thể phát hiện, truy vết và đối phó lại với bất kỳ sự cố ANTT nào diễn ra trên hệ thống của họ. Thực tế là từ khi triển khai giải pháp này, chúng tôi giải quyết được 100% các sự cố an toàn thông tin trên hệ thống của các khách hàng của chúng tôi. Ngoài ra hệ thống này còn giúp chúng tôi phát hiện và xử lý hơn phân nửa các sự cố an toàn thông tin. Có rất nhiều tình huống, nếu không có sự hỗ trợ của hệ thống này, chúng tôi sẽ không thể giải quyết được vấn đề. Lại quay lại với câu chuyện bị tấn công DDoS ở trên. Nhắc lại, một khách hàng của chúng tôi từng bị tấn công DDoS trên diện rộng vào hệ thống máy chủ Internet Banking. Ở thời điểm cao trào, có hơn 10000 IP gửi hàng ngàn request/s đến máy chủ của họ. Làm thế nào để nhanh chóng lấy ra được danh sách 10000 IP này, ngăn chặn chúng trên hệ thống firewall, mà không chặn nhầm khách hàng? Làm thế nào để có thể tự động hóa quá trình trên, chẳng hạn như cứ mỗi 15' sẽ lấy ra danh sách các IP đang tấn công, cập nhật bộ lọc của tường lửa? Với hệ thống này, chúng tôi chỉ cần soạn thảo một đoạn script ngắn để lấy ra danh sách IP đang gửi hơn 100 request/s rồi cài đặt chương trình để tự động cập nhật bộ lọc của firewall mỗi 15'. Một vấn đề tưởng như nan giải có thể giải quyết nhanh gọn lẹ và rất rẻ. Các giải pháp chống DDoS sẽ có 2 thành phần chính: phát hiện và đánh chặn. Các giải pháp có sẵn trên thị trường như các thiết bị của các hãng lớn hay các giải pháp mở như Iptables + Snort inline thường cố gắng phân tích các packet/request để phân loại chúng theo thời gian thực. Nghĩa là khi có một packet/request đi vào, các giải pháp này sẽ cố gắng xác định xem packet đó có phải là một phần của vụ tấn công hay không, nếu phải thì thực hiện đánh chặn. Sự khác biệt của giải pháp của chúng tôi so với các giải pháp chống DDoS đang có trên thị trường là chúng tôi không cố gắng phân loại và ngăn chặn các packet/request theo thời gian thực. Thay vào đó, chúng tôi tách phần phát hiện ra khỏi hệ thống phòng thủ, và thực hiện phần phát hiện hoàn toàn offline bằng cách sử dụng thông tin từ hệ thống NSM. Cụ thể, thông tin từ hệ thống đánh chặn cũng như các nguồn khác như web server, proxy hay firewall sẽ được đưa vào hệ thống phân tích để chạy offline, rồi kết quả phân tích này sẽ được cập nhật ngược trở lại cho hệ thống đánh chặn. Với cách làm này, giải pháp của chúng tôi có thể đáp ứng được lượng tải rất lớn vì chúng tôi không phải tốn quá nhiều resource để phân tích on-the-fly một packet hay request như các giải pháp khác. Về các hướng phát triển trong thời gian tới, tôi thấy một ứng dụng hay ho khác của hệ thống giám sát an ninh mạng là nó giúp chúng tôi có thể đo lường được mức độ an toàn của hệ thống. Có một nguyên tắc lâu đời của quản lý là: chúng ta không thể quản lý những gì chúng ta không thể đo đạc. Do đó để quản lý được an toàn thông tin, chúng ta phải biến an toàn thông tin thành những thông số có thể đo đạc và so sánh được. Đây là một hướng tiếp cận an toàn thông tin từ góc nhìn của người quản lý mà chúng tôi muốn áp dụng cho các khách hàng trong thời gian sắp tới. ---- Tài liệu tham khảo: - Ký sự các vụ DDoS vào HVAOnline - http://taosecurity.blogspot.com ]]> /hvaonline/posts/list/32553.html#200618 /hvaonline/posts/list/32553.html#200618 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Đối với vấn đề thứ nhất, chúng tôi cài đặt thêm một phần mềm cho các máy chủ Windows, để đẩy các sự trên trên đó về hệ thống log của chúng tôi   Thái cho hỏi là syslog/udp, có giải phảp syslog/tcp nào không? Theo như tui hiểu, điều cốt lõi trong mô hình của mrro là log central và analyzer. Analyzer server sẽ tiến hành kết nối vào log central, phân tích, tổng hợp, đưa ra IPs có hơn 100 request/s rồi đưa ngược trở lại vào iptables để ngăn chặn. Những IP này có thể được unblock theo thời gian định trước. Bài giới thiệu của mrro có phần hơi chung chung quá, mrro có thể giới thiệu kỹ hơn về server offline analyze kia không? Cụ thể là, chặn ở tầng network và application như thế nào? Có còn chặn ở tầng nào khác hay không? Ngoài ra, như ý tui đã nói ở phần trước, nếu 1 net cafe vài trăm users đang sử dụng. 1 user DoS site khách hàng, IP của net cafe đó sẽ được đưa vào blocked IP. Vậy tất cả các người dùng khác đều không thể truy cập được? Một ý nữa hôm trước tui có nói sơ qua, là chặn theo request. Mô hình như sau: attacker ===> analyzer ===> webserver Bước 1: attacker request lần đầu tiên. Analyzer sẽ tiến hành insert 1 giá trị vào cookie của attacker, ví dụ count=1 attacker ===> analyzer [count = 1; requesttime=12:00:00] ===> webserver Bước 2: attacker request tấn công lần nữa attacker ===> analyzer [count =2; requesttime=12:00:01] ===> webserver Trong 1 khoảng thời gian định trước, ví dụ như 1 giây, analyzer thấy số lượng request từ attacker có count quá nhiều, sẽ tiến hành deny request đó. Như vậy, dù có cùng 1 IP, nhưng khác cookie, cũng vẫn truy cập bình thường attacker ===> analyzer [count=100; requesttime=12:00:02] [stop] user ===> analyzer [count=2; requesttime=12:00:02] ===> webserver Nhiệm vụ duy nhất của analyzer là gán và check giá trị cookie của attacker.]]> /hvaonline/posts/list/32553.html#200631 /hvaonline/posts/list/32553.html#200631 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

LeVuHoang wrote:
Nếu 1 net cafe vài trăm users đang sử dụng. 1 user DoS site khách hàng, IP của net cafe đó sẽ được đưa vào blocked IP. Vậy tất cả các người dùng khác đều không thể truy cập được?  
Vấn đề này anh conmale cũng đã đề cập và giải quyết trong loạt bài "Ký sự các vụ DDoS vào HVAOnline" rồi mà anh! Theo em mô hình như anh đề cập: attacker ===> analyzer ===> webserver thì trong loạt bài của anh conmale: Analyzer chính là IPtables + Snort, analyzer ở trong bài viết đó anh conmale đã dựa vào sự khác biệt của gói tin hợp lệ và gói tin tấn công để tiến hành lọc chứ không có block. Tuy nhiên giải pháp này cần sự can thiệp của người quản trị đúng như anh Thái đã nói ở trên :P

mrro wrote:
Tóm lại, để đảm bảo an ninh, chúng ta cần phải theo dõi giám sát hệ thống mạng 24/7, và để làm chuyện đó chúng ta cần có các chuyên gia và các chuyên gia cần dữ liệu để thực hiện công việc của họ. Giám sát an ninh mạng chính là phương thức giúp chúng ta có thể thực hiện việc này một cách tối ưu nhất.  
Vài ý kiến! ]]>
/hvaonline/posts/list/32553.html#200643 /hvaonline/posts/list/32553.html#200643 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200669 /hvaonline/posts/list/32553.html#200669 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Nhắc lại, một khách hàng của chúng tôi từng bị tấn công DDoS trên diện rộng vào hệ thống máy chủ Internet Banking. Ở thời điểm cao trào, có hơn 10000 IP gửi hàng ngàn request/s đến máy chủ của họ. Làm thế nào để nhanh chóng lấy ra được danh sách 10000 IP này, ngăn chặn chúng trên hệ thống firewall, mà không chặn nhầm khách hàng? Làm thế nào để có thể tự động hóa quá trình trên, chẳng hạn như cứ mỗi 15' sẽ lấy ra danh sách các IP đang tấn công, cập nhật bộ lọc của tường lửa? Với hệ thống này, chúng tôi chỉ cần soạn thảo một đoạn script ngắn để lấy ra danh sách IP đang gửi hơn 100 request/s rồi cài đặt chương trình để tự động cập nhật bộ lọc của firewall mỗi 15'. Một vấn đề tưởng như nan giải có thể giải quyết nhanh gọn lẹ và rất rẻ.   Đoạn này là hơi "tào lao" nha ;-) Jk, có lẽ ở đây bạn mrro nói hơi vắn tắt hoặc có thể chỉ là đưa ra ví dụ là như thế.. thế nên con số về cả attacker IP lẫn "sample signature" cũng đều đẹp và đều có thể...nghĩ ngay ra được như thế Chứ tình huống thật thì nó khác từ nhiều cho tới rất nhiều nha :x ]]> /hvaonline/posts/list/32553.html#200673 /hvaonline/posts/list/32553.html#200673 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Vấn đề này anh conmale cũng đã đề cập và giải quyết trong loạt bài "Ký sự các vụ DDoS vào HVAOnline" rồi mà anh!   Giải pháp này theo Hoàng được biết thì Iptables block IP thì phải, mrro confirm nhé.
trong loạt bài của anh conmale: Analyzer chính là IPtables + Snort, analyzer ở trong bài viết đó anh conmale đã dựa vào sự khác biệt của gói tin hợp lệ và gói tin tấn công để tiến hành lọc chứ không có block. Tuy nhiên giải pháp này cần sự can thiệp của người quản trị đúng như anh Thái đã nói ở trên  
Đúng rồi, nhưng vấn đề trong chủ đề mrro muốn nêu ra là, "máy học". Tự động active response chứ ít có sự tác động của con người càng tốt.
Giải pháp cookie không hoàn chỉnh vì cookie ở đầu cuối người dùng, mà đầu cuối lại đã bị chiếm quyền điều khiển, hơn nữa việc DDoS không chỉ riêng web server.  
Giải pháp cookie chỉ là 1 trong nhiều tần để cản lọc mà thôi.
Chứ tình huống thật thì nó khác từ nhiều cho tới rất nhiều nha  
Nên mới chờ mrro nói chi tiết đây, hehe]]>
/hvaonline/posts/list/32553.html#200701 /hvaonline/posts/list/32553.html#200701 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200724 /hvaonline/posts/list/32553.html#200724 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Abe nghĩ. @LeVuHoang: về chặn nhiều tầng nhiều lớp thì ký sự của anh conmale đã bàn rất nhiều rồi, mình không bàn lại ở đây làm gì. Mình chỉ tập trung vào cái ý ở đây là giải pháp chặn ở tầng IP, bằng cách dựa vào tầng suất tấn công mà phân biệt được đâu là zombie request, đâu là customer request. Còn những vấn đề nhỏ lẻ khác như nếu có nhiều máy nằm sau một IP thì giải quyết làm sao, hôm ở Barcamp Saigon 2009, mình cũng đã trả lời câu hỏi này. Lúc này nó lại quay lại với cách mà anh conmale đã làm: chặn ở network kô được thì lên application chặn. zoombie request thì thường sẽ khác với customer request, mình sẽ dựa vào đó để chặn trên application. nhưng nếu zombie request giống y chang customer request thì sao? thì mình sẽ cho nó đi vào luôn chứ sao bây giờ :-D. nếu mà hệ thống thiết kế làm sao mà chỉ có vài IP gửi request liên tục mà cũng chết thì phải coi lại thiết kế hệ thống trước đã, rồi mới bàn đến việc chống DDoS. giống như trước đây, HVAOnline sử dụng LAMP, việc phòng thủ sẽ khó khăn, nhưng sau này khi anh conmale đổi sang J2EE thì mọi thứ đã đỡ vất vả hơn rất nhiều. về giải pháp của LeVuHoang thì mình thấy giải pháp này sai ở chỗ là zombie kô có chấp nhận cookie. thật ra zombie chỉ gửi cái request rồi nó forget liền cái request đó, chứ nó có thèm đợi response đâu mà mình chèn cookie vào, rồi hi vọng nó sẽ gửi lại cái cookie đó cho mình để mình phân tích. giải pháp của Hoàng có lẽ có thể sử dụng được trong trường hợp X-flash hoặc các dạng DDoS dùng chính browser của zombie để gửi request. @myquartz: như mình đã nói ở trên, hệ thống này của mình đã được áp dụng cho ít nhất là 02 khách hàng của mình. về giải pháp của bạn thì mình nghĩ về mặt phương thức là giống nhau, nghĩa là cũng theo dõi thông tin log, rồi dựa vào thông tin log này để quyết định sẽ hành xử như thế nào. sự khác biệt chỉ là mình không muốn mỗi request đi vào mình lại phải tính toán xem request đó có vi phạm policy gì về tần suất request hay không, bởi vì mình cho rằng làm như thế sẽ mất nhiều thời gian khi mà lượng request tăng cao. do đó mình tách phần phân tích ra, làm một lần sau một khoảng thời gian nhất định. thật tế nếu mình giảm cái cronjob xuống còn 1 lần/phút thì mình cũng sẽ có cách làm gần như là real-time. nhưng câu hỏi là có cần thiết phải làm nhanh hay không? cái này cũng chính là cái ý tốc độ phản ứng mà myquartz đưa ra. mình chấp nhận phản ứng chậm một chút, đổi lại mình có khả năng phản ứng vói số lượng request nhiều hơn. mình nghĩ cái này là lựa chọn của mỗi người thôi. sở dĩ mình không làm theo kiểu real time vì mình nghĩ real time sẽ thất bại khi mà số lượng request quá lớn. -m ]]> /hvaonline/posts/list/32553.html#200735 /hvaonline/posts/list/32553.html#200735 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS zoombie request thì thường sẽ khác với customer request, mình sẽ dựa vào đó để chặn trên application.   Trên thực tế thì trong cuộc DoS vừa qua của mrro và x-flash của conmale, thì đều có signature khác với customer request. Giờ đặt trong trường hợp là ứng dụng gởi request hợp lệ (có thể đơn giản là dùng IE component, hoặc tạo 1 cái request có header y hệt như IE header) thì tầng application chặn như thế nào? Nếu tinh vi hơn nữa, sau mỗi request tiến hành clear cookie thì sao? Mình đang quan tâm việc chặn ở tầng application và giải pháp trên sẽ hành xử ra sao nếu các cú request nằm trong cùng 1 isp gateway.]]> /hvaonline/posts/list/32553.html#200749 /hvaonline/posts/list/32553.html#200749 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

LeVuHoang wrote:
Thái cho hỏi là syslog/udp, có giải phảp syslog/tcp nào không? Theo như tui hiểu, điều cốt lõi trong mô hình của mrro là log central và analyzer. Analyzer server sẽ tiến hành kết nối vào log central, phân tích, tổng hợp, đưa ra IPs có hơn 100 request/s rồi đưa ngược trở lại vào iptables để ngăn chặn. Những IP này có thể được unblock theo thời gian định trước. Bài giới thiệu của mrro có phần hơi chung chung quá, mrro có thể giới thiệu kỹ hơn về server offline analyze kia không? Cụ thể là, chặn ở tầng network và application như thế nào? Có còn chặn ở tầng nào khác hay không? Ngoài ra, như ý tui đã nói ở phần trước, nếu 1 net cafe vài trăm users đang sử dụng. 1 user DoS site khách hàng, IP của net cafe đó sẽ được đưa vào blocked IP. Vậy tất cả các người dùng khác đều không thể truy cập được?  
syslog-ng cũng đã support syslog/tcp, nhưng bản trên Linux thì có free, còn bản trên Windows thì phải trả phí. Có điều, khi nào cần đến tcp thay cho udp, hay thậm chí khi nào cần đến tcp+ssl, thì tuỳ hiện trạng và nhu cầu của mỗi doanh nghiệp. Cũng nên nhớ một số thiết bị cực kỳ quan trọng như firewalls, IDS/IPS, cũng chỉ support syslog/udp. Nếu đã chọn syslog-ng để thu thập dữ liệu, thì cũng nên chọn agent của nó, đỡ mất công tìm hiểu phần mềm khác cho khoẻ ;-). Đã block trên firewall thì hiển nhiên phải có bước unblock. Nguyên tắc unblock thì cũng có nhiều lựa chọn. VD nếu như ip bị block, trong khoảng 1 tiếng, không truy cập (và hiển nhiên sau đó bị block) nữa thì gỡ khỏi danh sách block ip. Giải pháp nào nếu triển khai, cũng sẽ có hạn chế, thậm chí khi kẻ tấn công biết được nguyên tắc của giải pháp, thì cũng sẽ tận dụng để tránh khỏi bị phát hiện và 'phán xét'. Ngược lại, việc block nhầm vào IP của khách hàng cũng hay là IP chung của khách hàng và của zombies vẫn có thể xảy ra như thường. Đành chịu khó tiếp điện thoại từ Trung tâm dịch vụ khách hàng, để gỡ IP đó khỏi danh sách, hoặc cập nhật vào whitelist. Đơn giản phải ko :)? ]]>
/hvaonline/posts/list/32553.html#200750 /hvaonline/posts/list/32553.html#200750 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Đành chịu khó tiếp điện thoại từ Trung tâm dịch vụ khách hàng, để gỡ IP đó khỏi danh sách, hoặc cập nhật vào whitelist. Đơn giản phải ko?   Cái này đáng giá đây :D. Giải pháp cookie bên trên chỉ là 1 suy nghĩ làm sao cố gắng "phân loại" được các request gọi đến. Gán cho nó 1 cái gì đó có đặc tính. Dĩ nhiên là không có giải pháp nào toàn diện cả, và phải cải tiến hoặc suy nghĩ giải pháp mới.]]> /hvaonline/posts/list/32553.html#200751 /hvaonline/posts/list/32553.html#200751 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

LeVuHoang wrote:
zoombie request thì thường sẽ khác với customer request, mình sẽ dựa vào đó để chặn trên application.  
Trên thực tế thì trong cuộc DoS vừa qua của mrro và x-flash của conmale, thì đều có signature khác với customer request. Giờ đặt trong trường hợp là ứng dụng gởi request hợp lệ (có thể đơn giản là dùng IE component, hoặc tạo 1 cái request có header y hệt như IE header) thì tầng application chặn như thế nào? Nếu tinh vi hơn nữa, sau mỗi request tiến hành clear cookie thì sao? Mình đang quan tâm việc chặn ở tầng application và giải pháp trên sẽ hành xử ra sao nếu các cú request nằm trong cùng 1 isp gateway. 
@HoaVeLu: Khi mà zombie nó giống người wá thì làm sao phân biệt được bây giờ? Chắc có nước mỗi request bắt nhập một cái captcha thôi. Dùng thằng recaptcha chẳng hạn, coi như thằng recaptcha nó hứng chưởng cho mình trước vậy :D]]>
/hvaonline/posts/list/32553.html#200760 /hvaonline/posts/list/32553.html#200760 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200763 /hvaonline/posts/list/32553.html#200763 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

LeVuHoang wrote:
Đây cũng là 1 giải pháp, nếu số request của 1 IP vượt quá giới hạn, web server hiển thị captcha cho người dùng nhập vào. Sau khi nhập xong, sẽ được cấp cookie "tao là người", và có cookie đó sẽ không bị hạn chế truy cập nữa. hehe 
Cũng ko được anh giai, cái cookie "tao là người" đó có thể bị tụi zombie xài chung]]>
/hvaonline/posts/list/32553.html#200771 /hvaonline/posts/list/32553.html#200771 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS mrro: Hầy hầy.. mình đâu có ý nói là mrro bịa ra đâu.. Mình có nói là do nói *vắn tắt* hoặc là *ví dụ* (có thể dựa trên thực tế) để trình bày cách giải quyết của mrro mà. Vì mình thấy thế nên các con số nó mới "tròn trịa" như thế, tất nhiên con số ở đây mà để chính xác là mười vạn tám ngàn chín trăm năm mươi mốt IP thì cũng chẳng để làm gì. Mà kể cả *bịa* ra như vậy trong tình huống như thế này cũng đâu có vấn đề gì đâu. Sorry là trong topic thảo luận mình có chút không nghiêm túc, nhưng ý mình là: - Từ *đầu vào* là 10.000 IP DDoS, (sau một loạt biện pháp nghiệp vụ), đùng một cái đưa ra ngay chính sách và chạy script để lấy những IP có tần suất là 100 request/s (con số thực sự rất lớn - IMHO - ngay cả trong tâm bão). Nên mình nghĩ là trong quá trình này phải có một loạt các động tác thì mới đạt được kết quả như ý, và con số 100 req/s sẽ phải thay đổi liên tục và liên tục được làm mịn thì mức độ hiệu quả mới thật sự cao. - Như trên mình đã nói, nếu chỉ giải quyết như vậy thì mình nghĩ biểu đồ nó sẽ tương tự như thế này, vì việc làm của mình là offline chứ không phải online và tần suất chạy cronjob (như mrro nói) cũng không dày.
[i]Note: 1. Mình xin nhấn mạnh lại là mình không có suy nghĩ hay có ý nói là con số hay các thông tin mrro cung cấp là bịa đặt này kia. 2. Tất cả những điều mình nói ở trên dựa theo suy nghĩ của riêng mình với các con số và giả định mình đang ở trong tình huống đấy. 3. (Sẽ điền vào đây khi nhớ ra :D) ]]>
/hvaonline/posts/list/32553.html#200772 /hvaonline/posts/list/32553.html#200772 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200778 /hvaonline/posts/list/32553.html#200778 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200783 /hvaonline/posts/list/32553.html#200783 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

Abe wrote:
- Từ *đầu vào* là 10.000 IP DDoS, (sau một loạt biện pháp nghiệp vụ), đùng một cái đưa ra ngay chính sách và chạy script để lấy những IP có tần suất là 100 request/s (con số thực sự rất lớn - IMHO - ngay cả trong tâm bão). Nên mình nghĩ là trong quá trình này phải có một loạt các động tác thì mới đạt được kết quả như ý, và con số 100 req/s sẽ phải thay đổi liên tục và liên tục được làm mịn thì mức độ hiệu quả mới thật sự cao. - Như trên mình đã nói, nếu chỉ giải quyết như vậy thì mình nghĩ biểu đồ nó sẽ tương tự như thế này, vì việc làm của mình là offline chứ không phải online và tần suất chạy cronjob (như mrro nói) cũng không dày.
 
Abe đọc chưa kỹ bài đầu tiên của mrro rồi. Trích 1 đoạn:
Về mặt kỹ thuật, chúng tôi đã cài đặt sẵn các biện pháp kiểm soát tự động trên hệ thống giám sát an ninh mạng, nên các chuyên gia của tôi chỉ phải theo dõi vụ tấn công xem có diễn tiến gì bất thường hay không mà không phải thực hiện thêm bất kỳ thao tác nào. ... 
Cái hình đó cũng ... đúng, nhưng chỉ khi mình phải phân tích bằng tay, rồi cập nhật danh sách blocked ip dần dần. Nhưng đúng ra cũng không được 'nhọn nhọn' ;-) kiểu đang tăng lập tức giảm đi 1 chút, mà phải là lên cao và giữ nguyên độ cao, cho đến khi các chuyên gia cập nhật danh sách blocked ip lần đầu thì bắt đầu giảm :D. ]]>
/hvaonline/posts/list/32553.html#200789 /hvaonline/posts/list/32553.html#200789 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

LeVuHoang wrote:
@myquartz: Điều này là yếu điểm của real time response, tương tự như sử dụng mod_security hay snort để phân tích payload của request. Càng giới hạn offset của việc tìm kiếm sẽ giảm tải cho hệ thống. 1 cách khác có thể thay thế cho cookie là random url. Khi người dùng xác thực thành công, có thể được cấp cho value kiểu: /index.php?auth=123ab456 Đây cũng có thể nói là 1 kiểu cấp session. Bạn login rồi thì đi tiếp, chưa được cấp session thì dừng lại nhập captcha. Cũng nên nhớ rằng, chỉ khi IP nào có request đột biến mới xuất hiện bản thông báo trên. 1 giải pháp khác nữa, là sử dụng .htaccess kết hợp với offline log analyzer của mrro, nếu IP đó vượt quá limit request, script sẽ tự động update IP trên vào .htaccess, yêu cầu nhập 1 user/pass định sẵn để tiếp tục. Trở lại giải pháp của mrro là chặn ở tầng IP, trong kí sự của conmale thì luôn cật lực phản đối việc chặn như thế. Vậy giải pháp của mrro ngoài việc khách hàng gọi điện unblock IP thì có giải pháp nào khác để dung hoà cả 2? Ngoài ra, ai có giải pháp hay hơn thì cứ trình bày cho mọi người cùng tìm hiểu. 
Tải của mod_security hay snort, nó chỉ xảy ra khi chưa có action chặn. Nếu chặn ở tầng network (ở cửa vào hoặc 1 chỗ nào đó phù hợp) thì 2 cái này hoàn toàn giải phóng khỏi việc kiểm tra các request từ nguồn IP biết chắc chắn rằng không hợp lệ. Vì ko có kết nối nào được mở cả, không có dữ liệu nào khác ngoài gói syn đến FW. Còn ở lớp ứng dụng, thì kết nối bất hợp lệ vẫn được tạo ra, request tấn công vẫn được gửi đến, và phải check luôn luôn các dữ liệu đó trước khi chuyển cho web app xử lý => tăng tải cho hệ thống kiểm soát đó.]]>
/hvaonline/posts/list/32553.html#200795 /hvaonline/posts/list/32553.html#200795 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Nếu chặn ở tầng network (ở cửa vào hoặc 1 chỗ nào đó phù hợp) thì 2 cái này hoàn toàn giải phóng khỏi việc kiểm tra các request từ nguồn IP biết chắc chắn rằng không hợp lệ. Vì ko có kết nối nào được mở cả, không có dữ liệu nào khác ngoài gói syn đến FW.   Vì thế phải kết hợp chặn ở nhiều tầng. Trong loạt bài "Ký sự các vụ DDoS vào HVAOnline", ngoại trừ việc cản ở iptables, còn bao gồm cả sử dụng mod_security và snort để phân tích payload và chặn gói tin.
Còn ở lớp ứng dụng, thì kết nối bất hợp lệ vẫn được tạo ra, request tấn công vẫn được gửi đến, và phải check luôn luôn các dữ liệu đó trước khi chuyển cho web app xử lý => tăng tải cho hệ thống kiểm soát đó.  
mod_security kiểm tra url (có session) xong mới chuyển qua php, database... nhằm giảm thiểu số lượng connection. Thiết nghĩ bạn myquartz không nên quá cứng nhắc như vậy vì filter ở network layer không phải là phương thuốc thần kỳ để có thể chặn đứng mọi cuộc tấn công. Trong loạt kí sự của bác conmale, mặc dù đã có filter ở tầng network, nhưng vì gói tin quá "hoàn hảo" nên bắt buộc phải dùng thêm snort/mod_security. Bạn thử nghĩ nếu không để mod_security xử lý url trước khi đưa xuống php --> database thì liệu apache/mod_security chết trước hay database chết trước. Trở lại với đề nghị của tui, log từ web server sẽ được đổ về log central, từ đó sẽ có 1 script phân tích, đẩy ngược IP lại vào .htaccess của web server và bắt người dùng nhập info hoặc captcha thay vì block IP.]]>
/hvaonline/posts/list/32553.html#200799 /hvaonline/posts/list/32553.html#200799 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

LeVuHoang wrote:
@gamma: Dãy cookie "tao là người" có thể là 1 dãy random nhưng ở 1 số vị trí là cố định. Ví dụ: 123ab456 789ab012 Nếu attacker tinh ý thì vẫn có thể đoán được tuy nhiên cũng giảm thiểu được tình trạng hiện tại? @myquartz: Điều này là yếu điểm của real time response, tương tự như sử dụng mod_security hay snort để phân tích payload của request. Càng giới hạn offset của việc tìm kiếm sẽ giảm tải cho hệ thống. 1 cách khác có thể thay thế cho cookie là random url. Khi người dùng xác thực thành công, có thể được cấp cho value kiểu: /index.php?auth=123ab456 Đây cũng có thể nói là 1 kiểu cấp session. Bạn login rồi thì đi tiếp, chưa được cấp session thì dừng lại nhập captcha. Cũng nên nhớ rằng, chỉ khi IP nào có request đột biến mới xuất hiện bản thông báo trên.  
Cái random cookie hay random url hay token đại loại gì đó đâu có giả quyết đc vấn đề đâu anh Hoàng, tại vì mấy cái này tụi Zombie nó share cho nhau được hết. Trong trường hợp bắt dùng captcha mới cấp session thì cũng ko giải quyết đc vấn đề, lúc này tụi Zombie sẽ nhận lệnh từ mater (thực ra lúc này là nó nhận cái cookie/ session ) hay randome token gì đó do thằng "master" (là người thật và nó submit captcha lấy session/ cookie hợp lệ )rồi cung cấp cho cả đám Zombie.]]>
/hvaonline/posts/list/32553.html#200809 /hvaonline/posts/list/32553.html#200809 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS @Abe: con số 100 req/s là nhầm lẫn, 200 req/phút thì chính xác hơn. Còn con số 10.000 IP thì nói cho nó chẵn lại, chênh lệch trên hay dưới nó không bao nhiêu cả. Lưu ý cách làm là lấy ra từ NSM những IP gửi lớn hơn 200 req/phút, và chặn chúng nó lại trên firewall. Do đó chọn cái con số này cũng phải tính toán, chọn như 100 req/s thì sẽ không bắt được anh zombie nào, còn chọn thấp quá thì sẽ có nhiều khách hàng chết oan. Việc này tính toán này thường là *trial-and-error*, chọn đại một con số nào đó, rồi thử xem có phù hợp hay không. Có thể danh sách IP gửi hơn 200 req/phút sẽ ít hơn 10.000 IP kia nhiều, nhưng: 1) khi đã chặn được nhóm đứng đầu, thì nhóm còn lại thường sẽ là không đáng kể (nếu vẫn còn nhiều thì mình hạ cái tiêu chuẩn xuống: 100 req/phút chẳng hạn); 2) dẫu số lượng IP có tăng lên nhiều đi chăng nữa, nếu firewall hỗ trợ tốt, thì việc chặn 10.000 cùng lúc cũng không có vấn đề gì về mặt thiết kế của giải pháp này. Về hình ảnh thì trong cái slide 4, hình bên dưới thể hiện rõ nhất sự hiệu quả của giải pháp này:
Như anh lQ có nói ở trên, làm tốt như thế là do có chuẩn bị trước. Chứ nếu không có chuẩn bị trước thì sẽ rất lúng túng trong việc triển khai các phương án phòng thủ. @LeVuHoang: hi hi hi cái ý khách hàng gọi điện kêu unblock là anh lQ nói đùa thôi, chứ trong thực tế triển khai của mình, không có trường hợp đó xảy ra. mình thà bị tấn công chứ không thể chặn nhầm khách hàng được. nói cách khác, mình chỉ tập trung chặn cái nào mà mình chắc chắn hoặc rất ít có khả năng tạo ra false positive.. nói chặn là mình chặn hoàn toàn theo kiểu black-list, chứ không sử dụng captcha hay cookie gì hết. còn những trường hợp rủi ro tạo ra false positive cao hơn, mình sẽ không chặn. điều quan trọng ở đây là làm sao phân biệt được? thế mới cần con người ;-). chỗ này thì cho phép mình không chia sẻ, không phải vì là bí mật, mà mình không muốn những kẻ đang oánh mình có thêm thông tin. mình sẽ nói chuyện riêng với bạn nào thắc mắc. trở ngại còn lại duy nhất ở đây như đã bàn ở trên là nếu có rất nhiều zombie request (y hệt như customer request), cỡ như 1000 req/s đi đến hệ thống chỉ từ một IP duy nhất (do ISP họ triển khai proxy), thì làm sao để ngăn chặn? quan sát Google thì thấy họ có sử dụng giải pháp captcha. nghĩa là nếu họ phát hiện có quá nhiều request đi đến từ một IP nào đó, thì các request mới sẽ bị dừng lại, và yêu cầu nhập vào một captcha. chi tiết cách làm thì mình chưa rõ, nhưng mình nghĩ cái này cũng là một hướng thú vị. nhưng bản thân mình thì mình không thích tạo thêm khó khăn cho khách hàng. mình rất ghét cái vụ kiểm tra captcha của Google. ngay từ đầu mình đã nói, nếu mà có vài IP thì mình sẵn sàng cho chúng nó đi vào mà không cản trở gì cả. nên đối với trường hợp này, mình thấy có nhiều cách: * một con bot thường chỉ gửi một request cố định, chứ nó vẫn chưa đủ thông minh để giả lập quá trình browse web site của một con người. do đó mình sẽ cài đặt các cache header, để cache lại cái response trên phía proxy của ISP, làm giảm công việc xử lý của hệ thống bên mình. * làm peering với các ISP. mình không rõ là lúc này request đi ra ISP sẽ route trực tiếp qua mình, hay vẫn phải đi qua proxy của họ, nhưng mà trên hệ thống của một khách hàng của mình có làm peering với các ISP thì thấy rất ít xuất hiện các IP proxy của ISP, mặc dù có nhiều IP đến từ ISP đó là một phần của botnet tấn công. * các proxy đa số đều có đính kèm header cho thấy request này là của IP thật sự nào. một hệ thống NSM tốt sẽ giúp chúng ta query được phần header đó để tìm ra các IP thật sự đang gửi request, chứ không phải là IP proxy. mình cũng muốn nhấn mạnh là bàn những cái này rất là...lý thuyết, chủ yếu là để dự phòng mà thôi. chứ thật tế các zombie request thường rất khác customer request. cái này là điểm mà mình cần phải lưu ý khi mà nói về việc chống DDoS. do đó mình nghĩ, một khi đã phát hiện ra sự khác nhau rồi, mình sẽ dùng application proxy vừa chặn, vừa *điểm danh* chúng nó. sau đó thì thằng nào bị điểm danh sẽ bị đưa vào black list, chú ý là mình vẫn giữ nguyên tắc không chặn bừa, chỉ chặn những thằng nào chắc chắn, như đã nói ở trên. -m]]>
/hvaonline/posts/list/32553.html#200810 /hvaonline/posts/list/32553.html#200810 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS @Abe: con số 100 req/s là nhầm lẫn, 200 req/phút thì chính xác hơn. Còn con số 10.000 IP thì nói cho nó chẵn lại, chênh lệch trên hay dưới nó không bao nhiêu cả. Lưu ý cách làm là lấy ra từ NSM những IP gửi lớn hơn 200 req/phút, và chặn chúng nó lại trên firewall. Do đó chọn cái con số này cũng phải tính toán, chọn như 100 req/s thì sẽ không bắt được anh zombie nào, còn chọn thấp quá thì sẽ có nhiều khách hàng chết oan. Việc này tính toán này thường là *trial-and-error*, chọn đại một con số nào đó, rồi thử xem có phù hợp hay không.   Phần màu đỏ khiến em hơi thắc mắc, nếu 200reqs/s là con số chính xác, thì con số 100reqs/s là một sai số (dù lớn) nhưng cũng nằm trong mức độ tóm được và có thể tóm nhầm, sao lại không tóm được anh zombie nào ? Dù chưa từng đảm trách một hệ thống cỡ bự nào, nhưng đã có lần làm việc với một website chịu tần cống từ khá nhiều IP, mặc dù hệ thống servers chịu tải cho website này là khá lớn và rất chuyên nghiệp nhưng vẫn rụng như thường :^) . Cách mà em áp dụng lúc đó (nhất thời) : Tính toán số request mà customer thật sự cần thiết tạo ra trong thời gian nhất định, sau đó đặt rule loại trừ. Trong một khoản thời gian đó, một IP request quá con số cho phép, DROP. Nếu IP này tiếp tục thực hiện những request vi phạm rule này trong n lần, dựa theo log, BLOCK. Sau một khoản thời gian nào đó thì UNBLOCK nó. Thật chất thì cách đó hoàn toàn là nhất thời và không lâu dài, vì dù cho tính toán đến đâu thì vẫn BLOCK nhầm số lượng khách hàng nào đó. Cách nữa là cho qua tất, cách này thì anh conmale đã có nhắc đến trong kí sự DDOS, bằng cách sử dụng Discard service. Còn nguyên tắc không chặn bừa mà chặn chắc chắn như mrro thì em chưa có điều kiện, cũng như khả năng để làm. Thật chất là vẫn chưa hình dung được hệ thống "máy học" NSM này hoạt động thế nào mà chặt chẽ như thế. ]]> /hvaonline/posts/list/32553.html#200828 /hvaonline/posts/list/32553.html#200828 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200834 /hvaonline/posts/list/32553.html#200834 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200835 /hvaonline/posts/list/32553.html#200835 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200836 /hvaonline/posts/list/32553.html#200836 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200841 /hvaonline/posts/list/32553.html#200841 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#200845 /hvaonline/posts/list/32553.html#200845 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS mrro thực ra cũng khá là "intuitive". Experiments trong các research về DDoS thì cũng sử dụng mô hình này thôi, ví dụ bừa như http://www.cs.columbia.edu/~smb/papers/pushback-impl.pdf hay http://www.itsec.gov.cn/docs/20090507162132811217.pdf Sự khác nhau duy nhất là mrro sử dụng "người học", còn họ thì dùng "máy học". :P ]]> /hvaonline/posts/list/32553.html#200848 /hvaonline/posts/list/32553.html#200848 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Sự khác nhau duy nhất là mrro sử dụng "người học", còn họ thì dùng "máy học".   Cũng "máy học" mà StarGhost, nhưng ở mức độ simple chứ chưa có heuristic. @gamma, mrro: vụ captcha là 1 ví dụ, thay vì đưa ngược IP lại vào iptables để chặn, script tiến hành đưa danh sách IP đó vào .htaccess để hiển thị bảng thông báo yêu cầu nhập user/pass định sẵn thì như thế nào?
Một khi đã chặn thì chắc chắn nó phải là zombie. Chỉ trừ trường hợp nhiều khách hàng sử dụng chung một IP, thì như đã nói ở trên, mình sẽ chặn zombie bằng các cách khác, chứ không chặn ở tầng network nữa.  
Nếu mỗi khách hàng 1 IP thì mọi chuyện đơn giản hơn, nên mình đang quan tâm và suy nghĩ về vấn đề chặn ở tầng "khác network" :D]]>
/hvaonline/posts/list/32553.html#200870 /hvaonline/posts/list/32553.html#200870 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS conmale cũng có đề cập đến trong loạt bài ký sự. hồi trước nhớ có lần anh prof trình bày về PacketScore, là một hướng nghiên cứu, theo anh prof, nhiều hứa hẹn trong lĩnh vực chống DDoS. Cơ bản thì PacketScore khá giống các hình thức chống spam theo mô hình Bayesian, khi mà mỗi packet đi vào, PacketScore sẽ tính toán xác suất xem packet đó có phải là một phần của đợt tấn công hay không, và nếu xác suất đó cao hơn một cái dynamic threshold (phụ thuộc vào độ tải của hệ thống ở thời điểm đó) thì packet sẽ bị drop. mình thấy cái khác biệt của mình là mỗi khi có packet đi vào, mình không cố gắng phân loại chúng ngay, mà cứ để yên đó, rồi sẽ phân tích và phân loại tất cả một lượt sau mỗi khoảng thời gian nhất định. cách thức phân tích và phân loại có thể sẽ giống nhau, nhưng mình sẽ có lợi thế về thời gian, khả năng tính toán mạnh và khả năng can thiệp của con người do quá trình phân tích này không nằm trong quá trình xử lý packet của toàn hệ thống. điểm yếu của cách làm này, như mình đã có nói, là nó chỉ giải quyết được một số loại tấn công DDoS mà thôi. nó có thể sẽ không có tác dụng với các loại tấn công mà source IP bị giả mạo như TCP SYN flood hay là UDP flood. lý do đơn giản vì, khác với PacketScore hay các scheme tương tự, mình không drop packet theo thời gian thực, mà chỉ phân tích rồi lấy ra danh sách IP nghi ngờ, và block chúng nó lại. @LeVuHoang: lo ngại của Hoàng là có thể hiểu được, nhưng mà thực tế thì số lượng connection như Hoàng mô tả không quá nhiều để mình phải bận tâm. --- đọc loạt bài của anh conmale, rồi kinh nghiệm của mình cho thấy là khó có một silver bullet trong việc chống DDoS. nên việc kết hợp nhiều công cụ và giải pháp khác nhau là gần như bắt buộc. dẫu vậy, trong phạm vi topic này, mình chỉ muốn bàn về việc chống các dạng DDoS mà ở đó zombie không giả mạo source IP. -m]]> /hvaonline/posts/list/32553.html#200887 /hvaonline/posts/list/32553.html#200887 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

mrro wrote:
Tuy nhiên có hai vấn đề: các máy chủ Windows mặc định không hỗ trợ syslog; và một số ứng dụng do chúng tôi tự phát triển hay mua ngoài cũng không hỗ trợ syslog. Đối với vấn đề thứ nhất, chúng tôi cài đặt thêm một phần mềm cho các máy chủ Windows, để đẩy các sự trên trên đó về hệ thống log của chúng tôi. Đối với vấn đề thứ hai, việc đầu tiên chúng tôi làm là xây dựng một quy định về log của các ứng dụng. Trong quy định này chúng tôi yêu cầu tất cả các ứng dụng muốn được cấp quyền chạy trên hệ thống của chúng tôi thì phải thỏa mãn các tiêu chí về log các sự kiện. Chúng tôi cũng hướng dẫn và cung cấp thư viện phần mềm mẫu để các lập trình viên có thể tích hợp vào phần mềm có sẵn của họ. Syslog-ng là một phần mềm mã nguồn mở tuyệt vời. Nó hoạt động cực kỳ ổn định, bền vững. Trong suốt hơn 3 năm triển khai hệ thống này, chúng tôi chưa bao giờ gặp sự cố ở phần mềm này. Nhưng syslog-ng cũng chỉ làm tốt nhiệm vụ thu thập dữ liệu, làm sao phân tích dữ liệu đó? Trên thị trường lúc bấy giờ có khá nhiều công cụ giúp giải quyết vấn đề này. Chúng tôi lần lượt thử nghiệm các công cụ này, và rồi chúng tôi phát hiện ra Splunk. Chúng tôi hay gọi phần mềm này là “Splunk toàn năng”. Một công cụ phân tích dữ liệu trên cả tuyệt vời!  
Có ai hiểu anh mrro muốn nói tới ứng dụng nào và cách giải quyết ra sao thì chỉ giúp em với ạ .]]>
/hvaonline/posts/list/32553.html#210227 /hvaonline/posts/list/32553.html#210227 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

mrro wrote:
chỉ cần làm sao trả lời được câu hỏi "ai đang gửi > 200 req/phút trong 15 phút vừa rồi?" một cách nhanh chóng thì coi như đã thành công một nửa rồi.  
Giả sử log của Apache thế này: 127.0.0.1 - anonymous [25/Nov/2010:21:58:36 +0700] "GET / HTTP/1.0" 200 11 "-" "check_http/v1.4.15 (nagios-plugins 1.4.15)" Có bạn nào hứng thú giải quyết câu hỏi trên bằng shell script không nhỉ?]]>
/hvaonline/posts/list/32553.html#225484 /hvaonline/posts/list/32553.html#225484 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:

mrro wrote:
chỉ cần làm sao trả lời được câu hỏi "ai đang gửi > 200 req/phút trong 15 phút vừa rồi?" một cách nhanh chóng thì coi như đã thành công một nửa rồi.  
Giả sử log của Apache thế này: 127.0.0.1 - anonymous [25/Nov/2010:21:58:36 +0700] "GET / HTTP/1.0" 200 11 "-" "check_http/v1.4.15 (nagios-plugins 1.4.15)" Có bạn nào hứng thú giải quyết câu hỏi trên bằng shell script không nhỉ? 
hà hà một câu đố rất thú vị B-) thiết nghĩ rất có ích giúp anh em dễ phân tích và chọn ra thằng đáng bị "trảm" Câu đố này có 2 hướng giải :D tớ đưa ra hướng giải đơn giản nhất ( cần con người nhất thay vì tự động ) Code:
wc path/to/access.log | awk '{print $1}'
output có thể là Code:
18681    ( đây là số dòng trong access.log tương ứng với số request apache đã nhận từ lúc cài đặt tới nay )
sau "một phút" chạy lại lệnh trên Code:
19681    ( đây là số dòng trong access.log sau 1 phút )
trừ 2 thằng ta có được số request nhận được trong 1 phút vừa qua Code:
19681 - 18681 = 1000       ( ví dụ thôi nhá  :-)  )
chạy lệnh sau
tail 'path/to/access.log' -n 1000 | awk '{print $1}' | sort | uniq -c | sort -n | tail -n 1 
lệnh tail sẽ lấy từ access.log 1000 dòng "cuối cùng trong file" (là con số ta trừ ở trên ) , truyền qua cho awk để chỉ lọc ra phần IP trong cái đống đó, gom chúng lại bằng lệnh short rồi uniq -c sẽ đếm số lần xuất hiện của từng IP ( các dòng giống nhau sẽ cộng lại ) , chuyền qua cho sort -n để sắp từ nhỏ đến lớn ( lớn nhất cuối cùng ) và sau cùng là tail -n 1 là sẽ lấy 01 dòng cuối trong cái sort -n ở trên ( tức là cái IP truy cập nhiều nhất trong 1 phút qua ) output: Code:
268 67.195.113.243
268 là số lần request chạm server được ghi nhận trong access.log , đằng sau là cái IP gửi request :D xNohat ]]>
/hvaonline/posts/list/32553.html#225577 /hvaonline/posts/list/32553.html#225577 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#225584 /hvaonline/posts/list/32553.html#225584 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS Lãnh đạo doanh nghiệp thấy các các doanh nghiệp khác triển khai ISO 27001 nên họ cũng muốn doanh nghiệp của họ phải đạt được chuẩn này. Tôi không nói rằng tường lửa, thiết bị phát hiện xâm nhập hay đạt được các chuẩn như ISO 27001 và ITIL là không có tác dụng, nhưng câu hỏi chúng ta cần phải tự hỏi là: tại sao sau khi triển khai quá trời thứ đắt tiền và tốn thời gian như thế, chúng ta vẫn bị xâm nhập, chúng ta vẫn bị tấn công? Liệu ISO 27001 hay tường lửa có giúp bạn khắc phục được một vụ tấn công từ chối dịch vụ trong vòng 20'? Rồi khi đã bị xâm nhập, có thiết bị đắt tiền hay tiêu chuẩn nào giúp quý vị biết được hệ thống của quý vị bị xâm nhập khi nào, tại sao và như thế nào hay không?   Về bản chất việc xây dựng 27K hay ITIL đều nhằm mục đích collect data của một hệ thống, tuy nhiên việc xử lý cái gói data đó có thực sự được thực hiện hay không là một chuyện khác. Nếu việc xử lý các raw data đó được thực hiện triệt để thì việc phòng chống DDoS là hoàn toàn kiểm soát được. Mà phần này thì phụ thuộc vào nhận thức của lãnh đạo. Khi anh set up cái hệ thống giám sát thì chính là xây dựng một cái control trong 27K và không đơn giản mà PCI DSS nó tách hẳn ra làm hai phần chính là Assessor và Scanning Vendor. Quan điểm cá nhân em là anh chỉ mới tập trung vào khía cạnh của Scanning Vendor. ]]> /hvaonline/posts/list/32553.html#225598 /hvaonline/posts/list/32553.html#225598 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:
Cơ bản là thế. Anh có thể thay `sort -n | tail -n 1` bằng `sort -rn`. Mà cũng chỉ cần tail -1, tail -1000 thôi, không cần -n. Anh có cách nào lấy luôn từ thời điểm hiện tại quay về 1 phút trước (thay vì 1 phút sau chạy lại để trừ đi số dòng) không? Tiếp theo là dùng một dòng lệnh mà ra được kết quả trên thì tốt. 
à há thanks em mấy chỗ bổ sung nhiều lắm :D Cách giải quyết thì đã có rốt ráo rồi nhưng phải để các anh em khác cùng tham gia nữa cho xôm xụ chứ :D câu đố của em là câu đố rất hay mà :D]]>
/hvaonline/posts/list/32553.html#225615 /hvaonline/posts/list/32553.html#225615 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:
Cơ bản là thế. Anh có thể thay `sort -n | tail -n 1` bằng `sort -rn`. Mà cũng chỉ cần tail -1, tail -1000 thôi, không cần -n. Anh có cách nào lấy luôn từ thời điểm hiện tại quay về 1 phút trước (thay vì 1 phút sau chạy lại để trừ đi số dòng) không? Tiếp theo là dùng một dòng lệnh mà ra được kết quả trên thì tốt. 
Mình có 1 lệnh mà hơi dài :P pre_min=`date -d '1 minutes ago' +%d/%b/%Y:%H:%M`; grep -n -m 1 $pre_min /usr/local/apache2/logs/access_log | cut -d":" -f1 | xargs -iline_num tail -n +line_num /usr/local/apache2/logs/access_log | awk '{print $1}' | uniq -c | sort -nr Lệnh này làm việc như sau: - Đầu tiên sẽ gán giá trị thời gian 1 phút trước với định dạng thời gian giống như trong access_log vào biến pre_min. - Sau đó tìm trong access_log dòng đầu tiên match với thời gian trên và xuất ra thứ tự của dòng đó trong access_log. - Kế tiếp sẽ liệt kê tất cả các dòng trong access_log kể từ dòng đã được tìm ra ở bước trên. - Phần còn lại chỉ là đếm và sort. Mọi người thấy sao? :| ]]>
/hvaonline/posts/list/32553.html#225790 /hvaonline/posts/list/32553.html#225790 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS xargs -iline_num tail -n +line_num cho mọi người rõ hơn nhé.]]> /hvaonline/posts/list/32553.html#225796 /hvaonline/posts/list/32553.html#225796 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:
Mình có vài ý kiến: - Bạn bỏ %S trong lệnh date đi là có ý đồ, tuy nhiên xét ở mức nào đó thì chưa chính xác lắm nhỉ. Có lẽ tại thời điểm chạy lệnh, ta nên lấy mốc thời gian là dòng cuối cùng của access_log. - Bạn giải thích thêm về xargs -iline_num tail -n +line_num cho mọi người rõ hơn nhé. 
Hi quanta, - Chính xác như bạn thấy, mình bỏ %S đi là có ý đồ :D, mình chỉ cần match tới phút chứ không cần tới giây - Câu lệnh trên mình nghĩ là chính xác cho trường hợp "Liệt kê từ access_log tần suất xuất hiện của 1 IP trong khoảng thời gian từ 1 phút trước cho đến thời điểm thực thi câu lệnh". - xargs -iline_num tail -n +line_num có thể hiểu thế này: Tham số của câu lệnh "tail -n +line_num" nếu match với khai báo sau option -i (hoặc -I) của xargs sẽ được thay thế bằng output của câu lệnh trước đó (input của lệnh xargs). Nó gần giống việc gán giá trị vào biến. - Lệnh trên có thể được thay thế bằng xargs -I line_num tail -n +line_num ]]>
/hvaonline/posts/list/32553.html#225804 /hvaonline/posts/list/32553.html#225804 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

1mp0ss1bl3 wrote:
Hi quanta, - Chính xác như bạn thấy, mình bỏ %S đi là có ý đồ :D, mình chỉ cần match tới phút chứ không cần tới giây - Câu lệnh trên mình nghĩ là chính xác cho trường hợp "Liệt kê từ access_log tần suất xuất hiện của 1 IP trong khoảng thời gian từ 1 phút trước cho đến thời điểm thực thi câu lệnh".  
Sẽ xảy ra trường hợp bây giờ là 12:57:59 và bạn lấy log từ 12:56:03. Chia sẻ cùng mọi người cách của mình: last_time=`tail -1 access_log | awk '{ print substr($4, 2, length($4)-1) }'`; standard_last_time=`echo $last_time | sed 's/\//-/g' | awk -F":" '{ print $1" "$2":"$3":"$4 }'`; pre_min=`date -d "$standard_last_time 1 minutes ago" +%d/%b/%Y:%k:%M:%S`; awk '$4 <= to && $4 >= from { print $1 }' from="[$pre_min" to="[$last_time" access_log | sort | uniq -c | sort -rn | awk '$1 >=200 { print $0 }' ]]>
/hvaonline/posts/list/32553.html#225810 /hvaonline/posts/list/32553.html#225810 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS pre_min=`date -d '1 minutes ago' +%d/%b/%Y:%H:%M`; grep -n -m 1 $pre_min access_log | cut -d":" -f1 | xargs -iline_num tail -n +line_num access_log | awk ' $4 <= to && $4 >= from { print $1 }' from="[$pre_min:00" to="[$pre_min:59" | sort | uniq -c | sort -rn Lệnh này sẽ liệt kê số lần xuất hiện của 1 IP trong access_log chính xác trong khoảng thời gian 1 phút trước. Có thể linh hoạt thêm 1 chút nếu khai báo thêm 1 biến cur_min. Ví dụ lệnh sau sẽ liệt kê số lấn xuất hiện của 1 IP trong access_log trong 10 phút trước pre_min=`date -d '11 minutes ago' +%d/%b/%Y:%H:%M`; cur_min=`date -d '1 minutes ago' +%d/%b/%Y:%H:%M`; grep -n -m 1 $pre_min access_log | cut -d":" -f1 | xargs -iline_num tail -n +line_num access_log | awk ' $4 <= to && $4 >= from { print $1 }' from="[$pre_min:00" to="[$cur_min:59" | sort | uniq -c | sort -nr quanta thấy sao? PS: Cá nhân mình cảm thấy cách này nhanh hơn cách quanta 1 chút ]]> /hvaonline/posts/list/32553.html#225819 /hvaonline/posts/list/32553.html#225819 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#225897 /hvaonline/posts/list/32553.html#225897 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

mrro wrote:
he he he hay ;-). anyway, mình phải hỏi là, nó có đủ nhanh khi lượng dữ liệu lớn lên, chẳng hạn như vài chục hay vài trăm G? -m 
Hi mrro, Nếu lệnh này grep -n -m 1 $pre_min access_log đủ nhanh (cái này chưa có điều kiện test :P) thì toàn bộ câu lệnh sẽ vẫn nhanh cho dù log file rất lớn. Vì sau câu lệnh trên mình chỉ tail 1 phần của log file. Thân]]>
/hvaonline/posts/list/32553.html#225902 /hvaonline/posts/list/32553.html#225902 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS đủ nhanh hay không? mình nhấn mạnh đủ nhanh vì có thể grep chậm hơn các giải pháp khác (như splunk hay lucene-solr), nhưng vẫn đáp ứng được yêu cầu. sở dĩ splunk hay lucene-solr nhanh là vì chúng nó đã index dữ liệu trước rồi. hiểu nôm na là chúng nó đã chuẩn bị dữ liệu cho công việc tìm kiếm, nên khi bắt đầu tìm thì sẽ nhanh hơn. còn grep thì vẫn để dữ liệu dạng thô, do đó thời gian tìm kiếm sẽ lâu hơn. đương nhiên nhanh hơn hay chậm hơn bao nhiêu thì phải kiểm thử mới biết. -m]]> /hvaonline/posts/list/32553.html#225906 /hvaonline/posts/list/32553.html#225906 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

mrro wrote:
he he he hay ;-). anyway, mình phải hỏi là, nó có đủ nhanh khi lượng dữ liệu lớn lên, chẳng hạn như vài chục hay vài trăm G? -m 
Rất tiếc, mình không có Splunk ở đây để test, bạn nào có Splunk bên cạnh thì thử rồi cho mọi người biết kết quả được không. Hơn nữa, làm gì mà để log file lớn vậy mrro, không rotate à. Mình cũng chỉ muốn thảo luận thêm về một giải pháp đơn giản, dùng shell script rồi có thể đẩy vào cron job hoặc Nagios thôi. PS: mrro dùng Splunk có bị tình trạng ngốn cpu không?]]>
/hvaonline/posts/list/32553.html#225923 /hvaonline/posts/list/32553.html#225923 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

mrro wrote:
he he he hay ;-). anyway, mình phải hỏi là, nó có đủ nhanh khi lượng dữ liệu lớn lên, chẳng hạn như vài chục hay vài trăm G? -m 
he he câu hỏi của lão mrro làm tớ lóe lên 1 vấn đề :D Nếu tớ chuyển các Log vào trong một hệ quản trị CSDL như MySQL chẳng hạn thì việc index, truy lục ( bằng SQL Query ) sẽ cực nhanh, cực tối ưu và việc maintain cái đống log sao cho tối ưu nhất đã có thằng DBMS nó lo cho :D Search google phát được ku này: http://logtomysql.sourceforge.net/install.html]]>
/hvaonline/posts/list/32553.html#225967 /hvaonline/posts/list/32553.html#225967 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

xnohat wrote:
he he câu hỏi của lão mrro làm tớ lóe lên 1 vấn đề :D Nếu tớ chuyển các Log vào trong một hệ quản trị CSDL như MySQL chẳng hạn thì việc index, truy lục ( bằng SQL Query ) sẽ cực nhanh, cực tối ưu và việc maintain cái đống log sao cho tối ưu nhất đã có thằng DBMS nó lo cho :D Search google phát được ku này: http://logtomysql.sourceforge.net/install.html 
/hvaonline/posts/list/0/14855.html#163334]]>
/hvaonline/posts/list/32553.html#225970 /hvaonline/posts/list/32553.html#225970 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:

xnohat wrote:
he he câu hỏi của lão mrro làm tớ lóe lên 1 vấn đề :D Nếu tớ chuyển các Log vào trong một hệ quản trị CSDL như MySQL chẳng hạn thì việc index, truy lục ( bằng SQL Query ) sẽ cực nhanh, cực tối ưu và việc maintain cái đống log sao cho tối ưu nhất đã có thằng DBMS nó lo cho :D Search google phát được ku này: http://logtomysql.sourceforge.net/install.html 
/hvaonline/posts/list/0/14855.html#163334 
ây da :D 2 năm trước nó đã được thảo luận rồi sao :D Theo ý kiến của tớ ( riêng tớ ) việc 1 log ko có schema , không cấu trúc là vì ta INSERT nó vào DBMS không có cấu trúc, việc chỉnh sửa đôi chút trong source của công cụ ghi log vào DBMS là chuyện dễ dàng ( công cụ opensource ) , mỗi dòng log có cấu trúc riêng của nó, việc phân tách các thành phần thông tin của một dòng log thành các fields rồi INSERT nó vào Database cũng không khó , một khi đã phân tách thành các fields thì tính RELATIONSHIP trong DBMS hoàn toàn có thể xây dựng dựa trên mối quan hệ logic giữa các fields. Ta cũng có thể kết hợp nhiều log của nhiều hệ thống logging khác nhau thông qua các RELATIONSHIP giữa chúng, giúp ta nhanh chóng có cái nhìn toàn cảnh từ một loạt các log khác nhau DBMS được thiết kế tối ưu cho công tác Storing , Indexing , Quering , liệu có thứ hiệu quả hơn một DBMS cho công tác này ? Việc chúng ra thực hiện grep , tail ... ở trên trong DBMS có thể giải quyết trực tiếp trên câu lệnh query thậm chí có thể analyzing dữ liệu on-the-fly của quá trình truy lục - xNohat -]]>
/hvaonline/posts/list/32553.html#225973 /hvaonline/posts/list/32553.html#225973 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#225991 /hvaonline/posts/list/32553.html#225991 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

vikjava wrote:
Hi all ! Cho mình hỏi ngoài splunk hay lucene-solr thì có những sản phẩm nào tương tự ? Bao gồm phần mềm thương mại và cả mã nguồn mở 
http://serverfault.com/questions/62687/alternatives-to-splunk http://stackoverflow.com/questions/183977/what-commercial-and-open-source-competitors-are-there-to-splunk]]>
/hvaonline/posts/list/32553.html#225995 /hvaonline/posts/list/32553.html#225995 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:
Rất tiếc, mình không có Splunk ở đây để test, bạn nào có Splunk bên cạnh thì thử rồi cho mọi người biết kết quả được không. Hơn nữa, làm gì mà để log file lớn vậy mrro, không rotate à. Mình cũng chỉ muốn thảo luận thêm về một giải pháp đơn giản, dùng shell script rồi có thể đẩy vào cron job hoặc Nagios thôi. PS: mrro dùng Splunk có bị tình trạng ngốn cpu không?  
1 --> không phải là log file lớn, mà lượng dữ liệu nhận được trong X phút (ở đây là 15') là lớn. 2 --> cái này thì mình không biết. có lẽ là không. @vikjava: còn khá nhiều, từ khoá nè: arcsight, cloudera flume, apache scribe, elasticsearch. dịch vụ thì có www.loggly.com. dẫu vậy ngoại trừ splunk (và có lẽ là arcsight) ra thì những cái này đều khá rời rạc, muốn ra một sản phẩm hay giải pháp thì cần phải tích hợp. có nhu cầu thiệt sự thì liên hệ, mình có thể tích hợp mấy cái này lại ;-). -m ]]>
/hvaonline/posts/list/32553.html#226000 /hvaonline/posts/list/32553.html#226000 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

mrro wrote:

quanta wrote:
Hơn nữa, làm gì mà để log file lớn vậy mrro, không rotate à.  
không phải là log file lớn, mà lượng dữ liệu nhận được trong X phút (ở đây là 15') là lớn.  
15' mà lên đến mấy chục GB thì mình chưa gặp.]]>
/hvaonline/posts/list/32553.html#226004 /hvaonline/posts/list/32553.html#226004 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

quanta wrote:

mrro wrote:

quanta wrote:
Hơn nữa, làm gì mà để log file lớn vậy mrro, không rotate à.  
không phải là log file lớn, mà lượng dữ liệu nhận được trong X phút (ở đây là 15') là lớn.  
15' mà lên đến mấy chục GB thì mình chưa gặp. 
Có đó em. HVA lúc trước bị DDoS, 15 phút log lên mấy chục Gb, làm hết disk space nên bị khùng luôn :).]]>
/hvaonline/posts/list/32553.html#226013 /hvaonline/posts/list/32553.html#226013 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#226017 /hvaonline/posts/list/32553.html#226017 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

vikjava wrote:
Hi all ! Cho mình hỏi ngoài splunk hay lucene-solr thì có những sản phẩm nào tương tự ? Bao gồm phần mềm thương mại và cả mã nguồn mở 
Anh cũng thử tìm giải pháp mã mở thay thế, ngoài licene-solr mà mrro đề cập thì anh thấy có OSSIM và php-syslog-ng. OSSIM thì anh chưa thử nhưng thấy cũng có người đang dùng. php-syslog-ng thì khá yếu, chỉ để search log mà thôi, ko đủ tính năng để thay thế Splunk. Về các bản thương mai thì anh thấy có ArcSight, LogLogic, RSA enVision, Sawmill... cùng 1 số bản thương mại khác cũng có bản giới hạn miễn phí. Nhưng nếu dữ liệu < 500 MB thì có lẽ dùng Splunk Free Version cho khoẻ. ]]>
/hvaonline/posts/list/32553.html#226046 /hvaonline/posts/list/32553.html#226046 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#234497 /hvaonline/posts/list/32553.html#234497 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#236466 /hvaonline/posts/list/32553.html#236466 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

lQ wrote:

vikjava wrote:
Hi all ! Cho mình hỏi ngoài splunk hay lucene-solr thì có những sản phẩm nào tương tự ? Bao gồm phần mềm thương mại và cả mã nguồn mở 
Anh cũng thử tìm giải pháp mã mở thay thế, ngoài licene-solr mà mrro đề cập thì anh thấy có OSSIM và php-syslog-ng. OSSIM thì anh chưa thử nhưng thấy cũng có người đang dùng. php-syslog-ng thì khá yếu, chỉ để search log mà thôi, ko đủ tính năng để thay thế Splunk. Về các bản thương mai thì anh thấy có ArcSight, LogLogic, RSA enVision, Sawmill... cùng 1 số bản thương mại khác cũng có bản giới hạn miễn phí. Nhưng nếu dữ liệu < 500 MB thì có lẽ dùng Splunk Free Version cho khoẻ.  
Nổi bật trong làng open source thì mình thấy có Octopussy và logstash. Đọc thêm: http://serverfault.com/questions/239401/splunk-is-fantastically-expensive-what-are-the-alternatives http://serverfault.com/questions/62687/alternatives-to-splunk vikjava có thử thì làm bài review cho mọi người biết nhé.]]>
/hvaonline/posts/list/32553.html#239672 /hvaonline/posts/list/32553.html#239672 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#239674 /hvaonline/posts/list/32553.html#239674 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#240533 /hvaonline/posts/list/32553.html#240533 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#241067 /hvaonline/posts/list/32553.html#241067 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#241088 /hvaonline/posts/list/32553.html#241088 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#241161 /hvaonline/posts/list/32553.html#241161 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#241503 /hvaonline/posts/list/32553.html#241503 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#260436 /hvaonline/posts/list/32553.html#260436 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#260463 /hvaonline/posts/list/32553.html#260463 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#270884 /hvaonline/posts/list/32553.html#270884 GMT Giám sát an ninh mạng - Bàn về giải pháp chống DDoS

tuandoi1 wrote:
Em chào cả nhà. Em thì là người không chuyên về quản trị mạng, lại nhất là mấy vụ DDOS này. Nhưng độ này website của nhóm em bị BOTNET đánh. 1 Lần trước đã bị đánh gần 1 tuần. Sau khoảng hơn nửa tháng thì lại bị đánh tiếp. Thực sự là anh em trong nhóm không biết là tại sao bị đánh. Nhóm em có nhờ bên cung cấp dịch vụ máy chủ hỗ trợ. Thì họ bảo là các ip đánh theo kiểu "bắt tay 3 bước" nếu em không nhớ nhầm hay đại khái nó là thế. Vậy có bác nào làm ơn chỉ dùm em cách "đỡ" hoặc tài liệu(tiếng việt) để em nghiên cứu được không ạ. Em học lập trình nên mù về quản trị mạng. Mong các anh chỉ chi tiết 1 chút. Em xin cảm ơn. 
Nếu bạn không có kiến thức gì về mạng thì tốt nhất nên để cho người nào đó có khả năng. Chống đỡ DDOS không phải là việc của những người không nắm rõ hệ thống! Và nên nhớ trong kỹ thuật các thứ step by step không bao giờ áp dụng được vào thực tế! - Ky0 -]]>
/hvaonline/posts/list/32553.html#270888 /hvaonline/posts/list/32553.html#270888 GMT
Giám sát an ninh mạng - Bàn về giải pháp chống DDoS /hvaonline/posts/list/32553.html#277502 /hvaonline/posts/list/32553.html#277502 GMT