3

PCI-DSSでのソースコードリポジトリ管理にどのような制限がありますか?

私が働いている会社は、私たちのネットワークでホストされているクライアント向けのクレジットカード処理サービスを開発したいと考えています。現在、バージョン管理にSVNを使用しています。チェックアウト/コミットアクセスが必要な開発者だけがアクセスできるように保護されています。その間、私はSVNからHGへの移行を計画していました。ただし、リモートクローンのアクセス制御が不足しているため、セキュリティチームは分散SCMツールの使用について留保を表明しています。具体的には、これはPCI-DSSコンプライアンスに違反すると主張しています。しますか?

4

3 に答える 3

8

まず、答えはPCI-DSS 2.0、特に要件 6をざっと読んだことに基づいているとだけ言っておきます。

Subversion を使ったのと同じように Mercurial を使うのが問題になる理由がわかりません。私がそう考える理由は次のとおりです。

  • おそらく、リポジトリに顧客データを保存していない (そのデータを操作するコードのみ)。
  • PCI-DSS では、「標準的な業界慣行」などの言葉がよく使用されます。Mercurial は今では非常に一般的な VCS であり、これは役に立ちます。
  • ロックダウンが必要な変更セットをプッシュする機能のようです。具体的には、リポジトリの「正規の」クローンにプッシュする機能です。Mercurial にこれらの「リモート クローン」があり、開発者がランダムな (悪意のあるものでさえも) 変更をそれらのクローンにプッシュできるからといって、それらの変更が本番システムで終了する (または終了する必要がある) とは限りません。
  • Subversion では、チェックインを開発者のサブセット (あるいは 1 人の「ゲートキーパー」だけ?) に制限する権限が適切に設定されているように思えます。
  • Mercurial を使用すると、中央 (正規の「本番」リポジトリ) で SSH を使用するように設定できます。これには、各開発者に独自の SSH 資格情報を与えます (これは PCI-DSS によって要求されます。パスワードを共有する必要はありません!)。中央リポジトリがホストされているファイルシステムにパーミッションを設定し、特定のユーザーに Mercurial ディレクトリへの書き込みアクセスのみを与えることができます。
  • Mercurial を使用すると、代わりに (またはまた) HTTP 経由で中央リポジトリを公開できます。この場合、Apache (または別の Web サーバー) を使用して認証と承認を行うことができます。
  • また、中央レポへの書き込みを完全に禁止し、すべてのソースの変更は、変更をプル (または適用) する前に確認する 1 人または 2 人の特定の人を通じて送信する必要があることを宣言することもできます。

したがって、Mercurial のような DVCS を使用しながら、PCI-DSS に準拠する余地は十分にあると思います。上記のすべては、Git にも等しく当てはまります。

于 2012-01-21T21:26:11.897 に答える
1

他の人が言ったように、これは、さらにアドバイスが必要な場合に QSA で提起するものです。とはいえ、PCI は、あるテクノロジを別のテクノロジに強制するのではなく、適切な管理を行うことを目的としています。

開発時には、次のことを考慮する必要があります。

  • テスト/開発システムと本番システム間の職務の分離
  • 変化がどこで、いつ、誰によって発生したかを検出できること
  • ライブにプッシュするときの変更管理手順を持つ

これにより、選択したリポジトリマネージャーの使用が妨げられることはありません

于 2012-01-25T13:23:04.247 に答える
0

セキュリティ チームがアクセス制御の部分について正しいかどうかは、彼らがどのような種類の制御を望んでいるかによって異なります。

制限付き読み取り

SVN と DVCS の両方で、1 人の開発者が読み取ることができるものを制御することは制限されています。通常、中央の SVN サーバーを使用している場合でも、許可されているパスの古いリビジョンを読み取ることに制限はありません。そのため、古い履歴をリビジョンごとにローカル ストアにダンプできます ( hg subversiongit svnおよび他の多くのツールがまったく同じように機能します)。SVN には、誰かがすべてのリビジョンをダウンロードしてコピーを配布することを妨げるような魔法はありません。

最後に、ユーザー側で作業コピーへのアクセスを制限できない場合、読み取り制限はまったくありません。限目。

制限付き書き込み

Mercurial では任意の名前をコミッターとして設定できるため、これは別のゲームです¹。そのため、開発者が仲間の開発者の名前でコミットして False-Flag リビジョンを導入し、このリビジョンをサーバーにプッシュできないように、サーバーにいくつかのメカニズムを追加する必要があります。AFAIK Subversionはサーバー上でユーザー名をそれ自体で設定しますが、hgサーバーには、すべての受信変更セットのユーザー名をチェックするためのフックを何らかの形で提供する必要があります。

¹ Subversion でもコミッター名を変更する方法がありますが、これを許可するには、サーバーで pre-revprop フックを有効にする必要があります。

于 2012-01-27T21:21:59.570 に答える