パスワードを忘れた? アカウント作成
14569 story

LinuxとWindowsのシステムコールを可視化すると… 33

ストーリー by mhatta
そもそもIIS==Apache単体じゃないしな 部門より

joperkings 曰く、

popxpopに 【図解】 LinuxサーバーとWindowsサーバーの違いというエントリがある。 これだけだと何のことか分からないのだが、 元記事のZDNet.comでのRichard Stiennon氏によるブログエントリをさくっと 見ると、一個の静的なhtmlを読み込んだ時のLinux+ApacheとIISでのシステムコールの呼び出しを視覚化していることが分かる。 で、これで何が言いたいのかというと、元記事のタイトル「Why Windows is less secure than Linux」からもバレバレだが、ようはWindowsのほうが 複雑なシステムコールのおかげでbuffer overflow attackに晒されやすい云々ということを言いたいようだ。

ICのblog18 til i dieあたりを 読めば、この導かれる結論のようなものが意味がないものと分かるのだが、18 til i dieで書かれているように FUDにはもってこいのやりかたではあるだろう。ちなみにRichard Stiennon氏はセキュリティベンダーのFortinet社のChief Marketing Officerで、 その前はずっとガートナー等の調査会社でセキュリティ畑を歩んできた方のようだ。余計なことを言わなければ、 ちょっとこの視覚化はおもしろいのだけどな。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
  • by Anonymous Coward on 2007年02月07日 9時20分 (#1105433)
    Graphvizを使うとアレと似たような図ができるので、見た目的にGraphviz [graphviz.org]を使っているっぽいです。

    GraphvizでググればGraphvizによるファンクション・コールの視覚化 [ibm.com]とかコード構造を視覚化せよ!!Graphviz & Doxygen [infoseek.co.jp]などといったページがひっかかるので、ぜひこういうのを参考にしてお手元のコード構造などを視覚化してみてはいかがでしょうか。

    余談: Ajax/Graphviz [ashitani.jp]なんていうのもあります。
  • MTA 図示化 (スコア:5, おもしろおかしい)

    by Anonymous Coward on 2007年02月07日 11時16分 (#1105516)
    クライアント -> sendmail -> 送信先サーバ
    クライアント -> tcpserver -> qmail-smtpd -> qmail-queue -> qmail-send -> qmail-rspawn -> qmail-remote -> 送信先サーバ
    クライアント -> smtpd -> cleanup -> qmgr -> smtp -> 送信先サーバ

    qmail や postfix に比べて sendmail の方がシンプルで安全です。間違いない。
  • by SaySet (18192) on 2007年02月07日 11時01分 (#1105503) 日記
    セキュアかどうかよりも、レスポンスとかメンテナンス性の方が気になりますけどね。

    # あの絵だけだと、結局どれも議論できないという点では一緒か;-p
  • by funya (14942) on 2007年02月07日 12時40分 (#1105589)

    この差はIISとApacheの差であって、Windows/Linuxの差ではないし。

    いずれにせよ、文字ぐらい見えないとつまらないです。
    • by Anonymous Coward on 2007年02月07日 15時56分 (#1105707)
      > いずれにせよ、文字ぐらい見えないとつまらないです。

      これがもし「シンプルだからマシンパワー要らない」っつー結論だったら、
      文字も読めないのに騙されていた自信が有るので、一人反省会。

      # 流石にセキュアは飛躍だと分かる。
      親コメント
  • だから定量的な評価にも、どこかに限界が。

    WindowsもLinuxも同じことを実現してる技術だけど。それにしても、WindowsのGUIとカーネルの抱き合わせ販売は、最も自由競争を妨げている要因な気がするが。

    --

    ---
    TaddyHatty - always @( posedge ↑ or negedge ↓ )
  • strcpy (スコア:1, すばらしい洞察)

    by Anonymous Coward on 2007年02月07日 9時13分 (#1105431)
    入力処理でバッファオーバーランあればどちらにしても
    一発アウトなわけだが
  • by Anonymous Coward on 2007年02月07日 20時32分 (#1105858)
    システムコールが少ないほうが安全と考えられる理由は大きく分けて2つあると思います。
    ・カーネル空間での処理が少ない(のではないかと思われる)ためクラッシュ時のダメー
     ジが最小限で済む可能性が高い(のではないかと思われる)点
    ・ソースコードがシンプルである(のではないかと思われる)ため問題が見つかっても素
     早く確実に対応しやすい(のではないかと思われる)点
    前者はプロセスがユーザ空間で要した時間とプロセスからの要求でカーネルが要した時間、
    後者はソースコードがないと安全かどうかを考えるには情報不足ですが...

    # getsは禁断の呪文
  • by Anonymous Coward on 2007年02月07日 22時21分 (#1105901)
    システムコールの数って、「システム」の定義が曖昧なことをのぞけば、いわゆる関数コールの数ですよね。
    そうすると、一つの関数(API、プロシージャ)がある程度複雑な処理を行っていれば、関数コール数は必然的に減るわけです。

    主観ですが、素人が書いたコードほど、関数コールの数は少なくて、プロの人が書いたコードほどcallの数は多いと思います。素人なんて、mainの中ですべてをやってしまうようなコードを書く人は多いですからね。一方で、ある程度の経験を積んだ人のコードならば、モジュール分け、関数分けは常識な訳で。

    そうすると、関数コール数が少ないから良いというのは少なくとも短絡的な話である気がします。

    一方で、賢いコンパイラなら、最近は、インライン化などもやっているはずで、それによって関数コール数が減っているかもしれませんし、なんでしょうね、結局、こんなことしても何も分からないと言うことなんでしょうか。

    # 別の話としては、いわゆるDLL地獄といわれるようなWindowsにおいて、関数コール数が死ぬほど多いだろうということは普通に予想がつきますね。
    • by CowardDuck (25674) on 2007年02月08日 6時54分 (#1106097)
      > システムコールの数って、「システム」の定義が曖昧なことをのぞけば、

      曖昧なんじゃなくてあなたがしらないだけ。

      > いわゆる関数コールの数ですよね。

      ち が う。

      一例として、普通の関数コールでは CPU の特権レベルはかわらない。
      システムコールではかわる。

      # この発言から、即座にこのコメントの投稿者はスレの話題に
      # ついていけていないことがわかる。

      > 主観ですが、素人が書いたコードほど、関数コールの数は少なくて、
      > プロの人が書いたコードほどcallの数は多いと思います。
      > 素人なんて、mainの中ですべてをやってしまうようなコードを
      > 書く人は多いですからね。一方で、ある程度の経験を積んだ人の
      > コードならば、モジュール分け、関数分けは常識な訳で。

      モジュール分け、関数分けのことなんて最初から全く問題に
      されていない。
      親コメント
    • by Anonymous Coward
      え? UNIXならread(2)とかwrite(2)とかbrk(2)とかのことじゃないの?
      Windowsであれば、カーネルコール(kernel32.dllによって隠蔽されている部分)のことなんだろうと思ってた。
  • by Anonymous Coward on 2007年02月07日 22時49分 (#1105918)
    そもそもシステムコールってユーザランドからカーネルを呼ぶ事
    を言うと思うんだけど、この図は見た感じカーネル内部での
    呼び出しも入ってるよね。
    その場合、まがりなりにも元々はマイクロカーネル風だった NT の方がまるっきり
    モノリシックな Linux より関数呼び出しの回数は多くて当然と思うけど。
typodupeerror

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

読み込み中...