【linux系统加固之】系统软件架构

原创 2016年06月22日 17:24:55

1.1设计目的

为什么需要多进程呢,设计的初衷是某些CA厂商进行安全认证时,对系统安全性也提出了很严格的要求,因为CA运行于系统之内,所以系统安全也是保证CA资产安全的措施之一。一般CA厂商要求的安全检查主要包括:提供系统软件架构设计文档,系统配置(主要是kernel和rootfs的配置),运行环境和资源限制等等,其中nagra在NASC 3.0要求文档中架构设计明确规定了需要Isolated compartments,随着系统安全性的不断重视,不排除其他的CA厂商后期也会提出这种多进行的要求。

 

2.1多进程的优缺点

2.1.1优点

a.更安全

         将系统划分为多个进程,由于每个进程都有自己独立的地址空间,并且每个进程只做一件简单的事,只保留做这件事需要的能力,去掉一切多余的权利,这样当其中一个进程被黑客攻破,黑客能够利用的仅仅是被攻破进程的能力和资源,由于这个能力已经被减到最小,所以黑客能做的事情是有限的,因为他并不具备所有能力,造成的伤害也是有限的,系统和其他进程仍然可以继续提供服务,这样就能大大减小对系统造成的伤害。

 

2.1.2缺点

a.设计和编译复杂

         每个进程需要单独进行功能划分和设计,需要进行单独编译,代码共享问题,进程间通信问题,大数据流动效率问题,和进程间的同步问题等等都是需要考虑的。

b.加重系统负担

         将系统分多个进程来运行,会额外的加重系统负担,其中比较明显的是cpu和内存,多个进程频繁的进行上下文切换会大大的消耗CPU时间,多个进程也会额外的消耗一些内存,另外进程间大数据流动问题,都会增加额外的CPU时间和内存消耗。

 

3.1设计原则

 

3.1.1总则

         从多进程的优点来看,当然是划分越多进程越好,但从缺点来看,会带来设计上的复杂性和加重系统的负担,所以必须要采取一种折衷的方案,既不能太多,又能安全有效的达到隔离的目的。

 

3.1.2具体原则

a.架构向前兼容

         在当前单进程基础上改为多进程支持,必须要保持设计的简洁性,避免现在架构改动过大,并且单进程和多进程需要同时支持,通过环境变量进行控制是编译单进程还是多进程的。

b.CA资产必须单独划为一个进程

         CA资产是保护的重点,必须要单独划分为一个进程,除了主动的对外开放的接口外,外部进程不访问CA进程的一切,尤其是一些开放的外部接口,如USB,串口,JTAG,网口,HDMI(带上网功能支持的)等等,常常会造成CA资产的泄露,必须进行严格限制。

 

c.需要特殊能力或需要访问特殊资源的必须进行隔离

         例如U盘的挂载,网络的配置,都是需要系统管理员能力,所以这些操作必须进行隔离。

         再比如需要访问/proc, /sys文件系统的操作也必须进行隔离,因为这些文件系统可以配置或泄露内核中的一些关键信息。

d.网络必须进行隔离

         因为网络过于开放,过于灵活,完全是一个不可控的接口,随着互联网的普及,网络病毒可谓横行,按照conax的说法,在STB上装杀毒软件显然是一种不现实的做法,因为现在病毒出现和变异速度太快,病毒库需要不断的更新,这对嵌入式设备来说是不可接受的,所以更现实的做法是对网络进行隔离,保证不会威胁到系统的其他部分。

 

4.1进程的划分

         按照设计原则,可划分出如下进程:

名称

功能描述

能力描述

备注

DVB主进程

传统的DVB业务,包括live play,Record&playback,节目搜索和管理,EPG等

 

 

CA进程

加解扰,DRM, PVR控制和CA的其他功能

 

 

Utils进程

包括对存储设备的管理和网络管理

 

 

Net进程

提供各种网络服务

 

 

 

5.1IPC的设计

需要考虑的问题:

性能要求:选用合适的IPC方法,保证吞吐量,同步问题,稳定性问题:

安全要求: 一定的通信策略,保证通信授权连接,overflow的考虑,对于rpc,所能调用的函数集的限制;

这里,采用Unix socket,静态策略,即没有专门的策略文件,策略在设计阶段固定,系统启动后建立连接,建立的过程需要进行授权检查,连接成功后保持长连接,不同的客户端RPC函数集固定;


6.1实现方案

版权声明:本文为博主原创文章,未经博主允许不得转载。

系统架构师成长之路(一)

系统架构师是近几年来在国内外迅速成长并发展良好的一个职业,它对系统开发和信息化建设的重要性及给IT业所带来的影响是不言而喻的。做为一个职场新人,如何发展成为架构师,架构师都需要具备哪些素质?...
  • sunlei1980
  • sunlei1980
  • 2016年05月07日 19:23
  • 6357

Android存储系统之架构篇

http://gityuan.com/2016/07/23/android-io-arch/ 基于Android 6.0的源码,剖析存储架构的设计 一、概述 本文...
  • lhq186
  • lhq186
  • 2016年07月25日 23:08
  • 2252

深入理解openwrt架构(一)--安装准备和目录分析

openwrt安装准备和目录分析 一.安装准备工作 我选择的是虚拟机上安装ubuntu12.10的linux操作系统,最好是在普通用户下操作。 1,安装linux上的更新组件   ...
  • gx19862005
  • gx19862005
  • 2014年11月05日 15:19
  • 11221

系统软件架构的认识

作为一个互联网系统,由几个
  • rongaimeng
  • rongaimeng
  • 2014年04月27日 20:00
  • 511

零售系统软件架构---分析篇

一、前述 近期调整了下工作内容划分,也相对有更多的时间思考我们系统架构的设计。 二、系统特征 2.1、业务特征 业务特征   商品种类和业务组织结构繁杂产生的庞大的日常数据信息 ...
  • yysct2005
  • yysct2005
  • 2015年01月23日 10:37
  • 543

一种基于monitor的系统软件架构

一种基于monitor的系统软件架构   1、Hardware物理层 提供硬件电路接口 2、boot引导层 BOOT程序从POS的FLASH运行起来,初始化cpu,初始化内存,完成从PC LoadT...
  • u013636987
  • u013636987
  • 2016年08月13日 09:17
  • 214

零售系统软件架构---设计之权限数据分发

一、概述 用户权限数据在我们系统中分为两类,一类是菜单操作权限,一类是数据权限。分析详见 这里。 用户数据在用户中心维护,相关的菜单权限,数据类也在这个系统中。提供管理员用户添加用户、分配角色、资源...
  • yysct2005
  • yysct2005
  • 2015年01月23日 18:15
  • 506

零售系统软件架构---设计之理论篇

一、设计原则 1.1、一致性原则 一致性应该是所有质量原则的根基 一致性的架构则会给软件系统带来和谐与平衡 1、业务模型名称一致性(相关干系人沟通的桥梁) 2、架构风格的一致性 3、解决方...
  • yysct2005
  • yysct2005
  • 2015年01月23日 15:59
  • 582

零售系统软件架构---设计之缓存篇

一、概述                 缓存在我们系统内部也广泛使用,基本分本地缓存和分布式缓存。本地缓存由自定义写的缓存组件,分静态缓存与动态缓存,所谓静态就是数据存入就不会被应用清除,动态缓存...
  • yysct2005
  • yysct2005
  • 2015年01月26日 11:39
  • 515

零售系统软件架构---数据架构之数据分片

一、概述                 对于一个由多个子系统组成的一个完整的系统而言。系统之间的交互,也在很大程度上反映了数据分布的情况。每个业务系统都具有自己本系统独特的业务数据。所以,目前每个业...
  • yysct2005
  • yysct2005
  • 2015年01月26日 17:59
  • 517
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:【linux系统加固之】系统软件架构
举报原因:
原因补充:

(最多只允许输入30个字)