首页> 中国专利> 一种计算机系统安全性评估方法与系统

一种计算机系统安全性评估方法与系统

摘要

本发明涉及USB设备安全领域,尤其为一种计算机系统安全性评估方法与系统,将BadUSB插入计算机后,Arduino通过串口1和计算机通信,BadUSB内部,arduino通过串口2和WiFi芯片固件通信,首先增加串口协议,用于arduino对sd卡进行操作并和ESP8266进行数据通信,其次修改Arduino的固件,增加通过SPI接口操作sd卡功能,并把获取的结果通过字符串发送到串口2供ESP8266使用,修改WiFi芯片ESP8266固件,增加web界面管理sd卡,并通过串口2来解析sd卡相关数据,通过扩展sd卡读、写操作,增加了BadUSB存储空间,扩展了使用方式,既可以用于保存文件用于信息收集,也可以用于存储脚本、程序,再通过指令从sd卡加载,扩展了使用方式,增加了灵活性和便利性。

著录项

  • 公开/公告号CN112287356A

    专利类型发明专利

  • 公开/公告日2021-01-29

    原文格式PDF

  • 申请/专利权人 西安四叶草信息技术有限公司;

    申请/专利号CN202011250849.6

  • 发明设计人 余俊峰;罗铭羡;田铭;赵培源;

    申请日2020-11-11

  • 分类号G06F21/57(20130101);H04L29/06(20060101);H04L29/08(20060101);

  • 代理机构61260 西安泛想力专利代理事务所(普通合伙);

  • 代理人李思源

  • 地址 710000 陕西省西安市高新区鱼化街办软件新城天谷八路156号云汇谷C2楼1701室

  • 入库时间 2023-06-19 09:44:49

说明书

技术领域

本发明涉及USB设备安全领域,具体为一种计算机系统安全性评估方法与系统。

背景技术

目前USB总线广泛应用于计算机设备中,用户可以使用USB总线方便的为计算机设备接入各种各样的外接设备:鼠标、键盘、移动硬盘等等。在方便用户的同时,也存在着相应的安全风险,比如:恶意的HID设备——BadUSB。HID类设备属于人机交互操作设备,用于控制计算机操作,比如USB鼠标、USB键盘等。所以BadSUB一旦插入计算机,就可以模拟鼠标、键盘对电脑进行操作,通过对BadUSB进行编程刷入固件,即可在插入计算机时自动执行特定操作。如果计算机系统USB端口没有任何安全防护,通过BadUSB可以对计算机执行文件读写、运行指定程序等,通过这种方式可以用于计算机系统安全性评估。

目前市面上有下面几种类型的BadUSB:

1.传统的BadUSB。只支持键盘、鼠标操作,每次只能执行固定脚本,要更改脚本必须重新编写脚本并刷入固件。

2.带sd卡扩展槽的BadUSB。sd卡扩展槽可以插入sd卡作为存储使用,使用更方便,既可以用于把BadUSB收集到的计算机信息保存到sd卡,也可以从sd卡加载预置脚本来执行。

3.带WiFi芯片的BadUSB。由于自带WiFi芯片,当BadUSB插入计算机后,可以连接指定WiFi,也可以自动创建WiFi热点,这样在WiFi信号范围内,可以利用其它计算机或手机接入热点,对BadUSB实现远程控制,动态下发脚本,使用方式更灵活。刷入开源固件后,可以通过web界面或app进行远程操作。

4.带WiFi芯片且带sd卡扩展槽的BadUSB。这种设备结合了WiFi可以远程下发脚本的优点,也具有sd卡很大的存储空间,但目前没有可以使用的固件,但可以使用带WiFi芯片的BadUSB的开源固件,该固件没有对sd卡进行支持,sd卡无法发挥作用。

目前市面上功能最强大的是带WiFi芯片且带sd卡扩展槽的BadUSB,但在使用过程中存在开源固件没有支持sd卡扩展槽,插上sd卡也无法使用和目前的BadUSB受限于单片机系统空间,可以编写的脚本有代码量限制,代码量太大则会超过单片机系统内存,导致无法运行。因此无法将体积较大的可执行程序内置到代码中,只能通过网络下载,一旦目标计算机没有联网,则无法实施测试的问题,因此,针对上述问题提出一种计算机系统安全性评估方法与系统。

发明内容

本发明的目的在于提供一种计算机系统安全性评估方法与系统,以解决上述背景技术中提出的问题。

为实现上述目的,本发明提供如下技术方案:

一种计算机系统安全性评估方法与系统,BadUSB插入计算机后,Arduino通过串口1和计算机通信,BadUSB内部,arduino通过串口2和WiFi芯片固件通信。

优选的,包括以下步骤:

步骤一:增加串口协议,用于arduino对sd卡进行操作并和ESP8266进行数据通信,协议定义为操作命令+命令分隔符+参数1+参数分隔符+参数2+结束符;

步骤二:在Arduino固件增加操作协议,协议为ListFileFromSd时,文件夹路径\n,表示读取指定文件夹路径中的文件和文件夹信息,以字符串形式通过串口输出;协议为ReadFileFromSd时,文件名\n,表示读取sd卡指定文件名,并通过串口输出文件内容;协议为WriteFileToSd时,文件名|文件内容\n,表示通过串口写入文件内容到sd卡指定文件名。如果文件不存在则自动创建,文件存在则把文件内容追加到文件末尾;协议同时支持串口1和串口2;

步骤三:修改Arduino的固件,增加通过SPI接口操作sd卡功能,并把获取的结果通过字符串发送到串口2供ESP8266使用,具体代码在Arduino的loop函数中编写,当串口1/串口2接收到数据时(ESP8266发送过来的数据)时,先读取串口1/串口2数据,直到读到结束符,这样得到一个完整的串口操作协议数据data,然后对data进行解析,得到操作命令和参数,其次对不同的操作命令进行处理;

步骤四:在ESP8266固件增加操作协议,协议SdFilesList为文件和文件夹信息字符串\n,当ListFileFromSd执行完成后,得到文件和文件夹信息的字符串,然后拼接在“SdFilesList:”之后,发送给ESP8266,ESP8266接收到“SdFilesList”命令后,通过解析参数字符串,得到文件和文件夹列表信息,协议SdFileContent为文件名|文件内容\n,当ReadFileFromSd执行完成后,得到文件内容,然后拼接在“SdFileContent:”之后,发送给ESP8266,ESP8266接收到“SdFileContent”命令后,通过解析参数字符串,得到文件名和文件内容;

步骤五:修改WiFi芯片ESP8266固件,增加web界面管理sd卡,并通过串口2来解析sd卡相关数据,增加sd卡管理web界面,在原始web界面上增加超链接“SD卡管理”功能,当点击该超链接后,浏览器请求“/sdcardmanager”接口,进入sd卡管理web页面,进入sd卡管理页面后,ESP8266向串口2发送读取sd卡根目录文件指令:“ListFileFromSd:/\n”.并提示用户等5秒后再次访问页面即可显示结果。然后读取全局变量sd_file_list,该变量保存了“SdFilesList”操作命令的参数字符串,即sd卡文件和文件夹信息。如果该变量为空则返回,如果不为空则从该字符串解析出文件名称、文件大小、文件夹名称等信息,然后将这些信息拼接成html的表格代码,表格中有3列,分别为文件名、文件大小、获取文件内容,如果是文件夹则在文件大小列显示为“directory”,在获取文件内容列不显示,如果是文件则在获取文件内容列中显示一个按钮,点击按钮则浏览器请求“/getfile?payload=”接口(payload后面拼接当前行的文件名),进入sd卡文件获取界面,把这些html表格代码返回到页面上,即可展示出sd卡文件和文件夹列表信息,当进入sd卡文件获取界面,先解析出“payload”参数得到要操作的文件名,例如1.txt,然后ESP8266向串口2发送读取sd卡文件内容的指令,“ReadFileFromSd:1.txt\n”,并提示用户检查web服务器接收数据,如果需要通过web界面向sd卡写入文件,点击sd卡管理界面的超链接“写入文件到sd卡”,进入sd卡写入界面,sd卡写入界面提供两个文本框,一个是待写入文件名,例如输入2.txt,另一个是待写入文件内容,例如输入“abcdef”,点击“写入sd卡”按钮,则ESP8266通过串口2发送写入文件指令:"WriteFileToSd:2.txt|abcdef\n",然后Arduino会接收到该指令完成写入文件操作,在ESP8266代码的loop函数中编写,当串口2接收到数据时,读取串口2数据,直到读到结束符,这样得到一个完整的串口操作协议数据data,然后对data进行解析,得到操作命令和参数,如果操作命令为SdFilesList,则先解析出sd卡文件名文件大小、和文件夹名称,保存到全局变量sd_file_list中,如果操作命令为SdFileContent,则先解析出sd卡文件名和文件内容,进行json格式封装后,然后使用http协议通过post发送到指定服务器,例如:192.168.1.10:8000/sdfilecontent。服务器地址可以在web界面进行修改;

步骤六:web服务器运行web解析程序,只提供一个“/sdfilecontent”后台接口,当服务器接收到post请求后,解析json格式后,得到文件名和文件内容,然后以文件名创建文件,把文件内容写入到该文件中。这样sd卡文件就通过串口在经过http协议发送到了服务器上。

优选的,所述在增加串口协议时,命令分隔符为英文半角冒号(:),参数分隔符为英文半角|,结束符为\n(\n表示回车符),如果只有一个参数则不需要参数分隔符和参数2。

优选的,所述在Arduino固件增加操作协议时,协议为ListFileFromSd时,文件夹路径\n,表示读取指定文件夹路径中的文件和文件夹信息,以字符串形式通过串口输出;协议为ReadFileFromSd时文件名\n,表示读取sd卡指定文件名,并通过串口输出文件内容;协议为WriteFileToSd时文件名|文件内容\n,表示通过串口写入文件内容到sd卡指定文件名。如果文件不存在则自动创建,文件存在则把文件内容追加到文件末尾。

优选的,所述在对不同的操作命令进行处理时,如果操作命令为ListFileFromSd,则先解析出要获取文件列表的文件夹路径,然后调用SD.open函数打开该文件夹路径,再遍历文件和文件夹,如果是文件则拼接成字符串:文件名绝对路径|文件大小#,如果是文件夹则拼接成:文件夹绝对路径#,把所有字符串拼接到一起,通过串口1/串口2发送。

优选的,所述在对不同的操作命令进行处理时,如果操作命令为ReadFileFromSd,则先解析出要读取的文件名,然后调用SD.open函数打开该文件名,再按行读取文件内容,再通过串口1/串口2发送。

优选的,所述在对不同的操作命令进行处理时,如果操作命令为WriteFileToSd,则先解析出文件名参数和文件内容参数,然后调用SD.open函数打开该文件名,如果文件存在则把文件内容追加到末尾,然后关闭文件;如果文件不存在,则创建该文件,然后把文件内容写入文件,最后关闭文件。

与现有技术相比,本发明的有益效果是:

1、本发明中,通过扩展sd卡读、写操作,增加了BadUSB存储空间,扩展了使用方式,既可以用于保存文件用于信息收集,也可以用于存储脚本、程序,再通过指令从sd卡加载,扩展了使用方式,增加了灵活性和便利性;

2、本发明中,通过增加sd卡web管理界面,可以通过WiFi远程对sd卡进行文件读、写,在实际使用过程中,可以动态向sd卡读、写文件,使用更灵活;

3、本发明中,可以通过串口对sd卡进行读写操作,也可以通过web界面对sd卡进行操作,高效利用了sd卡,增加了这些操作之后,可以把较大的可执行程序保存到sd卡,然后只需要通过BadUSB在目标计算机中运行powershell脚本,通过powershell脚本从串口把sd卡中的可执行程序加载到内存执行,或写入目标计算机并执行,这样就不受可执行程序大小限制,使用非常方便,还可以通过ESP8266提供的网络通过串口和http协议把sd卡文件发送到web服务器,极大的方便了团队远程协作

附图说明

图1为本发明的系统示意图;

图2为本发明显示sd卡文件和文件夹列表信息的示意图。

具体实施方式

实施例:

请参阅图1-2,本发明提供一种技术方案:

一种计算机系统安全性评估方法与系统,BadUSB插入计算机后,Arduino通过串口1和计算机通信,BadUSB内部,arduino通过串口2和WiFi芯片固件通信。

包括以下步骤:

步骤一:增加串口协议,用于arduino对sd卡进行操作并和ESP8266进行数据通信,协议定义为操作命令+命令分隔符+参数1+参数分隔符+参数2+结束符,所述在增加串口协议时,命令分隔符为英文半角冒号(:),参数分隔符为英文半角|,结束符为\n(\n表示回车符),如果只有一个参数则不需要参数分隔符和参数2;

步骤二:在Arduino固件增加操作协议,协议为ListFileFromSd时,文件夹路径\n,表示读取指定文件夹路径中的文件和文件夹信息,以字符串形式通过串口输出;协议为ReadFileFromSd时文件名\n,表示读取sd卡指定文件名,并通过串口输出文件内容;协议为WriteFileToSd时文件名|文件内容\n,表示通过串口写入文件内容到sd卡指定文件名。如果文件不存在则自动创建,文件存在则把文件内容追加到文件末尾,协议同时支持串口1和串口2;

步骤三:修改Arduino的固件,增加通过SPI接口操作sd卡功能,并把获取的结果通过字符串发送到串口2供ESP8266使用,具体代码在Arduino的loop函数中编写,当串口1/串口2接收到数据时(ESP8266发送过来的数据)时,先读取串口1/串口2数据,直到读到结束符,这样得到一个完整的串口操作协议数据data,然后对data进行解析,得到操作命令和参数,其次对不同的操作命令进行处理,如果操作命令为ListFileFromSd,则先解析出要获取文件列表的文件夹路径,然后调用SD.open函数打开该文件夹路径,再遍历文件和文件夹,如果是文件则拼接成字符串:文件名绝对路径|文件大小#,如果是文件夹则拼接成:文件夹绝对路径#,把所有字符串拼接到一起,通过串口1/串口2发送,如果操作命令为ListFileFromSd,则先解析出要获取文件列表的文件夹路径,然后调用SD.open函数打开该文件夹路径,再遍历文件和文件夹,如果是文件则拼接成字符串:文件名绝对路径|文件大小#,如果是文件夹则拼接成:文件夹绝对路径#,把所有字符串拼接到一起,通过串口1/串口2发送,如果操作命令为ReadFileFromSd,则先解析出要读取的文件名,然后调用SD.open函数打开该文件名,再按行读取文件内容,再通过串口1/串口2发送。

所述在对不同的操作命令进行处理时,如果操作命令为WriteFileToSd,则先解析出文件名参数和文件内容参数,然后调用SD.open函数打开该文件名,如果文件存在则把文件内容追加到末尾,然后关闭文件;如果文件不存在,则创建该文件,然后把文件内容写入文件,最后关闭文件;

步骤四:在ESP8266固件增加操作协议,协议SdFilesList为文件和文件夹信息字符串\n,当ListFileFromSd执行完成后,得到文件和文件夹信息的字符串,然后拼接在“SdFilesList:”之后,发送给ESP8266,ESP8266接收到“SdFilesList”命令后,通过解析参数字符串,得到文件和文件夹列表信息,协议SdFileContent为文件名|文件内容\n,当ReadFileFromSd执行完成后,得到文件内容,然后拼接在“SdFileContent:”之后,发送给ESP8266,ESP8266接收到“SdFileContent”命令后,通过解析参数字符串,得到文件名和文件内容;

步骤五:修改WiFi芯片ESP8266固件,增加web界面管理sd卡,并通过串口2来解析sd卡相关数据,增加sd卡管理web界面,在原始web界面上增加超链接“SD卡管理”功能,当点击该超链接后,浏览器请求“/sdcardmanager”接口,进入sd卡管理web页面,进入sd卡管理页面后,ESP8266向串口2发送读取sd卡根目录文件指令:“ListFileFromSd:/\n”.并提示用户等5秒后再次访问页面即可显示结果。然后读取全局变量sd_file_list,该变量保存了“SdFilesList”操作命令的参数字符串,即sd卡文件和文件夹信息。如果该变量为空则返回,如果不为空则从该字符串解析出文件名称、文件大小、文件夹名称等信息,然后将这些信息拼接成html的表格代码,表格中有3列,分别为文件名、文件大小、获取文件内容,如果是文件夹则在文件大小列显示为“directory”,在获取文件内容列不显示,如果是文件则在获取文件内容列中显示一个按钮,点击按钮则浏览器请求“/getfile?payload=”接口(payload后面拼接当前行的文件名),进入sd卡文件获取界面,把这些html表格代码返回到页面上,即可展示出sd卡文件和文件夹列表信息,当进入sd卡文件获取界面,先解析出“payload”参数得到要操作的文件名,例如1.txt,然后ESP8266向串口2发送读取sd卡文件内容的指令,“ReadFileFromSd:1.txt\n”,并提示用户检查web服务器接收数据,如果需要通过web界面向sd卡写入文件,点击sd卡管理界面的超链接“写入文件到sd卡”,进入sd卡写入界面,sd卡写入界面提供两个文本框,一个是待写入文件名,例如输入2.txt,另一个是待写入文件内容,例如输入“abcdef”,点击“写入sd卡”按钮,则ESP8266通过串口2发送写入文件指令:"WriteFileToSd:2.txt|abcdef\n",然后Arduino会接收到该指令完成写入文件操作,在ESP8266代码的loop函数中编写,当串口2接收到数据时,读取串口2数据,直到读到结束符,这样得到一个完整的串口操作协议数据data,然后对data进行解析,得到操作命令和参数,如果操作命令为SdFilesList,则先解析出sd卡文件名文件大小、和文件夹名称,保存到全局变量sd_file_list中,如果操作命令为SdFileContent,则先解析出sd卡文件名和文件内容,进行json格式封装后,然后使用http协议通过post发送到指定服务器,例如:192.168.1.10:8000/sdfilecontent。服务器地址可以在web界面进行修改;

步骤六:web服务器运行web解析程序,只提供一个“/sdfilecontent”后台接口,当服务器接收到post请求后,解析json格式后,得到文件名和文件内容,然后以文件名创建文件,把文件内容写入到该文件中。这样sd卡文件就通过串口在经过http协议发送到了服务器上。

本发明使用web界面对sd卡进行操作,支持:从sd卡读文件,往sd卡写入文件,可以把预先写好的脚本保存到sd卡,在需要使用时可以通过web界面直接调用相应文件即可,同时可以把较大的可执行程序保存到sd卡,然后只需要在目标计算机中运行powershell脚本,通过powershell脚本从串口把sd卡中的可执行程序加载到内存执行,或写入目标计算机并执行,这样就不受可执行程序大小限制。

增加串口协议时,分隔符、结束符也可以是其他符号,保持两边协议使用相同可以使用,同时协议中的操作命令也可以是其他英文单词组合或英文字母,只要两边协议使用相同即可使用。

工作流程:通过串口加载sd卡中程序并运行,测试人员将BadUSB插入目标计算机,BadUSB写入目标计算机一个powershell脚本A并执行,A脚本完成的功能是通过串口从sd卡读入较大的目标程序并写到目标计算机并执行;收集信息并发送到web服务器,测试人员创建WiFi热点A,预先在BadUSB的sd卡中保存好信息收集程序,配置好web服务器,然后将BadUSB插入目标计算机,BadUSB接入WiFi热点A,然后自动通过串口把sd卡中的信息收集程序写入目标计算机或通过powershell在内存中执行信息收集程序,当信息收集完成后,把收集的信息再通过串口保存到sd卡文件B中,试人员通过BadUSB web界面浏览sd卡文件列表,当发现文件B生成后,再通过web界面执行文件获取操作,BadUSB则会通过WiFi把收集到的文件B发送到web服务器。然后通过获取的文件B内容,分析目标计算机是否存在安全风险。

本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实例的说明只是用于帮助理解本发明的方法及其核心思想。以上所述仅是本发明的优选实施方式,应当指出,由于文字表达的有限性,而客观上存在无限的具体结构,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进、润饰或变化,也可以将上述技术特征以适当的方式进行组合;这些改进润饰、变化或组合,或未经改进将发明的构思和技术方案直接应用于其它场合的,均应视为本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号