【问题标题】:How to execute a SQL-query to osquery remotely?如何远程执行对 osquery 的 SQL 查询?
【发布时间】:2019-06-19 19:30:55
【问题描述】:

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

【问题讨论】:

    标签: osquery


    【解决方案1】:

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

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

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

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

    Zentral

    Doorman

    SGT

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

    【讨论】:

    • 感谢您的精彩回答。但很遗憾,对于简单的远程 api,我将不得不安装许多依赖项——MySQL、Redis 等。最后我为简单的 http 包装器编写了一个 python 脚本——gist.github.com/mgramin/0dd3872813047a27886d387a188781cd
    • 太棒了!该 API 存在于 osquery 中,因此您可以以任何您认为合适的方式实现它:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-06
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多