差分osquery查询输出到“ catchall”主题

时间:2019-10-14 21:48:00

标签: apache-kafka osquery

我正在使用osquery来监视网络上的服务器。以下osquery.conf每分钟捕获通过网络端口进行通信的进程的快照,并将该数据发布到Kafka:

{
  "options": {
    "logger_kafka_brokers": "cp01.woolford.io:9092,cp02.woolford.io:9092,cp03.woolford.io:9092",
    "logger_kafka_topic": "base_topic",
    "logger_kafka_acks": "1"
  },
  "packs": {
    "system-snapshot": {
      "queries": {
        "processes_by_port": {
          "query": "select u.username, p.pid, p.name, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port from processes p join users u on u.uid = p.uid join process_open_sockets pos on pos.pid=p.pid where pos.remote_port != '0'",
          "interval": 60,
          "snapshot": true
        }
      }
    }
  },
  "kafka_topics": {
    "process-port": [
      "pack_system-snapshot_processes_by_port"
    ]
  }
}

这是查询输出的示例:

osquery> select u.username, p.pid, p.name, pos.local_address, pos.local_port, pos.remote_address, pos.remote_port from processes p join users u on u.uid = p.uid join process_open_sockets pos on pos.pid=p.pid where pos.remote_port != '0';
+--------------------+-------+---------------+------------------+------------+------------------+-------------+
| username           | pid   | name          | local_address    | local_port | remote_address   | remote_port |
+--------------------+-------+---------------+------------------+------------+------------------+-------------+
| cp-kafka-connect   | 13646 | java          | 10.0.1.41        | 49018      | 10.0.1.41        | 9092        |
| cp-kafka-connect   | 13646 | java          | 10.0.1.41        | 49028      | 10.0.1.41        | 9092        |
| cp-kafka-connect   | 13646 | java          | 10.0.1.41        | 49026      | 10.0.1.41        | 9092        |
| cp-kafka-connect   | 13646 | java          | 10.0.1.41        | 50558      | 10.0.1.43        | 9092        |
| cp-kafka-connect   | 13646 | java          | 10.0.1.41        | 50554      | 10.0.1.43        | 9092        |
| cp-kafka-connect   | 13646 | java          | 10.0.1.41        | 49014      | 10.0.1.41        | 9092        |
| root               | 1505  | sssd_be       | 10.0.1.41        | 46436      | 10.0.1.89        | 389         |
...
| cp-ksql            | 1757  | java          | 10.0.1.41        | 56180      | 10.0.1.41        | 9092        |
| cp-ksql            | 1757  | java          | 10.0.1.41        | 53878      | 10.0.1.43        | 9092        |
| root               | 19684 | sshd          | 10.0.1.41        | 22         | 10.0.1.53        | 50238       |
| root               | 24082 | sshd          | 10.0.1.41        | 22         | 10.0.1.53        | 51233       |
| root               | 24107 | java          | 10.0.1.41        | 56052      | 10.0.1.41        | 9092        |
| root               | 24107 | java          | 10.0.1.41        | 56054      | 10.0.1.41        | 9092        |
| cp-schema-registry | 24694 | java          | 10.0.1.41        | 50742      | 10.0.1.31        | 2181        |
| cp-schema-registry | 24694 | java          | 10.0.1.41        | 47150      | 10.0.1.42        | 9093        |
| cp-schema-registry | 24694 | java          | 10.0.1.41        | 58068      | 10.0.1.41        | 9093        |
| cp-schema-registry | 24694 | java          | 10.0.1.41        | 47152      | 10.0.1.42        | 9093        |
| root               | 25782 | osqueryd      | 10.0.1.41        | 57700      | 10.0.1.43        | 9092        |
| root               | 25782 | osqueryd      | 10.0.1.41        | 56188      | 10.0.1.41        | 9092        |
+--------------------+-------+---------------+------------------+------------+------------------+-------------+

我希望osquery而不是快照来捕获差异,即仅将更改发布到Kafka。

我尝试将快照属性从true切换为false。我的期望是osquery将发送更改。由于某些原因,当我设置"snapshot": false时,没有数据发布到process-port主题。而是将所有数据路由到综合base_topic

您能看到我在做什么吗?

更新:

我认为我遇到了这个错误:https://github.com/osquery/osquery/issues/5559

以下是视频演示:https://youtu.be/sPdlBBKgJmY

我提交了一个错误报告,其中包含重现步骤,以防出现不同的问题:https://github.com/osquery/osquery/issues/5890

1 个答案:

答案 0 :(得分:0)

鉴于上下文,我无法立即说出是什么原因导致了您遇到的问题。

为了进行调试,我首先尝试使用filesystem记录器插件来代替(或除了)Kafka记录器。

将查询配置为快照时,是否会得到有关Kafka主题的结果?如果是这样,您是否可以验证结果是否确实在更改,以便在差异模式下运行查询时应生成差异?

使用--logger_plugin=filesystem,kafka时可以看到本地记录的结果吗?