PCI DSS Requirement 6.6 and 11.3

このところ各方面で話題になっているPCI DSS。(パスワードを90日で変更しろとかね)
その中の要求事項 6.6では、ソースコードのレビューについて書かれている。(注:6/30までは要求事項ではなくてベストプラクティスでよい)


Payment Card Industry (PCI) Data Security Standard Version 1.1 (日本語版はこちら)

6.6 Ensure that all web-facing applications are protected against known attacks by applying either of
the following methods:
• Having all custom application code reviewed for common vulnerabilities by an organization
that specializes in application security
• Installing an application layer firewall in front of web-facing applications.
Note: This method is considered a best practice until June 30, 2008, after which it becomes a
requirement.

実際にはWAFかコードレビューのどちらかでいいのだが、これを見てソースコード解析ツールを販売しているベンダーは大きなビジネスチャンスと思っているようだ。


ところが先月末にPCIから補足資料(Information Supplement: Requirement 6.6 Code Reviews and Application Firewalls Clarified)が登場し、上記の要求事項6.6で求められているコードレビューについては、以下の4つの選択肢のどれでもよいことになった。

  1. Manual review of application source code
  2. Proper use of automated source code analyzer (scanning) tools
  3. Manual web application security vulnerability assessments
  4. Proper use of automated web application security vulnerability assessment (scanning) tools.

最初の2つは手動か自動かの違いだけで(大きな違いではあるが)いずれもコードレビューを要求している。ところが、残りの2つは Webアプリケーションの脆弱性検査になっている(しかも手動と自動のどちらでも可)。両者は互いを補完する関係であって、置き換え可能なものではないと思うのだが… しかもツールによる自動検査だけでチェックできる範囲なんてたかがしれている。これにはかなり違和感がある。

それに要求事項の11.3では、アプリケーション・レイヤーのペネトレーションテストを最低年に1回は行うことを要求しており、こちらで十分カバーされていると思う。


以下のブログでも上記の点について批判している。
PCI Requirement 6.6 - Confusing the confused


今回の補足資料の内容は必要ないんじゃないだろうか。