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

ASLR如何保護Linux系統遠離緩沖區溢出攻擊?

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

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

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

ASLR的效果取決于攻擊者仍然未知的全部地址空間布局。此外,只有編譯成位置獨立的可執行程序(PIE)的可執行文件才能從ASLR技術得到最大程度的保護,因為代碼的所有部分都將在隨機位置裝入。無論絕對地址如何,PIE機器碼都會正確執行。

[[255322]]

ASLR的局限性

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

  • 不解決漏洞,而是加大利用漏洞的難度
  • 不跟蹤或報告漏洞
  • 不為不支持ASLR而開發的二進制代碼提供任何保護
  • 無法避免規避機制

ASLR的工作原理

ASLR加大了系統的控制流完整性,為此使內存布局中使用的偏移隨機化,從而讓攻擊者更難執行成功的緩沖區溢出攻擊。

ASLR在64位系統上的效果要好得多,因為這類系統提供了大得多的熵(隨機化潛力)。

ASLR是否可以用在你的Linux系統上?

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

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

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

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

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

  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) 

如果該值設回成2以啟用ASLR,你會發現每當你運行該命令,地址都會變化。

  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

盡管ASLR有諸多優點,但試圖繞過ASLR并不罕見,似乎屬于這幾類:

  • 使用地址泄露
  • 訪問與特定地址有關的數據
  • 利用實現方面的薄弱環節,熵很低或ASLR實現存在缺陷時,讓攻擊者得以猜出地址。
  • 使用硬件操作的側通道

結束語

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

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

【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】

責任編輯:趙寧寧 來源: 51CTO
相關推薦

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

緩沖區溢出堆棧

2009-05-13 09:21:48

2014-07-30 11:21:46

2009-09-24 18:16:40

2011-11-15 16:00:42

2010-10-09 14:45:48

2017-01-09 17:03:34

2019-02-27 13:58:29

漏洞緩沖區溢出系統安全

2010-09-29 15:10:58

2018-01-26 14:52:43

2012-07-18 12:44:02

2020-08-10 08:37:32

漏洞安全數據

2015-03-06 17:09:10

2012-09-27 09:25:50

2015-09-02 09:01:03

2010-12-27 10:21:21

2012-07-26 09:39:01

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 欧美八区 | 国产精品欧美一区二区 | 亚洲日韩视频 | 成人视屏在线观看 | 亚洲精品国产电影 | 91精品国产乱码久久久久久久 | 国产真实精品久久二三区 | 日韩欧美在线视频 | 国产在线麻豆精品入口 | 欧洲av一区 | 亚洲h视频| 亚洲精品中文字幕在线观看 | 欧美精品福利视频 | 欧美日本韩国一区二区三区 | 成人av免费网站 | 欧美精品在线免费观看 | 日本粉嫩一区二区三区视频 | 欧美一级二级三级视频 | 成人精品毛片国产亚洲av十九禁 | 欧美视频一级 | 久久久久精| www.嫩草| 欧美日韩视频 | 久久久久成人精品亚洲国产 | 久久久免费在线观看 | 国产精彩视频在线观看 | 国产一区日韩在线 | 久久久久久电影 | 久久国产婷婷国产香蕉 | 午夜av电影院 | 国产最新精品视频 | 国产精品九九 | 亚洲一区二区 | 精品国产18久久久久久二百 | 欧美v日韩v | 国产精品污www一区二区三区 | 国产成人99| 一级毛片免费视频观看 | 射久久| 国产精品欧美一区二区三区不卡 | 欧美日韩中文字幕在线 |