本文档适用于应用监管平台主动推送数据给第三方的场景,根据项目实际情况,可能涉及适量的调整。建议的推送规则为:调度推送(每 30 分钟发起一波),每次APP 数量不限直到数据推送完毕,数据为该调度执行间隔产生的新数据且做去重处理,每次推送务必保证握手成功,方可推送第二波数据。
移动数据对接总共需要实现3个接口的对接。其中第三方需要实现前2个接口服务,供安恒调用。
前2个接口服务用于在态势感知大数据平台配置第三方的URL,其中一个用于控制第三方每次批量发送的数据量大小,一个用于控制第三方重新推送全量数据。当完成首次或重新推送全量数据之后,后续第三方只需推送增量数据即可。
第3个接口为安恒态势感知大数据平台用于接收第三方推送信息的具体数据内容信息。
【配置】设置下发批量传送数据量大小size
请求路径: /api/aaa/aaa(由第三方自定义)
接口类型:HTTP
请求方法: POST
数据样例:
{"timestamp": "1513910830000","token": "202cb962ac59075b964b07152d234b70", //上方生成MD5(时间戳+Salt+key)"size": 100}
对应请求返回值:
{"result_code": 200,"msg": "success"}状态码200为成功,否则为失败;
【配置】重新下发全量推送指令
请求路径: /api/bbb/bbb(由第三方自定义)
接口类型:HTTP
请求方法: POST
数据样例:
{"timestamp": "1513910830000","token": "202cb962ac59075b964b07152d234b70" //上方生成MD5(时间戳+Salt+key)}
对应请求返回值:
{"result_code": 200,"msg": "success"}状态码200为成功,否则为失败;
移动APP资产数据信息接收
请求地址: /api/receive/appinfo
接口类型:HTTP
请求方法: POST
认证方式:
认证方式通过在 JSON 体中增加 token 和 timestamp(unix ms 级),其中token=md5(timestamp + HALT + key )而成,用于校验用户。
说明:
timestamp:时间戳(Unix ms 级,13 位)
HALT:盐,值为 bangcle_2020%receive_api%#!=
key:用户 token,需要申请
请求参数:
| 参数 | 类型 | 是否必填 | 说明 |
|---|---|---|---|
| timestamp | timestamp | timestamp | timestamp |
| string | string | string | string |
| 是 | 是 | 是 | 是 |
| token | token | token | token |
| string | string | string | string |
注:
a) 参数以 json 形式 POST
b) 添加时根据数据类型,增加不同的 key-value 值
c) timestamp 以 ms 为单位,以本地时区为准
请求示例:
{"timestamp": "1513910830000","token": "202cb962ac59075b964b07152d234b70",//上方生成MD5(时间戳+Salt+key)"data_type ": "appinfo","total": 1,"data_values": [ {"id":"da0a9fda14776c287b7032544709c394", # 该 APP 的唯一标识,必填# 基本信息"base_info":{"app_logo":"+nxBvIAAAAAXRSTlMAQ", # 以 base64 编码的 png 图标,必填"app_name":"QQ 下载器", # APP 文件名称,必填北京梆梆安全科技有限公司6"app_package":"com.ceh.aEE9Pc1yd", # 主包名,必填"app_version":"1.2.3", # 版本号,必填"file_md5":"ddae987bc1ce87a03e5e559696478d899", #证书 md5,必填"cert_md5":"1469987bc1ce87a03e5e559696478d899", #证书 md5,必填"package_size":"421968", # 文件大小,以字节为单位,必填"appstore":"华为应用市场", # 应用市场名称,必填"app_url":"http://zhushou.2345.com/soft/77220.html", #应用市场APP 详情页地址"download_num":35000, # 下载次数"public_time":"1529653514", # 最新应用发布时间,时间戳"developer":"开发者", # 开发者/运营者"app_category":"游戏", # 应用市场分类"testing_time":"1529653514", # 应用检测时间,Java API 获取"app_description":"一款用来下载资源的软件", # APP 的描述信息},# 所属主体信息"org_info": {"name": "上海太江集团有限公司", # 主体名称"province": "310000", # 注册所在省份; 310000--上海市"city": "310101" # 注册所在市; 310101--上海市黄浦区},# 应用风险信息"eval_info":{"is_illegal":"1", # 是否境外传输行为 0-否 1-有"is_pirate":"1", # 是否盗版 0-否 1-有北京梆梆安全科技有限公司7"is_vulnerable":"1" # 是否有漏洞 0-否 1-有},# 动态检测权限信息"perm_info":[{"raw_name":"BLUETOOTH", # 权限英文名,必填"chinese_name":"蓝牙", # 权限中文名,必填"risk_level":1, # 敏感等级 -1 安全, 0,低, 1 中,2 高 ,必填"is_install_claimed":1, # 是否在安装时申请, 1 是,2 否。"is_rumtime_called":1, # 是否在运行过程中使用, 1 是,2 否。"is_personal":1, # 是否个人信息权限, 1 是,2 否。"description":"描述" # 描述}],#漏洞信息"vuln_info":[{"name":"界面劫持风险", #漏洞名称"check_item":"检测应用是否使用 SD 卡存储数据", #检测目的"test_result":"存在风险(发现 1 处)", #检测结果"risk_level":1, #风险等级 -1 安全, 0,低, 1 中,2 高"detail_desc":"应用程序在加解密时……..", # 漏洞描述"fix_advice":"对数据进行持久化存储的时候,…….", # 解决方案"test_detail":"问题代码...", #检测详情北京梆梆安全科技有限公司8"result_desc":"该应用存在 SD 卡数据泄露风险…….", #检测结果}],# 关联 IP 信息"ip_info":{ #通信域名、IP 地址信息"created_at":"2019-06-17 15:00:53", # 检测时间"app_url":[{"behavior":"fp-it.fengkongcloud.com", # 域名,必填"position":[ # ip 及归属地{"type":1, # 是否境外 IP,0-境内,1-境外"ip":"152.136.10.49", # IP 地址,必填"server_address":"北京 北京市" # IP 地址归属地,必填}]}]}}]}
返回数据样式:
| 参数 | 数据类型 | 是否为空 | 说明 |
|---|---|---|---|
| result_code | int | 否 | 接口返回状态码:200成功,非 200失败 |
| message | string | 否 | 接口返回提示信息 |
code部分接口返回值说明:
| 错误码 | 描述 |
|---|---|
| 200 | success(表示请求成功) |
| 400 | 用户不存在 |
| 401 | 用户验证失败 |
| 402 | 时间戳不正确 |
| 403 | 用户未授权 |
| 404 | 参数不正确 |
| 405 | 数据未授权 |
| 406 | 数据类型不正确 |
返回示例:
{"result_code": 200,"msg": "success"}//状态码200为成功,否则为失败;
