#sql-query #osquery #execute #thrift #api #version #extension

osquery-rs

此包允许您使用 osquery Thrift API 执行 osquery SQL 查询

2 个版本

0.1.3 2022 年 12 月 10 日
0.1.2 2022 年 7 月 6 日

#4 in #osquery

MIT/Apache

105KB
2.5K SLoC

osquery-rs

此包允许您使用 osquery Thrift API 执行 osquery SQL 查询。您可以使用以下方法之一执行 osquery SQL 查询:

  • 连接到现有 osquery 实例的扩展套接字

  • 启动自己的 osquery 实例并与其实例的扩展套接字通信

目前这个包只在 Linux 上工作。我仍在开发 Windows 版本。

用法

  • 将其添加到您的依赖项

    [dependencies]
    osquery-rs = { git = "https://github.com/AbdulRhmanAlfaifi/osquery-rs"}
    
  • 开始执行查询!

示例

连接到现有 osquery 实例的扩展套接字

use osquery_rs::OSQuery;

fn main () {
    let res = OSQuery::new()
            .set_socket("/home/root/.osquery/shell.em")
            .query(String::from("select * from time"))
            .unwrap();
    println!("{:#?}", res);
}

启动自己的 osquery 实例(独立模式)

use osquery_rs::OSQuery;

fn main() {
    let res = OSQuery::new()
        // Specify the path to the osquery binary
        .spawn_instance("./osqueryd")
        .unwrap()
        .query(String::from("select * from time"))
        .unwrap();
    println!("{:#?}", res);
}

默认套接字路径为 /tmp/osquery-rs,您可以通过调用函数 set_socket 来更改它

use osquery_rs::OSQuery;

fn main() {
    let res = OSQuery::new()
        .set_socket("/tmp/mysocket")
        // Specify the path to the osquery binary
        .spawn_instance("./osqueryd")
        .unwrap()
        .query(String::from("select * from time"))
        .unwrap();
    println!("{:#?}", res);
}

依赖项

~0.7–1MB
~18K SLoC