生存報告

IT関連・セキュリティ・娯楽のエントリをたまに書いて、存命であることを報告するページ。

VirtualBoxでゲストOS同士を通信させる方法

最近やった検証で、VirtualBoxのゲストOS同士で通信させる必要があったので調べて設定したのでそのメモ。
なんか調べたら内部ネットワークに設定するとか色々出てきて、どれが目的に合うか分からなかったので、今回やった方法を残しておく。

ゲストOSは2台で、WindowsLinuxが各1台。
目的としてはゲストOS同士が通信できればそれで良い。インターネット接続は必須でない。

設定方法は、各ゲストOSのネットワーク設定で、それぞれ以下に設定する。

  • 割り当て:ホストオンリーアダプタ
  • 名前:VirtualBox Host-Only Ethernet Adapter
  • プロミスキャスモード:許可


あとはDHCPIPアドレスが割り振られた。

VirtualBoxVMWareよりもネットワークの設定項目が多くてややこしく感じた。でも慣れの問題かもしれない。

3DESの扱いが変わってきた

3DESに関して最近確認したことなどを記述します。

システムを運用する方、脆弱性を調査する方などに参考にしていただければ。

背景

2016年8月に、3DESおよび64ビットのブロック暗号に対するSWEET32攻撃が報告されました。 このOpenSSLのブログでは、3DESの強度の評価を“HIGH”から“MEDIUM”に下げるとアナウンスされています。

脆弱性スキャナの対応

脆弱性スキャナの1つであるNessusでも評価の変更があったようで、2016年12月頃から3DESを中程度の強度の暗号として挙げるようになりました。

f:id:tosebro:20161226011450p:plain

Here is the list of medium strength SSL ciphers supported by the remote server :

  Medium Strength Ciphers (> 64-bit and < 112-bit key)

    TLSv1
      EDH-RSA-DES-CBC3-SHA         Kx=DH          Au=RSA      Enc=3DES-CBC(168)        Mac=SHA1   
      ECDHE-RSA-DES-CBC3-SHA       Kx=ECDH        Au=RSA      Enc=3DES-CBC(168)        Mac=SHA1   
      DES-CBC3-SHA                 Kx=RSA         Au=RSA      Enc=3DES-CBC(168)        Mac=SHA1   

上記のように3DESがMedium Strength Ciphers(CVSS 4.3)として検出されています。 説明文では「< 112-bit」と書いているのに3DESが挙がってきたので、ロジックが変わったのか、それとも誤検知?と思って調べてみると、3DESを決め打ちでMEDIUMとしていました。 以下、該当ファイル(ssl_funcs.inc)の抜粋です。

  # 3DES to Medium because of CVE-2016-2183.
  if ("Enc=3DES-CBC" >< desc)
        return CIPHER_STRENGTH_MEDIUM;

CVE-2016-2183はSWEET32のCVEなので、これを受けての変更であることが分かります。 なおNessusの該当プラグインの更新日付は2015年だったので、脆弱性の検出ロジック自体に変更はありませんでした。

その他のスキャナはというと、よくSSL/TLSのチェックに使われるQualysのSSL Server Testでは、本エントリの執筆時点で脆弱とはしていませんでした(適当なサーバのスキャン結果を見て確認)。sslscanでは3DESがハイライトされるようになりました。

他に影響しそうなものとしてはASV Scanなどがあります。一概には言えませんが、仮に現時点でPass判定でも近い将来はFail判定になるでしょう。

なので、現行のシステムは、計画的に3DESからAES等への移行をすすめる必要があると考えています。

3DESを無効化したときの影響

暗号スイートを無効化すると気になるのは影響範囲です。古いブラウザだと接続できなくなる可能性があります。 手元の環境と前述のQualys SSL Server Testでシミュレーションしてみました。

環境

設定ファイルも抜粋しておきます。

SSLProtocol TLSv1.2
SSLCipherSuite HIGH:!DH:!3DES

この状態で、有効な暗号スイートを確認しました。

  Supported Server Cipher(s):
Preferred TLSv1.2  256 bits  ECDHE-RSA-AES256-GCM-SHA384   Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  ECDHE-RSA-AES256-SHA384       Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  ECDHE-RSA-AES256-SHA          Curve P-256 DHE 256
Accepted  TLSv1.2  256 bits  AES256-GCM-SHA384            
Accepted  TLSv1.2  256 bits  AES256-SHA256                
Accepted  TLSv1.2  256 bits  AES256-SHA                   
Accepted  TLSv1.2  256 bits  CAMELLIA256-SHA              
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-GCM-SHA256   Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-SHA256       Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  ECDHE-RSA-AES128-SHA          Curve P-256 DHE 256
Accepted  TLSv1.2  128 bits  AES128-GCM-SHA256            
Accepted  TLSv1.2  128 bits  AES128-SHA256                
Accepted  TLSv1.2  128 bits  AES128-SHA                   
Accepted  TLSv1.2  128 bits  CAMELLIA128-SHA  

結果

結果は以下のようになりました。

  • PCは、IEは最新版のみ、その他のブラウザは問題なさそう。
  • スマホは、iOSは問題なさそう、Androidは4.4未満は接続不可。
  • ガラケーは接続不可。そもそもTLSv1.0までしか対応していない。

サイズが大きいですが結果のスクリーンショットを貼っておきます。

f:id:tosebro:20161226020444p:plain:w300

条件をゆるくしてTLSv1.0を有効にして試すと、IEAndroidの古いバージョンでも接続可能という結果になりました。 でもTLSの1.0は1.0でPCI DSSで引っかかったりしているので、また別の問題が……

まとめ

3DESに関する暗号強度の評価の変化、脆弱性スキャナによる評価について調査しました。また、無効化した場合の影響範囲について調査しました。

暗号アルゴリズムの危殆化はずっとついて回る問題なので、面倒ですが継続的に追っていくしかないですね。

その他

CRYPTRECはそろそろ更新されるんだろうか。

Burp Suiteの文字化け対策(試作2)

この前HDDを片付けていたら、昔作ったBurp SuiteのExtensionを発掘したのでアップしました。

github.com

概要

Proxy HistoryのComment列にタイトルを表示する拡張です。


Burp SuiteのUIはLatin1(ISO 8859-1)で作られているようで、日本語などは文字化けします。
この拡張ではワークアラウンドとして、Proxy History内のページのタイトルをComment列に表示しています。

スクリーンショット

https://raw.githubusercontent.com/tosebro/JPtitle/master/screenshots/JPtitle-01.png

まあ、これで少しでも使いやすくなれば。

Burp suiteからsqlmapコマンドを生成する拡張

タイトルの通りのものを作ったので公開しておきます。
すでにGithubに上げているので、ここでは簡単な説明だけ。

概要

タイトルの通り、Burp suiteからsqlmapコマンドを生成する拡張です。

少ない手順でsqlmapを実行できます。
Burp suiteにはSQLiPyなど優秀な拡張があるんですが、どうしてもBurpが重い&不安定になるので、コマンドラインでsqlmapしたいという人向けです。

きょうびSQLインジェクションなんか持ってるサイトはすかさずこいつで・・・

使い方

Burp suiteのコンテキストメニューから「Copy sqlmap PoC to Clipboard」を選択します。
以下のスクリーンショット参考。

https://raw.githubusercontent.com/tosebro/SqlPoC/master/screenshots/sqlpoc_01.png

操作中のHTTPリクエストに対応するsqlmapコマンドがクリップボードにコピーされます。

例として、リクエストとコマンドを載せます。

HTTPリクエスト:

POST /sqli/sqlitest.php HTTP/1.1
Host: victim.example.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ja,en;q=0.5
Accept-Encoding: gzip, deflate
Referer: http://victim.example.com/sqli/sqlitest.php
Connection: close
Content-Type: application/x-www-form-urlencoded
Content-Length: 7

id=mob1

コマンド:

python sqlmap.py -u "http://victim.example.com:80/sqli/sqlitest.php" --cookie="" --referer="http://victim.example.com/sqli/sqlitest.php" --headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: ja,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nContent-Type: application/x-www-form-urlencoded" --host="victim.example.com" --user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0" --all --data="id=mob1"

テストするパラメータを指定したい場合は、リクエストのパラメータ名部分を選択した上でコマンドを生成します。
たとえばパラメータ'id'なら以下のようになります。( -p オプションが付く)

python sqlmap.py -u "http://victim.example.com:80/sqli/sqlitest.php" --cookie="" --referer="http://victim.example.com/sqli/sqlitest.php" --headers="Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8\r\nAccept-Language: ja,en;q=0.5\r\nAccept-Encoding: gzip, deflate\r\nConnection: close\r\nContent-Type: application/x-www-form-urlencoded" --host="victim.example.com" --user-agent="Mozilla/5.0 (Windows NT 10.0; WOW64; rv:43.0) Gecko/20100101 Firefox/43.0" --all --data="id=mob1" -p id

コピーしたら、sqlmapのディレクトリ上でコマンドラインから実行してください。

ダウンロード

Githubに置きました。

github.com

その他

素直に sqlmap -r を使うのもいいと思います。