巧妙利用“慧言”机器人在安全场景中实践

京东云开发者
• 阅读 348

作者:CCO体系 郝帅卫

一、前言

提到机器人在日常工作中充满着让人便利的想法,对于机器人的交互其中比较有名的为“微信公众号/服务号”,可以通过便捷聊天的窗口形式,输入特定的指令可完成对应的动作;这里我们举一个例子:我想输入“查询今日天气”,那么可利用聊天框,发送聊天/语音的形式写到输入框“点击发送”,服务端在收集到查询今日天气指令之后再结合用户的特征信息,完成天气检索/组装,自动的形式以聊天框回复。这样的一个场景就可以节省我们去打其它APP或者网站去查询,直接全部闭环在“微信中”。

公众号虽然强大,但是对于集团内部特别是涉及信息安全就需要利用内部的软件完成以上形式的操作。在之前有对京me的机器人和应用了解,应用需要独立开发/发布/上线一系列环节比较重,后又了解到机器人,但是之前的机器人只能做通过配置好的关键字完成自动回复,无法通过自定义指令返回想要的信息,只能特定一问一答;比如:“我要吃饭”,命中之后,会固定的返回:“大米、馒头、咸菜”.....。再之后京me推出“多轮对话”能力,该能力支持了通过指令的方式,完成与服务端交互,达到灵活定制。这时候再输入“我要吃饭”,那服务端就可以根据不同的时间推送当前时间段的菜谱,甚至关联个人信息之后,可以专门去推荐特色菜系。

前言写了不少,总之来说我们要把他在安全场景中去做一个小的实践,本次的实践由场景需求主导。

二、场景需求

言归正传,所负责与安全漏洞方面工作,在日常工作中会遇到在外部开会或在“路上”等无电脑无内网的情况,这时候如果外部有白帽子/安全人员提交了高危的安全漏洞报告,在外工作人员需要实时了解到该情况就需要用到“移动办公”,在任何有手机有网络的情况下通过京me的聊天快速了解到该报告的内容,去快捷处理,达到及时响应并交由内部可以处理的同学完成响应跟踪。

三、场景设计

根据场景需求的描述,我们需要提炼出关键信息“无电脑”、“无内网”、“移动办公”、“快速响应”;根据关键字的特征,可以想到的就是利用京me中聊天机器人快速完成该操作(ps:已经提前介绍“多轮问答”功能)。

交互场景设计:使用人员通过进入“机器人”聊天框输入“查询”且发送激活该条线路功能,然后根据多轮自助提示完成信息指令交互,服务端在收集到指令信息之后,完成解析/响应。处理人员根据响应结果及时处理。最终在发生该类情况下,可以在看到消息的时间第一时间完成响应处理。

四、技术实现流程图和关键信息拆解

巧妙利用“慧言”机器人在安全场景中实践

人员角色拆解为:使用者和开发者,上述流程图中如果是开发者关注三部分,第一为注册/发布机器人,第二部分机器的多轮对话配置(流程.实体)实际为一个自动化编排的过程,第三部分为服务端,根据多轮对话配置的规则上报的具体关键词信息完成服务处理,最终再返回给机器人,告之最后结果。

通过以上的流程图可以发现在查询漏洞的过程中关键点:先通过关键字,完成对机器人的多轮对话规则命中和激活,再输入规则需要的实体消息,点击发送即可;值得关注的是关于如何获取发布消息的人是谁?该数据获取由机器人提供为固定的获取方式可以参阅机器人开发文档。

备注:推送服务非机器人提供,由京me通知服务提供,需要单独申请。

五、上线效果及场景分析

1、这是一条输入错误指令,机器人无法识别,触发了兜底方案,并给出可以用的指令

巧妙利用“慧言”机器人在安全场景中实践

2、下面是完整的使用流程,对技术实现之后的实际效果

巧妙利用“慧言”机器人在安全场景中实践

3、发送成功结果

巧妙利用“慧言”机器人在安全场景中实践

4、发送查询无权限

巧妙利用“慧言”机器人在安全场景中实践

5、场景分析

机器人适用于移动快速办公和通过指令的方式完成操作,比如:查询XX信息,查询XX汇总,通过XXX,拒绝XXX。本次的场景相比较而说是一个复杂一点的交互,多一层消息推送和外链的查看。

题外话:关于机器人还是有很多场景可以使用,但是因为现在不能推出由服务端主动触达给用户消息,所以就会有一些场景不适用。提个小建议是否可以通过一种订阅的机制,比如订阅了某条多轮对话规则,那机器人针对这个人可以主动的发送消息,这样就可以避免机器人主动给用户带来骚扰。

总体来看,利用机器人纳入到工作中实际业务场景需要去深度分析所负责的业务具体模块和能力,机器人是为了提高效率如果把过重的能力放上来会导致效率低下,总而言之,应场景而生的机器人解放人工劳动力!

注:本文章仅供参考

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
Wesley13 Wesley13
3年前
PPDB:今晚老齐直播
【今晚老齐直播】今晚(本周三晚)20:0021:00小白开始“用”飞桨(https://www.oschina.net/action/visit/ad?id1185)由PPDE(飞桨(https://www.oschina.net/action/visit/ad?id1185)开发者专家计划)成员老齐,为深度学习小白指点迷津。
Easter79 Easter79
3年前
sql注入
反引号是个比较特别的字符,下面记录下怎么利用0x00SQL注入反引号可利用在分隔符及注释作用,不过使用范围只于表名、数据库名、字段名、起别名这些场景,下面具体说下1)表名payload:select\from\users\whereuser\_id1limit0,1;!(https://o
Peter20 Peter20
3年前
mysql中like用法
like的通配符有两种%(百分号):代表零个、一个或者多个字符。\(下划线):代表一个数字或者字符。1\.name以"李"开头wherenamelike'李%'2\.name中包含"云",“云”可以在任何位置wherenamelike'%云%'3\.第二个和第三个字符是0的值wheresalarylike'\00%'4\
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
PHP创建多级树型结构
<!lang:php<?php$areaarray(array('id'1,'pid'0,'name''中国'),array('id'5,'pid'0,'name''美国'),array('id'2,'pid'1,'name''吉林'),array('id'4,'pid'2,'n
Easter79 Easter79
3年前
TurnipBit开发板DIY呼吸的吃豆人教程实例
  转载请以链接形式注明文章来源(MicroPythonQQ技术交流群:157816561,公众号:MicroPython玩家汇)  0x00前言  吃豆人是耳熟能详的可爱形象,如今我们的TurnipBit也集成了这可爱的图形,我们这就让他来呼吸了~。  0x01效果展示  先一起看下最终的成品演示视频:  http:/
Stella981 Stella981
3年前
Jenkins 插件开发之旅:两天内从 idea 到发布(上篇)
本文首发于:Jenkins中文社区(https://www.oschina.net/action/GoToLink?urlhttp%3A%2F%2Fjenkinszh.cn)!huashan(https://oscimg.oschina.net/oscnet/f499d5b4f76f20cf0bce2a00af236d10265.jpg)
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_