mt_caret.blog

yet another blog

セキュキャン再び

気づいたらもうセキュキャンから半年経とうしているので、昔のブログの応募用紙の中身を晒した記事をつっこみを入れつつ振り返ってみようと思いました。つっこみはこのように箱の中に書いていきます。

セキュリティ・キャンプのネットワーク・セキュリティクラスに合格することができました。学校の友人に別なクラスの合格者がいたので、結構びっくりしてます。さて、いろんな人が応募についてブログに載せてるから、僕も書こうと思います。

ネットワークセキュリティの倍率

これですね。結構高かったらしいですが、応募の形式自体が謎のファイルの解明からはじまるため、興味を持ち比較的楽に解けてしまうため、「いけるんじゃないか」って思い応募に踏み切った方が多いかと思います。実際僕がそうでしたし。抽出に30分以上かかりましたが

fileコマンドやWiresharkの基本的な使い方をセキュキャンで知ることができた気がしますね。実際技術力は余り持ち合わせてないので、いろんな人に買いかぶられて困っています。「こんなにわかがいけるなら俺も…」と思ってもらえたら嬉しいです。

応募用紙の抽出について

いろんなとこで抽出の仕方が書いてありますが、ここでも紹介しておきます。 まず、wiresharkでファイルを開き、export objects -> httpを選びテキストファイルを入手し、開いてみると

_人人人人人人人人人_
> 突然の文字化け <
 ̄Y^Y^Y^Y^Y^Y^Y^Y ̄

あれーッて思って再びWiresharkの方を確認。 あーそっかそっかgzipかかってるもんなってことで解凍 => あれ?
...

結論: Shift-JSでした。
テキストエンコーディングほど怖いものはないです #初心者

同上

応募用紙の中身

i) あるTCPポートにSYNパケットを送るとどんなパケットが返ってきますか?

実際手を動かせ、という話をよく聞ききます。今考えてみればnmapのポートスキャンあたりをキャプチャすれば答えられたはずですが、締め切り数日前の某姉妹校とのロボコン後の焼き肉食べ放題打ち上げ中の机の下でWireshark開いてロボコン後のまともじゃないテンションと精神状態のもと書いていたので何も考えずにnmapのドキュメンテーションから情報をひっぱってきました。

_人人人人人人人人人人人人人人人人人_
> レベルを上げて英語で殴ればいい <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

TCP SYNスキャンのところに面白そうな論文があったのでそれを参考に一般的ではないTCP Handshakeについて少し語りました。返ってくるのは、SYN+ACKかRSTとは限りませんよ。キリッ

情報技術系はだいたいそうだと思いますが、特にセキュリティ系は英語というのが非常に大事であり、日本の進出における大きな障壁となってしまっていると思います。

ii)閉じているUDPポートにUDPパケットを送ると返ってくるパケットは何ですか?

iii)ICMP Echo Requestを送ると返ってくると想定されるパケットは何ですか?

特におもしろみのある回答を出来なかったから割愛します。

iv)WindowsのtracertとLinuxのtracerouteの違いを説明してください。

もともと基礎問題あたりは「独習TCP/IP」からひっぱってこようと思っていましたが、仙台に持っていくのを忘れてしまった上、tracerouteやpingの話の内容が薄すぎて参考にならなりませんでした。独習系で中身が薄いと思ったことは初めてでしたが、ネットワーク系のコマンドではなくTCP/IPについての本ですので仕方がないですね。

まず、Google先生に問い合わせてもまともな答えが見つからなかったので、みんなが焼き肉を食べ終わり、後輩で遊んでるあいだに黙々と仮想マシンに対してパケットキャプチャをして確認しました。ここで初めてvirtualboxのパケットキャプチャのお世話になった。 #初心者

結局大した違いは見つけられず、パケットの種類の違いぐらいしか書けませんでした。

余談ですが、Appleオープンソースのtraceroute実装にバグっぽいなにかを見つけて、 報告したところバグレポートがno value判定受けました。なんかclosedな印象を受けるオープンソースだなあ、と思ったりしました。

Wiresharkとにらめっこしながら仮想マシンを動かすのは楽しかった記憶があります。NWクラスに応募するなら、その前に一度はWiresharkの面白さに触れてみることをオススメします。

v)WindowspingLinuxpingの違いを説明してください。

こっちは前の問題よりさらに違いが見つからなくて困りました。動作の違い・TTLの違い・タイムスタンプの有無やdataのパディングの文字列の違いぐらいしか書けませんでした。求められていたものとは違う感がしました… #初心者

そういえば「Linuxの〇〇」って言われてもFOSSな実装がいくつもあって、どれをWindowsとくれべればいいのかわからなかったですね。

この質問の意図は今になってもよくわからないですね… ここらへんで面白いことをかけたら目立ったかもしれませんね。

vi)パケットを送るときに分割して送ることを何と言いますか?

この問題はかなり悩みました。OSI参照モデルではpacket segmentationであるはずですし、TCP/IPの話だったらIP fragmentationであるはずですが…
とりあえず両方答えておきました。
「送ることを何と言うか」と聞かれたら、答えは動詞にしなきゃいけないですが

vii)HTTPで動作しているサービスをHTTPSに変更することで起きうるデメリットを説明してください。

まず現時点でセキュアでオープンソースSSL/TLS実装ないだろって話をしました。LibreSSLに期待ですね。あとは、CiscoSSL/TLSに関する発表資料を参考にいつものハードウェアコストだったりトラブルシュート面倒くさいだったりの話について書きました。

この問題は技術的知識というよりセキュリティ業界の動向をある程度把握しているかどうかを聞いてるように思えました。最近のHTTPSの話といえばNew York TimesによるマスメディアサイトのHTTPSへの移行に関する記事が面白いですね。記事自体がHTTPSで提供されてないのはすこし変な気もしますが。

viii)この応募用紙をダウンロードしたサーバのヘッダ情報をpcapファイルの中から抜き出して答えてください。

サーバのヘッダ情報ってなんですか? #初心者
適当に抽出元のHTTPレスポンスパケットのヘッダをコピペしました。

1. このクラスを希望した自分なりの理由を教えてください。また、この講義で学んだことを何に役立てたいかを教えてください。

  • ゲーム廃人を卒業するきっかけになったフィッシング被害から興味を持ったこと
  • hak5っていうイケメンと美女がセキュリティ系の話をする動画シリーズがすごく面白かったという話

    最近はなかなかhak5を見れてない気がします。あそこはかなり面白いんですけどね。

  • 日本でBlackhat・Toorconみたいなカンファレンスがないこと => 業界が衰退するんじゃね?って話

    CODE BLUEといいAVTOKYOといい、あんまり中高生が行けるような雰囲気ではないですよねえ…

  • CombGigとかの企画・開催をした経験を活かしてセキュリティをテーマとしたイベント開いていきたい話

    高校生である間にCTFを開催したいなと思っていましたが、きつそうです。中高生CTFは後輩に託します。

について書いた。hak5って本当にいいリソースだと思います。

2. あなたが今「一番興味がある」プロトコルはなんですか?またそのプロトコルのどのようなところに興味がありますか?

はい。この質問なんだが、実は、僕これ答えてないんですよ。

答えてないんですよ。

基礎問で目立つ解答を考えるのに時間をかけすぎて、一番重要なはずの記述式質問にほとんど時間をさけず、 若干ヤケクソ気味に4:50前後に提出しました。

ここでいろんな人のまさかりが飛んできそうだと思いますし、実際なぜこれで合格できたのかかなり不思議です。応募用紙の評価基準が非常にきになるところです…

この問題を後回しにしていたのには理由がありまして、要は当時特に興味を持っているといえるようなプロトコルが特になかったということですね。今はたぶんDNSだと思います。未だに理解してない感じがするので、今後勉強していきたいです。

3. あなたの学校のネットワークを許可なくこっそり使って通信している人がいるかもしれません。そういう心配が起こった時にあなたはどのような行動をとりますか。説明してください。

TLでこれについてかなり凝った解答をした方もいるようですが、 僕は普通にゲートウェイMACアドレスホワイトリストポリシーを導入するでいいかなと思いました。これが一番セキュアだと思います(フラグ)

ポートを殺したり、ARPテーブルを固定するなど、面白い守りかたをこの間学んだりしたので、今再びこれに挑むとしたら、だいぶ違った答えになると思います。

4. あるホームページを参照した際に表示が大変遅く感じました。この場合、原因として考えられる事象を説明してください。なお、想定される原因の数は多いほど望ましい。

この問題は20個ぐらい書いて運営を圧倒しようとか思ってたけど、焼肉食べ放題中ほとんど思いつきませんでした。2.で書いたとおり、ここらへんは本当に適当に答えてました… 如何に適当だったかを示すため、この質問に対する答えをそのままのせます。

  • HTTP関連(サーバの応答が遅い)
  • DNS関連(サーバの応答が遅い)
  • レイテンシ(パケットの再送が多発している)
  • クライアント関連(コンピュータのCPUの処理が多い、ブラウザの処理が重い、メモリのスワップが発生している)

これ説明すらしてないですよね。

改めてこの問題に関する答えを考えてみましたが、MITMぐらいしか思い浮かばず… この問題の答えは結構技術・セキュリティの理解度を試す問題ですね。

5. あなたがネットカフェで入手したとあるファイルをネットワーク経由であなたの自宅に安全に送付するための方法について解説してください。解説してある手法は多いほど望ましい。

たぶん、「ネットカフェ」っていう設定を使うことによって、 「セキュアでない環境から如何にしてセキュリティを確保するか」を聞きたかったのでしょう。NSAのキャッチフレーズの如く「すでに侵入されていると仮定し、そこからセキュリティを考えろ」 ってことですね。

いや、でもネットカフェつったらBIOSレベルでルートキット入ってたら対策不可じゃね?とか考えてました。でも僕自身、セキュリティに関してそこまで神経質ではないからネットカフェのパソコンはセキュアであると仮定してscpやらVPNやらbtsyncやらを軽く列挙しました。

今考えたらtailsあたりの話もしとけばよかったかもな…

鯖缶をやれている状況ではないのでここらへんの知識が不足気味だと感じますねえ… この問題の答えから普段どういったことをしているかがわかってしまいますね。

6. 興味を持っているプログラミング言語は何ですか?使ったことがあるプログラミング言語や愛用しているプログラミング言語について説明してください。

  • 初めてプログラミングをしたのはロボコンのAVR(C)だった話
  • 部活でC#, metasploitで興味を持ってrubyをかじってる話
  • RoRつながりでHTML/CSS/JSを勉強したい話
  • Haskellを勉強したい話
  • 競プロつながりでC++もかじってる話
  • Scapyの存在をしってpythonに興味を持ってる話

プログラミング自体を現在ほとんどやっていないのでこのリストをみると辛いです。

7. 情報家電を1つ取り上げ、どんなプロトコルを使うか、サービスとして何が想定されるかを説明してください。また、その情報家電が悪用された場合、どのような脅威が想定されるか説明してください。

Smart Power StripIEEE802.11だからMITMとか余裕じゃね?ヒーターとかにつながってたらやばくね?とかの話をしました。

普段から身の回りの仕組みを悪用した場合、どういったことが起こりうるかを考える癖をつけていたので、ここらへんは割合と簡単に答えられた気がします。特に日本社会は性善説で成り立っているところが多いので、攻撃者の立場にたって考えることはセキュリティを考える上で非常に重要だと考えています。

8. 今一番注目しているネットワークプロトコルおよび実装について説明してください。また、そのネットワークプロトコルが悪用されてしまう可能性についても説明してください。

Bitcoin一択ですね。ブロックチェーンに対する51%攻撃の亜種を考えたことについて話しました。実はまだしっかりココらへんを検証してないのと、卒論で書くかもしれないのでまだ詳しくかきません。

卒論で書きました。Bitcoinに対する熱はすっかり冷めてしまいましたが、相変わらず儲けに直結するような技術なので注目しています。

9. そのほかアピールしたいこと、書き足りないことがあれば自由に書いてください。

_人人人人人人人人人人人人人人人人人_
> レベルを上げて英語で殴ればいい <
 ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

の話を少々。mikutterや公式bitcoinクライアントの翻訳も少しだけ手伝っていますし。海外コミュニティと日本コミュニティを繋げたい話をしました。

日本の情報クラスタと海外の情報クラスタは全然性質が違うので、両方の人をフォローするといろいろ刺激されていいと思います。

まとめ

なぜ受かったし

強いていうなら、他の200人ぐらいの応募者との違いは英語力かと思います。帰国生ですし仕方がないですね。

セキュキャンはベースラインの技術レベルが普通とくらべて非常に高いです。しかし、基本的に全ての分野において秀でてるスーパーマンのような人はいない(一部をのぞく)ので、ある分野だったらみんなよりできる、なんてことがざらにあると思います。ですので、何か楽しいことを追求していって、それがたまたまセキュリティ関連だったらついでにセキュキャンに応募してみる、というノリが正しいかと思います。