开发者社区 > 视觉智能 > 文字识别 > 正文

开源堡垒机命令识别、RDP窗口名称和文字识别技术麒麟开源堡垒机



开源堡垒机除了录相,还需要做操作识别,主要的操作识别功能包括:
ssh/telnet 的操作命令识别
ftp/sftp   的操作命令识别
RDP/VNC/X11 的打开窗口 title 识别
RDP/VNC/X11 窗口中的文字识别
RDP   剪切版内容识别
RDP/VNC/X11   键盘记录

对于一个只能录相的开源堡垒机,其可用性是非常差的,因为开源堡垒机的审计功能主要用于事后,如果发生了内部运维事件,并且时间点难以确定,审计员必须面对海量的日志进行识别,由专人对每个会话从头到尾看整个操作录相。而操作过程往往是一瞬间的事,比如几天的操作日志可能有上千个小时,但是出现问题的操作可能只在几秒钟,这时的劳动强度和枯燥程度是相当大的,一个人要从上千小时的录相中找到几秒种的有问题的录相,难度之大可以想像。

我们也曾经出过某电信后台数据库被人删除的问题,那时我们系统的 RDP 识别功能还没有做,所以我们派专人,连续看了七天的日志,最终才找到责任人。
因此,一个开源堡垒机的好坏,不只是操作界面是不是漂亮、日志报表是不是通用,最重要的标准是分析功能是不是好,如果一但分析识别做的到位,当出现问题时,可以大大缩小审计人员的精确程度,直接找到责任人。

开源堡垒机的操作识别功能中, FTP/SFTP 的命令操作开发是最简单的,因为命令本身在协议中有标,开发时只要解开 FTP/SFTP 的协议流,可以直接得到。

ssh/telnet 的命令识别是较难的功能,因为ssh/telnet 对于命令在协议中是没有标注的,和在屏上其它回显一样,都是一个一个的字符,实际开发中,很通在实际回显中找到哪个是命令,哪个是回显,而键盘记录,只能对命令识别有帮助,并不能通过键盘记录来记录到命令,因为敲击键盘的时候,用户有可能在 vi 等行编辑器中,这时操作的并不是命令而且一些文件编辑,另外目前的 linux bash 中有很多快捷键,比如命令可以通过上翻找到,可以用 TAB 补齐,此外,运维人员在输入命令的时候,用退格去修改等也会造成命令识别无法通过键盘记录来实现,ssh/telnet 的命令识别,只能通过将键盘与回显关联的方式识别,程序在判断用户键盘击打顺序的同时,判断回显字符,当出现回车的时候,将前面的所有键盘记录下来,并且在回显中进行一些判断,就可以准确的记录用户操作的命令,这种模式,代理程序还必须判断的出用户是不是在 vi 等编辑器模式中,麒麟开源开源堡垒机系统的ssh/telnet 命令识别开发周期大约为 2 个月,后期做了很多的修改,目前命令识别率达到了 99.9% 。

RDP/X11/VNC 的窗口 title 识别和窗口内部文字识别,可以说是一个业界的难题,因为 RDP 整个显示没有字符,完全是通过 GDI 函数绘出,因此,即使解开了 RDP 的流,也无法从流中得到任何文字 ,因为全部是 GDI 函数绘出的图形,麒麟开源开源堡垒机的 RDP/X11/VNC 窗口的识别开发周期大约为 4 个月,目前已经可以识别出窗口标题和内部操作文字。
此外, RDP 的键盘记录、剪切版记录也可以在协议中识别,键盘记录比较键盘,解开 RDP 协议即可得到剪切版复杂些,因为涉及内部文字编码识别。
以后会在其它文章中详细描述这些识别技术的原理。

展开
收起
linziyuan 2016-04-09 12:35:06 6237 0
0 条回答
写回答
取消 提交回答

文字识别技术可以灵活应用于证件文字识别、发票文字识别、文档识别与整理等行业场景,满足认证、鉴权、票据流转审核等业务需求。

相关电子书

更多
阿里云智能-印刷文字识别OCR-产品介绍 立即下载
阿里巴巴读光OCR 立即下载
印刷文字识别算法设计与在线服务 立即下载