WP Web開発のダークサイド「シャドーコード」を重視すべき理由 - JA

Web開発のダークサイド「シャドーコード」を重視すべき理由

Web開発のダークサイド「シャドーコード」を重視すべき理由

Web業界は、開発のペースが非常に早いうえ、時代の最先端であることが重視されます。そのため、開発者は製品や機能を迅速かつ効率的に提供するというプレッシャーにしばしばさらされます。タイトなスケジュールのなかで開発プロセスの迅速化やアプリケーション機能の強化を行うために、彼らはサードパーティのスクリプトやオープンソースライブラリを活用しています。ただし、この方法にリスクがないわけではありません。

リスクのひとつとして、アプリケーションへの「シャドーコード」の導入が挙げられます。シャドーコードによってアプリケーションが多数かつ未知のリスクにさらされることで、企業は、データセキュリティ、プライバシー、PCI DSSやGDPRなどの規制へ準拠しにくくなります。組織が業務の最新化を進める際、シャドーコードを理解し、管理することは最優先すべき事柄です。

シャドーコードとは?

シャドーコードとは、セキュリティチームやIT部門による精査や承認を経ずにアプリケーションに組み込まれるコードを指します。この用語は、未承認のITソフトウェア、サービス、デバイスを業務の促進に使用する「シャドーIT」に由来しています。これと類似する用語には、シャドーAPI(組織内で公式の承認や監視なしに動作する未承認または未管理のAPI)もあります。

開発プロセスでは、スピード、生産性、イノベーションに重点が置かれているため、アプリケーションに対するスクリプトやコードの導入は、正式な審査・承認のプロセスを経ずに行われることが多くあります。たとえば、ある開発者が、特定のプロセスを高速化し、Webサイトに望ましい機能を追加できる便利なJavaScriptをGitHubで見つけたとします。そのコードを通常のレビューや承認プロセスを経ないままアプリケーションに組み込むと、典型的なシャドーコードとなります。

シャドーコードに関連するリスク

シャドーコードに関連する主なリスクは、その未知の性質にあります。シャドーコードは適切に検査されていないため、安全である保証も、悪意のある機能が隠されていないという保証もありません。たとえすべてのサードパーティのコードが導入段階で審査・承認を経ていたとしても、使い慣れた頃になって後から侵害される場合もあります

シャドーコードに関連する未知の脅威は数多く存在し、悪意のあるコードインジェクション、Webサイトの改ざん、データの流出、スクリプト攻撃、SQLインジェクション、広告インジェクション、クリックジャッキング、サイドローディング、クロスサイトスクリプティングなどにアプリケーションがさらされる可能性があります。

シャドーコードが存在する場合、デジタルスキミングやMagecart攻撃が仕掛けられてデータ侵害が発生し、組織に甚大な被害が及ぶ恐れもあります。こういった攻撃は、正規のWebサイトで使用されるファーストパーティまたはサードパーティのサービスのコードにJavaScriptが組み込まれることで機能します。JavaScriptは顧客サイドで実行されるという性質であるため、顧客がサイトに情報を入力するたびに、攻撃者は機密の個人情報を直接収集することができるようになります。

昨今、PCI DSSで導入されたアプリケーションセキュリティの新要件には、シャドーコード関連のリスクも含まれています。そこでは、支払いページで読み込み・実行されるスクリプトに関連する潜在的なリスクを取り上げ、その重要性が強調されています。さらに、リスクを放置した状態では悪意のあるスクリプトの実行やデータの漏洩につながる可能性があることや、支払いページのスクリプトをどのように管理すべきかについて詳しく説明されています。

データ保護について取り上げているのは、PCI DSSなど、金融業界の規制だけではありません。EU一般データ保護規則(GDPR)、カリフォルニア州消費者プライバシー法(CCPA)、ブラジル一般データ保護法(LGPD)などのデータプライバシー規制でも、関連の項目が存在します。こういった規制では、デジタル環境における個人のプライバシー保護やデータ管理を目的として、データ保護とプライバシーに関する厳しい要件をデジタルビジネスに課しています。シャドーコードが導入された場合、組織がこれらの規制を遵守しているかどうかを確認することが困難になる可能性があります.

シャドーコードに関連するリスクを軽減する方法

強力なアプリケーションセキュリティ体制を整えるためには、コード内のセキュリティ、互換性、コンプライアンス、および悪意がないかを審査・検証することが極めて重要です。そのためには、スクリプトのレビュー、完全性の保証と承認に関する正式なプロセスを確立する必要があります。この作業は、シャドーコード関連のリスクを管理する上で不可欠な要素です。

最初のステップは、アプリケーションで使用されているサードパーティスクリプトの一覧表を作成し、新しいスクリプトが追加されてレビューが必要となる際にセキュリティチームへ通知する方法を確立することです。

続いて、すべてのコードに関して、最初のレビューが行われた後も適切な時期に改めて審査されるようスケジュールを組み、コードが侵害されるリスクを軽減します。

適用に関しては、コンテンツセキュリティポリシー(CSP)HTTPヘッダーを利用することができます。HTTPレスポンスヘッダーに適切な CSPディレクティブを定義することで、Webアプリケーションが許可するデータソースを制限しやすくなります。また、CSPヘッダーはセキュリティ面における貴重なメリットを提供します。ただし、セキュリティ、機能、そして組織内における多様なWebアプリケーションそれぞれの間には微妙なバランスがあるため、CSPヘッダーの適用とメンテナンスは複雑な作業であることをご留意ください。

こういったプロセスを合理化するためにおすすめなのが、クライアント側の保護機能を提供するアプリケーションセキュリティソリューションへ投資することです。このようなソリューションでは、継続的な検出・監視によってサードパーティのスクリプトが可視化され、審査・承認が必要な新しいスクリプトが発見された場合はアラートで知らされます。また、スクリプトの実行を簡単に承認およびブロックできる機能も搭載されています。より高度なソリューションには、スクリプトの変更やソフトウェアのサプライチェーンを通じて持ち込まれたスクリプトを可視化する機能、コードをレビューしてその内容を説明するAI機能も含まれます。これにより、セキュリティチームは貴重な時間を節約し、他のプロジェクトに労力を費やすことができるようになります。

Impervaでシャドーコードに光を当てる

昨今のデジタル環境では、シャドーコードを理解し、特定して、管理することが非常に重要です。積極的な対策を講じることで、企業はセキュリティを損なうことなく、確実かつ迅速なイノベーションを実現することができます。

Imperva Client-Side Protectionは、シャドーコードに関連するリスクを管理しやすい設計が施されています。これによって新規のJavaScriptサービスが継続的に監視されることで、セキュリティチームはWebアプリケーションに埋め込まれたサードパーティコードを把握し、制御できるようになります。

さらに、Client-Side Protectionが提供する実用的な洞察を通して、各サービスの性質を理解し、正確な情報に基づいたうえで実行を許可するか否かの意思決定を下せるようになります。また、搭載されているAIによって、コードを読み込まなくても各スクリプトの動作に関する情報がセキュリティチームに提供されます。万が一、JavaScriptコードが侵害され、データが他所に送信されそうになった場合は、セキュリティチームへ最初に通知が届きます。

Imperva Client-Side Protectionは、明確な可視性と実用的な洞察が得られる、管理しやすい製品です。これを活用することで、データプライバシーに関する規制(最新版のPCI DSSで制定された要件を含む)に準拠しながらWebサイトのサプライチェーンを保護する作業が容易になります。