5次元のカオス

南の島の学生がつらつらと日々を書き連ねます

セキュリティ・ミニキャンプ in 沖縄 に参加しました

セキュリティ・ミニキャンプ in 沖縄 に参加しました

2004年度より毎年開催しているセキュリティ・キャンプ,その縮小版とも言えるセキュリティ・ミニキャンプが沖縄科学技術大学大学院(OIST)で開催されるということで思い切って参加してきました.

セキュリティについては全くのド素人とも言える僕だったのですが,色々な人に助けてもらいながら,知識を深めていく良い機会になりました.

初日

共通講義:グループ・ディスカッション

SNSへのつぶやきや写真の投稿からある程度個人を特定できるし,行動予測をたてられるということを実演して頂き,グループディスカッションを行いました.

  • 自分の情報をどうコントロールすれば良いのか?
  • 他人が出す情報をどうコントロールするか?
  • 特定や晒すことは社会的正義か?過剰罰か?

上記の題目をみんなで話し合いながら情報社会における情報の取り扱いや,大切さについて意識を統一し,理解を深めるための講義を行いました.

ソフトウェア・セキュリティクラス

実践マルウェア解析

講師:村上 純一さん

午後からは村上さんを講師にお招きし,実践マルウェア解析という講義を行いました.

マルウェアの基礎

近年のマルウェアの定義から始まり,最近の動向やその対策のためのツールについて講義をして頂きました.

これまでのマルウェアの動向についての知識をひと通り深めたあと,グループディスカッションを行いました.

上記の題目をみんなで話し合いながら,これからのマルウェアはどのように進化していくのか

お互いの考えやその対策について話し合いました.

マルウェア駆除

既にマルウェアに感染したPCで,マルウェアを対処するという講義を行いました.

使用したのは "Security Tool" というマルウェアです.

実際に2008年ごろから発見されたマルウェアで色々と話題になったものでもあるようです.

この"Security Tool"をVM上のマシンに感染させ、対処するということを行いました.

使用したOS : Windows7 Enterprise

感染後,システムを再起動すると以下の症状が現れました(確認したもの)

  • cmdが起動できない
  • タスクマネージャが起動できない
  • インストールされているセキュリティ・ソフトの無効化
  • Security Toolを閉じることができない
  • メモ帳などのツールが一部使えない?

Security Tool の解決

以下の手順を行っていきました.

cmdを使って起動しているプロセス名を確認します

$ tasklist
$ プロセス名の確認

確認したプロセスを検索し、関連ファイルを削除する

※ この時点で,"Security Tool"は起動しなくなりました

次に再感染の可能性を消すために,レジストリを編集します.

レジストリとはユーザーパスワード,デバイスドライバ情報,ウィンドウズ設定,その他のWindows PC上の全ての設定を格納する階層型データベースのことです.

スタートメニューから"regedit"を起動する

プロセス名と同じ名前を検索し,片っ端から削除します.

念のため再起動後に,デフラグを行い完了とします.

ポイント:動いている物を止める、その後再感染の可能性を消す

ということを教えてもらいました.

※ 再起動せずに駆除を実行していったため,cmdなどを起動できたのですが, 本来だとセーフモードを使って対処していくのが正解のようです.

マルウェアの動的解析

"Security Tool"の駆除を踏まえ,今度は用意されたマルウェアのサンプルを使ってマルウェアの動的解析を行いました.

動的解析とはマルウェアを実際に実行し,その挙動に基づいて分析を行う手法のことです.

VM上でマルウェアのサンプルを起動させ,"Process Monitor"というツールを使ってマルウェアの挙動を分析しました.

"Process Monitor"とはシステム上で発生した以下のイベントを検知し,記録するためのツールです.

"Process Monitor"を起動します.

記録の開始を始めたあと,マルウェア以外のイベントをチェックしないように右クリック > Exclude を全てのプロセス・スレッドに対して実行する.

その後マルウェアを起動させ,マルウェアの動作をチェックしていった.

ポイント:CreateFile, RegSetValue 

※ 参照 よりもまずは 変更 のイベントに着目する

Windowsのディレクトリなどの前提知識がかなり必要となり,怪しい場所にファイルが作成されていたり

Process Treeを見ることで, マルウェアが他のなにかをしていたりどのように実行しているのかを見ることができました. (定時実行や子プロセスによる実行など)

2日目:ソフトウェア・セキュリティクラス

実践マルウェア解析

講師:村上 純一さん

初日に引き続き村上さんを講師にお招きし,実践マルウェア解析の続きを行いました.

静的解析

静的解析とは,いわゆるリバースエンジニアリングのことでマルウェアの実行形式ファイル(elf形式)をアセンブラ言語へ変更し

ソースコードからマルウェアがなにをしているのか分析します.

  • 演習問題:アセンブリ言語を読んで、プログラムの実行結果を推理せよ.(2問)

いきなり,アセンブラを読むことも難しいだろうということで2問ほど演習問題を解きました.

問題の内容については同じくセキュリティ・キャンプに参加しただいちろんさんが書いてくれてたので

そちらを見るといいかもしれません.

マルウェアを解析 > スライド作成 > 発表

  • 初日に配布されたマルウェアを動的及び、静的解析を行う

という問題を与えられ,それについてまとめ発表を行いました.

選択したマルウェアの特徴

  • Windows API を使って、通信を行っている
  • 毎朝9時に自動起動する設定になっている
  • ダイアルアップの情報を読んでいる(ユーザ名, パスワード, 電話番号)
  • 以上のプログラムをいくつかのプロセスにフォークしている
  • cmdやタスクマネージャーをブロックする

同じグループの2人が動的解析を使って上の情報を手に入れることができたため,

僕自身は静的解析を使って、その情報がどこに送られているのか/なにを取得しようとしているのか分析したかったのですが,

windows API のsendメソッドをcallしている部分を見つけたあたりで力足りずそこでタイムアップ.

※ VMはネットに接続されていなかったため、動的解析ではどこに/なにが送られているかという情報は得られそうになかった

感想とか

ただ講義を聞くだけのことは退屈に感じてしまうことが多いのですが2日間通してみて、自分たちの手を使い,きちんと理解しながら進められることが多かったのでとても楽しかったです.

しかし、2日間という時間は思ったよりも短く感じてしまいました.

静的解析の方は,時間をかけてじっくりアセンブリを読まなければいけなかったため,もっと時間をかけてガッツリやりたかったです.

セキュリティ・キャンプの中央大会に参加すると1週間ぐらいかけてガッツリ出来るそうなので,少しだけ参加してみたいな〜思いました.

セキュリティについて全くの初心者だったのでそんな僕が参加しても大丈夫かな...?という

不安が当初はありましたが,少人数のクラスであるためしっかりと個別の質問にしっかりと応えて頂けたり,個人のペースに合わせてもらえたりと良い環境で学べたと思います.

また,キャンプを通して他の学校の学生と意見を交換できたり,交流を深めたりできたことも良かったです.

恥ずかしながら、このミニキャンプに参加するまでは中央大会の存在やセキュリティについての知識がこれっぽっちも状態だったのですが,このような体験を通して自分の視野を広げる良い機会になったと思います.

今後も沖縄でこういったワークショップ的なイベントが多く開催されると良いなと思いました.

参考