『システムの機密保持の仕組み』 ○セキュリティを考える際には、以下の7つの層について順番に検討するのが通例です。 application Netscapeなど、ブラウザとしての機能。 presentation HTTPとして得られたデータをHTMLとしてparseして表示する。 session HTTPなどのひとつのリクエストを構成する。 protocol HTTP,FTPなど、OSより上のネットワークプロトコル transport TCP/IP,UDPなど、OSより下のネットワークプロトコル network EtherNet datalink CSMA/CD physical 10Base-Tなど。物理的な線。 □クライアント側のセキュリティに関して述べます。 1. physical /datalink/network/transport layer サーバとなるマシンをinternet側からはIP-reachableにしないように、 電通内のfirewallの内側に設置する必要がある。 こうして、電通内部とinternetの間にfirewall設置がされているのならば、 外部から通信をされたり、通信内容を間違って洩らしてしまうことはない。 すべての通信はTCP/IPで行なわれるので、 NTドメインの区切りやAppleTalkのZone設定などについてなどは無関係であり、 問題とならない。IP-reachableでありさえすればよい。 以上のように、physical/datalink/network/transport layerにおける安全性は、 電通内ネットワークの構築内容にのみ依存する。 外部からのアタックなどに対しては、 電通のfirewallによって防衛されることを期待する。 以上の点についてのセキュリティは確保されるものとする。 2. protocal layer 利用者のクライアントPCと、サーバとなるマシンの間では、 HTTPによる通信を行なう。 これは、電通内部のネットワークからのアクセスは信用できるものと判断し、 通信に使うプロトコルは通常のHTTP(平文による情報転送)によるものである。 電通内部のネットワーク経路上での情報の盗み見の可能性は無視する。 3. session layer 利用者のクライアントPCが、HTTPによりサーバと通信を行なおうとすると、 最初に、サーバーはクライアントに対して、HTTPにのっとって 各ユーザーに対して個別に発行されたログイン名とパスワードの入力を 求める。 クライアントがログイン名とパスワードを入力し、 サーバでこれが認証されると、サーバはユニークなセッションID-cookieを発行する。 以降は、このセッションID-cookieによってログインしたユーザーの状態遷移を管理し、 通信を行なう。 サーバは、 発行済みのセッションIDについては、そのセッションが認証された相手の User-AgentやソケットのIPアドレスを記憶しているので、 不正なセッションID-cookieや不正なUser-Agent,IPの組み合わせを持つ HTTPアクセスについては拒否する。 サーバ側では、内部的に45分間隔でSIGALRMを発行し、 30分以上経過しても次のアクセスされなかったセッション情報を削除・無効化する。 4. presentation layer 表示されるHTTPデータは、Pragma: no-cacheの属性を与えられているため、 表示される情報はディスクにキャッシュされないように指令を受ける。 このとき、クライアントやproxy-serverがHTTP既約に従って実装されたものであれば、 ユーザーがキャッシュに関する設定をどのようにしたかに関わらず、 データがキャッシュされることはない。 これにより、 クライアントPCのディスクのキャッシュディレクトリ内を検索することで、 キャッシュされた情報を認証なしで表示させるなどの行為を防ぐことができる。 5. application layer 画面に表示したまま席を放れてしまうことを想定し、 表示されたHTMLの内容は、60分間放置されると 自動的にlogin画面に戻る(reloadする)ような処理を加えてある。 以上により、クライアントアプリケーション上からは、 実用上十分なセキュリティを確保することが出来る。 ------------------------------------------------------------------------ □サーバ側のセキュリティに関して述べます。 サーバ側のセキュリティは、 通常のUNIX OSのセキュリティ(ログインパスワードによるセキュリティ) による。 すなわち、電通のfirewallによって防衛されることを第一に期待するものとし、 第二に、このサーバマシンに付けられたパスワードによって防衛されるものとする。 サーバ内でのデータのセキュリティは、 該当ディレクトリのアクセス権限を700とすることで、 他ユーザーからのアクセスを拒否する。 以上により、サーバプロセス単体としては十分なセキュリティを 確保することが出来る。 ------------------------------------------------------------------------ □サーバの設置位置 ネットワークトポロジー的には、 クライアントPCからIP-reachableな位置。 設置場所としては、 電源の誤操作やイタズラ、コーヒーをこぼすなどの、 物理的な障害の原因を防げるような、 オープンスペースとは隔離された安全な位置への設置が望ましい。 もしオープンスペースに設置せざるを得ないのであれば、 間違って電源を切らないように注意するなどを、 周囲で作業をする者や清掃担当者など全員に周知する必要がある。 ------------------------------------------------------------------------ > 保守・運用およびトラブル時の対応と責任体制 > ・平常時の点検作業は必要ないのか? cronにより定期的に、 ・テスト用のHTTPメッセージに答えるかどうか ・サーバプロセスが起動しているかどうか ・プロセスメモリは溢れていないか ・プロセスのCPU占有率は上がり過ぎていないか ・ディスクの空きはあるか ・データ用ディレクトリなどが書き込みが可能か 以上のチェック項目の検査を自動化できる。 もし障害発生を検知した場合には、 社内sendmailを経由し、 電子メールによって社外のサポート担当者に通知するように 設定することも可能。