Splunk

资源下载

Splunk 控制台插件下载

添加新的日志类型

注意: 如果你安装了的控制台应用,请跳过此步骤。因为安装控制台插件会自动增加 openrasp 日志类型

找到 $SPLUNK_HOME/etc/system/local/props.conf, 没有就创建一个。

在这个文件里,添加如下内容,并重启 Splunk 服务器以生效

  1. [openrasp]
  2. BREAK_ONLY_BEFORE = \d\d?:\d\d:\d\d
  3. SEDCMD-StripHeader = s/^[^{]+//
  4. KV_MODE = json
  5. pulldown_type = true
  6. # Change the default maximum line length (in bytes)
  7. TRUNCATE = 320000

上述配置添加了一个名为 openrasp 的日志类型,格式为 JSON,单行最大长度 320000 字符

安装控制台应用

打开 Splunk 首页,左上角菜单,点击 App -> Manage Apps -> Install app from file

点击浏览文件,选中刚才下载的插件,然后勾选 Upgrade app. Checking this will overwrite the app if it already exists 选项,点击上传

Alt text

安装成功后,会在首页看到 RASP 应用,

Alt text

数据导入

导入测试数据

如果你只是想了解下我们的 Splunk 控制台插件,你可以直接导入上面下载的 报警日志样例

在 Splunk 界面里,在右上角点击 Settings -> Data Inputs,然后选择 Local inputs -> Files & directories,然后选择 New,进入本地日志导入界面。在这里输入你下载的 alarm.log 的路径,比如 /tmp/alarm.log,点击 Next

log type

日志类型选择 openrasp,点击 Review,然后点击 Submit 提交即可。

log type

最后回到 RASP 应用,就可以看到结果了。由于我们的日志时间戳是当天的,所以不用调整时间范围就可以看到日志。

log type

删除测试数据

在 Splunk 界面里,在右上角点击 Settings -> Access Controls,然后选择 Users -> admin,进入权限编辑界面

log type

点击增加 can_delete 权限,翻到最下面点击 Save 保存。

然后回到 Search & Reporting 应用,输入 * | delete 语句以删除索引数据。

log type

删除后,可尝试重新检索,以确认数据已经全部删除

线上数据

如果你打算在线上部署,你需要使用 Syslog TCP 方式采集报警数据。配置分为两个步骤

  • 配置 Splunk,增加一个 Syslog/514 TCP 数据来源
  • 配置 OpenRASP agent,将日志发送到上述服务器
    配置 Splunk

首先,我们来添加 Syslog TCP/514 端口 日志来源。

和导入本地日志类似,点击右上角的 Settings -> DATA -> Data Inputs,然后选择 TCP 类型,并点击 NEW 进入配置界面。在这里,我们输入监听端口,即 514

log type

选择日志类型时,依然是 openrasp。接着点击 Review,然后点击 Submit 保存即可。

log type

当服务器收到日志,就可以在界面上查看了

log type

配置 OpenRASP agent

默认情况下,OpenRASP 会输出报警信息到日志中,具体内容和文件路径,请参考 日志说明。对于不同的语言,你需要参考不同的配置文档进行配置

1. Syslog UDP 方式日志截断问题

如果你使用 Syslog UDP 方式采集日志,那么单条日志长度将被限制为 1KB。由于我们的报警日志通常在 2~3 KB,所以会导致报警日志截断

2. 界面上看不到日志

请按照如下步骤进行排查

  • OpenRASP 是否产生报警日志?
    • 检查 <app_home>/rasp/logs/alarm.log 是否有报警?
  • OpenRASP 是否将日志发给 Syslog 服务器?
    • 使用 wireshark/tcpdump 抓包分析
  • Splunk 是否能收到数据?
    • 在应用服务器上,检查 Splunk 端口是否可连接?
    • 使用 linux logger 命令,模拟发送一条日志到 splunk,splunk 是否能收到?
      • e.g logger -n X.X.X.X -T -P 514 '{"hello":"world123"}'
  • Splunk 有日志,但是 OpenRASP app 看不到数据
    • 使用默认的搜索应用,看是否能搜到数据?
    • 检查搜索时间范围是否正确?

原文: https://rasp.baidu.com/doc/install/siem/splunk.html