osquery
osquery是一个由FaceBook开源用于对系统进行查询、监控以及分析的一款软件。它将操作系统当作是一个关系型数据库,使用SQL语句的方式去查询操作系统中的信息,OSQUERY是运行于操作系统层面的监测工具,唯一不足的地方官网没有提供管控平台,因此需要和Kolide fleet结合使用。
官网地址:https://osquery.io
安装流程
1)下载安装yum源和包1
2rpm -ivh https://osquery-packages.s3.amazonaws.com/centos7/noarch/osquery-s3-centos7-repo-1-0.0.noarch.rpm
yum install –y osquery.x86_64
或者直接到官网下载最新的安装包 https://osquery.io/downloads1
2tar zxvf osquery-4.1.2_1.linux_x86_64.tar.gz -C /
cd /usr/local && cp -af lib bin share /usr
或者安装官网命令安装1
2
3
4curl -L https://pkg.osquery.io/rpm/GPG | sudo tee /etc/pki/rpm-gpg/RPM-GPG-KEY-osquery
yum-config-manager --add-repo https://pkg.osquery.io/rpm/osquery-s3-rpm.repo
yum-config-manager --enable osquery-s3-rpm
yum install -y osquery
2)复制配置文件1
cp /usr/share/osquery/osquery.example.conf /etc/osquery/osquery.conf
3)启动服务1
systemctl start osqueryd
4)进行交互模式1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17osqueryi
.help #查看命令
.table #查看所有表 表的含义到 https://osquery.io/schema
select * from system_info; #查看系统信息
select * from os_version; #查看OS版本
SELECT * FROM kernel_info; #查看内核信息版本
select * from memory_info; #内存信息
select * from users; #查询用户信息
select * from crontab; #检查计划任务
osquery日志存放在/var/log/osquery
目录下,在该目录下有三个文件osqueryd.INFO
osquery后台运行日志记录表osqueryd.results.log
记录有差异的查询结果osqueryd.snapshots.log
记录所有的查询结果
osquery配置文件在/etc/osquery/osquery.conf
其中Options
是记录osquery daemon的一些配置,日志产生路径、线程数等Schedule
设置定时任务Packs
规则,可以去掉注释启动它们
osquery在windows平台的攻击框架 https://github.com/teoseller/osquery-attck
osquery在Linux平台的攻击框架 https://github.com/grayddq/HIDS
Kolide fleet
Kolide Fleet是为安全专家量身打造的最先进的主机监控平台。利用Facebook久经考验的osquery项目。
官网地址:https://kolide.com/fleet
github下载地址:https://github.com/kolide/fleet/releases
1)安装MySQL1
2
3
4
5
6
7
8
9
10wget https://repo.mysql.com/mysql80-community-release-el7-1.noarch.rpm
rpm -ivh mysql80-community-release-el7-1.noarch.rpm
yum update -y
yum install -y mysql-community-server.x86_64 mysql-community-client.x86_64
systemctl start mysqld
cat /var/log/mysqld.log #查看默认密码
mysql -uroot -p
alter user "root"@"localhost" identified by "Root1234!"; #修改密码
create database kolide; #创建kolide数据库
开始默认登录密码
2)安装redis1
2
3
4
5
6wget http://download.redis.io/redis-stable.tar.gz
tar zxf redis-stable.tar.gz
cd redis-stable
make && make install
cp redis.conf /etc/redis.conf
redis-server /etc/redis.conf
3)安装kolide1
2
3
4
5
6
7
8
9wget https://github.com/kolide/fleet/releases/fleet.zip
unzip fleet.zip 'linux/*' -d fleet #只解压linux目录并放在fleet目录下
拷贝执行命令到bin目录
cp fleet/linux/fleet /usr/bin/fleet
cp fleet/linux/fleetctl /usr/bin/fleetctl
连接数据库
/usr/bin/fleet prepare db --mysql_address=127.0.0.1:3306 --mysql_database=kolide --mysql_username=root --mysql_password=Root1234!
4)配置证书1
2
3
4
5openssl genrsa -out /etc/pki/tls/private/server.key 4096
openssl req -new -key /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.csr
openssl x509 -req -days 366 -in /etc/pki/tls/certs/server.csr -signkey /etc/pki/tls/private/server.key -out /etc/pki/tls/certs/server.cert
5)创建日志目录1
mkdir /var/log/kolide
6)启动服务1
2
3
4
5
6
7
8
9
10
11/usr/bin/fleet serve \
--mysql_address=127.0.0.1:3306 \
--mysql_database=kolide \
--mysql_username=root \
--mysql_password=Root1234! \
--redis_address=127.0.0.1:6379 \
--server_cert=/etc/pki/tls/certs/server.cert \
--server_key=/etc/pki/tls/private/server.key \
--logging_json \
--osquery_result_log_file=/var/log/kolide/osquery_result \
--osquery_status_log_file=/var/log/kolide/osquery_status
第一次执行命令时,会让我们使用参数--auth_jwt_key
进行认证,并给出一串key,然后再上面的命令最后,加上这个参数,并附上key1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22################################################################################
# ERROR:
# A value must be supplied for --auth_jwt_key. This value is used to create
# session tokens for users.
#
# Consider using the following randomly generated key:
# vtvebzgq40nnPqqBq6CwrALwcsRrTDi1
################################################################################
/usr/bin/fleet serve \
--mysql_address=127.0.0.1:3306 \
--mysql_database=kolide \
--mysql_username=root \
--mysql_password=Root1234! \
--redis_address=127.0.0.1:6379 \
--server_cert=/etc/pki/tls/certs/server.cert \
--server_key=/etc/pki/tls/private/server.key \
--logging_json \
--osquery_result_log_file=/var/log/kolide/osquery_result \
--osquery_status_log_file=/var/log/kolide/osquery_status \
--auth_jwt_key=vtvebzgq40nnPqqBq6CwrALwcsRrTDi1
启动后使用浏览器登录对应ip地址 https://IP:8080
设置新的用户和密码登录
7)添加主机和创建密钥
在页面上添加主机找到密钥复制都配置文件中1
echo 's6bpmJukzhksdYJGp11xU6YodVNzE9l0' > /var/osquery/enroll_secret
8)配置证书,证书下载位置如图,下载完成后进行改名1
mv 192.168.161.150_8080.pem /var/osquery/server.pem
9)重新执行osqueryd服务1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18/usr/bin/osqueryd \
--enroll_secret_path=/var/osquery/enroll_secret \
--tls_server_certs=/var/osquery/server.pem \
--tls_hostname=192.168.161.150:8080 \
--host_identifier=hostname \
--enroll_tls_endpoint=/api/v1/osquery/enroll \
--config_plugin=tls \
--config_tls_endpoint=/api/v1/osquery/config \
--config_tls_refresh=10 \
--disable_distributed=false \
--distributed_plugin=tls \
--distributed_interval=3 \
--distributed_tls_max_attempts=3 \
--distributed_tls_read_endpoint=/api/v1/osquery/distributed/read \
--distributed_tls_write_endpoint=/api/v1/osquery/distributed/write \
--logger_plugin=tls \
--logger_tls_endpoint=/api/v1/osquery/log \
--logger_tls_period=10
现在页面上显示被监控的主机信息 点击右上角可以查询主机的信息