Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên

Trung tâm phòng thủ mạng của chúng tôi chịu trách nhiệm bảo mật cơ sở hạ tầng web của khách hàng và đẩy lùi các cuộc tấn công vào trang web của khách hàng. Chúng tôi sử dụng tường lửa ứng dụng web FortiWeb (WAF) để bảo vệ khỏi các cuộc tấn công. Nhưng ngay cả WAF tuyệt vời nhất cũng không phải là thuốc chữa bách bệnh và không bảo vệ khỏi các cuộc tấn công có chủ đích. 

Vì vậy, ngoài WAF chúng tôi sử dụng ELK. Nó giúp thu thập tất cả các sự kiện ở một nơi, tích lũy số liệu thống kê, trực quan hóa chúng và cho phép chúng ta kịp thời nhìn thấy một cuộc tấn công có mục tiêu.

Hôm nay tôi sẽ kể cho bạn chi tiết hơn về cách chúng tôi vượt qua “cây Giáng sinh” với WAF và điều gì xảy ra từ nó.

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên

Câu chuyện về một cuộc tấn công: mọi thứ diễn ra như thế nào trước khi chuyển sang ELK

Khách hàng có một ứng dụng được triển khai trên đám mây đằng sau WAF của chúng tôi. Từ 10 đến 000 người dùng kết nối với trang web mỗi ngày, số lượng kết nối đạt tới 100 triệu mỗi ngày. Trong số này, 000-20 người dùng là kẻ tấn công và cố gắng hack trang web. 

FortiWeb đã chặn hình thức bạo lực thông thường từ một địa chỉ IP khá dễ dàng. Số lượng truy cập mỗi phút vào trang web cao hơn so với người dùng hợp pháp. Chúng tôi chỉ cần đặt ngưỡng hoạt động từ một địa chỉ và đẩy lùi cuộc tấn công.

Việc chống lại “các cuộc tấn công chậm” sẽ khó khăn hơn nhiều khi những kẻ tấn công hành động chậm chạp và cải trang thành những khách hàng bình thường. Họ sử dụng nhiều địa chỉ IP duy nhất. Đối với WAF, hoạt động như vậy không giống như một hành động tàn bạo; việc theo dõi nó một cách tự động khó khăn hơn. Cũng có nguy cơ chặn người dùng bình thường. Chúng tôi đã tìm kiếm các dấu hiệu khác của cuộc tấn công và định cấu hình chính sách để tự động chặn địa chỉ IP dựa trên dấu hiệu này. Ví dụ: nhiều phiên bất hợp pháp có các trường chung trong tiêu đề yêu cầu HTTP. Các trường này thường phải được tìm kiếm thủ công trong nhật ký sự kiện FortiWeb. 

Hóa ra nó dài và khó chịu. Trong chức năng FortiWeb tiêu chuẩn, các sự kiện được ghi lại dưới dạng văn bản trong 3 nhật ký khác nhau: các cuộc tấn công được phát hiện, thông tin yêu cầu và thông báo hệ thống về hoạt động của WAF. Hàng chục, thậm chí hàng trăm sự kiện tấn công có thể xảy ra trong một phút.

Không quá nhiều, nhưng bạn phải duyệt qua một số nhật ký theo cách thủ công và lặp qua rất nhiều dòng: 

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên
Trong nhật ký tấn công, chúng tôi thấy địa chỉ người dùng và tính chất hoạt động. 
 
Chỉ quét bảng nhật ký là không đủ. Để tìm thông tin thú vị và hữu ích nhất về bản chất của cuộc tấn công, bạn cần xem xét bên trong một sự kiện cụ thể:

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên
Các trường được tô sáng giúp phát hiện "cuộc tấn công chậm". Nguồn: ảnh chụp màn hình từ Trang web Fortinet

Chà, vấn đề quan trọng nhất là chỉ có chuyên gia của FortiWeb mới có thể tìm ra điều này. Mặc dù trong giờ làm việc, chúng tôi vẫn có thể theo dõi hoạt động đáng ngờ trong thời gian thực nhưng việc điều tra các sự cố vào ban đêm có thể mất nhiều thời gian hơn. Khi các chính sách của FortiWeb không hoạt động vì lý do nào đó, các kỹ sư trực ca đêm không thể đánh giá tình hình nếu không truy cập vào WAF và đã đánh thức chuyên gia FortiWeb. Chúng tôi đã xem qua nhật ký trong nhiều giờ và tìm ra thời điểm xảy ra vụ tấn công. 

Với khối lượng thông tin như vậy, thoạt nhìn thật khó để hiểu được bức tranh tổng thể và hành động chủ động. Sau đó, chúng tôi quyết định thu thập dữ liệu ở một nơi để phân tích mọi thứ dưới dạng trực quan, tìm ra điểm bắt đầu của cuộc tấn công, xác định hướng và phương pháp chặn của nó. 

Bạn đã chọn cái gì?

Trước hết, chúng tôi đã xem xét các giải pháp đã được sử dụng để không nhân lên các thực thể một cách không cần thiết.

Một trong những lựa chọn đầu tiên là Nagiosmà chúng tôi sử dụng để theo dõi cơ sở hạ tầng kỹ thuật, cơ sở hạ tầng mạng, cảnh báo về các tình huống khẩn cấp. Nhân viên bảo vệ cũng dùng nó để thông báo cho nhân viên trực trong trường hợp có giao thông đáng ngờ, nhưng nó không biết cách thu thập các khúc gỗ rải rác nên không còn cần thiết nữa. 

Có một tùy chọn để tổng hợp mọi thứ bằng cách sử dụng MySQL và PostgreSQL hoặc cơ sở dữ liệu quan hệ khác. Nhưng để lấy dữ liệu ra, bạn phải tạo ứng dụng của riêng mình. 

Công ty chúng tôi cũng sử dụng Máy phân tích Forti từ Fortinet. Nhưng nó cũng không phù hợp trong trường hợp này. Thứ nhất, nó phù hợp hơn để làm việc với tường lửa FortiGate. Thứ hai, nhiều cài đặt bị thiếu và việc tương tác với nó đòi hỏi kiến ​​thức tuyệt vời về truy vấn SQL. Và thứ ba, việc sử dụng nó sẽ làm tăng chi phí dịch vụ cho khách hàng.   

Đây là cách chúng tôi đến với nguồn mở dưới dạng ELK

Tại sao chọn ELK 

ELK là một tập hợp các chương trình nguồn mở:

  • Elasticsearch – cơ sở dữ liệu chuỗi thời gian, được tạo riêng để làm việc với khối lượng văn bản lớn;
  • Logstash – cơ chế thu thập dữ liệu có thể chuyển đổi nhật ký sang định dạng mong muốn; 
  • Kibana – một trình hiển thị tốt, cũng như giao diện khá thân thiện để quản lý Elaticsearch. Bạn có thể sử dụng nó để xây dựng các biểu đồ mà các kỹ sư đang làm nhiệm vụ có thể theo dõi vào ban đêm. 

Ngưỡng đầu vào ELK thấp. Tất cả các tính năng cơ bản đều miễn phí. Hạnh phúc còn cần gì nữa?

Làm thế nào chúng ta có thể kết hợp tất cả lại thành một hệ thống duy nhất?

Chúng tôi đã tạo chỉ mục và chỉ để lại những thông tin cần thiết. Chúng tôi đã tải cả ba nhật ký FortiWEB vào ELK và đầu ra là các chỉ mục. Đây là các tệp chứa tất cả nhật ký được thu thập trong một khoảng thời gian, chẳng hạn như một ngày. Nếu chúng ta hình dung chúng ngay lập tức, chúng ta sẽ chỉ thấy động lực của các cuộc tấn công. Để biết chi tiết, bạn cần “rơi vào” từng đòn tấn công và nhìn vào các trường cụ thể.

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên

Chúng tôi nhận ra rằng trước tiên chúng tôi cần thiết lập phân tích thông tin phi cấu trúc. Chúng tôi đã lấy các trường dài ở dạng chuỗi, chẳng hạn như “Thông báo” và “URL” rồi phân tích cú pháp chúng để có thêm thông tin phục vụ việc ra quyết định. 

Ví dụ: bằng cách sử dụng phân tích cú pháp, chúng tôi đã xác định riêng vị trí của người dùng. Điều này giúp làm nổi bật ngay lập tức các cuộc tấn công từ nước ngoài vào các trang web dành cho người dùng Nga. Bằng cách chặn tất cả các kết nối từ các quốc gia khác, chúng tôi đã giảm số lượng các cuộc tấn công xuống 2 lần và có thể bình tĩnh đối phó với các cuộc tấn công bên trong nước Nga. 

Sau khi phân tích cú pháp, chúng tôi bắt đầu tìm kiếm thông tin nào cần lưu trữ và trực quan hóa. Việc để lại mọi thứ trong nhật ký là không thực tế: kích thước của một chỉ mục rất lớn - 7 GB. ELK mất nhiều thời gian để xử lý tệp. Tuy nhiên, không phải tất cả thông tin đều hữu ích. Nội dung nào đó đã bị trùng lặp và chiếm thêm dung lượng - nó cần được tối ưu hóa. 

Lúc đầu, chúng tôi chỉ quét chỉ mục và loại bỏ các sự kiện không cần thiết. Điều này thậm chí còn bất tiện hơn và lâu hơn so với việc làm việc với nhật ký trên chính FortiWeb. Ưu điểm duy nhất của “cây Giáng sinh” ở giai đoạn này là chúng ta có thể hình dung ra một khoảng thời gian lớn trên một màn hình. 

Chúng tôi không tuyệt vọng, tiếp tục ăn xương rồng, nghiên cứu ELK và tin rằng chúng tôi sẽ có thể rút ra được những thông tin cần thiết. Sau khi làm sạch các chỉ mục, chúng tôi bắt đầu hình dung những gì mình có. Đây là cách chúng tôi đến với bảng điều khiển lớn. Chúng tôi đã thử một số vật dụng - một cây thông Noel thực sự một cách trực quan và trang nhã! 

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên

Khoảnh khắc vụ tấn công được ghi lại. Bây giờ chúng ta cần hiểu thời điểm bắt đầu một cuộc tấn công trông như thế nào trên biểu đồ. Để phát hiện ra điều đó, chúng tôi đã xem xét phản hồi của máy chủ đối với người dùng (mã trả lại). Chúng tôi quan tâm đến phản hồi của máy chủ với các mã sau (rc): 

Mã (rc)

tên

Описание

0

Thả

Yêu cầu đến máy chủ bị chặn

200

Ok

Yêu cầu được xử lý thành công

400

Yêu cầu xấu

Yêu cầu không hợp lệ

403

cấm

Ủy quyền bị từ chối

500

Server Error

Dịch vụ không sẵn sàng

Nếu ai đó bắt đầu tấn công trang web, tỷ lệ mã sẽ thay đổi: 

  • Nếu có nhiều yêu cầu sai sót hơn với mã 400 nhưng số lượng yêu cầu bình thường với mã 200 vẫn giữ nguyên, điều đó có nghĩa là ai đó đang cố gắng hack trang web. 
  • Nếu đồng thời các yêu cầu có mã 0 cũng tăng lên thì các chính trị gia của FortiWeb cũng “nhìn thấy” cuộc tấn công và áp dụng các biện pháp chặn đối với nó. 
  • Nếu số lượng tin nhắn có mã 500 tăng lên, điều đó có nghĩa là trang web không có sẵn các địa chỉ IP này - cũng là một kiểu chặn. 

Đến tháng thứ ba, chúng tôi đã thiết lập một bảng thông tin để theo dõi hoạt động đó.

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên

Để không phải giám sát mọi thứ theo cách thủ công, chúng tôi đã thiết lập tích hợp với Nagios, công ty đã thăm dò ELK theo những khoảng thời gian nhất định. Nếu tôi phát hiện các giá trị ngưỡng mà mã đạt đến, tôi đã gửi thông báo cho nhân viên trực ban về hoạt động đáng ngờ. 

Kết hợp 4 đồ họa trong hệ thống giám sát. Bây giờ, điều quan trọng là phải xem trên biểu đồ thời điểm cuộc tấn công không bị chặn và cần có sự can thiệp của kỹ sư. Trên 4 biểu đồ khác nhau, mắt chúng tôi mờ đi. Do đó, chúng tôi kết hợp các biểu đồ và bắt đầu theo dõi mọi thứ trên một màn hình.

Trong quá trình theo dõi, chúng tôi đã theo dõi sự thay đổi của các biểu đồ có màu sắc khác nhau. Một vệt màu đỏ cho thấy cuộc tấn công đã bắt đầu, trong khi biểu đồ màu cam và xanh lam hiển thị phản hồi của FortiWeb:

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên
Mọi thứ ở đây đều ổn: có sự gia tăng hoạt động “đỏ”, nhưng FortiWeb đã đối phó với nó và kế hoạch tấn công trở nên vô ích.

Chúng tôi cũng đã tự vẽ cho mình một ví dụ về biểu đồ cần can thiệp:

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên
Ở đây chúng ta thấy FortiWeb có hoạt động tăng lên nhưng biểu đồ tấn công màu đỏ không hề giảm. Bạn cần thay đổi cài đặt WAF của mình.

Việc điều tra các sự cố ban đêm cũng trở nên dễ dàng hơn. Biểu đồ ngay lập tức hiển thị thời điểm cần bảo vệ trang web. 

Cách ELK giúp các kỹ sư bảo mật chống lại các cuộc tấn công trang web và ngủ yên
Đây là điều đôi khi xảy ra vào ban đêm. Biểu đồ màu đỏ – cuộc tấn công đã bắt đầu. Màu xanh – Hoạt động của FortiWeb. Đòn tấn công chưa bị chặn hoàn toàn nên tôi phải can thiệp.

Chúng ta đang tiến về đâu?

Chúng tôi hiện đang đào tạo quản trị viên trực để làm việc với ELK. Những người làm nhiệm vụ học cách đánh giá tình hình trên bảng điều khiển và đưa ra quyết định: đã đến lúc chuyển đến chuyên gia FortiWeb hoặc các chính sách trên WAF đủ để tự động đẩy lùi cuộc tấn công. Bằng cách này, chúng tôi giảm tải cho các kỹ sư bảo mật thông tin vào ban đêm và phân chia vai trò hỗ trợ ở cấp hệ thống. Quyền truy cập vào FortiWeb chỉ còn lại với trung tâm phòng thủ mạng và chỉ họ thực hiện các thay đổi đối với cài đặt WAF khi thực sự cần thiết.

Chúng tôi cũng đang làm việc để báo cáo cho khách hàng. Chúng tôi dự kiến ​​dữ liệu về động lực hoạt động của WAF sẽ có sẵn trong tài khoản cá nhân của khách hàng. ELK sẽ làm cho tình hình trở nên minh bạch hơn mà không cần phải liên hệ với chính WAF.

Nếu khách hàng muốn theo dõi khả năng bảo vệ của họ trong thời gian thực, ELK cũng sẽ rất hữu ích. Chúng tôi không thể cấp quyền truy cập vào WAF vì sự can thiệp của khách hàng vào công việc có thể ảnh hưởng đến người khác. Nhưng bạn có thể lấy một ELK riêng và đưa nó để “chơi”. 

Đây là những kịch bản sử dụng “cây Giáng sinh” mà chúng tôi đã tích lũy được gần đây. Chia sẻ ý tưởng của bạn về vấn đề này và đừng quên cấu hình mọi thứ chính xácđể tránh rò rỉ cơ sở dữ liệu. 

Nguồn: www.habr.com