セキュリティ・キャンプ九州 in 福岡 2014 Writeup
セキュリティ・キャンプ九州 in 福岡 2014 (SecurityCamp Kyushu 2014)に参加してきました。
セキュキャンと言えば、選抜されたメンバーが情報セキュリティに特化した様々な技術を学んぶ合宿です。近年の日本の情報セキュリティの需要増加や技術者不足を解消するために、様々なセキュリティ系の企業やIT系の企業、また独立行政法人や官公庁などの支援により毎年開催されています。
セキュキャン全国大会の方は22歳以下の学部生以下が対象で、院生は参加不可能なのですが、今回はなんと九州大会に限り院生参加可能!ということですぐに応募用紙を書き、運良く選考に受かることが出来ました。
セキュキャン九州の日程は2014年8月29日~31日。夏休み最後の日に開催でした。
実はその周辺、大学のコース授業で1週間ほど大阪で合宿→その後研究室合宿で3日ほど大分へ合宿→1日休みの後セキュリティ・キャンプ→セキュキャン終了翌日神戸で合宿という、普段家から出ない学生にはかなりしんどい日程でした。(これ書いてる途中も神戸合宿の間只中です)
しかし、そんなハードスケジュールでも参加してよかった。とても充実したキャンプでした。
日程
8月29日 金曜日(1日目)
9:30 受付開始
10:00 オープニング
11:00 『情報セキュリティ技術の使い方~技術を学んで怪物となる前に』 吉井講師
12:00 『CTF、バグハント、コンテストの現在。~セキュリティ・キャンプの紹介も兼ねて~』園田講師
13:00 お昼休み
14:00 『怪しいアプリ、怪しくないアプリ』 宮本講師、園田講師
16:00 『CTFを通じて学ぶセキュリティ技術基礎』続き 花田講師
17:00 ホテル移動、夕食
19:00 『セキュリティ技術者の職種ガイド ~セキュリティ対応ケーススタディ と絡めて~』 堂領講師
21:00 終了
8月30日 土曜日(2日目)合宿講習
9:00 『プログラミングとセキュリティ』 小出講師
12:00 お昼休み
13:00 『Webセキュリティ基礎&実践』 服部講師
17:00 ホテル移動、夕食
19:00 『情報セキュリティ技術の使い方をケースで考えよう』 吉井講師
21:00 終了
8月31日 日曜日(3日目)合宿講習
9:00 『ハニーポット+簡易セキュリティ診断講座+マルウェア解析講座(前編)』 濱本講師
12:00 お昼休み
13:00 『ハニーポット+簡易セキュリティ診断講座+マルウェア解析講座(後編)』 濱本講師
15:00 クロージング
16:00 案内
16:30 終了
一日目
一日目は9:30~10:00集合。福岡に住んでるお陰でそんなに早い時間に出発しなくても大丈夫でした。他の県の方々は夜行バスだったり新幹線だったりなかなか大変だったみたい。
@mrtc0氏も参加するということで、非常に楽しみ。
場所はエルガーラホール。会場に到着するともうすでに結構な人数が到着していました。
小出先生(@hirosk)や、県警の方などと少しお話をし、適当に開いてる席に座り、MBAを開いて適当にツイッターしていると
ん??となりいにいるのもりたこ氏?
— 16000000000GB (@dskzip) 2014, 8月 29
隣が@mrtc0氏でした。すごい偶然。ということで名刺交換をしました。
zipさんの名刺いただいた
— もりたこ (@mrtc0) 2014, 8月 29
@mrtc0氏・・・怖い人だ
講演の内容は三輪会長による技術者の人材に関することであったり、吉井先生による法律の問題であったり、園田さんによるCTFに関するお話であったり、情報セキュリティの表面に現れる問題に関する内容でした。特記はしませんが、非常に楽しめる内容でした。
昼食後、15:00(16:00?)くらいから別の館に移動。西日本新聞社さんの会議室の模様。
その後、花田さん(@decoy_service)による簡易CTF大会が行われました。練習問題を5問ほど解き、すぐにCTF大会の方に移行。
合宿講習の1日目午後は、花田さんより「CTFを通じて学ぶセキュリティ技術基礎」です。手を動かしながら、学ぶセキュリティ技術です。 #spcamp #seccamp pic.twitter.com/MaMZDEc0iD
— security_camp (@security_camp) 2014, 8月 29
問題的にはFor(+NW)とCry系が大半でした。200点までの問題は基本的なこと(fileやstiringsコマンド、基本ツールの使用)が殆どで、それ以上の点数の問題は海外のCTF(CSAW, backdoorなど)の300,400点問題となっていて、難易度が非常に高かったように感じました。また、独自問題も有り、そのほとんどが発想力を問われるものが多く、非常につらかったです。
最終的には3位と同点の4位でした。エスパー系の問題が全然解けなかった。
CTF終了後、夕食タイム。夕食はホテルの食事でした。席につき食事を待っていたのですが・・・
なんで こんな 無言 なの
— えすらん@進捗 (@nrsdogs) 2014, 8月 29
皆無言でお通夜状態でした w
せっかくのキャンプで無言は嫌なので、ちょこちょこ話を振っていたのですがなかなか会話が弾まず。。(でもご飯美味しかった)
夜はホテルの会議室で堂領さんより、「セキュリティ技術者の職種ガイド」をお話しいただきました。セキュリティ技術の使い方、そして地元でセキュリティな仕事を見つける方法を、事例を交えながらお聞きしました。 #spcamp #seccamp pic.twitter.com/3jy5FjbvJU
— security_camp (@security_camp) 2014, 8月 29
無言の夕食を経て、堂領講師による情報セキュリティの職種に関するお話がありました。ここでは情報セキュリティの職種にはどのようなものがあるのか具体的に十数個例を挙げて解説をしていただきました。分類や就労場所など細かな要素までおしえていただいたので非常に参考になりました。
ここで一日目が終了。
2日目
朝7時に朝食だったのでめちゃくちゃつらかったです。前日の無言感は皆もやばいと思ってたようで
えすらん氏(@nrsdogs)が話題を作ってくれてました(よかった)
えすらん氏いなければ無言の食事になるとこだった(もうなった後だったけど)
— 16000000000GB (@dskzip) 2014, 8月 29
2日目午前は、小出先生からプログラミングとセキュリティ。 実際に開発しながら、セキュリティを考えます。 #spcamp #seccamp pic.twitter.com/7iSzA3pPWa
— security_camp (@security_camp) 2014, 8月 30
朝食後、2日目のはじめの講義。うちのボスの小出先生(@hirosk)の「プログラミングとセキュリティ」でした。JavaとGlassFishでWebアプリを作成し、プログラミング上でどのようなセキュリティの考え方やコーディングがあるのかの解説でしたが、不慮の事故でセキュリティまで届かず。終了後にサイボウズLive上でアフターケアを行ってくれました。ハンズオンは環境が違うとプロでも難しいみたい
前日、班員の皆さんとワイワイCTFをやっていたので若干寝不足だったのですが、エンジニアの主食のお陰で生きることが出来ました。↓
セキュキャン九州2日目開始です #seccamp http://t.co/wP0tcfsqDP
— 16000000000GB (@dskzip) 2014, 8月 29
午後は「Webセキュリティ基礎&実践」と題して服部先生からのCTF大会Webアプリケーションのセキュリティについてでした。
2日目午後は、服部さんより、「Webセキュリティ入門」なのに、いきなりのXSS実習! #spcamp #seccamp pic.twitter.com/3ADYnyCRH4
— security_camp (@security_camp) 2014, 8月 30
Webセキュリティとは何だったのか。(いやセキュリティだけど)
いきなりXSSの実習を行いました。level1~5までのステージにフォームがおいてあり、それぞれに超基本的なXSSが可能なので、アラートを出してねという問題。簡単に書くと
- level1:<script>alert(1)</script>
- level2:<script>が消されるので<s<script>cript>alert(1)</script> or <scirpt >(スペース)
- level3: hiddenタグがエスケープされていないので埋め込む
- level4: iが1に変えられるので<scrIpt>alert(1)</scrIpt>
- level5: <scriptが消されるので<scri<scriptpt>alert(1)</script>
こんな感じでした。簡単ですね
練習問題終了後は脆弱性を作りこんだ本番のような環境で演習を行いました。
掲示板を模したWebサービスを使用して書き込み回数が多かったほうが勝ちというものでした。(知っている人は知っているアレ)掲示板にXSSができるので色々やってねと言うもの。アラート出たり飛ばされたり色々と面白かった。
最後の演習は普通のWebサイトを模したもので演習を行いました。XSSを複数個とphpの脆弱性、ディレクトリトラバーサルなど見つけました。最終的にphpスクリプトを注入して探索して、user情報とadminアカウントのハッシュをゲットしたので、レインボーテーブルでホイホイしてadminになり、トップページを乗っ取って終了。楽しかった。
Webアプリケーションでもヘタすればサーバーごと乗っ取られちゃうよということで、対策をしっかり行わなければならないなと思いました。
2日目夜は、吉井先生の「情報セキュリティ技術の使い方」です。ディスカッションで問いかけながら、みんなに考えて欲しいという吉井先生の思いが伝わってくる講義です。 #spcamp #seccamp pic.twitter.com/d2NutFDysz
— security_camp (@security_camp) 2014, 8月 30
夜は会議室で吉井先生からの法と情報セキュリティ技術の使い方の講義でした。レッドブル効力が切れていたので結構眠気が襲ってきましたが、ディスカッションを合間に入れてくださっていたので眠気が吹っ飛びました。ディスカッション楽しかった。
もうすでにこの状況 pic.twitter.com/XJjxYCfJHO
— 16000000000GB (@dskzip) 2014, 8月 30
これはいいよねって状態 pic.twitter.com/mjehdvW1XI
— もりたこ (@mrtc0) 2014, 8月 30
3日目
3日目は一日濱本さんより、「ハニーポット&マルウエア解析」 #spcamp #seccamp pic.twitter.com/mrdaUO7SSE
— security_camp (@security_camp) 2014, 8月 31
最終日は一番楽しみにしていた濱本さんによるハニーポットの解析演習でした。
はじめはネットワーク探索の基礎などを学びました。pingやnmapなど基本的なツールを使用して調査を行う手法を学びました。
攻撃者によってめちゃくちゃにされたあとのハニーポットの中身を探索し、どんなコマンドが使われているのか、何のマルウェアがどこに入っているのか。何をされたあとなのかを調査しました。/var/log/を漁ったり、コマンドのログを漁ったりしてなにか変な通信がないか、なにか変なコマンド実行してないかを一つ一つ見ていくのは大変でした。途中でftpで謎のファイルを落としていることを班員の方が見つけてくれたので、その周辺を調査するとルートキットを見つけました。見慣れないディレクトリやファイルが一緒に設置してあったので、調査を続けていたところでタイムアップ。とても楽しかった。
難しかったことは、/var/log/やhistoryなどを漁る場合、通常のコマンドや正常なトラフィックが入り交じっていて、どこが危険なのかどの部分が怪しいのかを判断することでした。また、濱本先生から「lsコマンドは汚染されています」と言われるまでlsコマンドが改ざんれていることに気づきませんでした。findなどは改ざんされていないとの事だったので、$ find . -maxdepth 1にエイリアスを貼って使用。こんなこともあるんだなと非常に勉強になりました。
After
今回記事にしたのはほんの一部で、その他にも沢山の技術や法的な解釈、モラル、現状などを学ぶことが出来ました。九州でのセキュリティ・キャンプは今回が第1回ということで、記念すべき第1回目の卒業生になれてとても嬉しいです。今後セキュリティ・キャンプ九州は続いていく(よね!?)と思うので、非常に期待しています。
実行委員や講師の方々、また支援して頂いた方々、参加者の方々ありがとうございました。
おまけ
新聞に掲載されました。