セキュリティ日進月歩

情報セキュリティについてもうちょっと詳しくなるために。あとdocker

WannaCry(WanaCryptなど名称多数)から考える脆弱性対策事情

ここ数日、2017年5月12日からでしょうか。ランサムウェアであるWanaCryptが流行っていますね。これは、ひとたび感染すると、PC内のデータが人質に取られ、犯人に金を払わないと、もうデータは戻ってこず、「僕の書きかけの小説よ、さようなら〜」という性質のマルウェアになります。

 

詳細は以下ブログが超詳しいので譲ります。

世界各地で発生したランサムウェア WannaCry 2.0 の感染事案についてまとめてみた - piyolog

 

マルウェアですが、実際には、ちゃんと新しいWindows OSを使っていて、ちゃんとMicrosoft社から提供されたパッチを普通のスケジュールで当てていたら、リスクを限りなく抑えることができるようなのですが、なぜかここまで流行っている。

 

直接ターゲッティングされていない形式の攻撃でここまで流行るのは、企業のIT統制というのは非常に難しいからなんですね。熱心に教育や啓蒙活動を重ねても、1台でも統制外のPC及び利用者がいると、そこが穴になってしまう。例えば「米俵100kg当たりました!続きはwebで」みたいなメールを開いちゃったりですね。

 

かつ、システムで防ぐにも、そのときの構築の担当者やその上司がよくわかっていないと、効果に対しては高い費用がかかったり、つぎはぎの無意味な防波堤を作ってしまったりする。わかりやすいところで言えば、ベンダーとちゃんとコミュニケーションが取れなくていらないはずの製品を導入してしまったり、あまり守る必要の無い箇所に対して、徹底的に人を割いて体制を取ってしまうとかですね。あとは、いざ情報が漏えいした後に冷静な対応プロセスが無い、とりあえず窓からPCを捨てろ!など、どの防衛ラインでも穴はあります。

 

話は変わって、twitterなどのSNSでは、

「ガハハ、セキュリティにコストなどかけてられるか!うちはXPを使い続けろ!そもそも、XPってなんじゃ!」

みたいなクソ親父が拡散RTで回って来たりしますが、ここまで極端でないにしても、じゃあ、WebApplicationFirewallで何が防げるか知ってますか?じゃあ、ファイルの暗号化で防げるものはなんですか?ディスクの暗号化と何が違うんですか?程度でも、いざ聞かれると正確に答えられる人は少ない。正確に答えられる人が少ないということは、そこが穴になりうるということなんですね。あと冗長な対策をしてしまって、「なんだよ、このセキュリティソフト使いにくいじゃん、重いしクソだな」とかtweetしちゃったりする。

 

じゃあどうすればいいのか?

アンコントーラブルな部分を嘆いても仕方が無く、まずは自分のPCのsoftwareはきちんと最新化して、最低限の防衛教育を受けるしかない。

各自がコントローラブルな要素に対して、大きく以下の3者に対して、何をするかをトップダウンで決めて、改善していく。この辺は今の世界ではまだ、地道にやるしかないんでしょうね。

・個人

・企業/政府

・セキュリティベンダ

 

Apache Struts2の脆弱性について(S2-045)

最近なにかとstruts2脆弱性が話題である。ストラッツ2

ここ数年で言えば、heartbreedやshellshock並みのビッグイベントのようで、セキュリティベンダー各社それぞれ、各々の見解を述べているように思います。

 

まとめ系もいろいろありますが、ここがわかりやすいと思っています。

 

Struts2の脆弱性 CVE-2017-5638 (S2-045/S2-046)についてまとめてみた

http://d.hatena.ne.jp/Kango/20170307/1488907259

 

pocコードを見てみると、Content-Typeヘッダにある攻撃コードを埋め込むと、それだけで攻撃が成立するかのように見えます。どういう仕組みなのかはまだよくわかっていませんが、他にもいくつか見てみたところ、strutsの中で用いられているOGNLというフレームワークの部分を活用(?)する脆弱性のようです。

 

まとめはプロの方に任せるとして、こういう脆弱性が出たとき、ベンダーの動き方などを見ていると、勉強になると思うのでした。

IPアドレスから国の特定

sshハニーポット「kippo」から取得したlogより、数多くの攻撃元のIPアドレスが手に入ったわけなんですね。1週間で300ほど。

これの攻撃元の国リストを作りたいと思って、調べていました。

 

まずはググると、いくつもサービスが出てきますね。

 

ネットワークチェックツール

http://mgt.jp/t/country

 

これは少し面倒なので、コマンドで何か無いかみましたところ、perlでありました。

 

IP::Country::Fast - IP割り当て国を調べる

http://www.ksknet.net/perl/ipcountryfast_i.html

 

また、「whois IPアドレス」で、countryの項を見るという方法もあるようです。

てか、whoisあまり意識して使った事なかったので、読み方あまり知らず、まずはここからですね。

 

sshハニーポット「kippo」を動かしはじめて4日ほど経つ

「kippo」導入から4日。2017年3月21日の夜をスタート地点として、ここまでで4日経つ。

 

丸々四日でどれだけのIPアドレスからのチャレンジが来たのか?

 

具体的には、kippo.logより、「New connection」のログについて、IPアドレスのuniqな個数を算出した。

 

143である。一日にしては、÷4で35ぐらいである。

 

ということは、普通にwebを公開している場合、sshを間違って開けていれば、宣伝していまいが、それくらいのアタックが来るということになる。例えばあまり対策をせずに有名ブロガーになってしまって、アクセス先が多くの人間に知れ渡っている場合、こんな数じゃないはずだ(イケハヤ氏のように、ヘイト値の高いブロガーなら攻撃者のテンションは計り知れない)。

 

つまり、sshを22番でわかりやすく開けているのはとても危険だ。

 

また、ログを見て行くと、パスワードに、「1234」とか、「system」とか、「passw@rd」とか、いわゆる辞書攻撃的なものが並ぶ。ありきたりなパスワードにしている場合、数日で突破されるだろう。

※「root/rasberrypi」とかいうのもあったが、これはラズパイのデフォとかなのかな?

 

まず思いつく調査項目として、何がなされているのか(攻撃手法)、どこからなされているのか(攻撃者情報)を調べたい。

SSHハニーポット「kippo」導入

「kippo」と呼ばれるsshハニーポットを導入した。初のハニーポットだ。

 

sshハニーポットというのは、攻撃者が22番ポートにsshをしてきたときに、実際に繋がっているかのように振る舞って、攻撃者のアプローチを採取するタイプのハニーポットだ。

 

背景としては、最近、フォレンジックというものに興味が出て来て、そのための材料を収集する仕組みを手に入れたいと思って、ハニーポットにも興味が向いた。ハニーポットでアタッカーの情報がざくざく入ってくる仕組みができれば、フォレンジック業にも良い影響を与えるに違いないと、そう考えている。

 

導入方法は、他のサイトを参照されたし。まさにその通りにやった。簡単だった。

詰まった所は、サイトによって不足するモジュールがあったりで、それを追加で入れたことぐらいだ。

 

1日ほど回してみたが、ログに特に音沙汰は無い。kippo様のせいではなかろうが、一筋縄では行かなさそうだ。ブロガー並みに、「ハニーポット向け集客」をするとかになるとすれば、それはそれで大変だ。