CTF for ビギナーズ 2015 札幌 参加してきました

2015年6月27日 / web, 勉強会, 日記

CTF4b sapporo

6/14(日)にCTF初心者向け勉強会に参加してきました.

CTF for ビギナーズ2015 札幌

CTFとは,
“セキュリティに関する実践的技能を競うためのコンテスト”
(SECCON 2015 事業開始式 by takesakoより)
のことです.

時折,SECCON CTF(セキュリティコンテスト Capture The Flag)という名前の大きな大会が開催されており,今回はその入門のための勉強会といった感じです.
やっぱりwebサーバを使っている身としても常にセキュリティに対しては敏感でありたいものですもんね...

ところで,先のリンクにあるスライドを見ると今後も東京,長野,熊本・・・と全国各地で初心者向け講習会が開かれるようですね.

まぁこれに限らず,北海道で楡CTF勉強会が開催されているように,各地でローカル勉強会はあると思いますが.

年金の情報流出問題やIoTでセキュリティへの関心は高まっているので今後さらに注目を浴びる...のかな?

前置きが長くなってしまいました.

以下,どんなことをやったのか復習と感想を残しておきたいと思います.

参加申し込み〜イベントの内容

  • CTFについての説明
  • バイナリアンが何を言っているかわからない件
  • Webマンがエスパー過ぎて生きるのが辛い
  • 簡易CTF

運営スタッフによる講義形式の勉強会,最後に学んだことを踏まえたハンズオン形式の簡易CTFを行うといったスケジュールでした.
参加者30人の満員という状態だったので今後も拡大しそうですね.

参加するにあたって問題が1つありました.

PCのスペック不足(空き容量不足)です...

勉強会は用意された仮想マシン環境で実習する形式だったんですが,今のノートPCで20GBの空き容量なんて確保するのは不可能に近く...一応問い合わせたところ10GBぐらいあいてれば何とかという話でしたが,結局,当日は仮想マシンインストール時にストレージ不足など少々トラブってしまいました.諸開発環境など無理やり色んなもの消して何とか動かせるように.
(運営の方々にご迷惑をお掛けして申し訳ない気持ちでいっぱいです)

MacBook Air(2011モデル SSD120GB)でbootcampなんかしてるのがそもそも悪いんですけどね.
そろそろ買い替え時でしょうか.

バイナリアンが何を言っているかわからない件

バイナリ!

CPU・メモリの動作,ファイルデータ,機械語などに対する理解が求められる分野です.

勉強会で登場したのは3つ.
– fileコマンド(cmd):拡張子偽装を見破る,ファイル形式の判定
– stringsコマンド(cmd):ファイル内に隠された文字列(Flagやヒント)を見つける
– x86 アセンブリ(IDA Pro):実行形式ファイルの動作を解析してFlagを入手する

linuxはコマンドがしがし使うイメージありますが,windowsのコマンドプロンプトも標準機能で結構遊べるんですねぇ.ちょっと侮ってました.

最後の内容はアセンブリ言語大好きなサークルの友人が歓喜しそうな内容でした.
(次回のイベントがあった際にはその友人に声をかけておこう)

自分もPICやAVR程度の8bitマイコンのアセンブリ言語を扱うことはあっても,さすがにx86は初めてでしたね.といっても扱える命令の種類が違うとういだけですが.

アセンブリ言語が理解できるかというよりは,ツール(IDA PRO)を使いこなせるかが重要なのかなという印象でした.

Webマンがエスパー過ぎて生きるのが辛い

webサーバやデータベースなど,そこら辺の分野ですね.

具体的に挙げられていたテクニックは
– SQLインジェクション:’ OR 1=1 —
– UNION句
– ディレクトリトラバーサル: ../
– phpファイルをbase64化して読む(convert.base-64-encode)
– Cookie
– XSS

など.
こちらも詳細内容は省略.

セキュリティの分野ではどれもよく耳にするワードがずらり...

が,言葉は知っていても具体的にどうやって攻撃する/されるのか,
という具体的なこと(どんなコードを打ち込むのか)までは知らなかったので勉強になりました.

タイトルにもある通りWeb系も問題はエスパー力が必要と強調していました.
バイナリのようにデータが手元にあるわけではないので,どうしても勘が必要になるようです.

おそらく,この勘(エスパー力)というのは,CTFだけでなく,webサーバを構築,webページ作成,データベースの利用経験を通して培われていくんだと思います.SQL文を想像するなんてDB全く扱わない人じゃないとまず厳しいでしょう.

一般的にはどう設計するか?サーバはどう守られているか?サーバ管理者(出題者)の思考・思想は?
今回の講義では防御方法の解説はなかったものの,攻撃を考えるということは,必然的に自分の身を守ることにも繋がるのがよくわかります.

長年使われていたサーバを引き継いでしまった!管理者が去ってしまった!
なんて時にも,このエスパー力が役立つかもしれません(笑)

CTF

運営の方が作った問題を解くミニCTF.
基本的には講習で扱った内容の問題,+α(ネットワーク系の問題)が出題されていました.

詳しくは,課題に使用されたサーバのデータが手元に無いので割愛しますが,結果は,ごく簡単なものしか解けませんでした.

無念...

解答を聞いてみると,講習でやったことで溶ける問題が多く,理解はまだまだ浅いようです...
だからこそ,こんなブログを書きながら資料を読み返していたり...

まとめ

初心者向けということで,簡単で基本的な知識(テクニック)+それを使った演習問題という流れは凄く良いですね.

いきなりCTF大会に参加しても何も手が出ませんからね!(楡CTFの時のように...w)

基礎をいくつか学んで,ある知識でヒントを得て,また別の知識でFlagを入手していくCTFの流れは,基本的なルールや公式を学んでそれを組みわせて応用問題を解いていく高校までの数学のようにも思えました.

セキュリティ教育という意味でCTFはピッタリじゃないでしょうか.

大学の重点領域分野にサイバーセキュリティが加わるとの話しもあるので,セキュリティ教育の動向は目が話せませんね.
(重点領域になるのは研究としてだったかな?)

授業でCTFあったら喜んで受講するんだけどな.

実習というのは,対策なしだとこんな簡単に情報抜き取られてしまうのか,と身を持って体感できます.
本当に明日は我が身...です...

セキュリティってイタチごっこなんだろうな,と勝手に思ってるんですが,
一般的な対策を施すだけでなく,攻撃方法を知ってそれに対する対策をどんどん施していかないと,やられてしまうんでしょうね.
いわゆる攻めのセキュリティとかいうやつでしょうか.

セキュリティは大事だーとか,しっかりしろー,とか口で言うのは簡単でも,実現するのは容易ではなさそうです.
専門知識も必要だし,常に最新で「正しい」情報を仕入れなければならない.
さらにはエスパーに攻撃される気持ちで防御しないといけないだなんて...

そこにリソースどれだけ割くことができるのでしょうか.
そしてどれだけリソース割いたとしても,やられるときはやられてしまうという現実.
(なんといっても,本当の攻撃者は生活がかかっていますからね)

こういった勉強会に参加するたびに,自分の知識の無さを思い知り,いろんなことを勉強せねば!という気持ちになります.

興味の幅が広がっては中途半端な知識が増えていくのも良くないなと日々思いながらも,刺激を求めてまた次も参加するのでしょう.

終了後は一緒に居合わせた大学の友人と近況報告しながらご飯を食べ帰宅.

リンク

(勝手にリンク貼らせていただきました.問題あれば一報ください)


タグ: ,

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

twitter

TOPへ戻る