第20回「ネットワーク パケットを読む会(仮)」に参加してきました

第20回「ネットワーク パケットを読む会(仮)」に参加してきました

第20回「ネットワーク パケットを読む会(仮)」に参加し、tcpdumpの出力からネットワークパケットを読むための取っ掛かりとなる手順を発表してきました。

発表してきた内容

発表資料は以下のURLにて公開しています。ネットワークパケットをtcpdumpで出力し、その16進ダンプ内容をetherヘッダからICMP echo/replyまで読み解いてみようという内容です。

発表スライドはMagicPointで作成しています。発表スライドのソースファイル(.mgpファイル)についてもgist上で公開しています。

勉強会メモ

以下は勉強会のメモです。自分なりにまとめた内容なので、間違って理解している箇所があるかもしれませんのでご注意ください。

hpingで作るパケット

「Hentaiなping」であるhpingに関する発表で、hpingから設定可能なIP,ICMP,TCP,UDPのオプションについて解説されていました。発表者はCTF for Beginnersの問題作成用にhpingを利用してみましたとのことです。

ポートスキャンやパケットジェネレータの機能を併せ持つツールのようで、Scapypkttoolsと似たツールのようです。ただし、hping自体は10年ほど前くらいから更新されていないようです……。

512K問題をビッグデータ解析した先にあるもの

  • 発表者はととろさん

つい先ごろ話題になった、BGPの512K問題に関する発表でした。私自身はBGPは名前くらいしか聞いたことがなく、512K問題の具体的な内容を知りませんでした。

BGPはAS番号を元に、接続先に最もホップ数が少ない経路を自動で選択する仕組みで、BGPオペレーションはごく限られた人しか行わない(行う必要がない)ようです。12K問題はIPv4に関する経路データの増加が引き金とのことですが、IPv6でも経路情報が爆発したら発生する可能性があるようです。

今回の512K問題は、2014/08/12前後から17にかけて発生しており、米ベライゾンが使用するCISCOルータで発生しました。ルータの物理メモリが少ないことで発生しており、経路数が512,000を越えると発生することから「512K問題」と呼ばれています。2011年以前製造のCISCOルータが原因であると特定されており、回避configの適用で対応加能です。一番の対策はルータを買い換えることのようですが、お値段が数千万円単位(!)のものらしく、おいそれと購入はできなさそうです。

BGP,512K問題については、以下のURLにて詳しく解説されています(BGPルータのメモリがDRAMと異なる仕組みだとは知りませんでした……)。

上記記事の中から、よく理解できていないキーワードを(自分用に)がーっと列挙しておきます。

  • AS(Autonomous System)
  • フルルート(Full Route:BGPが収集した世界中のASネットワークへの全経路情報)
  • BGP version 4(RFC4271)
  • EGP(Exterior Gateway Protocol)
    • インターネット上で組織間の経路情報をやり取りする経路制御プロトコル
    • BGPはEGPに分類される
  • IGP(Interior Gateway Protocol)
    • 組織の内部で完結する経路制御プロトコル
    • 以下はIGPに分類される
      • RIP(Routing Information Protocol)
      • OSPF(Open Shortest Path First)
      • EIGRP(Enhanced Interior Gateway Routing Protocol)
  • RIR(Regional Internet Registry;地域インターネットレジストリ)
  • NIR(National Internet Registry;国別インターネットレジストリ)
  • LIR(Local Internel Registry;ローカルインターネットレジストリ)
  • (AS番号→RIRやJPNIC等のNIRから割り当てを受けることができる)
  • (AS番号、原則として2バイトのサイズだが、AS番号数が不足してきたため、最近は4バイト化が進んでいる)
  • iGP(内部BGP)
  • eBGP(外部BGP)
  • パンチングホール(経路数の増大を招く一因?)
  • IRR(Internet Routing Registry)
  • S-BGP(Secure BGP)
  • soBGP(Secure Origin BGP)
  • BFD(Bidirectional Forwarding Detection)
  • TCAM(Ternary Content-Addressable Memory)
  • CAM(Content-Addressable Memory)
  • FIB(Forward Information Base)
  • RIB(Routing Information Base)
  • コンフェデレーション
  • route reflector
  • route server
  • BGP経路のアグリゲーション

あと、これも知らなかったのですが、BGPMONというネットワークモニタリングサービスがあるようです。

Fiddler使ってる?

  • 発表者はTakagiさん

WebデバッグツールFiddlerに関する発表でした。私はFiddlerを全く知らなかったので、ただ聞くだけになっていました。

FiddlerIE開発リーダー格のひとりであったエリック・ローレンスによって作成されたツールで、Webのデバッグや、パフォーマンステスト、HTTP/HTTPSトラフィックレコーディングやセッション操作、セキュリティテストといった、Web開発(の後の一連のテスト)に役立つ機能が提供されているようです(公式サイトからの受け売りですが……)。発表者の方もおっしゃっていましたが、「攻撃される前に自分でテスト」というのは重要だと感じました。

QUIC

QUIC(Quick UDP Internet Connections)に関する発表でした。QUICはSPDYに関連し、HTTP->SPDY->QUIC->UDP->IPの形で置き換えようとするプロトコルのようです。

The Chromium Blogの以下のエントリでQUICの解説と設計ドキュメントが公開されています(が、それ以降QUICに関するエントリが無いのがちょっと気になります……)。

上記のブログと設計ドキュメントを読まないとダメかな……と思っていたら、既にブログにまとめていた方がいました。

なるほど、と思いながら読んでいたところ、以下のキーワードについては自分のなかでちゃんと理解できていなかったので、別途調べておこうと思いました。

Fiddler Add-on

FiddlerのAdd-onに関する発表でした。Fiddlerを動作させる際は、.NETのフル版でないとハマる場合があるとのことです。また、.NETのバージョンにも注意する必要があるようです。atmarkITさんにてバージョン確認用のバッチファイルが公開されているので、これを利用すると良いとのことでした。

FiddlerのAdd-onは.NETで開発したdllで提供されており、Add-onの例として、Burp-like InspectorとSessionDecoratorが紹介されていました。

また、実践Fiddlerという書籍があるようです。

まとめ

第20回「ネットワーク パケットを読む会(仮)」にて発表してきました。次回のネッ トワークパケットを読む会は9/22(月)を予定しているとのことです。

FiddlerやQUICなど、(私が情報収集をサボっているだけですが)知らなかった技術キーワードを補足することができ、勉強になりました。知らないキーワードなどは少しずつ調べておこうと思います。

Security Casual Talks 2014#2(すみだセキュリティ勉強会)に参加してきました

Security Casual Talks 2014#2(すみだセキュリティ勉強会)に参加してきました

Security Casual Talks 2014#2(すみだセキュリティ勉強会)に参加してきました。

勉強会参加者のツイートは、ハッシュタグ#sumida_secにて参照できます。

以下は勉強会のメモです。私が間違って理解したままメモを書いている箇所もあるかと思いますので、その点にご留意ください。 また、カッコ書きした項目は私の感想・意見となっています。

無線LANデンパゆんゆん観察

CRYPT+YOU,UNDERSTAND TODAY!

  • 発表者は@inaz2さん
  • 資料は以下のURLで公開されています

  • 代表的な現代暗号(RSA,AES,RC4あたり)について、アルゴリズムや使い方も交えた簡単な紹介

  • 換字式暗号
    • 文字、ブロック単位でずらす暗号で、古典暗号のひとつ
      • 「いくつずらしたか」が暗号鍵になる
    • (古典暗号、現代暗号という区分が存在するみたいです)
    • 換字式暗号の例としてはシーザー暗号がある
    • NSAの採用担当者のツイートを例にした換字式暗号の解読デモ
  • xorスクランブルの復元
    • (写真フイルムのネガポジ変換みたいなイメージ、反転→反転で元のデータに戻る)
  • RC4(Rivest Cipher 4)
    • 共通鍵暗号方式のうち、ストリーム暗号と呼ばれるもの
    • 鍵から特定のアルゴリズムに従って擬似乱数を作り、1byteずつのXORで暗号化・復号化する
    • RC4のバイアス問題
      • RC4が生成する擬似乱数列はあまりよろしくなく、2byte目が「0」になる確率はほかの値の2倍になっている
      • (これは実際に自分の手で試してみたい)
  • AES(Advanced Encryption Standard)
    • 共通鍵暗号方式のうち、ブロック暗号と呼ばれるもの
    • 入力は128bit固定で、鍵長は126,192,256bitから選択する
    • 128bitじゃない平分の時は、128bitのブロック毎に処理する。
      • 128bitの倍数にならない場合、不足分はパディングする
      • このブロックの処理方法を「暗号利用モード」と呼ぶ
      • 暗号利用モードのひとつにECB(Electronic Codebook)モードがある
        • 常に同じ暗号化結果が得られる→同じ平分のブロックが同じ結果になる、という欠点がある
        • AESに限らず、ブロック暗号でECBは利用せず、CBC(Cipher Block Chaining)等の他のモードを使う方がよい
          • CBCモード
            • 一つ前の暗号分を事前にXORで混ぜる
            • 最初のブロックはランダムな初期化ベクトル(IV)を混ぜる
  • RSA
$ openssl genrsa 192 | openssl rsa -modulus
...
Modulus=AAAA
$ msieve -e -v AAA
  • 実際に鍵長を指定するときは、2048bitよりも大きい長さを用いるほうがよい
  • RSAによる暗号化・復号化は処理(計算)が重いので、主に鍵共有、デジタル署名に使われる(「ハイブリッド暗号方式」と呼ばれる)

  • DH(Diffee-Hellman key exchange)鍵交換

    • RSAでAESの共有鍵を共有→データ通信という場面で、誰かが通信データ(AESで暗号化されたデータ)を全部集めており、かつRSA秘密鍵が盗まれてしまったら?
      • 鍵共有時のデータが復号化できるため、共通鍵がバレる→これまでのデータが全て復号化されてしまう可能性がある
    • DH鍵交換を用いると、共有鍵のデータを送受信せずとも鍵を共有できる
      • (なので、RSA秘密鍵が盗まれたとしても、送受信されていない共有鍵はバレない→データの復号化は不可能、という理解でよいのかな?)
    • DH鍵交換じたいは正確に言うと暗号ではなく、鍵共有プロトコルと呼ばれるもののひとつ
    • 特にセッション毎に鍵を換える場合DHE(Ephemeral)と呼ぶ。また、この鍵管理の概念を"PERFECT FORWARD SECURECY"と呼ぶ。
  • TSL/SSL暗号化スイートの読み方

    • TSL/SSLで使用する暗号の組み合わせを「暗号化スイート」と呼ぶ
    • 例として暗号化スイートが"TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA"の場合、以下の意味になる
TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA
鍵共有                 → ECDHE
通信相手の認証         → RSA
データそのものの暗号化 → AES_128_CBC
メッセージの改竄見地   → SHA1

Metasploitでペネトレーションテスト

まとめ

Security Casual Talks 2014#2(すみだセキュリティ勉強会)のメモをまとめてみました。正直、スライドが公開されているのでメモをまとめる必要性は低いと思っていました。しかし、自分の理解をメモにまとめるのだと考えると、スライドを見返したりする必要があり、なかなか勉強になります。

暗号の話は学生時代に習った内容の復習的なところが多いものの、すっかり忘れていたりする項目もありました。今回の勉強会を元に知識をキャッチアップできればと思います。