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
150
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
Linux環境のCPU上で10ミリ秒間に起こること
sat
PRO
3
76
HDDへのアクセス速度は位置によって変わる!??
sat
PRO
4
33
ボリュームマネージャLVM
sat
PRO
2
74
Best Practices of Production-Grade Rook/Ceph Cluster
sat
PRO
1
1.7k
OSSへの貢献をはじめたきっかけ、貢献で得たもの、やりたい人へのアドバイス(改)
sat
PRO
4
120
device mapperによるディスクI/O障害のエミュレーション 既存ターゲット編
sat
PRO
0
100
分散ストレージCephのデータ破壊検知修復機能は本当に動作するのか
sat
PRO
0
43
ディスクI/O障害のエミュレーション カーネルモジュール自作編
sat
PRO
0
40
分散ストレージはすごいぞ
sat
PRO
2
2.6k
Other Decks in Technology
See All in Technology
ビジネスロジックを「型」で表現するOOPのための関数型DDD / Functional And Type-Safe DDD for OOP
yuitosato
29
12k
Getting started with controlling LEGO using Swift
hcrane
0
140
私のRSpecの書き方 / How I write RSpec
tmtms
4
840
Terraform v1.7のTest mocking機能の紹介 / Introducing the Test mocking feature of Terraform v1.7
yayoi_dd
1
100
中学生でもわかる深層学習
e869120
12
3.8k
SREsのためのSRE定着ガイド
netmarkjp
10
1.7k
Building a RAG app to chat with your data (on Azure)
pamelafox
0
140
統計的学習理論読み Chapter 2
kmatsui
1
300
初心者が行く!サーバレスWebアプリ開発の道
nagaharutogawa
0
450
家族アルバム みてねで直面してきた技術的負債 / MIXI KAG 2024
isaoshimizu
17
7.7k
長文から長文を生成するLLMツールをオープンソースで作ってみた。
tomohisa
2
150
データマネジメントを支える武器としてのメタデータ管理
10xinc
2
960
Featured
See All Featured
Statistics for Hackers
jakevdp
789
220k
Become a Pro
speakerdeck
PRO
8
4.4k
Build your cross-platform service in a week with App Engine
jlugia
223
17k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
178
11k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
11
1.4k
We Have a Design System, Now What?
morganepeng
42
6.7k
Fashionably flexible responsive web design (full day workshop)
malarkey
397
65k
Atom: Resistance is Futile
akmur
258
25k
Thoughts on Productivity
jonyablonski
57
3.8k
Robots, Beer and Maslow
schacon
PRO
154
7.9k
Mobile First: as difficult as doing things right
swwweet
215
8.5k
Gamification - CAS2011
davidbonilla
76
4.5k
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