【セキュリティ編】この広告は、90日以上更新していないブログに表示しています。セキュリティTweetこんにちは、Cluexの高橋です。Labsで移行前のサーバーをテストしてみたところ、C判定が出てしまったので、nginxの設定も全体的に見直してみました。www.ssllabs.comということで今回はnginxの設定に関してセキュリティ関連でやっておくべき設定集をまとめました。nginxのバージョン情報を隠すnginxのバーション情報を隠蔽します。~~}SSL通信に使用するプロトコルを指定するSSLv2やSSLv3はダウングレード攻撃やPOODLEなどへの脆弱性があるのでTLSのみ許可します。~~}暗号化スイートの設定SSLの暗号化にする暗号化スイートを明示的に指定し、クライアントサイドで指定した暗号化をしないようにすることで、通信をよりセキュアにすることができます。ちなみにssl_ciphersの設定方法としては、「:」をデリミタとして使用し、「!」をプレフィックスでつけることで除外対象となります。詳細な暗号化スイートの設定内容はこちらのサイトを参考にさせていただきました。Raymii.orgおすすめの設定がこちら。対応したいと言う方にはこちらの設定がおすすめとのことですが、SSL3.0などを使用できない設定にしているので今回は特にIE6を気にする必要はないかと思います。先ほどのサーバー側で指定した暗号化スイートを優先して使用するようにします。Securityヘッダを返すことで常にHTTPSで通信を行うようにし、中間者攻撃を防ぎます。Nginxのngx_http_headers_moduleが必要になります。includeSubDomains;';developer.mozilla.orgちなみにpreloadオプションを使用したい場合は、こちらでドメインを登録しておくと宜しいかと思います。Submissionこちらに登録するには下記の要件を満たす必要があります。to).preloadを指定する場合はこんな感じです。includeSubDomains;preload';DH鍵交換時のKeyの強化TLSプロトコルで採用されているDiffie-Hellman鍵交換は512bitもしくは1024bit以下のDHパラメータにおいてLogjam攻撃を受ける可能性があり、これを防ぐにはDHパラメータに2048bitのものを使用することが望ましいとされています。Firefoxなどの主要なブラウザでは「最低でも」1024ビット以上のものを使用するよう推奨しており、できれば2048bitのものを独自生成して使用するのが好ましいかと思います。一般的なwebサイトでは2048bitもしくは4096bitでpemを作っておくといいようです。4096こちらがnginxのconfファイルに追加する内容。Protocol)はSSL/TLS通信の時に証明書が失効していないかを確認するために使用されています。通常はSSL通信を行う際はクライアント側がこのOSCPを使用してサーバー証明書の正当性を確認する必要がありますが、サーバー側で事前にこの処理を行うことでクライアント側で行う必要がなくなるのでHTTPS通信の開始を高速化できます。具体的にはOCSPステープリングによってクライアント側ではなくサーバー側でOCSPによるサーバー署名書の確認を行い、その結果をクライアントへのレスポンスと一緒に送るようにすることで、これを実現しています。resolverディレクティブにて指定する必要があります。googleのパブリックDNSサーバーが使用されることが多いようです。X-Frame-OptionsレスポンスヘッダにX-Frame-Optionsを設定することでブラウザがiframeなどの内部に自身のサイトを表示を許可するかを設定できます。DENYもしくはSAMEORIGINを指定することで自分のサイトのコンテンツが他のサイトに埋め込まれないように設定でき、クリックジャッキング攻撃を防ぐことができます。mode=block";X-Content-Type-OptionsContent-Typeに一致しない処理は行わないようにさせることでXSSなどを防ぎます。ファイルでも、その中にjavascriptのソースがあるとブラウザによって実行される可能性があります。当時の設定では上記の幾つかはまだ設定していないものもあるのでA+の評価をとることができなかったので、今回あげたものも含めてさらにサーバー周りを強化していきたいなと思います。Generatorがあるので、そちらで基本的な設定を確認できるので、気になる方はお使いになってみるいいかと思います。【セキュリティ編】Tweet広告を非表示にする関連記事2018-12-18Dependabotを導入して依存パッケージやDockerfileのベースイメージのアップデートを定...こんにちは、Webチームの柴山(@shikeapp0909)です。今回は、...2017-02-13GrafanaでZabbix/CloudWatchのメトリクス監視を一元化する統合監視ツールZabbixとマルチアカウントなAWSのCloudWatchのメ...2016-12-15男もすなるsshといふものを、我もしてみむとて解説するなりこんにちは。エンジニアでインターンをしている村田です。S3の導入こんにちは。エンジニアの志村です。最近暑くて参りますね...。2Wantedlyも更新中です!月別アーカイブエンジニア採用情報はてなブログをはじめよう!cluex-developersさんは、はてなブログを使っています。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。