現代のソフトウェア開発に求められるSASTのポイントとは?
IoTの発展によりさまざまなモノがネットワークに繋がるいま、ソフトウェア開発の現場ではサイバー攻撃へのセキュリティ対策がより重要になっています。一方で、ソフトウェア開発におけるセキュリティ要件が厳しくなるにつれ、ソフトウェア開発者の作業負担が増え、本来の開発作業を圧迫してしまうという課題も生まれています。
SAST (静的アプリケーションセキュリティテスト) はソフトウェア開発者の作業負担を減らし、効率的にセキュリティや品質を担保できる手段のひとつです。すでに多くの企業でSASTが活用されてきていますが、ただSASTツールを導入するだけでは不十分な場合もあります。SASTの本来の価値を引き出すには開発者の求める機能を備えたSASTツールを選び、CI/CDやクラウド環境などとも連携した適切な運用を行っていくことが重要です。
SAST(静的アプリケーションセキュリティテスト)とは?
ソフトウェアのセキュリティを担保するには、ソフトウェア開発ライフサイクル (SLDC) の初期段階からセキュアコーディングプラクティスに則った開発を行うことが重要です。すでにCERTやCWE、OWASPといったセキュリティに関する優れたガイドラインが存在しており、多くの企業がこれらを参照して開発を行っています。しかし、現代の大規模なソフトウェア開発において「すべてのソースコードを人目で確認する」のは大変な作業です。
そこで活用されるのがSAST (静的アプリケーションセキュリティテスト) です。SASTとは、ソフトウェアを実行することなく、静的にソースコードを解析することでセキュリティ脆弱性などを自動的に検出する手法のことです。静的解析によってコードチェックを自動化することで、CERTなどのセキュアコーディングプラクティスに沿ったコーディングの徹底や潜在的な脆弱性の検出を行うことができるとともに、ソフトウェア開発者は日々の作業負担が軽減され「本来の開発作業により集中できる」ようになるメリットがあります。
現代のソフトウェア開発に求められるSASTのポイント
コードチェックを自動化できるSASTはとても便利ですが、とくに現代の大規模なソフトウェア開発においては、単にSASTツールを導入したからといって、効率化や品質改善の効果が十分に得られるとは限りません。SASTツールを導入したものの、静的解析の実行や結果の確認に手間/時間がかかる、大量の検出結果から重要な指摘を選別して修正する必要がある、など開発者の負担が大きくうまく活用されないケースも少なくありません。
開発者の求める機能を備えた適切なSASTツールを選ぶこと、またCI/CDやSCMなどのツールチェーンと組み合わせた効率的な運用を行うことでSASTの価値は高まります。
どのような視点でSASTツールの選定を行えばいいのか?「SASTに重要な4つのコア要素とSASTの価値を引き出す10のキーポイント」についてホワイトペーパーにまとめています。効果的なSAST活用を考えるうえでのヒントになる情報となっていますので、ぜひご一読ください。
<SASTの4つのコア要素>
・開発者中心
・簡潔な修正ワークフロー
・スピードと正確さ
・自動化されたセキュリティとコンプライアンス
+ SASTの価値を引き出す10のキーポイント
「SASTの価値を最大限に引き出す4つのコア要素10のキーポイント」はこちらからダウンロードください。
静的解析・単体テストツールC++test
C++testは、静的解析(コーディング規約チェック/フロー解析)、単体テスト、カバレッジの計測、実行時メモリエラー検出、効率的な運用や規格順守を補助する機能などを搭載したC言語/C++言語対応のオールインワンテストツールです。
MISRA C/C++、AUTOSAR C++14コーディングガイドライン、CERT C/C++コーディングスタンダード、CWEなどで定められた規約に基づくコーディングの支援や、単体テストやアプリケーション実行時に自動的にカバレッジを計測するなど、さまざまな要件に対応し、ソフトウェアの品質向上とテスト工数の大幅削減をサポートします。
また、C++testは、効率的な運用や規格遵守を補助する機能を搭載しています。第三者認証機関であるTÜV SÜD社よりIEC 61508およびISO 26262、IEC 62304に準拠したテストツールとして認証を取得済みです。また、CIツール連携、Docker連携、レポート生成、ダッシュボード表示など各種機能を搭載しています。