- blogs:
- cles::blog
2009/07/31

ソフトウェアの欠陥はほんの少しのミスから起きる


IEの脆弱性(というか、ATLの脆弱性)が一文字のミスで引き起こされているという話。
プログラミングを知らない人には、驚愕の事実なのかもしれませんが、プログラムの欠陥なんて元をたどればほとんどがこういうものです。この記事は欠陥の大きさと、その欠陥が結果としてどのような影響を及ぼすかと言う事には何ら関係性がないということを良く表していると思います。幸いにもこういう致命傷には至らなかったものの、小さなミス自体は自分もよく犯しているので、このミスをしたエンジニアのいたたまれない気持ちはわかるような気がします。
「IE」に対する最新攻撃の原因、たった1つのタイプミス--MSが認める:ニュース - CNET Japan
Howard氏が読者に提示したコードは、以下の通りだ。
__int64 cbSize; hr = pStream->Read((void*) &cbSize, sizeof(cbSize), NULL); BYTE *pbArray; HRESULT hr = SafeArrayAccessData(psa, reinterpret_cast(&pbArray) ); hr = pStream->Read((void*)&pbArray, (ULONG)cbSize, NULL);
そして、Howard氏は読者に次のように出題した。「もう1つ手がかりをだそう。タイプミスは1文字だ。降参だろうか。では、最後の1行を見てもらいたい。最初の引数が間違っている。正しくは、『hr = pStream->Read((void*)pbArray, (ULONG)cbSize, NULL);』だ」(Howard氏)
このような欠陥を自動的に防ぐ、もしくは検出する枠組みを作るのは現在のソフトウェアエンジニアリングの技術では限界があるはずなので、そのような制約を踏まえつつ、現実的にどのように改善してくれるのかというMSの今後の取り組みにはとても興味があります。
† 参考
- ATL, MS09-035 and the SDL - The Security Development Lifecycle - Site Home - MSDN Blogs
- Microsoft Security Advisory (973882): Vulnerabilities in Microsoft Active Template Library (ATL) Could Allow Remote Code Execution
トラックバックについて
Trackback URL:
お気軽にどうぞ。トラックバック前にポリシーをお読みください。[policy]
このエントリへのTrackbackにはこのURLが必要です→https://blog.cles.jp/item/3142
Trackbacks
このエントリにトラックバックはありません
Comments
愛のあるツッコミをお気軽にどうぞ。[policy]
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
古いエントリについてはコメント制御しているため、即時に反映されないことがあります。
コメントはありません
Comments Form
コメントは承認後の表示となります。
OpenIDでログインすると、即時に公開されます。
OpenID を使ってログインすることができます。
サイト内検索
検索ワードランキング
へぇが多いエントリ
閲覧数が多いエントリ
1 . アーロンチェアのポスチャーフィットを修理(112095)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110736)
3 . 年次の人間ドックへ(110340)
4 . 2023 年分の確定申告完了!(1つめ)(109893)
5 . 三菱鉛筆がラミーを買収(109792)
2 . 福岡銀がデマの投稿者への刑事告訴を検討中(110736)
3 . 年次の人間ドックへ(110340)
4 . 2023 年分の確定申告完了!(1つめ)(109893)
5 . 三菱鉛筆がラミーを買収(109792)
cles::blogについて
Referrers