概要 リリース前に実施されるアプリケーションセキュリティテストには、静的アプリケーションセキュリティテスト(SAST)、動的アプリケーションセキュリティテスト (DAST)、および両者を組み合わせた対話型アプリケーションセキュリティテスト(IAST)が含まれます。 [ 5 ]
静的解析ツールは、プログラムのテキストを構文的に調べます。ソースコード内の固定されたパターンまたはルールを探します。理論的には、コンパイルされたソフトウェアの形式を調べることもできます。この手法は、コンパイルされたコンポーネントとソースコードコンポーネント間のマッピングを行うためにコードの計測に依存しており、問題を特定します。静的解析は、セキュリティを含むさまざまな目的で コードレビュー やコードの監査 として手動で行うことができますが、時間がかかります。[ 6 ]
SASTツールの精度は、分析範囲と脆弱性を特定するために使用される具体的な手法によって決まります。分析レベルには、以下のようなものがあります。
分析の範囲によって、コンテキスト情報を使用して脆弱性を検出する精度と能力が決まります。[ 7 ] SASTツールは、DAST ツールとは異なり、開発者にリアルタイムのフィードバックを提供し、コードを次のレベルに進める前に欠陥を安全にするのに役立ちます。
関数レベルでは、関数内のデータの流れを制御するために抽象構文木を構築するのが一般的な手法である。 [ 8 ]
1990年代後半以降、ビジネス上の課題に適応する必要性から、プロセスと開発チームの組織化によって強制されるコンポーネント化[ 9 ]によってソフトウェア開発が変革されました。 [ 10 ] アプリケーションまたはアプリケーション群のすべてのコンポーネント間のデータの流れを追跡することで、サニタイズ 専用の手順への必要な呼び出しを検証し、特定のコード内のデータを汚染するための適切なアクションが実行されるようになります。[ 11 ] [ 12 ]
ウェブアプリケーションの台頭に伴い、それらのテストが必要となった。Verizon Data Breachは2016年に、すべてのデータ侵害の40%がウェブアプリケーションの脆弱性を利用していると発表した。[ 13 ] 外部セキュリティ検証と内部脅威への注目が高まっている。Clearswift Insider Threat Index (CITI)は、2015年の調査で回答者の92%が過去12か月間にITまたはセキュリティインシデントを経験しており、これらの侵害の74%が内部関係者によるものであると報告している。[ 14 ] [ 15 ] Lee Hadlingtonは内部脅威を悪意のあるもの、偶発的なもの、意図的でないものの3つのカテゴリに分類した。モバイルアプリケーションの爆発的な成長は、悪意のあるコードの開発を減らすために、開発プロセスの早い段階でアプリケーションを保護する必要があることを意味する。[ 16 ]
SASTの強み SDLC の早い段階で脆弱性を修正すればするほど、修正コストは安くなります。開発段階での修正コストはテスト段階の 10 分の 1、本番環境の 100 分の 1 です。[ 17 ] SAST ツールはコード レベルまたはアプリケーション レベルで自動的に実行され、操作は不要です。CI /CD 環境に統合すると、重大な脆弱性が特定された場合に統合プロセスを自動的に停止するために SAST ツールを使用できます。[ 18 ]
他のタイプのテストと比較したもう1つの利点は、SASTツールはソースコード全体をスキャンするのに対し、動的アプリケーションセキュリティテスト ツールは実行をカバーし、アプリケーションの一部[ 5 ] や構成ファイル内の安全でない構成を見落とす可能性があることです。
SASTツールは、品質テストやアーキテクチャテストなどの拡張機能を提供できます。ソフトウェアの品質とセキュリティには直接的な相関関係があります。品質の低いソフトウェアは、セキュリティも低いソフトウェアです。[ 19 ]
SASTの弱点 開発者はSASTツールの使用に肯定的であるものの、その導入にはさまざまな課題がある。[ 4 ] 例えば、研究によると、これらのツールによって生成される出力は長いにもかかわらず、使いやすさに欠ける可能性がある。[ 20 ]
ソフトウェア開発におけるアジャイルプロセス では、このフレームワークを使用する開発者がまず機能と納品に集中するため、SASTの早期統合によって多くのバグが発生します。[ 21 ]
SASTツールで多数のコード行をスキャンすると、単一のアプリケーションに対して数百または数千の脆弱性警告が発生する可能性があります。これにより、多くの誤検出が発生し、調査時間が長くなり、ツールの信頼性が低下します。これは、脆弱性のコンテキストがツールで検出できない場合に特に当てはまります。[ 3 ]
参考文献 ↑ Okun, V.; Guthrie, WF; Gaucher, H.; Black, PE (2007年10月) 「静的解析ツールがソフトウェアセキュリティに及ぼす影響:予備調査」 (PDF) . 2007年ACMワークショップ「保護品質」議事録 . ACM. pp. 1–5 . doi : 10.1145/1314257.1314260 . ISBN 978-1-59593-885-5 . S2CID 6663970 . ↑ Ayewah, N.; Hovemeyer, D.; Morgenthaler, JD; Penix, J.; Pugh, W. (2008 年 9 月). "静的解析を使用してバグを見つける". IEEE Software . 25 (5). IEEE: 22–29 . doi : 10.1109/MS.2008.130 . S2CID 20646690 . 1 2 Johnson, Brittany; Song, Yooki; Murphy-Hill, Emerson; Bowdidge, Robert (2013年5月)「なぜソフトウェア開発者は静的解析ツールを使ってバグを見つけないのか?」 2013年第35回国際ソフトウェア工学会議(ICSE) pp. 672–681 . doi : 10.1109/ICSE.2013.6606613 . ISBN 978-1-4673-3076-3 。1 2 Oyetoyan, Tosin Daniel; Milosheska, Bisera; Grini, Mari (2018 年 5 月). 「静的アプリケーションセキュリティテストツールに関する神話と事実: Telenor Digital でのアクションリサーチ」. 国際アジャイルソフトウェア開発会議 . Springer: 86–103 . 1 2 Parizi, RM; Qian, K.; Shahriar, H.; Wu, F.; Tao, L. (2018年7月)「ソフトウェアセキュリティ脆弱性テストツールの評価のためのベンチマーク要件」 2018 IEEE 第42回コンピュータソフトウェアおよびアプリケーション会議 (COMPSAC) . IEEE. pp. 825–826 . doi : 10.1109/COMPSAC.2018.00139 . ISBN 978-1-5386-2666-5 . S2CID 52055661 . ↑ Chess, B.; McGraw, G. (2004年12月). "セキュリティのための静的解析". IEEE Security & Privacy . 2 (6). IEEE: 76–79 . doi : 10.1109/MSP.2004.111 . ↑ Chess, B.; McGraw, G. (2004年10月). "ソフトウェア設計におけるリスク分析" . IEEE Security & Privacy . 2 (4). IEEE: 76– 84. doi : 10.1109/MSP.2004.55 . ↑ 山口ファビアン、ロットマンマルクス、リークコンラート(2012年12月)「抽象構文木を用いた汎用的な脆弱性外挿」 第28回コンピュータセキュリティアプリケーション会議議事録 、第2巻、 IEEE、pp.359–368、 doi : 10.1145 / 2420950.2421003 、 ISBN 9781450313124 . S2CID 8970125 . ↑ Booch, Grady; Kozaczynski, Wojtek (1998 年 9 月). "コンポーネントベースのソフトウェアエンジニアリング". IEEE Software . 15 (5): 34–36 . doi : 10.1109/MS.1998.714621 . S2CID 33646593 . ↑ Mezo, Peter; Jain, Radhika (2006 年 12 月). "アジャイル ソフトウェア開発: 適応型システムの原則とベスト プラクティス". Information Systems Management . 23 (3): 19–30 . doi : 10.1201/1078.10580530/46108.23.3.20060601/93704.3 . S2CID 5087532 . ↑ Livshits, VB; Lam, MS (2006 年 5 月). 「静的解析による Java アプリケーションのセキュリティ脆弱性の発見」. USENIX セキュリティ シンポジウム . 14 : 18. ↑ Jovanovic, N.; Kruegel, C.; Kirda, E. (2006年5月). 「Pixy: Webアプリケーションの脆弱性を検出するための静的解析ツール」. 2006 IEEE Symposium on Security and Privacy (S&P'06) . IEEE. pp. 359–368 . doi : 10.1109/SP.2006.29 . ISBN 0-7695-2574-1 . S2CID 1042585 . ↑ 「2016年データ侵害調査報告書」 (PDF) 。Verizon 。 2016 年。 2016年 1月8日 取得 。 ↑ 「Clearswiftのレポート:企業の40%が来年中にデータ侵害を予想」 。Endeavor Business Media。2015年11月20日。 2024年 1月8日 取得 。 ↑ 「時限爆弾:企業の40%が今後12ヶ月以内に内部データ漏洩を予想」 Fortra。2015年11月18日。 2024年 1月8日 取得 。 ↑ Xianyong, Meng; Qian, Kai; Lo, Dan; Bhattacharya, Prabir; Wu, Fan (2018年6月)「静的コード解析における脆弱性検出器を用いた安全なモバイルソフトウェア開発」 2018年国際ネットワーク・コンピュータ・通信シンポジウム(ISNCC) pp. 1–4 . doi : 10.1109/ISNCC.2018.8531071 . ISBN 978-1-5386-3779-1 . S2CID 53288239 . ↑ Hossain, Shahadat (2018年10月) 「ソフトウェア経済における再作業と再利用の効果」 Global Journal of Computer Science and Technology.18 ( C4) : 35–50 . ↑ Okun, V.; Guthrie, WF; Gaucher, H.; Black, PE (2007年10月) 「静的解析ツールがソフトウェアセキュリティに及ぼす影響:予備調査」 (PDF) . 2007年ACMワークショップ「保護品質」議事録 . ACM. pp. 1–5 . doi : 10.1145/1314257.1314260 . ISBN 978-1-59593-885-5 . S2CID 6663970 . ↑ Siavvas, M.; Tsoukalas, D.; Janković, M.; Kehagias, D.; Chatzigeorgiou, A.; Tzovaras, D.; Aničić, N.; Gelenbe, E. (2019 年 8 月). 「技術的負債とソフトウェア セキュリティの関係に関する実証的評価」. Konjović, Z.; Zdravković, M.; Trajanović, M. (編). International Conference on Information Society and Technology 2019 Proceedings (データセット). Vol. 1. pp. 199–203 . doi : 10.5281/zenodo.3374712 . ↑ Tahaei, Mohammad; Vaniea, Kami; Beznosov, Konstantin (Kosta); Wolters, Maria K (2021年5月6日). 「静的解析ツールにおけるセキュリティ通知:開発者の態度、理解度、および対応能力」. 2021年CHI会議「コンピュータシステムにおけるヒューマンファクター」論文集 . pp. 1–17 . doi : 10.1145/3411764.3445616 . ISBN 9781450380966 . S2CID 233987670 . ↑ Arreaza, Gustavo Jose Nieves (2019年6月)「クラウドにおけるセキュアなアプリケーション開発のための方法論(MDSAC)IEEECSカンファレンス向け」 2019年第6回IEEE国際サイバーセキュリティ・クラウドコンピューティング会議(CSCloud)/2019 年第 5 回IEEE国際エッジコンピューティング・スケーラブルクラウド会議(EdgeCom) 。IEEE。pp . 102–106。doi : 10.1109 /CSCloud/EdgeCom.2019.00-11。ISBN 978-1-7281-1661-7 . S2CID 203655645 .