┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┳━┳━┳━┓ ┃■ SECCON メールマガジン【Vol.05】 発行:2014.08.08(金) ┃_┃ロ┃×┃ ┣━━━━━━━━━━━━━━━━━━━━━━━━━━━━┻━┻━┻━┫ ┃…………………………………………………………………………………………┃ ┃… 各種CTF勉強会の情報や、予選告知、結果速報、Write Up などを発信 …┃ ┃…………………………………………………………………………………………┃ ┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛ …………………………… [ C O N T E N T S ] ………………………………… 0x01 日本初?女性向けCTFワークショップ「CTF for GIRLS」を実施しました 0x02 チームbinjaより - ラスベガスDEF CON 22 Hacking Conference現地速報 0x03 協賛企業「ドワンゴ」様より - 文字化けではございません? 0x04 連載:SECCON 2014 夏オンライン予選「Programming 100」出題者の解説 ──────────────────────────────────── 0x01 日本初?女性向けCTFワークショップ「CTF for GIRLS」を実施しました ──────────────────────────────────── 2014年6月29日(日)、六本木ヒルズのグリー株式会社様のセミナールームをお借り して、日本で初めての女性向けCTFワークショップを開催しました。企画当初は 「同じ想いを持つ女性たちがどれぐらいいるのだろうか」「参加者が20人くらい しか集まらないのではないか」という不安もありましたが、募集開始翌日には当 初の定員の50名を超える参加申込みがあり、急遽定員を増やして対応しましたが、 結果的に募集3日目で80名を超えたため募集を終了せざるを得なかったほどの滑り 出しとなりました。 当日、開会は10時でしたが受付開始の9:30頃からちらほらと女性たちが集まり 始めました。遠くは石川県からいらした方や高校生の参加もあり、総勢70名が 午前中はネットワーク、Webセキュリティ、フォレンジックの講義をそれぞれ 女性講師が25分ずつ解説してお昼休憩です。お昼は六本木ヒルズ内のレストラン 2店に分かれてランチをいただきましたが、ランチを一緒にすることで参加者たち の緊張もほぐれて交流を深めることができたようで、ランチ後にはグループ毎に 会話が弾んでいる様子も見受けられました。 午後はバイナリの講義のあとCTF演習を行ないました。各自持参したノートPCを 用いて約1時間強の演習で、8名ずつ10のグループに分かれて黙々とPC画面と戦っ ている様子が見られました。 演習のあとは、会場内に設置したセキュリティ分野毎のブースを周っていただき、 それぞれのブースの講師やスタッフから詳しい解き方のヒントをもらうことで、 自分が解けなかったところを確認したり、自分とは異なる考え方に耳を傾けてい る様子でした。 ブース周りのあとは解答解説の時間です。午前中に講義を担当した講師が、 ネットワーク、バイナリ、WEBセキュリティ、フォレンジックについて、それぞれ 約10分ずつの解説を行ないました。最後は、各グループを代表して1名ずつ感想 を話してもらいましたが、「ついていけないのではと不安に思っていたが、講義 は初心者にもわかりやすく説明してもらえた」「去年のSECCONにも参加しようか と思ったが踏み切れなかった、今年はぜひ参加してみたい」「全員女性で勉強す るという機会があまりないので良かった、交流が持てて良かった」などなど、参 加された方は達成感や自信に繋がったコメントや、今後もぜひ勉強会に参加して いきたいという声が数多く聞かれました。 今回は参加者を女性のみに制限させていただいたことについて、多くの方々にご 理解いただきましたこと、心より感謝申し上げます。業界で数少ない女性たちが 勉強会などで不必要に目立ってしまうことや興味本位の目にさらされることを恐 れて、参加をためらってしまうことが多かったようです。通常の勉強会では男性 が多くて参加しづらいけれど、スタッフも含めて女性のみということで、安心し て参加していただくことが出来たと思います。参加者の中には日曜日ということ もあって、お子様の面倒を旦那さまにお願いしたり、彼とデートの約束があった のを日程変更してもらったというエピソードが聞かれるほど、強い想いを持って 参加をしてくれた女性たちが、今後も本活動をきっかけとして、今後のセキュリ ティ業界の女性達のコミュニティ形成や自発的な活動に繋がっていけば大変嬉し いです。 CTF for GIRLS運営スタッフより ──────────────────────────────────── 0x02 チームbinjaより - ラスベガスDEF CON 22 Hacking Conference現地速報 ──────────────────────────────────── さて、現地ラスベガスでは8/7からDEFCONが始まりました。今日は入場チケット 販売と、いくつかのセッション、コンテストが開催されています。今年はコンテ ストエリアでは、登録をするだけで参戦できるopenCTFが開催されていたり、い ろいろなコンテストの参加募集が行われています。 http://openctf.com/ 我々の参加するCTFは現地8/8金曜10時(日本時間 8/9 深夜2時)から 3日間に渡り合計24時間で開催されます。 https://legitbs.net/2014/ 詳細はまた、あらためての結果報告をしますが、競技は20チームでの攻防戦で 行われます。昨年はARMv7のサーバが競技環境として提供されました。 ・果たして、今年は一体どんな競技になるのか? ・最後のスロットを獲得したチームbinjaがどのように健闘をするのか? DEFCON現地の最新情報は、おそらくTwitterで「DEFCON」を検索するのが速いと 思います。日本の皆様の応援をお願いします!! チームbinjaより ──────────────────────────────────── 0x03 協賛企業「ドワンゴ」様より - 文字化けではございません? ──────────────────────────────────── 株式会社ドワンゴです。弊社エンジニアからのメッセージをお読みください。 哇吼卍咢咒咬咀呀听勍哄咀們吭勗哈劬劬吼咒咢咒匯呶吩匯吮區卻匏吩們哈劼匱劼 咸勁匈匯卮劵咸勞卍劼吭咸哇匳卮呻咀卞咒卆吼哇卆咀匣咢咀勞吮匆呎咐吼听甸勍 吮哄匏丗勦勦卆卞匣听咄匳勗們匐夘亅卩匆勁卆卷卮呻勍凖匚哄勣呎匕咒咒咒咒于 読み終えた方は是非こちらへ: http://info.dwango.co.jp/recruit/ ──────────────────────────────────── 0x04 連載:SECCON 2014 夏オンライン予選「Programming 100」出題者の解説 ──────────────────────────────────── ■問題 タイトル: かさねてみよう ジャンル: プログラミング 点数: 100 問題文: afterimage.gif (画像ファイルへのリンク) http://files.quals.seccon.jp/2014summer/afterimage.gif ■出題意図  画像の中に情報を隠すステガノグラフィという技術があります。ここにスパイ 情報が隠されていたりマルウェアが仕込まれることもあり、画像から隠された情 報を抽出するセキュリティ技術が求められることもあります。それを意図して、 一見なんの意味もなさそうなアニメーション画像を「afterimage」というタイト ルで暗号問題として作成しました。afterimageをググると「残像」という意味が 見つかるので、画像を残していけばいいのかと気付いて重ねてもらえるかなと考 えていました。しかし、出題選考者からプログラミングジャンルで出すとの打診 があり、プログラミングで重ねることもできるからそれでもいいかなと思い、タ イトルを「重ねてみよう」にして何をすればいいのかわかるタイトルにしました。 セキュリティ業務において、ログを整理するスクリプトを書いたり、コマンドを 組み合わせて加工するスクリプトを書いたり、いろいろなツールを使いこなす技 術が求められたりしますので、その技術を発揮していただく問題です。 ■解法  解法手順:  1.最初に、アニメーション画像の各アニメーションフレームを1枚1枚のバラバ   ラの画像にします。画像ツールを使ってもいいですし、コマンドを使っても   いいですし、ジャンル名どおりプログラミングしてもいいでしょう。  2.次に、バラバラになった画像を全部重ねます。重ねるのは白いドット部分で、   黒い部分は透明なものとして重ねます。これも、画像ツールや、コマンドや、   プログラミングなど、慣れた方法で行います。  3.QRコードは回りが白、ドット部分が黒なので、画像の透明部分を白に、ドッ   ト部分を黒色にした画像に変換します。  4.最後に、QRコードを読み込むと文字列に変換されます。QRコードの読み込み   は、スマホの読み取りアプリを使ったり、QRコード解読WEBサイトを利用した   り、プログラミングで読んだりできます。 ■pythonスクリプトによる解法  python外部ライブラリの PIL と qrtools を使ったpythonスクリプトを以下に 示します。 $ cat solver.py #!/usr/bin/env python import Image from qrtools import QR gif = Image.open('afterimage.gif') width, height = gif.size png = Image.new('RGB', gif.size, (255, 255, 255)) for i in range(50): gif.load() for pos in ((x, y) for x in range(width) for y in range(height)): if gif.getpixel(pos) == 1: png.putpixel(pos, (0, 0, 0)) try: gif.seek(gif.tell() + 1) except: break png.save('afterimage.png', 'PNG') qr = QR(filename='afterimage.png') if qr.decode(): print qr.data $ python solver.py FLAG{Many dot makes a QR code} 波括弧内の「 Many dot makes a QR code 」がフラグです。 ■他の解法  画像編集ソフトの Illustrator や Gimp を使ってアニメーションフレームを レイヤーとして重ね合わせることができます。また、convertコマンドを使って 画像の分解、重ね合わせ、反転するができます。 ■反省  みなさんのtweetやwriteupを見てみますと「プログラミングしなかった」とい う意見を見かけました。暗号問題として作った問題をタイトルを変えただけでプ ログラミング問題として出したのはまずかったなと反省しています。例えば、QR ドットひとつ1枚のアニメーション画像にすれば、あまりにも画像枚数が多くて手 作業で重ねようと思う人はだいぶ減って、シェルスクリプトでも書いてみようと いう気になったかもしれませんね。 予選問題「Programming 100」出題者:白神一久(SECCON実行委員会)より ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ ▼ SECCON 2014 実行委員会は、多くの皆様からの無償のご支援と、スポンサー   企業様からの協賛金によって運営されています。 ……………………………………………………………………………………………… ▼ メルマガの配信停止はこちらよりお手続き下さい。 http://2014.seccon.jp/optout.html ……………………………………………………………………………………………… Copyright (C) 2014 SECCON 2014 実行委員会 All rights reserved. 掲載内容の無断転載を禁じることはありませんのでご安心下さい