资源描述:
《最新 linux 内核 nx 实现技术分析》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、计算机应用孙晨等:最新Linux内核NX实现技术分析最新Linux内核NX实现技术分析孙晨,雷英杰,路艳丽(空军工程大学导弹学院陕西三原713800)摘要:NX(NoeXecute)是一种通过将数据页标记为不可执行来防止恶意代码执行的硬件机制。对最新的Linux内核中NX实现技术进行了分析。首先,介绍了x86平台处理器的NX技术,给出了保护模式下的处理器启用物理地址扩展后,检测、打开该安全机制的方法及具体保护机理。其次,分析了最新的Linux2.6.11.7内核检测、启动NX的过程,归纳了新的页面保护函数,阐明了页面异常的处理过程。最后,总结
2、了实现NX的优点并指出了可能带来的问题。关键词:操作系统;Linux;NX技术;EDB中图分类号:TP309.1文献标识码:B文章编号:1004373X(2006)0403003AnalysisofNXImplementationinLatestLinuxKernelSUNChen,LEIYingjie,LUYanli(TheMissileInstitute,AirForceEngineeringUniversity,Sanyuan,713800,China)Abstract:"NoeXecute"isahardwarefunctionali
3、tyusedtoblockmalwarecodeexecutionbymarkingdatapages.TheNXimple2mentationinlatestLinuxkernelisanalysedinthispaper.Atfirst,theNXcapabilityofX86processorisprestent,themethodhowtodetectandenablethissecuritycapabiltyinprotectedmodewhenphysicaladdresextensionisenabled,andalsothea
4、ctualprotectingmechanismisgiven.Second,thedetectingandstartupprocedureinLinuxkernel2.6.11.7isanalysed,andthennewfunctionsforpageprotectingandprocedureofpagefaultexceptionhandlingaregiven.Atlast,advantagesandpossibleproblemsaresummarized.Keywords:operationsystem;Linux;NXtech
5、nology;EDB[1]行,他保证了“页粒度”的存储保护。对于IA32平台1引言来讲,该功能在2种模式下可用:NX(NoeXecute)是一种通过将数据页标记为不可执(1)启用物理地址扩展(PAE)的传统保护模式;行来防止恶意代码执行的硬件机制,其主要目标是通过禁(2)启用IntelEM64T(ExtendedMemory64Tech2止“执行数据”来有效防止缓冲区溢出类的攻击。nology)的IA32e模式。信息安全尤其是操作系统安全问题日益突出,各主要2.2EDB的检测与启用处理器厂商相继在处理器中加入NX等硬件安全特性,比使用EDB功
6、能并不引入新的指令,软件可以用如AMD的NX技术和Intel的EDB(ExecuteDisableBit)CPUID指令检测“不可执行位”(EDB)的存在。EAX中放[2]技术。Linux之父LinusTorvalds表示,对于Linux操作入80000001H,执行CPUID指令,返回值存于EDX中。系统而言,能够支持“NX”功能是相当重要的,新版本若EDX的第20位为1,则EDB功能可用。此时若启用Linux内核很快就加入了对该功能的支持;Mircrosoft在PAE,软件可以通过设置扩展功能使能寄存器EFER中的WindowsXP的sp
7、2和WindowsServer2003的sp1中加第11位(NXE位)为1来打开EDB功能,EFER的地址为入了对该技术的支持。C0000080H。若EDB功能不可用,则EFER的NXE位保留,对该位的写操作将导致通用保护(GP)异常。2IA32架构处理器的EDB功能2.3保护模式+PAE时的线性地址转换2.1EDB的概念对运行于保护模式+PAE的处理器,使用EDB功能2004年下半年,Intel在桌面主流平台的Pentium4和时的线性地址转换机制基本不变,只是页结构中定义了新CeleronD系列处理器中加入了对NX技术的支持(Intel称
8、的属性位。对于4kB的页,若EFER的NXE位为1,则页之为EDB,亦即E)。EDB是一种健壮的硬件特性(robust目录项和页表项的63位为NX位;否则,该位保留