公開日:2007年9月26日
独立行政法人情報処理推進機構
セキュリティセンター
本ページの情報は2007年9月時点のものです。
記載の資料は資料公開当時のもので、現在は公開されていないものも含みます。
パラメータ値の初期値や省略時解釈の選び方によっては、そのことが情報システムのセキュリティを損なう要因となるおそれがある。
ソフトウェアが利用される場面では、接続先サーバアドレス、データを保管するディレクトリ、画面の色など、さまざまなパラメータ値がユーザから与えられ、それらにもとづいてプログラムが動作する。
通常パラメータは多岐にわたり、それらをユーザに毎回指定させることは現実的でない。多くの場合、パラメータには何らかの初期値が明示的に与えられているか、パラメータが定義されていないときにはある値が与えられているものと解釈せよというルールが設けられる。
このように、ユーザが明示的に指定しなくてもパラメータに何らかの値を、初期値として、あるいは省略時解釈ルールによって与える方式のことを、ここでは「デフォルト」と呼ぶ。
例えば、次のようなデフォルトがあるとき、その状態のまま使い続けると情報機器や情報システムが侵害され得る。
特定の人物以外には操作を許すべきでないネットワーク機器やサーバ製品が、インストール直後には誰でも容易に管理者として当該システムにアクセスできるようになっているケース。(例: 出荷時に管理者パスワードが存在しない、非常に単純な綴りになっている等)
システムの中の各種リソースのアクセス許可設定が、初期値において「誰でもアクセス可」となっているケース。
「接続先リストを暗号化してパスワードで保護する」等のセキュリティ保護機能をオン/オフするスイッチが初期状態でオフになっているケース。
アプリケーションの中でユーザやコンピュータノードを識別するための値が用いられる場面で、初期値としていつも同じ値が与えられて製品の複数実体が出荷されるケース。この場合には、識別子の衝突によるサービス不能状態や、通信の混乱が起こり得る。
機器やシステムを初期値のまま使い続けなかったとしても、次のような事故によって設定が出荷状態(デフォルト)に戻ってしまうというということがあり得る。
パラメータ(複数)を収容した設定ファイルが破損することは、設定ファイルへ書き込んでいる途中でプログラムが中断された場合に起こり得る問題である。原因として主に次のものが考えられる。
デフォルトが引き起こすセキュリティ問題への対策として次が考えられる。
管理者認証パラメータ、ネットワークアドレス等、デフォルトを設けることが得策でないパラメータについては、それらが未定義であることをプログラムが自動判別し、有効な値を設定するようユーザに促すようにする。
有効な値が設定されるまではネットワークに接続しない、等の保護措置をはたらかせる。
設定ファイルが破損しているか否かを判定するロジックをもつ。また、当該システムを起動した時点、および要所要所で、設定ファイルの破損を自動検査する。
更新作業途中の設定ファイルの破損に備えて、設定ファイルへの書き込み前にバックアップコピーを作り、事故時にはそこからロールバックするロジックをもつ。
ユーザが誤ってパラメータを初期化することが起こりにくいよう、分かりやすい警告を出す等、ユーザインタフェース上に歯止め措置を施す。
設定ファイルが、ネットワーク接続パスワード等の部外者が悪用しうる項目を含んでいる場合は、部外者の読み出しに対して厳しい制限をかける。
この項目はデフォルトに関するものではないが、パラメータの保護措置も併せて行う必要のある場合が考えられる。
設置箇所が無人であることが想定されるネットワーク機器のソフトウェアの場合、ネットワーク経由の運用・保守作業を行うことが多い。その場合、認証の仕組みが不可欠であり、機器に設定されている認証パラメータがデフォルトに戻ってしまっては具合が悪い。
ユーザが手動で指示するかプログラムが自動でリセットするかを問わず、パラメータを初期状態に戻す際は一部のパラメータを消さずに残すことを考慮する必要がある。例えば、次のようなパターンが考えられる。
ここで重要なことは、システムのパラメータ設定が不完全な状態に陥った際も、権限をもつ人物が、かつその人物だけが状態を復旧できるような仕組みにしておくということである。
また、認証等の制限を緩め過ぎれば悪意の人物にシステムに干渉されるおそれがある一方で、制限を厳しくし過ぎるとシステムがサービス不能状態に陥るおそれがあることにも注意しておきたい。
パラメータの初期値や省略時解釈がセキュリティ事故の要因となることがある。初期値のままシステムが運用されたり、クラッシュによってシステム設定パラメータが初期値に戻ってしまう等の状況では部外者による不正アクセスが起こりかねない。注意すべきパラメータには、認証、アクセス認可、セキュリティ機能のスイッチ、ネットワークアドレス等がある。部外者の干渉を遮断する一方で、サービス不能に陥らない方策も必要である。