嵌入式Linux系统安全性探析
- 格式:doc
- 大小:27.50 KB
- 文档页数:6
嵌入式系统设计与开发中的安全性分析随着物联网的发展,嵌入式系统在我们的日常生活中发挥着越来越重要的作用。
然而,嵌入式系统的设计与开发过程中存在一些安全性方面的考虑,这是确保其正常运行和保护用户信息的关键。
本文将深入探讨嵌入式系统设计与开发中的安全性分析,以帮助读者了解并应对相关挑战。
首先,嵌入式系统的安全性分析需考虑潜在的威胁和风险。
在设计阶段,需要进行一项全面和系统的威胁建模,以识别系统中的漏洞和安全漏洞。
安全威胁可以来自多个方面,包括物理攻击、软件漏洞、网络攻击等。
通过深入分析威胁源和潜在的被攻击目标,可以制定相应的安全性策略和措施,从而最大限度地降低潜在风险。
其次,嵌入式系统的安全性分析需要重视身份验证和访问控制。
在设计和开发过程中,应该考虑如何确保只有被授权的用户才能访问系统。
一种常见的方法是使用身份验证机制,例如用户名和密码组合、生物识别技术等。
此外,还可以使用访问控制列表(ACL)来限制不同用户对系统资源的访问权限。
这些安全性措施将帮助防止未授权的访问和潜在的攻击。
第三,嵌入式系统的开发过程中也应该考虑数据安全性的问题。
数据是嵌入式系统的核心组成部分,涉及用户的私人信息和敏感数据。
为了确保数据的机密性和完整性,需要采取适当的措施来加密数据、防止数据泄露和篡改。
例如,使用现代加密算法(如AES)来加密敏感数据,使用数字签名来验证数据的完整性等。
同时,还应保证数据传输过程中的安全性,如使用安全的传输协议(如HTTPS)来防止中间人攻击。
此外,嵌入式系统的安全性分析还需关注漏洞管理和软件更新。
在系统设计和开发过程中,可能会发现一些已知或未知的漏洞。
因此,需要有一个完善的漏洞管理流程来及时发现、评估和修复漏洞。
同时,在系统部署后,及时发布软件更新和补丁程序也是保持系统安全性的重要手段。
通过定期审查系统和应用商店的漏洞公告,用户可以及时了解并安装最新的修复补丁,以防止潜在的攻击。
最后,嵌入式系统的安全性分析也需要关注物理安全性。
嵌入式系统安全性分析与设计随着智能化时代的到来,嵌入式系统的应用范围越来越广泛。
从智能家居,到智能交通,再到智能工厂,嵌入式系统在各个领域都起到了关键性作用。
然而,随着嵌入式系统应用范围的增加,也带来了安全性问题。
嵌入式系统安全性分析与设计成为了重要的关注点。
一、嵌入式系统安全性分析要进行嵌入式系统的安全性分析,首先需要了解嵌入式系统的应用场景。
嵌入式系统一般用于实时嵌入到其他系统中,完成特定的任务。
不同的场景下,对于嵌入式系统的安全性要求也不同。
例如,在可穿戴设备中,对于嵌入式系统的隐私和安全性要求非常高;而在智能家居中,相比于可穿戴设备,安全性要求稍低一些。
因此,首先需要对嵌入式系统的安全性需求进行评估。
基于评估结果,对嵌入式系统进行风险分析。
风险分析可以通过以下步骤进行:1.識別潛在的威脅对于嵌入式系统而言,威脅较为常见的有:未授权访问、信息泄露、拒绝服务攻击、数据篡改等。
因此,在风险分析时需要识别这些潜在的威脅。
2.评估潜在威脅对嵌入式系统的影响潜在威脅的影响因嵌入式系统应用场景而异。
例如,对于智能家居而言,数据泄露等威脅的影响比较低;而对于智能工厂中的机器人等嵌入式设备,信息泄露等威脅的影响则非常大。
因此,需要评估潜在威脅对嵌入式系统的影响程度。
3.评估风险的概率风险的概率取决于威脅的来源、攻击者技能水平等。
需要进行评估,从而确定风险的概率。
4.制定应对措施基于风险评估结果,制定应对措施。
例如,在嵌入式系统的开发过程中,加入安全措施可以减少风险概率;加强嵌入式系统的更新和升级,对已知漏洞进行修补;增强系统日志记录和数据备份等措施,可以减轻威脅的影响程度。
二、嵌入式系统的安全性设计要设计一个安全的嵌入式系统,需要从以下几个方面切入:1.选择可靠的硬件平台嵌入式系统的硬件平台对于安全性起到了关键作用。
因此,需要选择可靠的硬件平台。
例如,可以选择具有防护措施的ARM Cortex-A处理器核心;选择具有安全加速模块的芯片,以提升系统加密和解密的速度等。
嵌入式系统安全性分析与加固嵌入式系统作为现代计算机领域中的重要一环,已经逐渐渗透到了我们的日常生活中,比如汽车、智能家居、医疗设备等等,这些领域都离不开嵌入式系统的支持。
但是,这些系统除了要实现基本的功能,还需要考虑到安全性的问题。
本文将从嵌入式系统安全性的分析入手,探讨如何加固嵌入式系统的安全性。
一、嵌入式系统的安全性初探在嵌入式系统中,安全性问题主要集中在两个方面:数据的保护和系统的可靠性。
数据的保护包括对数据的机密性、完整性和可用性的保护,这是嵌入式系统最基本的安全要求。
系统的可靠性则是指嵌入式系统必须能够长时间、稳定地运行,避免因为系统崩溃、数据丢失等问题给用户和生产者带来损失。
要实现这些安全性要求,我们需要从不同层面分析和加固嵌入式系统的安全性。
二、嵌入式系统的硬件安全嵌入式系统的硬件安全是指保护系统硬件不受外部攻击的安全措施。
其中,最基本的措施是对硬件系统进行加密和验证。
比如,对芯片的保护加密可以有效防止黑客通过对芯片进行逆向工程来攻击系统。
同时,芯片的验证则可以保证芯片是从可信的厂商获得,并且符合相关的安全标准。
此外,在嵌入式系统的硬件设计中,还需要考虑电磁兼容和静电防护等问题。
这些措施可以帮助保护芯片及其周边设备,确保嵌入式系统的正常运行。
三、嵌入式系统的软件安全嵌入式系统的软件安全是指保护系统软件不受外部攻击的安全措施。
同样,基本措施包括加密和验证。
比如,对系统软件进行加密和签名,可以保证软件是由可信的开发者编写的,同时防止恶意软件和病毒攻击。
此外,对软件漏洞的管理也是保障嵌入式系统安全的重要措施。
在软件开发的过程中,应该要注意漏洞的提前预防和定期修复。
一旦发现漏洞,应该要根据漏洞的严重性制定相应的补丁,并及时发布,确保漏洞的修复及时到位。
四、网络安全随着物联网的普及,嵌入式系统也逐渐与互联网相连。
这给嵌入式系统的安全带来了新的挑战。
比如,黑客可以通过攻击嵌入式系统所在的网络进行病毒攻击、密码破解等行为,给系统带来巨大的威胁。
嵌入式系统中的软件安全性与漏洞分析方法随着科技的不断发展,嵌入式系统在我们的日常生活中起到越来越重要的作用。
嵌入式系统是指嵌入到其他设备中的计算机系统,通常包括硬件和嵌入在其中的软件。
在这些系统中,软件安全性和漏洞分析是非常关键的问题。
本文将讨论嵌入式系统中的软件安全性和漏洞分析方法。
嵌入式系统中的软件安全性主要涉及保护系统免受恶意攻击和保护数据的安全性。
为了实现软件安全性,以下几个方面是需要考虑的。
首先是访问控制。
通过实施适当的访问控制策略,可以限制破坏者对系统的访问权限,并减少潜在的攻击面。
其次是身份认证和授权。
确保只有合法用户可以访问系统,并对其进行授权,是实现软件安全性的关键步骤。
此外,嵌入式系统中的安全性还可以通过数据加密和安全传输来实现。
使用合适的加密算法对数据进行加密,可以确保数据在传输过程中不会被窃取或篡改。
第二个重要问题是漏洞分析。
嵌入式系统中的漏洞可能会使系统容易受到攻击,因此找出并修复这些漏洞是非常必要的。
为了进行漏洞分析,可以采用以下几种方法。
首先是源代码审查。
通过仔细审查源代码,可以确定其中的潜在漏洞。
这包括检查是否存在缓冲区溢出、输入验证不足以及不安全的函数调用等常见的漏洞类型。
源代码审查是一种早期发现漏洞的方法,可以帮助开发团队及早修复问题。
第二种方法是静态分析。
在静态分析中,可以使用专门的工具和技术来分析嵌入式系统中的代码。
例如,可以使用静态代码分析工具来检测代码中的潜在漏洞。
这些工具可以识别一些常见的漏洞模式,并给出相应的建议来修复这些漏洞。
第三种方法是动态分析。
动态分析是通过运行系统来识别漏洞的方法。
可以使用恶意软件分析工具来模拟攻击,从而发现系统中的弱点。
这种方法可以模拟各种攻击场景,帮助开发团队识别系统的脆弱性。
最后,漏洞挖掘也是一种常用的方法。
漏洞挖掘是通过主动测试和探索系统的不同方面,寻找系统中的潜在漏洞。
这可以通过使用漏洞挖掘工具来实现,这些工具可以自动化地遍历系统,并找到其中的漏洞。
嵌入式安全性研究和对策分析嵌入式安全性研究是当今越来越受到关注的一个话题,随着信息化的发展,嵌入式设备日益广泛地应用于我们的生活中,为我们提供便利的同时也给我们带来了一定的安全风险。
就拿智能手机为例,目前一些高端手机已经可以实现指纹解锁功能,但是我们不知道这些指纹数据在哪里储存,是否被广告商恶意利用等等问题始终困扰着我们。
嵌入式设备的安全性问题涉及到硬件和软件两个方面,在硬件方面,安全芯片能够提供一定的硬件保护,如安全启动、内存隔离、物理防护等,这些都是为了防止外界的攻击而采取的措施。
在软件方面,嵌入式系统的安全性极大受到程序代码的控制,一些常见的程序漏洞,如缓冲区溢出等现象都可能导致系统崩溃、信息泄露等安全问题。
因此,除了硬件的保护外,我们还需要采取相应的软件保护措施。
对于一些普及度较高的嵌入式设备,如智能手机、智能手表、蓝牙耳机等,安全问题就显得尤为重要。
以智能手机为例,其通过短信、电话、应用软件等多种途径与外界联系,这就给黑客提供了入侵的机会。
一些常见的黑客攻击行为,如监听、拦截、篡改等都可能在此时发生,因此我们需要采取相应的措施。
针对嵌入式设备的安全问题,我们可以从以下几个方面进行研究和对策分析:一、密码学和安全算法的研究密码学和安全算法是保护嵌入式设备安全的基础。
在密码学中,公钥加密、对称加密和哈希算法都是常见的安全技术。
公钥加密算法采用了公钥和私钥的方式,能够防止信息在传输过程中被窃听,对于一些重要的交易信息等机密信息,可以采用这种加密方式。
对称加密则是通过对一段信息进行加密后再进行传输,接收端再使用密钥解密,从而保证通信内容的安全。
哈希算法则是在密码学中用于确保信息完整性的一种算法,通过哈希值的校验可以确保接受的信息与发送者所发送的信息是一致的。
在嵌入式设备中应用这些密码学和安全算法有助于提升设备的安全性。
二、防病毒软件和安全测试工具的应用随着网络攻击手段的发展,黑客们的攻击手段也越来越难以防范。
嵌入式系统安全性分析与设计综述嵌入式系统是指集成在其他设备或系统中的计算机系统,它们以实时、实现特定功能和资源限制为特点。
随着嵌入式系统的广泛应用,安全性问题变得越来越重要。
本文将综述嵌入式系统安全性分析与设计的相关问题,探讨当前面临的挑战和未来的发展趋势。
1. 嵌入式系统安全性分析嵌入式系统安全性分析是评估系统的漏洞、威胁和安全风险,是确保系统完整性和可用性的重要步骤。
安全性分析主要包括以下几个方面:1.1 漏洞分析:对嵌入式系统进行全面的漏洞扫描和漏洞测试,发现系统的弱点和潜在漏洞。
常见的漏洞包括缓冲区溢出、注入攻击和拒绝服务攻击等。
1.2 威胁建模:识别和分析可能的威胁和攻击者,评估攻击的可能性和影响。
通过建立威胁模型,可以更好地了解系统中存在的威胁和潜在风险。
1.3 风险评估:对嵌入式系统进行风险评估,评估安全风险的严重性和影响范围,为安全决策提供依据。
风险评估的结果可以帮助制定有效的安全策略和措施。
2. 嵌入式系统安全性设计嵌入式系统安全性设计是在系统设计和开发过程中考虑安全性问题,采取相应的安全策略和措施,以确保系统的安全性和可靠性。
安全性设计主要包括以下几个方面:2.1 安全需求分析:在系统设计的早期阶段,就要明确系统的安全需求,根据系统的特点和用途制定相应的安全策略。
安全需求分析是确保系统满足安全性要求的基础。
2.2 安全架构设计:通过设计安全架构,将系统划分为不同的层次和模块,并为每个层次和模块分配相应的安全性措施。
安全架构设计可以帮助识别和阻止潜在攻击并减少系统的损害。
2.3 安全测试和验证:对嵌入式系统进行全面的安全测试和验证,包括功能测试、性能测试和安全性测试等。
测试和验证可以帮助发现系统中存在的安全问题,并改进系统的安全性。
3. 当前挑战和未来发展趋势嵌入式系统安全性面临着一些挑战和问题,需要不断改进和提高。
3.1 复杂性挑战:现代嵌入式系统变得越来越复杂,涉及的软硬件组件众多,各个组件之间相互依赖。
嵌入式操作系统的可移植性和安全性研究随着嵌入式设备越来越多,嵌入式操作系统所占据的市场份额也逐渐加大。
嵌入式操作系统是一种高度集成的操作系统,它们旨在为嵌入式设备提供完美的软件环境,以满足各种不同的应用需求。
然而,由于硬件平台,软件驱动程序,应用程序和网络协议等方面的不同,嵌入式操作系统的可移植性变得至关重要。
同时,对于嵌入式设备领域,安全问题也愈加引人关注。
因此,研究嵌入式操作系统的可移植性和安全性对于这个行业至关重要。
一、可移植性可移植性是指嵌入式操作系统在不同硬件平台之间以及不同开发环境之间的能力。
高度可移植的嵌入式操作系统必须在各种硬件平台上得到广泛的测试和验证,包括各种处理器架构和处理器类型,不同类型的存储器,输入/输出设备和网络接口控制器等等。
此外,它们必须能够在不同的开发平台上进行构建和运行,如编译器和调试工具。
为了解决嵌入式操作系统的可移植性问题,人们提出了很多的解决方案。
例如,间接层或虚拟机技术可以将嵌入式操作系统与硬件平台分离,以便更容易地移植到其他硬件平台上。
这种方法可以帮助维护同一代码库,从而使代码简洁,易于维护。
此外,模块化系统和结构化设计也可以帮助提高嵌入式操作系统的可移植性。
另外,也有一些开源的嵌入式操作系统,如FreeRTOS、uC/OS、Linux嵌入式和Contiki,这些操作系统都具有高度的可移植性。
这些操作系统具有强大的社区支持,可以提供广泛的硬件平台支持,同时还提供各种工具和示例代码,方便开发人员在不同的平台上方便地移植代码。
二、安全性安全是嵌入式设备设计中最为关键的问题之一。
因为这些设备往往被用作网络交互,存储及处理重要数据,一旦这些设备被攻击,后果很严重,比如数据泄露、信息黑客等。
同时,高度集成的嵌入式操作系统和硬件架构也使它们更容易受到攻击。
因此,嵌入式操作系统必须有强大的安全机制来防止各种攻击。
一般来说,嵌入式操作系统的安全机制包括几个方面,如数据加密、网络安全、系统审计和访问控制。
Linux系统的安全性和常见安全问题解析Linux操作系统是一种广泛应用于各种设备和服务器的开源操作系统。
由于其开放性和安全性,Linux系统在许多领域被广泛使用。
本文将对Linux系统的安全性和常见安全问题进行解析。
一、Linux系统的安全性Linux系统之所以被认为是安全的,有以下几个原因:1. 开源性:Linux系统的源代码是公开的,任何人都可以审查和修改它。
这样的开放性使得漏洞和安全问题可以更快地被发现和修复。
2. 权限管理:Linux系统采用了严格的权限管理机制,通过用户和组的设置来限制不同的用户对系统资源的访问。
只有拥有相应权限的用户才能执行敏感操作,其他用户则无法干扰系统的安全。
3. 读写权限:Linux系统通过对文件和目录的读写权限进行控制来保护系统的安全。
只有具有相应权限的用户才能对文件进行操作,其他用户只能读取或执行文件。
4. 隔离性:Linux系统通过使用虚拟化技术和容器化技术来实现不同应用之间的隔离。
这样一来,即使一个应用程序被攻击,其他应用程序和系统依然可以保持安全。
二、常见安全问题及解决方法尽管Linux系统相对较为安全,但仍然存在一些常见的安全问题,需要我们关注和解决。
1. 弱密码:一个常见的安全问题是用户设置弱密码。
为了避免这个问题,用户应该设置包含大小写字母、数字和特殊字符的复杂密码,并定期更换密码。
2. 漏洞利用:即使Linux系统经常进行更新和修复,仍然存在一些漏洞可能被黑客利用。
为了解决这个问题,用户应该始终保持系统更新,并安装常见的安全补丁。
3. 权限不当:一个常见的错误是给予用户过多的权限,从而可能导致系统被攻击或滥用。
用户和管理员应该根据需要来分配权限,并定期审查和更新权限设置。
4. 网络攻击:Linux系统可能会受到来自外部网络的攻击,如DDoS攻击、端口扫描等。
为了防止这类攻击,用户应该启用防火墙、网络入侵检测系统等安全措施。
5. 病毒和恶意软件:虽然Linux系统相对于Windows系统来说更不容易受到病毒和恶意软件的感染,但仍然需要安装杀毒软件和定期进行系统扫描。
嵌入式系统软件开发中的安全性问题研究随着社会的不断发展,计算机技术的应用越来越广泛。
在现代化的生产中,嵌入式系统的应用越来越广泛。
它可以为现代化的生产提供很好的保障,但是也存在着一些安全性问题。
嵌入式系统的安全性问题主要体现在以下几个方面:一、物理安全问题嵌入式系统的物理安全问题主要体现在硬件方面。
如一些嵌入式系统没有采用抗电磁干扰的措施,导致系统受到电磁波的影响而出现故障;一些嵌入式系统没有采用防水、防尘等处理,结果在实际使用过程中出现了一些问题。
这些问题将对生产过程产生不良影响。
二、网络安全问题现在,越来越多的嵌入式系统与互联网连接,通过网络进行数据的传输、采集与分析。
而在大量数据的传输中,网络安全问题变得尤为重要。
例如,未加密的数据传输会面临被黑客截取、篡改等问题。
因此,嵌入式系统的网络安全问题日益引起了各界的关注。
三、软件安全问题软件安全问题是嵌入式系统中最为重要的问题之一。
由于嵌入式系统在设计时需要兼顾实时性和安全性,在软件开发中存在着一些难以避免的缺陷和漏洞。
这些缺陷和漏洞可能被利用以达到非法目的,比如窃取机密信息、拦截极为重要的数据等。
因此,嵌入式系统软件安全问题的研究,变得越来越重要。
解决嵌入式系统软件安全问题的方法1、采用合适的软件架构在建立嵌入式系统时,一个好的软件架构是非常重要的。
首先,软件架构应该具有更好的可扩展性,从而在可能出现变化的情况下能够更好地应对。
其次,良好的软件架构应该可以保证系统的稳定运行,从而防止因短暂故障造成的不良影响。
2、采用适当的开发工具在嵌入式系统的开发过程中,使用适当的开发工具可以显著提高系统软件的质量,从而更好地保证其安全性。
例如,宝钢嵌入式系统团队在开发阶段使用了实时控制器和逐步调试工具,从而获得更稳定、更安全的嵌入式系统。
3、加强对软件漏洞的检测软件漏洞会给嵌入式系统造成非常严重的影响。
因此,在开发过程中应该加强对软件漏洞的检测。
例如,使用一个高效的漏洞扫描工具,能够全面发现系统存在的安全性问题,从而更好地保障嵌入式系统软件的全面安全性。
嵌入式Linux系统安全性探析
摘要:阐述了嵌入式Linux内核系统存在的安全性问题,重点分析了增强安全性若干种方法及原理,根据嵌入式产品受尺寸和成本约束的特点,给出了增加安全模块、设置软件防火墙和嵌入式系统特有的方法来增强系统的安全性。
关键词:嵌入式;Linux系统;LSM;系统安全;防火墙
0引言
社会发展日新月异,物联网离百姓生活越来越近,目前很多运行在局域网甚至Internet上的产品如雨后春笋般涌向市场,比如:智能家居、安卓手机等。
这些产品在方便用户的同时也出现一些安全问题,系统置于网络上相当于暴露给所有人,故对嵌入式产品安全性研究刻不容缓。
嵌入式产品由于尺寸、成本的约束注定不可能从硬件部分提供更多的安全措施,故提升安全性重点应考虑Linux内核。
1嵌入式Linux系统存在的安全问题
开源的Linux内核无论在功能上或性能上都有很多优点,但Linux 内核属于开源项目,缺少提供商的安全保证,所以需要使用者最大限度地提升系统的安全性。
根据实际情况裁剪Linux内核,并采取适当的安全措施可提升系统的安全性。
掌握Linux核心技术、配合先进的安全模型、增强其安全性进而研发安全的操作系统非常有必要。
Linux 的安全性问题从机制角度可以有以下几点:
(1) Linux系统访问控制。
Linux系统主流发行版本的访问控制属
于自主访问控制;自主访问控制控制模式任何一个活动主体对应用户标识和组标识。
显然自主访问控制模式的问题是忽略了用户的角色、程序可信性等安全信息,故不能提供有效的安全性保障。
(2) Linux系统管理。
Linux系统中用户可以分为两类,一类是普通用户,另一类是管理员用户。
Linux系统管理员用户拥有系统所有权限,包括用户管理、设备管理、审计管理和安全管理等;这样方便了管理员管理,易于用户操作,但是违背了“最小特权”管理原则。
Linux系统的安全性只是建立在管理员必须正确设置系统功能、且不被冒充和不存在安全漏洞等一系列假设的基础上。
显而易见这样的系统存在巨大的风险,假如系统管理员被非法控制,系统将没有安全性可言。
(3) Linux系统日志。
Linux系统中的日志功能从设计到实现不是以系统安全为目标而是以内核调试为目的;此与系统安全审计有很大差距:第一,缺乏资源访问方面的记录;第二,不能详细记录系统发生的事件;最后,缺少必要数据分析与警告。
由此可见,嵌入式Linux内核自身的安全功能相当薄弱,对于安全性要求比较高的产品,则需要提高Linux内核的安全性。
2安全性问题解决方案
提升Linux安全性所采取措施主要有在Linux系统内核使用安全模块和安装必要的防火墙,还有一些嵌入式特有的安全措施。
(1) 使用安全模块LSM (Linux Security Modules)。
2001年一次Linux内核峰会中美国国家安全局推出了他们的安全增强Linux
(SELinux),与此同时Linux内核创始人提出,Linux内核作为一个开放的系统的确应该有一个通用的安全访问控制框架,不过也提出应该可以使用加载内核模块的方式来支持不同的安全模块,Linux内核的安全模块从此产生。
下面可以通过图1来了解一下安全模块工作原理。
从图1中可知,Linux安全模块工作原理是通过使用函数回调的方法,系统根据用户配置来判断内核对象的访问。
系统运行进程执行系统调用时找到I节点并分配相关资源,就在即将访问相应的对象时,系统立即调用Linux安全模块提供的函数,对安全模块提出疑问:“是否允许访问该对象?”,安全模块根据用户设定的安全策略进行判断该次访问是否具有相应的权限。
在安全模块里可以调用不同的安全模块,使用较多的有SELinux 、Smack (Simplified Mandatory Access Control Kernel)、TOMOYO等。
图1安全模块工作原理
SELinux安全模块。
该模块的使用使得系统由原来的自主访问机制改变为强制访问控制机制。
但是SELinux安全模块并不适用于处理能力有限嵌入式产品,原因有以下几点:首先,SELinux模块的细粒度访问控制造成安全策略的复杂性,例如:Fedora发行版本里就超过800 000行,如此复杂的安全策略肯定不能应用于嵌入式系统;其次,在使用SELinux模块后,若要运行某一个进程时,需要给出所有要调用函数的权限才能运行,在本身资源短缺的嵌入式产品里非常不适用;另外一点,当系统安全策略频繁改变时,要将文件系统重新设置
且重新装载到内核里,嵌入式文件系统一般都烧写在FLASH中,需要重新烧写文件系统,这对于最终用户是不可能实现的事。
使用SELinux模块后,要求系统支持文件扩展属性,而嵌入式系统经常采用的文件系统有CRAMFS、JFFS2等,这些文件系统本身不支持属性扩展。
由此可见,SELinux安全模块不适合在嵌入式产品中使用。
Smack安全模块的原理与SELinux模块一样,同样是强制访问控制的一个实现,与SELinux不同的是使用简单的配置策略来代替配置复杂的SELinux。
因为Smack安全模块基于标签实现强制访问控制,故需要支持标签的文件系统支持。
使用Smack安全模块需要完成3部分工作:配置修改Linux内核支持Smack、设置Smack脚本以及用户空间应用程序的修改。
基于标签实现强制访问的Smack模块需要修改根文件系统,所以Smack不适合作为嵌入式系统的安全模块。
TOMOYO安全模块是基于路径名的强制访问控制安全模块,由NTT DATA公司开发和维护。
MOTOYO 身材较小,只有100K左右代码、300K策略文件,是一个典型的基于路径面向行为的系统分析者和保护者,适合在嵌入式产品使用。
MOTOYO安全模块拥有图形界面编辑策略工具,方便用户编辑策略,除此之外还支持友好的学习模式与强制模式。
当MOTOYO模块处于学习模式时,系统所运行的程序都被加到策略文件中,简化了用户策略设置;而处于强制模式下不满足策略条件的程序与命令将禁止运行。
MOTOYO安全模块除了拥有学习模块和强制模式的优点,还不需要文件属性扩展的支持,做到了与文件系统无关,并且不需要修改应用程序,因此MOTOYO更
适合嵌入式环境。
(2) 安装防火墙(FireWall)。
防火墙是网络的一种访问控制设施,用于隔离网络的一部分与其它部分之间数据的自由流动。
硬件防火墙一般都采用多个高速总线、多处理器并行处理,性能优越是硬件防火墙的优点;因为嵌入式产品的尺寸及成本原因,硬件防火墙不可使用于其中。
软件防火墙本质上是一套软件,其运行于操作系统。
软件防火墙最大的优势是可进行数据包内容分析。
软件防火墙也有缺点,本身算法已经得到极限的优化,面向高端应用运行,仍然无法得到十分满意的性能结果,对于嵌入式产品来说应根据其处理能力和产品定位选择使用。
3提升安全性的特殊方法
可以根据嵌入式Linux任何部分可配置、可裁剪的特点,采取一些特殊方法提升嵌入式系统的安全性。
(1) Linux内核配置时,根据实际情况裁剪掉不需要的功能和服务,比如:telnet、ftp等。
(2) 制作根文件系统时取消不必要的命令。
(3) 修改Linux内核,隐藏引导程序和操作系统程序分区。
一般情况下引导程序与操作系统文件都烧写在FLASH里面,修改FLASH 分区信息只显示根文件系统部分。
(4) 选择文件系统。
嵌入式系统中较多根文件系统为读写文件系统,例如:JFFS2和YAFFS2等文件系统。
为提高文件系统安全性,
可以选择只读文件系统,Linux内核支持的只读文件系统主要有CRAMFS、AXFS等,若应用程序需要存放内容,可使用SD卡等移动存储方式。
参考文献:
\[1\]LINUX SECURITY MODULES \[OL\]. /wiki/Linux_Security_Modules.
\[2\]王高祖,李伟华,徐艳玲,等.基于TrustZone技术和μCLinux 的安全嵌入式系统设计与实现\[J\].计算机研究与应用,2008(6).
\[3\]SMACK IN EMBEDDED COMPUTING\[OL\]. /Articles/292142/.。