web-dev-qa-db-ja.com

PCIでは実際にカード情報をメモリで暗号化する必要がありますか?

多くの場所で、カード情報がメモリ内でも暗号化されていることがわかりましたが、これは実際にはPCIで必要ですか?理由はわかりません。攻撃されて値に到達できれば、暗号化キーにも到達できますね。

そしてそれが実際に必要な場合、各カードには独自の暗号化キーが必要ですか?または、1つのコモンをそれぞれ個別のIVで使用できますか?

6
graywolf

TL; DR

技術的には、PCIではカード所有者データ(CHD)を転送中と保存中の両方で暗号化する必要があります。これは最初は単純に思えるかもしれませんが、実際には、ディスク上の残り揮発性メモリ。ペダンティックにしたい場合、揮発性メモリは静止したままのデータですが、 FAQs によると、メモリ内にあるときに明示的に暗号化する必要はありません。これは単なるFAQであり、実際にはPCIではないことを指摘するのは良いことですが、PCI DSS標準自体 ここにあります 詳細については、こちらの記事を参照してください。

長い答え

インメモリ暗号化の理由は、メモリスクレイピング攻撃ベクトルに関係しています。

PCI DSSは、永続ストレージ内のクレジットカードデータが安全であることを確認するのに優れていますが、非永続ストレージ内のそのようなデータ(メモリに一時的に保存されたファイルなど)は引き続き特にメモリスクレイピングマルウェアを介して侵害される可能性があります。この脅威の詳細をご覧ください [〜#〜] source [〜#〜]

PCIに必要なものの詳細については、 ここ を参照してください。長い答えのTL; DRは、保存されているデータを暗号化しない場合(ディスクまたはメモリ内)、データ損失のリスクを軽減するための代替コントロールがあることを確認してください。

保存されたカード会員データを暗号化できない場合は、PCI DSS付録B:代替コントロールおよび付録C:代替コントロールワークシートを参照してください。

5
HashHazard

カード会員データは揮発性メモリで暗号化する必要はありません( https://pcissc.secure.force.com/faq/articles/Frequently_Asked_Question/Should-cardholder-data-be-encrypted-while-in-memory )揮発性メモリに書き込まれたデータがディスク上に保持される機能は発生する可能性があり、発生することに注意してください。ページファイルまたはスワップファイルの暗号化は、これを防ぐのに役立ちます。

カード会員データは、オープンなパブリックネットワーク経由で転送する場合[PCI DSS Req。4.1]およびディスクに書き込む場合[PCI DSS Req。3.4])に保護する必要があります。それぞれの要件は同じではなく、例はPCI DSS内に示されています。標準の右側にある「ガイダンス」列も通常役立ちます。

PCIの最新バージョンDSSはここにあります。 https://www.pcisecuritystandards.org/document_library

4
Name Random

最初に2番目の質問に答えます(「理由はわかりません。攻撃されても値に到達できれば、暗号化キーにも到達できますよね?」)既製RAMスクレイピングマルウェアは、メモリ内のトラックデータを識別する方法を単に知っています。登録プロセスのメモリマップを理解していません。構造やフィールドを認識していません。char*を見つけようとしません。 「Track_Data」というラベルの付いたバッファ。プロセス内のすべてのメモリを読み取るだけで、15桁または16桁のパターンに一致する場合は、それを掻き集めて悪意のある人に送信します。市販のマルウェアでは、暗号化キーを構成するバイトがわかっているため、データが暗号化されると、マルウェアはそれを認識しません(通常のマルウェアはあまり洗練されておらず、XORまたはROT-13データ、AES-128暗号化データのブロックよりはるかに少ない。)

攻撃者がステルスである必要があることを考慮してください。すべてのトランザクションの後にすべてのレジから2GB RAMダンプを送信した場合、ネットワークの人々はおそらく気づくでしょう。彼らは必要最小限のデータのみを送信し、何も解読しようとしないでください。

(これは一般的な目的にのみ当てはまることに注意してくださいRAM DexterやBlackPOSのようなマルウェアをこする;特定のアプリケーションを標的としたマルウェアがある場合、それはメモリ構造を理解して試すためにカスタマイズされるかもしれません特定のアドレスからキーおよび/または暗号化されたデータを盗みます。すべて攻撃者に依存します。)

-

質問のとおり、質問の最初の部分はほぼ競合状態を表しています。どの時点でトラックデータは「休止」と見なされますか?それがハードディスクに到達したときだけですか、それとも暗号化されるのを待っているメモリ内にあると見なすことができますか?

しかし、今、あなたは続行し、より詳細に取得する必要があります。 USBデバイスドライバーのバッファーに到達したとき、それは静止していますか?新しいトラックデータが入力されたことをプロセスに通知するためにWindowsメッセージが投稿されたとき、それは休息していますか?バッファが暗号化アルゴリズムに送信されたときに休んでいますか?アプリケーションがトラックを解析してカード所有者名、サービスコード、PAN、CVV、および有効期限を回復するとき、それは静止していますか?領収書の最後の4桁を取り除くと、それは落ち着きますか?アプリケーションが暗号化の前に何らかの方法でアカウント番号を処理している場合、それは安心ですか。おそらくチェックディジットを検証するか、それがVisaか他のタイプのクレジットカードかを判断しますか?許可メッセージが作成されているとき、それは静止していますか?これらのアクティビティはどれもデータが非常に休んでいるようではなく、それらのアクティビティの多くはPOSシステムの一般的な機能です。合計すると、そのすべての処理の実行には数ミリ秒以上かかることがあります。

それでは、実際の攻撃者について考えてみましょう。最大の違反のいくつかで使用されたマルウェアは、RAMマルウェアをこすり取っていたもので、非常に攻撃的です。レジスタのメモリを毎秒数百回スイープし、最も短い時間でトリガーする可能性があります。 of PAN or track data。それは、解析ルーチンで分解されている間、またはアプリケーションとして通知される前に、USBバッファ、Windowsメッセージバッファに到着する追跡データをキャプチャすることができます。暗号化ルーチンが呼び出されています。PCI-DSS法の規定に完全に準拠し、アプリケーションがそれを見るやいなや暗号化したとしても、このマルウェアファミリの一部のメンバーが侵入した場合、依然として侵害に対して脆弱です。あなたのレジ。

PCI-DSSの正確な解釈に焦点を合わせるのではなく、できるだけ多くのシステムをPCIスコープから削除することにより、状況を完全に回避することをお勧めします。可能であれば、トラックデータをキャッシュレジスタから取得し、別の決済端末に転送して、データをキャッシュレジスタに送信する前にデータを暗号化できます。

キャッシュレジスター環境の外にある別のデバイスに暗号化を移動する場合、レジスターはクリアテキストPANを受信したり、データを追跡したりする必要はありません。レジスターに侵入したマルウェアは何も見つかりません。そして、支払い端末は、本格的なWindowsベースのキャッシュレジスタアプリケーションよりもはるかに小さな攻撃面を持つことになります。

2
John Deters

私はPCIで使用される暗号化方法についてはあまり詳しくありませんが、これが必要になる理由は十分にあります。多くの場合、ハードウェア操作はCPUをバイパスし、ダイレクトメモリアクセス(DMA)を使用してパフォーマンスを向上させ、不要なCPUサイクルを無視します。大きな力には大きな責任が伴い、ダイレクトメモリIOできる クリエイティブなエクスプロイトにつながる

例を挙げれば、仮想マシン、刑務所、およびコンテナは、ホストとゲストの間の環境を分離します。明示的に許可されている場合を除き、ゲストがサーキットセグメント内のホストまたは他のゲストに到達できないようにする必要があります。これが起こった場合、私たちは脱獄について話します。 DMA=を許可する任意のハードウェアデバイスを悪用してマルウェアを運ぶことができます。PCIパススルーの悪用に関する多くの論文が公開され、ホストをゲストに公開しています。

GPUコンピューティングの脆弱性分析、2013年:

[31]は、直接メモリアクセス(DMA)を利用してシステムを攻撃する可能性について言及しています。このホワイトペーパーでは特に触れていませんが、このアイデアをGPUに拡張すると、大きな脆弱性が生じます。 DMA GPUがCPUとは独立してシステムメモリにアクセスできるようにします。CPUはすべてのメモリ保護を行うため、これはDMAはすべてのタイプのメモリセキュリティをバイパスし、システムメモリへの無制限のアクセスを許可します。[12]は、過去にこのタイプの攻撃がネットワークカードを使用してどのように成功したかを説明しています。ただし、この分野の調査では、GPUを使用してこのような攻撃を行うことは現在不可能であるこれは、DMAがCUDAに実装されている方法によるものです。DMAを使用するために、特定の非同期コピー機能が使用されます。CPUは依然としてホストメモリの割り当てを担当し、この固定されたメモリはDMAで使用するためにGPUに渡されます。CPUが引き続きメモリアクセスを制御し、保護が引き続き有効であるため、この脆弱性を回避します。GPUはDMAのみを使用してメモリにアクセスできますシステムによって保護されたメモリではなく、CPUによってすでに割り当てられています。将来的にはGPUがl DMAをより詳細に制御できますが、現時点ではこのタイプの攻撃は不可能です。

0
Yorick de Wid