CN113806715A - 嵌入式设备sdk安全性分析方法 - Google Patents

嵌入式设备sdk安全性分析方法 Download PDF

Info

Publication number
CN113806715A
CN113806715A CN202010545718.4A CN202010545718A CN113806715A CN 113806715 A CN113806715 A CN 113806715A CN 202010545718 A CN202010545718 A CN 202010545718A CN 113806715 A CN113806715 A CN 113806715A
Authority
CN
China
Prior art keywords
authentication
code
protocol
sdk
detection
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN202010545718.4A
Other languages
English (en)
Other versions
CN113806715B (zh
Inventor
谷大武
张一苇
金宣成
李卷孺
陈泽元
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Jiaotong University
Original Assignee
Shanghai Jiaotong University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Shanghai Jiaotong University filed Critical Shanghai Jiaotong University
Priority to CN202010545718.4A priority Critical patent/CN113806715B/zh
Publication of CN113806715A publication Critical patent/CN113806715A/zh
Application granted granted Critical
Publication of CN113806715B publication Critical patent/CN113806715B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1441Countermeasures against malicious traffic

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer And Data Communications (AREA)

Abstract

一种嵌入式设备SDK安全性分析方法,依次利用认证协议自动还原技术对嵌入式设备SDK的认证机制进行安全检测、利用通信协议逻辑自动检测技术对嵌入式设备SDK的通信过程进行安全检测以及利用嵌入式设备三方代码分离技术,将嵌入式设备SDK中的厂商自定义代码与三方代码分离,利用基于搜索引擎的漏洞报告检测技术,对三方代码进行安全检测,利用嵌入式设备密码误用检测与内存安全检测技术,对厂商自定义代码进行安全检测,最后生成代码安全性报告。本发明支持在设备开发阶段进行代码安全分析,支持主要的业务逻辑安全分析,提升了当前嵌入式设备安全分析的覆盖范围和分析效果。

Description

嵌入式设备SDK安全性分析方法
技术领域
本发明涉及的是一种信息安全领域的技术,具体是一种基于业务逻辑提取和不安全代码扫描的嵌入式设备SDK安全性分析方法。
背景技术
由于嵌入式设备通常使用定制的硬件和软件配置,不同的设备具有不同的体系结构,增加了安全分析的难度。目前,对于嵌入式设备的安全分析主要针对设备固件,其常用方法包括源代码分析和二进制文件分析。
由于嵌入式设备制造商通常不提供设备固件组成及源代码的信息,开发人员很难实施基于源代码的设备安全性分析;在大多数情况下,安全分析人员只能通过二进制文件检测嵌入式设备的漏洞,但是这种方法无法获知固件源代码的语义,从而使得安全分析变得困难。
针对嵌入式设备的安全分析技术大多针对设备固件开展扫描,属于产品发布后的安全分析;在产品开发阶段,同样需要安全分析,而对于嵌入式设备开发的核心组件——嵌入式设备SDK,目前缺乏有效的安全分析方法。嵌入式设备SDK是为了方便物联网领域开发人员使用嵌入式系统和C语言开发智能设备快速接入物联网云平台的软件开发工具包,提供了嵌入式设备与云平台侧进行双向通信的能力。
此外,除了使用条件严格和检测准确率低问题,现有基于源代码或二进制文件的安全性分析技术大多针对代码本身实现的问题,并没有对于嵌入式设备认证逻辑和通信逻辑进行安全性分析,因此安全分析过程并不全面。
发明内容
本发明针对现有技术存在的上述不足,提出一种嵌入式设备SDK安全性分析方法,支持在设备开发阶段进行代码安全分析,支持主要的业务逻辑安全分析,提升了当前嵌入式设备安全分析的覆盖范围和分析效果。
本发明是通过以下技术方案实现的:
本发明涉及一种基于业务逻辑提取和不安全代码扫描的嵌入式设备SDK安全性分析方法,依次利用认证协议自动还原技术对嵌入式设备SDK的认证机制进行安全检测、利用通信协议逻辑自动检测技术对嵌入式设备SDK的通信过程进行安全检测以及利用嵌入式设备三方代码分离技术,将嵌入式设备SDK中的厂商自定义代码与三方代码分离,利用基于搜索引擎的漏洞报告检测技术,对三方代码进行安全检测,利用嵌入式设备密码误用检测与内存安全检测技术,对厂商自定义代码进行安全检测,最后生成代码安全性报告。
本发明涉及一种实现上述方法的系统,包括:输入模块、认证安全检测模块、通信安全检测模块以及自定义代码检测模块,其中:输入模块与嵌入式设备SDK源代码相连并传输源码信息,认证检测模块与输入模块相连并传输认证协议模型信息,通信安全检测模块与输入模块相连并传输通信过程模型信息,自定义代码检测模块与输入模块相连并传输嵌入式设备三方代码分离技术生成的自定义部分代码。
技术效果
本发明整体解决了嵌入式设备安全分析在缺乏源代码时准确率不高的问题。本发明包含认证机制安全检测、通信过程安全检测模块,具有较全面的嵌入式设备安全问题覆盖率,在开发阶段即可对设备对应的代码安全性进行分析并支持对典型的业务逻辑(比如设备云端双向认证与通信)的安全分析。
与现有技术相比,本发明可以通过对不同设备厂商开发SDK的分析来发现嵌入式设备以及嵌入式操作系统的安全问题;不需要设备源代码和二进制文件的支持,具有较广泛的应用范围;本发明针对嵌入式设备厂商SDK源代码进行分析,具有较高的准确率。
附图说明
图1为本发明整体流程图;
图2为嵌入式设备认证机制安全检测流程图;
图3为嵌入式设备通信过程安全性检测流程图;
图4为嵌入式设备三方代码与自定义代码安全检测流程图。
具体实施方式
如图1所示,为本实施例涉及一种基于SDK的嵌入式设备安全性方法,包括以下步骤:
步骤1)接收嵌入式设备SDK源代码;
步骤2)通过文献提取技术,审查嵌入式设备SDK使用文档、产品说明以及SDK源代码,提取出将嵌入式设备的认证模块,再使用认证协议形式化技术将其认证流程进行描述,用于后续的检测分析。
所述的文献提取技术是指:编写脚本收集不同嵌入式设备SDK使用文档、产品说明以及SDK源代码,使用不同的关键词查找其中与不同模块的说明,将其复制加载到同一文档中,统一进行处理。
所述的提取是指:建立关键词匹配集合,例如对于认证机制,使用{“认证协议”、“认证机制”、“认证方法”、“认证”、“身份验证”、“身份校验”、“身份识别”}的匹配集合,检索下载文档中的说明,将针对不同模块、使用不同关键词检索到的说明分别复制整理在不同的文档中,以供后续处理。
步骤3)利用认证协议自动化还原技术对嵌入式设备SDK的认证机制进行安全检测,打印得到SDK认证机制安全性分析报告,具体包括:
3.1)通过文献提取技术,获得嵌入式设备的认证文档说明,再使用认证协议形式化方法将认证文档说明描述为认证流程,用于后续的检测分析。
所述的认证协议形式化方法是指:基于经验和语义的方法,对认证文档说明中所描述的协议认证流程进行识别,得到:认证协议的双方实体对象、认证协议所使用的身份标识信息、认证协议请求和认证结果响应。
在嵌入式设备以及物联网的背景环境下,双方实体对象为嵌入式设备和云平台或为嵌入式设备和用户;身份标识信息是在认证双方进行身份认证所交换的唯一标识;认证协议请求为认证双方发送的建立连接请求;认证结果响应为连接请求返回的响应,包含对双方实体对象的身份标识信息的认证结果。
3.2)通过搭建虚拟实验环境模拟识别出的嵌入式设备认证协议客户端,并对模拟出的客户端输入认证协议双方、所使用的身份标识信息,执行嵌入式设备端和云平台测的请求与响应交互过程,对嵌入式设备认证协议进行代码实现,执行脚本编译,运行相关示例以实现嵌入式设备端和云平台侧的请求与响应的交互过程,为后续检测打下基础。
3.3)通过在测试主机上搭建虚拟实验环境,同时对待测试设备SDK进行编译执行以及运行网络流量记录服务,识别出应用层协议数据报文以及数据包格式,再通过正则表达式,对网络流量中的数据报文进行匹配分类后进行认证机制检测。
所述的认证机制检测,包括以下步骤:
a)检索报文中的协议字段,检查嵌入式设备与云端建立连接是否存在相应的认证机制。当检查通过,则进行b)操作;当检查不通过,即不存在认证机制,则输出“无认证机制”的结果,结束嵌入式设备认证机制安全检测过程。
b)检索报文中的身份认证信息字段,检查嵌入式设备与云端的认证机制是否使用静态的身份标识符。当检查通过,即没有使用静态身份标识符,则进行c)操作;当检查不通过,即使用静态身份标识符,则输出“使用静态身份标识符”的结果,继续进行c)操作。
c)列举出嵌入式设备中的敏感信息,与b)步骤中识别出的身份认证信息匹配。当匹配成功,则认为使用了设备敏感信息,输出“使用敏感信息进行身份认证”的结果;否则认为没有使用设备敏感信息进行身份认证。
所述的设备敏感信息包括但不限于:设备MAC地址、设备IMEI码、设备唯一序列号、设备密钥或其他机密信息。
步骤4)利用利用通信协议的自动检测技术对嵌入式设备SDK的通信过程进行安全检查,得到嵌入式设备通信过程中的安全性问题报告,具体包括:
4.1)通过文献提取技术,获得嵌入式设备通信文档说明,再基于经验和语义的方法,对文档中所描述的通信认证流程进行识别并得到:通信协议的双方实体对象、通信协议的版本、通信协议所使用的密码学算法、通信协议的连接请求参数、通信协议连接响应信息。
在嵌入式设备以及物联网的背景环境下,双方实体对象为嵌入式设备和云平台或为嵌入式设备和用户;通信协议的版本为设备所能接受并使用的所有协议版本;密码学算法是指设备SDK自定义密码算法或通信过程中双方协商的标准算法;连接请求参数是指双方发送连接请求中所包含的信息,例如身份标识、随机数、时间戳等;连接响应信息是指双方连接请求确认结果响应,即连请求接消息的下一条消息。
4.2)对在测试主机上搭建虚拟实验环境,对嵌入式设备SDK通信协议进行代码实现,执行脚本编译,运行示例以实现嵌入式设备端和云平台侧的双向通信请求与响应的交互过程,为后续检测打下基础。
4.3)通过嵌入式设备数据包分析技术,对模拟通信过程的数据包进行提取,再利用报文匹配技术,对相应的协议字段进行检索并进行通信协议版本检测。
所述的通信协议版本检测,包括以下步骤:
a)匹配报文中的通信协议字段,检查嵌入式设备与云端通信是否使用不安全的协议。当检查通过,即使用安全的通信协议,则进行操作b);当检查不通过,即没有使用安全的通信协议,则输入“使用不安全的通信协议”的结果,进行操作b)。
b)匹配报文中的协议版本字段,检查嵌入式设备与云端通信是否使用旧版本的协议。当检测通过,即使用了最新版本的通信协议,则进行操作c);当检查不通过,即使用了旧版本的协议,则输出“使用旧版本的通信协议”的结果,进行操作c)。
c)匹配报文中的功能的消息字段,提取出消息格式,并对设备SDK源码进行通信时间戳/随机数分析,检查嵌入式设备与云端通信是否存在防重放机制。当通信使用了固定的时间戳/随机数或没有对时间戳/随机数进行检查,则检查不通过,输出“防重放机制存在安全问题”的结果,结束通信过程安全检测流程。当检查通过,则结束通信过程安全检测流程。
步骤5)利用嵌入式设备三方代码分离方法,将嵌入式设备SDK中的厂商自定义代码与三方代码分离,对这两部分独立分析检测,分别得到三方代码和厂商自定义代码实现中的安全问题,具体包括:
5.1)通过嵌入式设备代码相似性比较技术、代码注释匹配技术以及三方代码API识别技术,将SDK的源代码与可能的三方代码进行比较,确定嵌入式设备SDK中使用的三方代码。
所述的相似性比较是指:列举出可能使用的三方代码,将三方代码与嵌入式设备SDK源代码按照函数划分为基本块,计算每个基本块的相似性指标并逐行进行比较,当相似性达到80%以上,则认为使用了三方代码,其中:相似性指标为
Figure BDA0002540644750000051
所述的代码注释匹配是指:列举出可能使用的三方代码,分别计算三方代码与嵌入式设备SDK源代码中的注释的相似性指标并匹配,当相对相似性达到80%以上,则认为使用了三方代码,其中:相似性指标为
Figure BDA0002540644750000052
所述的三方代码API识别是指:列举出可能使用的三方代码,分别计算三方代码与嵌入式设备SDK源代码中的API名称的相似性指标并进行比较,当相对相似性达到80%以上,则认为使用了三方代码,其中:相似性指标为
Figure BDA0002540644750000053
所述的可能的三方代码的界定规则是:通过分析了多个厂商嵌入式设备SDK源代码,总结并列出其中所使用的三方代码,即认为它们是常见的、可能使用的三方代码。
5.2)检测厂商自定义代码中存在的嵌入式设备内存安全问题和密码误用问题,具体包括:
5.2.1)设置嵌入式设备常见的不安全函数列表,遍历嵌入式设备SDK源代码中的所有文件,搜索每个文件中所使用到的所有函数,检查这些函数是否存在于不安全函数列表中,对于密码函数进一步通过向上递归方法,检查其中包含的敏感参数是否为常量。
所述的不安全函数列表包括:不安全的密码函数和不安全的字符串函数,列表中的每一项为一个三元组{函数名,参数,敏感参数位置}。
5.2.2)搜索代码中包含的每条变量声明语句,保存为本地列表并以其为基础,当变量声明语句没有对变量进行初始化操作,以声明语句为起始继续遍历,查找下一条包含该变量的语句没有进行初始化操作;当有,则记录到列表中,当没有,则认为其没有进行初始化操作,输出“该变量没有进行初始化”的结果,继续查找下一个变量。
所述的本地列表中的每一项为一个四元组{文件名,函数名,变量声明所在位置,是否初始化}。
5.2.3)搜索代码中包含的每条数组和指针赋值语句,保存为本地列表,并以其为基础,检查赋值语句中的长度/大小参数,与数组/指针大小进行比较:当赋值大小小于等于数组/指针大小,则认为不存在安全问题;当赋值大小大于数组/指针大小,则认为其存在数组越界或堆栈溢出的安全问题,输出“存在数组越界/堆栈溢出”的结果。
所述的本地列表中的每一项为一个六元组{文件名,函数名,数组名/指针名,赋值语句位置,赋值函数,赋值参数}。
以上针对嵌入式设备SDK认证协议对象特征提取、通信过程对象特征提取、不安全函数列表设置、嵌入式设备SDK密码误用检测技术、嵌入式设备SDK代码变量搜索技术和数组/指针检索技术均为本发明独创、从未被公开且其工作方式与任何现有文献记载均不相同:本发明中所提到的安全分析方法和技术均在经验和专家知识的基础上,针对嵌入式设备SDK中普遍存在的安全问题重点分析与检测,并且本发明描述了嵌入式设备SDK安全性对象具体特征。
经过具体实际实验测试,实验环境包括一台搭载i5-7300HQ处理器的机器,实验数据集包含若干嵌入式设备SDK、烧录相应嵌入式厂商操作系统的开发板及嵌入式设备,实验结果表明本发明的安全分析方法能够应用于实验数据集中的所有嵌入式设备SDK,并且通过真实开发环境和嵌入式设备的验证,本发明能够检测出嵌入式设备SDK中90%以上的安全问题,包括认证机制安全问题、通信过程安全问题以及代码安全问题,并且没有误报问题。
与现有技术相比,本方法的性能指标提升在于:现有对于嵌入式设备安全分析技术必须要获得嵌入式设备的完整源代码或二进制文件,而本发明方法仅需要嵌入式设备开发所用到的SDK即可完成;现有对于嵌入式设备安全分析技术并没有包含对于认证机制和通信过程等业务逻辑的安全检测,本发明方法能够覆盖包括业务逻辑和代码实现的安全问题检测;此外,本发明针对嵌入式设备的特点,基于经验方法和专家知识实现对嵌入式设备SDK安全分析方法,具有极低的误报率和极高的准确率。
上述具体实施可由本领域技术人员在不背离本发明原理和宗旨的前提下以不同的方式对其进行局部调整,本发明的保护范围以权利要求书为准且不由上述具体实施所限,在其范围内的各个实现方案均受本发明之约束。

Claims (11)

1.一种基于业务逻辑提取和不安全代码扫描的嵌入式设备SDK安全性分析方法,其特征在于,依次利用认证协议自动还原技术对嵌入式设备SDK的认证机制进行安全检测、利用通信协议逻辑自动检测技术对嵌入式设备SDK的通信过程进行安全检测以及利用嵌入式设备三方代码分离技术,将嵌入式设备SDK中的厂商自定义代码与三方代码分离,利用基于搜索引擎的漏洞报告检测技术,对三方代码进行安全检测,利用嵌入式设备密码误用检测与内存安全检测技术,对厂商自定义代码进行安全检测,最后生成代码安全性报告。
2.根据权利要求1所述的方法,其特征是,具体包括以下步骤:
步骤1)接收嵌入式设备SDK源代码;
步骤2)通过文献提取技术,审查嵌入式设备SDK使用文档、产品说明以及SDK源代码,提取出将嵌入式设备的认证模块,再使用认证协议形式化技术将其认证流程进行描述,用于后续的检测分析;
步骤3)利用认证协议自动化还原技术对嵌入式设备SDK的认证机制进行安全检测,打印得到SDK认证机制安全性分析报告;
步骤4)利用利用通信协议的自动检测技术对嵌入式设备SDK的通信过程进行安全检查,得到嵌入式设备通信过程中的安全性问题报告;
步骤5)利用嵌入式设备三方代码分离方法,将嵌入式设备SDK中的厂商自定义代码与三方代码分离,对这两部分独立分析检测,分别得到三方代码和厂商自定义代码实现中的安全问题。
3.根据权利要求2所述的方法,其特征是,所述的文献提取技术是指:编写脚本收集不同嵌入式设备SDK使用文档、产品说明以及SDK源代码,使用不同的关键词查找其中与不同模块的说明,将其复制加载到同一文档中,统一进行处理。
4.根据权利要求2所述的方法,其特征是,步骤1中所述的提取是指:建立关键词匹配集合,例如对于认证机制,使用{“认证协议”、“认证机制”、“认证方法”、“认证”、“身份验证”、“身份校验”、“身份识别”}的匹配集合,检索下载文档中的说明,将针对不同模块、使用不同关键词检索到的说明分别复制整理在不同的文档中,以供后续处理。
5.根据权利要求2所述的方法,其特征是,所述的步骤3包括:
3.1)通过文献提取技术,获得嵌入式设备的认证文档说明,再使用认证协议形式化方法将认证文档说明描述为认证流程,用于后续的检测分析;
3.2)通过搭建虚拟实验环境模拟识别出的嵌入式设备认证协议客户端,并对模拟出的客户端输入认证协议双方、所使用的身份标识信息,执行嵌入式设备端和云平台测的请求与响应交互过程,对嵌入式设备认证协议进行代码实现,执行脚本编译,运行相关示例以实现嵌入式设备端和云平台侧的请求与响应的交互过程;
3.3)通过在测试主机上搭建虚拟实验环境,同时对待测试设备SDK进行编译执行以及运行网络流量记录服务,识别出应用层协议数据报文以及数据包格式,再通过正则表达式,对网络流量中的数据报文进行匹配分类后进行认证机制检测。
6.根据权利要求5所述的方法,其特征是,所述的认证协议形式化方法是指:基于经验和语义的方法,对认证文档说明中所描述的协议认证流程进行识别,得到:认证协议的双方实体对象、认证协议所使用的身份标识信息、认证协议请求和认证结果响应;
在嵌入式设备以及物联网的背景环境下,双方实体对象为嵌入式设备和云平台或为嵌入式设备和用户;身份标识信息是在认证双方进行身份认证所交换的唯一标识;认证协议请求为认证双方发送的建立连接请求;认证结果响应为连接请求返回的响应,包含对双方实体对象的身份标识信息的认证结果。
7.根据权利要求5所述的方法,其特征是,所述的认证机制检测,包括以下步骤:
a)检索报文中的协议字段,检查嵌入式设备与云端建立连接是否存在相应的认证机制,当检查通过,则进行b)操作;当检查不通过,即不存在认证机制,则输出“无认证机制”的结果,结束嵌入式设备认证机制安全检测过程;
b)检索报文中的身份认证信息字段,检查嵌入式设备与云端的认证机制是否使用静态的身份标识符;当检查通过,即没有使用静态身份标识符,则进行c)操作;当检查不通过,即使用静态身份标识符,则输出“使用静态身份标识符”的结果,继续进行c)操作;
c)列举出嵌入式设备中的敏感信息,与b)步骤中识别出的身份认证信息匹配;当匹配成功,则认为使用了设备敏感信息,输出“使用敏感信息进行身份认证”的结果;否则认为没有使用设备敏感信息进行身份认证。
8.根据权利要求2所述的方法,其特征是,所述的步骤4具体包括:
4.1)通过文献提取技术,获得嵌入式设备通信文档说明,再基于经验和语义的方法,对文档中所描述的通信认证流程进行识别并得到:通信协议的双方实体对象、通信协议的版本、通信协议所使用的密码学算法、通信协议的连接请求参数、通信协议连接响应信息;
4.2)对在测试主机上搭建虚拟实验环境,对嵌入式设备SDK通信协议进行代码实现,执行脚本编译,运行示例以实现嵌入式设备端和云平台侧的双向通信请求与响应的交互过程,为后续检测打下基础;
4.3)通过嵌入式设备数据包分析技术,对模拟通信过程的数据包进行提取,再利用报文匹配技术,对相应的协议字段进行检索并进行通信协议版本检测。
9.根据权利要求8所述的方法,其特征是,所述的通信协议版本检测,包括以下步骤:
a)匹配报文中的通信协议字段,检查嵌入式设备与云端通信是否使用不安全的协议;当检查通过,即使用安全的通信协议,则进行操作b);当检查不通过,即没有使用安全的通信协议,则输入“使用不安全的通信协议”的结果,进行操作b);
b)匹配报文中的协议版本字段,检查嵌入式设备与云端通信是否使用旧版本的协议;当检测通过,即使用了最新版本的通信协议,则进行操作c);当检查不通过,即使用了旧版本的协议,则输出“使用旧版本的通信协议”的结果,进行操作c);
c)匹配报文中的功能的消息字段,提取出消息格式,并对设备SDK源码进行通信时间戳/随机数分析,检查嵌入式设备与云端通信是否存在防重放机制;当通信使用了固定的时间戳/随机数或没有对时间戳/随机数进行检查,则检查不通过,输出“防重放机制存在安全问题”的结果,结束通信过程安全检测流程;当检查通过,则结束通信过程安全检测流程。
10.根据权利要求2所述的方法,其特征是,所述的步骤5具体包括:
5.1)通过嵌入式设备代码相似性比较技术、代码注释匹配技术以及三方代码API识别技术,将SDK的源代码与可能的三方代码进行比较,确定嵌入式设备SDK中使用的三方代码;
5.2)检测厂商自定义代码中存在的嵌入式设备内存安全问题和密码误用问题,具体包括:
5.2.1)设置嵌入式设备常见的不安全函数列表,遍历嵌入式设备SDK源代码中的所有文件,搜索每个文件中所使用到的所有函数,检查这些函数是否存在于不安全函数列表中,对于密码函数进一步通过向上递归方法,检查其中包含的敏感参数是否为常量;
5.2.2)搜索代码中包含的每条变量声明语句,保存为本地列表并以其为基础,当变量声明语句没有对变量进行初始化操作,以声明语句为起始继续遍历,查找下一条包含该变量的语句没有进行初始化操作;当有,则记录到列表中,当没有,则认为其没有进行初始化操作,输出“该变量没有进行初始化”的结果,继续查找下一个变量;
5.2.3)搜索代码中包含的每条数组和指针赋值语句,保存为本地列表,并以其为基础,检查赋值语句中的长度/大小参数,与数组/指针大小进行比较:当赋值大小小于等于数组/指针大小,则认为不存在安全问题;当赋值大小大于数组/指针大小,则认为其存在数组越界或堆栈溢出的安全问题,输出“存在数组越界/堆栈溢出”的结果。
11.一种实现上述任一权利要求所述方法的系统,其特征在于,包括:输入模块、认证安全检测模块、通信安全检测模块以及自定义代码检测模块,其中:输入模块与嵌入式设备SDK源代码相连并传输源码信息,认证检测模块与输入模块相连并传输认证协议模型信息,通信安全检测模块与输入模块相连并传输通信过程模型信息,自定义代码检测模块与输入模块相连并传输嵌入式设备三方代码分离技术生成的自定义部分代码。
CN202010545718.4A 2020-06-16 2020-06-16 嵌入式设备sdk安全性分析方法及系统 Active CN113806715B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010545718.4A CN113806715B (zh) 2020-06-16 2020-06-16 嵌入式设备sdk安全性分析方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010545718.4A CN113806715B (zh) 2020-06-16 2020-06-16 嵌入式设备sdk安全性分析方法及系统

Publications (2)

Publication Number Publication Date
CN113806715A true CN113806715A (zh) 2021-12-17
CN113806715B CN113806715B (zh) 2024-04-05

Family

ID=78944308

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010545718.4A Active CN113806715B (zh) 2020-06-16 2020-06-16 嵌入式设备sdk安全性分析方法及系统

Country Status (1)

Country Link
CN (1) CN113806715B (zh)

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1812417A (zh) * 2006-02-28 2006-08-02 西安西电捷通无线网络通信有限公司 接入点的安全接入协议符合性测试方法及其系统
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
KR20080048424A (ko) * 2006-11-28 2008-06-02 히타치 오므론 터미널 솔루션즈 가부시키가이샤 인증시스템 및 인증장치 및 인증 방법
CN102750469A (zh) * 2012-05-18 2012-10-24 北京邮电大学 一种基于开放平台的安全检测系统及其检测方法
CN103780457A (zh) * 2014-01-02 2014-05-07 东南大学 一种基于边界检测的移动智能终端安全检测方法
CN104484607A (zh) * 2014-12-16 2015-04-01 上海交通大学 Android应用程序安全性测试的通用方法及系统
CN104837159A (zh) * 2015-05-11 2015-08-12 上海交通大学 Android平台OAuth协议误用安全检测方法
CN106790078A (zh) * 2016-12-22 2017-05-31 深圳新众诚科技有限公司 一种sdk和电子凭证系统之间的安全通信方法与装置
CN111132143A (zh) * 2019-12-25 2020-05-08 上海交通大学 一体化多媒体智能设备安全保护系统及方法

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1812417A (zh) * 2006-02-28 2006-08-02 西安西电捷通无线网络通信有限公司 接入点的安全接入协议符合性测试方法及其系统
KR20080048424A (ko) * 2006-11-28 2008-06-02 히타치 오므론 터미널 솔루션즈 가부시키가이샤 인증시스템 및 인증장치 및 인증 방법
CN101017458A (zh) * 2007-03-02 2007-08-15 北京邮电大学 基于源代码静态分析的软件安全代码分析器及其检测方法
CN102750469A (zh) * 2012-05-18 2012-10-24 北京邮电大学 一种基于开放平台的安全检测系统及其检测方法
CN103780457A (zh) * 2014-01-02 2014-05-07 东南大学 一种基于边界检测的移动智能终端安全检测方法
CN104484607A (zh) * 2014-12-16 2015-04-01 上海交通大学 Android应用程序安全性测试的通用方法及系统
CN104837159A (zh) * 2015-05-11 2015-08-12 上海交通大学 Android平台OAuth协议误用安全检测方法
CN106790078A (zh) * 2016-12-22 2017-05-31 深圳新众诚科技有限公司 一种sdk和电子凭证系统之间的安全通信方法与装置
CN111132143A (zh) * 2019-12-25 2020-05-08 上海交通大学 一体化多媒体智能设备安全保护系统及方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
MUQING LIU: "Security Analysis of Vendor Customized Code in Firmware of Embedded Device", 《INTERNATIONAL CONFERENCE ON SECURITY AND PRIVACY IN COMMUNICATION SYSTEMS》, 14 June 2017 (2017-06-14) *
孟宪哲: "银行移动应用引入合作方软件开发工具包(SDK)风险分析及防护研究", 《中国金融电脑》, no. 1, 7 January 2019 (2019-01-07) *
马凯: "面向Android生态系统中的第三方SDK安全性分析", 《软件学报》, vol. 29, no. 5, 11 January 2018 (2018-01-11) *

Also Published As

Publication number Publication date
CN113806715B (zh) 2024-04-05

Similar Documents

Publication Publication Date Title
US11188635B2 (en) File authentication method and apparatus
CN105956474B (zh) Android平台软件异常行为检测系统
CN110855676B (zh) 网络攻击的处理方法、装置及存储介质
CN104598815B (zh) 恶意广告程序的识别方法、装置及客户端
US20130191918A1 (en) Identifying Trojanized Applications for Mobile Environments
CN110071924B (zh) 基于终端的大数据分析方法及系统
CN110888838A (zh) 基于对象存储的请求处理方法、装置、设备及存储介质
CN112887388A (zh) 基于沙箱环境的数据处理系统
CN107437088B (zh) 文件识别方法和装置
KR101228902B1 (ko) 클라우드 컴퓨팅 기반 악성코드 분석 지원 시스템
CN111563015A (zh) 数据监控方法及装置、计算机可读介质及终端设备
Akram et al. DroidMD: an efficient and scalable android malware detection approach at source code level
CN115051874B (zh) 一种多特征的cs恶意加密流量检测方法和系统
CN113806715B (zh) 嵌入式设备sdk安全性分析方法及系统
CN115310087A (zh) 一种基于抽象语法树的网站后门检测方法和系统
CN113052729B (zh) 一种手机取证能力验证样品的构建平台及方法
CN111722943B (zh) 基于边缘计算的大数据处理方法及中心云服务器
Kumari et al. Malware and piracy detection in Android applications
Xie et al. Argus: assessing unpatched vulnerable devices on the internet via efficient firmware recognition
Ren et al. DEMISTIFY: Identifying On-device Machine Learning Models Stealing and Reuse Vulnerabilities in Mobile Apps
CN111291044A (zh) 敏感数据识别方法、装置、电子设备及存储介质
CN112988325A (zh) 一种基于用户信息的安卓模拟器识别方法及系统
Cam et al. Detect repackaged android applications by using representative graphs
CN115270139B (zh) 一种IoT设备网络服务自动化漏洞分析方法及系统
KR102623432B1 (ko) 악성코드 메타 정보 수집 장치 및 방법

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant