BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BÁO CÁO BÀI TẬP LỚN Tìm hiểu về bộ công cụ xử lý log ELK Học viên thực hiện Nguyễn Chí Cường Nguyễn Tiến Giang Nguyễn Văn Hân Nguyễn Bá Cảnh Lê Thanh Lĩnh Lưu Văn Tư Người hướng dẫn TS Hoàng Xuân Dậu Hà Nội, 2022 Mục lục Mục lục i Danh mục hình vẽ ii Chương 1 HỆ THỐNG ELK 1 1 1 Tổng quan về log 1 1 1 1 Định nghĩa Logs 1 1 1 2 Ý nghĩa của việc quản lý logs 1 1 2 Hệ thống ELK Stack 3 1 2 1 Giới thiệu tổng quan về ELK Stack 3 1 2 2 Mô h.
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ BÁO CÁO BÀI TẬP LỚN Tìm hiểu công cụ xử lý log ELK Học viên thực hiện: Nguyễn Chí Cường Nguyễn Tiến Giang Nguyễn Văn Hân Nguyễn Bá Cảnh Lê Thanh Lĩnh Lưu Văn Tư Người hướng dẫn: TS Hoàng Xuân Dậu Hà Nội, 2022 MỤC LỤC HỆ THỐNG ELK 1.1 Tổng quan log 1.1.1 Định nghĩa Logs Log ghi kiện xảy phạm vi mạng lưới, hệ thống tổ chức Có thể hiểu Log thông tin hoạt động hệ thống dịch vụ chạy hệ thống, log ghi lại thành log file Các kiện log ghi lại Audit, transaction, intrusion, connections, user activity, … Có nhiều nguồn sinh log nhiều loại log khác Ví dụ như: • Log file thiết bị firewall, router, switches, moderm, IDPS, … • Log file hệ điều hành Linux, Windows, … • Log file ứng dụng Web, Mail, Database, … • Log file phần mềm, ứng dụng, Antivirus, VPN, … Log không sinh từ thiết bị bên cung cấp dịch vụ cho người sử dụng mà máy tính cá nhân người sử dụng sinh log Tác dụng mà log đem lại: • Log liên tục ghi lại thông báo hoạt động hệ thống dịch vụ triển khai hệ thống file tương ứng Log file thường file văn thông thường dạng “clear text” tức văn dạng rõ, sử dụng trình soạn thảo văn (vi, vim, nano, gedit, …) trình xem văn thơng thường (cat, tailf, …) xem file log • Các file log cho người đọc thơng tin người cần biết, để giải rắc rối mà người sử dụng gặp phải miễn người biết ứng dụng nào, tiến trình ghi vào log cụ thể • Phân tích nguyên nhân gốc rễ vấn đề • Giúp cho việc khắc phục cố nhanh hệ thống gặp vấn đề • Giúp cho việc phát hiện, dự đốn vấn đề xẩy hệ thống Trong hầu hết hệ thống Linux /etc /var/log nơi lưu trữ lại tất file log Cịn Windows xem trình quản lý Event Viewer xem đường dẫn C:\Windows\System32\winevt\Logs với file có định dạng “.evtx” 1.1.2 Ý nghĩa việc quản lý logs Để quản lý log cách tốt hơn, xu sử dụng log tập trung Log tập trung trình tập trung, thu thập, phân tích… log cần thiết từ nhiều nguồn khác nơi an tồn để thuận lợi cho việc phân tích, theo dõi hệ thống Những lý nên sử dụng quản lý logs tập trung: • Do có nhiều nguồn sinh log • Có nhiều nguồn sinh logs, logs nằm nhiều máy chủ khác nên khó quản lý • Nội dung log không đồng (giả sử log từ nguồn có thơng tin ip mà khơng ghi thông tin user name đăng nhập, log từ nguồn lại có), khó khăn việc kết hợp log với để xử lý vấn đề gặp phải • Định dạng log khơng đồng dẫn đến việc khó khăn việc chuẩn hóa • Đảm bảo tính tồn vẹn, bí mật, sẵn sàng log • Do có nhiều rootkit thiết kế để xóa bỏ logs • Do logs ghi đè lên log cũ, nên logs phải lưu trữ nơi an tồn phải có kênh truyền đủ đảm bảo tính an tồn sẵn sàng sử dụng để phân tích hệ thống Lợi ích sử dụng quản lý logs tập trung đem lại: • Việc xây dựng hệ thống quản lý logs tập trung, giúp tổ chức có nhìn chi tiết vấn đề bảo mật, vi phạm sách kỹ thuật, hay vấn đề lỗi vận hành… xảy Qua cung cấp thông tin chi tiết vấn đề hệ thống cơng ty gặp phải từ có nhìn rõ ràng hướng giải • Khi hệ thống bị cơng, tất diễn liên quan đến hệ thống ghi lại lưu trữ tách biệt, đảm bảo tính tồn vẹn thực diễn hệ thống Hệ thống quản lý logs tập trung tránh việc Attacker thực trình Cover track hành động thực sau can thiệp vào hệ thống, qua phục vụ cho việc phân tích điều tra cơng, hỗ trợ điều tra nội cần thiết • Khi liệu liên quan đến kiện diễn phạm vi hệ thống, vấn đề vận hành, hành động công nhằm vào tổ chức ghi lại lưu trữ liên tục, việc tập trung lượng lớn liệu cho phép tổ chức xác định xu hướng hoạt động kẻ công nhằm vào cơng ty Xác định kiểu cơng thơng dụng chống lại tổ chức, từ có biện pháp đối phó kiện tồn hệ thống • Quản lý logs tập trung kết hợp với ứng dụng thu thập phân tích log khác giúp cho việc phân tích log trở nên thuận lợi giảm thiểu nguồn nhân lực • Phát kịp thời lây nhiễm mã độc hệ thống mạng, máy tính bị nhiễm mã độc, máy tính bị tình nghi thành viên mạng máy tính botnet • Giám sát việc tn thủ sách an ninh hệ thống Tóm lại, việc xây dựng giải pháp quản lý tập trung logs hợp lý giúp cải thiện hiệu cho hệ thống giám sát an ninh việc phân tích xử lý biến cố Các phân tích viên tốn thời gian cho việc đánh giá xác biến cố khả tự động hệ thống gặp trục trặc Một giải pháp tốt cho phép tất biến cố an ninh quan trọng thu thập lưu trữ vào sở liệu nhằm cung cấp thơng tin cho phân tích viên an ninh, đội ứng phó cố, phận khác tổ chức 1.2 Hệ thống ELK Stack 1.2.1 Giới thiệu tổng quan ELK Stack ELK Stack stack mạnh, phổ biến dùng để ghi log (bộ công cụ logging) ELK Stack giải pháp thu gom, phân loại, phân tích, lưu trữ tìm kiếm logs tập trung hiệu dùng nhiều cơng ty lớn Ví dụ hệ thống lớn giới LinkedIn, Netflix, Medium… sử dụng stack Logging công cụ đơn giản mạnh mẽ, lưu giữ, ghi lại toàn hoạt động hệ thống Nhờ có Logging, người dùng, quản lý tra cứu lại trạng thái hệ thống khứ, code chạy, command sử dụng, trình đăng nhập vào hệ thống, v.v… từ tìm lỗi sửa chữa, khắc phục dễ dàng “ELK” từ viết tắt ba dự án mã nguồn mở: Elasticsearch, Logstash Kibana Elasticsearch cơng cụ lưu trữ, tìm kiếm phân tích Logstash đóng vai trị đường ống xử lý liệu phía máy chủ, nhận liệu từ nhiều nguồn lúc, biến đổi liệu sau gửi đến Elasticsearch Kibana cho phép người dùng theo dõi, trực quan hóa liệu từ Elasticsearch biểu đồ đồ thị Hình 1.1 Các phần mềm mã nguồn mở Elastic Stack Lý công ty lớn giới lựa chọn ELK Stack để sử dụng: • Có thể đọc log từ nhiều nguồn: Logstash đọc log từ nhiều nguồn log file, log database UDP hay REST request • Dễ tích hợp: Cho dù có sử dụng Nginx hay Apache, dùng MSSQL, MongoDB hay Redis, Logstash đọc hiểu xử lý log nên việc tích hợp dễ dàng với hệ thống khác mà khơng gặp khó khăn • Hồn tồn miễn phí: Chỉ cần tải về, cài đặt dùng, khơng tốn chi phí Cơng ty tạo ELK Stack kiếm tiền dịch vụ cloud sản phẩm ‘premium’ phụ thêm (Ví dụ X-Pack sử dụng Machine Learning) • Khả co giãn, mở rộng tốt: Logstash Elasticsearch chạy nhiều điểm nút hệ thống gọi ‘node’ nên hệ thống ELK dễ mở rộng Khi có thêm dịch vụ, thêm người dùng, muốn lưu trữ log nhiều việc thêm node cho Logstash Elasticsearch xong • Tìm kiếm lọc liệu mạnh: Elasticsearch cho phép lưu trữ thông tin kiểu NoSQL, hỗ trợ ln tìm kiếm Full-Text tìm kiếm toàn văn nên việc truy vấn dễ dàng nhanh chóng • Cộng đồng sử dụng lớn mạnh, hướng dẫn nhiều: Vì lợi ích mà ELK Stack đem lại nên nhiều công ty dùng Từ dĩ nhiên có nhiều hướng để học dùng ELK Stack • Mỗi phần mềm ELK Stack tùy chỉnh cấu hình cho phù hợp với trình hoạt động hệ thống • Thu thập log từ nhiều nguồn khác nhau: log hệ thống, log ứng dụng, log thiết bị mạng, log snmp, log từ hệ thống API (Application Programming Interface)… • Giao diện Kibana trực quan, sinh động • Phương tiện cảnh báo đa dạng, tích hợp với email, sms, slack, ứng dụng OTP (One Time Password) Telegram, Whatsapp, • Hiệu xử lý cao, chịu tải lượng lớn liệu (log) đẩy mà phụ thuộc vào khả xử lý phần cứng • Giải hầu hết toán giám sát hệ thống mạng: giám sát hạ tầng, giám sát dịch vụ, giám sát an ninh, giám sát người dùng, Đây đặc điểm giúp cho ELK tương lai công ty tổ chức sử dụng để triển khai hệ thống giám sát tập trung bên hệ thống mạng họ ELK Stack tảng linh hoạt dùng cho nhiều trường hợp khác nhau, sử dụng cho mảng, ngành công nghiệp khác Trong mảng Bảo mật thơng tin, thường so sánh với công cụ Splunk Một số trường hợp sử dụng ELK stack bao gồm có: • Vẽ Dashboard • Quản lý log • Giám sát an ninh • Nghiên cứu log forensic • Săn bắt mối đe dọa Lý chung cho tất trường hợp sử dụng ELK Stack cung cấp khả phân tích log theo cách dễ dàng, thuận tiện đem lại giá trị sử dụng cách đáng kể Sẽ khơng có ảnh hưởng, hư hại tới liệu việc phân tích xảy với tốc độ q nhanh 1.2.2 Mơ hình hoạt động ELK Stack Technical Stack, nên tập hợp phần mềm/công nghệ phối hợp chung với nhau, tạo thành tảng để ứng dụng hoạt động ELK stack có thành phần sau: • Shipper: Thu gom gửi log từ client lên server tập trung; • Broker: Có thể có khơng Mục đích xếp hàng đợi tránh nghẽn cổ chai xung đột; • Indexer: Phân loại, đánh mục cho log để tiện filter, tìm kiếm sau; • Search Storage: Lưu trữ cung cấp máy tìm kiếm log; • Web interface: Giao diện để người dùng, người quản trị thao tác với log thu gom Hình 1.2 Các thành phần ELK Stack 10 • Grok: gặp liệu kiện log với cấu trúc văn khơng phổ biến phức tạp, Grok plugin filter tốt để phân tích cú pháp liệu log không cấu trúc văn thành thứ có cấu trúc truy vấn Bộ lọc Grok sử dụng biểu thức quy (Regular Expression) để kết xuất liệu phù hợp với biểu thức Grok LogStash hỗ trợ số biểu thức quy chuẩn hóa dạng DATE, MONTH, IP, … Tuy nhiên liệu cần đọc sử dụng loại biểu thức chuẩn hóa có sẵn LogStash ta thực viết cú pháp biểu thức quy thủ cơng • Mutate: thực thay đổi thơng tin kiện log như: đổi tên, xóa, thay thế, tinh chỉnh trường thông tin kiện log • Drop: dừng xử lý kiện lập tức, ví dụ ‘debug event’ • Clone: tạo copy kiện • Geoip: thêm thơng tin vị trí địa lý địa IP (thường để hiển thị biểu đồ Kibana) Hình 1.12 Mơ tả q trình Filter Logstash Outputs 21 Output bước cuối chuỗi bước xử lý Logstash Một kiện đưa qua nhiều output khác nhau, Output plugin hay sử dụng: • Elasticsearch: gửi liệu kiện đến hệ thống Elasticsearch Tất nhiên đầu cuối hệ thống logging ELK thường Elasticsearch giúp lưu trữ log, tìm kiếm log,… • File: người cài đặt khơng cần lưu trữ log cho việc tìm kiếm, hiển thị,… mà cần kiểm tra xem hệ thống có hoạt động khơng lưu file hệ thống • Graphite: gửi liệu tới graphite, tool mã nguồn mở hỗ trợ việc lưu trữ tạo biểu đồ metric • Statsd: gửi liệu tới dịch vụ ‘statsd’ Hình 1.13 Mơ tả q trình Output Logstash 1.2.3.4 Kibana Kibana phần mềm mã nguồn mở phục vụ cho việc hiển thị trực quan hóa liệu từ Elasticsearch, chuyên dùng cho liệu lớn truyền phát thời gian thực Elastic (trước Elaticsearch) thành lập vào năm 2012 để cung cấp công cụ dịch vụ liên quan đến cơng cụ tìm kiếm doanh nghiệp phân tán cơng ty, cịn gọi Elaticsearch 22 Hình 1.14 Cơng cụ Kibana Kibana thiết kế để hoạt động với Elaticsearch để tạo để giải vấn đề đọc luồng liệu lớn phức tạp cách dễ dàng nhanh chóng, dễ hiểu thông qua biểu diễn đồ họa Phần mềm tạo báo cáo PDF theo yêu cầu theo lịch trình cung cấp bảng điều khiển linh hoạt, động Các báo cáo tạo biểu điễn liệu dạng thanh, đường thẳng, biểu đồ phân tán định dạng biểu đồ biểu đồ hình trịn với màu sắc tùy chỉnh kết tìm kiếm tơ sáng Kibana bao gồm công cụ chia sẻ liệu trực quan Kibana phần quan trọng ELK Stack, cơng cụ phân tích trực quan hóa liệu Biểu đồ Kibana: phát triển riêng cho ứng dụng ELK, thực hiển chuyển đổi truy vấn người dùng thành câu truy vấn mà Elasticsearch thực Kết hiển thị nhiều cách: theo dạng biểu đồ Hình 1.15 Biểu đồ hiển thị Kibana 23 1.3 Kết luận chương Chương thảo luận thành phần hệ thống ELK mà tổ chức thực để thực chương trình quản lý log Cụ thể, giới thiệu Logs ý nghĩa việc quản lý chúng, tiêu chuẩn thiết lập tốt quy định mà tổ chức tuân thủ muốn tuân theo, đảm bảo khả ghi nhật ký tiếp tục nâng cao hệ thống cài đặt thiết lập để làm ELK giải pháp công nghệ đáp ứng với tiêu chí chi phí thấp, triển khai nhanh, tính mở rộng cao sử dụng cho phân tích log 24 XÂY DỰNG THỰC NGHIỆM HỆ THỐNG ELK 2.1 Mơ hình triển khai Nhóm xây dựng mơ hình triển khai thử nghiệm sau: ELK Server: Sử dụng làm máy chủ thu thập, xử lý, lưu trữ hiển thị logs Web server: Làm máy client Web server Syslog-ng: Đọc gửi file logs client máy chủ ELK Hình 2.16 Mơ hình triển khai Dựa vào mơ hình trên, triển khai mơ hình ELK tảng Docker Web server Syslog-ng cài tảng Docker Logs thu thập từ client gửi tới ELK Stack nhờ Syslog-ng 25 2.2 Xây dựng mơi trường 2.2.1 Triển khai mơ hình ELK Stack Docker Server Ubuntu Bước 1: Cài đặt môi trường Cài đặt nhanh docker, docker compose môi trường Ubuntu: # install docker engine sudo apt-get update -y sudo apt-get -y install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add – sudo apt-key fingerprint 0EBFCD88 sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable" sudo apt-get update -y sudo apt-get -y install docker-ce docker-ce-cli containerd.io # install docker compose sudo curl -L "https://github.com/docker/compose/releases/download/1.27.4/docker-compose-$ (uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose sudo chmod +x /usr/local/bin/docker-compose docker version docker-compose version Hoặc bạn tham khảo viết hướng dẫn chi tiết bước cài đặt đây: https://docs.docker.com/compose/install/ Bước 2: Tải source từ Github git clone https://github.com/luutu868/elk_stack.git Đây file docker-compose.yml với nội dung tạo Container tương ứng với thành phần: Elasticsearch, Logstash, Kibana Bên cạnh cịn bổ sung thêm thành phần thu thập logs, message queue, quản lý index… 26 Bước 3: Khởi chạy Truy cập vào thư mục git vừa tải về: cd elk_stack/ Chạy file docker-compose.yml với tham số -d để rõ chạy background docker-compose up -d Bước 4: Kiểm tra cài đặt thành công Kiểm tra container chạy với lệnh: docker-ps Kết trả về: Bước 5: Hoàn tất cài đặt Kiểm tra Elasticsearch hoạt động curl -X GET "localhost:9200" 27 Kiểm tra giao diện Kibana, ta truy cập đường dẫn trình duyệt http://ip_address:5601 Truy cập thành công, kết hiển thị: 28 2.2.2 Triển khai máy chủ Web Server & Syslog-ng Collector Docker Kiểm tra container chạy: docker-ps 2.2.3 Cấu hình Cấu hình collector logs từ Syslog-ng đẩy logs Logstash: 29 Hình 2.11 Config syslog-ng Cấu hình logstash parser 2.3 Kết Thử nghiệm kiểm tra log hệ thông ELK: Trên Apache Web Server thử truy cập: 30 Hình 2.17 Thử nghiệm Web Server Kiểm tra log máy chủ web: Hình 2.18 Log Server Hình 2.10 Nginx log Web 31 IIS logs Web Mongodb logs Truy cập Dashboard Kibana: 32 Dashboard IIS logs Dashboard Mongodb logs 33 Dashboard Nginx logs 2.4 Kết luận Trong báo cáo trình bày tổng quan hệ thống ELK sở triển khai thử nghiệm thành cơng hệ thống ELK Stack Từ nguồn liệu log sinh từ web server, database server đẩy vào logstash sau vào hệ truy hồi thơng tin Elasticsearch hiển thị Kibana 34 TÀI LIỆU THAM KHẢO [1] Tài liệu từ trang chủ ELK: https://www.elastic.co/guide/en/elasticstack-get-started/7.31.1/get-started-elastic-stack.html [2] Tài liệu giới thiệu tổng quan ELK, Online: https://blog.cloud365.vn/logging/ELK-part1-tong-quan-ve-elk-stack/ https://github.com/trustedsec/unicorn 35 ... tích viên an ninh, đội ứng phó cố, phận khác tổ chức 1.2 Hệ thống ELK Stack 1.2.1 Giới thiệu tổng quan ELK Stack ELK Stack stack mạnh, phổ biến dùng để ghi log (bộ công cụ logging) ELK Stack giải... chỉnh kết tìm kiếm tô sáng Kibana bao gồm công cụ chia sẻ liệu trực quan Kibana phần quan trọng ELK Stack, công cụ phân tích trực quan hóa liệu Biểu đồ Kibana: phát triển riêng cho ứng dụng ELK, thực... • Đảm bảo tính tồn vẹn, bí mật, sẵn sàng log • Do có nhiều rootkit thiết kế để xóa bỏ logs • Do logs ghi đè lên log cũ, nên logs phải lưu trữ nơi an toàn phải có kênh truyền đủ đảm bảo tính an