脆弱性スキャンの現状:対象は3倍になり頻度は 20倍になっている

Vulnerability Scanning Triples, Leading to Two-Thirds Fewer Flaws

2022/02/09 DarkReading — Veracode の最新レポート State of Software Security によると、10年前との比較において企業は、アプリケーション・セキュリティ・テストの頻度を高めており、スキャンの対象となるアプリケーション数は3倍に、また、アプリケーションごとのスキャン回数は20倍になっている。

Veracode は、DevSecOps と呼ばれる文化的変化の特徴である、スキャン頻度の増加や、テストとデプロイの自動化、開発者の教育などに注力した結果として、脆弱なライブラリの数が 3分の2に減少し、欠陥の修正に要する時間が 3分の1に短縮されたとしている。

サードパーティ製ライブラリの 77 %は、公開から3ヵ月後も既知の脆弱性を抱えていますが、これらのライブラリの欠陥の半減期に達する速度は3倍になっている。

Veracode の Chief Research Officer である Chris Eng は、「全体的に見て、開発者は正しい方向に進んでいるが、まだまだ先は長い。しかし、物事は良い方向に進んでおり、人々が脆弱性の早期発見に注意を払っていることを示している。さまざまなスキャン手法の導入が進み、脆弱なライブラリが大幅に減少していることが分かる」と述べている。

このレポートは、Veracode のデータベースに登録されている、すべてのアプリケーションを調査し、数年にわたる傾向を分析した結果である。

10年前、典型的な Veracode の顧客は、平均して年に2〜3回のスキャンを行っていたが、現在では、ほとんどの開発者が、毎日の静的解析スキャンと毎週の動的解析スキャンを行っている。たとえば、2010年には、少なくとも毎週スキャンされているアプリケーションは全体の 10%に過ぎず、平均的なアプリケーションでは月に1回もスキャンされていなかった。2021年には、90%のアプリケーションが週1回以上の頻度でスキャンされるようになった、とレポートは述べている。

Eng は、「継続的なテストとインテグレーションにより、パイプラインにセキュリティスキャンが組み込むことが当たり前になり、ユーザーがアプリケーションをスキャンする頻度にも、それが反映されている。ライフサイクルの早い段階で問題を発見できれば、将来的に大きな問題になる前に、迅速に解決できる可能性が高くなる」と述べている。

アジャイル開発が軌道に乗ったことで、脆弱性の傾向にも影響が生じているようだ。それを示す傾向とは、さまざまな開発チームにおいて、モノリシックなプログラムを小さなサービスの集合体であるマイクロ・サービスへと分割する動きが見られることだ。Veracode によると、複数のフレームワークや言語を使用しているアプリケーションは、2018年の 20% から、2021年には 5% 以下に減少している、つまり、複数の言語を使用する大規模なソフトウェア・プロジェクトが、珍しくなくなってきていることが示唆される。

Eng は、「アプリケーションは、時間が経つにつれて、どんどん大きくなるものだと思われている。しかし、我々は、アプリケーションが小さくなっていることを確認している。これらの、単一の言語で書かれたアプリケーションは、開発者がマイクロサービス・アーキテクチャを採用していることを示している」と述べている。

テストの種類に応じて、発見される脆弱性の種類が異なるという傾向も見られた。ただし、情報漏えいは、どのテスト手法でも共通して発見される問題だった。たとえば、静的解析では、CRLF インジェクション、情報漏えい、暗号の問題などが多く発見され、動的解析では、サーバの構成、安全でない依存関係、情報漏えいの問題などが多く発見された。また、ソフトウェア構成解析 (Software composition analysis:SCA)では、入力検証の不足や、情報漏えい、カプセル化などの問題が多く発見された。

また、それぞれのプログラミング言語ごとに、発生しやすい脆弱性の傾向もあった。Java では CRLF インジェクション、Python では暗号化、C++ ではエラー処理などの脆弱性が多く発見された。ソフトウェア構成分析 (CSA) により発見された脆弱性の修正には、最も時間が掛かるという傾向があった。その理由は、プロジェクトのメンテナから開発者にまで、修正の対応が及ぶためと考えられる。

それぞれの手法で発見された欠陥の修正に必要な半減期は、ダイナミクス解析では 143日、スタティック解析では 290日、SCAでは 397日か掛かったと Veracode のレポートは述べている。しかし、SCAへの対応結果は、実際には大幅に改善されている。2017年の時点では、問題の半分にパッチを当てるのに、3年以上を要していた。

同社は、「複数のツールを使用して、多様なスキャンを行うことで、修正時間が短縮され、セキュリティ負債が減ることが判明した。したがって、この変化は、アプリケーション・セキュリティの将来にとって良いことだと考えられる。モノリシック・アプリケーションやウォーターフォール型の開発へと、歴史の振り子が戻るかどうかは分からないが、いまのところ、その可能性はなさそうだ」と述べている。

Veracode社 の調査によると、オープンソースのライブラリは、最も人気のあるライブラリは過去5年間で不動である。たとえば、Java アプリケーションのコードの 97% 以上は、オープンソース・ライブラリを使用している。しかし、過去5年間で、欠陥のあるライブラリの割合は減少しており、Java/JavaScript/Pythonでは大幅に減少している。

このレポートには、「ここでの大きな教訓は、開発者は試行錯誤したライブラリを使い続けるだろうということだ。最新のホットな商品を手に入れるために、コードベースがリファクタリングされることはなさそうだ。アップデートに関しては、ライブラリに欠陥がないときはゆっくりと行われ、欠陥があるときは素早く行われている。オープンソースの開発者が、セキュリティ上の欠陥を修正し続ける限り、それらのライブラリは開発者に使い続けられるだろう」と記されている。

脆弱性スキャンには、静的解析と動的解析だけではなく、ソフトウェア構成解析 (Software composition analysis:SCA) というものもあるようです。それぞれの手法に応じて、発見される脆弱性の種類も異なるようです。いずれにしても、脆弱なライブラリの数が 3分の2に減少し、欠陥の修正に要する時間が 3分の1に短縮されたということは、とても好ましい展開です。

%d bloggers like this: