ELF バイナリ形式
ELF バイナリ形式 とは何ですか?
ELF バイナリ形式Linux・BSD など System V Unix 系で標準的に用いられる実行ファイル・オブジェクト・共有ライブラリのバイナリ形式 Executable and Linkable Format。
ELF(Executable and Linkable Format)は System V ABI が規定する二進ファイル形式で、Linux・FreeBSD・OpenBSD・Solaris や多くの組込システムで採用されています。ELF ファイルは ELF ヘッダー、実行時にロードされるセグメントを定義する program header table、リンカーやデバッガーが .text・.rodata・.data・.dynsym などのセクションを参照するための section header table から成ります。セキュリティツールは ELF を解析して ASLR(PIE)・NX・RELRO・スタックカナリアの有無を検証し、リバースエンジニアやマルウェア解析者はセクションや dynamic タグからパッカー・LD_PRELOAD 経由のハイジャック・GOT 上書き・ROP ガジェットを特定します。
● 例
- 01
Linux バイナリに対し readelf -a と checksec を実行し、PIE・NX・Full RELRO が有効であることを確認する。
- 02
ELF プロセスの .got.plt を改ざんし、ライブラリ呼び出しを悪意のあるペイロードへ転送する攻撃。
● よくある質問
ELF バイナリ形式 とは何ですか?
Linux・BSD など System V Unix 系で標準的に用いられる実行ファイル・オブジェクト・共有ライブラリのバイナリ形式 Executable and Linkable Format。 サイバーセキュリティの アプリケーションセキュリティ カテゴリに属します。
ELF バイナリ形式 とはどういう意味ですか?
Linux・BSD など System V Unix 系で標準的に用いられる実行ファイル・オブジェクト・共有ライブラリのバイナリ形式 Executable and Linkable Format。
ELF バイナリ形式 はどのように機能しますか?
ELF(Executable and Linkable Format)は System V ABI が規定する二進ファイル形式で、Linux・FreeBSD・OpenBSD・Solaris や多くの組込システムで採用されています。ELF ファイルは ELF ヘッダー、実行時にロードされるセグメントを定義する program header table、リンカーやデバッガーが .text・.rodata・.data・.dynsym などのセクションを参照するための section header table から成ります。セキュリティツールは ELF を解析して ASLR(PIE)・NX・RELRO・スタックカナリアの有無を検証し、リバースエンジニアやマルウェア解析者はセクションや dynamic タグからパッカー・LD_PRELOAD 経由のハイジャック・GOT 上書き・ROP ガジェットを特定します。
ELF バイナリ形式 からどのように防御しますか?
ELF バイナリ形式 に対する防御は通常、上記の定義で述べたとおり、技術的統制と運用上の実践を組み合わせます。
ELF バイナリ形式 の別名は何ですか?
一般的な別名: Executable and Linkable Format, ELF。
● 関連用語
- appsec№ 639
Mach-O
Mach-O は macOS・iOS・watchOS・tvOS が使用する実行ファイル、オブジェクト、共有ライブラリのネイティブ形式で、Apple のツールチェインが生成する。
- appsec№ 809
PE 実行ファイル形式
Portable Executable は Windows で .exe・.dll・.sys・.ocx などに使われるバイナリ形式で、旧来の COFF オブジェクト形式から派生している。
- vulnerabilities№ 131
バッファオーバーフロー
メモリ安全性の欠陥で、確保済みバッファの末尾を超えて書き込みが行われ、隣接メモリが破壊されてしばしばコード実行を可能にする。
- forensics-ir№ 650
マルウェア解析
悪性検体を構造的に調査し、機能・出所・侵害指標・影響を把握するフォレンジック作業。
- forensics-ir№ 926
リバースエンジニアリング
コンパイル済みのソフトウェア、ファームウェア、ハードウェアを逆アセンブル・解析し、その設計、挙動、内部動作を復元する作業。