Skip to main content

wzstudy-log

changelog

1.1.7.25

配置文件config.json梳理.

  • "WindowsSysProcs": [],

  • "LinuxSysProcs": [],

  • "WindowsAuthProcs": [],

  • "LinuxAuthProcs": [],

其中WindowsSysProcsLinuxSysProcs,分别针对windowslinux,添加额外自定义的系统进列表, 自定义列表将会和日志里的系统进程列表进行合并,然后对日志进行分析。 在这里添加的系统进程名将不会出现在授权文件中。

其中WindowsSysProcsLinuxSysProcs,分别针对windows和linux,添加额外自定义的授权进程, 在这里添加的系统进程名将会直接添加在授权文件中。

1.1.6.23

1.去掉授权文件中"programeStart"项

2.在分析任务完成的回调消息中增强msg的含义

    type NotofyReg struct {
Code int `json:"code"`
Job int `json:"job"`
Msg string `json:"msg"`
}

code为非0,表示分析任务失败,Msg返回失败的原因

code为0,表示分析任务失败,Msg返回额外的提示消息,如果没有额外提示消息那就返回为空字符串。

1.1.5.21:

  1. 授权文件中现在只会列出应用程序的根进程名的授权,其中"inherit"为true. 所谓应用程序的根进程名也就是一个日志的进程链中第一个非系统进程。 该根进程的子进程会继承相同的权限规则。

  2. 配置文件config.json增加2个配置项

    "WindowsSysProcs": [],

    "LinuxSysProcs": [],

    可以在这里添加额外自定义的系统进列表,自定义列表将会和日志里的系统进程列表进行合并,然后对日志进行分析。 在这里添加的系统进程名,如果在日志里的系统进程列表中不存在,那么就会出现在授权文件中,但"inherit"为false.

  3. 当一个应用程序的根进程名在分析日志中的PID发生了变化的时候,授权文件中会给出警告,也就是该进程名的授权项中的"programeStart"为true.


服务启动

启动方式,在解压后的目录下运行
#8091 为服务监听端口
./surseclog 8091 >> surseclog.log 2>&1 &

接口说明

1.提交Linux日志分析任务

接口名称: /studylog
POST
参数:
{
"logPath": "/surseclog/linux.log", // 待分析的linux日志文件
"rulePath": "/surseclog/out/config_linux.json", //生成的规则文件路径
"authPath": "/surseclog/out/regproc_linux.json", //生成的授权文件路径
"notifyUrl": "http://ip/:port/xxxx/xxxx" //接受任务完成通知的url
"sysProcs": "" //数组类型
"authProcs": "" //数组类型
}
返回:
{ "code":0, //任务提交状态 0-表示成功 其它表示失败
"job":10, //本次提交分析任务的的任务id
"msg":"" //错误说明
}

2.提交Windows日志分析任务

接口名称: /studylogw
POST
参数:
{
"logPath": "/surseclog/windows.log", // 待分析的windows日志文件
"rulePath": "/surseclog/out/config_windows.json", //生成的规则文件路径
"authPath": "/surseclog/out/regproc_windows.json", //生成的授权文件路径
"notifyUrl": "http://ip/:port/xxxx/xxxx" //接受任务完成通知的url
"sysProcs": "" //数组类型
"authProcs": "" //数组类型
}
返回:
{
"code":0, //任务提交状态 0-表示成功 其它表示失败
"job":10, //本次提交分析任务的的任务id
"msg":"" //错误说明
}

3.任务完成通知url

//任务返回通知url由接口1,2里提交的参数指定
//分析服务回通过该url通知提交者任务状态
POST
参数为
{
"code":0, //任务执行状态 0-表示成功 其它表示失败
"job":10, //本次完成的任务id
"msg":"" //任务执行结果说明
}

4.提交Linux日志ELK数据分析任务

接口名称: /studyelklog
POST
参数:
{
"elkURI": "http://192.168.8.20:9200", // 待分析的linux日志的ELK存放地址
"username": "xxxxxx", //elk登录用户名
"password": "xxxxxxxxx", //elk登录密码,目前是明文
"index": "xxxxxxx", //elk索引
"rulePath": "/logpolicy/out/config_linux.json", //生成的规则文件路径
"authPath": "/logpolicy/out/regproc_linux.json", //生成的授权文件路径
"sysProcs": [], //添加额外自定义的系统进列表,自定义列表将会和日志里的系统进程列表进行合并,然后对日志进行分析。
"authProcs": [], //在这里添加的系统进程名将会直接添加在授权文件中。
"notifyUrl": "http://ip/:port/xxxx/xxxx" //接受任务完成通知的url
}
返回:
{ "code":0, //任务提交状态 0-表示成功 其它表示失败
"job":10, //本次提交分析任务的的任务id
"msg":"" //错误说明
}

5.提交Windows日志ELK数据分析任务

接口名称: /studyelklogw
POST
参数:
{
"elkURI": "http://192.168.8.20:9200", // 待分析的linux日志的ELK存放地址
"username": "xxxxxx", //elk登录用户名
"password": "xxxxxxxxx", //elk登录密码,目前是明文
"index": "xxxxxxx", //elk索引
"rulePath": "/logpolicy/out/config_linux.json", //生成的规则文件路径
"authPath": "/logpolicy/out/regproc_linux.json", //生成的授权文件路径
"sysProcs": [], //添加额外自定义的系统进列表,自定义列表将会和日志里的系统进程列表进行合并,然后对日志进行分析。
"authProcs": [], //在这里添加的系统进程名将会直接添加在授权文件中。
"notifyUrl": "http://ip/:port/xxxx/xxxx" //接受任务完成通知的url
}
返回:
{
"code":0, //任务提交状态 0-表示成功 其它表示失败
"job":10, //本次提交分析任务的的任务id
"msg":"" //错误说明
}

水印溯源服务

1.提交水印提取任务

水印任务结构体
     DbType       string `json:"dbtype"`
DbIp string `json:"dbip"`
DbPort string `json:"dbport"`
Username string `json:"username"`
Password string `json:"password"`
DbName string `json:"dbname"`
TableName string `json:"tablename"`
FiledName []string `json:"fieldname"`
WaterMarkLen int `json:"watermarklen"`
NotifyUrl string `json:"notifyUrl"`
提交水印提取任务
地址     :/wmdect
方法 :POST
入参 :JOSN
{
"dbtype": "mysql", // 待提取水印的数据库类型 (见下面的说说明)
"dbip": "192.168.1.12", //待提取水印的数据库ip地址,或者文件地址 (见下面的说明)
"dbport": "3306", //待提取水印的数据库服务端口
"username": "root", //待提取水印的数据库用户名
"password": "123pass", //待提取水印的数据库用户名对应的密码
"dbname": "mydb", //待提取水印的数据库名称
"tablename": "mytable", //待提取水印的数据库内的表名
"fieldname": ["myfield1","myfield2"], //待提取水印的数据库表的字字段名数组列表
"watermarklen": 48, //待提取水印的字节数量 (48, 64 etc)
"notifyUrl": "http://ip:port/xxxx/xxxx" //接受任务完成通知的url
}
返回 :
{ "code":0, //任务提交状态 0-表示成功 其它表示失败
"job":10, //本次提交分析任务的的任务id
"msg":"" //错误说明
}
注意
  • dbtype待提取水印的数据库类型,目前支持mysql,oracle,sqlserver,postgresql,file这几种类型
  • 其中file类型比较特殊,对于当前不支持的数据库,可以在调用水印提取功能前把需要分析的数据库表的指定的某个字段导入到一个文本文件中,一个字段为一行。
  • 当dbtyp为file类型时,dbip为file的路径,该路径需要为一个跟分析服务所在主机的本地路径或者smb协议共享的的路径(也相当于本地路径)
  • 当dbtyp为file类型时,dbport、username、password、dbname、tablename、fieldname没有意义可以置为空。
  • watermarklen为水印数组的字节长度。
  • notifyUrl为提取提取任务完成后的通知反馈接口。

任务完成通知url

3.task接口
//任务返回通知url由接口1,2里提交的参数指定
//分析服务回通过该url通知提交者任务状态
POST
参数为
{
"code":0, //任务执行状态 0-表示成功 其它表示失败
"job":10, //本次完成的任务id
"msg":"", //任务失败原因说迷宫
"watermark":"xxxxxxxxxxxxxxxxxxxx" //返回的水印的hex串
}