Webサイトで必要なセキュリティ対策まとめ

現在職場でWebサイトリニューアルプロジェクトのPMをさせてもらっているんですが、ちょっとしたきっかけで
「セキュリティ面も全面的にやってみないか?」
という話になったので、色々調べたことをまとめます。

Webサイトを開発を発注する企業側の立場

まず僕の立場なのですが、今回は開発する側ではなく、発注する企業側のPMです。
なのでセキュリティといってもソースコードがうんぬん…
って話ではなく、運営も含め、総合的にどのようにセキュリティを守っていくのか
という視点で書いています。

経営者が求めるセキュリティ

経営者が求めるセキュリティとは、普通であれば、「100%大丈夫」という状態ではないでしょうか。
つまり、

  • 外部から攻撃を受けても一切情報が漏洩しない
  • 外部から攻撃を受けてもサービスが停止しない
  • サーバーが壊れても稼働し続ける(もしくはすぐに復旧する)
  • Webサイトそのものにバグが存在しない
  • 内部から情報を盗まれる心配がない

という状態を求められています。まさに完璧状態ですね。

今回セキュリティ対策として取り入れる予定の項目

上記経営者が求めるセキュリティに近づけるために、今回実施する予定なのが以下の項目。

ペネトレーションテスト

簡単にいえばセキュリティテスト。実際にWebサイトにハッキングを試みて問題がないかテストする。
テストには3種類あり、リモートテスト、オンサイトテスト、ソースコードテストがある
今回行うのはリモートテストとオンサイトテスト

24時間監視サービス

名前通り、24時間サーバーの死活監視、不正侵入などの痕跡がないかの監視などを行ってくれます。どこまでやってくれるかは契約によるのですが、今回は機器が壊れた際の入れ替えなどもお願いする予定。

IPS(不正侵入防御システム)

不正なアクセスやセキュリティホールがないかを検知したり防ぐ機器。
24時間監視サービスと併用することで威力を発揮する。導入するだけではなく、きちんと更新していかないと意味がない。

Webサイト開発会社との保守契約

これは発注側のスキルにもよりますが、今回はかなり難易度の高いシステムのため、保守を開発会社に依頼します。

ISMS情報セキュリティマネジメントシステム

社内全体のセキュリティモラルの向上のために、ISMSを取得することにしました。ISMSとは、情報資産全体を守るためのマネジメントシステムで、ISO27001。国際的に認められる認証です。
範囲を決めることもできますが、今回は会社丸ごと認証を取ることにします。

サーバーなどの冗長化構成

セキュリティは守るだけではなく、失わないことも必要。
そのため、サーバーやDB、IPSなど、全ての機器を2台以上で構成し、1台が壊れてももう1代が稼働するように構成します。

逆にセキュリティ対策として取り入れない項目

やればセキュリティは確かにアップするかもしれないが、コストが高すぎたり他の面で補えたりなど、やらないことにしたリスト。取り入れない理由もちょっと書いてます。

WAF(ウェブアプリケーションファイアウォール

Webサイトをアプリケーションレベルで監視してくれる機器。セキュリティとしては高くなるが、どうしても作成するアプリケーションにまで影響が及ぶため、今回導入するのは見送り。

社内にセキュリティの部署の立ち上げ

これはもう単純にコストの面で断念。本来はセキュリティをきちんと見る部署がほしいところではある

最終的なセキュリティ対策まとめ

システム的な問題に対しては

で問題の発生を未然に防ぎ、発生しても被害を最小限にとどめる
さらに

によって、サービスの停止や消失を防ぎます。
また、内部の問題も考えられるため、

することによって、セキュリティに対する意識を高めます。
以上が今回セキュリティ対策として実施することのまとめです。

最後に

実際のところ、Webサイトはきちんと知識を持って運用することで情報の漏えいはほぼ防ぐことができるはずです。
それでも情報漏洩事件が頻繁に起こるのは、「人」に問題があるからだと思います。
運用する人もそうですが、利用する人・関係する人が適当な態度でセキュリティに向き合った結果、情報が漏洩しているということがほとんどです。Security NEXTなどに載っている事件もほとんどが人の問題ですし、ジャパネットの事件など典型的なものだと思います。
これらの事実にもきちんと目を向け、正しくコストに見合うセキュリティ対策を実施していければ、Webサイトも企業も守られていくのではないかと思います。

参考

Security NEXT
http://www.security-next.com/

追記

久々に長文書きました。
やっぱり定期的にアウトプットしないと書けなくなりますね。よくよく読むと日本語変だな…

TracLightning 2.2.4rc1にバージョンアップ!ついでにCSS調整

TracLightningが2.2にバージョンアップしていたことにいまさら気づき、早速バージョンアップしてみた。
2009年5月9日時点で安定版は2.2.3なのだけど、せっかく2.2.4rc1がリリースされてたので2.2.4rc1にしました。
普段通りインストールしてバージョンアップは完了。

今回のバージョンアップで速度が2倍になったらしいので早速触ってみると・・・

おお!確かに早い!

ちょっと感動しました。
ただ、文字サイズとかCSSをいじっていたのだけどそれが初期化されて文字が小さかったので、CSSを編集してみることに。
以前のCSSのあった場所

C:\TracLight\python\Lib\site-packages\Trac-0.11.2.1.ja1-py2.5.egg\trac\htdocs\css

ここはどうやら違うらしい。
あ、Tracが0.11.4になったらしいので見てみる

C:\TracLight\python\Lib\site-packages\Trac-0.11.4.ja1-py2.5.egg\trac\htdocs\css

あれ?ここのCSSでも反映されない…
色々調べた結果、↓のディレクトリのCSSが反映されているらしい

C:\TracLight\CollabNetSVN\httpd\htdocs\trac_common\css

なんとか文字の調整もできた。引き続き使うとしよう。

Windows環境のTracプロジェクトの移行

とりあえず現状コマンドプロンプトとかワケワカメな状態でやってるのでおかしいかもしれない。
メモとして書いといてそのうち新しく書きなおす予定。

環境

WindowsXP
TracLightning 2.1
Trac 0.11
Subversion利用(TortoiseSVN

Tracプロジェクトのバックアップ方法

コマンドプロンプト

trac-admin C:\TracLight\projects\trac\Project hotcopy D:backup

って感じでとりあえずDドライブ直下にbackupってフォルダが作成されたので
バックアップ自体は成功。

だけど今のところこれをうまくリストアできていない

SVNリポジトリのバックアップ

SVNリポジトリのバックアップ手順は、コマンドプロンプト

svnadmin dump C:\TracLight\projects\svn\Project > project.dmp

と入力してエンター
すると
C:TracLight\bin\project.dmpというファイルが作成されている
新しいパソコンにデータ持ってくと気も同じディレクトリに保存

SVNリポジトリのリストア

project.dmpを新しいプロジェクトに組み込む
コマンドプロンプト

svnadmin load C:\TracLight\projects\svn\NewProject < project.dmp

と入力してエンター
しばらく待ってたら組み込み完了する

でもこのままだとTracにアクセスするとエラーが出ているはずなので。
またコマンドプロンプト

cd C:\TracLight\projects\trac

と入力して上記の場所に移動
さらに

trac-admin NewProject resync

と入力すると、リポジトリとプロジェクトが関連付けされる。
これでリポジトリのリストア完了

Tracのプロジェクトの以降のやり方がわからん…Windows版の解説してるサイトないのかなぁ?

TracのCSSはどこをいじるのか

Tracのデザインを変更しようと思って色々やってたんだが、Site_css.csとかのファイルいじっても変わらないし、ググって見つけたサイト見ても全然わからなかったが、やっと判明
TracLightning2.1でCドライブに入れている状態だと
C:\TracLight\python\Lib\site-packages\Trac-0.11.2.1.ja1-py2.5.egg\trac\htdocs\css\trac.css
が読み込まれているらしい。
見つけるのに2時間かかったよ…

Tracの導入

いよいよ大型プロジェクトが動くことになるので、Excelでの管理からTracSubversionを使った管理へと切り替えることになった。というか切り替えることにした。

う〜む、Tracはすごいな。
今までExcelでプロジェクト管理やバージョン管理やってたのが嘘みたいだよ。

明日にはTrac用のサーバーを立てる予定。
うまくいくかなぁ…