Azure WebサイトのSSL 3.0問題

いろいろありましたがDavid Ebbo先生がAzure WebサイトでSSL 3.0をオフにする方法を用意してくれました。(正確にはオフではなく拒否ですが)

やりかたは2パターンあります。とりあえずSSL 3.0が有効な状態を見ときましょう。(curlでやるとクールだけどIEでとりあえず。)

image

image

TLSがOnだとそっち使っちゃうので一時的に。で、Azure Webサイトにつないで見ます。

image

こんな感じでSSL 3.0です。サイトは普通に見えます

image

 

1. Disable SSLv3 Extensionを使う

KuduにアクセスしてSite ExtensionsでDisable SSLv3をインストールします。

image

プレビューポータルだともう少し簡単です。(わざわざKuduにつながなくても良い)

image

簡単です。プレビューポータルだと再起動もされるので簡単ですね。ではブラウザでつないで見ましょう。

imageimage

403になりました。TLS有効にするとちゃんと見えます。

※ちなみにこのExtension有効にすると、Extension消しても403になっちゃう気がします。。

 

2. URLRewriteを使う

もう1つの方法として提示されたのがURLRewriteを使う方法です。Azure Webサイトのフロントエンドのロードバランサーが、クライアントがSSL 3.0を要求してきたときに X-Forwarded-SSLv30 という特別なリクエストヘッダを付与してくれるので、こちらを見て判断する方法です。

image

(TLSで接続している場合などはこのリクエストヘッダが付与されません)

以下のようなルールをWeb.configに追記します。

<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="Block SSL3.0" patternSyntax="Wildcard" stopProcessing="true">
<match url="*" />
<conditions>
<add input="{HTTP_X_FORWARDED_SSL30}" pattern="1" />
</conditions>
<action type="CustomResponse" statusCode="403" subStatusCode="900" statusReason="Forbidden" statusDescription="SSLv3 connections are forbidden by this site" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

こんな感じになります。

image

Web.configだけで設定のOn/Offできるので、こちらのほうが使い勝手がいいかもです。(但しステータスコードが例だと403になるだけなので注意 ※CustomErrorsとか設定してないとという話)

クラウドサービスや仮想マシンについては以前書いた通りです。

SSL 3.0が完全に使われてない技術であればWebサイトもホスト側ですぱっとオフにできるのでしょうけど、そうじゃないクライアントがあるのでサービス側としてはこのような形でエラーにさせる方向なのでしょうね。
完全にクライアントの問題とも言えませんがクライアント側で少なくともSSL3.0使わなければ良いはずですので、サーバー側でどうするかは状況によりけりということでしょうか。(少なくとも現状は)

あ、ちなみにモバイルサービスもKudu使えるはずなので、同じ手段で対策できるかと思います。

追記

URLRewriteでSSL3.0接続のときに403を返しつつカスタムエラーでユーザーにSSL3.0の無効化を促すようにする場合はこんな感じにすると良さそうです。

カスタムエラー用のCSHTML

@{
  Response.StatusCode = 403;
}
<!DOCTYPE html>
<html>
<body>
 <h1>SSL 3.0を無効にしてTLSを有効にしてください</h1>
</body>
</html>

Web.config

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <appSettings>
    <add key="webpages:Enabled" value="true" />
  </appSettings>
    <system.webServer>
    <modules runAllManagedModulesForAllRequests="true"/>
    <httpErrors errorMode="Custom">
      <remove statusCode="403" />
      <error statusCode="403" path="/403.cshtml" responseMode="ExecuteURL" />
    </httpErrors>
    <rewrite>
      <rules>
        <rule name="TestBlock" patternSyntax="Wildcard" stopProcessing="true">
    <match url="*" />
    <conditions>
   <add input="{HTTP_X_FORWARDED_SSL30}" pattern="1" />
    </conditions>
          <action type="CustomResponse" statusCode="403" subStatusCode="900" statusReason="Forbidden" statusDescription="SSLv3 connections are forbidden by this site" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>

結果

image

静的ファイルだとステータスコードが200に上書きされるようなので、CSHTMLで強制的に403を返すようにするようです。

たけぱらさんありがとうございます。

これでSSL3.0の時はエラー扱いにして且つユーザーに注意を促すことができますね。

※ ただ結局SSL3.0で繋いじゃってるので脆弱な状態といえば脆弱です。注意しましょう。まぁ注意を促したりするための対応なのでクライアント側で気を付けましょうね。ということです。

Azure Update補足

なんかScottGuのBlog見てたら補足できてなかったのがちらほらと。

適当に羅列しておきます。

  • Redis CacheのモニタリングとかAlertもプレビューポータルでどうぞ
  • DocumentDBもプレビューポータルでJSONドキュメントをみれるDocument Explorerやコレクション管理、パフォーマンスみたりできます
  • 通知ハブでBaidu Cloud Pushがサポート
    image
  • Azure AutomationでこまごまUpdate
    • PowerShellスクリプトの変換サポート
    • 単一のスクリプトがインポートされた場合、Runbookに変換してくれるようです
      image
    • ※元スクリプト、UTF-8じゃなかったから文字化けしてるけどworkflowでラップされた感じになりました。これで簡単にAutomationできますね
    • Runbookのサンプルをギャラリーから選べるようになりました
      imageimage
    • たとえばVMを止めるとかだと
      image
      Stop Azure Virtual Machine using Azure Automation Runbookを選択して
      image
      中身を確認して
      image
      発行先のオートメーションアカウントやRunbook名を指定するだけです。簡単!
      Runbook実行時に必要なインスタンス名とかサブスクリプション等はアセットで登録しておけばOKですね。(決め打ちなら発行時に入力できますけど)
    • Script Center も参考に(英語にしないと表示されないかも)
    • スケジューリングも1時間間隔で実行できるようになったので、だいぶ融通がきくようになりました
      image

そんな感じで今日もAzureは表に出ないところもUpdateされてました。

AzureのAntimalware対応

ちょっと前にAzure用Microsoft AntimalwareがGAしました。ので今日はその辺さらっと見ておきます。

Microsoft Antimalwareはそのまんま名前の通りOSをウィルスだったり不正なアプリから保護してくれるアプリです。Azure対応ということで、クラウドサービスと仮想マシンで使うことができます。

詳細はこちらのホワイトペーパーをどうぞ(直リン) → Microsoft Antimalware white paper

GA当初(10月3日)、ホワイトペーパーをざっとみてクラウドサービスの場合はSDK使うのかなー(と図を見て)と思ったのですがそんなことはなかったです。結局、クラウドサービスも仮想マシンもAzure PowerShellを使って構成する感じでした。

続きを読む →

Azure Update (2014/10/03)

いろいろきました。例によって適当にピックアップしておきます。

  • インスタンスレベルのパブリック(グローバル)IPアドレス付与がGA
    • General Availability: Instance-Level Public IPs
    • インスタンス直通するグローバルIPアドレスを付与できる機能がGAしました。
    • FTPとかAlwaysOnとか、インスタンスと直接通信しないといけない機能やサービスにはぴったりのあれです
    • 対象はクラウドサービスと仮想マシン。
    • ちなみにGAしたから12月1日以降、GA価格が適用されます。
    • 仮想マシンでの価格はこちら → Virtual Machine Pricing
  • サービスバス価格改定
  • Microsoft AntimalwareがGA
  • Azureのリソースでタグが使えるように
    • Organize your Azure resources with tags
    • プレビューポータルのほうではリソースマネージメントが行えますが、リソースに対してタグを付けて管理できるようになりました。
    • プレビューポータル内およびREST APIかAzure PowerShellで管理できます(プレビューポータル内では今のところ見るだけっぽいけど)
    • image
    • image
    • ロールベースの管理とあわせて、だいぶ論理的に管理できる土台ができてきましたね。やっと感。
  • Azure Site RecoveryがいろいろGAしたりUpdate
  • Azure SQL Databaseのクォータポリシーの変更
    • Azure SQL Database modified server quota policy
    • DTUに対するクォータのポリシーが変わったのかな。(サーバーあたりの)
    • 難しいので詳細はムッシュとかぺんぺんししょーに聞きましょう。あと明日のSQL Server収穫祭とかに参加するといいのかもしれません
  • Azure SQL Database Elastic Scale(Preview)

というわけで今日のアップデートでした。

Windows 10 Technical Preview

というわけでゲットできるようになりました。

よい子の皆さんは使用許諾ちゃんと読んで使いましょう。(れいさ氏によるとスクリーンショット公開するなとか極端に変なことは書いてないっぽいけど)

ちなみにMSDNにはEnterprise Editionと、Windows Server Technical Previewもあるようです。Windows ServerのほうはUI周りはさておき細かい機能Upが見つけられない(詳しくない)ので保留です。

さてゲットしたらまずはインストールですね。お手軽に試すなら仮想環境がいいです。Hyper-Vでのインストール方法とかはぎたぱそ先生が書いてますのでそちらをどうぞ。

基本は英語版いれるといいかと思います。最初の言語選択は英語しかもちろんありませんがLocationをJapaneseにするとIMEや日本語キーボードが選べますので、こちらで特に問題ありません。(基本!)

ちなみにx86/x64ありますけど、ARM版はありません。今のところ。残念!

続きを読む →

Windows 10

Windows 9とかWindows THとか言われてたやつはWindows 10でした。プギャー

さて、詳しい話はこの辺を参照。

テクニカルプレビューの入手は明日(現地の10月1日)のようです。こちらを要チェック。

 

image
回復ドライブ作成は済ませたか?ダウンロードエラーにならないようにお祈りは?部屋の隅でホコリかぶってるPC探してきてインストールする心の準備はOK?

新機能まわりの様子は動画のほうがわかりやすいのでこちらを参照

 

 

続きを読む →

仮想マシンにDシリーズが追加

唐突ですが、仮想マシンとクラウドサービスにDシリーズが追加されました。

既に試してパフォーマンス測ったりしてる人もいます。さすがムッシュ。

これまでのAシリーズとの違いは今までテンポラリとして使っていたDドライブがSSDになったというのと、CPUの性能が60%近くUpしたというところが目玉です。

※一部ではAシリーズのディスクとCPU性能が制限されすぎなんじゃ疑惑もありますが。

ちなみに今のところStandardだけなのと、西日本は使えますけど東日本は使えません☆

Windows Phone 8.1 Updateでロック画面が表示される際にResuming…

Windows Phone 8.1 UpdateあてるとLive Lock Screenとか使えます。ロックスクリーンの見た目変えられるアレですね。
※まだPreviewとかでしたっけ

あれ一度でも有効にすると、以下のような問題が発生するっぽいです。

  • Live LockScreenが有効な場合
    • ロック解除後、画面はちゃんとでるけどしばらく操作できない(と思う)
  • Live LockScreenをやめた場合(アンインストールとか)
    • 画面が消えてる状態(Peekとか出てる状態)からロック画面だすのにResumingになる(1秒とか数秒、ロック画面でるのに待たされる)

という感じの症状がでます。やれやれ。で、解除する方法ですが某氏によるとKid’s Cornerを有効にしてから無効にするという手順を踏めばいいみたいです。

なんでKid’s Corner?というところですが、Kid’s Corner設定時にLive Lock Screenのオフが求められるんですね。※一度Live Lock Screenを有効化しちゃうと内部的にはずっとONのままなのを、この時にオフにできる

というわけで、設定周りの実装漏れな気がしないでもないですが、まぁ一応直せるということで。