こんにちは。先週まで入院していたおいかわです。ちなみに来月も入院します。
シマンテック主催のWebサイトのセキュリティに関するセミナーに行ってきました。あの徳丸さんも登壇され、大変参考になる内容でした。その中でも参考になったポイントをいくつかご紹介したいと思います。
CMSやDBの管理コンソールを外部に公開してはいけないッ!
phpMyAdminやWordPressの管理画面などログイン機能があるからといって安心してはいけません。公開する必要がある場合は、IP制限+Basic認証が望ましいそうです。
弊社でもphpMyAdminはIP制限かけてますが、CMSまでは・・・。多数に公開するようなシステムの場合は難しい部分もあると思いますが、やれるところまではやっておいた方が良さそうです。ちなみにわたしはrobots.txtでクローラー避けもやってます!
パスワードのハッシュ化はSHA1だけではダメッ!
パスワードはハッシュ化してDBに格納していると思いますが、SHA1でハッシュ化しただけではけっこう簡単に解読されてしまう場合があります。セミナーではハッシュ化されたパスワードをGoogleで検索してみたら、元の文字列が表示されたサイトがヒットしていました。ここまであっさり解読されることもあるのかと震えが止まりませんでした。
最低でもSHA1+Saltでとのことでしたが、Blowfishあたりを使うのが望ましいのではないでしょうか。
プラットフォームやフレームワークの脆弱性対応はスピードが大事ッ!
脆弱性情報の公開から攻撃開始・増加に至る時間はどんどん短くなっているそうです。パッチが公開されたら適用するまでのスピードが重要です。もちろん、アプリケーションの動作確認も必要になるので確認環境を用意しておくのが良いですね。
もし、どうしても適用が難しい場合はサイトを停止するという決断も必要だそうです。実際にそのような対応をした企業もあるそうですが、そこまでは中々難しいところですね。
まずは基本の対策をッ!追加の防御策としてWAFも
まずは以下の様な基本の対策を行いましょう。
- パッチを当てる
- Webアプリの有名な脆弱性は脆弱性スキャナでチェックして潰しておく(せめて下記の3種類)
- SQLインジェクション
- クロスサイト・スクリプティング(XSS)
- クロスサイト・リクエスト・フォージェリ(CSRF)
- 既に公開済みのサイトで対策に時間がかかる場合はWAF(クラウドWAF)は有効
弊社でも定期的に脆弱性スキャン(OWASP ZAPを使用しています)とクラウドWAFを導入しています。OWASP ZAPについては下記の記事を参考にしてください!
まとめてみるとけっこう基本的なことのように見えますが、意外と対策できていないこともあるのではないでしょうか?この機会にぜひ見なおしてみてください。