跳至主要内容

博文

目前显示的是 二月, 2019的博文

什么是软件漏洞?

软件安全分析与测试,顾名思义,即通过分析(静态分析)与测试(动态测试)的手段发现软件系统中存在的安全问题。 软件系统中存在的安全问题,最典型的就是安全漏洞。那么什么是安全漏洞? 在生活中,针对软件中出现一些不足(Defect),我们时常听到这样句子: “你写的这个软件有bug” “他们这个软件有缺陷Flaw” “我发现了这个软件的一个安全漏洞Vulnearbility” 问题来了,软件bug, Flaw 以及Vulnerability是一回事吗?如果不是,他们又有什么区别呢? 根据美国马里兰大学帕克分校的 Prof.Michael Hicks 在软件安全课程中的定义: Software  defect  is a problem in the design and implementation of system such that it fails to meet its requirements. Software  flaw  is the defect in the design. Software  bug  is the defect in the implementation. Software  vulnerability  is the security-related defect that can be exploited to effect an undesigned and insecure behavior. 用中文概括下即: Defect统称软件设计与实现中的缺陷。 Flaw 指的是设计上的缺陷。 Bug 指的是实现上的缺陷。 Vulnerability 特指与安全相关,且可被利用进而产生不安全行为的缺陷。 至此,下次我们再听到上述语句时,可以正确的理解为: “你写的这个软件代码实现上有bug”   "他们这个软件设计上有缺陷Flaw" “我发现了这个软件的一个安全漏洞Vulnerability,可以被利用来干XX坏事” 最后,推荐学习coursera上 Prof.Michael Hicks 的Software Security。

什么是IoT Firmware?

软件安全分析与测试,顾名思义,即通过分析(静态分析)与测试(动态测试)的手段发现软件系统中存在的安全问题。 我们的研究对象是软件系统,软件系统多种多样,今天我们重点关注一类特殊的软件,俗称固件,又叫IoT firmware。 那么(1) 什么是IoT? (2)什么又是IoT firmware? IoT,即Internet of Thing, 中文名叫物联网。顾名思义很简单,就是一个物(Thing)连了网(Internet)。实际上呢?也就是这个简单! 概念层面, 我们可以用个等式说明什么是IoT 设备: IoT Device = Embedded Device + Network = Hardware Device + Computation Intelligence + Network 实际的,当然是要举个🌰: 智能冰箱 = 冰箱硬件 (提供低温保存)+ 计算智能(记录监控冰箱内的食物,自动联网采购)+ WIFI。 智能洗衣机 = 传统洗衣机硬件(提供洗衣)+ 计算智能(接受网络付款开始洗衣,基于网络设定洗衣时间)+ WiFI。 智能门锁 = 传统门锁硬件 + 计算智能(接受网络命令,进行网络身份认证进行开关)+ WIFI. 至此,我们来给IoT设备下个非学术化的定义:IoT 设备是一类特殊的嵌入式设备,基于智能单元与网络提升了传统硬件功能的设备。 现在我们对IoT设备有了一定的理解,那么什么是固件(IoT Firmware)呢? 我们先来了解下固件一般是怎么开发的: 首先,我们需要一个开发版(如上图);然后,用笔记本(或台式机)连上开发版,在笔记本本上写好一段程序,经过编译链接程可执行文件;最后,将生成的可执行文件迁移到开发版中微处理器(Microcontroller)的内存(RAM)中(如下图红箭头所示)。 至此,我们知道IoT Firmware就是一段程序,是最终存储运行在微处理器内存中的一段可执行的软件程序。