【ソースコード診断】潜在的な脆弱性を早期に発見し、効率的な開発をサポート

ソースコード診断は、お客様のサービスをより早く、より安全に提供するために不可欠な脆弱性診断の一手法です。

今回は、当社が提供しているソースコード診断についてご紹介します。

ソースコード診断とは

ソースコード診断とは、動作しているプログラムの「材料」や「レシピ」とも言えるソースコードそのものを診断する脆弱性診断です。

一般的な脆弱性診断が、動作している完成品に対して外部から挙動を観察するのに対し、ソースコード診断はプログラムとしてまだ動いていない状態のレシピそのものを見て診断する「静的解析」の手法を用いているのが特徴です。

これにより、外部からでは検知が難しい潜在的な脆弱性を容易に発見できます。例えば、有名なサイバー攻撃であるSQLインジェクションは、SQL文をユーザからの問い合わせに差し込むことによって、データベースから情報を盗み出したり改ざんしたりするものです。どのような文字列を差し込むとどのようなことが起きるのか、一般的な脆弱性診断のように外部から想定・検知するのが難しいという特徴があります。

しかし、ソースコード診断では、データベースへの問い合わせ時に問題が起きやすい「文字列と文字列を連結している箇所」を直接見つけることで、SQLインジェクションの被害を受けるリスクがある箇所を一目で判断できます。

ソースコード診断が必要な理由

動的な診断では発見が困難な問題への対処や、開発スケジュールの遵守のために、ソースコード診断(静的解析)は重要な役割を果たしています。

1.公開スケジュールの遅延防止

ソースコード診断は、プログラムが実際に動作し始める前、つまり材料やレシピの段階で実施するものです。

Webアプリケーションなどを開発する際、完成品ができてから診断を行い修正する場合に比べ、途中の段階でソースコードそのもののリスクを見つけ修正する方が開発にかかる工数が少なくなり、公開スケジュールの遅延を防ぐことができます。

2.脆弱性の根本的な原因特定

動的解析では、完成品がなければ問題が発生している場所を特定しにくい場合があります。環境を用意し、プログラムを入れ、実際に動く状態で診断を行います。

一方ソースコード診断では、ソースコードのどの部分で問題が起きているかを具体的に特定できるため、脆弱性に対して根本的な対応が可能となります。

当社が提供するソースコード診断の強み

当社では、ツールによる解析に加えて、手動で行う独自の診断体制と評価基準を持つことで、質の高いサービスを提供しています。

1.ツールによる効率化 × セキュリティエンジニアによる高い精度

ソースコード診断には専用ツールが存在し、多くのルールに基づいてSQLインジェクションやクロスサイトスクリプティング(XSS)などの脆弱性を検出します。他社が提供しているサービスも含め、ソースコード診断にはツール診断が用いられることが一般的です。

しかし、ツール診断には過検知も含まれるため、検出した結果が必ずしも正しいものではありません。お客様からの信頼を失うことなく高い精度でサービスを提供するためには、ツールを活用しながらも、最終的にはセキュリティ診断に精通した人の目で診断していくことが必要です。

当社では、効率化を図りコストを軽減するためツールを活用していますが、セキュリティに精通したエンジニアが最終判断をし、過不足のない情報をレポートにしてお客様に提出しています。

ツール診断が主流となる中でも、こうした品質への評価などから、定期的に当社へ診断のご依頼をいただくお客様も多くいらっしゃいます。

2.多言語への対応

セキュリティエンジニアが対応することで、多種多様な開発言語の診断が可能であることも当社のソースコード診断の特徴です。

ツールが対応していない言語であっても、オープンソースのツールを活用したり、手動での目視検査を組み合わせたりと、お客様のニーズに柔軟に対応することが可能です。

当社で診断実績のない言語、また他社でお取り扱いのない言語の場合でも、お気軽にご相談ください。

<診断実績>

  • Java
  • JavaScript / TypeScript
  • PHP
  • Python
  • C#
  • VB.net
  • Swift
  • Kotlin
  • Go
  • C
  • Dart
  • Apex
  • Ruby

3.客観的かつ定量的な評価手法

当社が提供するソースコード診断では、結果の脆弱性評価としてCVSSに基づいた国際標準を採用しています。これにより、評価の客観性および定量性を担保することができるとともに、優先度の設定も容易となります。

サービスプランと費用体系

当社のソースコード診断は、診断対象となるソースコードの「行数」や検査手法に合わせ、4つのプランをご用意しています。

特徴推奨対象検査対象言語プラットフォーム行数検査手法
プラチナ高度な攻撃を想定した診断特定業務向けアプリケーションすべて無制限専門技術者による目視解析
ゴールド
※人気プラン
大局的な誤りによる問題の検知広く公開されるアプリケーションPHP・Java・C#・VB.NETJavaScriptなどを含む28言語無制限ソースコード解析+中間コード解析
シルバー緊急度の高い問題を素早く洗い出す社内利用などに限定された中規模アプリケーションPHP・Java・C#・VB.NETJavaScriptなどを含む22言語100,000 行ソースコード解析
ブロンズコストを抑えた診断ごく小規模なサーバアプリケーションPHPJava50,000 行ソースコード解析

お気軽にお問い合わせを

クラフでは、脆弱性診断をはじめ、セキュリティ監視など総合的なセキュリティサービスを提供しています。セキュリティに関するご相談、ご質問がございましたらお問い合わせフォームからお気軽にご連絡くださいませ。