書き込みログのIP&リモホを見た目わからなくする方法を考えよう
サーバ乗っ取られて書き込みログを見られてもokにしよう。 IPアドレスとかリモホり部分っすね、 これが出来たら、乗っ取られたっていいジャン! になる。 誰か方法考えてちょ この論点で2進化は意味ないか。 要するに、平文の IP、リモホ文字列 に前置(又は後置)して、23桁の乱数十進数(0〜9)を置くか、 BASE64化して、13桁の乱数英数字(0〜9、a〜z、A〜Z、+/)を置くか。 BASE64にしても桁数大差ないなw >>102 >時刻(ミリ秒単位)は公開しない 実況板逝って来い。 スレの流れが狐さんが欲するものとだんだん離れていってる気がする 狐さんが欲しているのは「鯖にやさしい暗号化cgi」ではないかと。 暗号の強度が高くても鯖に負担を強いる方法じゃ却下だろうな そして「投稿があったら1レスごとにその場でIPとホスト部分を暗号化」。 「あとでまとめて」なんて考えられない あと、Cじゃ却下だろうな。Perlだ 「あとでまとめて暗号化〜」「Cで〜」なんて議論だったらするだけ無駄になるから しない方がいいよ >>110 そりゃ、>75のような技術的に可能な事を上げていくだけの人がいるからな あとは一般的に強固な暗号化を好んで使う人が多い 無線LANでさえWEPはぼろくそ言われてるが(省略されましたw) ソース見れば分かってしまうような単純な物で妥協しろや IP・リモホだけじゃなくUAも暗号化した方がいいかも (for p2.2ch.bet向け) >>112 peal 音節peal 発音記号/pi?l/音声を聞く音声を聞く 【名詞】【可算名詞】 1a 〔鳴り渡る鐘の〕響き 〔of〕. b 〔雷・大砲・笑い声・拍手などの〕とどろき 〔of〕. 2a (音楽的に調子を合わせた)ひと組の鐘. b 鐘の奏鳴楽,鐘楽. 合ってるような間違ってるような・・・www 確定事項 ・perl内だけで処理可能な物 ・ログ書き込みの時に暗号化する (ログ書き込み以後に暗号化はしない) 狐さんの書いて無いこと 暗号化後の容量 (IPアドレスなら最大15Byteだけど暗号化後何Byteまで膨れ上がらせていいのか?) 追加インストール(perlのあれ)していいか? 所詮は、それぞれの要素に対して、どこで妥協するかという話でしかない。 bbs.cgiじゃなくてlogbufferとかにやらせるんじゃないの? 芋ログはbbs.cgiが直接書いてるとかなら無理だけど 直接掻いています apacheのログとは別のものです いわゆる投稿ログです つまりbbs.cgiのログ書き処理を変更しようと言う事ですね。 bbsd は bbs.cgi からデータを受け取ってファイル出力しているし、 まあ Perl でも暗号化はできるだろうし、 と。 bbsd は root 権限がいるからなのか、趣味に合わないからなのかで、 あまり(全く?)使われていないようだけど。 鯖のアカウントを取られたらどうしようもないけれど、ディレクトリが見えちゃった(照)でも良ければ。。。 ./test/tane というファイルに『種』値を各鯖(各板)に書いて、、、 ./test/.htaccess に <Files tane> deny from all </Files> とすれば、ひとまずhttp経由では中身までは見えなくなると思うのです。 その『種』をキーにして単純に暗号化するだけでもひとまずの効果は出ないかな? ♯漏れたときにはまたその時に考えようって事で♪ >>118 上の人が書いてるみたいに、「別処理じゃダメ」「Cで書いたコマンドだと使えない」って本当なの? cron の設定とか狐さんできないの? 別処理かどうかはともかく1日1回のcronじゃ意味が無いって事なんじゃないの >>125 1)そもそも cron だから1日1回なんて決まりないし 2)鯖乗っ取られたらリアルで(乗っ取られてから気づいて鯖電源落とすまでw)の投稿IP取られちゃん だから、「最終cron から乗っ取り時点までのIP取られる」ということがさほど重要なこととは思えない。 3)むしろ、「負荷」考えたら、暗号化時間はずらした方が吉。リアルタイムにこだわって、鯖負荷低減の ために、暗号強度下げるのは本末転倒。全ログ解読されかねない。 >>123 想定してるのは今回のハッキングと同様の事 (bbs.cgiとかの流出) なんで、http経由を制限しても無意味 >>124 しつこいぞ そんなにやりたっかたら自鯖でやってろ >>126 スレタイを一億と2千万回読み直せ 翻訳されて分からなくなっていれば十分なんだよ 解読されにくくするとは書かれてない。 それに芋掘りとかbooの方から流出したらIP丸出しだからいくら暗号化強化しても無意味 やれやれ。結局、「cron じゃダメ」だの「Cだと採用されない」とか連呼してるのは能力の低い馬鹿1名だけか。 FOX★もこの馬鹿には同調してないし。 馬鹿を無視して、まとめるぞ: 【要求仕様】 > サーバ乗っ取られて書き込みログを見られてもokにしよう。 > IPアドレスとかリモホり部分っすね、 > > これが出来たら、乗っ取られたっていいジャン! になる。 > 誰か方法考えてちょ つまり、ログ盗まれても■解読できない■(我々が生きてる間に)ようにしる! 【現在出ている最有力案】 ・リアルタイムでこれを満たすのは不可能 ・したがって、鯖負荷の低い時間帯にまとめて処理 ・暗号化はいわゆる公開鍵暗号方式と同じ技術=暗号鍵と復号鍵が別 ・ただし、ブルートフォースかけられる可能性があるので公開鍵側も(積極的には)公開しない。 ・また、IP・リモホ部分には、十進整数23桁程度 >>104-105 の乱数を暗号前に前置しておく。 ”perl連呼馬鹿” は無視(透明あぼ〜ん)して、この案をベースに意見クレクレ > ・したがって、鯖負荷の低い時間帯にまとめて処理 ここだな。問題は。 cronが前提になってるぽいが、文字通り 「鯖負荷が低い時に自動ディスパッチ」 できないの? Windows なんかの「アイドルタイム・ウィルスチェック」みたいやつ。 UNIXではどうやるんだたけ? >>129 あなたにも同調されて無いですが? > つまり、ログ盗まれても■解読できない■(我々が生きてる間に)ようにしる! 括弧内はあなたの勝手な後付では? > ・リアルタイムでこれを満たすのは不可能 > ・したがって、鯖負荷の低い時間帯にまとめて処理 この時点で要求仕様から乖離している事が理解出来ない? > ”perl連呼馬鹿” は無視(透明あぼ〜ん)して、この案をベースに意見クレクレ あなたもその馬鹿と一緒ですよ。 ここでそういう争いをしない方がいいよ。 夜勤さんはそういう騒動があるスレを一切無視して前に進む人だって、この板の住人なら知ってるんじゃないの? とりあえず乗っ取られても大丈夫な暗号化芋の話で Perlのモジュールが足りないなら入れればいい 後の事はニュー速に入れてみてからでもいいのでは Cで書くとか定期実行とか方法変えるとか 専門板だけ実装という手もあるし ここの議論結果が結論となるわけでなし。 ここでできるのは、選択肢と論点と考え方を提示することくらい。 と言うかよく考えたらこのスレの大前提である「書き込みログを見られない様に」って本当に必要なの? 今まで通り基本非開示で裁判所の命令とか荒らし対策とかで開示する、って運営じゃダメなの? 「基本非開示だけど外的要因で2ちゃんねるの意図ではなく開示されてしまうことがある」って書いておけば良いんじゃね。 というか書かなくてもよいんじゃね?あくまでも外的要因だから。「IP非開示は保証の限りではない」位で? 簡単に実装出来てかつ負荷無く動作するんなら有った方が良いんだろうけど・・・ それともやはり匿名性は可能な限り確保したいのかな。それが2ちゃんねるの売りでもあるから >>133 (希望する機能がある)Perlのモジュールがあればいいのだが Base64の機能があるとは知らず自前で作ってしまった 公開鍵方式 にこだわってる低脳なバカが一匹いるな それにもう一匹に噛み付きまくってる 躾のなってない基地外か。 use Benchmark; use Crypt::CBC; use Crypt::OpenSSL::RSA; # CBC / Blowfish の準備 my $Blowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'Blowfish'}); # RSA の準備 my $Rsa = Crypt::OpenSSL::RSA->generate_key(1024); my $count = 100000; my $UserInfo = 'user0721.isp.2ch.net<>127.0.0.1<>marumaru<>Monazilla/1.00'; timethese($count, { 'Nama' => sub{$UserInfo}, # 何もしない 'CBC-Blowfish' => sub{$Blowfish->encrypt($UserInfo)}, 'OpenSSL-RSA' => sub{$Rsa->encrypt($UserInfo)} }); 結果 CBC-Blowfish: 20 wallclock secs (15.98 usr + 3.30 sys = 19.28 CPU) @ 5186.18/s(n=100000) Nama: 0 wallclock secs (-0.00 usr + 0.00 sys = -0.00 CPU) @ -28147497671065600000.00/s (n=100000) OpenSSL-RSA: 8 wallclock secs ( 7.94 usr + 0.00 sys = 7.94 CPU) @ 12599.22/s(n=100000) Blowfishの方が重いのは、 http://perldoc.jp/docs/modules/Crypt-CBC-2.08/CBC.pod > 暗号と復号の処理は同等の(Cでコンパイルされた)SSLeayプログラムよりも > 10分の1ほどの速度です。 > これをCで実装することによって改善することができるでしょう。 という部分の差ってことなのかな。 OpenSSL::Blowfish もあったので # CBC / OpenSSL / Blowfish の準備 my $OsslBlowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'OpenSSL::Blowfish'}); 'CBC-OSSL-Blowfish' => sub{$OsslBlowfish->encrypt($UserInfo)} を追加して試す。 結果 CBC-Blowfish: 19 wallclock secs (15.53 usr + 3.31 sys = 18.84 CPU) @ 5307.01/s(n=100000) CBC-OSSL-Blowfish: 18 wallclock secs (14.50 usr + 3.28 sys = 17.78 CPU) @ 5623.66/s (n=100000) Nama: 0 wallclock secs ( 0.00 usr + 0.00 sys = 0.00 CPU) @ 100000000.00/s (n=100000) OpenSSL-RSA: 8 wallclock secs ( 7.83 usr + 0.00 sys = 7.83 CPU) @ 12774.66/s(n=100000) 大して変わらなかった。 >>139 文字数が多くなっただけ重くなるとか? 長いリモホ CPE00248c15080f-CM0014e82750b2.cpe.net.cable.rogers.com 長いUA Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10 極端に重くなるようだったら暗号化鯖でも作ってソケット経由で丸投げした方がいいかもしれん 複合化鯖はqb7以外からの接続拒否 use Benchmark; use Crypt::CBC; use Crypt::OpenSSL::RSA; # CBC / Blowfish の準備 my $Blowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'Blowfish'}); # RSA の準備 my $Rsa = Crypt::OpenSSL::RSA->generate_key(1024); # CBC / OpenSSL / Blowfish の準備 my $OsslBlowfish = Crypt::CBC->new({'key' => 'angokey', 'cipher' => 'OpenSSL::Blowfish'}); my $count = 100000; my $UserInfo = 'user0721.isp.2ch.net<>127.0.0.1<>marumaru<>Monazilla/1.00'; timethese($count, { 'CBC-Blowfish' => sub{$Blowfish->encrypt($UserInfo)}, 'OpenSSL-RSA' => sub{$Rsa->encrypt($UserInfo)}, 'CBC-OSSL-Blowfish' => sub{$OsslBlowfish->encrypt($UserInfo)} }); $UserInfo = 'CPE00248c15080f-CM0014e82750b2.cpe.net.cable.rogers.com<>127.0.0.1<>marumaru<> Mozilla/5.0(iPad; U; CPU iPhone OS 3_2 like Mac OS X; en-us) AppleWebKit/531.21.10 (KHTML, like Gecko) Version/4.0.4 Mobile/7B314 Safari/531.21.10'; timethese($count, { 'CBC-Blowfish' => sub{$Blowfish->encrypt($UserInfo)}, 'OpenSSL-RSA' => sub{foreach($UserInfo =~ /.{1,86}/g){$Rsa->encrypt($_)}}, 'CBC-OSSL-Blowfish' => sub{$OsslBlowfish->encrypt($UserInfo)} }); 結果 短い方 CBC-Blowfish: 19 wallclock secs (15.73 usr + 3.00 sys = 18.73 CPU) @ 5337.89/s(n=100000) CBC-OSSL-Blowfish: 17 wallclock secs (14.39 usr + 3.24 sys = 17.63 CPU) @ 5673.76/s (n=100000) OpenSSL-RSA: 8 wallclock secs ( 7.83 usr + 0.00 sys = 7.83 CPU) @ 12774.66/s(n=100000) 長い方 CBC-Blowfish: 27 wallclock secs (23.77 usr + 3.20 sys = 26.97 CPU) @ 3707.96/s(n=100000) CBC-OSSL-Blowfish: 25 wallclock secs (22.19 usr + 3.16 sys = 25.34 CPU) @ 3945.71/s (n=100000) OpenSSL-RSA: 24 wallclock secs (23.95 usr + 0.00 sys = 23.95 CPU) @ 4174.67/s (n=100000) まあ大きくなれば遅くなるわね。 RSAでは、一回分の大きさを超えてしまったので、分割して暗号化。 差が縮まったのは、このせいで padding が増えて、効率が下がったせいかな。 サーバ侵入に備えての暗号化で、復号鍵(とか復号に必要なもろもろ)を サーバに保存するには、復号作業用サーバの安全性が問題になるわけだけど、 ここのところの各機能の開発状況を見ていると、qb7 が一般サーバより 安全になるとは思えないんだよねえ。 この先変わるのかな。 作業者に復号鍵を持たせるのは面倒じゃないか、 暗号化の重さに見合う利益はあるか、 侵入対策が侵入されたら解読される程度でいいのか。 何をしても費用対効果は悪いねえ。 やっぱりログファイル丸ごと負荷の少ない時間に暗号化するのが現実的なのかな OSの機能で暗号化するとおそらくハッキングに対しては無力だし、書き込みのたびにログを暗号化すると負荷がどれ位掛かるのか判らない >>147 書き込みログの形式にもよるけどな apacheのようなログであれば(時間毎などで)分割すればいいけど 2chブラウザが取得してるようなdatファイルに追記してるならファイル丸ごとなんてことは不可能 それに負荷が低い時にまとめてとあるけど 負荷が高いまま数十時間やられたらどうしようもないな 特に、実況板(ログとって無いとかほざくやつは実況板で犯罪予告してこいや) (A) 投稿時には、1294604913_20110123.log のようなスレ・日単位で生ログファイルを作成。 暗号化時には、ファイルごと暗号化し、生ログを削除。 (B) 投稿時には、従来通りスレ単位の生ログファイルを作成。 暗号化時には、投稿1件分ずつ暗号化して、暗号化ログファイルに追記、生ログを削除。 Aだと、投稿内容とか暗号化の必要がないものも暗号化することになるし、 復号もファイル全体になるので、効率が悪いかな。 Bなら、ログの内からIPアド等の非公開部分だけ暗号化すればいい。 復号も投稿1件ずつすることが可能。 ランダムデータを付加するとしても、データ量はAよりは少ないか。 みんなの意見をいろいろ考えてみた。 まずは一歩踏み出してみることにしよう。 一歩目は、書き込みログが外に漏れても普通の人はよくわからなくする。 IPアドレスとリモホ(●やbeの情報を含む)の部分だけやってみるだす。 漏れても解析にそれなりの時間がかかるような方法にしてみるです そのサーバが乗っ取られてもすぐには何もできないように他のサーバにアクセスしなきゃ いけないっていうのもハードルが一つ上がるのでやってみようと思っていまーす myanmar yangon sakhalin @dso が自分でPerlのモジュールを入れられないなぁ qb5 もかぁ・・・ こりゃちと面倒だなぁ use Crypt::CBC ; とかやりたいんだけど、Perlで CBCモジュールが入っていたらとかって 記述できるの? toki , hibari , yuzuru のPerlを再インストールしなきゃならないらしい。 そのときはサーバ止める予定。 ふむふむ、こうやればいいのか sub check_module { my $module = $_[0]; # モジュールが存在すれば読み込む eval "use $module;"; if ($@) { return 0; } else { return 1; } } これを実施したことによって影響でそうなのものは Boo Boo2BBQ こらこら この辺りかな 書き込みログを利用しているものが影響するので、 BBM,p2 は問題ないです。 (共に登録するだけ) この改造により修正したもの 1. わたしの芋掘り機 2. 削除人さん用芋掘り機 3. こらこら 4. boo (hatoに改造したのあります、配っていません) の四つです。 まずこれらを全サーバに配ってきます。 (4は除く) >>160 くばった ではいよいよbbs.cgiを全サーバにくばりまーす みごとに、ここdsoは500になっちゃった 元に戻した @dso 改造前と、改造後の報告は、混同しちゃだめ? 改造前のログは掘れる? もとにもどした @qb5 このサーバPerlモジュールが足りないのよネ それで >>154 っぱく作ったつもりなんだけど、うまくいかなかったと。 がっくしではPerlモジュールの処理をこんな風にしていたり。 sub EnableGzip { foreach (@INC) { if (open(LIB, '<' . $_ . '/Compress/Zlib.pm')) { my $is_zlib = grep(/sub memGunzip/, <LIB>); close(LIB); if ($is_zlib) { $CONFIG{'enable_gzip'} = 1; return(require('Compress/Zlib.pm')); } } } } libプラグマとかどうでしょ use lib "/path/to/library"; あとopenはopen(fh, mode, filename); てすと用のプログラムではうまく行ったのよ たぶん speedy_cgi のせいだと思うのだ。 pinkにモジュール入れてもらうの忘れてた、 ということでpinkもbbs.cgi元にもどしましたー 166はSpeedyでも動くコードだったり。汎用っぽくしてみた。 my $is_CryptCBC = &LoadModule('Crypt::CBC'); sub LoadModule { my $module = shift; $module =~ s/::/\//g; if (my ($path) = grep(-f "$_/$module", @INC)) { return(require($path)); } } って、向こうでSunOSさんがやってました。。。orz やってもらっちゃった。 そしてdsoでうまく動いた。 再度全サーバに配ってくる 現在、規制中でもfusianasanすれば書ける板に fusianasanしても書けなくなっているようです http://yuzuru.2ch.net/accuse/ >175 携帯のcidrやってるので、ついでに見てみますー。 しまった、、。 ●のままだ。 >>177 はなしで。 access板をスルー処理が効いてなかったところがあったので、 スルーするようにコメントアウトしました。 現時点でoperateとaccessでfusianasanしたら書けるはずです。 で、もしaccess板でfusianasanしても書けないのが仕様だったら、 コメントアウトを外してください。。。 s/accsess/accuse/g で。。。 (素で間違えた cobra2245にもCrypt-CBC-2.30は入っていなかったのであった♪ なので、hato鯖は未対応中♪ さっきまで一瞬書き込みからIPアドレス見ようと思えば見れたわけか・・・w 今回Crypt-CBC-2.30は全鯖に入れるのか?というか入るのか? pinkもCBCはいっていませーん 明日入れてもらう予定ではあります qb7と同じモジュールが入るのかしら? use Crypt::Blowfish が有効なら喜び組(qb7では入ってるです)。 @cobra2245 %perl -e 'use Crypt::CBC' Can't locate Crypt/CBC.pm in @INC (@INC contains: perlのpathがずらずら) at -e line 1. BEGIN failed--compilation aborted at -e line 1. %perl -e 'use Crypt::Blowfish' Can't locate Crypt/Blowfish.pm in @INC (@INC contains: perlのpathがずらずら) at -e line 1. BEGIN failed--compilation aborted at -e line 1. だす♪ ♯以下root貰っちゃいなっていうのは禁止♪ 作成の思想は、各サーバにログフィルをあさって ipアドレスを探してくるスクリプトがある。 boo.2ch.netはそれぞれのサーバにそのipアドレスを問い合わせる。 私は hatoでその実験をしました。 つまり Cobra2245 にはCBCは入っている必要はないかと、 入っていないサーバはbbs.cgiを見てもらえば分かりますが、Cryptされた部分が Cryptされずに生々しく入っているという話です。 それでsunOsさんにCrypt::CBCが入っているかどうかで動きを変えるというのを教えてもらいました。 あ、今頃了解しました。早とちり(汗) ・・・のでbooのhato鯖対応復帰♪ >>192 hack72.2h.netを作ろうとしているので 新しい「串」が見つかったら呼んで欲しいのです。 hack72.2ch.net建設予定地 http://dso.2ch.net/test/read.cgi/sakhalin/1297008073/ フォレンジック分析から投稿者を守るためには、ログサーバを 海外に置いてログサーバのディスクを暗号化してからそこに ログを置けばいいと思うのです。 アメリカは暗号化解除を強要できるらしいからダメダナ _ |O\ | \ キリキリ ∧|∧ \ キリキリ ググゥ>(;⌒ヽ \ ∪ | (~) ∪∪ γ´⌒`ヽ ) ) {i:i:i:i:i:i:i:i:} ( ( ( ´・ω・)、 (O ⌒ )O ⊂_)∪ read.cgi ver 07.5.5 2024/06/08 Walang Kapalit ★ | Donguri System Team 5ちゃんねる