- 締切済み
WindowsなどのOSの脆弱性がなくならないのはハードウェアのせい?
Windowsなどでは、バッファーオーバーランによる脆弱性が頻繁に発見され、よくアップデートが発表されています。 これは、パソコンのハードウェアが旧式なせいでしょうか。 変数やデータ領域と、プログラム領域を完全に隔離するハードウェア構造なら、このような問題は発生しないと思うのですが・・・
- みんなの回答 (7)
- 専門家の回答
みんなの回答
>せっかくURLを提示していただき、読んでみましたが、誰でも知っている程度の情報しか載っていませんでした。 >私は、ソフトウェア開発にも携わっていたことがありますので、 ソフトウェア開発をしたことがあるのに、対策の困難さがわからないのですね。。。 まあ、ソフトウェア開発者ではなく、ハードウェア開発者に責任を求めている位なので、責任転嫁が好きなお方なのでしょう。
>私は、ソフトウェア開発にも携わっていたことがありますので おや、プロですか! それなら、バッファーオーバーランを絶対に出さない事は簡単だと判るでしょ。 但しメモリーの利用効率は著しく悪くなるけどネ、 プログラムとバッファーの領域が絶対にオーバーラップしない様に極端に違ったアドレスを利用する様なOSやアプリを開発すればよいのであって、何もハードの開発を待つ必要は無い。
お礼
回答有難うございます。 全てのソフトがそのように対策されていればいいのですが、 現実はそうではありません。 >プログラムとバッファーの領域が絶対にオーバーラップしない様に極端に違ったアドレスを利用する様なOSやアプリを開発すればよいのであって、何もハードの開発を待つ必要は無い。 そうすると、ここで取り沙汰されているWindowsの設計思想自体に原因があるのでしょうか。
- BWV971
- ベストアンサー率21% (94/439)
>これは、パソコンのハードウェアが旧式なせいでしょうか。 それもありかと・・・ どんなOSも過去の資産を背負っています。 過去を全てチャラにして新しいモノは作れません。 わたくしの手元にあるMOドライブはWindows以前のしろものですが特定のドライバがなくてもXPで動作します。 問題があっても文句を言えません。 IBMのメインフレームなんぞ50年近く前の資産をいまだに内包しています。
お礼
過去の資産ですね。たしかに仰るとおりです。 互換モードを残しつつ、新しいハードを開発できないものでしょうか。
- mtfoggy
- ベストアンサー率14% (37/255)
>少なくともバッファーオーバーランについては、 OSの脆弱性の原因はいくつもあるのですが、バッファーオーバーランに こだわる理由は何ですか? それとも、これしか知らないの?
補足
原因としては、大半を占めるからです。 私は、ソフトウェア開発にも携わっていたことがありますので、 プログラマーなら同様の疑問を感じた方がいらっしゃるのではないかと考えての質問です。
技術者はいろいろ考えてはいるのですけどね。 なかなか一筋縄に行かないですね。 とりあえず、wikiでバッファーオーバーランを読んでからまた質問してください。 http://ja.wikipedia.org/wiki
補足
>とりあえず、wikiでバッファーオーバーランを読んでからまた質問してください。 せっかくURLを提示していただき、読んでみましたが、誰でも知っている程度の情報しか載っていませんでした。
- dezimac
- ベストアンサー率56% (2365/4208)
ソフトの欠陥の方が多いでしょう。 LinuxやMacOSもほとんどWindowsと同じ構成のハードウエア上で動いていますが、Windows程の欠陥は見つかっていませんよ。 単に見つかっていないだけかもしれないけど…。 例えばPowerPCには特権モードと通常モードがあって、 旧Mac(OS9以前)では、全てを特権モードで動かしていた結果、不安定になりやすかったですが、OSXになってからはモードを適切に使い分けることで安定性が格段に向上しています。
補足
これらのソフトの欠陥が発生してしまうのは、現在普及している旧式の「最新型」パソコンのせいではないでしょうか? 少なくともバッファーオーバーランについては、次世代のハードウェアで解決できないでしょうか。
違うネ 変数やデータ領域と、プログラム領域を完全に隔離するプログラムにしないから.... データ領域というハードは存在しない、プログラマーがその様に呼んでるだけ。 例えばROMやワイヤードロジックの様な書き換え不可能なハードにプログラムを入れる事はできるが、これはスイッチを押すと蛍光灯が点く様なメーカが決めた事以外なにも出来ない物になり、パソコンでは無くなる。
補足
>変数やデータ領域と、プログラム領域を完全に隔離するプログラムにしないから.... それは、その通りなのですが、プログラマーがそれを配慮しないといけないと言うことに、そもそも問題があると思うのですが? バッファー領域に制限をつけるのをプログラマの責任でやらなければいけないのは、なんだか時代遅れの気がするのです。 >データ領域というハードは存在しない、プログラマーがその様に呼んでるだけ。 存在しないのが現実ですよね? 現在のハードでは無理ですよね? プログラムをROMに書き込めば良いと言っている訳ではありません。 隔離すれば良いのではないかということです。
お礼
>ソフトウェア開発をしたことがあるのに、対策の困難さがわからないのですね。。。 ソフトウェア側での対策の困難さのことですか? それだけ困難なら、余計ハード側での対策が求められるのではないかと思います。 職人気質の方には気の触る質問だったかもしれませんが、責任転嫁などという人情問題は、とりあえずここでは置いといてください。