SSL/TLS関連

  • 業務中に暗号化方式を確認するタイミングがあったのだがいまいちどれが何やら いまいちわからなかったので、少し書いて覚えることとしたい。

ガイドライン

SSLバージョン毎の脆弱性

  1. SSL2.0(1994)
  2. ダウングレード攻撃(最弱のアルゴリズムを強制的に使用させる)
  3. バージョンロールバック(SSL2.0を強制的に使用させる)

  4. SSL3.0(1995)

  5. POODLE(2014) 特定状況下でCBCモードを利用した際の、パディングチェックの脆弱性、回避策は現状なし

暗号アルゴリズム

鍵交換

  • RSA
  • DHE
  • ECDH
  • ECDHE

暗号化

  • RC4
  • Triple DES
  • AES
  • Camellia

Hash関数

暗号利用モード

ブロック暗号を利用して、ブロック長よりも長いメッセージを暗号化する

  • CBC(Cipher Block Chaining)

    • IBMが開発、平文の各ブロックは前の暗号文とのXORを取ってから暗号化される
    • 1ブロック前の暗号文を次の平文の暗号化にしようするため、暗号化の並列処理が不可
  • GCM(Galois/Counter Mode)

    • 認証付暗号
    • データ保護と認証の双方に利用可能  - ブロック長128ビットのブロック暗号に適用可能
    • 暗号化の並列処理が可能

ntp monlist 有効/無効の調べ方

monlistとは?

NTPサーバが過去にやり取りした最大600件のアドレスを返す機能 NTPリフレクション攻撃などに悪用されることで有名

NTPリフレクション攻撃

DDoS攻撃の一種と言われており,大量のトラフィックを攻撃対象のサーバーに送り付けることで帯域を専有してしまう攻撃。 攻撃者はmonlist機能が有効になっている脆弱なNTPサーバを悪用するために、送信元を詐称したmonlist機能のリクエストを送信し、レスポンスを攻撃者のマシンではなく、攻撃対象に返信させる。 このレスポンスが巨大であることを悪用し、DDoS攻撃を行う。

自分のサーバのmonlistが有効か調査する方法

ntpdc -n -c monlist [対象のサーバのIPアドレス]
  • レスポンスが「time out,not found 」とかだと無効
  • レスポンスが帰ってきたら有効となっているため、設定を見直したほうがよい。

NTPってこの他に設定ミスによる脆弱性で調査する項目あるのかしら??? 情報を得たらまた書きます。

Forward Secrecy

個人的に聞き慣れない単語だったので調査メモ

Forward Secrecyとは?

※wikipeddia引用

長期的な鍵対からセッションキーを生成した際に、のちに長期鍵の安全性が破れたとしてもセッションキーの安全性が保たれるという、鍵交換プロトコルの持つ性質である。

つまり、サーバの秘密鍵が漏洩しても、過去に通信したデータの安全性を確保しようということだと思う。 例えば、公開鍵暗号方式で共通鍵を交換して行う暗号化通信は、秘密鍵が漏洩したタイミングで過去の通信パケットを攻撃者がすべて保持していた場合、その内容が複合化されてしまう。

Forward Secrecyを確保した方法、例えばDHE(ディフィー・ヘルマン鍵共有)とかを使うと秘密鍵をお互いに持っており、片方の秘密鍵がバレても情報は漏洩しない。かつ、鍵をどこかのタイミングで変えることにより、ある場面の秘密鍵が漏洩した場合でも他の場面で使用した秘密鍵はバレていないため、通信を復号化されず、被害を局所化できる。

  • 参考サイト

SSL and TLS Deployment Best Practices · ssllabs/research Wiki · GitHub

shanon-tech.blogspot.com

rms.ne.jp

LOGJAMメモ

LOGJAMとは?

このサイトを見れば分かる。

blog.trendmicro.co.jp

●対策 export suites暗号のサポートを無効し、DH鍵交換に利用する素数を 2048ビットまで上げたうえで、各環境ごとに DHパラメータを新規に生成する。

HTTPレスポンスヘッダ メモ1

  • Strict-Transport-Security

  • X-Content-Type-Options

    • ファイルの内容から、ファイルの種類をブラウザが自動的に決定することを防ぐことができる
  • X-XSS-Protection

    • スクリプトの起動を検知し、動作を行わせない機能を持つ(XSSを防止する)
  • X-Frame-Options

    • 自分のサイトのページを、iframeなどを用いて他のサイトでも表示できるかを制御する

WOWHoneypotを作ってみた

  • 攻撃者の通信を実際に見るためにハニーポット運用を行ってみる
  • 今回は初心者向けでかつ簡単に構築が可能なWOWHoneypotを構築する

実行環境

  • Raspberry Pi 3 Model B+
  • OS : Raspbian Stretch with desktop ver 2018-11-13

構築

  • 導入はとっても簡単、作成者の方が用意しているgithubの手順に従えばすぐです

github.com

インストール

とりあえずアップデート

$ sudo apt update 
$ sudo apt upgrade 

ハニーポット用のユーザを作ってみる

$ adduser wowhoneypot

git clone (リンク先の手順どおり)

$ git clone https://github.com/morihisa/WOWHoneypot.git wowhoneypot
$ cd wowhoneypot

fwの設定 今回はufwを使います まず、穴をあける

$ sudo ufw default DENY
$ sudo ufw allow 80/tcp
$ sudo ufw allow 8080/tcp
$ sudo ufw enable

次にnat設定を行う

$ sudo vi /etc/ufw/before.rules
※ 「*filter」より前に下記の4行を追記する。
———————————————————————————
*nat
:PREROUTING ACCEPT [0:0]
-A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080
COMMIT
———————————————————————————
$ sudo ufw reload

wowhoneypot起動

$ sudo su wowhoneypot
$ python3 ./wowhoneypot.py
  • 思い出しながらコマンド書いたから一部抜けてるかも?
  • 簡単に構築できて、分かりやすい本家サイトがあるのは非常に嬉しい。

今後は

  • ログ解析
  • 可視化 kibanaとか使ってやろうかな?

という感じでやっていこう。