Bạn đang trải qua một cuộc tấn công từ chối dịch vụ. Nếu bạn thấy lưu lượng truy cập đến từ nhiều mạng (các IP khác nhau trên các mạng con khác nhau), bạn đã có từ chối dịch vụ phân tán (DDoS); nếu tất cả đến từ cùng một nơi bạn có một DoS cũ đơn giản. Nó có thể hữu ích để kiểm tra, nếu bạn có thể; sử dụng netstat để kiểm tra. Điều này có thể khó thực hiện, mặc dù.
Từ chối dịch vụ thường rơi vào một vài loại: dựa trên lưu lượng truy cập và dựa trên tải. Mục cuối cùng (với dịch vụ sự cố) là DoS dựa trên khai thác và khá khác biệt.
Nếu bạn đang cố gắng xác định loại tấn công nào đang xảy ra, bạn có thể muốn nắm bắt một số lưu lượng truy cập (sử dụng wireshark, tcpdump hoặc libpcap). Bạn nên, nếu có thể, nhưng cũng cần lưu ý rằng bạn có thể sẽ nắm bắt được khá nhiều lưu lượng truy cập.
Như thường lệ, chúng sẽ đến từ các botnet (mạng của các máy chủ bị xâm nhập dưới sự kiểm soát trung tâm của một số kẻ tấn công, mà chúng sẽ đấu thầu). Đây là một cách tốt để kẻ tấn công (rất rẻ) có được băng thông ngược dòng của rất nhiều máy chủ khác nhau trên các mạng khác nhau để tấn công bạn, trong khi che dấu vết của chúng. Các Orbit Ion Cannon Low là một ví dụ của một botnet (mặc dù là tự nguyện thay vì phần mềm độc hại có nguồn gốc từ); Zeus là một điển hình hơn.
Dựa trên giao thông
Nếu bạn đang sử dụng DoS dựa trên lưu lượng truy cập, bạn sẽ thấy rằng có rất nhiều lưu lượng truy cập đến máy chủ của mình đến nỗi kết nối của nó với Internet hoàn toàn bão hòa. Có tỷ lệ mất gói cao khi ping máy chủ của bạn từ nơi khác và (đôi khi tùy thuộc vào phương pháp định tuyến đang sử dụng) đôi khi bạn cũng thấy độ trễ thực sự cao (ping rất cao). Kiểu tấn công này thường là DDoS.
Mặc dù đây là một cuộc tấn công thực sự "ầm ĩ" và rõ ràng điều gì đang xảy ra, nhưng thật khó để quản trị viên máy chủ giảm thiểu (và về cơ bản là không thể cho người dùng lưu trữ chia sẻ để giảm thiểu). Bạn sẽ cần sự giúp đỡ từ ISP của bạn; cho họ biết bạn đang bị DDoS và họ có thể giúp đỡ.
Tuy nhiên, hầu hết các ISP và nhà cung cấp dịch vụ vận chuyển sẽ chủ động nhận ra những gì đang diễn ra và xuất bản tuyến đường lỗ đen cho máy chủ của bạn. Điều này có nghĩa là họ xuất bản một tuyến đến máy chủ của bạn với chi phí càng ít càng tốt, thông qua 0.0.0.0
: họ làm cho lưu lượng truy cập đến máy chủ của bạn không còn có thể định tuyến trên Internet. Các tuyến này thường là / 32 và cuối cùng chúng bị xóa. Điều này không giúp gì cho bạn cả; mục đích là để bảo vệ mạng của ISP khỏi deluge. Trong thời gian, máy chủ của bạn sẽ mất quyền truy cập Internet một cách hiệu quả.
Cách duy nhất ISP của bạn (hoặc bạn, nếu bạn có AS của riêng mình) sẽ có thể trợ giúp là nếu họ đang sử dụng các công cụ lưu lượng truy cập thông minh có thể phát hiện và lưu lượng truy cập DDoS có thể bị giới hạn. Không phải ai cũng có công nghệ này. Tuy nhiên, nếu lưu lượng truy cập đến từ một hoặc hai mạng hoặc một máy chủ lưu trữ, họ cũng có thể chặn lưu lượng truy cập trước bạn.
Nói tóm lại, có rất ít bạn có thể làm về vấn đề này. Giải pháp dài hạn tốt nhất là lưu trữ các dịch vụ của bạn ở nhiều địa điểm khác nhau trên Internet, điều này sẽ phải được DDoS riêng lẻ và đồng thời, làm cho DDoS trở nên đắt hơn nhiều. Các chiến lược cho việc này phụ thuộc vào dịch vụ bạn cần bảo vệ; DNS có thể được bảo vệ bằng nhiều máy chủ tên có thẩm quyền, SMTP với các bản ghi MX và bộ trao đổi thư dự phòng và HTTP với DNS vòng tròn hoặc đa giai đoạn (nhưng dù sao thì một số sự xuống cấp có thể đáng chú ý trong thời gian dài).
Cân bằng tải hiếm khi là một giải pháp hiệu quả cho vấn đề này, bởi vì chính bộ cân bằng tải cũng chịu cùng một vấn đề và chỉ tạo ra một nút cổ chai. IPTables hoặc các quy tắc tường lửa khác sẽ không giúp ích vì vấn đề là đường ống của bạn đã bão hòa. Khi các kết nối được nhìn thấy bởi tường lửa của bạn, nó đã quá muộn ; băng thông vào trang web của bạn đã được sử dụng. Không quan trọng bạn làm gì với các kết nối; cuộc tấn công được giảm nhẹ hoặc kết thúc khi lượng lưu lượng truy cập đến trở lại bình thường.
Nếu bạn có thể làm như vậy, hãy cân nhắc sử dụng mạng phân phối nội dung (CDN) như Akamai, Limelight và CDN77 hoặc sử dụng dịch vụ chà DDoS như CloudFlare hoặc Prolexic. Các dịch vụ này thực hiện các biện pháp tích cực để giảm thiểu các loại tấn công này và cũng có rất nhiều băng thông có sẵn ở nhiều nơi khác nhau đến mức làm ngập chúng nói chung là không khả thi.
Nếu bạn quyết định sử dụng CloudFlare (hoặc bất kỳ CDN / proxy nào khác), hãy nhớ ẩn IP máy chủ của bạn. Nếu kẻ tấn công phát hiện ra IP, anh ta có thể trực tiếp DDoS máy chủ của bạn, bỏ qua CloudFlare. Để ẩn IP, máy chủ của bạn không bao giờ nên giao tiếp trực tiếp với các máy chủ / người dùng khác trừ khi chúng an toàn. Ví dụ: máy chủ của bạn không nên gửi email trực tiếp đến người dùng. Điều này không áp dụng nếu bạn lưu trữ tất cả nội dung của mình trên CDN và không có máy chủ của riêng bạn.
Ngoài ra, một số nhà cung cấp VPS và lưu trữ tốt hơn trong việc giảm thiểu các cuộc tấn công này so với các cuộc tấn công khác. Nói chung, càng lớn, họ sẽ càng giỏi hơn về điều này; một nhà cung cấp rất đồng đều và có nhiều băng thông sẽ có khả năng phục hồi tự nhiên hơn, và một nhà cung cấp với đội ngũ vận hành mạng tích cực và có đầy đủ nhân viên sẽ có thể phản ứng nhanh hơn.
Dựa trên tải
Khi bạn gặp phải một DDoS dựa trên tải, bạn nhận thấy rằng mức trung bình tải cao bất thường (hoặc CPU, RAM hoặc mức sử dụng đĩa, tùy thuộc vào nền tảng của bạn và thông tin cụ thể). Mặc dù máy chủ dường như không làm gì hữu ích, nhưng nó rất bận. Thông thường, sẽ có một lượng lớn các mục trong nhật ký cho thấy các điều kiện bất thường. Thường xuyên hơn không phải điều này đến từ nhiều nơi khác nhau và là một DDoS, nhưng điều đó không nhất thiết phải như vậy. Thậm chí không cần phải có nhiều máy chủ khác nhau .
Cuộc tấn công này dựa trên việc làm cho dịch vụ của bạn làm rất nhiều thứ đắt tiền. Đây có thể là một cái gì đó như mở một số lượng lớn các kết nối TCP và buộc bạn phải duy trì trạng thái cho chúng hoặc tải quá nhiều hoặc quá nhiều tệp lên dịch vụ của bạn hoặc có thể thực hiện các tìm kiếm thực sự tốn kém hoặc thực sự làm bất cứ điều gì tốn kém để xử lý. Lưu lượng truy cập nằm trong giới hạn của những gì bạn đã lên kế hoạch và có thể đảm nhận, nhưng các loại yêu cầu được thực hiện quá đắt để xử lý rất nhiều .
Thứ nhất, loại tấn công này là có thể thường là dấu hiệu của một vấn đề cấu hình hoặc lỗitrong dịch vụ của bạn. Chẳng hạn, bạn có thể đã bật ghi nhật ký quá dài và có thể lưu trữ nhật ký trên một thứ gì đó rất chậm để ghi vào. Nếu ai đó nhận ra điều này và làm nhiều việc khiến bạn phải ghi rất nhiều nhật ký vào đĩa, máy chủ của bạn sẽ chậm thu thập dữ liệu. Phần mềm của bạn cũng có thể đang làm một cái gì đó cực kỳ không hiệu quả đối với các trường hợp đầu vào nhất định; nguyên nhân có rất nhiều như có các chương trình, nhưng hai ví dụ sẽ là một tình huống khiến dịch vụ của bạn không đóng phiên mà kết thúc và một tình huống khiến nó sinh ra một quy trình con và rời bỏ nó. Nếu bạn kết thúc với hàng chục ngàn kết nối mở với trạng thái để theo dõi hoặc hàng chục nghìn quy trình con, bạn sẽ gặp rắc rối.
Điều đầu tiên bạn có thể làm là sử dụng tường lửa để giảm lưu lượng . Điều này không phải lúc nào cũng có thể, nhưng nếu có một đặc điểm bạn có thể tìm thấy trong lưu lượng truy cập đến (tcpdump có thể tốt cho việc này nếu lưu lượng nhẹ), bạn có thể thả nó vào tường lửa và nó sẽ không còn gây rắc rối nữa. Điều khác cần làm là sửa lỗi trong dịch vụ của bạn (liên hệ với nhà cung cấp và sẵn sàng cho trải nghiệm hỗ trợ lâu dài).
Tuy nhiên, nếu đó là một vấn đề cấu hình, hãy bắt đầu từ đó . Tắt ghi nhật ký trên các hệ thống sản xuất ở mức hợp lý (tùy thuộc vào chương trình, đây thường là mặc định và thường sẽ đảm bảo các mức ghi nhật ký "gỡ lỗi" và "dài dòng" bị tắt; nếu mọi thứ người dùng thực hiện đều được đăng nhập chính xác và chi tiết tốt, đăng nhập của bạn là quá dài dòng). Ngoài ra, hãy kiểm tra giới hạn quy trình và yêu cầu con , có thể điều tiết các yêu cầu đến, kết nối trên mỗi IP và số lượng quy trình con được phép, nếu có.
Không cần phải nói rằng máy chủ của bạn được cấu hình tốt hơn và được cung cấp tốt hơn, loại tấn công này sẽ càng khó hơn. Tránh keo kiệt với RAM và CPU nói riêng. Đảm bảo kết nối của bạn với những thứ như cơ sở dữ liệu phụ trợ và lưu trữ đĩa nhanh và đáng tin cậy.
Dựa trên khai thác
Nếu dịch vụ của bạn gặp sự cố một cách bí ẩn cực kỳ nhanh chóng sau khi được đưa lên, đặc biệt là nếu bạn có thể thiết lập một mẫu yêu cầu trước sự cố và yêu cầu không điển hình hoặc không khớp với các mẫu sử dụng dự kiến, bạn có thể gặp phải DoS dựa trên khai thác. Điều này có thể đến từ chỉ một máy chủ (với hầu hết mọi loại kết nối internet) hoặc nhiều máy chủ.
Điều này tương tự như một DoS dựa trên tải trọng ở nhiều khía cạnh và về cơ bản có cùng nguyên nhân và giảm thiểu. Sự khác biệt chỉ là trong trường hợp này, lỗi không khiến máy chủ của bạn lãng phí mà chết. Kẻ tấn công thường khai thác lỗ hổng sự cố từ xa, chẳng hạn như đầu vào bị cắt xén gây ra sự vô hiệu hóa hoặc một cái gì đó trong dịch vụ của bạn.
Xử lý này tương tự như một cuộc tấn công truy cập từ xa trái phép. Tường lửa chống lại các máy chủ và loại lưu lượng ban đầu nếu chúng có thể được ghim xuống. Sử dụng proxy xác nhận ngược nếu áp dụng. Thu thập bằng chứng pháp y (thử và nắm bắt một số lưu lượng truy cập), gửi một vé lỗi với nhà cung cấp và xem xét nộp đơn khiếu nại lạm dụng (hoặc khiếu nại pháp lý) đối với nguồn gốc.
Các cuộc tấn công này khá rẻ để gắn kết, nếu có thể tìm thấy một khai thác, và chúng có thể rất mạnh, nhưng cũng tương đối dễ dàng để theo dõi và dừng lại. Tuy nhiên, các kỹ thuật hữu ích để chống lại DDoS dựa trên lưu lượng truy cập thường vô dụng đối với DoS dựa trên khai thác.