セキュリティ・キャンプ2015全国大会の応募課題

テスト期間でパソコンできなかったのでなかなか公開できずに乗り遅れた感はありますが、需要があるといっていただけたので、晒せそうなところだけ晒します。

 

今年、セキュリティ・キャンプに参加される方のWriteUpを見ていると自分はやっぱりまだまだだなーって思ったり、自分の回答はすげぇゴリ押しだったなーなんて思いますが、熱意は伝わって良かったなという思いで一杯です!

 

選択問題は3,4,6,7,11を回答しました。

4,6,11は平凡な事など書いているので公開しません(技術無いのバレちゃう笑)

 

共通問題1は

・自分はずっと独学でやってきたからたくさんの人と関わって人脈をつくりたい

・本場はどれぐらいすごいのかプロの手際などを見てみたい

・将来の夢の参考にしたい

この三点を中心に話を広げて書きました

 

共通問題2はコピペします

-----------------------------------------------------------------------------------------------------

パソコンを遠隔操作し、犯罪予告などを多数行い、誤認逮捕を生んだ事件が印象に残っています。


印象に残っている理由は、「犯人は頭がとても良いな」と思ったからです。
具体的には、自分のプログラミング技術のみに頼らずに匿名掲示板、匿名化ソフトを匠に使い、発信源を特定しにくいように工夫されていた点や、ボットネットを構築せず、公開されているサーバーに命令を送信し、その命令を「iesys.exe(ウイルス名)」に定期的に確認させ遠隔操作するという発想をしたことです。


iesys.exe」に実装されていた機能はプログラミングに精通した方ならば誰でも実装できます。スクリーンショットの取得やファイルのアップロード、ダウンロードなど過去に見たことがある機能ばかりでした。

今回の犯人のすごいところは徹底的に発信源を偽装していることにあります。


犯人のした事をまとめると
・「2ちゃんねる」という匿名掲示板に何ヶ所にもウイルスをダウンロードさせるURLリンクを貼っていた。
・接続経路匿名化ブラウザ「The Onion Router(通称:Tor)」をして通信していた。
・「2ちゃんねる」における書き込み制限を回避するためのシステム「シベリア郵便局」という「代理投稿」を悪用し、発信源を偽装した。
・「iesys.exe」に命令を送るとき、したらば掲示板に書き込み、間接的に命令を送信した。


これらの事はすべて自分の発信源を偽装するための偽装工作です。この様な徹底的な偽装工作を今まで見たことがありませんでした。
それと同時に、この「iesys.exe」はWindows 98, ME, NT, 2000, XP, Server 2003でなければ感染しません。Windows Vistawindows7等の初期設定ならば感染しないという事を聞いて、OSを最新のものにしない。信用できないURLから実行ファイルをダウンロードして実行してしまうユーザーの「セキュリティに関する意識の低さ」が浮き彫りになった事件であったと思います。
そのため強く印象に残っています。

------------------------------------------------------------------------------------------------------

 

共通問題3

特に勉強会などに参加したことも活動をしているわけでも無かったので自己アピールとして、BackTrackやKali Linuxに入ってるツールで遊んでたぜー見たいな事を書きました。

主にNmap,Wireshark,有名なAircrack-ngについて書きました。

 

 

選択問題3完全コピペです

-----------------------------------------------------------------------------------------------------

(1)特定のwebページの画像を収集するウェブスクレイパーです。

(2)Linuxコマンドのwgetコマンドとcurlコマンドを組み合わせてネット上の情報を収集するスクリプトを見たときに感動したので、自分もそのようなプログラムを作ってみたいと思ったのが始まりです。

(3)このソフトウェアはサーバーに何度も画像をリクエストするので一枚画像をダウンロードする間隔の設定とを工夫しました。スクレイピングをする。「画像を収集させていただいている立場」という事を忘れずスクレイピングする側のマナー、モラルといった 部分を意識しました。
他に、同じディレクトリに何枚もの画像を保存しつづけると、そのディレクトリを開いたとき、表示するのに時間がかかってしまうので、一つのディレクトリあたりの画像保存枚数を300枚までとしたところです。

(4)プログラミング経験が浅い時だったので、汎用性が全くない、一つのサイトのみをスクレイピングするソフトウェアなので「~~という文字列を含むURLで拡張子が・・・」といった細かな設定を外部ファイルを用いて実現できたらもっと良い形になると思っています。

------------------------------------------------------------------------------------------------------

 

選択問題7

皆さんの回答を見たときに、自分ゴリ押しだな(笑)って思ったけれども、場合分けや地道なアナログ検索見たいな手法でおもしろいと思っていただけるかなと思ったので一応コピペします。

この人非効率な方法してるなーでもまぁ考え方はおもしろい!って思っていただければ幸です。(一番時間かけたので長文です)

----------------------------------------------------------------------------------------------------

まず、「ネットワークに不審な通信を行っているPC」という仮定条件から、大きく二つの場合分けが可能だと思います。
自分が使っているPCに不正なプログラムがインストールされており、ネットワーク上で外部と不審な通信をしている場合・・・(1)
自分のネットワークに全く身に覚えがないPCが侵入している場合・・・(2)

(1)の場合
PCは自分が持っている事になるので、持っているPCをすべて起動します。そして、その中の一つのPCでwiresharkを起動し、ディフォルトゲートウェイを通るパケットをすべてキャプチャーします。
他のPCは起動しただけなので、邪魔なパケットはほとんど流れていないと思います。
しかし、PCを起動した時に自動でソフトウェアを起動するようにしている可能性もあるため、もし不必要なパケットが流れていたら、そのプロセスを特定し動作を停止させます。ただし、停止させるプロセスは信頼できるプロセスのみとします。ここまでが事前準備となります。

「ネットワークに不審な通信を行っているPC」という仮定条件から、攻撃者からのコマンドを待っている状況が予想されます。
事前準備が終われば、nmapなどのツールを用い、すべてのPCに対してポートスキャンを実行します。外部からの命令で実行するタイプのソフトウェアの場合はポートを開いて待っているはずなので、ポートスキャンで発見できるはずだからです。
この時、ポートスキャンを行って表示された情報はメモを取っておきます。どのPCが何番ポートを開いているかを記録し、自分が動かしていたという認識があるものを警戒レベル弱、そういった自覚があるものの自信がない場合は警戒レベル中、動かしている自覚が全くないものを警戒レベル強としておきます。

もしそのそのポートをどのソフトウェアが開いているのかわからない場合は調べます。
windowsならばnetstatなどでPIDを確認し、タスクマネージャーでポート番号とPIDを照合することで特定できるはずです。Linuxなら「netstat -anp | grep -E [0-9]+\.[0-9]+\.[0-9]+\.[0-9]+:ポート番号」と端末で実行すれば動いているソフトウェアを特定できるはずです。
この作業が終われば、警戒レベルが高い順に不正なソフトウェアではないかインターネットなどを使って調べます。
これで感染しているPCを特定できます。

ここで、(1)の場合での「中身を調査」という言葉は、「不正なソフトウェアの動作の調査」という意味であると仮定します。
不正なソフトウェアを実行していたPCに残しておくのは好ましくないため、調査をする場合は一度すべてのデータを完全消去し、再度ウイルスに感染させて挙動を確認するか、未使用の状態PCを用意し、その環境に感染させて実行するのが比較的安全だと思います。
仮想環境を用意した後、他のPCでwiresharkを起動し、未使用の状態のPCにウイルスに感染させ、そのPCに割り当てられたIPアドレス及び調査したポート番号でフィルタリングをします。
そして、流れているパケットを解析することでウイルスの挙動は確認できるとおもいます。

(2)の場合
まず、侵入しているPCを特定するために無線LANにログインし、割り振られているIPアドレスを確認し、すべてメモを取っておきます・・・これをtextAとします
そして、すべてのPCのプライベートIPアドレスwindowsなら「ipconfig」コマンド、Linuxなら「ifconfig」または「ip a」コマンドで確認し、パソコンとIPアドレスを記録しておきます・・・これをtextBとします
textAには書いてあり、textBに書いていないIPアドレスが侵入しているPCだと分かります。
これで侵入しているPCを特定できました。
これが終わればnmapで調査を始めます(2)の場合での「中身を調査する」という言葉は、「そのPCのOSなどの情報を収集する」という意味であると仮定します。
無線ネットワーク環境で他のPCを調べ上げるにはnmapが優れているためnmapを使ってOSとそのバージョンの検出、その他の情報を得る事にします。
nmapをroot権限で実行し、「nmap -sA -A -v ターゲットIP」や「nmap -sS -A -v ターゲットIP」などのコマンドを実行することによって侵入したPCの情報を調査することができます。

----------------------------------------------------------------------------------------------------

 

最後に・・・セキュリティ・キャンプに参加される皆様、よろしくお願いします。