ますます高まる脆弱性診断の必要性
Webサイトが不正アクセスを受け、クレジットカード番号も含めた個人情報が流出したーー残念ながらそんなニュースが後を絶ちません。小売や製造、サービス業から研究機関に至るまで、業種や規模を問わず、多くのWebサイトが被害を受けています。
DX時代において、商品・サービスの販売やマーケティングなど、顧客とのつながりを維持する上でWebアプリケーションやモバイルアプリは不可欠な存在です。しかし、もしWebアプリケーションに脆弱性が存在してサイバー攻撃を受けてしまうと、改ざんや情報漏洩につながる恐れがあります。万が一、悪用されて詐欺や不正購入につながった際の補償や顧客対応はもちろん、当局への届出や原因究明、復旧作業には多大な時間とコストが必要となる上に、自社の信用やブランドも傷つきかねません。
中には「有名でもないうちの会社なんて狙われないだろう」と考えている企業があるかもしれませんが、それは違います。
今やサイバー攻撃はビジネス化しており、スキルがなくても容易に攻撃を行えるツールがSaaS形式で流通しています。サイバー攻撃者はそうしたツールを用いて、脆弱性のある攻めやすいサイトであれば無差別に攻撃し、重要な情報や金銭を手に入れようと試みています。したがって、サイバー攻撃は決して他人事ではありません。
そうした事態を防ぐには、攻撃者に先回りする形で自らWebアプリケーションをチェックし、深刻な脆弱性が存在しない状態で公開していくことが重要になります。度重なる被害を背景に、開発現場におけるセキュリティ意識が向上し、「セキュリティ・バイ・デザイン」や「DevSecOps」といった考え方も広がりつつあります。
さらに政府や業界団体も、Webアプリケーションのセキュリティ対策を求める動きを進めています。経済産業省では「クレジットカード決済システムのセキュリティ対策強化検討会」において、クレジットカード情報を扱う企業に対し、「サイトの脆弱性対策を必須とすべき」とする報告書をまとめました。また、クレジットカード業界のグローバルなガイドラインであるPCI DSSにおいても、脆弱性診断が要件の1つとされています。
脆弱性診断でも広がる、外注から内製化への動き
こうした背景から脆弱性診断の必要性は高まってきました。問題はどうすれば実施できるかです。
Webアプリケーションの脆弱性をきちんと見つけるには、SQLインジェクションやクロスサイトスクリプティングといった脆弱性がどのように悪用され得るのか、Webセキュリティに関する知見が必要となります。IT人材不足やセキュリティ人材不足が叫ばれる中、そうした知識を持った専門家が社内にいるケースは稀という事情もあり、これまでは外部の専門業者に診断を依頼するケースがほとんどでした。
しかし、外部委託にはいくつかの課題がありました。
1つはコストです。専門家による高品質な診断を受けられるのはいいのですが、それ相応のコストがかかります。サイトの規模によっては数百万、数千万単位に上ることもあります。中堅・中小規模の企業にとっては少なくない負担です。また、最近ではデジタル化の進展に伴い、一社で複数のWebサービスを展開することも珍しくありませんが、対象が増えれば比例して診断コストもかさんでしまいます。
もう1つは開発現場への負荷です。開発者はただでさえ忙しく、できることならばどうやって付加価値を生み出すかという部分に専念したいところです。もちろんセキュリティの重要性も認識していますが、診断の結果、修正が必要と判断されればさらなる工数が発生してしまいますし、進捗にも影響を与える可能性もあるでしょう。
一方で、診断事業者も人手不足で手がいっぱいという場合が多く、一度スケジュールを決めると開発の進捗に合わせた調整は困難です。年度末など依頼が立て込む時期になると依頼しても断られてしまうケースもあり、リリースのスケジュールに影響が生じることもあります。
こうした背景から、最近では外部の診断サービスに頼るだけでなく、ツールを用いて自社内で診断を内製化する動きが広がっています。
外部に依頼する場合に比べ、診断ツールを用いて内製すればコストを抑えることができます。また、サービスのリリース直前に脆弱性が発覚して慌てて修正するよりも、開発の実装やテストの段階に診断を組み込んで早期に脆弱性を検出した方が修正コストは少なくすみ、より本質的な意味でもコスト削減となります。
加えて、開発現場の事情に合わせて柔軟に診断を実施でき、アジャイル開発やスクラム開発といったスピーディにリリースしていく手法との親和性もあります。
大きく3種類に分類できるWebアプリ診断ツール
ツールを導入してWebアプリケーションの脆弱性診断を内製化する方針を決めたら、次に浮上する課題は「どの診断ツールを選ぶか」でしょう。
市場にはさまざまな脆弱性診断ツールが存在します。一体何がどう違うのか、その中から自社に適したものをどのように選べばいいのかで悩むのではないでしょうか。
それにはまず、診断ツールの特徴を知る必要があります。
そもそもWebアプリケーションの脆弱性診断は、一律に同じやり方で実施されるのではありません。Webサイトの作りに合わせて実施する必要があります。
このため診断は、大きく2つのステップに分けて行われます。1つは、診断対象となる画面まで到達するための「画面遷移」を再現するステップです。さまざまな画面遷移シナリオを網羅的に作成することにより、ユーザーの動線に合わせ、攻撃者が試す多様な攻撃パターンを踏まえ、繰り返し診断を実行できるようになります。
もう1つが、攻撃を模した特殊なデータをWebアプリケーションに送信し、どのように反応するかを確認して脆弱性の有無を判断する「攻撃&判定」のステップです。
診断ツールは、この2つのステップのうちどこまでを自動化し、どこから人間が行うかによって、「手動診断支援型」「シナリオ診断型」「自動診断型」の3タイプに分けられます。このほかに、開発工程の中で活用され、仕組みも異なる「開発組み込み型」が存在します。
手動診断支援型は、人間が使いこなすことを前提にしており、基本的には画面遷移シナリオの作成も攻撃の送信・判定も操作者が行います。スキルを持つ人が使いこなせば、非常に高い品質の診断が行えますが、誰でも使いこなせるわけではありませんし、作業に多くの時間を必要とします。
逆に、自動診断型は、画面遷移シナリオの作成から攻撃&判定まで、全てツールが自動的に実施するツールです。スキルがなくても手軽に診断を実施でき、ベースラインを満たしているかどうかを確認できますが、複雑なWebサイトやいくつかの条件が組み合わさって発生する複雑な脆弱性の診断は困難です。
さらに、この2つの中間に位置するのがシナリオ診断型です。画面遷移シナリオの作成は操作者が行いますが、その後の攻撃&判定はツール側が実施する半自動型といえます。ある程度複雑なWebサイトに対応でき、十分な品質の診断を効率よく実施できるバランスの取れたツールといえます。
3つの軸で検討することで、自社に合った診断ツールを選択
こうした特徴を踏まえた上で、自社に合ったツールを選択していくことになります。ユービーセキュアでは「自社のサイトの価値」「必要な診断品質」「運用方法」という3 つの軸に基づいて判断することをお勧めしています。
最初の「サイト価値の判定」は比較的分かりやすい指標です。それほど重要なデータを扱うわけでもなく、アクセスも多くないWebサイトに、多額の費用を投じて診断しても意味がありません。逆に、機密性の高い情報を扱い、自社の事業を支えるWebサイトならばしっかり診断し、脆弱性を修正する必要があります。自社がどのようなWebサイトを運用しているかを洗い出し、それぞれの価値に応じて優先順位をつけていきます。
次に、その優先順位に応じて、どこまでのセキュリティを達成すべきかに基づいて診断品質を設定します。
診断品質を決めるポイントは、「診断レベル」と「診断タイミング」です。診断レベルは、画面診断シナリオの「網羅性」と、検出する脆弱性の種類・正確性に基づく「診断の深さ」によって定義できます。また診断タイミングは、文字通りどのタイミングで、どのくらいの頻度で診断を実施するかであり、リリース前に実施するか、あるいは1年に1回などのペースで定期的に実施するかを、コストや開発体制、運用体制などを踏まえて決めていきます。
最後に、運用方法を検討します。簡単にいってしまえば「誰が診断を行うのか」です。外注ではなく、ツールを用いて診断を内製する場合は、「セキュリティ担当者」か「開発チーム」のどちらかが担うことになります。専属のセキュリティ担当者を置いて診断してもらう方法が最も始めやすいのは事実ですが、開発サイクルのスピードアップや社内での人材育成などを視野に入れ、開発チームが診断まで行う方法を採用する企業も増えています。
この3つの軸を、3種類の診断ツールにマッピングすることによって、自社に適したツールが浮かび上がってきます。
もちろん、場合によっては複数のツールを導入し、使い分けていくこともあるでしょう。いずれにせよ自社は何を守りたいのか、どのように守りたいのかという目的を踏まえ、ぜひ適切な診断ツールを選択し、活用してください。