0

我正在使用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。

我尝试将快照属性从真切换为假。我的期望是 osquery 会发送更改。出于某种原因,当我设置 时"snapshot": false,没有数据发布到process-port主题。相反,所有数据都被路由到 catchall base_topic

你能看出我做错了什么吗?

更新:

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

这是一个视频演练:https ://youtu.be/sPdlBBKgJmY

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

4

1 回答 1

0

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

为了调试这个,我会首先尝试使用filesystem记录器插件而不是(或除了)Kafka记录器。

将查询配置为快照时,您是否获得 Kafka 主题的结果?如果是这样,您是否能够验证结果是否实际发生变化,以便在查询以差异模式运行时生成差异?

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

于 2019-10-15T00:00:51.710 回答