WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院网络安全安全技术 覆盖SEH攻击的末日-SEHOPP 阅读

覆盖SEH攻击的末日-SEHOPP

 2009-02-04 13:53:20 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鎼痪褔鏌曟繝蹇曠窗闁煎壊浜滈—鍐偓锝庡墮娴犙勭箾閸喎鐏ユい鏇樺劦椤㈡瑩鎮℃惔銇帮拷
核心提示: 第二种方法则涉及向异常调度器添加动态check,而该调度器并不依赖于源自二进制的元数据,覆盖SEH攻击的末日-SEHOPP(3),这正是SEHOP采用的方法,从较高级别来看,目前而言,SEHOP是能够保护用户的有效工具,SEHOP保护能够通过验证thread的异常处理器列表的完整性(在允许

第二种方法则涉及向异常调度器添加动态check,而该调度器并不依赖于源自二进制的元数据。这正是SEHOP采用的方法。从较高级别来看,SEHOP保护能够通过验证thread的异常处理器列表的完整性(在允许任何登记的异常处理器被呼叫前)来阻止攻击者使用SEH技术。SEH覆盖的含糊性使这种缓解技术得以实现。当大多数基于堆栈的缓冲区发生溢出时,攻击者将会在覆盖异常登记记录的异常处理器函数指针之前,将会含糊地覆盖异常登记记录的下一记录指针。由于下一记录指针被损坏,异常处理器链的完整性就被破坏了。这一观点,加上ASLR技术,使SEHOP得以有效减轻SEH覆盖技术带来的损坏。

从执行的角度来看,SEHOP通过两个不同的步骤来实现其功能。第一步是在thread的异常处理器列表中插入象征性的异常登记记录以作为尾记录,这一步骤发生在thread第一次开始在用户模式执行的时候。由于异常登记记录总是插在异常处理器列表的前面,象征记录总是最后的异常登记记录。

第二步则是:在异常情况正在被调度的时候清理常处理器列表以确保象征记录的有效性。这一步骤发生在,异常调度器发现在用户模式出现异常的时候。如果象征记录无效,异常调度器就会认为,异常处理器列表已经遭到破坏,已经发生了SHE覆盖技术攻击。随后,异常调度器就会安全结束进程。如果发现象征记录有效,异常调度器就会正常运作并呼叫每个登记异常处理器。下图就是相关的原理图。

覆盖SEH攻击的末日-SEHOPP

可以如何使用SEHOP

SEHOP在Windows Server 2008中是默认启用的,而在Windows Vista SP1中默认是禁用的。在Windows Vista SP1中默认禁用的主要原因是因为缺乏足够的应用程序兼容性数据。KB article 956607则讲述了如何从系统的角度启用或者禁用SEHOP。

安全专家指出,会继续研究新的先进的缓解技术,目前而言,SEHOP是能够保护用户的有效工具,希望用户们启用此功能(如果默认为禁用的话)以更好地保护自己免收SEH覆盖技术的攻击。

上一页  1 2 3 

Tags:覆盖 SEH 攻击

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接