电力工控系统自定义安全策略的系统安全研究

2016-11-22 03:09:11朱亚飞桂宁许强国网合肥供电公司安徽合肥230001
低碳世界 2016年30期
关键词:安全策略配置文件访问控制

朱亚飞,桂宁,许强(国网合肥供电公司,安徽合肥230001)

电力工控系统自定义安全策略的系统安全研究

朱亚飞,桂宁,许强(国网合肥供电公司,安徽合肥230001)

电力系统的安全稳定运行,在国际上也一直是一个关系到社会稳定和经济发展的共性问题,为适应“互联网+”和能源互联网的发展,保障电力工控侧的信息安全,对电力工控系统的的信息安全提出了更高的要求。目前电力工控系统大量使用类Linux操作系统,面临着越来越多的安全风险。本文针对Linux系统面临的安全威胁,从访问控制的角度研究了Linux系统的安全防护并以LinuxSecurityModule框架为基础,在内核中构建一个访问控制的安全模块,拦截与仲裁特定的访问行为,提升工控系统的安全性。

系统安全;访问控制;安全模块;LSM;安全框架

1 引言

本文针对Linux系统所面临的安全威胁,从访问控制的角度研究与探讨了Linux系统的安全防护,采用强制访问控制的方法,以LinuxSecurityModule(LSM)框架为基础,在内核中构建一个访问控制的安全模块,以此来拦截与仲裁特定的访问行为[1]。通过此种方式构建的安全模块,既可以规范应用程序的行为,也可以防范0-day攻击,在系统补丁发布之前,保护系统资源。

2 Linux访问控制技术现状

针对Linux系统的安全防护有很多种解决方案,例如访问控制技术、防火墙技术、入侵检测系统等。在电力工控系统中,业务系统包括电力企业用于生产、调度、经营、管理的各个业务应用系统,主要包括SCADA系统、EMS系统、电力市场交易系统、电能量计量系统、继电保护和故障录波信息系统、配网自动化系统、变电站综合自动化系统等,各业务系统均构建在类Linux系统上,并针对服务器操作系统按照国网规范进行了等级包括,包括用户口令设置、Iptables防火墙设置、数据备份等[2],但在用于登录系统后,系统内部资源特别是数据资源完全对用户开放,有必要对用户的访问行为进行控制。

访问控制技术在保证Linux系统的安全性方面具有相当重要的地位,真正做到了在系统内部构筑一道安全屏障,以系统中与访问行为相关的主客体资源为关注对象,并且使用安全规则规定了主体对客体的访问行为。

为了增强Linux系统的安全性并且克服自主访问控制机制所带来的不足,很多学者和研究人员已经开始采用强制访问控制思想,比较知名的研究成果有安全增强型Linux(SELinux)、Linux入侵检测系统(LIDS)、域类型增强(DTE)等。2001年由Linux的创始人LinusTorvalds提出在Linux内核中需要构建一个通用的访问控制安全框架,以可加载内核模块的方式,支持现存各种不同的访问控制安全模块系统LinuxSecurityModule(LSM)[3]。LSM框架是Linux内核中一个通用的轻量级访问控制框架,它作为一个载体,使得不同的访问控制模型以可加载内核模块的形式表现出来,用户完全可以根据需求定制自己的安全模块,大大提高了Linux系统访问控制机制的灵活性和易用性。

3 自定义安全策略访问控制安全防护实现

3.1LSM框架原理

LSM安全框架的设计需要提供一个通用、安全、简单的设计模型,尽量满足不同安全场景的需求,同时将对内核的影响降低到最小,使之不影响其他不需要它的人对内核的使用。为次LSM安全框架采用在内核源码中大量安置钩子函数的方法来控制对内核资源对象的访问。当用户执行系统调用时,沿着内核原有的逻辑层层深入并且分配资源,接着进行错误检查并且经过传统自主访问控制的检查,在即将到达需要访问的内核对象之前,由LSM安全模块的钩子函数对当前访问行为进行一个调用,此时安全模块可根据设定好的安全策略来进行决策,仲裁此次的访问行为。

3.2 自定义安全策略防护需求

以SELinux为代表的一系列访问控制安全模块系统在安全策略的制定上显得较为复杂,原生态的SELinux甚至提供了安全策略编写的元语言标准,将安全策略单独编译后以rpm包的形式安装进内核,这类编程式的策略制定方法在准确性以及成功率方面都不能得到有效保证;同时策略调整起来较为复杂。为此本次研究依据EMS系统管理实际需求,设计并实现一种简单高效的安全策略配置方式,从文件保护、进程保护、限制进程能力范围等方面来守护系统,同时使得普通用户(即并不具备Linux内核专业知识的用户)也可以成功地自主制定安全策略[4]。针对电力工控系统实际安全需求,主要实现以下防护功能:①文件系统保护,实现系统中一些重要文件的保护,如/bin/login,/etc/passwd等。②进程保护,针对系统中一些重要进程的保护,如提供web容器的httpd进程,EMS进程、SCADA主进程及数据库主进程。③限制进程的能力范围,针对系统中应用进程权限范围的限制,通过在LSM框架中集成capability能力机制,给指定的进程赋予指定的能力,例如:CAP_SETUID(设置用户UID的能力)、CAP_SETGID(设置组ID的能力)等。

3.3 自定义安全策略防护整体框架

采用基于强制访问控制思想的LSM安全模块,需要在访问控制流程的某个关键点上,在访问即将到达受访资源之前进行拦截与仲裁,如图1所示。

图1 自定义安全策略防护整体框架

安全模块处于系统调用在内核实现的关键点上,负责收集当前访问的行为信息,向安全策略中心进行查询,并且返回仲裁结果。安全模块包括配置文件子模块、解析子模块以及访问控制子模块。其中配置文件子模块向用户提供安全策略的配置,它由一系列安全策略配置文件组成,可根据事先定义好的书写规则为需要保护的对象定义安全策略。解析子模块主要功能为解析安全策略,该部分向上提供对配置文件的解析,向下提供对访问控制子模块的安全信息查询,并且不断监听来自用户空间的信号,以便当配置文件更新时重新进行解析。该子模块的实现应包含守护进程,在安全模块初始化时启动,读取配置文件子模块中的安全策略配置文件,经过解析、处理之后存储于内核空间,供访问控制处理子模块调用。访问控制子模块,主要功能为仲裁访问行为。该部分主要负责安全模块系统的注册、注销、钩子函数的重写等,主要依托LSM框架所提供的API进行开发。该部分为安全模块的决策处理部分,对访问控制行为的判定均在此处产生。三个子模块直接互相协作,实现资源访问的安全控制。

3.4 配置文件子模块实现

安全模块以文件全路径名作为保护标识进行识别,从三个方面对文件进行保护,分别是读、写、执行,同时根据最小授权原则,针对以上每一项操作都规定适用者集合,即允许进行此项操作的用户集合,以用户登录的用户名或者系统内部的UID进行标识,适用者集合以外的用户无权进行以上三种操作。同时针对文件资源的保护定义为如下形式:文件全路径名映射到三种操作,每一种操作映射一组授权对象。

进程保护所涉及的受保护资源为系统级的服务进程以及业务系统进程,如SCADA后台进程、实时数据库等,以受保护进程的进程名称作为保护标识进行识别,从进程的杀死、暂停、重启三个方面进行保护,针对每项操作规定适用者集合,并在保护配置文件中进行配置。

3.5 解析子模块实现

解析子模块初始化时启动一个内核进程,在整个安全模块运行的过程中,该守护进程一直存在,实现两项工作:①对配置文件进行解析;②不断监听来自用户空间的信号。配置文件解析将用户对安全的配置转换成安全模块可识别的元素,再共享给访问控制处理子模块;同时当配置文件发生变动时(例如用户重新配置某些选项),守护进程重新对配置文件进行解析,更新安全策略。

3.6 访问控制子模块设计

访问控制子模块负责拦截访问行为以及对访问行为进行安全检查。拦截访问行为主要依靠LSM安插在内核中的钩子函数完成,当系统中主体对客体进行访问时,在访问到达客体之前,钩子函数会拦截此次访问,引导其进入访问控制子模块接受安全检查;在对访问行为进行安全检查之前,还需收集此次访问的行为信息,一般是从进程上下文或者相关结构体中提取诸如进程UID、进程PID以及欲进行的操作等信息,然后调用解析子模块中的判断函数,将提取的信息跟解析之后的安全策略信息比较匹配,得出最终的安全检查结果,进而放行或阻止当前的访问行为。

以文件访问open系统调用为例,系列经过一系列调用流程后,最终进入inode_permission函数,该函数正是LSM安全框架安插在open系统调用的内核实现函数中的钩子函数,定义为int(*inode_permission)(structinode*inode,intmask,struct nameidata*nd),通过实现该钩子函数并注册后可实现用户访问文件、访问进程时的权限控制。具体实现实例如下:

inttest_inode_permission(structinode*inode,intmask,structnameidata*nd)

if(!file_search(inode)){

if(!file_judge(inode,current->uid,char*operation))

return0;

else{

return-EACCES;

elsereturn0;

4 安全防护应用测试

在CentOs6.732位操作系统,2.6.20版本的Linux操作系统内核上对进程保护进行测试,启动受保护的excp进程,当bo用户使用./exep命令去尝试执行该可执行文件时,由于在配置文件中没有赋予bo用户对/home/bo/Desktop/exep文件的执行操作权限,执行操作被系统拒绝。

5 总结

本文介绍了访问控制技术在加强Linux系统安全性方面的用途,并以LinuxSecurityModule框架为基础,在内核中构建一个访问控制的安全模块,拦截与仲裁特定的访问行为,通过实际测试,验证了自定义策略安全防护模块的有效性,提升了工控系统的安全性。

[1]王静.SELinux的访问控制模型的分析与研究.计算机安全,2008.

[2]林绅文.基于LSM框架的安全增强型文件系统研究.北京邮电大学学报,2008.02.

[3]陈汗章.访问控制框架及其在Linux中的应用研究.计算机应用研究,2007.

[4]王成耀.基于LsM的安全访问控制实现.计算机工程,2005.

TM769

A

2095-2066(2016)30-0035-02

2016-10-12

朱亚飞(1988-),男,安徽肥东人,工程师,硕士研究生,研究方向为信息安全。

桂宁(1976-),女,江苏南京人,工程师,本科,研究方向为信息安全。

许强(1978-),男,江苏南京人,工程师,本科,研究方向为信息管理。

猜你喜欢
安全策略配置文件访问控制
基于认知负荷理论的叉车安全策略分析
提示用户配置文件错误 这样解决
基于飞行疲劳角度探究民航飞行员飞行安全策略
湖北农机化(2020年4期)2020-07-24 09:07:36
搭建简单的Kubernetes集群
互不干涉混用Chromium Edge
忘记ESXi主机root密码怎么办
浅析涉密信息系统安全策略
ONVIF的全新主张:一致性及最访问控制的Profile A
动态自适应访问控制模型
通信学报(2016年11期)2016-08-16 03:20:32
浅析云计算环境下等级保护访问控制测评技术