|
>>2964 kiki 前にも書きましたが目的は何ですか? kiki さんの質問は いつも情報量が足りないと思います。 目的を書かないから前提条件がわからない。前提条件が わからないから、例えば 「利用者にばれてもいいのか」 「シェルのソースをいじるというのはアリなのか」 などもわからない (当然その答えによって解は異なります)。 > また,簡単なデーモンのソースがあるページ http://www.adl.nii.ac.jp/~moro/unix-programmer/faq-j_2.html#SEC16 など。 >>2961 1202 > dfコマンドなどで取得すると、Linux、Solarisで取得できる情報が > 違ってくるので、、、 ちなみに僕ならば面倒なので GNU df を Solaris に 入れます (仕事であれば特に)。 |
|
2965>>68user様 毎回すみません. 目的は前回の質問でふれたsuトロイの痕跡の検出なんです. suトロイも本物のsuも.bash_historyのなかにコマンドが残りますが, /var/log/messageでは,本物のsuの痕跡しか残らない事を利用して, suトロイをリアルタイムに近い形で検出できないか?と考えたのです. そこで,シェルからsuコマンドが打ち込まれたかどうかを 判定するプログラムに,シェルで打ち込まれたコマンドを渡して 判定させ,suとコマンドが 実行されているようならば, /var/log/messageをみて,suの痕跡があるかどうかを調べれば 検出できるだろうと考えたのです. とりあえずsuコマンドが打ち込まれたかどうかを判定する 部分をまず作ろうと思いましたが,この時にプロセス間で データのやりとりが必要になったり,デーモンも使うのかな と思い,質問させていただきました. 「利用者にばれてもいいのか」 >はい,ばらせる事ができるならば是非そうしたいです. 「シェルのソースをいじるというのはアリなのか」 >はい,ありです. 毎回わかりづらい書き込みをして申し訳ありません. ご教授をお願い致します. |
|
>>2966 kiki 今度は検出なわけですね? > /var/log/messageでは,本物のsuの痕跡しか残らない事を利用して, syslog(3) や logger(1) を使えば誰でも su と同様にログに記録する ことはできますので、これだけでは正確に判断できません。 では他に判断する方法はあるかというと、決定的なものはないです。 結局は「何をもって本物と判断するか」「何を持って悪意のあるプロ グラムと判断するか」に帰着するわけで。興味があればアンチウィルス ソフトがウィルスを検出する手段を調べてみるとよいでしょう。 で、それとは別に「どうやって su がタイプされたことを検出するか」という 話ですが、ウィルスやトロイの木馬にやられるときというのは、つまるところ 「プログラムを実行したとき」なわけで、exec(2) の実行直前に su を実行 しようとしているかどうか、というチェックをすればよいでしょう。 プロセス間通信やデーモンは「なぜそれを使う必要があるか」を説明でき ないなら、使う必要はないということです。 別の解としては、システムコールの発行を hook して安全性をチェック、 というのもありますが、UNIX でこういうのってできるのかなーと思って 調べてみたら、なんかできるようですね。 http://www.caj.co.jp/support/etrustac_faq.htm Q6: eTrust Access ControlのSoft Hook技術とは何ですか? カーネルを置き換えているのか、あるいは libc のシステムコール発行部分を 置き換えているのか…(できるのかな?) # Windows なら SetWindowsHookEx で簡単なんですけど。 |
|
>>2967 68user様 お返事ありがとうございます. >syslog(3)やlogger(1) を使えば誰でも su と同様にログに記録することはできます これはsuトロイを実行した時にも/var/log/messageに本物のsuの認証失敗のメッセージ を残せる,という事なんですよね.これは,suトロイ内でsyslog()関数などを使って, syslogdにメッセージを渡すという事なのでしょうか? P.S. システムコールで見分ける,ですね. 確かに,suトロイと本物のsuだとやっている事はちがうから 見分けられるかも知れませんね.アドバイスありがとうございます. |
|
>>2967 68user様 何回も申し訳ありません.kikiです. >exec(2)の実行直前にsuを実行しようとしているかどうか、というチェックをすればよいでしょう。 これは,システムコールのチェックを自動化させて行なえばよい, という事なのでしょうか? 基本的な事で申し訳ありません. |
|
いつもすいません、質問です。 以下のようなプログラムを Perl 5.8/FreeBSD 2.2.8 release で書きたいです。 カンタンにいうと、入れ子になったタグで囲まれた部分だけを 別ファイルに抜き出し、元ファイルからは削除する、です。 順序を保存して抜く方法と、 保存しないで抜く方法とあると思いますが、 どちらでもかまいません。 (前者の方がいいかなぁ、、) 入力ファイル: out1 <tag a> in1 <tag b> in2 <tag c> in3 </tag> in4 </tag> in5 </tag> out2 <tag d> in6 <tag e> in7 </tag> in8 </tag> out3 <tag f> in9 </tag> out4 出力ファイル例1:(順序を保存して抜く) ファイルA:(タグで囲まれた部分のみを抜いたもの) <tag a> in1 <tag b> in2 <tag c> in3 </tag> in4 </tag> in5 </tag> <tag d> in6 <tag e> in7 </tag> in8 </tag> <tag f> in9 </tag> ファイルB:(ファイルAで抜いた残り) out1 out2 out3 out4 出力ファイル例2:(順序を保存しないで抜く) ファイルA:(タグで囲まれた部分のみを抜いたもの) <tag c> in3 </tag> <tag b> in2 in4 </tag> <tag a> in1 in5 </tag> <tag e> in7 </tag> <tag d> in6 in8 </tag> <tag f> in9 </tag> ファイルB:(ファイルAで抜いた残り) out1 out2 out3 out4 よろしくお願いします。 |