意外と怖い、Java Scriptの落とし穴と4つの確認方法

secuasで既に数百以上のサイトを診断させていただき、現在のWebサイトにどの様な脆弱性が多いのかが見えてきました。この記事では今までの統計も含め発生の多い脆弱性を取り上げ、その脆弱性が起こす問題や解決方法までをお伝えしていきます。

まず、最初にお伝えする脆弱性は「Vulnerable JS Library」です。この脆弱性の発生率は非常に高く、今まで診断させていただいた結果、約80%のサイトにこの脆弱性が検出されました。

 

Java Scriptの脆弱性「Vulnerable JS Library」ってなに?

Vulnerable JS Libraryとは、セキュリティ上の弱点やバグを含むJavaScriptライブラリのことを指します。

これらのライブラリが脆弱であるということは、それらが不適切な使用、あるいは悪意ある第三者による悪用の対象となり得ることを意味します。攻撃者は、これらの脆弱性を利用してプログラムの動作を操ったり、データを盗んだりすることができます。

主な脆弱性としては、Cross Site Scripting(XSS)、Cross Site Request Forgery(CSRF)、SQL Injection(SQLインジェクション)、またはリモートコード実行などがあります。これらの脆弱性を利用すると、ユーザーの個人情報が漏洩したり、悪意あるコードが実行されたりします。

このような脆弱なJSライブラリは、不適切な使用や保守不足、または古いバージョンの継続使用によって発生します。これらの原因を解消するためには、常にライブラリのバージョンを最新に保ち、脆弱性が報告されたら迅速に修正することが重要です。

 

Vulnerable JS Libraryが発生するサイトの特徴3点

Vulnerable JS Libraryは、特定のタイプのウェブサイトに限らず、JavaScriptのライブラリを使用して構築されている全てのウェブサイトやウェブアプリケーションに発生する可能性があります。

特に、以下のような状況で発生しやすいとされています。

 

1. 古いバージョンのライブラリを使用し続けているサイト

新しいバージョンにはセキュリティ上の問題が修正されていることが多いので、古いバージョンの使用は脆弱性を引き起こす可能性があります。

   

2. 全然更新していないサイト

更新していないサイトはライブラリのアップデートやパッチ適用が遅れている場合が多く、最新の脆弱性情報に対応されていないことが多く、ライブラリの更新が遅れるとその間に新しく発見された脆弱性を攻撃者に利用されるリスクがあります。

 

3. 色々なサードパーティー製ライブラリを使用しているサイト

全てのサードパーティー製ライブラリがリスクではありませんが、未検証のカスタムライブラリやサードパーティー製ライブラリを使用している場合は脆弱性が発生している可能性があります。これらは必ずしもセキュリティチェックが徹底されているわけではなく、予期せぬ脆弱性が含まれている可能性があります。

したがって、Vulnerable JS Libraryはどのようなウェブサイトでも発生する可能性があり、開発者は常に最新のセキュリティ情報に注意を払い、ライブラリの安全性を確認する必要があります。

 

本当は危険、Vulnerable JS Libraryの3大トラブル

Vulnerable JS Libraryの危険度は非常に高いと言えます。JavaScriptはWebページの動的な操作を行うためのスクリプト言語で、多くのウェブサイトやウェブアプリケーションがJavaScriptを使用しています。

そのため、JavaScriptライブラリに脆弱性があると、以下のようなリスクが発生します。

 

1. データ漏洩

攻撃者が脆弱性を利用してデータベースにアクセスし、ユーザーの個人情報やクレジットカード情報などを盗むことができます。個人情報の漏えいによるトラブルは企業のイメージを大きく損ねます。また企業イメージだけでなく、漏えいされたユーザーへの補償も大きな損害になります。

個人情報漏えいによる損害の事例については下記の記事をぜひご参照下さい。

【最新版】2022年9月発表、クレジットカード漏えい事件による不正利用被害が過去最高額を記録。漏えい事件の本音を大公開。

 

クレジットカード情報を漏洩するとどうなるの?決済代行会社に聞いたカード情報漏えいの賠償内容を大公開。

 

2. 不正操作

攻撃者がウェブサイトやウェブアプリケーションの操作を不正に制御し、正常なサービスを妨害します。不正なリンクを埋め込んだり、サイト自体を改ざんするようなトラブルに繋がることが多くあります。

 

3. マルウェアの拡散

攻撃者が脆弱性を利用してウェブサイトにマルウェアを仕掛け、訪問するユーザーに感染させることができます。

「Webサイトを閲覧してマルウェアに感染した」という話を耳にしたことがあると思います。これは攻撃者がVulnerable JS Libraryのあるサイトにマルウェアを仕掛け、知らずに見たユーザーが感染してしまうという事例になります。

もし、感染した人が取引先だったら・・・考えたくもないような事例です。

 

Java Scriptの脆弱性 をチェックする4つの方法

Java Scriptに潜む脆弱性であるVulnerable JS Libraryの脅威について書いてまいりました。

ではその脆弱性を発見・対策するための方法をご紹介します。

 

  1. 脆弱性データベースの確認する

脆弱性のデータベースはインターネット検索すれば多数出てきます。

社内に理解のあるエンジニアがいれば、CVE(Common Vulnerabilities and Exposures)、NVD(National Vulnerability Database)やSnyk脆弱性データベースなど、各種の脆弱性データベースには、既知の脆弱性とその影響を受けるライブラリやバージョンの情報が含まれています。これらのデータベースを定期的に参照することで、利用しているライブラリに存在する可能性のある脆弱性を特定することができます。

■脆弱性データーベース参照サイト

CVE

NVD

synk

 

  1. パッケージマネージャからの情報を調べる

JavaScriptのパッケージマネージャ(npmやyarnなど)は、パッケージが脆弱性を持つ場合に警告を表示することがあります。パッケージのインストールやアップデート時にこれらの警告を確認し、必要に応じて対応を行いましょう。

■JavaScriptパッケージマネージャサイト

npm

yarn

 

  1. コードレビューとテストを実施する

自身で開発したコードや、外部から取り入れたコードについてレビューを行い、テストを実行すれば不具合や脆弱性を発見する可能性があります。

 

  1. 脆弱性診断の実施

一番軽微な方法は脆弱性診断ツールの利用です。自動的にWebサイトをスキャンし、使用しているJavaScriptライブラリに脆弱性が存在するかどうかをチェックします。

secuas(セキュアズ)診断結果詳細画面

これらの方法を複合的に使用することで、Vulnerable JS Libraryを効果的に発見し、対策を行うことが可能です。

 

まとめ Webサイトの管理者とWeb制作会社の皆様に知って欲しいコト

secuasで診断させていただいたサイトの中で最も多いJava Scriptの脆弱性「Vulnerable JS Library」について色々書かせて頂きました。こういった技術的な問題というのはなかなか発見が難しく対応が後手に回ることが多いです。

しかし、万が一トラブルが発生した場合は知らなかったや気が付かなかったでは許されません。自社が管理するサイトで起きたトラブルは自社の責任になる為、尚更予防が必要とされます。

また、Webサイトを制作している制作会社様は、正しい対応をしなければご自身が納品したサイトが原因となり顧客がトラブルに巻き込まれることになります。

Webサイトを管理している方はぜひご自身で一度、ご自身のサイトに脆弱性が無いか確認してみてください。

Web制作会社様は納品をする前に今一度、脆弱性を診断して安全なサイトをクライアントに納品してください。

secuas(セキュアズ)はサイトに潜む脆弱性のリスク件数を無料で診断しています。登録は1分、診断結果まで5分で出ますのでぜひご活用下さい。