成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

ASLR如何保護(hù)Linux系統(tǒng)遠(yuǎn)離緩沖區(qū)溢出攻擊?

譯文
安全 網(wǎng)站安全 Linux
ASLR(地址空間布局隨機(jī)化)是一種在Linux和Windows系統(tǒng)上使用的緩解內(nèi)存漏洞的技術(shù)。本文介紹了如何判斷它是否在運(yùn)行、如何啟用/禁用它以及如何查看其工作狀況。

【51CTO.com快譯】地址空間布局隨機(jī)化(ASLR)是操作系統(tǒng)的一種保護(hù)內(nèi)存的進(jìn)程,旨在防范緩沖區(qū)溢出攻擊。它有助于確保與系統(tǒng)上運(yùn)行中的進(jìn)程關(guān)聯(lián)的內(nèi)存地址不可預(yù)測(cè),因此讓攻擊者更難利用與這些進(jìn)程有關(guān)的缺陷或漏洞。

ASLR目前用于Linux、Windows和MacOS三大系統(tǒng)。2005年它首次實(shí)現(xiàn)在Linux上。2007年,這項(xiàng)技術(shù)部署在微軟Windows和MacOS上。雖然ASLR在這每一款操作系統(tǒng)上提供了一樣的功能,但它實(shí)現(xiàn)在每個(gè)操作系統(tǒng)上的方式都不一樣。

ASLR的效果取決于攻擊者仍然未知的全部地址空間布局。此外,只有編譯成位置獨(dú)立的可執(zhí)行程序(PIE)的可執(zhí)行文件才能從ASLR技術(shù)得到最大程度的保護(hù),因?yàn)榇a的所有部分都將在隨機(jī)位置裝入。無(wú)論絕對(duì)地址如何,PIE機(jī)器碼都會(huì)正確執(zhí)行。

[[255322]]

ASLR的局限性

盡管ASLR讓人更難利用系統(tǒng)漏洞,但其在保護(hù)系統(tǒng)方面的作用有限。了解ASLR的局限性很重要:

  • 不解決漏洞,而是加大利用漏洞的難度
  • 不跟蹤或報(bào)告漏洞
  • 不為不支持ASLR而開(kāi)發(fā)的二進(jìn)制代碼提供任何保護(hù)
  • 無(wú)法避免規(guī)避機(jī)制

ASLR的工作原理

ASLR加大了系統(tǒng)的控制流完整性,為此使內(nèi)存布局中使用的偏移隨機(jī)化,從而讓攻擊者更難執(zhí)行成功的緩沖區(qū)溢出攻擊。

ASLR在64位系統(tǒng)上的效果要好得多,因?yàn)檫@類(lèi)系統(tǒng)提供了大得多的熵(隨機(jī)化潛力)。

ASLR是否可以用在你的Linux系統(tǒng)上?

下列兩個(gè)命令中的任何一個(gè)都可以告訴你ASLR在你的系統(tǒng)上是否已啟用。

  1. $ cat /proc/sys/kernel/randomize_va_space 
  2. $ sysctl -a --pattern randomize 
  3. kernel.randomize_va_space = 2 

上述命令中所示的值(2)表明,ASLR在完全隨機(jī)化模式下工作。顯示的值將是下列中的一個(gè):

  1. 0 = 被禁用 
  2. 1 = 保守隨機(jī)化 
  3. 2 = 完全隨機(jī)化 

如果你禁用ASLR并運(yùn)行下列命令,會(huì)注意到下面ldd輸出中顯示的地址在隨后的ldd命令中都一樣。ldd命令的工作原理是,裝入共享的對(duì)象,并顯示它們最后出現(xiàn)在內(nèi)存中的哪個(gè)位置。

  1. $ sudo sysctl -w kernel.randomize_va_space=0    <== disable 
  2. [sudo] password for shs: 
  3. kernel.randomize_va_space = 0 
  4. $ ldd /bin/bash 
  5.         linux-vdso.so.1 (0x00007ffff7fd1000) <== same addresses 
  6.         libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007ffff7c69000) 
  7.         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffff7c63000) 
  8.         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffff7a79000) 
  9.         /lib64/ld-linux-x86-64.so.2 (0x00007ffff7fd3000) 
  10. $ ldd /bin/bash 
  11.         linux-vdso.so.1 (0x00007ffff7fd1000) <== same addresses 
  12.         libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007ffff7c69000) 
  13.         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007ffff7c63000) 
  14.         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007ffff7a79000) 
  15.         /lib64/ld-linux-x86-64.so.2 (0x00007ffff7fd3000) 

如果該值設(shè)回成2以啟用ASLR,你會(huì)發(fā)現(xiàn)每當(dāng)你運(yùn)行該命令,地址都會(huì)變化。

  1. $ sudo sysctl -w kernel.randomize_va_space=2    <== enable 
  2. [sudo] password for shs: 
  3. kernel.randomize_va_space = 2 
  4. $ ldd /bin/bash 
  5.         linux-vdso.so.1 (0x00007fff47d0e000) <== first set of addresses 
  6.         libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007f1cb7ce0000) 
  7.         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007f1cb7cda000) 
  8.         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f1cb7af0000) 
  9.         /lib64/ld-linux-x86-64.so.2 (0x00007f1cb8045000) 
  10. $ ldd /bin/bash 
  11.         linux-vdso.so.1 (0x00007ffe1cbd7000) <== second set of addresses 
  12.         libtinfo.so.6 => /lib/x86_64-linux-gnu/libtinfo.so.6 (0x00007fed59742000) 
  13.         libdl.so.2 => /lib/x86_64-linux-gnu/libdl.so.2 (0x00007fed5973c000) 
  14.         libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007fed59552000) 
  15.         /lib64/ld-linux-x86-64.so.2 (0x00007fed59aa7000) 

試圖繞過(guò)ASLR

盡管ASLR有諸多優(yōu)點(diǎn),但試圖繞過(guò)ASLR并不罕見(jiàn),似乎屬于這幾類(lèi):

  • 使用地址泄露
  • 訪問(wèn)與特定地址有關(guān)的數(shù)據(jù)
  • 利用實(shí)現(xiàn)方面的薄弱環(huán)節(jié),熵很低或ASLR實(shí)現(xiàn)存在缺陷時(shí),讓攻擊者得以猜出地址。
  • 使用硬件操作的側(cè)通道

結(jié)束語(yǔ)

ASLR大有價(jià)值,尤其是在64位系統(tǒng)上運(yùn)行、正確實(shí)現(xiàn)時(shí)。雖然無(wú)法避免規(guī)避機(jī)制,但它確實(shí)大大增加了利用系統(tǒng)漏洞的難度。這份參考資料(https://cybersecurity.upv.es/attacks/offset2lib/offset2lib-paper.pdf)更詳細(xì)地介紹了64位Linux上是完全ASLR的效果,而這篇論文(http://www.cs.ucr.edu/~nael/pubs/micro16.pdf)介紹了使用分支預(yù)測(cè)繞過(guò)ASLR的一種規(guī)避方法。

原文標(biāo)題:How ASLR protects Linux systems from buffer overflow attacks,作者:Sandra Henry-Stocker

【51CTO譯稿,合作站點(diǎn)轉(zhuǎn)載請(qǐng)注明原文譯者和出處為51CTO.com】

責(zé)任編輯:趙寧寧 來(lái)源: 51CTO
相關(guān)推薦

2019-03-06 09:00:38

ASLRLinux命令

2019-01-28 18:05:04

2019-02-13 13:31:42

2022-05-07 08:27:42

緩沖區(qū)溢出堆棧

2009-05-13 09:21:48

2014-07-30 11:21:46

2009-09-24 18:16:40

2010-10-09 14:45:48

2011-11-15 16:00:42

2017-01-09 17:03:34

2019-02-27 13:58:29

漏洞緩沖區(qū)溢出系統(tǒng)安全

2010-09-29 15:10:58

2018-01-26 14:52:43

2012-07-18 12:44:02

2020-08-10 08:37:32

漏洞安全數(shù)據(jù)

2015-03-06 17:09:10

2015-09-02 09:01:03

2012-09-27 09:25:50

2010-12-27 10:21:21

2012-07-26 09:39:01

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: 91欧美激情一区二区三区成人 | 日韩毛片在线免费观看 | 国产精品成人国产乱 | 亚洲综合婷婷 | 欧美性成人| 99tv| aaa级片 | 国产日韩欧美一区二区 | 伊人热久久 | 亚洲成人中文字幕 | 国产精品久久久久影院色老大 | 97国产爽爽爽久久久 | 国产成人啪免费观看软件 | 国产黄色在线观看 | 婷婷久久五月天 | 2018国产大陆天天弄 | 九九精品久久久 | 亚洲色图插插插 | 中文字幕视频在线免费 | 亚洲免费人成在线视频观看 | 国产精品久久久久久久久久三级 | 天堂中文在线播放 | 久久久国产一区 | 国产区在线视频 | 色www精品视频在线观看 | 天天插天天搞 | 三级av免费| 91精品久久久久久久久久 | 天天插天天操 | 91原创视频在线观看 | 国产欧美视频一区二区 | 欧美精产国品一二三区 | 精品在线一区 | 日韩爱爱网站 | 日日射夜夜骑 | 九九热免费看 | 亚洲日本免费 | 精品国产不卡一区二区三区 | 日韩精品免费视频 | 亚洲精品国产精品国自产在线 | 日韩成人av在线 |