云控后台接口文档

    请求体采用 json 格式,分页页码从 1 开始计数,分页请求格式如下所示:

    分页参数说明

    响应格式

    响应采用 json 格式,示例如下:

    1. "page": 1,
    2. "perpage": 10,
    3. "total": 1,
    4. "total_page": 1,
    5. "status":0,
    6. "description":"ok",
    7. "data":{
    8. "version":"official-101"
    9. }
    10. }

    参数说明

    参数说明
    page当前页码
    perpage当前每页数量
    total数据共有多少条
    total_page数据共有多少页
    status响应状态码,0 代表成功,非 0 代表有异常
    description请求结果描述,如果 status 为 0 则为 ok,否则为异常信息
    data请求结果具体数据

    接口类型 :接口分为两类,一类是为前端服务的前端接口,另一类是为 RASP Agent 服务的 Agent 接口,具体接口格式如下文所示。

    描述 :用来测试后台联通性的通用接口

    请求方法 :GET,POST

    路径 :v1/ping

    请求体 :空

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    认证方式分为两种:

    • 登陆之后获取 cookie 认证,cookie字段为 RASP_AUTH_ID,cookie有效期默认 7 天。
    • 通过在请求头中添加静态 token 进行认证,请求头字段为 X-OpenRASP-Token,具体的 token 管理方式,参照下文 token 管理接口。

    登录登出接口

    登录接口

    描述 :登录接口,初始管理后台用户名:openrasp ,密码:admin@123,登陆成功设置登录 cookie

    请求方法 :POST

    路径 :v1/user/login

    请求体

    1. {
    2. "username":"openrasp",
    3. "password":"admin@123"
    4. }

    参数说明

    参数参数类型必须说明
    usernameString用户名
    passwordString密码

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    登出接口

    描述 : 退出登录状态,清空 cookie

    请求方法 :GET

    路径 :v1/user/logout

    请求体 :无

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    获取是否登录

    描述 : 获取当前是否为登录状态

    请求方法 :GET

    路径 :v1/user/islogin

    请求体 :无

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    默认密码判断接口

    描述 : 判断当前用户密码是否为默认密码,用于给前端提供是否需要修改密码的提醒

    请求方法 :GET,POST

    路径 :v1/user/default

    请求体 :无

    返回结果

    1. {
    2. "data": {
    3. "is_default":true,
    4. },
    5. "description": "ok",
    6. "status": 0
    7. }
    参数说明
    is_default是否为默认密码,如果是则为 true,否则为false

    更改密码接口

    描述 :更改管理员密码,密码长度 8~50 个字节,必须同时包含字母和数组

    请求方法 :POST

    路径 :v1/user/update

    请求体

    1. {
    2. "old_password":"admin@123",
    3. "new_password":"admin*123"
    4. }

    参数说明

    参数参数类型必须说明
    old_passwordString旧密码
    new_passwordString新密码

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    插件管理接口

    上传插件

    描述 :上传文件为 .js 结尾的插件文件,插件版本在文件第一行,插件名称在插件的第二行

    请求方法 :POST

    路径 :v1/api/plugin?app_id=c593342c72eb78fc8e7393d0a87b8f3fc54dfbec

    请求体 : form data 格式的文件参数,参数名称 plugin

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    pluginfile插件文件,form-data 格式

    返回结果

    1. {
    2. "data": {
    3. "id": "c593342c72eb78fc8e7393d0a87b8f3fc54dfbec8835250641a6dbd9973ae981b4b7abc4",
    4. "app_id": "c593342c72eb78fc8e7393d0a87b8f3fc54dfbec",
    5. "upload_time": 1542177395622,
    6. "version": "'2018-1025-1600'",
    7. "name": "official",
    8. "md5": "8835250641a6dbd9973ae981b4b7abc4",
    9. "plugin": "/*js plugin content*/",
    10. "algorithm_config": {
    11. "command_other": {
    12. "action": "log"
    13. },
    14. "command_reflect": {
    15. "action": "block"
    16. },
    17. "fileUpload_multipart_script": {
    18. "action": "block"
    19. },
    20. "fileUpload_webdav": {
    21. "action": "block"
    22. }
    23. },
    24. "description": "ok",
    25. "status": 0
    26. }
    参数说明
    id插件唯一标识
    app_id插件所属的 APP
    upload_time上传时间的时间戳
    version插件版本
    name插件名称
    md5插件内容校验和
    algorithm_config插件内的算法配置
    plugin插件内容

    下载插件

    描述 :根据插件 id 下载插件

    请求方法 :GET

    路径 :v1/api/plugin/download?id=47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382

    请求体 : 无

    参数说明

    参数参数类型必须说明
    idString插件唯一标识

    返回结果 :插件文件,文件名称为 {NAME}-{VERSION}.js,{VERSION} 为插件版本,{NAME}为插件名称

    获取插件基本信息

    描述 :根据插件 id 获取插件

    请求方法 :POST

    路径 :v1/api/plugin/get

    请求体

    1. {
    2. "id":"47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382"
    3. }

    参数说明

    参数参数类型必须说明
    idString插件唯一标识

    返回结果

    1. {
    2. "data": {
    3. "id": "7c70d5ba5547e77a6f9ad5d376b92fe7e47da7c4",
    4. "app_id": "fcbc4d8ac6bcaac27b1cc4703e5339a4aa6e8a1c",
    5. "name": "official",
    6. "upload_time": 1546595795342,
    7. "version": "2018-1227-1200",
    8. "md5": "4259002c18ff3a9f40b44e91824ba0cf",
    9. "algorithm_config": {
    10. "xxe_file": {
    11. "action": "log",
    12. "name": "算法2 - 使用 file:// 协议读取文件",
    13. "reference": "https://rasp.baidu.com/doc/dev/official.html#case-xxe"
    14. },
    15. "xxe_protocol": {
    16. "action": "block",
    17. "name": "算法1 - 使用 ftp:// 等异常协议加载外部实体",
    18. "protocols": ["ftp", "dict", "gopher", "jar", "netdoc"]
    19. }
    20. ... 忽略
    21. }
    22. },
    23. "description": "ok",
    24. "status": 0
    25. }
    参数说明
    id插件唯一标识
    app_id插件所属的 APP
    upload_time上传时间的时间戳
    version插件版本
    name插件名称
    md5插件内容校验和
    algorithm_config插件内的算法配置

    下发算法配置

    描述 :给插件下发插件算法开关配置,下发的算法配置会合并到插件中

    请求方法 :POST

    路径 :v1/api/plugin/algorithm/config

    请求体

    1. {
    2. "id":"47af9da31ec3f233f35a25776f5e06086ebf239f3f35a25776f5e06086ebf239f",
    3. "config":{
    4. "xxe_file": {
    5. "action": "log",
    6. "name": "算法2 - 使用 file:// 协议读取文件",
    7. "reference": "https://rasp.baidu.com/doc/dev/official.html#case-xxe"
    8. },
    9. "xxe_protocol": {
    10. "action": "block",
    11. "name": "算法1 - 使用 ftp:// 等异常协议加载外部实体",
    12. "protocols": ["ftp", "dict", "gopher", "jar", "netdoc"]
    13. }
    14. ... 忽略
    15. }
    16. }

    参数说明

    参数参数类型必须说明
    idString插件唯一标识
    configobject算法配置

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    恢复插件默认算法配置

    描述 :根据插件 id 恢复插件最开始的默认算法配置

    请求方法 :POST

    路径 :v1/api/plugin/algorithm/restore

    请求体

    1. {
    2. "id":"47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382"
    3. }

    参数说明

    参数参数类型必须说明
    idString插件唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    删除插件

    描述 :根据插件 id 删除插件,无法删除被选中的插件

    请求方法 :POST

    路径 :v1/api/plugin/delete

    请求体

    1. {
    2. "id":"47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382"
    3. }

    参数说明

    参数参数类型必须说明
    idString插件唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    App管理接口

    新增 APP

    描述 :新增一个 APP

    请求方法 :POST

    路径 :v1/api/app

    请求体

    1. {
    2. "name":"Java 测试",
    3. "language":"java",
    4. "description":"openrasp protected",
    5. "selected_plugin_id":"47af9da31ec3f233f35a25776f5e0608w6ebf239ff60a021ada4750b65640d0d24b9ae382"
    6. }

    参数说明

    参数参数类型必须说明
    nameStringAPP 名称,名称不能重复
    languageStringAPP 业务语言
    descriptionStringAPP 描述信息
    selected_plugin_idStringAPP 下发的插件

    返回结果

    1. {
    2. "data": {
    3. "id": "1107158fb4cd0a901de850b2c64fab5faf0837d3",
    4. "name": "Java 测试",
    5. "language":"java",
    6. "create_time":1545984191,
    7. "secret":"SFklSJ5_DF125IKn15SDF-1SD141Af1",
    8. "description": "openrasp protected",
    9. "config_time": 0,
    10. "general_config": {
    11. "block.content.html": "</script><script>\n location.href=\"https://rasp.baidu.com/blocked2/?request_id=%request_id%\"\n </script>",
    12. "block.content_json": "{\"error\":true,\"reason\": \"Request blocked by OpenRASP\",\"request_id\": \"%request_id%\"}",
    13. "block.content_xml": "<?xml version=\"1.0\"?>\n\t\t\t\t\t\t\t <doc>\n\t\t\t\t\t\t\t <error>true</error>\n\t\t\t\t\t\t\t <reason>Request blocked by OpenRASP</reason>\n\t\t\t\t\t\t\t <request_id>%request_id%</request_id>\n\t\t\t\t\t\t\t </doc>",
    14. "block.redirect_url": "https://rasp.baidu.com/blocked/?request_id=%request_id%",
    15. "block.status_code": 302,
    16. "body.maxbytes": 4096,
    17. "clientip.header": "ClientIP",
    18. "ognl.expression.minlength": 30,
    19. "plugin.filter": true,
    20. "plugin.maxstack": 100,
    21. "plugin.timeout.millis": 100
    22. },
    23. "whitelist_config": {},
    24. "selected_plugin_id": "",
    25. "email_alarm_conf": {
    26. "enable": false,
    27. "tls_enable": false,
    28. "server_addr": "",
    29. "username": "",
    30. "password": "",
    31. "subject": "",
    32. "recv_addr": []
    33. },
    34. "ding_alarm_conf": {
    35. "enable": false,
    36. "agent_id": "",
    37. "corp_id": "",
    38. "corp_secret": "",
    39. "recv_user": [],
    40. "recv_party": []
    41. },
    42. "http_alarm_conf": {
    43. "enable": false,
    44. "recv_addr": []
    45. },
    46. "attack_type_alarm_conf":null,
    47. "algorithm_config":{}
    48. },
    49. "description": "ok",
    50. "status": 0
    51. }
    参数说明
    idAPP 唯一标识
    nameAPP 名称
    descriptionAPP 描述信息
    languageAPP 使用的编程语言
    create_timeAPP 创建时间
    secretAPP 秘钥,用于和 RASP 通信认证
    config_time上一次下发 RASP 相关配置的时间
    general_config通用配置,用于给 RASP 下发
    whitelist_config拦截白名单配置,用于给 RASP 下发
    selected_plugin_id被选中下发的插件 id
    email_alarm_confemail 报警配置
    ding_alarm_conf钉钉报警配置
    http_alarm_confhttp 报警配置
    attack_type_alarm_conf如果没有该配置,那么将会按照所有攻击类型会触发所有的报警方式,配置中的 key 是攻击类型,value 是该类型会触发的报警方式的列表,目前报警方式包括 ding,http,email
    algorithm_configapp 当前选中插件的算法配置

    删除 APP

    描述 :删除一个 APP ,同时删除该 APP 下所有的 RASP 和插件,当仅剩一个 APP 无法删除,至少保留一个 APP,无法删除还存在在线 RASP 的 APP

    请求方法 :POST

    路径 :v1/api/app/delete

    请求体

    1. {
    2. "id":"a8604735911f1866029401c6766ba87f685ff037"
    3. }

    参数说明

    参数参数类型必须说明
    idStringAPP 唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    获取 App

    描述 :获取所有App,或某一个 id 的 app,如果参数中有 id 参数,则返回相应id的 app,如果没有 id 参数,则需要 page 和 perpage 参数来做分页,返回相应数量的 APP 数组

    请求方法 :POST

    路径 :v1/api/app/get

    请求体

    获取相应 id APP

    1. {
    2. "app_id":"569e8ea7a16123492b5878920fd36985"
    3. }

    获取一定数量 APP

    1. {
    2. "page":1,
    3. "perpage":10
    4. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识,有该参数则返回相应 id 的 APP
    pageint分页页码
    perpageint每页数据条数

    返回结果

    返回相应 id APP

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "id":"569e8ea7a16123492b5878920fd36985"
    6. "name":"Java 测试",
    7. "description":"openrasp protected",
    8. "config_time":155536548555,
    9. "create_time":154598419100,
    10. "language":"java",
    11. "general_config":{
    12. "plugin.timeout.millis":500,
    13. "security.enforce_policy":true
    14. ...
    15. }
    16. ...
    17. }
    18. }

    返回一定数量 APP

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "page": 1,
    5. "perpage": 10,
    6. "total": 1,
    7. "total_page": 1,
    8. "data":[
    9. {
    10. "id":"569e8ea7a16123492b5878920fd36985"
    11. "name":"Java 测试",
    12. "description":"openrasp protected",
    13. "config_time":155536548555,
    14. "create_time":154598419100,
    15. "language":"java",
    16. "general_config":{
    17. "plugin.timeout.millis":500,
    18. "security.enforce_policy":true
    19. ...
    20. }
    21. }
    22. ]
    23. }

    下发通用配置

    描述 :给 app 下发 rasp 通用配置

    请求方法 :POST

    路径 :v1/api/app/general/config

    请求体

    1. {
    2. "app_id":"47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "config":{
    4. "inject.custom_headers":{
    5. "X-Protected-By":"OpenRASP"
    6. },
    7. "block.content_html": "</script><script>location.href="https://rasp.baidu.com/blocked2/?request_id=%request_id%"</script>",
    8. "block.content_json": "{"error":true,"reason": "Request blocked by OpenRASP","request_id": "%request_id%"}",
    9. "block.content_xml": "<?xml version="1.0"?><doc><error>true</error><reason>Request blocked by OpenRASP</reason><request_id>%request_id%</request_id></doc>",
    10. "block.redirect_url": "https://rasp.baidu.com/blocked/?request_id=%request_id%",
    11. "block.status_code": 403,
    12. "body.maxbytes": 12288,
    13. "clientip.header": "ClientIP",
    14. "cpu.usage.enable":false,
    15. "cpu.usage.interval":5,
    16. "cpu.usage.percent":90,
    17. "debug.level":0,
    18. "decompile.enable":false,
    19. "dependency_check.interval":100,
    20. "fileleak_scan.interval":21600,
    21. "fileleak_scan.limit":100,
    22. "fileleak_scan.name":""\.(git|svn|tar|gz|rar|zip|sql|log)$"",
    23. "log.maxbackup":30,
    24. "log.maxburst":100,
    25. "log.maxstack":100,
    26. "lru.compare_enable":false,
    27. "lru.compare_limit":10240,
    28. "lru.max_size":1000,
    29. "ognl.expression.minlength":30,
    30. "plugin.filter":true,
    31. "plugin.maxstack":100,
    32. "plugin.timeout.millis":100,
    33. "request.param_encoding":"openrasp",
    34. "response.sampler_burst":5,
    35. "response.sampler_interval":60,
    36. "security.weak_passwords":[
    37. ],
    38. "syslog.enable":false,
    39. "syslog.facility":1,
    40. "syslog.tag":"OpenRASP",
    41. "syslog.url":""
    42. }
    43. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    configobject通用配置完整内容

    返回结果 :返回更新之后的完整 APP 信息

    下发白名单配置

    描述 :给 app 下发 rasp 白名单配置

    请求方法 :POST

    路径 :v1/api/app/whitelist/config

    请求体

    1. {
    2. "app_id":"e64071cf900944b701213a6f17d36e0d18d8b6ab",
    3. "config":[
    4. {
    5. "url":"www.asod.com/sss/sss",
    6. "hook":{
    7. "sql":true,
    8. "ssrf":false
    9. },
    10. "description":""
    11. }
    12. ]
    13. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    configobject白名单配置完整内容

    返回结果 :返回更新之后的完整 APP 信息

    下发报警配置

    描述 :给 app 下发报警配置

    请求方法 :POST

    路径 :v1/api/app/alarm/config

    请求体

    1. {
    2. "app_id":"47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "attack_type_alarm_conf":{
    4. "sql":["email","ding","http"],
    5. "xxe":["email"]
    6. },
    7. "email_alarm_conf": {
    8. "enable":false,
    9. "tls_enable":false,
    10. "server_addr":"email.qq.com:445",
    11. "username":"123456789@qq.com",
    12. "password":"4354edfwe",
    13. "subject":"openrasp alarm",
    14. "recv_addr":["165165@163.com"]
    15. },
    16. "ding_alarm_conf": {
    17. "enable":false,
    18. "agent_id":"1s6ef5w1ef6",
    19. "corp_id":"1r5thnb5",
    20. "corp_secret":"d512c5f5fg546sdg5",
    21. "recv_user":["5sdf5","87njy7uoi"],
    22. "recv_party":["8ik44ws"]
    23. },
    24. "http_alarm_conf": {
    25. "enable":false,
    26. "recv_addr":["www.opff.com"]
    27. },
    28. "general_alarm_conf":{
    29. "alarm_check_interval":120
    30. },
    31. "kafka_alarm_conf":{
    32. "url":"1.1.1.1:6666",
    33. "user":"",
    34. "pwd":"",
    35. "enable":true,
    36. }
    37. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    attack_type_alarm_confObject如果没有该配置,那么将会按照所有攻击类型会触发所有的报警方式,配置中的 key 是攻击类型,value 是该类型会触发的报警方式的列表,目前报警方式包括 ding,http,email
    email_alarm_confObject邮件报警配置
    ding_alarm_confObject钉钉报警配置
    http_alarm_confObjecthttp 报警配
    email_alarm_conf.enableboolemail 报警开关,默认 false
    email_alarm_conf.tls_enablebool是否打开 邮件 tls 认证,默认 false
    email_alarm_conf.server_addrString邮件服务器地址
    email_alarm_conf.usernameString邮件账号用户名
    email_alarm_conf.passwordString邮件账号密码
    email_alarm_conf.subjectString邮件主题
    email_alarm_conf.recv_addrString Array邮件报警发送的邮件地址
    ding_alarm_conf.enablebool钉钉报警开关,默认 false
    ding_alarm_conf.agent_idString钉钉报警应用 Agent ID
    ding_alarm_conf.corp_idString钉钉报警的企业 ID
    ding_alarm_conf.corp_secretString钉钉报警的企业秘钥
    ding_alarm_conf.recv_userString Array钉钉报警接收的用户列表,列表每个元素是一个用户的ID,不能和 recv_party 参数同时为空
    ding_alarm_conf.recv_partyString Array钉钉报警接收的部门列表,列表每个元素是一个部门的ID,不能和 recv_user 参数同时为空
    http_alarm_conf.enableStringHTTP 报警推送开关,默认false
    http_alarm_conf.recv_addrString ArrayHTTP 报警接收地址列表
    general_alarm_conf.alarm_check_intervalInt邮件报警间隔(应用于所有App)
    kafka_alarm_conf.urlStringkafka服务器的地址
    kafka_alarm_conf.userStringkafka服务器的用户名
    kafka_alarm_conf.pwdStringkafka服务器的密码
    kafka_alarm_conf.enableBool是否开启kafka推送
    kafka_alarm_conf.topicString写入kafka的topic名称

    返回结果 :返回更新之后的完整 APP 信息

    APP 配置接口

    描述 :下发 APP 配置,用于配置 APP 名称,语言和描述信息

    请求方法 :POST

    路径 :v1/api/app/config

    请求体

    1. {
    2. "app_id":"47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "name":"myapp",
    4. "language":"php",
    5. "description":"php应用"
    6. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    nameStringAPP 名称
    languageStringAPP 使用的编程语言
    descriptionStringAPP 描述信息

    返回结果 :返回更新之后的完整 APP 信息

    获取 APP 下的所有插件

    描述 :根据 APP ID 获取所有的插件内容

    请求方法 :POST

    路径 :v1/api/app/plugin/get

    请求体

    1. {
    2. "app_id":"47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "page":1,
    4. "perpage":15
    5. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    pageint页码
    perpageint单页数量

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 15,
    5. "total": 2,
    6. "total_page": 1,
    7. "data": [
    8. {
    9. "id": "47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382",
    10. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f",
    11. "upload_time": 1540992061040,
    12. "version": "2018-1016-1000",
    13. "md5": "f60a021ada4750b65640d0d24b9ae382"
    14. ...
    15. },
    16. {
    17. "id": "47af9da31ec3f233f35a25776f5e06086ebf239f914450bbf9309777723f38facfa8183f",
    18. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f",
    19. "upload_time": 1540979046327,
    20. "version": "2018-1016-0000",
    21. "md5": "914450bbf9309777723f38facfa8183f"
    22. ...
    23. }
    24. ]
    25. },
    26. "description": "ok",
    27. "status": 0
    28. }

    获取 APP 下发的插件

    描述 :获取 APP 当前选中的插件,该插件会下发给 APP 下的 RASP

    请求方法 :POST

    路径 :v1/api/app/plugin/select/get

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f"
    3. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data": {
    3. "id": "47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382",
    4. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f",
    5. "upload_time": 1540985045544,
    6. "version": "2018-1016-1000",
    7. "md5": "f60a021ada4750b65640d0d24b9ae382"
    8. ...
    9. },
    10. "description": "ok",
    11. "status": 0
    12. }

    设置 APP 下发的插件

    描述 :设置 APP 下发给 RASP 的插件

    请求方法 :POST

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "plugin_id":"47af9da31ec3f233f35a25776f5e06086ebf239ff60a021ada4750b65640d0d24b9ae382"
    4. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    plugin_idString插件唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    测试邮件报警

    描述 :测试邮件报警

    请求方法 :POST

    路径 :v1/api/app/email/test

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f"
    3. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    测试钉钉报警

    描述 :测试钉钉报警

    请求方法 :POST

    路径 :v1/api/app/ding/test

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f"
    3. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识

    返回结果

    测试 HTTP 报警

    描述 :测试 HTTP 报警

    请求方法 :POST

    路径 :v1/api/app/http/test

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f"
    3. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    测试 Kafka 报警

    描述 :测试 Kafka 报警

    请求方法 :POST

    路径 :v1/api/app/kafka/test

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f"
    3. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    获取插件更新信息

    描述 :如果当前插件是 official.js 的话,判断当前下发插件是否为最新官方插件。如果不是(如 iast.js),返回当前下发插件和最新插件的版本信息

    请求方法 :POST

    路径 :v1/api/app/plugin/latest

    请求体

    1. {
    2. "app_id": "47af9da31ec3f233f35a25776f5e06086ebf239f"
    3. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data": {
    3. "is_latest": false,
    4. "selected_version": "2019-0606-1802",
    5. "latest_version": "2019-0606-1803"
    6. },
    7. "description": "ok",
    8. "status": 0
    9. }
    参数说明
    is_latest当前下发插件是否为最新版本
    selected_version当前下发的插件版本
    latest_version最新插件版本

    RASP管理接口

    搜索 RASP

    描述 :按照条件搜索 RASP

    请求方法 :POST

    路径 :v1/api/rasp/search

    请求体

    1. {
    2. "page":1,
    3. "perpage":10,
    4. "data": {
    5. "id": "426199dc7a15cce89b0c937a65a24a23",
    6. "app_id": "fcbc4d8ac6bcaac27b1cc4703e5339a4aa6e8a1c",
    7. "version": "1.0.0-RC1",
    8. "hostname": "820c2691f452",
    9. "register_ip": "172.17.0.2",
    10. "language": "java",
    11. "language_version": "1.7.0_17",
    12. "server_version": "7.0.78.0",
    13. "rasp_home": "/tomcat/rasp",
    14. "plugin_version": "2018-1227-1200",
    15. "heartbeat_interval": 180,
    16. "online": false,
    17. "register_time": 1546595808,
    18. "host_type": "docker"
    19. }
    20. }

    参数说明

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 2,
    6. "total_page": 1,
    7. "data": [
    8. {
    9. "id": "426199dc7a15cce89b0c937a65a24a23",
    10. "app_id": "fcbc4d8ac6bcaac27b1cc4703e5339a4aa6e8a1c",
    11. "version": "1.0.0-RC1",
    12. "hostname": "820c2691f452",
    13. "register_ip": "172.17.0.2",
    14. "language": "java",
    15. "language_version": "1.7.0_17",
    16. "server_type": "tomcat",
    17. "server_version": "7.0.78.0",
    18. "rasp_home": "/tomcat/rasp",
    19. "plugin_version": "2018-1227-1200",
    20. "heartbeat_interval": 180,
    21. "online": false,
    22. "last_heartbeat_time": 1546597790,
    23. "register_time": 1546595808,
    24. "host_type": "docker",
    25. "environ": {
    26. "COLORTERM": "gnome-terminal",
    27. "DISPLAY": ":0",
    28. }
    29. ]
    30. },
    31. "description": "ok",
    32. "status": 0
    33. }
    参数说明
    idRASP 唯一标识
    app_id所属的 APP 的 ID
    versionRASP 版本
    hostnameRASP 所在的主机名,该字段支持模糊搜索,并同时搜索 hostname 和 register_ip 字段
    register_ipRASP 访问云控后台所使用的 IP 地址
    language编程语言
    server_type服务器类型
    server_version服务器版本
    rasp_homeRASP 安装目录
    plugin_version插件版本
    heartbeat_interval心跳间隔时间,单位:秒
    online是否在线
    last_heartbeat_time上次心跳时间,毫秒时间戳
    register_time注册时间,毫秒时间戳
    host_type主机类型,例: docker
    environ进程环境变量

    RASP版本号统计

    描述 :统计RASP每个版本号下主机个数

    请求方法 :POST

    路径 :v1/api/rasp/search/version

    请求体

    1. {
    2. "data":{
    3. "app_id":"fcbc4d8ac6bcaac27b1cc4703e5339a4aa6e8a1c",
    4. "version":"1.3.0"
    5. },
    6. "page":1,
    7. "perpage":10
    8. }

    参数说明

    参数参数类型必须说明
    app_idString所属的 APP 的 ID
    versionString指定搜索的版本号

    返回结果

    1. {
    2. "data": {
    3. "data": [
    4. {
    5. "version": "1.3.0",
    6. "count": 1
    7. }
    8. ],
    9. "page": 1,
    10. "perpage": 10,
    11. "total": 1,
    12. "total_page": 1
    13. },
    14. "description": "ok",
    15. "status": 0
    16. }
    参数说明
    version主机版本号
    count主机版本号对应的主机个数

    导出 RASP

    描述 :按条件搜索 rasp,并把搜索结果导出到 csv 文件,app_id 字段为必选,剩余搜索条件为可选

    请求方法 :GET

    路径 :v1/api/rasp/csv?app_id=eaGdr22DfthDz51JHF65sd

    参数说明

    参数参数类型必须说明
    app_idString所属的 APP 的 ID

    返回结果 : csv 文件

    删除 RASP

    描述 :删除指定条件的 RASP,在线的 rasp 不允许删除,当参数中存在 id,删除指定 id 的 rasp 并忽略其他参数

    请求方法 :POST

    路径 :v1/api/rasp/delete

    请求体

    1. {
    2. "app_id":"94892d14c8f1dfcedb63af258cc008929c3ef4f5",
    3. "id": "47af9da31ec3f233f35a25776f5e06086ebf239f",
    4. "register_ip":"126.23.3.63",
    5. "expire_time": 604800,
    6. "host_type": "docker"
    7. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    idStringRASP 唯一标识
    register_ipString注册 ip
    expire_timeint单位/秒,删除超时时间超过该值的 rasp
    host_typeStringrasp 所在的主机类型

    返回结果

    1. {
    2. "data": {
    3. "count":1
    4. },
    5. "description": "ok",
    6. "status": 0
    7. }
    参数说明
    count删除 RASP agent 数量

    批量删除 RASP

    描述 :根据 rasp id 批量删除rasp

    请求方法 :POST

    路径 :v1/api/rasp/batch_delete

    请求体

    1. {
    2. "app_id":"94892d14c8f1dfcedb63af258cc008929c3ef4f5",
    3. "ids": [
    4. "47af9da31ec3f233f35a25776f5e06086ebf239f",
    5. "d64g58d4gc3fs58745sdfgd5g5s7f54e5f4s585s",
    6. "net1d5ns8bad6584thg1s5dnbs8gbs8af5RFG415"
    7. ]
    8. }

    参数说明

    参数参数类型必须说明
    app_idStringAPP 唯一标识
    idsString ArrayRASP 唯一标识列表

    返回结果

    1. {
    2. "data": {
    3. "count":1
    4. },
    5. "description": "ok",
    6. "status": 0
    7. }
    参数说明
    count删除 RASP agent 数量

    RASP 备注接口

    描述 :给指定 id 的 rasp 添加或者修改备注信息

    请求方法 :POST

    路径 :v1/api/rasp/describe

    请求体

    1. {
    2. "id": "47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "description": "this is a description"
    4. }

    参数说明

    参数参数类型必须说明
    idStringRASP 唯一标识
    descriptionString描述信息

    返回结果

    1. {
    2. "data": {
    3. },
    4. "description": "ok",
    5. "status": 0
    6. }

    类库信息管理接口

    类库信息聚合

    描述 :按照应用下主机聚合主机的类库信息

    请求方法 :POST

    路径 :v1/api/dependency/aggr

    请求体

    1. {
    2. "data":{
    3. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a"
    4. },
    5. "page":1,
    6. "perpage":10
    7. }

    参数说明

    参数参数类型必须说明
    app_idString所属的 APP 的 ID

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 1,
    6. "total_page": 1,
    7. "data": [
    8. {
    9. @timestamp: 1579597454365,
    10. app_id: "4a335d670ec7c9353d3cf7480e68614dda087ded",
    11. hostname: "d2e69eebfa7b",
    12. id: "d1dd52ff8c82becccf9678b6ed09eca0",
    13. path: ["/tomcat/bin/bootstrap.jar"],
    14. product: "Apache Tomcat Bootstrap",
    15. rasp_count: 1,
    16. rasp_id: "3089c8d2672efd1ef5c3e322d9e8fcb1",
    17. register_ip: "172.17.0.2",
    18. search_string: "Apache Tomcat Bootstrap8.0.5",
    19. source: "manifest_implementation",
    20. tag: "Apache Software Foundation:Apache Tomcat Bootstrap:8.0.5",
    21. vendor: "Apache Software Foundation",
    22. version: "8.0.5"
    23. }
    24. ]
    25. },
    26. "description": "ok",
    27. "status": 0
    28. }
    参数说明
    timestamp类库信息上传时间
    app_id所属的APP的ID
    hostname主机名称
    id类库信息唯一标识
    path类库依赖路径
    product产品名称
    rasp_count影响主机数量
    rasp_id类库信息所属的RASP
    register_ipRASP 所在机器 IP 地址
    search_string
    source
    tag
    vendor厂商
    version类库的版本号

    类库信息聚合

    描述 :查看类库信息的详情

    请求方法 :POST

    路径 :v1/api/dependency/search

    请求体

    1. {
    2. "data":{
    3. "app_id":"0d46b13c2f25722e542b1a89817e1163e190fce1",
    4. "tag":"org.apache.struts.xwork:xwork-core:2.3.14.2",
    5. "key_word":"",
    6. "hostname":""
    7. },
    8. "page":1,
    9. "perpage":10
    10. }
    参数参数类型必须说明
    app_idStringAPP 唯一标识
    tagString
    key_wordString关键词
    hostnameString主机名称

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 1,
    6. "total_page": 1,
    7. "data": [
    8. {
    9. @timestamp: 1579612005801,
    10. app_id: "0d46b13c2f25722e542b1a89817e1163e190fce1",
    11. hostname: "cq02-scloud-docker-trial",
    12. id: "148f69b483fff233ee4d4f9fffbfd478",
    13. path: ["/tomcat/bin/bootstrap.jar"],
    14. product: "xwork-core",
    15. rasp_count: 1,
    16. rasp_id: "3089c8d2672efd1ef5c3e322d9e8fcb1",
    17. register_ip: "10.58.119.17",
    18. search_string: "Apache Tomcat Bootstrap8.0.5",
    19. source: "manifest_implementation",
    20. tag: "Apache Software Foundation:Apache Tomcat Bootstrap:8.0.5",
    21. vendor: "Apache Software Foundation",
    22. version: "2.3.14.2"
    23. }
    24. ]
    25. },
    26. "description": "ok",
    27. "status": 0
    28. }
    参数说明
    app_id所属的APP的ID
    timestamp类库信息上传时间
    hostname主机名称
    id类库信息唯一标识
    path类库依赖路径
    product产品名称
    rasp_count影响主机数量
    rasp_id类库信息所属的RASP
    register_ipRASP 所在机器 IP 地址
    search_string
    source
    tag
    vendor厂商
    version类库的版本号

    静态Token管理接口

    生成/更新 token

    描述 :当有 token 参数为更新,否则为新增 token

    请求方法 :POST

    路径 :v1/api/token

    请求体

    新增token:

    1. {
    2. "description":"xxx 认证 token"
    3. }

    更新token:

    1. {
    2. "token":"44b2b50665c9f11c73090b19c3dd787031611e80",
    3. "description":"啄木鸟微服务认证token"
    4. }

    参数说明

    参数参数类型必须说明
    tokenStringtoken 内容
    descriptionStringtoken 描述

    返回结果

    1. {
    2. "data": {
    3. "token": "44b2b50665c9f11c73090b19c3dd787031611e80",
    4. "description": "扫描器"
    5. },
    6. "description": "ok",
    7. "status": 0
    8. }

    获取 token

    描述 :获取一定数量的 token 信息

    请求方法 :POST

    路径 :v1/api/token/get

    请求体

    1. {
    2. "page":1,
    3. "perpage":10
    4. }

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 5,
    6. "total_page": 1,
    7. "data": [
    8. {
    9. "token": "349532e57aa36ee9b72a62fec8907109a016f348",
    10. "description": "a token"
    11. },
    12. {
    13. "token": "f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    14. "description": "b token"
    15. }
    16. ]
    17. },
    18. "description": "ok",
    19. "status": 0
    20. }

    删除token

    描述 :删除 token

    请求方法 :POST

    路径 :v1/api/token/delete

    请求体

    1. {
    2. "token":"f284baaeb786a8285bd1dde04a3dd7502c766c8a"
    3. }

    返回结果

    1. {
    2. "data": {
    3. },
    4. "description": "ok",
    5. "status": 0
    6. }

    操作日志接口

    搜索操作日志

    描述 :搜索操作日志

    请求方法 :POST

    路径 :v1/api/operation/search

    请求体

    1. {
    2. "data":{
    3. "id": "389fdbeb0aceb154d5d5d26eba28fea9f402c945",
    4. "type_id": 1010,
    5. "app_id": "e64071cf900944b701213a6f17d36e0d18d8b6ab",
    6. "user": "admin",
    7. "ip": "127.0.0.1"
    8. },
    9. "start_time":1,
    10. "end_time":1542807647000,
    11. "page":1,
    12. "perpage":15
    13. }

    参数说明

    参数参数类型必须说明
    dataString所有支持搜索的字段,data 中所有字段皆为可选
    start_timeint操作日志的开始时间,毫秒时间戳
    end_timeint操作日志的结束时间,毫秒时间戳

    返回结果

    1. {
    2. "data": {
    3. "data": [
    4. {
    5. "id": "389fdbeb0aceb154d5d5d26eba28fea9f402c945",
    6. "type_id": 1010,
    7. "app_id": "e64071cf900944b701213a6f17d36e0d18d8b6ab",
    8. "time": 1542807647000,
    9. "user": "admin",
    10. "content": "uploaded the plugin: ba41c57afab600c39dba7398987b159d648d0836",
    11. "ip": "127.0.0.1"
    12. }
    13. ],
    14. "page": 1,
    15. "perpage": 15,
    16. "total": 1,
    17. "total_page": 1
    18. },
    19. "description": "ok",
    20. "status": 0
    21. }
    参数说明
    id操作日志唯一标识
    app_id所属的 APP 的 ID
    type_id日志类型
    time操作时间
    user操作人
    content操作内容
    ip操作请求发起者相对于云控后台的 IP

    服务器管理接口

    获取服务器 url

    描述 :获取 panel 和 agent 服务器的 url 地址

    请求方法 :POST

    路径 :v1/api/server/url/get

    参数 :无

    返回结果

    1. {
    2. "data":{
    3. "panel_url":"126.56.23.5:8086",
    4. "agent_url":[
    5. "126.56.23.5:8086",
    6. "10.23.36.122:8086",
    7. "172.23.233.192:8086"
    8. ]
    9. },
    10. "description": "ok",
    11. "status": 0
    12. }
    参数说明
    panel_url前端 server url 访问地址
    agent_urlagent server 访问地址列表

    更改服务器地址

    描述 :更改 panel 和 agent 服务器的访问地址

    请求方法 :POST

    路径 :v1/api/server/url

    请求体

    1. {
    2. "panel_url":"126.56.23.5:8086",
    3. "agent_urls":[
    4. "126.56.23.5:8086",
    5. "10.23.36.122:8086",
    6. "172.23.233.192:8086"
    7. ]
    8. }

    参数说明

    参数参数类型必须说明
    panel_urlString前端 server url 访问地址
    agent_urlString Arrayagent server 访问地址列表

    返回结果

    1. {
    2. "data":{
    3. "panel_url":"126.56.23.5:8086",
    4. "agent_urls":[
    5. "126.56.23.5:8086",
    6. "10.23.36.122:8086",
    7. "172.23.233.192:8086"
    8. ]
    9. },
    10. "description": "ok",
    11. "status": 0
    12. }

    清空数据

    描述 :清空数据库中的攻击事件、基线报警、异常日志、请求数量

    请求方法 :POST

    路径 :v1/api/server/url

    请求体

    1. {
    2. "app_id":"e64071cf900944b701213a6f17d36e0d18d8b6ab"
    3. }

    参数说明

    参数说明
    app_id前端 server url 访问地址

    返回结果

    1. {
    2. "data": {},
    3. "description": "ok",
    4. "status": 0
    5. }

    请求统计信息聚合

    描述 :按照时间聚合 RASP 上传的请求统计数据

    请求方法 :POST

    路径 :v1/api/report/dashboard

    请求体

    1. {
    2. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    3. "start_time":1523264521321212,
    4. "end_time":1523267821321000,
    5. "interval":"hour",
    6. "time_zone":"+08:00"
    7. }

    参数说明

    参数参数类型必须说明
    app_idString需要聚合的 APP
    start_timeint开始时间
    end_timeint结束时间
    intervalString聚合粒度,hour小时,month月,day天
    time_zoneString聚合使用的时区

    返回结果

    1. {
    2. "data":[
    3. {
    4. "start_time":1523264521321212,
    5. "request_sum":10000
    6. },
    7. {
    8. "start_time":1523264521340000,
    9. "request_sum":87
    10. }
    11. ],
    12. "description": "ok",
    13. "status": 0
    14. }
    参数说明
    start_time开始时间
    request_sumRASP 处理的请求数量

    报警接口

    为了降低 es 压力,所有报警接口起止时间不能超过 366 天,聚合接口 size 不能超过1024

    按照时间聚合攻击日志

    描述 :按照时间聚合攻击数据

    请求方法 :POST

    路径 :v1/api/log/attack/aggr/time

    请求体

    1. {
    2. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    3. "start_time":1535600036000,
    4. "end_time":1546140836000,
    5. "interval":"month",
    6. "time_zone":"+08:00"
    7. }

    参数说明

    参数参数类型必须说明
    app_idString需要聚合的 APP
    start_timeint开始时间
    end_timeint结束时间
    intervalString聚合粒度,hour小时,month月,day天
    time_zoneString聚合使用的时区

    返回结果

    1. {
    2. "data": {
    3. "data": [
    4. [
    5. 0,
    6. 0,
    7. 0,
    8. 1,
    9. 0
    10. ],
    11. [
    12. 0,
    13. 0,
    14. 0,
    15. 0,
    16. 0
    17. ]
    18. ],
    19. "labels": [
    20. 1533052800000,
    21. 1535731200000,
    22. 1538323200000,
    23. 1541001600000,
    24. 1543593600000
    25. ]
    26. },
    27. "description": "ok",
    28. "status": 0
    29. }
    参数说明
    data聚合数据,第一个元素是 info 数据,第二个是 block 数据
    labels聚合的横轴时间标签数组,每个元素都是一个毫秒时间戳

    按照类型聚合攻击日志

    描述 :按照攻击类型聚合攻击数据

    请求方法 :POST

    请求体

    1. {
    2. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    3. "start_time":1535600036000,
    4. "end_time":1546140836000,
    5. "size":10
    6. }

    参数说明

    参数参数类型必须说明
    app_idString需要聚合的 APP
    start_timeint开始时间
    end_timeint结束时间
    sizeint聚合的攻击类型数目

    返回结果

    参数说明
    data聚合数据,每个数组代表一种类型,每个数组的第一个元素代表类型名称,第二个元素代表该类型的攻击数量

    按照 UA 聚合攻击日志

    描述 :按照请求 User-Agent 头聚合攻击数据

    请求方法 :POST

    路径 :v1/api/log/attack/aggr/ua

    请求体

    1. {
    2. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    3. "start_time":1535600036000,
    4. "end_time":1546140836000,
    5. "size":10
    6. }

    参数说明

    参数参数类型必须说明
    app_idString需要聚合的 APP
    start_timeint开始时间
    end_timeint结束时间
    sizeint聚合的 UA 类型数目

    返回结果

    1. {
    2. data:[
    3. [
    4. "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36", 156
    5. ],
    6. [
    7. "Chrome/5.0 (X11; Linux x86_64) AppleWebKit/537.36", 156
    8. ]
    9. ],
    10. "description": "ok",
    11. "status": 0
    12. }
    参数说明
    data聚合数据,每个数组代表一种类型,每个数组的第一个元素代表 UA 名称,第二个元素代表该 UA 的攻击数量

    漏洞聚合搜索

    描述 :按照漏洞聚合攻击数据(不同的栈为不同的漏洞)

    请求方法 :POST

    路径 :v1/api/log/attack/aggr/vuln

    请求体

    1. {
    2. "data":{
    3. "attack_type":["directory","sql"],
    4. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    5. "start_time":"1523264521321000",
    6. "end_time":"1523264521421000"
    7. }
    8. "page":1,
    9. "perpage":10
    10. }

    参数说明

    参数参数类型必须说明
    app_idString漏洞所属的 APP,如果有该参数,那么统计相应的 app 数据,如果没有,则统计所有的数据
    attack_typeString Array攻击类型可以多选,数组为空则什么都不返回,没有该参数,或者参数为null,则不过滤此参数
    rasp_idString漏洞所属的 RASP
    server_hostnameString漏洞发生的机器的 hostname
    attack_sourceString攻击来源 ip
    urlString攻击的 url
    intercept_stateString Array拦截状态,可选值:block、info,数组为空则什么都不返回,没有该参数,或者参数为null,则不过滤此参数
    local_ipString攻击的机器的 ip
    start_timeint开始时间
    end_timeint结束时间

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 500,
    6. "total_page": 50,
    7. "data":[
    8. {
    9. "attack_type":"directory",
    10. "stack_md5":"1111121637821204cwwd2e52d62d0aa8",
    11. "event_time":"2019-01-27T23:51:15+0800",
    12. ...
    13. }
    14. ...
    15. ]
    16. },
    17. "status": 0
    18. }
    参数说明
    data漏洞聚合结果,结果按照每个漏洞的最新的攻击时间排序,每个漏洞展示的内容都是该漏洞最新的一个攻击的内容

    攻击报警搜索

    描述 :搜索攻击日志,结果结果按照时间降序排序

    请求方法 :POST

    路径 :v1/api/log/attack/search

    请求体

    1. {
    2. "data":{
    3. "attack_type":["directory","sql"],
    4. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    5. "start_time":"1523264521321000",
    6. "end_time":"1523264521421000"
    7. }
    8. "page":1,
    9. "perpage":10
    10. }

    参数说明

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 500,
    6. "total_page": 50,
    7. "data":[
    8. {
    9. "attack_type":"directory",
    10. "intercept_state":"block",
    11. "plugin_confidence":100
    12. ...
    13. }
    14. ...
    15. ]
    16. },
    17. "description": "ok",
    18. "status": 0
    19. }
    参数说明
    data搜索攻击结果

    基线报警搜索

    描述 :搜索基线日志,结果结果按照时间降序排序

    请求方法 :POST

    路径 :v1/api/log/policy/search

    请求体

    1. {
    2. "data":{
    3. "policy_id":["3004","3003"],
    4. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    5. "server_hostname":"nmg01.xx.cq",
    6. "local_ip":"172.36.2.6",
    7. "start_time":"1523264521321000",
    8. "end_time":"1523264521421000"
    9. },
    10. "page":1,
    11. "perpage":10
    12. }

    参数说明

    参数参数类型必须说明
    app_idString所属的 APP,如果有该参数,那么统计相应的 app 数据,如果没有,则统计所有的数据
    policy_idint Array该字段可以多选,数组为空则什么都不返回,没有该参数,或者参数为null,则不过滤此参数
    rasp_idString所属的 RASP
    server_hostnameString机器的 hostname 或者 IP,支持模糊搜索
    local_ipString机器的 ip
    messageString基线报警信息,支持模糊搜索
    start_timeint开始时间
    end_timeint结束时间

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 500,
    6. "total_page": 50,
    7. "data":[
    8. {
    9. "policy_id":"3004"
    10. ... // 此处省略
    11. },
    12. ]
    13. },
    14. "description": "ok",
    15. "status": 0
    16. }
    参数说明
    data搜索基线结果

    异常接口

    搜索异常信息

    描述 :根据条件搜索异常信息

    请求方法 :POST

    路径 :v1/api/log/error/search

    请求体

    1. {
    2. "data":{
    3. "app_id":"f284baaeb786a8285bd1dde04a3dd7502c766c8a",
    4. "server_hostname":"nmg01.xx.cq",
    5. "local_ip":"172.36.2.6",
    6. "start_time":"1523264521321000",
    7. "end_time":"1523264521421000"
    8. },
    9. "page":1,
    10. "perpage":10
    11. }

    参数说明

    参数参数类型必须说明
    app_idString所属的 APP,如果有该参数,那么统计相应的 app 数据,如果没有,则统计所有的数据
    rasp_idString攻击所属的 RASP 的 ID
    server_hostnameString机器的 hostname 或 IP ,支持模糊搜索
    local_ipString机器的 ip
    messageString搜索异常信息包含该值的异常日志,支持模糊搜索
    start_timeint开始时间
    end_timeint结束时间

    返回结果

    1. {
    2. "data": {
    3. "page": 1,
    4. "perpage": 10,
    5. "total": 500,
    6. "total_page": 50,
    7. "data":[
    8. {
    9. "message": "HTTP request to http://scloud.baidu.com:8086/v1/agent/rasp failed:",
    10. "server_nic": [{
    11. "name": "en0",
    12. "ip": "172.24.182.127"
    13. }],
    14. "stack_trace": "sun.reflect.NativeConstructorAccessorImpl.newInstance0(NativeMethod)",
    15. "level": "WARN",
    16. "event_time": "2019-01-11T13:36:46+0800",
    17. "app_id": "9b3554a97673f1f8f5c929310298037a660d3b7a",
    18. "pid": 58353,
    19. "server_hostname": "localhost",
    20. "rasp_id": "3089c8d2672efd1ef5c3e322d9e8fcb1"
    21. }
    22. ]
    23. },
    24. "description": "ok",
    25. "status": 0
    26. }
    参数说明
    data搜索错误日志结果

    认证方式

    • 增加 APP ID 请求头: X-OpenRASP-AppID: 9b3554a97673f1f8f5c929310298037a660d3b7a
    • 增加 APP Secret 请求头: X-OpenRASP-AppSecret: 2wMG8K9F71CZyvlWu1CRwf7tVDVW7Ud4gxCY5X4aMzO

    RASP 注册接口

    描述 :注册 RASP 基本信息,如果有 id 参数,那么为更新相应的 RASP 信息,否则为新增 RASP

    请求方法 :POST

    路径 :v1/agent/rasp

    请求体

    1. {
    2. "id":"569e8ea7a16123492b5878920fd36985",
    3. "version" :"v3.2",
    4. "hostname":"tyy-OptiPlex-9020",
    5. "register_ip":"127.56.23.4",
    6. "language" :"java",
    7. "language_version":"8.1" ,
    8. "server_type":"tomcat",
    9. "server_version":"8.5.1" ,
    10. "heartbeat_interval":60,
    11. "rasp_home":"/home/work/tomcat8/rasp",
    12. "host_type":"docker",
    13. "environ":{
    14. "JAVA_HOME":"/home/java/jdk-7.0.25"
    15. }
    16. }

    参数说明

    参数参数类型必须说明
    idStringRASP 唯一标识
    versionStringRASP 版本
    hostnameStringRASP 所在机器的主机名
    register_ipStringRASP 所在机器 IP 地址
    languageStringRASP 使用的开发语言
    language_versionStringRASP 使用的开发语言版本
    server_typeStringRASP 使用的服务器种类
    server_versionStringRASP 使用的服务器版本号
    heartbeat_intervalint心跳间隔时间,单位:秒
    rasp_homeStringRASP 安装目录
    host_typeString主机类型,如 docker
    environString服务进程环境变量

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "id":"569e8ea7a16123492b5878920fd36985",
    6. "app_id":"023e68ea7a12564492b5878920fd630c8",
    7. "version" :"v3.2",
    8. "hostname":"tyy-OptiPlex-9020",
    9. "register_ip":"127.56.23.4",
    10. "language" :"java",
    11. "language_version":"8.1" ,
    12. "server_type":"tomcat",
    13. "server_version":"8.5.1" ,
    14. "heartbeat_interval":60,
    15. "rasp_home" :"/home/work/tomcat8/rasp",
    16. "last_heartbeat_time":"15425645253",
    17. "online":true,
    18. "host_type":"docker",
    19. "plugin_version":"",
    20. "plugin_name":"",
    21. "plugin_md5":"",
    22. "environ":{
    23. "JAVA_HOME":"/home/java/jdk-7.0.25"
    24. },
    25. "register_time":"15425645253"
    26. }
    27. }

    参数说明

    参数说明
    idRASP 唯一标识
    app_id所属 APP 标识
    versionRASP 版本
    hostnameRASP 所在机器的主机名
    register_ipRASP 所在机器 IP 地址
    languageRASP 使用的开发语言
    language_versionRASP 使用的开发语言版本
    server_typeRASP 使用的服务器种类
    server_versionRASP 使用的服务器版本号
    heartbeat_interval心跳间隔时间,单位:秒
    rasp_homeRASP 安装目录
    last_heartbeat_time上次心跳时间,如果还没有心跳,就是注册时间
    onlinerasp 是否在线,此处该值应为 true
    host_type主机类型,如 docker
    plugin_version插件版本,注册时还没有下发插件,所以为空
    plugin_name插件名称,注册时还没有下发插件,所以为空
    plugin_md5插件内容校验和,注册时还没有下发插件,所以为空
    environ服务进程环境变量
    register_time注册的时间戳,单位:秒

    心跳接口

    描述 :接受 RASP 向云控后台的定时心跳,如果请求参数中的 md5 和后台指定的插件 md5 不同则判定有新插件,如果配置时间小于云控后台的最后配置时间,判定有新配置,每次更新都是插件和配置的全量更新。

    请求方法 :POST

    路径 :v1/agent/heartbeat

    请求体

    1. {
    2. "rasp_id":"47af9da31ec3f233f35a25776f5e06086ebf239f",
    3. "plugin_md5":"47af9da31ec3f2ebf239f",
    4. "plugin_version":"2018-08-15 11:11:12",
    5. "config_time":1536302712000,
    6. "hostname":"rasp-host"
    7. }

    参数说明

    参数参数类型必须说明
    rasp_idStringRASP 唯一标识
    plugin_md5String当前 RASP 的插件 MD5
    plugin_versionString当前插件的版本
    config_timeint后台配置的最后修改时间,如果没有该字段或者为 0,当做没有下发过配置处理,则会下发配置
    hostnameString主机 hostname,用于运行时更新

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "plugin":{
    6. "version":"2018-08-15 11:11:12"
    7. "md5":"569e8ea7a16123492b5878920fd36985",
    8. "plugin":"/*javascript*/"
    9. },
    10. "config_time":1536303412000,
    11. "config":{
    12. "block.content_html": "</script><script>location.href=\"https://rasp.baidu.com/blocked2/?request_id=%request_id%\"</script>",
    13. "block.content_json": "{\"xxxx\":\"xxxxxx\"}",
    14. "block.content_xml": "<?xml version=\"1.0\"?><doc><error>true</error><reason>Request blocked by OpenRASP</reason><request_id>%request_id%</request_id></doc>",
    15. "block.redirect_url": "https://rasp.baidu.com/blocked/?request_id=%request_id%",
    16. "block.status_code": 302,
    17. "body.maxbytes": 4096,
    18. "clientip.header": "ClientIP",
    19. "debug.level": 0,
    20. "decompile.enable": true,
    21. "inject.custom_headers": {},
    22. "log.maxbackup": 30,
    23. "log.maxburst": 100,
    24. "ognl.expression.minlength": 30,
    25. "plugin.filter": true,
    26. "plugin.maxstack": 100,
    27. "plugin.timeout.millis": 100,
    28. "syslog.enable": false,
    29. "syslog.facility": 1,
    30. "syslog.tag": "OpenRASP",
    31. "syslog.url": "",
    32. "hook.white":{
    33. "www.test.com/test1":[sql,ssrf],
    34. "www.test.com/test2":[sql,ssrf],
    35. "*":[all]
    36. }
    37. }
    38. }
    39. }

    参数说明

    参数说明
    plugin插件内容
    config_time本次下发配置的时间
    config下发的配置,配置项的详细说明:

    统计上报接口

    描述 :上传 rasp 统计信息

    请求方法 :POST

    路径 :v1/agent/report

    请求体

    1. {
    2. "rasp_id":"569e8ea7a16123492b5878920fd36985",
    3. "time":15665422321,
    4. "request_sum":10000
    5. }

    参数说明

    参数参数类型必须说明
    rasp_idStringRASP 唯一标识
    timeint统计时间,毫秒时间戳
    request_sumint请求数量,默认 0

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{}
    5. }

    崩溃上报接口

    描述 :上传 rasp 奔溃信息

    请求方法 :POST

    路径 :v1/agent/crash/report

    请求体

    格式: multipart/form-data

    内容:

    crash_log: hs_err_pid25945.log

    hostname: Mac-xxxx-host

    language: java

    rasp_id: d5ged5g54dr1gdr5d5erg5rdg

    参数说明

    参数参数类型必须说明
    crash_log文件崩溃日志
    rasp_idStringRASP 唯一标识,RASP 可以不存在
    languageStringRASP 语言
    hostnameString主机名

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{}
    5. }

    上传攻击报警日志

    描述 :上传 RASP 攻击日志

    请求方法 :POST

    路径 :v1/agent/log/attack

    请求体

    1. [
    2. {
    3. "rasp_id":"545e8336cf5b612f358ae51ff0466476",
    4. "app_id":"5f1b8ba39b85e2f857f6b219156470e648fd2b4f",
    5. "server_nic": [{
    6. "name": "cscotun0",
    7. "ip": "172.23.232.63"
    8. }, {
    9. "name": "vmnet8",
    10. "ip": "172.16.75.1"
    11. }, {
    12. "name": "docker0",
    13. "ip": "172.17.0.1"
    14. }, {
    15. "name": "eno1",
    16. "ip": "172.20.94.78"
    17. }],
    18. "event_type": "attack",
    19. "attack_source": "127.0.0.1",
    20. "attack_type": "command",
    21. "plugin_name": "official",
    22. "url": "http://127.0.0.1:8396/vulns/004-command-1.jsp?cmd\u003dcp+/etc/passwd+/tmp/",
    23. "header": {
    24. "cookie": "JSESSIONID\u003dF11746396310A9E88FF1C44F98B958EE; ADMINCONSOLESESSION\u003dv165dQlfGTrfpxDBdDkhTHmqVR2gYbMP57pJyRvyKsD4RcTC12N0!2052002414; JSESSIONID\u003dTkSZdRVGCnpRjYwp15dtrlnZRcFrq2q2qQ2H1fchYLstJX1BkvpF!-354254474",
    25. "connection": "keep-alive",
    26. "accept-language": "zh,en-US;q\u003d0.9,en;q\u003d0.8,zh-CN;q\u003d0.7",
    27. "host": "127.0.0.1:8396",
    28. "sec-fetch-mode": "navigate",
    29. "accept": "text/html,application/xhtml+xml,application/xml;q\u003d0.9,image/webp,image/apng,*/*;q\u003d0.8,application/signed-exchange;v\u003db3",
    30. "user-agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Ubuntu Chromium/76.0.3809.87 Chrome/76.0.3809.87 Safari/537.36",
    31. "accept-encoding": "gzip, deflate, br",
    32. "referer": "http://127.0.0.1:8396/vulns/004-command-1.jsp",
    33. "sec-fetch-site": "same-origin",
    34. "upgrade-insecure-requests": "1"
    35. },
    36. "server_type": "tomcat",
    37. "client_ip": "",
    38. "server_hostname": "tyy-work",
    39. "source_code": "",
    40. "request_method": "get",
    41. "plugin_confidence": 90,
    42. "request_id": "d65f0a1cf2e24951b3eb34ed25378e75",
    43. "intercept_state": "block",
    44. "server_version": "8.5.30.0",
    45. "server_ip": "127.0.0.1",
    46. "attack_params": {
    47. "command": "cp /etc/passwd /tmp/",
    48. "stack": ["java.lang.UNIXProcess.\u003cinit\u003e", "java.lang.ProcessImpl.start", "java.lang.ProcessBuilder.start", "java.lang.Runtime.exec", "java.lang.Runtime.exec", "java.lang.Runtime.exec", "org.apache.jsp._004_002dcommand_002d1_jsp._jspService", "org.apache.jasper.runtime.HttpJspBase.service", "javax.servlet.http.HttpServlet.service", "org.apache.jasper.servlet.JspServletWrapper.service", "org.apache.jasper.servlet.JspServlet.serviceJspFile", "org.apache.jasper.servlet.JspServlet.service", "javax.servlet.http.HttpServlet.service", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter", "org.apache.catalina.core.ApplicationFilterChain.doFilter", "org.apache.tomcat.websocket.server.WsFilter.doFilter", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter", "org.apache.catalina.core.ApplicationFilterChain.doFilter", "org.apache.catalina.core.StandardWrapperValve.invoke", "org.apache.catalina.core.StandardContextValve.invoke", "org.apache.catalina.authenticator.AuthenticatorBase.invoke", "org.apache.catalina.core.StandardHostValve.invoke", "org.apache.catalina.valves.ErrorReportValve.invoke", "org.apache.catalina.valves.AbstractAccessLogValve.invoke", "org.apache.catalina.core.StandardEngineValve.invoke", "org.apache.catalina.connector.CoyoteAdapter.service", "org.apache.coyote.http11.Http11Processor.service", "org.apache.coyote.AbstractProcessorLight.process", "org.apache.coyote.AbstractProtocol$ConnectionHandler.process", "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun", "org.apache.tomcat.util.net.SocketProcessorBase.run", "java.util.concurrent.ThreadPoolExecutor.runWorker", "java.util.concurrent.ThreadPoolExecutor$Worker.run", "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run", "java.lang.Thread.run"]
    49. },
    50. "plugin_message": "WebShell detected - Executing command: cp /etc/passwd /tmp/",
    51. "path": "/vulns/004-command-1.jsp",
    52. "target": "127.0.0.1",
    53. "event_time": "2019-08-13T20:24:51+0800",
    54. "plugin_algorithm": "command_userinput",
    55. "body":"xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    56. }
    57. ]

    参数说明 :攻击日志数组,包含多条攻击日志,日志字段说明:

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "count":1
    6. }
    7. }
    参数说明
    count成功处理的日志数量

    描述 :根据主机上传类库信息

    请求方法 :POST

    路径 :v1/agent/dependency

    请求体

    1. {
    2. "dependency": [{
    3. "product": "rasp-engine",
    4. "version": "1.3.0",
    5. "vendor": "com.baidu.openrasp",
    6. "path": "/home/work/rasp/rasp-engine.jar",
    7. "source": "pom"
    8. }, {
    9. "product": "rasp-engine",
    10. "version": "7.0.78",
    11. "vendor": "Apache Software Foundation",
    12. "path": "/home/work/rasp/rasp-engine.jar",
    13. "source": "manifest_implementation"
    14. }, {
    15. "product": "Bootstrap",
    16. "version": "7.0.78",
    17. "vendor": "Apache Software Foundation",
    18. "path": "/home/work/rasp/bin/bootstrap.jar",
    19. "source": "manifest_implementation"
    20. }],
    21. "rasp_id": "3089c8d2672efd1ef5c3e322d9e8fcb1"
    22. }

    参数说明

    参数参数类型必须说明
    rasp_idString所属的 RASP
    productString产品名称
    versionString版本号
    vendorString厂商
    pathString类库依赖路径
    sourceString来源

    返回结果

    1. {
    2. "data": {
    3. },
    4. "description": "ok",
    5. "status": 0
    6. }

    上传基线报警日志

    描述 :基线报警内容,基线报警会根据 "stack_trace,rasp_id, policy_id, policy_param “ 几个字段进行去重操作,这几个字段相同的报警只会出现一次。

    请求方法 :POST

    路径 :v1/agent/log/policy

    请求体

    1. [
    2. {
    3. "app_id": "fcbc4d8ac6bcaac27b1cc4703e5339a4aa6e8a1c",
    4. "rasp_id": "426199dc7a15cce89b0c937a65a24a23",
    5. "event_time": "2019-01-04T09:56:48+0000",
    6. "event_type": "security_policy",
    7. "message": "Java security baseline - should not start application server with root account",
    8. "policy_id": "3002",
    9. "policy_params": {
    10. "pid": 431,
    11. "stack":["java.lang.UNIXProcess.\u003cinit\u003e", "java.lang.ProcessImpl.start", "java.lang.ProcessBuilder.start", "java.lang.Runtime.exec", "java.lang.Runtime.exec", "java.lang.Runtime.exec", "org.apache.jsp._004_002dcommand_002d1_jsp._jspService", "org.apache.jasper.runtime.HttpJspBase.service", "javax.servlet.http.HttpServlet.service", "org.apache.jasper.servlet.JspServletWrapper.service", "org.apache.jasper.servlet.JspServlet.serviceJspFile", "org.apache.jasper.servlet.JspServlet.service", "javax.servlet.http.HttpServlet.service", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter", "org.apache.catalina.core.ApplicationFilterChain.doFilter", "org.apache.tomcat.websocket.server.WsFilter.doFilter", "org.apache.catalina.core.ApplicationFilterChain.internalDoFilter", "org.apache.catalina.core.ApplicationFilterChain.doFilter", "org.apache.catalina.core.StandardWrapperValve.invoke", "org.apache.catalina.core.StandardContextValve.invoke", "org.apache.catalina.authenticator.AuthenticatorBase.invoke", "org.apache.catalina.core.StandardHostValve.invoke", "org.apache.catalina.valves.ErrorReportValve.invoke", "org.apache.catalina.valves.AbstractAccessLogValve.invoke", "org.apache.catalina.core.StandardEngineValve.invoke", "org.apache.catalina.connector.CoyoteAdapter.service", "org.apache.coyote.http11.Http11Processor.service", "org.apache.coyote.AbstractProcessorLight.process", "org.apache.coyote.AbstractProtocol$ConnectionHandler.process", "org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun", "org.apache.tomcat.util.net.SocketProcessorBase.run", "java.util.concurrent.ThreadPoolExecutor.runWorker", "java.util.concurrent.ThreadPoolExecutor$Worker.run", "org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run", "java.lang.Thread.run"]
    12. },
    13. "server_hostname": "820c2691f452",
    14. "server_nic": [{
    15. "ip": "172.17.0.2",
    16. "name": "eth0"
    17. }],
    18. "server_type": "tomcat",
    19. "server_version": "7.0.78.0"
    20. }
    21. ]

    参数说明 :基线日志数组,包含多条基线日志,极限报警字段说明:

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "count":1
    6. }
    7. }
    参数说明
    count成功处理的日志数量

    上传异常日志

    描述 :上传异常日志

    请求方法 :POST

    路径 :v1/agent/log/error

    请求体

    1. [
    2. {
    3. "message": "HTTP request to http://scloud.baidu.com:8086/v1/agent/rasp failed:",
    4. "server_nic": [{
    5. "name": "en0",
    6. "ip": "172.24.182.127"
    7. }],
    8. "stack_trace": "sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)\nsun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)\nsun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)\njava.lang.reflect.Constructor.newInstance(Constructor.java:526)\nsun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1676)\nsun.net.www.protocol.http.HttpURLConnection$6.run(HttpURLConnection.java:1674)\njava.security.AccessController.doPrivileged(Native Method)\nsun.net.www.protocol.http.HttpURLConnection.getChainedException(HttpURLConnection.java:1672)\nsun.net.www.protocol.http.HttpURLConnection.getInputStream(HttpURLConnection.java:1245)\ncom.baidu.openrasp.cloud.CloudHttp.request(CloudHttp.java:64)\ncom.baidu.openrasp.cloud.Register$RegisterThread.run(Register.java:54)\njava.lang.Thread.run(Thread.java:745)\n",
    9. "level": "WARN",
    10. "event_time": "2019-01-11T13:36:46+0800",
    11. "app_id": "9b3554a97673f1f8f5c929310298037a660d3b7a",
    12. "pid": 58353,
    13. "server_hostname": "localhost",
    14. "rasp_id": "3089c8d2672efd1ef5c3e322d9e8fcb1"
    15. }
    16. ]

    参数说明 :错误日志数组,包含多条错误日志,字段说明同上文基线报警字段说明。

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "count":1
    6. }
    7. }
    参数说明
    count成功处理的日志数量

    RASP Agent认证接口

    描述 :用于认证 app id 和 app secrete

    请求方法 :POST

    路径 :v1/agent/auth

    请求体 :空

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok"
    4. }

    接口描述

    请求格式

    请求体采用 json 格式,分页页码从 1 开始计数,分页请求格式如下所示:

    1. {
    2. "order":"startTask",
    3. "data":{
    4. .....
    5. }
    6. }

    参数说明

    参数说明
    order任务类型。
    host扫描目标主机

    响应格式

    响应采用 json 格式,示例如下:

    1. {
    2. "data":{
    3. "data":{
    4. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    5. },
    6. "description":"ok",
    7. "register":2,
    8. "status":0
    9. },
    10. "description":"ok",
    11. "status":0
    12. }

    参数说明

    参数说明
    data扫描器返回给云控后台的内容
    app_idAPP 唯一标识
    register扫描器状态:0表示扫描器未连接,1表示正在连接中,2表示扫描器连接成功,3表示接收响应异常,4表示扫描器连接超时
    data.status错误码

    认证方式

    • 增加请求头: Content-Type: application/json

    认证接口

    描述 :获取当前云控后台版本号

    请求方法 :POST

    路径 :v1/iast/version

    请求体 :空

    返回结果

    1. {
    2. "data":{
    3. "version":"1.3"
    4. },
    5. "description":"ok",
    6. "status":0
    7. }

    扫描任务类

    新建扫描

    描述 :为扫描器新建扫描任务

    请求方法 :POST

    路径 :v1/iast

    请求体

    1. {
    2. "order":"startTask",
    3. "data":{
    4. "host":"1.2.3.4",
    5. "port": 80,
    6. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    7. }
    8. }
    参数参数类型必须说明
    orderString任务类型。startTask表示新建扫描
    hostString扫描目标主机
    portString扫描目标端口
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data":{
    3. "data":{
    4. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    5. },
    6. "description":"ok",
    7. "register":2,
    8. "status":0
    9. },
    10. "description":"ok",
    11. "status":0
    12. }
    参数说明
    data扫描器返回给云控后台的内容
    app_idAPP 唯一标识
    register扫描器状态。2表示扫描器连接成功
    data.status错误码:2 并发扫描任务达到限制 , 3 目标正在被其他任务扫描

    修改配置

    描述 :修改目标主机的扫描配置

    请求方法 :POST

    路径 :v1/iast

    请求体

    1. {
    2. "order":"setConfig",
    3. "data":{
    4. "host":"1.2.3.4",
    5. "port":80,
    6. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec",
    7. "config":{
    8. "scan_plugin_status":{
    9. "command_basic":{
    10. "description":"基础命令注入漏洞检测插件",
    11. "enable":true,
    12. "show_name":"命令注入检测插件"
    13. },
    14. ...
    15. },
    16. "scan_rate":{
    17. "max_concurrent_request":20,
    18. "max_request_interval":1000,
    19. "min_request_interval":0
    20. },
    21. "white_url_reg":"^/path/eg",
    22. "scan_proxy":"http://127.0.0.1:8080"
    23. }
    24. }
    25. }
    参数参数类型必须说明
    orderString任务类型。setConfig表示修改配置
    hostString扫描目标主机
    portString扫描目标端口
    app_idStringAPP 唯一标识
    scan_plugin_statusObject配置参数
    scan_rateObject扫描速率设置
    white_url_regStringurl白名单正则
    scan_proxyString扫描请求使用的http代理

    返回结果

    1. {
    2. "data":{
    3. "data":{
    4. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    5. },
    6. "description":"ok",
    7. "register":2,
    8. "status":0
    9. },
    10. "description":"ok",
    11. "status":0
    12. }
    参数说明
    data.status错误码:2 白名单正则不合法, 3 代理协议不为http或https

    获取配置

    描述 :获取目标主机的扫描配置

    请求方法 :POST

    路径 :v1/iast

    请求体

    1. {
    2. "order":"getConfig",
    3. "data":{
    4. "host":"1.2.3.4",
    5. "port": 80,
    6. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    7. }
    8. }
    参数参数类型必须说明
    orderString任务类型。getConfig表示获取配置
    hostString扫描目标主机
    portString扫描目标端口
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data":{
    3. "data":{
    4. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec",
    5. "scan_plugin_status":{
    6. "command_basic":{
    7. "enable":true,
    8. "show_name":"命令注入检测插件",
    9. "description":"xxxx"
    10. }
    11. },
    12. "scan_rate":{
    13. "max_concurrent_request":10,
    14. "max_request_interval":1000,
    15. "min_request_interval":0
    16. },
    17. "white_url_reg":"^/logout"
    18. },
    19. "description":"ok",
    20. "register":2,
    21. "status":0
    22. },
    23. "description":"ok",
    24. "status":0
    25. }
    参数说明
    scan_plugin_status插件开关
    max_concurrent_request最大并发请求数
    max_request_interval最大请求间隔
    min_request_interval最小请求间隔
    app_idAPP 唯一标识

    终止扫描

    描述 :立即终止指定的扫描任务

    请求方法 :POST

    路径 :v1/iast

    请求体

    1. {
    2. "order":"stopTask",
    3. "data":{
    4. "scanner_id":0,
    5. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    6. }
    7. }
    参数参数类型必须说明
    orderString任务类型。getConfig表示获取配置
    scanner_idInt扫描任务id
    app_idStringAPP 唯一标识

    返回结果

    1. {
    2. "data":{
    3. "data":{
    4. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    5. },
    6. "description":"ok",
    7. "register":2,
    8. "status":0
    9. },
    10. "description":"ok",
    11. "status":0
    12. }
    参数说明
    data.status错误码:2 指定的扫描任务不存在,3 终止失败

    扫描数据类

    获取所有目标

    描述 :获取所有安装rasp agent的主机(agent至少发送过一次http请求结果)

    请求方法 :POST

    路径 :v1/iast

    请求体

    1. {
    2. "order":"getAllTasks",
    3. "data":{
    4. "page":1,
    5. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    6. }
    7. }
    参数参数类型必须说明
    app_idStringAPP 唯一标识
    orderString指令参数。"getAllTasks"表示获取所有目标

    返回结果

    1. {
    2. "status":0,
    3. "description":"ok",
    4. "data":{
    5. "total":0,
    6. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec",
    7. "result":[
    8. {
    9. "host":"127.0.0.1",
    10. "port":8010,
    11. "total":2,
    12. "scanned":0,
    13. "failed":0,
    14. "last_time":1571303703
    15. }
    16. ]
    17. }
    18. }

    参数说明

    参数说明
    app_idAPP 唯一标识
    host扫描器返回的数据,接口说明详见
    port端口号
    total该目标下的总url数
    scanned该目标下的扫描的url数
    failed该目标下扫描失败的url数
    last_time最后收到任务的时间

    清空扫描任务

    描述 :清空目标主机的信息(重置为一个未配置的agent状态),或清空url列表

    请求方法 :POST

    路径 :v1/iast

    请求体

    参数参数类型必须说明
    orderString任务类型。cleanTask表示清除任务
    hostString扫描目标主机
    portString扫描目标端口
    url_onlyBool是否仅清空url
    app_idStringAPP 唯一标识
    1. {
    2. "data":{
    3. "data":{
    4. "app_id":"593342c72eb78fc8e7393d0a87b8f3fc54dfbec"
    5. },
    6. "description":"ok",
    7. "register":2,
    8. "status":0
    9. },
    10. "description":"ok",
    11. "status":0
    参数说明
    data.status错误码:2 目标正在被扫描