萌えハッカーニュースリーダー

2025/05/07 15:18 The Path to Memory Safety Is Inevitable

出典: https://hardenedlinux.org/blog/2025-05-07-the-path-to-memory-safety-is-inevitable/
hakase
博士

やあ、ロボ子。今日もメモリ安全性について語るのじゃ。

roboko
ロボ子

はい、博士。メモリ安全性は重要課題ですからね。完全に習得するのは非常に困難とのことですが…。

hakase
博士

そう、ロボ子。メモリ安全性の問題は、コンピュータ科学と複雑性理論が組み合わさった学際的な分野だから奥が深いんじゃ。

roboko
ロボ子

既存のソフトウェアを「メモリ安全な言語」で書き換えるのは現実的ではない、というのも納得です。

hakase
博士

じゃろ?そこで、HardenedLinuxの出番じゃ。Debianをベースにして、高度なスキルを持つメンテナが管理しているからの。

roboko
ロボ子

バグ修正やセキュリティ脆弱性の処理も慎重に行われているようですね。バックポートアプローチを選択することで、元の機能と安定性を維持する、と。

hakase
博士

そうじゃ、そうじゃ。そして、サニタイザーとファザーを有効にして、定期的な回帰テストを実行すれば、QAプロセス中にほとんどの問題を検出できるんじゃ。

roboko
ロボ子

大規模なバグハンティングが効率化されるのは素晴らしいですね。Linuxカーネルを例にとると、異なるユーザーシナリオは異なるカーネルサブシステムに依存している、とのことですが、これはどういう意味でしょうか?

hakase
博士

ふむ、例えばストレージサーバーはファイルシステムに、ネットワークサーバーはネットワークプロトコルスタックに依存するということじゃ。用途によって重要な部分が違うからの。

roboko
ロボ子

なるほど。32コアCPUと64GBのRAMがあれば、ネットワークプロトコル実装の主要部分のコードカバレッジを約20時間で72%達成できる、というのも興味深いですね。

hakase
博士

じゃろ?脆弱性のライフサイクルも重要じゃ。バグの特定からエクスプロイトへの適応、武器化フレームワークへの統合まで、一連の流れがあるんじゃ。

roboko
ロボ子

セキュリティ研究者の視点では、脆弱性の悪用は事前悪用段階、悪用段階、事後悪用段階の3つに分けられるんですね。

hakase
博士

そうじゃ。そこでFil-Cの登場じゃ!Clang/LLVMコンパイラをカスタマイズして、メモリ安全なC/C++を実現するんじゃ。

roboko
ロボ子

Fil-Cは一般的な脆弱性を無害化するんですね。もしサニタイザーとファザーで全てのバグを発見できない場合は、どうすれば良いのでしょうか?

hakase
博士

コンパイラとCランタイムライブラリが提供する緩和技術でシステムを補完するんじゃ。ハードウェアレベルの実装(NX、CET、BTIなど)と、ソフトウェア実装があるぞ。

roboko
ロボ子

Synology DiskStation DS1823xs+に対するRCEリモートエクスプロイトの例も興味深いですね。FULL RELROとCFIを有効にすることで防御が大幅に改善される、と。

hakase
博士

そうじゃ。フリーおよびオープンソースソフトウェアの開発者は、少なくともデバッグおよびテストビルドでサニタイザーを有効にすべきじゃな。

roboko
ロボ子

ソフトウェアをメモリ安全な言語で書き換えるのは費用がかかる、というのも重要な指摘ですね。書き換えるならLisp/Schemeを検討する、というのは面白いですね。

hakase
博士

じゃろ?Lisp/Schemeは奥が深いからの。…ところでロボ子、メモリ安全性が高すぎて、逆に何もできなくなったらどうする?

roboko
ロボ子

えっ?それは…本末転倒ですね!

hakase
博士

そういうことじゃ!メモリ安全もほどほどに、じゃな!

⚠️この記事は生成AIによるコンテンツを含み、ハルシネーションの可能性があります。

Search