これまで多くのWebサイトやシステムを脆弱性診断してきましたが、そのシステムの多くで共通して発見される脆弱性があります。
セキュリティ診断で発見される脆弱性 TOP3
今回は、この共通して発見される脆弱性 TOP3をご覧ください。
日本の企業ではIE9など古いWebブラウザをサポート対象としていることに起因していると思われるのが「HTTPS接続プロトコルの暗号方式が弱い」という問題です。
SSLv2,SSLv3は無効にしていても、暗号化プロトコルで暗号強度の弱いDES/3DESなどが使用されているままということがあります。
この問題は、WebアプリケーションではなくHTTPサーバーの設定によるものです。
Webアプリケーションの脆弱性は、設計や構成により様々ですが、DoSやXSSの対策漏れはHTTPサーバーの設定で防げるものがあります。
構成しているインフラにもよりますが、サーバーにSSH/SFTP接続するための設定が初期設定のままで攻撃を受けやすくなっている場合があります。
セキュリティ診断では、その他多くの脆弱性(10万パターン以上)が発見されますが、このTOP3は、多くのセキュリティ診断で発見される項目です。
このTOP3は、対策方法が見つかっているものであり、サーバーを新規に構築したり、いま公開している方は、設定の確認をすることをおすすめします。
発見される脆弱性TOP3の対策
ここでは、発見される脆弱性の標準的な対応策をご紹介いたします。
他の方法で対策も可能ですし、環境によって設定内容も変わりますので、対応が必要な環境を確認して対策を実施してください。
脆弱なHTTPS通信を無効にする
この設定は、別記事でも紹介していますが、HTTPSの通信パラメータを設定することで対応ができます。
Apache httpdを使用している環境では、ssl.confなどHTTPS通信の設定で、次のパラメータを変更します。
# SSL Engine Switch: SSLEngine on # SSL Protocol support: SSLProtocol -ALL -SSLv2 -SSLv3 -TLSv1 +TLSv1.1 +TLSv1.2 # SSL Cipher Suite: SSLHonorCipherOrder ON SSLCipherSuite AES256:CAMELLIA256:!aNULL:!eNULL:!NULL:!COMPLEMENTOFALL:!EXP:!MEDIUM:!LOW:!SSLv2:!DH Header always set Strict-Transport-Security "max-age=315360000; includeSubDomains"
最近のOSパッケージでは、SSLv2,SSLv3は無効化されていますが、その他のパラメータの調整がされていない場合があります。
上記パラメータで最低限の対策ができます。
DoSやXSS対策漏れや基本的な設定
DoSやXSSの対策として、一般的な対策は次のようなものになります。
ここではパラメータのそれぞれの内容は割愛します。
# サーバー情報の隠蔽 ServerTokens Prod ServerSignature Off # TRACE/TRACK メソッドの無効化 TraceEnable Off # RequestReadTimeout header=10 body=30 SetEnv proxy-nokeepalive 1 FileETag None # 使用している言語情報の秘匿 Header unset "X-Powered-By" # httpoxy disabled RequestHeader unset Proxy # Drop the Range header when more than 5 ranges. # CVE-2011-3192 SetEnvIf Range (?:,.*?){5,5} bad-range=1 RequestHeader unset Range env=bad-range # We always drop Request-Range; as this is a legacy # dating back to MSIE3 and Netscape 2 and 3. RequestHeader unset Request-Range # optional logging. CustomLog logs/range-CVE-2011-3192.log common env=bad-range # clickjacking の対策 Header append X-Frame-Options SAMEORIGIN # XSS の対策 Header set X-XSS-Protection "1; mode=block" Header set X-Content-Type-Options nosniff # DoS の対策 LimitRequestBody 10485760 LimitRequestFields 200 # slowloris の対策 RequestReadTimeout header=20-40,MinRate=500 body=20,MinRate=500
SSH接続の設定に脆弱性
サーバーをメンテナンスするために必須のSSH/SFTPで使用する暗号方式・ハッシュアルゴリズムで問題の確認されてる設定を除外するには「CentOS7 SSHデーモンのセキュリティ強化」をご覧ください。
この設定により、問題のあるCBCやRC4の暗号方式、MD5のハッシュアルゴリズムを無効にすることができます。
インターネット公開のサーバーの健康(安全)を保つために
これまでセキュリティ診断で発見される脆弱性TOP3と基本的な対策をご紹介いたしました。
代表的なものであり、この対策がすべてではありません。電子メールシステムやFirewall設定などで他の脆弱性が発見されることも多くあります。
インターネットに公開しているサーバーをお持ちの方は、ぜひ設定の見直しと対策をおすすめいたします。
レンタルサーバーで対策ができない、難しいという場合にも違った方法で対策することもできます。
また、インターネットに公開しているサーバーをお持ちの方で、不安がある方は「簡易セキュリティ診断」をご用意しております。