Osquery là một công cụ, giám sát và phân tích hệ điều hành nguồn mở. Được tạo bởi Facebook, công cụ này trình bày hệ điều hành như một cơ sở dữ liệu quan hệ hiệu suất cao có thể được truy vấn bằng các truy vấn dựa trên SQL.
Osquery là một phần mềm đa nền tảng, có thể được cài đặt trên Linux, Windows, MacOS và FreeBSD. Công cụ này cho phép chúng ta khám phá tất cả các cấu hình, hiệu suất, kiểm tra bảo mật, v.v. của các hệ điều hành đó bằng các truy vấn dựa trên SQL.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập Giám sát toàn vẹn tệp (FIM) bằng osquery. Chúng tôi sẽ sử dụng hệ điều hành Linux Ubuntu 18.04 và CentOS 7.
Điều kiện tiên quyết
Thêm kho lưu trữ osquery và cài đặt gói.
Thêm và kích hoạt kho lưu trữ osquery, sau đó cài đặt gói.
Chờ tất cả các gói được cài đặt.
Lưu ý:
Nếu bạn gặp lỗi về lệnh yum-config-manager.
Cài đặt gói 'yum-utils'.
Trong bước này, chúng tôi sẽ kích hoạt syslog consumption cho osquery thông qua rsyslog.
Sau khi cài đặt hoàn tất, hãy chuyển đến thư mục '/etc/rsyslog.d' và tạo tệp cấu hình mới osquery.conf.
Dán cấu hình sau vào đó.
Lưu và thoát.
Trong bước này, chúng ta sẽ tìm hiểu về các thành phần cấu hình osquery, tạo cấu hình osquery tùy chỉnh, sau đó triển khai osqueryd dưới dạng dịch vụ.
Cấu hình osquery được định dạng dưới dạng tệp JSON chứa các thông số cấu hình osquery được mô tả bên dưới.
Dán các cấu hình sau vào đó.
Lưu và thoát.
Lưu ý:
Và khởi động lại dịch vụ rsyslog.
Cấu hình osquery cơ bản đã hoàn tất.
Trong bước này, chúng ta sẽ cấu hình osquery để theo dõi các thư mục quan trọng như home, thư mục ssh, v.v., tmp và thư mục gốc web www bằng các gói FIM tùy chỉnh.
Đi tới thư mục '/usr/share/osquery/packs' và tạo tệp cấu hình gói mới 'fim.conf'.
Dán các cấu hình bên dưới.
Lưu và thoát.
Bây giờ quay lại thư mục cấu hình '/etc/osquery' và chỉnh sửa tệp osquery.conf.
Thêm cấu hình gói Giám sát toàn vẹn tệp vào phần 'packs'.
Lưu và thoát, sau đó khởi động lại dịch vụ osqueryd.
Lưu ý:
Tiếp tục kiểm tra tệp cấu hình JSON bằng trình kiểm tra JSON 'http://jsonlint.com/' và đảm bảo không có lỗi.
Đi tới thư mục '/var/www/' và tạo một tệp mới có tên 'howtoforge.md'.
Đi đến thư mục '/home/youruser/' và tạo một tệp mới có tên 'hakase-labs.md'.
Bây giờ chúng ta sẽ kiểm tra tất cả các bản ghi giám sát bằng chế độ tương tác thời gian thực osqueryi và các bản ghi kết quả osquery.
Bây giờ hãy kiểm tra tất cả các bản ghi về các thay đổi tệp trong bảng 'file_events'.
Đối với các thay đổi toàn cục.
Đối với thư mục 'home'.
Đối với thư mục gốc web 'www'.
Lọc nhật ký osquery bằng lệnh 'grep'.
Bạn sẽ thấy thông tin về các tệp đó đã được tạo.
Việc cài đặt và cấu hình Giám sát toàn vẹn tệp (FIM) trên Máy chủ Linux Ubuntu và CentOS bằng osquery đã hoàn tất thành công.
Osquery là một phần mềm đa nền tảng, có thể được cài đặt trên Linux, Windows, MacOS và FreeBSD. Công cụ này cho phép chúng ta khám phá tất cả các cấu hình, hiệu suất, kiểm tra bảo mật, v.v. của các hệ điều hành đó bằng các truy vấn dựa trên SQL.
Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách thiết lập Giám sát toàn vẹn tệp (FIM) bằng osquery. Chúng tôi sẽ sử dụng hệ điều hành Linux Ubuntu 18.04 và CentOS 7.
Điều kiện tiên quyết
- Linux (Ubuntu hoặc CentOS)
- Quyền root
- Hoàn thành hướng dẫn osquery đầu tiên
Những việc chúng tôi sẽ làm
- Cài đặt osquery trên máy chủ Linux
- Bật Syslog Consumption cho osquery
- Cấu hình osquery cơ bản
- Cấu hình giám sát tính toàn vẹn của tệp osquery
- Kiểm tra
Bước 1 - Cài đặt osquery trên máy chủ Linux
Osquery cung cấp kho lưu trữ riêng cho tất cả các nền tảng cài đặt và bước đầu tiên chúng ta sẽ làm là cài đặt gói osquery TỪ kho lưu trữ osquery chính thức.Trên Ubuntu
Thêm khóa osquery vào hệ thống.
Mã:
export OSQUERY_KEY=1484120AC4E9F8A1A577AEEE97A80C63C9D8B80B
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys $OSQUERY_KEY
Mã:
sudo add-apt-repository 'deb [arch=amd64] https://pkg.osquery.io/deb deb main'
sudo apt install osquery -y
Trên CentOS
Thêm khóa osquery vào hệ thống.
Mã:
curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
Mã:
sudo yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
sudo yum-config-manager --enable osquery-s3-rpm
sudo yum install osquery -y
Lưu ý:
Nếu bạn gặp lỗi về lệnh yum-config-manager.
Mã:
sudo: yum-config-manager: command not found
Mã:
yum -y install yum-utils
Bước 2 - Kích hoạt Syslog Consumption trong osquery
Osquery cung cấp các tính năng để đọc hoặc sử dụng nhật ký hệ thống trên Apple MacOS bằng Apple System Log (ASL) và đối với Linux là sử dụng syslog.Trong bước này, chúng tôi sẽ kích hoạt syslog consumption cho osquery thông qua rsyslog.
Trên Ubuntu
Cài đặt gói rsyslog bằng lệnh apt bên dưới.
Mã:
sudo apt install rsyslog -y
Trên CentOS
Cài đặt gói rsyslog bằng lệnh yum bên dưới.
Mã:
sudo yum install rsyslog -y
Mã:
cd /etc/rsyslog.d/
vim osquery.conf
Mã:
template( name="OsqueryCsvFormat" type="string" string="%timestamp:::date-rfc3339,csv%,%hostname:::csv%,%syslogseverity:::csv%,%syslogfacility-text:::csv%,%syslogtag:::csv%,%msg:::csv%\n")*.* action(type="ompipe" Pipe="/var/osquery/syslog_pipe" template="OsqueryCsvFormat")
Bước 3 - Cấu hình cơ bản của osquery
Cấu hình mặc định của osquery là 'osquery.conf', thường nằm trong thư mục '/etc/osquery'. Có các mẫu cấu hình osquery '/usr/share/osquery/osquery.conf' và mẫu cấu hình gói osquery.Trong bước này, chúng ta sẽ tìm hiểu về các thành phần cấu hình osquery, tạo cấu hình osquery tùy chỉnh, sau đó triển khai osqueryd dưới dạng dịch vụ.
Cấu hình osquery được định dạng dưới dạng tệp JSON chứa các thông số cấu hình osquery được mô tả bên dưới.
- Tùy chọn: một phần của lệnh CLI osqueryd và lệnh này xác định ứng dụng bắt đầu và khởi tạo.
- Lịch trình: Xác định luồng tên truy vấn được lên lịch đến các chi tiết truy vấn.
- Decorators: Được sử dụng để thêm "decorations" bổ sung vào kết quả và nhật ký ảnh chụp nhanh.
- Packs: một nhóm các truy vấn lên lịch.
- Thêm: Đường dẫn tệp, YARA, Prometheus, Chế độ xem, EC2, Cấu hình Chef.
Mã:
cd /etc/osquery/
vim osquery.conf
Mã:
{ "options": { "config_plugin": "filesystem", "logger_plugin": "filesystem", "logger_path": "/var/log/osquery", "disable_logging": "false", "log_result_events": "true", "schedule_splay_percent": "10", "pidfile": "/var/osquery/osquery.pidfile", "events_expiry": "3600", "database_path": "/var/osquery/osquery.db", "verbose": "false", "worker_threads": "2", "enable_monitor": "true", "disable_events": "false", "disable_audit": "false", "audit_allow_config": "true", "host_identifier": "hakase-labs", "enable_syslog": "true", "syslog_pipe_path": "/var/osquery/syslog_pipe", "force": "true", "audit_allow_sockets": "true", "schedule_default_interval": "3600" }, "schedule": { "crontab": { "query": "CHỌN * TỪ crontab;", "interval": 300 }, "system_info": { "query": "CHỌN tên máy chủ, nhãn hiệu cpu, bộ nhớ vật lý TỪ system_info;", "interval": 3600 }, "ssh_login": { "query": "CHỌN tên người dùng, thời gian, máy chủ TỪ lần cuối NƠI type=7", "interval": 360 } }, "decorators": { "load": [ "CHỌN uuid LÀ host_uuid TỪ system_info;", "CHỌN người dùng LÀM tên người dùng TỪ logged_in_users SẮP XẾP THEO thời gian GIẢM DẦN GIỚI HẠN 1;" ] }, "packs": { "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf" }}
Lưu ý:
- Chúng tôi đang sử dụng 'filesystem' làm plugin cấu hình và ghi nhật ký.
- Xác định đường dẫn ghi nhật ký đến thư mục '/var/log/osquery'.
- Bật pip syslog đến tệp '/var/syslog/syslog_pipe'.
- Trên trình lập lịch, chúng tôi xác định ba truy vấn để kiểm tra crontab, thông tin hệ thống và đăng nhập ssh.
- Bật các gói osquery có tên 'osquery-monitoring' và các tệp gói nằm tại thư mục '/usr/share/osquery/packs'.
Mã:
systemctl start osqueryd
systemctl enable osqueryd
Mã:
systemctl restart rsyslog
Bước 4 - Cấu hình Giám sát toàn vẹn tệp (FIM) bằng osquery
Osquery cung cấp Giám sát toàn vẹn tệp trên Linux và MacOS Darwin bằng cách sử dụng inotify và FSEvents. Đơn giản, nó theo dõi và phát hiện bất kỳ thay đổi nào của các tệp trên thư mục được xác định bằng cách sử dụng 'file_path' và sau đó lưu trữ tất cả hoạt động vào bảng file_events.Trong bước này, chúng ta sẽ cấu hình osquery để theo dõi các thư mục quan trọng như home, thư mục ssh, v.v., tmp và thư mục gốc web www bằng các gói FIM tùy chỉnh.
Đi tới thư mục '/usr/share/osquery/packs' và tạo tệp cấu hình gói mới 'fim.conf'.
Mã:
cd /usr/share/osquery/packs
vim fim.conf
Mã:
{ "queries": { "file_events": { "query": "SELECT * FROM file_events;", "removed": false, "interval": 300 } }, "file_paths": { "homes": [ "/root/.ssh/%%", "/home/%/.ssh/%%" ], "etc": [ "/etc/%%" ], "home": [ "/home/%%" ], "tmp": [ "/tmp/%%" ], "www": [ "/var/www/%%" ] }}
Bây giờ quay lại thư mục cấu hình '/etc/osquery' và chỉnh sửa tệp osquery.conf.
Mã:
cd /etc/osquery/
vim osquery.conf
Mã:
"packs": { "osquery-monitoring": "/usr/share/osquery/packs/osquery-monitoring.conf", "fim": "/usr/share/osquery/packs/fim.conf" }
Lưu và thoát, sau đó khởi động lại dịch vụ osqueryd.
Mã:
systemctl restart osqueryd
Lưu ý:
Tiếp tục kiểm tra tệp cấu hình JSON bằng trình kiểm tra JSON 'http://jsonlint.com/' và đảm bảo không có lỗi.
Bước 5 - Kiểm tra
Chúng tôi sẽ kiểm tra các gói Giám sát tính toàn vẹn của tệp bằng cách tạo một tệp mới trên thư mục đã xác định 'home' và 'www'.Đi tới thư mục '/var/www/' và tạo một tệp mới có tên 'howtoforge.md'.
Mã:
cd /var/www/
touch howtoforge.md
Mã:
cd /home/vagrant/
touch hakase-labs.md
osqueryi
Chạy lệnh osqueryi bên dưới.
Mã:
osqueryi --config-path /etc/osquery/osquery.conf
Đối với các thay đổi toàn cục.
Mã:
select * from file_events;
Mã:
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="home";
Mã:
select target_path, category, action, atime, ctime, mtime from file_events WHERE category="www";
nhật ký kết quả osqueryd
Đi tới thư mục '/var/log/osquery' và bạn sẽ nhận được tệp 'osqueryd.results.log'.
Mã:
cd /var/log/osquery/
ls -lah osqueryd.results.log
Mã:
grep -rin howtoforge.md osqueryd.results.log
grep -rin hakase-labs.md osqueryd.results.log
Việc cài đặt và cấu hình Giám sát toàn vẹn tệp (FIM) trên Máy chủ Linux Ubuntu và CentOS bằng osquery đã hoàn tất thành công.