关于Osctrl
Osctrl是一款快速高效的Osquery安全管理工具,在该工具的帮助下,广大研究人员可以轻松监控所有运行 osquery 的系统,快速分发其配置,收集所有状态和结果日志,并允许我们执行按需查询。
功能介绍
1、监控所有运行 osquery 的系统;
2、在所有注册节点上快速分发 osquery 配置;
3、收集所有状态和结果日志,支持存储它们或是将它们转发到不同的系统(Splunk,ELK,Kafka,Graylog ......);
4、在选择的注册节点中运行准实时按需查询;
5、从注册的节点中获取文件或目录;
工具架构&组件
工具安装
广大研究人员可以直接使用下列命令将该项目源码克隆至本地:
git clone https://github.com/jmpsec/osctrl.git
然后切换到项目目录中,使用项目提供的provision.sh脚本安装和部署工具所需的其他依赖组件,并使用自签名证书完成工具部署:
./deploy/provision.sh -m dev -s /path/to/code --nginx --postgres --redis -p all --all-hostname "dev.osctrl.net" -E
工具配置
工具服务组件分别为osctrl-tls和osctrl-admin,配置文件分别为tls.json和admin.json,配置文件格式模板如下:
{ "_SERVICE_NAME": { "listener": "_LISTENER", "port": "_SERVICE_PORT", "host": "_SERVICE_HOST", "auth": "_SERVICE_AUTH", "logger": "_SERVICE_LOGGING", "carver": "_SERVICE_CARVER" } }
配置完成后,执行下列命令导入lib.sh:
source deploy/lib.sh
现在就可以调用configuration_service函数来测试了:
configuration_service "deploy/service.json" "admin.json" "localhost|9001" "admin" "0.0.0.0" "db" "db"
后端服务组件配置模板如下:
{ "db": { "host": "_DB_HOST", "port": "_DB_PORT", "name": "_DB_NAME", "username": "_DB_USERNAME", "password": "_DB_PASSWORD", "max_idle_conns": 20, "max_open_conns": 100, "conn_max_lifetime": 30 } }
工具使用
./bin/osctrld -h NAME: osctrld - Daemon for osctrl, the fast and efficient osquery management USAGE: osctrld [global options] command [command options] [arguments...] VERSION: 1.0.0 DESCRIPTION: Daemon for osctrl, the fast and efficient osquery management, to manage secret, flags and osquery deployment COMMANDS: enroll Enroll a new node in osctrl, using new secret and flag files remove Remove enrolled node from osctrl, clearing secret and flag files verify Verify flags, cert and secret for an enrolled node in osctrl flags Retrieve flags for osquery from osctrl and write them locally cert Retrieve server certificate for osquery from osctrl and write it locally help, h Shows a list of commands or help for one command GLOBAL OPTIONS: --certificate FILE,-C FILE:如果需要,使用 FILE 作为 osquery 的证书。默认值取决于操作系统 [$OSQUERY_CERTIFICATE] --configuration 值,-c 值,--conf 值,--config 值:osctrld 的配置文件,用于加载所有必要的值 [$OSCTRL_CONFIG] --environment 值,-e 值,--env 值:osctrl 中的环境到已注册的节点 [$OSCTRL_ENV] --flagfile FILE,-F FILE:使用 FILE 作为 osquery 的标志文件。默认值取决于操作系统 [$OSQUERY_FLAGFILE] --force, -f:覆盖现有的标志、证书和机密文件(默认值:false)[$OSCTRL_FORCE] --help, -h:显示帮助(默认值:false) --insecure, -i:忽略 TLS 警告,通常与自签名证书一起使用(默认值:false)[$OSCTRL_INSECURE] --osctrl-url value, -U value osctrl:服务器的基本 URL [$OSCTRL_URL] --osquery-path FILE, --osquery FILE, -o FILE:如果需要,使用 FILE 作为 osquery 安装的路径。默认值取决于操作系统 [$OSQUERY_PATH] --secret value, -s value:注册机密以对 osctrl 服务器进行身份验证 [$OSCTRL_SECRET] --secret-file FILE, -S FILE:使用 FILE 作为 osquery 的机密文件。默认值取决于操作系统 [$OSQUERY_SECRET] --verbose, -V:启用详细参考消息(默认值:false) [$OSCTRL_VERBOSE] --version, -v:打印版本(默认值:false)
许可证协议
本项目的开发与发布遵循MIT开源许可协议。
项目地址
Osctrl:【GitHub传送门】
参考资料
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022