1. Ngăn xếp đàn hồi: phân tích nhật ký bảo mật. Giới thiệu

1. Ngăn xếp đàn hồi: phân tích nhật ký bảo mật. Giới thiệu

Liên quan đến việc ngừng bán hệ thống phân tích và ghi nhật ký Splunk tại Nga, câu hỏi đặt ra: giải pháp này có thể thay thế bằng giải pháp nào? Sau khi dành thời gian làm quen với các giải pháp khác nhau, tôi đã tìm ra giải pháp cho một người đàn ông đích thực - "ngăn xếp ELK". Hệ thống này cần có thời gian để thiết lập, nhưng kết quả là bạn có thể có được một hệ thống rất mạnh mẽ để phân tích trạng thái và ứng phó kịp thời với các sự cố an toàn thông tin trong tổ chức. Trong loạt bài viết này, chúng ta sẽ xem xét các khả năng cơ bản (hoặc có thể không) của ngăn xếp ELK, xem xét cách bạn có thể phân tích cú pháp nhật ký, cách xây dựng biểu đồ và trang tổng quan cũng như những chức năng thú vị nào có thể được thực hiện bằng cách sử dụng ví dụ về nhật ký từ tường lửa Check Point hoặc trình quét bảo mật OpenVas. Để bắt đầu, chúng ta hãy xem nó là gì - ngăn xếp ELK và nó bao gồm những thành phần nào.

"ngăn xếp ELK" là từ viết tắt của ba dự án nguồn mở: Elasticsearch, Logstash и Kibana. Được phát triển bởi Elastic cùng với tất cả các dự án liên quan. Elaticsearch là cốt lõi của toàn bộ hệ thống, kết hợp các chức năng của cơ sở dữ liệu, hệ thống tìm kiếm và phân tích. Logstash là một quy trình xử lý dữ liệu phía máy chủ, nhận dữ liệu từ nhiều nguồn cùng một lúc, phân tích cú pháp nhật ký và sau đó gửi nó đến cơ sở dữ liệu Elaticsearch. Kibana cho phép người dùng trực quan hóa dữ liệu bằng biểu đồ và đồ thị trong Elaticsearch. Bạn cũng có thể quản trị cơ sở dữ liệu thông qua Kibana. Tiếp theo, chúng tôi sẽ xem xét từng hệ thống riêng biệt chi tiết hơn.

1. Ngăn xếp đàn hồi: phân tích nhật ký bảo mật. Giới thiệu

Logstash

Logstash là một tiện ích để xử lý các sự kiện nhật ký từ nhiều nguồn khác nhau, nhờ đó bạn có thể chọn các trường và giá trị của chúng trong thông báo, đồng thời bạn cũng có thể định cấu hình lọc và chỉnh sửa dữ liệu. Sau tất cả các thao tác, Logstash chuyển hướng các sự kiện đến kho lưu trữ dữ liệu cuối cùng. Tiện ích này chỉ được cấu hình thông qua các tập tin cấu hình.
Cấu hình logstash điển hình là (các) tệp bao gồm một số luồng thông tin đến (đầu vào), một số bộ lọc cho thông tin này (bộ lọc) và một số luồng đi (đầu ra). Nó trông giống như một hoặc nhiều tệp cấu hình, trong phiên bản đơn giản nhất (không có gì cả) trông như thế này:

input {
}

filter {
}

output {
}

Trong INPUT, chúng tôi định cấu hình nhật ký sẽ được gửi đến cổng nào và thông qua giao thức nào hoặc từ thư mục nào để đọc các tệp mới hoặc được cập nhật liên tục. Trong LỌC, chúng tôi định cấu hình trình phân tích cú pháp nhật ký: phân tích các trường, chỉnh sửa giá trị, thêm tham số mới hoặc xóa chúng. FILTER là trường quản lý tin nhắn gửi đến Logstash với rất nhiều tùy chọn chỉnh sửa. Trong đầu ra, chúng tôi định cấu hình nơi chúng tôi gửi nhật ký đã được phân tích cú pháp, trong trường hợp đó là elaticsearch, một yêu cầu JSON được gửi trong trường nào có giá trị được gửi hoặc như một phần của quá trình gỡ lỗi, nó có thể được xuất ra thiết bị xuất chuẩn hoặc được ghi vào một tệp.

1. Ngăn xếp đàn hồi: phân tích nhật ký bảo mật. Giới thiệu

ElasticSearch

Ban đầu, Elaticsearch là một giải pháp tìm kiếm toàn văn bản, nhưng với các tiện ích bổ sung như dễ dàng mở rộng quy mô, sao chép và những thứ khác, giúp sản phẩm trở nên rất tiện lợi và là giải pháp tốt cho các dự án có tải trọng cao với khối lượng dữ liệu lớn. Elaticsearch là một công cụ tìm kiếm và lưu trữ tài liệu JSON không quan hệ (NoSQL) dựa trên tìm kiếm toàn văn bản Lucene. Nền tảng phần cứng là Máy ảo Java nên hệ thống cần một lượng lớn bộ xử lý và tài nguyên RAM để hoạt động.
Mỗi tin nhắn đến, bằng Logstash hoặc sử dụng API truy vấn, đều được lập chỉ mục dưới dạng “tài liệu” - tương tự như bảng trong SQL quan hệ. Tất cả tài liệu được lưu trữ trong một chỉ mục - tương tự như cơ sở dữ liệu trong SQL.

Ví dụ về một tài liệu trong cơ sở dữ liệu:

{
  "_index": "checkpoint-2019.10.10",
  "_type": "_doc",
  "_id": "yvNZcWwBygXz5W1aycBy",
  "_version": 1,
  "_score": null,
  "_source": {
	"layer_uuid": [
      "dae7f01c-4c98-4c3a-a643-bfbb8fcf40f0",
      "dbee3718-cf2f-4de0-8681-529cb75be9a6"
	],
	"outzone": "External",
	"layer_name": [
  	"TSS-Standard Security",
  	"TSS-Standard Application"
	],
	"time": "1565269565",
	"dst": "103.5.198.210",
	"parent_rule": "0",
	"host": "10.10.10.250",
	"ifname": "eth6",
    ]
}

Tất cả công việc với cơ sở dữ liệu đều dựa trên các yêu cầu JSON bằng API REST, API này tạo ra các tài liệu theo chỉ mục hoặc một số thống kê ở định dạng: câu hỏi - câu trả lời. Để trực quan hóa tất cả các phản hồi đối với các yêu cầu, Kibana đã được viết, một dịch vụ web.

Kibana

Kibana cho phép bạn tìm kiếm, truy xuất dữ liệu và truy vấn số liệu thống kê từ cơ sở dữ liệu elaticsearch, nhưng nhiều biểu đồ và bảng điều khiển đẹp mắt được xây dựng dựa trên các câu trả lời. Hệ thống còn có chức năng quản trị cơ sở dữ liệu elaticsearch, trong các bài viết tiếp theo chúng ta sẽ xem xét dịch vụ này chi tiết hơn. Bây giờ, hãy hiển thị ví dụ về bảng điều khiển cho tường lửa Check Point và trình quét lỗ hổng OpenVas có thể được xây dựng.

Một ví dụ về bảng điều khiển cho Check Point, hình ảnh có thể nhấp vào được:

1. Ngăn xếp đàn hồi: phân tích nhật ký bảo mật. Giới thiệu

Một ví dụ về bảng điều khiển cho OpenVas, hình ảnh có thể nhấp vào được:

1. Ngăn xếp đàn hồi: phân tích nhật ký bảo mật. Giới thiệu

Kết luận

Chúng tôi đã xem nó bao gồm những gì Ngăn xếp ELK, chúng ta đã làm quen một chút với các sản phẩm chính, ở phần sau của khóa học, chúng ta sẽ xem xét riêng việc viết tệp cấu hình Logstash, thiết lập bảng điều khiển trên Kibana, làm quen với các yêu cầu API, tự động hóa và hơn thế nữa!

Vậy nên hãy chờ trong giây lát (Telegram, Facebook, VK, Blog giải pháp TS), Yandex Zen.

Nguồn: www.habr.com

Thêm một lời nhận xét