Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Address Space Layout Randomization(ASLR)
Search
Satoru Takeuchi
PRO
January 08, 2022
Technology
1
280
Address Space Layout Randomization(ASLR)
以下動画のテキストです
https://youtu.be/iCCNEoCKdHE
Satoru Takeuchi
PRO
January 08, 2022
Tweet
Share
More Decks by Satoru Takeuchi
See All by Satoru Takeuchi
デバイスにアクセスするデバイスファイル
sat
PRO
1
20
ファイルシステムのデータを ブロックデバイスへの操作で変更
sat
PRO
1
16
デバイスドライバ
sat
PRO
0
21
マルチスレッドの実現方法 ~カーネルスレッドとユーザスレッド~
sat
PRO
2
56
共有メモリ
sat
PRO
3
50
マルチスレッドプログラム
sat
PRO
3
40
Linuxのブートプロセス initramfs編
sat
PRO
2
51
Linuxのブートプロセス
sat
PRO
6
160
シェルのジョブ
sat
PRO
1
32
Other Decks in Technology
See All in Technology
genspark_presentation.pdf
haruki_uiru
0
150
クラウド開発環境Cloud Workstationsの紹介
yunosukey
0
220
もう難しくない!誰でもカンタンDocker入門 〜30分であなたのPCにアプリを立ち上げる〜
devops_vtj
0
180
OpenLane-V2ベンチマークと代表的な手法
kzykmyzw
0
150
2025-04-24 "Manga AI Understanding & Localization" Furukawa Arata (CyberAgent, Inc)
ornew
2
330
企業が押さえるべきMCPの未来
takaakikakei
0
260
続・やっぱり余白が大切だった話
kakehashi
PRO
2
120
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
7
63k
Новые мапы в Go. Вова Марунин, Clatch, МТС
lamodatech
0
1.7k
AI駆動で進化する開発プロセス ~クラスメソッドでの実践と成功事例~ / aidd-in-classmethod
tomoki10
1
810
テストって楽しい!開発を加速させるテストの魅力 / Testing is Fun! The Fascinating of Testing to Accelerate Development
aiandrox
0
160
グループ ポリシー再確認 (2)
murachiakira
0
210
Featured
See All Featured
What's in a price? How to price your products and services
michaelherold
245
12k
Thoughts on Productivity
jonyablonski
69
4.6k
Reflections from 52 weeks, 52 projects
jeffersonlam
349
20k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
45
7.2k
Embracing the Ebb and Flow
colly
85
4.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.4k
Site-Speed That Sticks
csswizardry
6
530
Bash Introduction
62gerente
612
210k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
137
33k
Templates, Plugins, & Blocks: Oh My! Creating the theme that thinks of everything
marktimemedia
30
2.3k
Documentation Writing (for coders)
carmenintech
71
4.7k
Facilitating Awesome Meetings
lara
54
6.3k
Transcript
Address Space Location Randomization (ASLR) Jan. 8th, 2022 Satoru Takeuchi
twitter: satoru_takeuchi, EnSatoru 1
前回までのあらすじ • Executable and Linking Format(ELF)というフォーマット • 実行ファイルのコードやデータはメモリ上にマップされる • どこのオフセットのデータをどこにマップするるか実行ファイルに書いてる
2 test(実行ファイル) メモリ コード データ コード データ マップ
そうでないこともある • 例: Ubuntu20.04の/bin/sleepコマンド • 演習 ◦ sleepコマンドのreadelf -Sを見てみる ◦
“sleep infinity”実行中のメモリマップを /proc/<pid>/mapsで見てみる 3
そうでないこともある • 例: Ubuntu20.04の/bin/sleepコマンド • 演習 ◦ sleepコマンドのreadelf -Sを見てみる ◦
“sleep infinity”実行中のメモリマップを /proc/<pid>/mapsで見てみる • 違い ◦ 実行ファイルのセクションに書いてあるマップ先アドレスと実際の値が違う 4
演習 • “sleep infinity”をもう一度実行した後にメモリマップを確認 5
演習 • “sleep infinity”をもう一度実行した後にメモリマップを確認 • 結果 ◦ さっきとアドレスが違う! 6
理由 • sleepコマンドは実行するたびにセクションのマップ先アドレスがランダムに変わる ◦ これがAddress Space Location Randomization(ASLR) ◦ ASLRが機能するように実行ファイルが
Position Independent Executable(PIE)になっている • 目的 ◦ 特定アドレスのコードを実行するようなセキュリティ攻撃を避ける • どんなプログラムがPIE? ◦ Ubuntuだと昔はsshなどの一部重要プログラムだけだった ◦ 17.04以降はすべて(例外があるかも?よく知らない) 7