web-dev-qa-db-ja.com

Morrisワームと修正

私は情報セキュリティに不慣れで、Morrisワームについて読んでいて、 thisthisthis のようないくつかの素晴らしいレポートや記事を見つけました。これに関する他の多くの記事や技術レポートがあります。最初のものは、ワームによって悪用されたBSDUNIXの問題について話します。ただし、getsのバグが修正されているかどうかieかどうか get、scanf、fscanfなど。入力バッファの境界をチェックするかどうか。同様に、悪用された他のバグについてはどうでしょうか。

また、誰かが今日それに似た攻撃を開始できた場合のコストについての調査や見積もりはありますか?

1
PHcoDer

しかし、私はgetsのバグが修正されたかどうかについて何も見つかりませんでしたかどうか、つまり、gets、scanf、fscanfなどが入力バッファの境界をチェックするかどうか。

Cがどのように機能するかをある程度理解したり、ドキュメントを調べたりすると、これらのバグが修正されておらず、同じ関数インターフェイスを維持しながら修正できないことを見逃すことはほとんどありません。

これらの関数がバッファへのポインタのみを取得することを考えると(char*)バッファのサイズではなく、Cのバッファに暗黙のサイズが関連付けられていない場合、これらの関数が(不明な)境界をチェックすることは不可能です。これは、これらの設計上安全でない関数がAPIを維持するように修正することが不可能であることを意味します。

これは、たとえば man Gets :でさえ明確に説明されています。

Get()は絶対に使用しないでください。事前にデータを知らずにgets()が読み取る文字数を知ることは不可能であり、gets()はバッファの終わりを超えて文字を格納し続けるため、非常に危険です。使用する。コンピュータのセキュリティを破るために使用されてきました。代わりにfgets()を使用してください。

また、誰かが今日と同様の攻撃を開始できた場合の費用についての調査や見積もりはありますか?

真面目な研究を知らず、未知数が多すぎるので想像もできませんでした。ワームはどこまで広がるのか、各システムに実際にどのような被害を与えるのか…しかし、そのようなワームが成功した場合より多くのシステムが相互に接続され、これらのシステムの重要度もはるかに高いため、被害は以前よりもはるかに高くなります。 WannaCry のような最近の攻撃を確認することをお勧めします。

2
Steffen Ullrich