如何远程执行 SQL-query 到 osquery?

How to execute a SQL-query to osquery remotely?

我发现 osquery 可以在交互模式 (osqueryi) 和守护进程模式 (osqueryd) 下工作,它会在本地主机的后台定期执行 SQL 查询。 SQL 查询的远程执行如何 - 例如,REST 服务或 JDBC-驱动程序?

当 osquery 运行 处于守护进程模式时,您可以启用 distributed query facilities。启用后,osqueryd 将定期检查远程服务器以查看是否有要执行的查询(此检查的典型间隔范围为 10 秒到 1 分钟)。

请注意,由于 osquery 运行环境的性质,osquery 代理不侦听传入连接。它只会与远程服务器建立传出连接以检查要执行的查询。

要利用这一点,您需要一个实现 osquery 远程 API 的服务器。有一些可用的开源选项:

Fleet(免责声明:我构建了这个)

Zentral

Doorman

SGT

安全说明:在 osquery 代理上提供远程执行可能非常危险,因为它可以在其运行的设备上检索敏感信息。如果您计划提供某种允许直接查询您的代理的网页,请注意,由于 osquery 提供了您系统的 SQL 抽象,它可能容易受到 injections 的攻击。