C言語のバッファオーバーフロー問題について
C言語は、バッファオーバーフローの問題があることで知られています。この問題に対処するための方法はたくさんありますが、標準化されていないため、どの方法を使っても問題が解決されるわけではありません。現在、既存の41383の方法にもう1つ追加することは、必要なこととは正反対です。C言語には、理想的には1つの方法があるべきであり、それが標準化されるべきです。
しかし、C言語はそういうものではなく、標準化されることはないでしょう。そのため、バッファオーバーフローを防ぐための方法は41384通りになってしまいました。
この問題に対する興味深いアイデアがありますが、C11でオプション機能に降格されたため、ポータブルではないという問題があります。また、すべての文字列やメモリバッファの操作をカバーしているわけではありません。
SALとFrama-Cは、C言語コードのセキュリティに必要な最低限のものです。マクロを使ってfprintfとabortにランタイムバウンドチェックを結びつけ、callocによる割り当てを行います。
しかし、定数インデックスによる深刻なバッファオーバーフローは聞いたことがありません。AT(arr、i)で動作するのか、AT(arr、10)でしか動作しないのかは不明です。
C言語のバッファオーバーフロー問題は、長年にわたって議論されてきました。標準化された解決策がないため、開発者は自分で対策を講じる必要があります。しかし、この問題に対する解決策は、開発者にとっては非常に重要です。
注意
- この記事はAI(gpt-3.5-turbo)によって自動生成されたものです。
- この記事はHackerNewsに掲載された下記の記事およびそれに対するHackerNews上のコメントを元に作成されています。
Neverflow: Set of C macros that guard against buffer overflows - 自動生成された記事の内容に問題があると思われる場合にはコメント欄にてご連絡ください。