PSCAD_EMTDC与Matlab接口
PSCAD_EMTDC与Matlab接口,用PsCAD建立接口模型.启动Matlab数据引擎调用M文件,实现接口模型的参数设置。第I了期杨使,等:FCAD/ EMTDC与Maah接口研究500∠0°kV下的样本,利用接口软件所获得的数据经过计算小500∠0°kY500∠30°kvc波能量熵后,将其随机分为2个部分,一部分为训练--50 km样本,另一部分为测试样本,这样极大减轻了工作量。100 k2764k训练样本与训练的目标向量作为神经网络输入数1μF据进行网络训练,测试样本输入训练后的网络,将输壬出与期望输出进行比较,进而得到暂态识别的结果。图9500kV输电线路模型示意图利用接口软件随机产生不同工况下的单相接地ig. 9 Model of 500 kv transmission line短路和开关操作数据共1000组采用3层BP神经型,本文模型的采样频率为40kHz线路模型采用网络对2种暂态信号进行分类,取用其中的200组频率相关模型。利用文献[2所述的小波能量熵测进行网络训练,其余800组用来测试。度来识别开关操作与单相接地故障。网络设计步骤如下识别各暂态信号,采用小波能量熵提取暂态信a,构造特征向量,直接选取各暂态信号在1~16号特征,然后将其作为神经网络的输人来进行识尺度上的小波能量熵作为特征向量;别。识别过程如图10所示。b.为了便于分析,归一化处理小波能量熵电压/电流信号「训练c设计输人层神经元共16个、隐含层神经元标向量小波变换」[训练样本P-网络训练33个输出层神经元1个;d设计网络的训练函数为 trainlm,训练误差小波时频嫡和小波L构造特测试样本训练后0001。熵权的征提取征向量「识别结果下的网络通过训练和测试,利用接口与3层BP神经网络图10暂态信号识别过程综合应用,成功地实现了暂态信号的分类,其中单相Fig 10 Process of transient signal recognition短路故障的误判率为5%,开关操作的误判率为0。人工神经网络:6的训练需要大量不同工况·表1给出了部分数据及其识别结果。表1小波能量熵神经网络识别结果举例Tab. 1 An example of wavelet energy entropy nn detection类别输人数据(归一化后)期望输出实际输出测试结果03121018660.312302709021930.22410,23080.23640%881正确开关0.24120.24580.2499025370257202604026340.2663操作0.25270.254202522025189.25190.25170251402508024650.2469024710.24800.24880.2501024880247410.9622正确0.325501410019560187502064022l8023430.2441单相025250.260102662027150.2762028040.28430287000178正确短路0387701584027200.186502023021510224402204005364错误0226902322024280253602626027130278202848注:在误差允许情况下,认为大于5为1小于.5为04接口软件运用的优点对梭型进行参数]运行程序]「得到1组短路电设置短路电阴为进行仿真阻为0时的数据通过对以上2个仿真实例的分析,对所研究的图11传统软件获取一组数据的示意图接口软件的运用有了更深入的了解。应用传统的仿Fig 11 Data group access of traditional software真软件获取数据,对于每一种工况的实验都需要对1组数据的示意图,此时短路电阻为0。如果要完成模型的参数以及仿真的条件进行重新设置,这样,做述10种不同工况的仿真就需要等待短路电阻为个大数据量的仿真实验,大部分的时间都将消耗0的仿真数据获取以后,修改模型参数,再进行实在重复的点击工作和等待上,工作效率不高;而这里验即要顺次进行图11的流程10次,才能达到最终所研究的接口软件与传统的仿真软件相比,最大的的目的。如果要获取1000组数据,那么就要顺次重优点就是可以一次获取大量不同工况下的数据,对复图1l的流程1000次,工作量之大,耗费时间之不同的工况进行伤真实验,只需要编写相应的M文长可想而知。传统仿真软件的这种缺点也迫切的需件,数据将实现自动获取极大解放了人的劳动。获要研究一种能实现数据自动获取的新型软件。取文中用于BP神经网络算法的1000组实验数据,图12是这里所研究的接口软件获取数据的示使用所研究的接口软件将带来很大的方便,下面以发意图。可知,对于单相短路故障时电阻由0~900g生单相短路故障时短路电阻分别为0、100、200、变化的仿真,只要编写相应的M文件,使电阻按照300400,500600、700、8009009的10种工况为需要变化,就可以实现数据的自动获取,在M文件例来说明应用本文接口软件的优点中,还可以设置电阻为0不变时,在不同的时刻发生图11是利用传统的仿真软件获取一种工况下故障,这样,通过设置,就可以实现仿真一次获取电力自动化设各第27卷电阻为0的数据and its application[J]. Electric Power Automation Equipment编写M文件运行程序进行仿分段电阻为10的数据2006,26(11):67-70使电阻按照真得到10种不[7]朱瑜,梁旭,闵勇,基于 PSCAD/ EMTDC的高压直流输电线路保合要变化同电阻时的数据」读出护仿真研究].现代电力2006,23(2):35-38电阻为909的数据ZHU Yu, LIANG Xu, MIN Yong Simulation of line protection of图12接口软件获取数据示意图HVDC transmission based on PSCAD/EMTDC[J ] ModernFig 12 DataElectric Power, 2006, 23(2): 35-388]张志酒.精通 Matlab65版[M].北京:北京航空航天大学出版个系统数据文件,它包含了所需要的不同工况下的杜,2003所有数据。接口软件由于要调用 Matlab的M文件[9韩笑,徐曦陈卓平.基干 Matlab与VB数据交换的继电保护仿而占用了更多的CPU时间,但由于仿真的过程中不真[J电力自动化设备,2006,26(5)92-95需要对模型参数作任何修改,编写适合的M文件HAN XiaO, XU Xi, CHEN Zhuo- ping. Protection simulation后,程序自动运行,数据文件自动存储,研究人员可based on data exchange between Matlab and VB[J].Electric利用程序运行的时间去做其他研究工作,这样就不Power Automation Equipment, 2006, 26(5): 2-95会像应用传统的仿真软件那样,把时间浪费在点击10许允之刘吴冯字等.Mulb在电力系统仿真实验中的应用[丁.实验技术与昏理,2007,24(1):103-105,125和等待上,大幅提高了研究人员的工作效率。XU Yun-zhi, U Hao, FENG Yu,ct al. The application of the5结论Matlab in the power system simulation experiments[J]. Experimental Technology and Management, 2007, 24(1): 103-105, 125.对学习与研究传统的继电保护算法以及新型的11.钟2,赵华,BCAD围MmDC程序与M言接口的研究电力智能算法而言,能方便、快捷地产生多种工况数据的ZHONG Bo, ZHAO Hua- jun. Study on PSCAD/EMTDC仿真软件是至关重要的。这里所研究的接口软件能Matlab interface[J]. Guangdong Electric Power, 2005, 18(8):1-3减少仿真时间,提高仿真效率,有助于研究者更好地12】何正友陈小勤.基于多尺度能量统计和小波能量嫡测度的电研究电力系统的规律。力暂态信号识别方法[J].中国电机工程学报,2006,26(10)这里所述的接口软件能对不同工况的故障进行仿真与分析。它能一次产生数以万计的不同工况的HE Zheng-you, CHEN Xiao-qin. A study of electric数据。此软件具有较好的解耦性:对于不同的电力system transient signala identification method based on模型以及不同的分析算法,都不需要进行大的改动,scales energy statistic and wavelet energy entropy[]. Proceedinge of the CSEE, 2006, 26(10>: 33-39甚至不必修改。[I3]李洪,王晟.基于小波包和神经网络的电力输电线故障诊断研小波能量熵与BP神经网络在暂态识别上确实究[].数据采集与处理,2004(4);16有较好的性能,但也存在误判的情况。此算法仍然L Hong, WANG Sheng. Fauit diagmosis in power transmission需要研究者的进一步分析研究。line based on wavelet packets and neural network approach[J]. Jourmal of Data Acquisition Processing, 2004(4): 1-6.参岩文献[14]杜选高明峰.人工神经网络在数字识别中的应用].计算机系统应用,2007(2):2127]吴天明,谢小竹,彭彬,等. Matlab电力系统设计与仿真!M].北京:国防工业出版社,2004[2]李广觊,李庚银.电力系统仿真软件综述电气鬼于教学学报,2005,27(3):61-65Applications, 2007(2): 21.2LI Guang-kai, LI Geng-yin. The summary of power system simu15]张亚軍,刘志刚,张大渡.一种基于多神经网络的组合负荷预lation software[J]. Journal of Electrieal Electronic Engineering测模型[J,电网技术,2006,30(21)21-25Education42005,27(3):61-65ZHANG Ya-jun, LIU Zhi-gang, ZHANG Da-bo. A combination[3]KEZUNOVIC M, CHEM Q Novel approach for interactive protectionload forecasting model based on multinetworks[JIsystem simulation [J]. IEEE Trans on Power Delivery, 1997Power System Technology, 2006, 30( 21>: 21-2512(2):668674矗任编辑:李玲)[4] ZHANG Nan, KEZUNOVIC M. Implementing an advanced simulalion tool for comprehensive fault analysia[J]. IEEE on Trans作者简介mission and distribution conference and exhibition .2055.15杨健牟(1983-),女,辽宁凌源人,硕士研究生,主要研究(18):1-6.方向为电力系统继电保护(E·mai: yangjlanwei0910@163[5]林良真,叶林,电磁暂态分析软件包 PSCAD/EMTDC[J.电网技术,200,24(1):65-65麦瑞坤(1980-),男,广东东莞人,博士研究生,主要研究LiN Lipng-zhen, YE Lin. An introduction to PSCAD/EMTDCEJIPower System Technology, 2000,24(1):65-66领战为电力系統故障诊断中信号处理和信息理论的应用、新6]肖异,尹项根,张哲等 PSCAD/EMTDC程序与继电保护仿真模型线路保护理接口技术及应用[J].电力自动化设备,2006,26(11):67-70何正友(1970-),男,四川自貢人,教授,博士研究生导师XAOY, YIN Xiang-g=n, ZHANG Zhe et al. Interface technique主要从事馆号处理和信息理论在电力系統故障诊嘶中的应between PSCAD/ EMTDC and relay protection simulation model用、新型继电保护原理、配电网自动化等方向的研究工作。第27卷第11期电力动化设备Vol27 No 112007年11月Electric Power Automation EyuipmentNy.2007种新的适合分布安装的消弧线圈唐轶,陈庆(中国矿业大学信电学院,江苏徐州221008)摘要;可自恢复性单相接地故障点的电弧是否能自然熜灭的决定因素是接地故障残流的大小。以降低单相接地故障点的残流为出发点,从理论上分析了谐振接地系统残流产生的原因:消弧线自动跟踪补偿只能有效地降低零序回路的无功电流,不能降低零序回路的有功电流。通过仿真计算得出结论:消弧线圈分布安装是降低谐振接地系统接地故障点残流有功分量的有效方法。针对我因6kⅤ和10k中压配电网一般均为Δ接线,无辅助中性点供消孤线图接入的特点,设计了一种新颖的消弧线图。该消弧线图为三相五柱电抗器结构,通过调节两边柱的气隙大小改变补偿电流的大小,结枘简单,适合于分布安装。实验室试验证明其补偿电感线性度好、补偿效果好。关键词:消弧线團;单相接地故障;中性点接地中图分类号;TM55文献标识码:A文章编号:1006-6047(2007)11-0087-04地故障电弧自行熄灭、故障自恢复为原则的。因此0引言消弧线圈的安装、运行应该以使接地故障点的残流配电网故障的80%左右为单相接地故障1。尽量小为目标。单相接地故障中的绝大多数为可自恢复的故障,尤不管是城市电网还是农村电网,用电负荷都在急其是自然条件差(台风、雷电频繁)的架空线电网需剧增加,电网的结构及规樸在不断扩大;城镇电网的要分断电路处理的永久性单相接地故障更是极少改造中,电缆网络正在逐渐取代架空线路;过去采用数。因此,从提高供电可靠性考虑,我国中压配电单电源的辐射式供电或树状供电方式,已不能满足用网绝大多数采用小电流接地方式。小电流接地电网电负荷增长的要求,而需要采用网孔形或环形等供电中,单相接地故障相当大一部分为可自恢复的故障。方式;这些因素都使其单相接地故障电流急剧增加可自恢复性单相接地故障点的电弧是否能自然熄灭单体大容量自动跟踪补偿消孤线圈被局。当的决定因素是接地故座残流的大小:残流小,有利于消弧线图的单体容量不能满足补偿电网接地电流的电弧过零时媳灭;残流小,电弧对介质绝缘的破坏程要求时在同一电网安装2台或多台自动跟踪补偿度低有利于故障点绝缘介质的恢复使电弧不易重弧线圈的也有之。实际上,消弧线圈只能减少接燃:残流小,也有利于降低故障相恢复电压的初始速地故障电流的无功分量,即脱谐度只是单相接地残度,使电弧不易重燃。小电流接地方式是以单相接流中无功分量大小的决定因素。即使采用自动跟踪补偿的方法来实现理想调谐,使接地电流中的无功收稿日期:2006-11-16;修回日期:2007-03-30分量几乎为零后,零序回路的有功损耗电流仍然不Interface between PSCAD/EMTDC and MatlabYANG Jian-wei, MAI Rui-kun, HE Zheng-youof elng, Southwest Jiaotong University, Chengdu 61003Abstract. Theen PsCad emtdc and matlaTo make ththe electromagnetic transient analysis program PSCAD/EMTDC and the math model software packageMatlab, the interface model is built using PSCAD and its parameters are set by calling the M filesing the data engine of Matlab. Massive data under different conditions could be accessed via thisinterface once it runs. An application example of power transmission line is analyzed. Data got viathe interface are processed in segments and sent to BP neural network to detect single -phaserounding fault from switch operations. Simulation results point out that this interface softwarefacilitates the acquisition of massive dataThe project is supported by National Natural Science Foundation of Ching(50407009)and DistinguishedScholars Fund of Sichuan Province(06ZQ026-012)Key words: PSCAD/EMTDC; Matlab; BP neural networkPSCAD/ EMTDC与Mat1ab接口研究旧WANFANG DATA文献链接作者:杨健维,麦瑞坤,何正友, YANG Jian-wei, MAI Rui-kun, HE Zheng-you作者单位:西南交通大学,电气工程学院,四川,成都,610031刊名:电力自动化设备 TICEIPKU英文刊名:ELECTRIC POWER AUTOMATION EQUIPMENT年,卷(期)2007,27(11)被引用次数1次参考文献(15条1.KEZUNOVIC M; CHEM Q Novel approach for interactive protection system simulation 1997(02)2.李广凯;李庚银电力系统仿真软件综述[期刊论文]电气电子教学学报2005(03)3.吴天明;谢小竹;彭彬 Matlab电力系统设计与仿真2004.韩笑;徐曦;陈卓平基于 Matlab与ⅦB数据交换的继电保护仿真[期刊论文]电力自动化设备2006(05)5.张志涌精通 Matlab6.5版20036.朱瑜;梁旭;闵勇基于 PSCAD/ EMTDC的高压直流输电线路保护仿真研究[期刊论文]现代电力2006(02)7.张亚军;刘志刚;张大波一种基于多神经网络的组合负荷预测模型[期刊论文]电网技术2006(21)8.杜选;高明峰人工神经网络在数字识别中的应用[期刊论文]计算机系统应用2007(02)9.李洪;王晟基于小波包和神经网络的电力输电线故障诊断硏究[期刊论文]数据采集与处理2004(04)10.何正友;陈小勤基于多尺度能量统计和小波能量熵测度的电力暂态信号识别方法[期刊论文]中国电机工程学报2006(10)11.钟波;赵华军 PSCAD/EMTDC程序与 Matlab语言接口的研究[期刊论文]广东电力2005(08)12.许允之;刘昊;冯宇 Matlab在电力系统仿真实验中的应用[期刊论文]实验技术与管理2007(01)13.肖异;尹项根;张哲 PSCAD/ EMTDO程序与继电保护仿真模型接口技术及应用[期刊论文]电力自动化设备2006(11)14.林良真;叶林电磁暂态分析软件包 PSCAD/EMTDC[期刊论文]电网技术2000(01)15. ZHANG Nan; KEZUNOVIC M Implementing an advanced simulation tool for comprehensive fault analysis2005(18)引证文献(1条)王朕.朱琳.温渤婴基于 PSCAD的继电保护电压电流发生器的硏制[期刊论文]电力自动化设备2010(8)本文链接http://d.g.wanfangdata.com.cn/periodiCaldlzdhsb200711021.aspx
- 2021-05-06下载
- 积分:1
linux-selinux功能及源码分析
该书详细介绍了linux中关于selinux部分功能的实现流程和关键代码分析7.1.1.3基于创建者SID的文件系统.,,7.1.2 Gcncralizcd Sccurity Context labeling,,,,637.1.4 Mount-Point labeling667.1.5 Initial SId87.1.5.1 Initia1SID和 Initial sc的定义7.1.5.2 Initia1SID和 Initial sc的写出和解析707.1.5.3 Initia1SID和 Initia1SC的使用717.1.6进程创建的内核数拥结构的标签727.2何时需要为应用程序开发pp?●··垂·看垂723设计pp的一般过程7.4为vock程序编写v1ock.pp●垂春·垂767.4.1第一阶段:定义基本的te,fc和.if文件767.4.2第二阶段:根据 AVC Denied msg补充相应的规则807.4.3第三阶段:使用 don audit规则屏蔽与冗余操作枓关的错误信息7.4.4其他注意事项87.5为 samhain程序编写 samhain.pp..857.5.1第一阶段:定义基本的.te,,fc和.if文件事垂垂7.5.2第二阶段:根据 AVC Denied msg补充相应的规则07.5.3第三阶段:使用 don audi t规则屏蔽与冗余操作相关的错误信息927.5.4图解:使用 samhain时的 Domain transition过程春春鲁看D垂垂春,,937.6使用 SLIDE来开发pp,分析 SELinux源代码.7.7编写pp时的注意事项中垂鲁鲁··●,,,,,,,,,,,948. SELinux问题分析步骤总结.8.1排除DAC权限的问题,,,968.2检查用户当前所扮演的角色963分析 AvC Denied message: Target的标签正确吗?,8.4在系统启动过程中适时地修复错误的文件标签97应用程序的实际行为要和其pp的假设相一致,,,,988.6明确相应 domain所缺少的权限8.7其他注意事项8.7.1在 Permissive模式卜调试,998.7.2取消所有的 dontaudit规则.8.7.3当心 MLS Constraints1008.7.4检査 SeLinux- aware应用程序的配置和编译选项,.1018.7.5积极地和社区交互.1018.7.6使用 strace直接定位失败的系统调用(重要!).………1028.8 selinux问题分析过程和方法举例( Revisited),,1028.8.1实例一:用户无法在 console上正常登录-使用 strace定位失败操作1028.8.2实例二: sysadm r无法正确使用 useradd命令108SELinux开发笔记.…,,1149.1使能对/dev/ console的支持1149.1.1提出问题:20101213及之前的 epolicy缺乏对 conso1e的支持9.1.2分析问题··p9.1.3解决问题.1169.1.4测试结果1179.1.5使用 strace观察 consolo被重新打标签的细节(new),,,,1179.2 Socket labeling开发,1189.2.1提出问题: socket默认继承其创建者的SID的副作用,,,,,1189.2.2分析问题1199.2.3解决问题1199.2.4测试结果.,.1239.3给 role transition规则添加c1ass的支持,,..,,1249.3.1提出问题-当前 role transition规则只对 process类有效,,1249.3.2分析问题..,,,,,.1249.3.3解决问题D垂垂垂,,,,,1259.3.4测试结果,,,,,1319.3.5其他说明.1339.3.6经验总结●非春…1359.4增加 role attribute的攴持(new).,,,1369.4.1提出问题之一:roe- dominance规则的局限性1369.4.2提出问题之二:期望的 role attribute使用模型..1409.4.3分析问题1429.4.4解决问题D1439.4.5测试结果639.4.6一个有意思的编译问题,,,,1689.4.7有关role- types规则语法的讨论.,,.1719.5区分 tuna1e和 boolean(new).···1729.5.1提出问题无用的 tunable分支被写入 policy.X.729.5.2分析问题1739.5.3解决问题,,1749.5.4测试结果.1879.5.5其他经验总结9.N在策略中指定 newcontext的缺省设置方法(todo)1929.N.Ⅰ提出问颋- newconteκt的设置策略被硬编码到机制中19210. SeLinux内核驱动分析小记19410.1LSM核心数据结构及相应回调函数,19410.2 sELinux核心数据结构.19410.2.1 selinux对内核数据结构的扩展19410.2.1.1进程的安全属性19510.2.1.2文件和打开文件描逋符的安全属性.,,.,,,,,,..19510.2.1.3 socket的安全属性10.2.1.4文件系统超级块的安全属性1960.2,2AVC数据结构.19710.2.3內核 policy中保存TE规则的数据结构.,19910.2.4內核 policy中保存RBAC规则的数据结构.鲁鲁,,,,,20010.2.5 SeLinux规则在内核中的检查点总结(new)..,,,,,,20110.3情景分析:打开文件时的相关函数调用链20110.4通过 SEL inuxfs访问内核 Security Server,,,,,,,,,,,,,,20810.4.1/ selinux/load和1 oad policy命令一装载冰解析 policy.二进制文件20910.4.2/sc1inux/ relate1及 compute relabel命令-查询 type change规则21110.4.3/ selinux/ create及 compute create命令-查询type_ transition规则21110.4.4/ selinux/ member及 compute member命令-查询 type member规则.21210.4.5/ selinux/ access文件和 compute av命令-查询a11ow规则...21310.4.6/ selinux/user文件和 compute_user命令-查询用户登录后可能的SC21310.4.7/ selinux/ initial contexts/-查询 Initia1SI对应的安全上下文21410.4.8/ selinux/ class/-查询内核 class datum数拥结构(todo10.5情景分析: Domain transition的实现●··垂·看垂,,,,,,,,,,,,,,,,,,,,,21510.5.1 selinux setprocattr凼数-/proc/lpid/attr/“文件驱动21610.5.2 do execve的行为和相关 seLinux内核驱动垂垂看21810.6情景分析:文件系统的挂载和新文件的创建2110.6.1文件系统的挂载过程(new)..22110.6,2确定新创建文件的标签...23610.7 Context数据结构和u32sid之间的映射24110.7.1 sidtab node的定义和 sidtab的组织结构.24110.7.2 sidra_ insert函数- sidtab node的插入·,,,,,,,,,,,,,,24210.7.3 sidtab context to sid函数返回或分配sid..24310.7.4 security transition sid函数-计算新 subject/ object的sid....24410.7.5创建 context并注册到 sidtab以获得sid的时机.24910.7.6 security context to sid函数返回Sc字符对应的sid....25010.7.7 sidtab scarch corc囪数- sidtab node的查找,,,25110.7.8 security sid to context core函数-返回sid所对应的SC宇符串25210.8 Class Mapping..25410.8,1C1 ass mapping的作用..,,,,,25410.8,2 Class Mapping的创建垂垂垂·,,,,,,,,,,,,,,,,25410.8.3 Class mapping的使用-c1ass/perm内核态和用户态索引的转换.25710.8,4增加 class或者权限的方法25810.9和文件操作相关的回调数9. 1 selinux file mprotect回调函数25910.10和 AF UNIX SOCket相关的回调函数(todo),26310.11和程序执行相关的操作(todo).26410.11.1se1 inux bprm secureexec凼数-扩展 AT SECURE机制26410.11.1.1C库 AT SECURE机制介绍26410.11.1.2C库 AT SECURE机制演示26710.11.1.3 SELinux对 AT SECURE机制的扩展( Revisited).26911.用户态应用程序对 SeLinux的支持27211.11 selinux相关文件分析,27211.1.1 selinux config,c文件.,,27211.1.2 gelfilecon.c文件,,,,,27211.1.3 procattr.c文件.27211.1.4 compute relate1.c文件(访问/ selinux/ relate1)..27311.2 newrole源代码分析,27411.2.0 newrole命令的使用模型2742.1main函数7311.2.2 parse command linc arguments函数.,,,27611.2.3 relabel tty函数2761.3PAM模块分析..,27711.3.1 pam sC1inux.so作用分析(TODO27711.3.2pam1 oginuid,so作用分析,27811.3.3 pam name space.so作用分析.,27911.3.3.1多态( polyinstantiation)的作用,,,,,,,,,,,27911.3.3.2LSP对多态的配置,,,,,,,,,,,,,,28111.3.3.3 SELinux对 polyinstantiation的支持.,,,,28111.3.3.4解决在使能多态后 crond的使用间题28211.3.3.5 pam namespace,so源代码分析(IODO11.3.3.6有关 pam namespace.so的剩余问题8412. refpolicy的编译,链接,扩展,,,,,,,,,28512.1描朮标识符的数据结构8512.1.1 type datum t8512.1.2 common datum t12.1.3c1 ass datum t.,,,,,.,,,,.28612.1.4ro1 e datum t..,,,,,,曲D,.,28712.2描朮规则的数据结构..28812.2.1 AVTAB AV和 AVTAB TYPE类规则..,,,,28812.2.2 rolc transition规则●·垂,,,,,,,,,,,,,,,,,29012.3用户态 policy t数据结构分析.12.3.1 policy t数据结构综诚29012.3.2 symtab符号表.29412.3.3 avrule block t, avrule decl t FH scope stack t12.3.4 scope datum t-描迒标识符的定义者和使用者29712.3.5 scope index t-描逋一个b1ock/dec1内定义或引用的标识符.29712.3.6 cond node t-描朮一个ir- else conditiona29812.4 module的编译- checkmodu1e..30112.4.1编译过程核心数拥结构关系图30112.4.2 define policy- policy module词法分析....30212.4.3 begin optional- optional_ policy词法分析30412.4.4 declare type-type标识符的定义,,30312.4.5 require type-声明对type标识符的外部依赖31512.4.6 define te_ arab-TE规则的词法分析..31812.4.7 define role_ trans- role transition规则的词法分析32412.4.8 define conditional-if- else conditiona1的词法分析.2912.5 module的链接- semodule1ink.12.5.1链接过程核心数据结构关系图34012.5.2 symtab符号表的拷贝...,,,,,,34112.5.2.1 p types符号表的拷贝,,..34112.5.2.2所有其他标识符符号表的拷贝,,,,,,,,,,,,,,34412.5.2.3 p roles符号表的修正12.5.3 Scope符号表的拷贝34912.5.4链接过程的主要囪数调用链12.6 module的扩展- semodule_ expand37012.6.1 expand过程核心数据结构关系图..37012.6.2type的拷贝..37112.6.3 common的拷贝,,,37412.6.10 expand过程的核心函数调用链,.,,,37612.6.11展开规则的“字面”描诚- copy and expand avrule block囪数..38312.71ink和 expand过程的图解(new),,,,,,,,40012.7.1Role/ attribute标识符的1ink和 expand..…………40012.7.2 symtab的1ink和 expand,,,,,,403128规则中的m4宏定义(new)..,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,40513. seLinux的应用41013. 1 Labeled Networking (half-baked),,,,,,,,,,,,,,,,,,,,,,,41013.1.1 IPsec简介,,,,,41013.1.2 seLinux对本地网络的控制( compat-net),,,,,,。,,,,,,,41613.1.3用 Labeled ipsec实现分布式网络控制..41713.1.4 Linux內核ⅹIM相关数据结构.41813.1.5和 IPsec相关的类,权限和援囗D41813.1.6LSM中和 Labeled ipsec相关的回调函数,41913.1.6.1检查一个f1ow(发送或接收)能否使用一个SPD条目41913.1.6,2给SPD/SAD分配安全属性.,,,42113.1.6.3释放SPD/SAD中的安全属性,,,,,,,,,,,,,,,.42413.1.6.5逐包检查一个 socket能够接收一个skb42413.1.6,4获取发送方的安全上下文字符串..,,4231.7 Labeled ipsec环境的搭建.13.1.8观察 Labeled ipsec的行为43013.1.9和 Labeled ipscc相关的 SeLinux规则,432参考文献434简化 selinux操作的bash配置方法本文档各个版本的说明437注第1至5章包含自己对《 SELinux By example》一书的学习心得;第6至9章包含自己实际经验的总结第10和11章为 selinux内核和用户态源代码分析总结第12章为 refpolicy的编译过程源代码情景分析;第13章打算收录些 SeLinux在内核或者用户态的应用,比如 Labeled Networking,XACl等。l, Refpolicy有300+个p的实现,了解核心pp的实现,必须首先了解应用程序的行为以及安全目标2,阅读 sELinux- aware应用程序源代码,看如何使用 libselinux库函数,学习 sELinux用户态编程3,了解 sELinux语法,标识符的二进制表示形式,内核态和用户态的数据结构;4,学习 policy module的 compile/ expansion/1ink过程5,按照类别,逐步掌握LSM回调囪数的调用时机,所在内核子系统的原理,以及 SELinux对LSM回调函数的实现(参考《 Implementing sElinux as a lsm module》一文)6,掌握 seLinux对各个内核子系统核心数据结构的扩展7,学习XAC规范,体会如何开发 Userspace Ob、 ject Manager;8,积极阅读 Joshua,Dan等人的b1og,向前奉们学与。9,积极关注 selinux邮件列表上的问答和讨论,丰富自己的视野希望能通过自己坚持不懈的努力,证得同满的 sELinκ知识和智慧。引子1,软件的缺陷不可避免(无论过去,现在,或将来);2,没有底层操作系统的支持就无法真正实现上层软件的安全性D. Baker,《 Fortresses Built Upon Sand》操作系统中访问控制模型的演化1.1访问控制模型的概念( Reference moni tor)subjectsAccessobjectsAlertYes or No?Feference validation MechanismRuleelampcrpra吋DBVerifiableRY M由上图可见,访问控制模型由如下四部分组成1, Subjects:访间的发起者,比如系统中的进程2, Objects:被访闩的对象,比如架作系统所管理的仼何资源丶数捃(包拈进程,任意类型文件,Tc尸端口,甚至单个网络报文。总而言之,任何内核数据结构都可能成为被访问的对象)3, Rules de:规则库,在用户态实现的访问策略,定义 Object的属性并规定哪些Sub、ect可以通过什么样的方式对它进行访问;4,RVM( Reference validation mechanism):在操作系统内实现的机制,是汸问控制策略的执行者,在访问操作过程中根据规则库判断当前操作是否合法;Hinx首先需要标识访问者和被访问的对象,由下文可知相关信息保存在进程的 task struct以及其他内核数据结构中 security指针所指向的数据结构中(注意这些数据结构都是运行时动态创建的,安全属性信息来源于文件在辅存上的扩展属性,以及规则库中的 Initia1S1定义等)。白用户态定义的访问规则库指定哪些访闩老能够以何种方弌访问哪些对象,而内核屮的SεLix机制则根据当前操作的访问者和被访问对象,查询规则库得到Yes/No结论。1.2DAC( Discretionary Access Contro1)的致命伤¨ discretionary”一词的含义为“ not contro1 led bv strict rules, but decided on by someonein a position of authority”,所以DAc的本质是由文件的属主定义其它用户对该文件的许可访问方式,其“ owner-group-wor ld”模型如下:S 1s -1 /usr/bin/passwdrwsr-xr-x I rootroot 37084 2009-04-04 13: 49/usr/bin/passwd系统中所有文件属主给各自文件所定义的“ owner-group-wor d”模型的总和,即为DAC下访问规则库的实现。DAC的开发环境(相对封闭的开发社区,或大学实验室)和对软件使用环境的假设(软件没有缺陷且运行环境友好)注定了DAC存在着天生缺陷:进程和文件的安全属性都基于(且总是基于)uid/euid和gid/egid,无论进程执行什么应用程序,其uid/euid都不改变(暂不考虑 setuid类程序),无法将进程所执行程序的行为和可靠性(安全性)标识到进程的安全属性中,导致操作系统无法有针对性地对进程施加访问控制比如,用户登录 shell进程会创建子进程以执行shel1的外部命令,子进程继承父进程的uid/gid,所以无法通过uid/gid来区分父子进程,即无法区分用户人为的操作和通过程序执行的操作。比如,无法限制 passwd程序只能被用户在命令行执行,而不能被属于该用户的其它进程执行。显然,“用户(登录hc11进程)是可信的”绝对不等于“用户执行的程序(后继fork的子进程)也是可信的”。登录sh1进程的行为由用户有意识地支配,而属于该用户的进程的行为则由其执行的实际程序决定。但是程序可能冇在安全漏洞,一巨被攻击植入恶意代码,黑客将具有该用户在系统上的所有权力(比如恶意删除用户的文件,盗取uid/gid所能读取的文件的内容,执行 passwd程序修改用户的密码)另外,用户进程可以执行各种应用程序,而这些程序自身的行为丶对系统安仝性的景响都不尽相同,比如网络类应用程序更容易受到外界病毒的攻击,相应地操作系统应该对此类应用施加更为严格的访冋控制。显然无法通过进程的uid/gid来描当前进程所执行的程序的安全性,因此操作系统也无法有针对性地实施访问控制。综上所逋,仪将uid/gid来作为进程和文件的安全属性是远远不够的最后,DAC的另一个缺点是对权力的管理和划分不够细致(只有两种情况:root或non-root),无法进步细分丶限制root用户的能力。一旦euid/ egid为0的进稈被攻破,将危害整个系统的安全1.3MAC( Mandatory access Contro1)的起源针对DAC的缺点,在ⅥAC中不再由访问对象的属主定义不同用户对其的许可访问方式,而是由匿定的规则库决定。MAC最初的研究由美国军方的MLS(u1ti- Leve1 Security)应用所推动,它将访问主体和被访问对象分成不同的安全级别,严格控制信息只能从低安全级别向高安全级别流动:低安全级别的丰体只能向高安全性的数捃对象中追加新的数据,并∏禁上读取;高安全级别的主体能够读取低安全级别的数据,并且禁止任何形式的写入(即“ no read up, no write down”)ⅥS只定位于数据保密性而并不关心数据完整性和最小权能原则( east, Privilege),以及对进程的能力进行分类。后来的FASK安全系统模型着眼于解决这些不足,而 SELinux则是FASK在 Linux内核中的实现1.4 Selinux的TE( Type Enforcement)模型SELinux作为MAC的一和实现,通过中央规则库( policy.x,二进制数据文件)给所有进程丶所有文件内核数据结构定义各自的安全标识(标签,1abel/type),明碓定义被访问对象所支持的访问方式,并规定进程标签对被访问对象的合法的访问方式。在配置 SELinux时给整个文件系统上的所有文件设置标签,在系统启动过程中init进程经由 selinux接口装载 policy.X到內核空间,由內核中的 SecuritvServer在处理用户态系统调用时实时査询(注,这里所说的“ Security server”,即为 sELinux内核驱动中定义的各种数据结构,比如 sistah, policy, AVC cache,以及在 services.c文件中定义的各种以“ security”开头的函数)
- 2020-12-04下载
- 积分:1