4.3 不正侵入対策

4.3.1 オフィス外からの直接アクセスを許可する場合

まずは、オフィス情報システムをどこまでリモートからも利用可能にするかを明確にしなければなりません。その上で、利用範囲をできるだけ絞った実現方式を採用するのが、セキュリティ上は望まれます。実現方式の選択の一例は下記の通りです。

・ 配送や集金などの業務に特化したSFAの場合には、NAT(2.1.2(2)参照)でその業務システムが実行されているサーバーにだけ接続可能にする
SOHOなどでオフィス内にいるのと同じ様に働く場合は、VPN(2.2.1参照)でオフィス内のネットワークの1端末としてアクセスすることを可能にする
・ 裁量労働などで、時間と場所に縛られずに仕事をする場合には、リモートデスクトップ(2.4.1参照)でオフィスのパソコンをリモートから使用可能にする

 後者になるほどリモートからの利用範囲が広がります。同時に危険性が増しますので、注意深いセキュリティ対策が必要になります。
 なお、VPNの方式は主としてクライアントのソフトウェアとの整合性で選択することになります。
 
実際にシステムを開発する場合には、セキュリティ面だけでなく、開発コスト、使い勝手、将来性を総合的に判断して実現方式を決定する必要があります。この中で、セキュリティ対策にどの程度のウェイトを置くかは、重要な経営判断です。どの方式においても、次のようなセキュリティ対策が必要になります。

・ ファイアウォールやVPNサーバー、オフィス内サーバーのOSやアプリケーションプログラムにセキュリティホールが無いこと(少なくとも見つかっているセキュリティホールは塞がっていること)
・ システム全体で整合性が取れ安全性が高いユーザー認証方式(4.3.3参照)を採用すること
ファイアウォール(2.3.5参照)の設定を正確に行い、不必要な通信を通さないこと
・ ウィルスチェックをこまめに行うこと
・ セキュリティ対策組織体制確立、マニュアルの作成、教育の実施、など
 

コース (A  B  C  D  E)



4.3.2 Webサーバーによりリモートアクセスを実現する場合

Webサーバーを利用したリモートアクセス用業務サーバーは、SFAや顧客サービス支援など社外での活動をIT化する時に広く用いられていますが、ここでまず注意しなければならないことは、Webサーバーに組み込むアプリケーションプログラムのセキュリティ面での脆弱性です。リモートアクセス利用者はブラウザの画面にしたがって、必要なパラメータを入力し、アプリケーションプログラムは、このパラメータによりデータベースを参照して処理を行いますが、このとき、パラメータにプログラム文やOSのコマンドを埋め込むことにより次のような脅威にさらされます。
 
@ データベースを改竄、A不正に情報を入手、B後からこの画面にアクセスした人から情報を盗む、Cコンピュータをいろいろ操作

 ここでの具体的手法としては次のような手法があります。

@

JAVAスクリプトを埋め込んで、後からこの画面にアクセスした人の情報を盗み出すXSS(Cross Site Scripting)

A SQL(Structured Query Language:データベース問い合わせ言語)文を埋め込んで、データベースを改竄したり、不正に情報を入手したりするSQLインジェクション
B OSのコマンドを埋め込んでコンピュータを操作するOSコマンドインジェクション

  これを防ぐためには、入力されたパラメータのパターンをチェックし、プログラム文やOSのコマンドでないことを確認することが必要です。これはプログラムを書く人が注意すべきことですが、プログラム開発を外部に発注するときには、セキュリティホールの無いプログラムにすることを要求することも必要です。
 
この他、URLを操作して公開されていないページを読み出すような脅威もあります。公開されていない情報をWebサーバーに残しておくことは危険です。
 
また、ユーザー認証に安全性の高い方式を採用し、認証情報はSSL(7.4.2(2)参照)により暗号化することも重要なポイントです。さらに、データベースアクセス時に情報の種別ごとのアクセス権を確認する必要がある場合もあります。
 

コース (A  B  C  D  E)



4.3.3 ユーザー認証について

リモートアクセスにおけるセキュリティ面で最も重要なのはユーザー認証(7.1.2参照)です。リモートアクセスのすべての形態で重要になります。社員になりすまして、企業内ネットワークに入り込まれるといった不正侵入を阻止しなくてはなりません。
 インターネットでは、ほとんどの場合、 ID(ユーザー識別名)とパスワードでユーザー認証を行っていますが、問題はネットワーク上で盗み見られて、それを使われる(リプレイアタックという)危険性と、パスワードを類推される危険性です。
 
リプレイアタック対策としては、パスワードを暗号化します。暗合の鍵は、通信の都度変化するセッション鍵を使うようにすれば、たとえネットワーク上で盗まれても復号化しない限りその暗号化されたパスワードは使用することはできません。
 暗号の鍵をいつも同じにすると、例え暗号化してもリプレイアタックされてしまいます。
 暗号化しただけでは、パスワードを類推される危険性は残りますから、類推されにくいパスワードを選定しなければなりません。また、パスワードは頻繁に変更した方が安全です。
 リプレイアタックと類推される危険性の両方に有効なパスワードに毎回パスワードを変えていくワンタイムパスワード(使い捨てパスワードともいう)(7.1.2(3)参照)があります。ワンタイムパスワードの方式にはトークンというパスワード発生器を使う方式などいろいろな方式がありますが、上図の例は、サーバー側から毎回異なるパスワードの候補を送り、クライアント側で、ユーザーごとに決められた一定の選択方法で候補を選択してパスワードとする方式です。選択方法を盗まれたり、類推されたりしないことが必要です。
 リモートアクセスでIDとパスワードでユーザー認証を行うときには、最低限パスワードは暗号化すべきです。できたら、ワンタイムパスワードを使うのが良いでしょう。
 

チャレンジレスポンスという認証方式(7.1.2(3)参照)もあります。ユーザー本人しか知らないいくつかの情報を登録しておき、サーバーはこの中からいくつかの質問をユーザーに投げかけ、応答がすべて正しければ、本人と認証します。何回も使っているとすべての質問に対する答が盗まれ、リプレイアタックされる危険性があるので、応答は暗号化する必要があります。
 
インターネットでは、ユーザーがパスワードを忘れたときのパスワードの問い合わせ時に、この認証を使っていることが多いようです。リモートアクセスでも、パスワードを忘れる場合もあるので、この方式を採用するか、直接本人に会って教えるのが無難です。電話やメールでの問い合わせに答えるのは避けるべきです。
 パスワードを忘れたときのリカバリー方法を決めておくことも重要なセキュリティ対策の一つです。

 最近、指紋や手の静脈など生涯変化しない生体の特徴を使ったユーザー認証が実用化されています。顔の形や声紋なども利用されようとしています。将来的にはDNAなども使われるでしょう。
 
技術レベルが向上し、誤認証(別な人を本人と認める)はほとんどなく、認証エラー(本人を認めない)も実用上ほとんど問題ないレベルになっています。したがって、なりすましが極めて困難ですが、何千人の中の誰かを認証するような使い方は照合時間がかかりますので、ID+パスワードと併用し、登録されている生体情報とセンサーからの情報を1:1で照合して本人確認するような方法で照合回数を減らす使い方をします。
 

コース (A  B  C  D  E