開催概要

2018年1月20日(土)13:00-17:30,仙台市青葉区一番町のコワーキングスペース「ソシラボ(正式名称:SOCiAL Laboratory)」にて,「Attack & Defense in Sendai(別名:攻防戦CTF,略称:A&D)第2回」が開催されました.この記事では,イベント当日の様子を報告します.

「攻防戦CTF」は,平たくいえば「ハッキングのチーム対抗競技」です.
「Attack & Defense in Sendai」は,本来の競技性を残しつつも,初心者にも入りやすいワークショップとしてのアレンジを試み,攻防戦に初挑戦の方や,技術に自信のない方でも,情報セキュリティ技術や攻防戦の競技をひととおり体験できる内容をめざしています.競技はクローズドなネットワーク環境下で実施するため,安全にハッキングの攻防を経験することができます.

第1回の開催レポートより引用>

講師は前回同様,服部祐一さん(OWASP Kyushu Chapter Leader)と菊池崇仁さん(東北情報セキュリティ勉強会 代表),競技問題は服部さんと愛甲健二さんが作成してくださいました.当日はテクニカルスタッフとして,中野佑亮さん(OWASP Kyushu Chapter Board Member),堀祐太さん(富士通株式会社 サイバーセキュリティ事業戦略本部サイバーディフェンスセンター)にもご協力をいただきました.

20名の定員は満席となり,現役エンジニアの方々だけでなく,学生の方々にも多数ご参加いただきました.宮城県外よりおこしになった方も少なくなく,「攻防戦は上級者向けが一般的.初心者向けは数少ない機会」とのことでした.

競技の説明後,チーム毎のレベルを平均化するため,開発や運用の実務経験をお持ちの皆さんはバラけて座り直していただき,即興で5つのチームを結成.各チームの自己紹介を終えたところで,各々の端末から練習課題にアクセスし,クロスサイトスクリプティングやSQLインジェクションといった脆弱性を目視確認しました.

約2時間半の本番競技中は,ほぼ全員が攻防戦未経験ながら,どのチームも実務経験者を中心とする自然なリーダーシップが発揮され,分業して調査や対策を施していったようです.

競技を振り返ってみると,「何もできなかった」と感じた方が8割以上いらっしゃいました.しかしながら,何もできなかったと応えた皆さんも含めた全員に「参加してよかった」とも思っていただけたようです.

懇親会の席では,競技を振り返って,「調べるだけであっという間だった」「次々と判断に迫られる体験をし,鍛えられた」といった声が聞こえていました.

フォトギャラリー

13:00のオープニングに向けて,運営スタッフが集合.会場設営を始めます.

▲当日のタイムテーブル.※板書に誤字がありました.誤: Defence -> 正: Defense

机と椅子をレイアウトし,競技環境をセットアップします.

▲11:30 会場設営完了.テクニカルスタッフのみなさんで打ち合わせ.手前は堀さん,奥は服部さん,中野さん,愛甲さんたち

宅配ハンバーグ(デミグラスソース,和風,イタリア風,フランス風など)

▲12: 00 ハンバーグレストラン「HACHI」の宅配を注文(スタッフ用)

Attack & Defense in Sendai #02 開催レポート

▲13:00 オープニング.はじめて参加の方がほとんど

攻防戦はチーム内での役割分担が重要です.スライドを見ながら概要を学びます.

▲菊池さんより競技説明

チーム毎に5つのテーブルをつくりました.

▲チーム分け.今回は1チーム3〜4人となりました

アイスブレイクをしながら座席を移動します.即興のチームビルディングは,初心者向けならではかもしれません.

▲即興チーム結成! 当日のチームビルディングは,初心者向けならではかもしれません

練習では,発見した脆弱性を参加者のみなさんに発表いただきました.

▲13:45 練習.発見した脆弱性を参加者のみなさんに発表いただきました

会場は満席状態に.2時間半の競技は静かに白熱しました.

▲14:15〜17:00 競技.チーム2に堀さんが助っ人参戦(画面中央)

海鮮せんべい塩釜の「三陸たこせん」.宮城県塩釜市の銘菓です.

▲五十嵐良一さん(仙台CTF実行委員)より「三陸たこせんべい」をいただきました! ありがとうございます!

競技ハイライト

競技は,総当たりのチーム対抗で行いました.

  • 基本ルール
    • 自チームのシステムで稼働するサービスを維持する
    • 他チームのシステムの脆弱性を突く
    • サービスの安定稼働を維持することで得点が加算される
    • IP制限で攻撃を防ぐのは禁止
  • 注意事項
    • 攻撃は競技問題であるウェブサイトに限定すること.参加者の端末を攻撃したり,会場の回線経由で攻撃することは絶対にしてはいけない
    • ハラスメント禁止
第2回 環境
競技環境 PHP, CentOS
競技時間 2時間45分
参加人数 19-20人
第2回 競技ハイライト
時刻 出来事
14:15 競技開始
15:00 SQLインジェクションの脆弱性を突いた激しい攻防.
15:30 運営テクニカルチームより 高速化 に関する課題のテコ入れ
15:40 テクニカルスタッフの堀さんがチーム2に参加!
15:45 運営よりヒント開示 「暗号化されたファイルがあるよ」
16:00 OSコマンドインジェクションによる攻撃
16:15 チーム5が 高速化 の課題をクリア
16:18 チーム2を初期状態に復旧
16:20 暫定1位のチーム5,防御を固めて逃げ切りの体制に
16:50 チーム3が スパムコメント の課題をクリア
17:00 競技終了

SQLインジェクションによる攻防が前半の分かれ道となりました.

各チーム,復旧->データを消される->復旧-> ……の消耗戦となりますが,地道に対策を施すことで いたちごっこ を脱したチーム3とチーム5は,空いたリソースを調査に回したようです.その結果,新たな攻撃ポイントを発見したチーム3.一方,高速化にチャレンジ&専守防衛の戦術を選んだチーム5.

後半は両チームの接戦となりましたが,先に高速化の課題を解いたチーム5が逃げ切りました.

得点推移

▲スコアボード

結果(得点の高い順)
チーム名 得点[点]
チーム5 6496
チーム3 5801
チーム1 3392
チーム4 642
チーム2 268

振り返り/工夫点/感想など

チーム1より
・データベースへの攻撃をスクリプトでループにした
・自チームのファイルを監視した
・OSコマンドインジェクションの攻撃を受けたので,やり返した
・高速化の課題はわからなかった

チーム2より
・何もできなかった
・復旧してもすぐに攻撃されてしまい……(動揺から)アクセスログを読むような基本を忘れてしまった

チーム3より
・まずは,地道に脆弱性を潰しこむ作戦にした
・しかし,何をやってもデータベースを壊されてしまう.そこで,データベース名を変えてみたところ,防御できた
・OSコマンドインジェクションを発見したので総攻撃
・明らかにスパムのようなコメントがあったため,ユーザIDをブロックして対処
・高速化できそうな兆しを見つけたところでタイムアップ

チーム4より
・SQLインジェクションで相手チームのテーブルを消した.全部消すと怪しまれるかなと思い,工夫して攻撃した
・しかし脆弱性対策ができず,自チームのデータベースが消えたり,publicディレクトリの中身が消えたり,何をされてるかわからず……

チーム5より
診断ツールを活用して早期に脆弱性を発見した.しかし攻撃の仕方がわからなかった
・permisionの設定を変えてブロックした
・データベースを壊され始めたときは,SQL文に drop が含まれている場合に弾くように設定した
・高速化の課題は,ソースコード上で数値を上書きしたらクリアできた

競技中に活躍した知識・スキル

  • チーム内のコミュニケーション
  • Webアプリケーションのディレクトリ構造を推測する力
  • Apacheの設定ファイルやログを読む力
  • viエディタの操作
  • XSS(クロスサイトスクリプティング)の実行方法
  • SQLインジェクションの実行方法
  • 攻撃をループさせるスクリプトの作成
  • 暗号方式の知識
  • 脆弱性診断ツールの活用
  • Linuxコマンド(tail, chmod, curl, grep, cat, … etc)

いただいたご質問

Q. Attack&Defenseというけれども,攻撃で点は入らない?
Ans. はい.体験をシンプルにする(大きな差が出にくくする)ことを目的に、防御に重きを置いた加点方式を採用しています.また,技術者の心構えとして,攻撃に重きを置くこと以上に,問題発生時の対策(防御)を重要視してもらいたい想いがあります.

主催

協力/スポンサー

スペシャルサンクス

  • 五十嵐良一さん(仙台CTF実行委員)

次回について

次回は 2018年4月21日(土) に開催させていただく予定です. 詳細が決まりましたら,connpassにてご案内いたします.※追記: 1月24日,第3回のイベント申込ページを公開しました.

この記事と関連する外部ページ

  1. 第2回のイベント申込ページ 跡地(connpass)
  2. 『Attack & Defense in Sendai #2』に行ってきました!(はじめてのIT勉強会)
  3. Attack & Defense in Sendai #2に参加してきました(イノたまごラボ・あのぶる の「こんなの作ったよ!」)
  4. Attack & Defense in Sendai #2に参加した(でんさんぶろぐ!)
  5. OWASP Kyushu チャプターミーティング(connpass)
  6. OWASP Sendai チャプターミーティング(connpass)
  7. OWASP Natori チャプターミーティング(connpass)
  8. ソシラボ(正式名称:SOCiAL Laboratory)

スキルアップの2歩目,3歩目として,OWASPのチャプターミーティングにもぜひご参加ください!

スタッフ募集

Attack & Defense in Sendai は,開催にご協力いただける運営スタッフを募集しています.(四半期毎の開催を目指しています.現役エンジニアの方やCTF競技経験をお持ちの方にご協力いただけると,とても助かります!!)
有志の個人グループですので,会員登録などは必要ありません.
少しでも興味を持っていただけましたら,お気軽にお問い合わせください.