最近、(少なくともFedoraとRed Hat Enterprise Linuxでは)Position Independent Executables(PIE)としてコンパイルされた実行可能プログラムが、より強力なアドレス空間配置のランダム化(ASLR)保護を受けることを知りました。
したがって、Linuxで特定の実行可能ファイルが位置に依存しない実行可能ファイルとしてコンパイルされたかどうかをテストするにはどうすればよいですか?
承認された回答:
perl
を使用できます hardening-check
に含まれるスクリプト パッケージ、FedoraおよびDebianで利用可能(hardening-includes
として) )。チェックされるコンパイルフラグの詳細については、このDebianwikiページをお読みください。これはDebian固有ですが、理論はRedHatにも当てはまります。
例:
$ hardening-check $(which sshd)
/usr/sbin/sshd:
Position Independent Executable: yes
Stack protected: yes
Fortify Source functions: yes (some protected functions found)
Read-only relocations: yes
Immediate binding: yes