河野真治 @ 琉球大学情報工学です。

In article <3EF466F7.271D9719@anet.ne.jp>, 名称不定<dev_null@anet.ne.jp> writes
> 現在、 Linux のセキュリティ強化のためにカーネルにどのような
> 工夫をすべきか研究しています。

名称不定<dev_null@anet.ne.jp>  ていうのが、自分自身のセキュリティ
に自信が無いってのは良くわかるよね。

> よく、バッファオーバーフローによって root 権限でシェルを起動される
> 恐れがあるという話を聞くのですが、シェルコードを見ると
> 私が知る限りでは /bin/sh を exec する数百バイト程度のものしか
> ありません。何故、 /bin/sh を実行させるだけしかしないのでしょうか?

それで十分だから。良くやられるのは、exec /usr/X11R6/bin/xterm
でしょう。あとは、自由自在ってわけですね。

> それとも、広範なメモリ領域を上書きしてしまうとセグメント違反等が
> 発生してしまうため大きなプログラムを送り込むことができないから
> なのでしょうか?

やろうと思えばできますが、root 権限のxterm 以上のことが
期待できるわけでもないですし。

> #クラッカーの心理として、標的のサーバで /bin/sh を開始できない
> #場合は、そういう全自動シェルコードを書きたいと思うかを知りたいです。

さぁ.. なんかの root kit みたいなものがなければ、ほとんどの
「ハッカー」は何にもしないんじゃないですか?

ちなみに、そういう全自動シェルコードってのがCで書いてどれく
らいのコードになるかっていうと、泣きたくなる程、短いんだな。
10行とはいわないが、100行あれば楽勝です。#include も数えると
か言われるときついけど。それならそれで、数千行ぐらい楽勝で
include できるわけだけどさ。

かんたんなことを、さも難しそう、大変そうに大騒ぎするのが
セキュリティってことなのは知ってますがね。自分の技量の
低さを反省した方が得るものは大きいかもね。

---
Shinji KONO @ Information Engineering, University of the Ryukyus, 
              PRESTO, Japan Science and Technology Corporation
河野真治 @ 琉球大学工学部情報工学科, 
           科学技術振興事業団さきがけ研究21(機能と構成)