Visual SourceSafe データベース セキュリティについて

ビューの切り替え:
スクリプトなし
Visual SourceSafe データベース セキュリティについて

Christine Woskett and Oded Ye Shekel
Visual SourceSafe Team
Microsoft Corporation

January 2003
日本語版最終更新日 2003 年 4 月 18 日

要約: この記事では、MicrosoftR Visual SourceSafeR 6.0 およびそれ以前のデータベースを作成して管理する際の、管理者が注意すべきセキュリティの問題について説明します。

この記事は 2 部構成です。Visual SourceSafe データベースをセキュリティで保護する方法については、「How To: Visual SourceSafe データベースをロック ダウンする」を参照してください。

目次

はじめに
用語
データベースの保護とユーザーの管理
データベース保護のガイドライン
その他の考慮事項

はじめに

この情報は、Visual SourceSafe (VSS) データベースを作成したり、データベースを含むファイル共有へのアクセス許可を他のユーザーに与えたり、VSS アドミニストレータ プログラムでユーザーの権限を管理するすべての VSS ユーザーを対象としています。

用語

セキュリティ - WindowsR ユーザーの資格情報およびアクセス許可に基づいて、リソースへのアクセスを制御するプロセスです。

アクセス許可 - ファイル、ディレクトリ、プリンタなどのローカル リソース、またはネットワーク上の共有リソースに関連付けられた規則です。アクセス許可は、グループ、グローバル グループ、および個々の Windows ユーザーに与えることができます。Windows アクセス許可を与える場合は、グループおよびユーザーのアクセス レベルを指定します。

オペレーティング システムまたはファイル システムのセキュリティ - Windows ユーザーが共有リソースを利用するたびに、そのユーザーに必要なアクセス許可があるかどうかをチェックします。たとえば、ユーザーがファイルをフォルダに保存するには、そのユーザーにそのフォルダに対する書き込みアクセス権が必要です。

共有 - フォルダやプリンタなどの Windows リソースを他のユーザーも使用できるようにします。共有リソースへのアクセス許可は、ネットワークでの共有リソースの可用性を特定の Windows ユーザーに制限します。共有フォルダの管理者は、Windows ユーザーがフォルダおよびサブフォルダへのリモート アクセスを行えるようにアクセス許可を設定します。Windows リソースの共有は、VSS でのファイルとプロジェクトの共有とは異なります。

権限 - VSS では、ある VSS プロジェクトにアクセスできる VSS ユーザーを指定する要素です。VSS のユーザー アクセス権には、読み取り、チェックアウト/チェックイン、追加/名前の変更/削除、および破棄の 4 つのレベルがあります。データベースの新しいユーザーに対する既定レベルは独自に指定することが可能です。

割り当て - VSS では、指定した VSS ユーザーがどの VSS プロジェクトにアクセスできるかを設定することを意味します。

VSS データベース フォルダ - データベースの Srcsafe.ini ファイルを含む Windows フォルダ、およびその他の VSS フォルダ (Data や Users など) です。

データベースの保護とユーザーの管理

VSS アドミニストレータ プログラムには、個々のユーザー、または VSS データベースの個々の VSS プロジェクトのアクセス権を指定することによって VSS ユーザーを管理するツールが用意されています。ただし、データベースを確実にセキュリティで保護するには、Windows 統合セキュリティを使用して VSS フォルダに対する共有およびセキュリティのアクセス許可を設定し、VSS フォルダへのアクセスを制限する必要があります。次の図で示すように、共有 VSS データベースのセキュリティは、そのデータベースが置かれている共有ネットワーク フォルダのセキュリティよりも高くなりません。データベースのロック ダウン手順に従い、データベースを作成したり VSS ユーザーを追加または削除する際に、データベース フォルダの共有アクセス許可を設定または変更し、Windows セキュリティを強化します。これを行わないと、悪意のあるユーザーがネットワーク上で VSS システムの防護壁を容易に回避できてしまいます。セキュリティによるデータの保護を VSS だけには依存しないでください。読み取り専用の VSS ユーザーでも、アクセス可能な共有ネットワーク フォルダから VSS データベースを削除することが可能です。

Visual SourceSafe セキュリティのアーキテクチャ

VSS アドミニストレータ プログラムを使用しての VSS ユーザーの権限の設定は、VSS データベース フォルダの Windows 共有アクセス許可とは異なります。VSS ユーザー名とパスワードは、VSS でのユーザー管理および VSS へのアクセスに使用されます。VSS ユーザー名は、VSS アドミニストレータ プログラムでユーザーの権限を管理するために使用され、ログオン時、履歴情報、およびファイル レポートにおいてユーザーを特定します。ユーザーは、このユーザー名とパスワードを使用して VSS にログオンできます。VSS では、各 VSS ユーザーに対して固有の初期化ファイル Ss.ini が作成され、管理されます。このファイルには、VSS 環境のカスタマイズ設定が含まれています。この初期化ファイルを保護するには、「How To: Visual SourceSafe データベースをロック ダウンする」の指示に従ってください。

Windows セキュリティ、アクセス制御、およびアクセス許可の詳細については、Windows ヘルプを参照してください。

データベース保護のガイドライン

データベースをセキュリティで保護するため、Windows 統合セキュリティを使用して VSS フォルダへのアクセスを制限し、認証された Windows ユーザーのみがデータベースにアクセスしたり VSS アドミニストレータ プログラムを実行できるようにする必要があります。VSS データベースのセキュリティは、そのデータベースを含むフォルダのセキュリティに依存します。ここで説明するセキュリティを実装するには、データベースが NT ファイル システム (NTFS) にインストールされていることが必須です。NTFS は、Windows NTR 4.0、Windows 2000、Windows XP およびそれ以降の Windows オペレーティング システムで使用できます。VSS データベースが NTFS ボリュームにインストールされている場合は、個々のファイルおよびフォルダにそれぞれ固有のアクセス許可を与えることができます。ファイル アロケーション テーブル (FAT) ファイル システムでは、1 つのアクセス許可が共有フォルダ全体に適用されます。

共有アクセス許可を制限する

共有データベースを作成する際は、Windows エクスプローラを使用して VSS フォルダの共有アクセス許可を制限することを強くお勧めします。VSS データベース フォルダを作成するときに、自動的に追加される Everyone グループを削除する必要があります。2 つの Windows ユーザーのグループ ?VSS 管理者と VSS ユーザー? を作成して、VSS データベース フォルダおよびその他の VSS フォルダへのアクセス許可を各グループに適切に設定します。各 VSS ユーザーには、そのユーザーの VSS ユーザー名に対応する Users\<ユーザー名> フォルダに対して、読み取りおよび書き込みアクセス許可を設定する必要があります。詳細については、「How To: Visual SourceSafe データベースをロック ダウンする」を参照してください。

ユーザーを管理する

VSS ユーザーを追加または削除する場合は、VSS アドミニストレータ プログラムのユーザーの一覧で追加/削除を行うだけではなく、Windows 共有アクセス許可についても追加または削除する必要があります。詳細については、「How To: Visual SourceSafe データベースをロック ダウンする」を参照してください。

その他の考慮事項

データベースはセキュリティで保護された場所にインストールする

VSS のインストール時、データベースは既定で Program Files ディレクトリ内の VSS Data フォルダに作成されます。このデータベースは個人使用を目的としているため、共有しないでください。データベースは、他のプログラムで必要な場合にのみ既定の場所で使用してください。

VSS フォルダのフル コントロール アクセス許可を持つすべての Windows ユーザーは、Win32 フォルダの実行ファイルを置き換えることができます。「How To: Visual SourceSafe データベースをロック ダウンする」の手順に従い、VSS 管理者グループのみにフル コントロール アクセス許可を設定してください。また、すべての VSS データベース ユーザーに VSS データベース フォルダへのアクセス許可が必要です。このデータベース フォルダが Program Files ディレクトリ内にある場合は、実行ファイルおよび関連リソースも含まれることに注意してください。

システム フォルダまたは Documents and Settings フォルダには共有データベースを作成しないでください。

VSS データ共有を非表示にする

ネットワーク共有を非表示にすると、サーバーに共有があるかどうか、また VSS がインストールされているかどうかを Windows リモート ユーザーが判別することが困難になります。Windows ユーザーがサーバーを参照しても、ネットワーク共有は表示されません。ネットワーク共有を非表示にするには、フォルダ名の最後に $ を追加します (例: \\server\vssdb1 の代わりに \\server\vssdb1$ を使用する)。VSS ユーザーにデータベースの正確な場所を知らせておくことが必要です。これにより、ユーザーは [SourceSafe データベースを開く] ダイアログ ボックスで [利用可能なデータベース] の一覧にデータベースを追加することができます。

シャドウ フォルダ

VSS プロジェクトにシャドウ フォルダを作成する場合、VSS フォルダの Windows ユーザー アクセス許可はシャドウ フォルダには継承されません。すべての VSS ユーザーに読み取りおよび書き込みのアクセス許可を設定し、シャドウ フォルダの読み取り専用のアクセスが必要な Windows ユーザーには読み取りのアクセス許可を設定します。詳細については、「Create Shadow Folders」(英語) を参照してください。

シャドウ フォルダは、VSS データベースとは別の場所に作成することをお勧めします。これにより、読み取り専用の Windows ユーザーは、データベースを含む共有フォルダへのアクセス許可を持ちません。また、シャドウ フォルダはルート プロジェクト $ ではなく、特定の VSS プロジェクトごとに作成してください。これにより、シャドウ フォルダにアクセスできる Windows ユーザーはその VSS プロジェクトにだけアクセスでき、データベース全体にはアクセスできません。

注: VSS プロジェクトからファイルまたはプロジェクトを削除しても、そのファイルまたはプロジェクトはシャドウ フォルダから削除されません。

ジャーナル ファイル

ジャーナル ファイルを作成する場合、Srcsafe.ini ファイルと同じフォルダに作成してセキュリティで保護し、ジャーナル ファイルの Windows 読み取りおよび書き込みのアクセス許可を VSS ユーザーに設定することをお勧めします。

VSS のインストールと実行に必要なアクセス権

VSS をインストールするにはコンピュータの Windows Administrators グループのメンバである必要がありますが、VSS アドミニストレータ プログラムや、VSS エクスプローラおよびコマンド ラインの実行には Administrators グループのアクセス許可は必要ありません。

Admin および Guest ユーザー名

VSS データベースを作成すると、既定で 2 つの名前 Admin と Guest が作成されます。Admin ユーザーと Guest ユーザーのパスワードは空白になっています。VSS アドミニストレータ プログラムの [パスワードの変更] コマンドを使用して、Admin ユーザーのパスワードを設定することをお勧めします。Guest ユーザーは不要であれば削除してもかまいません。または、VSS アドミニストレータ プログラムの [パスワードの変更] コマンドを使用してパスワードを設定することもできます。詳細については、「Change a User Password」(英語) を参照してください。

パスワード

VSS ユーザーが VSS へのログオンにユーザー名とパスワードを入力する必要がある場合は、オペレーティング システムと VSS のパスワードを違うものにするように指示してください。同じパスワードを使用すると、悪意のある他者が VSS パスワードを見つけた場合、そのユーザーの ID を利用してオペレーティング システムおよびすべてのプログラムにアクセスできることになります。

SSUSER および SSPWD 環境変数

コンピュータの SSUSER と SSPWD 環境変数を VSS ユーザー名とパスワードに設定すると、コマンド ラインで VSS コマンドを入力したり VSS エクスプローラを起動する際にログオン プロンプトが表示されなくなります。

これらの環境変数を設定した場合、コンピュータのすべてのユーザーがこれらの環境変数を読み取り、そのユーザー名とパスワードを使用して VSS を実行できます。

自動ユーザー ログオンにネットワーク名を使用する

Visual SourceSafe では、[ネットワーク ログオン ユーザー名を基に自動的にユーザーをログオン] オプションが用意されており、これを使用して Visual SourceSafe を Microsoft Visual InterDevR、Visual StudioR .Net、および FrontPageR と統合することができます。このオプションを使用する際のセキュリティに関する考慮事項については、Microsoft Knowledge Base の記事 Q283618 を参照してください。

VSS プロジェクト権限を使用する

個々の VSS ユーザーまたは個々の VSS プロジェクトにアクセス権を指定する場合は、VSS アドミニストレータ プログラムの [ツール] メニューにある [プロジェクトごとの権限] および [ユーザーの権限の設定] コマンドを使用します。バージョン 6.0c 以前の Visual SourceSafe では、[Visual SourceSafe オプション] ダイアログ ボックスの [プロジェクト セキュリティ] タブで [プロジェクト セキュリティを有効にする] チェック ボックスをオンにすることにより、これらのメニュー コマンドを有効にできます。これ以降のバージョンの Visual SourceSafe では、[Visual SourceSafe オプション] ダイアログ ボックスの [プロジェクトに対する権限] タブにある、権限を有効にするコマンドを選択することにより、これらのメニュー コマンドを有効にできます。

ユーザー アクティビティを監査する

ジャーナル ファイルを作成するには VSS アドミニストレータ プログラムを使用します。ジャーナル ファイルは、VSS データベースのファイルまたはプロジェクトの履歴エントリを生成する VSS ユーザーのすべての操作を記録するテキスト ファイルです。詳細については、「General Options Tab (Tools Menu)」(英語) または「Journal_File Initialization Variable」(英語) を参照してください。Windows 管理者は、特定のファイルやフォルダへのアクセスなど、多数のセキュリティ関連イベントを監査することができます。セキュリティ関連イベントを監視することにより、VSS 管理者は VSS データベースのデータが侵害されるおそれがある場合に検知することができます。セキュリティ イベントの監査、およびファイルやフォルダなどのオブジェクトへのアクセス監査の詳細については、Windows ヘルプを参照してください。

参考資料

How To: Visual SourceSafe データベースをロック ダウンする