So-net無料ブログ作成
検索選択

CSRFを今更ながらお勉強 [プログラミング]

いまいち分からなかったんだけど分かるまで読んでわかった。CSIRTの話でCSRFの話が出てきて、XSSとかはなんとなくしっとるけどCSRFは良く分かっていなかったなと思い出し、ググって理解した。まぁ今はCSRFもサイトが対応して出来ないようにはなっているのだろう。

そういや、猫に証拠をつけて結局見つかってしまった犯罪者がいたが、あれはCSRFを使って第三者に掲示板に書かせたんじゃなかったっけかな。そいつがつかまって終わったのだけれど、悪いのは誤認逮捕した警察と、CSRFの脆弱性を作っていたサイトの運営者じゃないかと思う。その後、警察とサイトの運営者を相手取って訴訟したって話は聞かないけれど、アメリカだったら確実に金を取りにいく事象だと思ったりする。

https://ja.wikipedia.org/wiki/%E3%83%91%E3%82%BD%E3%82%B3%E3%83%B3%E9%81%A0%E9%9A%94%E6%93%8D%E4%BD%9C%E4%BA%8B%E4%BB%B6

ん~CSRFというよりワームの感染だな。C#で書いてあって書けないとかいっていて、書けましたと自白したんだけど、出来合いのものなど使って実際コーディングしたのは少しだろうから、書けませんというのもあながち嘘ではないのかもしれない。まぁ一からスクラッチは出来ません、という意味の書けませんですが。

CSRFが可能だったサイト以外はワームの仕業ということになろうが、IPアドレスだけを頼りにしていた安易な捜査はあからさまにIT音痴を露呈させたといえるだろう。そういう意味では、警察を相手取って訴訟ということも出来なくはないだろうが、他の冤罪も無罪になっても実質的に泣き寝入りになっていることからも、官憲にたてついても無駄だと言われているのも同じだ。完全に冤罪をなくすことは出来なくても断罪できないというのは、冤罪を許す温床になっている。

ITをイット呼ばわりした森元総理だが、オリンピックでサイバー犯罪を危惧しているようなことを言っていた。元総理は中身を分かっての発言ではないことは容易にわかるが、実際サイバー攻撃でかく乱されることは創造に難くない。にしてもCSRFで意図しないで加害者になるのは勘弁して欲しいものである。わけわからんURLが張ってあるスパムメールとかたくさんあるもんなぁ。


話はCSIRTに戻りますが、CSIRTを構築しないといけない友達がいて、色々ググってみたものの明確なノウハウとかは出てこない感じでした。まぁセキュリティインシデントをどう管理して報告するかという話なんだけれども、まぁ攻撃に対する対策ってのも面倒くさいよねというところで。

https://www.jpcert.or.jp/

・フィッシングサイト
・Webサイト改ざん
・マルウエアサイト
・スキャン
・DoS/DDoS
・制御システム関連
・標的型攻撃

の報告が主になるようだけど、スキャンの話だとアクセスログを見るしかないよなとか、フィッシングサイトとかマルウェアサイトとかは通報するしかないよなとか、色々考えましたが実際に何使うんだか良く分からないので適当にうっちゃって終わりにしました。

プログラマ的に面白いなと思ったのは、
https://www.jpcert.or.jp/research/materials.html
こういう情報ってわりと少ないんだよね。あるのかもしれないけど、バッドノウハウとして累積されたものがあるかといえば、そんなになかったりしたり。

世の中、動きゃいいって節があるから、テクニカルの更に先にあるセキュアなところってのはおざなりにされる。実際MSやAdobeの例があるしね。Oracleでもいいけど、長くソフトウェア業界に君臨していれば何かしらあるわけで。

結局、一番多いのが文字列のバッファオーバーフローかよというオチだったりするわけですが、C言語なんて長々と使っているからプリミティブなプログラマ任せの方法しか取れないんだよね。まぁWebシステムをガチでC言語だけで組むということはないにしても、C言語で作られたツールを使うことはあるわけで、セキュアな脅威は言語レベルで存在してしまうという状態ではあります。

まぁC言語は組み込みから使える言語だから、自分で全部制御してどうにかする文化があるといえばあるんだけど、そろそろパソコンサーバのツールはスクラッチするものはC言語以外で書いたほうがいいんじゃないかと思うんだけどね。そこまでメモリの消費量を気にしたり、メモリを細かくいじったりすることってのも正直なくなってきているとは思うんだけども。

正直、文字列の長さなんていちいち文字数を気にしていられっか、と。大抵の言語はstring型があるので、標準ライブラリに問題がない限りはそこが脆弱性につながることはないと思われ。あったとしても一気にふさがれるので他の言語で気にしないといけないことってのは少ないかもですね。

ここでNTBSという言葉が出てきたんだけど、Null-Terminated Byte Stringの略でした。別にこんな言い方しなくてもC言語の文字列と言えばいいだけの話だと思う。まぁ\0で終わるよという話です。そのヌル文字で翻弄されるわけですが面倒ですね。

結局、強制的に文字列の配列の最後にヌル文字を入れるとか、そもそも
用意したバッファより大きいものはコピーしないとか、ヌル文字のために
文字列を一文字引いた長さにするとか、そういう対策になるらしい。
まぁいちいちチェックするのは面倒くさいよね。


C#やったんだけどWPFってすごいメモリ食うんだね。まぁGUIはそこそこメモリ食いなのは仕方がないけど、スケルトンのプロジェクト実行するだけでも100MB弱メモリを消費していた。昔はそれほどメモリを消費していなかった気がするんだけどなぁ。.NETはみんなこんなんだろうか。

コメント(0) 
共通テーマ:パソコン・インターネット

コメント 0