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

ASLR是如何保護Linux系統(tǒng)免受緩沖區(qū)溢出攻擊的

系統(tǒng) Linux
地址空間隨機化(ASLR)是一種內(nèi)存攻擊緩解技術(shù),可以用于 Linux 和 Windows 系統(tǒng)。了解一下如何運行它、啟用/禁用它,以及它是如何工作的。

[[258834]]

 Address Space Layout Randomization(ASLR)是一種操作系統(tǒng)用來抵御緩沖區(qū)溢出攻擊的內(nèi)存保護機制。這種技術(shù)使得系統(tǒng)上運行的進程的內(nèi)存地址無法被預(yù)測,使得與這些進程有關(guān)的漏洞變得更加難以利用。

ASLR 目前在 Linux、Windows 以及 MacOS 系統(tǒng)上都有使用。其最早出現(xiàn)在 2005 的 Linux 系統(tǒng)上。2007 年,這項技術(shù)被 Windows 和 MacOS 部署使用。盡管 ASLR 在各個系統(tǒng)上都提供相同的功能,卻有著不同的實現(xiàn)。

ASLR 的有效性依賴于整個地址空間布局是否對于威脅者保持未知。此外,只有編譯時作為位置無關(guān)可執(zhí)行文件Position Independent Executable(PIE)的可執(zhí)行程序才能得到 ASLR 技術(shù)的最大保護,因為只有這樣,可執(zhí)行文件的所有代碼節(jié)區(qū)才會被加載在隨機地址。PIE 機器碼不管絕對地址是多少都可以正確執(zhí)行。

ASLR 的局限性

盡管 ASLR 使得對系統(tǒng)漏洞的利用更加困難了,但其保護系統(tǒng)的能力是有限的。理解關(guān)于 ASLR 的以下幾點是很重要的:

  • 它不能解決漏洞,而是增加利用漏洞的難度
  • 并不追蹤或報告漏洞
  • 不能對編譯時沒有開啟 ASLR 支持的二進制文件提供保護
  • 不能避免被繞過

ASLR 是如何工作的

通過對攻擊者在進行緩沖區(qū)溢出攻擊時所要用到的內(nèi)存布局中的偏移做了隨機化,ASLR 加大了攻擊成功的難度,從而增強了系統(tǒng)的控制流完整性。

通常認為 ASLR 在 64 位系統(tǒng)上效果更好,因為 64 位系統(tǒng)提供了更大的熵(可隨機的地址范圍)。

ASLR 是否正在你的 Linux 系統(tǒng)上運行?

下面展示的兩條命令都可以告訴你的系統(tǒng)是否啟用了 ASLR 功能:

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

上方指令結(jié)果中的數(shù)值(2)表示 ASLR 工作在全隨機化模式。其可能為下面的幾個數(shù)值之一:

  1. 0 = Disabled
  2. 1 = Conservative Randomization
  3. 2 = Full Randomization

如果你關(guān)閉了 ASLR 并且執(zhí)行下面的指令,你將會注意到前后兩條 ldd 的輸出是完全一樣的。ldd 命令會加載共享對象并顯示它們在內(nèi)存中的地址。

  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,你將會看到每次運行 ldd,得到的內(nèi)存地址都不相同。

  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)

嘗試繞過 ASLR

盡管這項技術(shù)有很多優(yōu)點,但繞過 ASLR 的攻擊并不罕見,主要有以下幾類:

  • 利用地址泄露
  • 訪問與特定地址關(guān)聯(lián)的數(shù)據(jù)
  • 針對 ASLR 實現(xiàn)的缺陷來猜測地址,常見于系統(tǒng)熵過低或 ASLR 實現(xiàn)不完善。
  • 利用側(cè)信道攻擊

總結(jié)

ASLR 有很大的價值,尤其是在 64 位系統(tǒng)上運行并被正確實現(xiàn)時。雖然不能避免被繞過,但這項技術(shù)的確使得利用系統(tǒng)漏洞變得更加困難了。這份參考資料可以提供 在 64 位 Linux 系統(tǒng)上的完全 ASLR 的有效性 的更多有關(guān)細節(jié),這篇論文介紹了一種利用分支預(yù)測 繞過 ASLR 的技術(shù)。

 

責(zé)任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2019-01-11 09:00:00

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

2020-08-10 08:37:32

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

2015-09-02 09:01:03

2011-11-15 16:00:42

2010-09-29 15:10:58

2017-01-09 17:03:34

2019-02-27 13:58:29

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

2009-09-24 18:29:12

2018-01-26 14:52:43

2012-07-18 12:44:02

2010-12-27 10:21:21

2015-03-06 17:09:10

2012-09-27 09:25:50

點贊
收藏

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

主站蜘蛛池模板: 久久91| 欧美在线视频网 | 99久久99热这里只有精品 | 91免费在线看 | 色爱区综合 | 久久久久久久一区二区 | 亚洲三级视频 | 日韩在线视频一区 | 欧美日韩一 | 国产一级黄色网 | 亚洲啪啪 | 男女午夜免费视频 | 在线免费国产视频 | 久久久一区二区三区 | 国产成人免费视频网站视频社区 | 国产精品视频网 | 97精品视频在线 | 自拍视频一区二区三区 | 美女福利网站 | 午夜激情小视频 | 日本a视频| 亚洲91精品 | 九九成人| 一区二区三区四区视频 | 精品毛片视频 | 国产最好的av国产大片 | 伊人网综合在线观看 | 一级a性色生活片久久毛片波多野 | 日本天天操 | 亚洲网址在线观看 | 国产在线视频三区 | 毛片久久久| 亚洲欧美中文日韩在线v日本 | 四虎影院美女 | 婷婷综合久久 | 欧美一区二区三区小说 | 日本中文字幕在线视频 | 永久免费av | 亚洲精品在线播放 | 国产成人小视频 | 亚洲黄色av网站 |