脆弱性診断(セキュリティ診断)とは?必要性、種類、進め方を徹底解説
脆弱性診断(セキュリティ診断)とは、アプリケーションやサーバー・ネットワークなどに、セキュリティ面でのリスクがないかどうか判断するために行われるテストです。本記事では、脆弱性診断の意味や必要性、種類などをわかりやすく解説します。
脆弱性診断(セキュリティ診断)とは
脆弱性診断とは、Webアプリケーションやスマホアプリケーション、サーバー・ネットワークなどを対象に、脆弱性がないかどうか判断するテストを指します。
脆弱性診断には「ブラックボックステスト」や「ホワイトボックステスト」と呼ばれる方法があります。ブラックボックステストとは、攻撃パターンを送って対象の挙動をチェックする方法です。アプリケーションなどの実装後における脆弱性を検出することを主な目的として行われます。
ブラックボックステストはソースコードの中の脆弱性を検出することには適していないため、ソースコードの脆弱性をチェックする際はホワイトボックステストを行います。ホワイトボックステストはその内容から「ソースコード診断」と呼ばれることもあります。また、ホワイトボックステストはプログラムを実行して行う「動的解析」と、実行しないで行う「静的解析」に細分化されます。
脆弱性診断は、診断する対象や目的、認知したい脆弱性などによってさまざまな実施方法があります。設計から開発、リリースや運用など、実施するタイミングによってもその意味合いが異なります。脆弱性診断はこれらの条件に基づいて、適切なタイミングで適切な診断を実施することで、セキュリティ上の問題に対処することが求められます。
そもそも「脆弱性」とは
脆弱性とは、アプリケーションやサーバー・ネットワークなどを開発する過程で発生するセキュリティ上の欠陥のことです。言葉の通り「脆(もろ)くて弱い性質」であることから、この脆弱性がサイバー攻撃などのターゲットにされることがあります。
脆弱性が存在するソフトウェアに必ずしも被害が生じるわけではありませんが、外部からの攻撃といった脅威がもたらされ、被害が生じることがあります。
脆弱性診断の必要性とは
情報セキュリティ事故の未然防止
脆弱性を検出して適切に対策することで、外部からサイバー攻撃などを受ける可能性を抑えられます。また、社員による不正や情報の持ち出しといった事態に備えることも可能です。
情報セキュリティ事故が発生すれば、復旧や対策に追われることとなります。企業イメージを守るためにも、事故を未然に防ぐことが重要と言えます。
サービス利用者の安心を守る
買い物や仕事をオンラインで行うなど、現在はインターネットが生活に欠かせないものとなりました。脆弱性診断によってセキュリティ対策を行うことは、生活や経済を守るとともに、サービス利用者の安心を守ることに繋がります。
脆弱性診断の主な種類と診断対象
脆弱性診断は、診断する対象などによってさまざまな方法に分けられます。本項では、代表的な脆弱性診断の種類とその対象について解説します。
脆弱性診断 | 診断対象 |
---|---|
Webアプリケーション診断 | ・Webアプリケーション ・CMS |
ネットワーク診断 | ・Webサーバー ・ネットワーク機器 |
ソースコード診断 | ・Webアプリケーションのソースコード |
スマホアプリ診断 (ネイティブアプリ診断) | ・スマートフォンアプリ ・API |
標的型攻撃リスク診断 | ・メール環境 |
ハイブリッド診断 | ・Webアプリケーション |
プラットフォーム診断 | ・CMS ・ミドルウェア ・サーバーOS ・ネットワーク |
脆弱性診断とペネトレーションテストとの違い
脆弱性を検出するテストとして、脆弱性診断の他に「ペネトレーションテスト」があります。ペネトレーションテストとは、擬似的にサイバー攻撃を行うことでセキュリティを評価するテストです。実際にシステムへの侵入を試みることから、ペネトレーション(penetration・侵入)テストと名付けられ、日本では「侵入テスト」と呼ばれることもあります。
攻撃対象とする組織の構成・業務手順・業務を行う施設の特徴などを加味し、より具体的な攻撃シナリオを作成してペネトレーションテストを実行することもあります。このようなテストは「レッドチーム演習」もしくは「レッドチーミングオペレーション」などと呼ばれています。
このようなテストを行うことで、攻撃側がシステムに侵入できるかどうか、ターゲットとなる情報にたどり着けるかどうかといった点をチェックします。脆弱性診断は脆弱性を検出することが目的であるのに対し、ペネトレーションテストは攻撃が成功するかどうか実際に確認することが目的であると言えるでしょう。ペネトレーションテストは実践的なテストであるため、より高度な知識やセンスが必要です。
脆弱性診断ツールと手動診断の特徴について
ツール診断とは、コンピュータープログラムの一種である脆弱性診断ツールを使って行う診断です。プログラムを実行して得られる応答から脆弱性を発見する方法であり、その特徴から自動診断と言われることもあります。
それに対して、技術者が自ら検査することを手動診断と言い、ツールを使った診断よりも細かな検査ができる特徴があります。ツール診断と手動診断のどちらが優れているかという点よりも、それぞれのメリットを生かし、状況や予算などに応じて行うことが大切です。
次項から、ツール診断と手動診断、それぞれの特徴について詳しく解説します。
ツール診断による脆弱性診断の特徴
ツール診断では、セキュリティ対策を目的としたサービスを開発・提供しているセキュリティベンダーによるツールを用いて脆弱性を発見します。不正なHTTPリクエストを送ることによる疑似的な攻撃を行いますが、システムを実際に壊してしまうことはありません。
ツール診断は比較的手軽で、コストを抑えて実施できるため、開発段階から実施されるケースも多く見受けられます。また、定期的に実施することで、常にシステムを適切な状態に保つことを目的として使われることもあります。
ツールによる機械的な診断であることから、誤って脆弱性が検知されることもあります。人の手によって結果を確認し、補正することが求められます。
手動診断による脆弱性診断の特徴
手動診断は、セキュリティの知識を持った技術者であるセキュリティエンジニアによって行われます。セキュリティに関する専門知識やノウハウを持ったエンジニアであるため、ツールを使った機械的な診断では見逃してしまう点も発見できるメリットがあります。
また、ただ単に脆弱性を発見するだけではなく、より良い対策方法を提案してくれることがある点も、手動診断の特徴と言えるでしょう。
脆弱性診断ツールの診断内容
脆弱性診断ツールで行う診断の内容について、代表的なものを3つ紹介します。
①Webアプリケーション診断
Webアプリケーション診断は、サーバー上で稼働するWebアプリケーションを対象として行います。また、Webサイトのコンテンツを作成するCMS(コンテンツマネジメントシステム)などもアプリケーションとして検査されることがあります。
Webアプリケーション診断では、攻撃者の立場からアプリケーションに潜む脆弱性を発見します。第三者がシステムにアクセスし、情報の取得や改ざんなどを行う「SQLインジェクション」や、HTMLに悪意のあるスプリクトを埋め込む「クロスサイトスクリプティング」といった攻撃に対する脆弱性を見つけ、解析・報告します。
②プラットフォーム診断
Webサーバー・メールサーバー・DNSサーバーといったサーバーや、ネットワークを対象として行う診断です。サーバーOSやミドルウェアの既知の脆弱性や、ネットワーク機器の状態の安全性などに関する検査を行います。
プラットフォーム診断は、インターネットを介してシステム全体のチェックを行うリモート診断と、ネットワーク内で個々のシステムのチェックを行うオンサイト診断に分けられます。また、リモート診断とオンサイト診断の両方を行う場合もあります。
③ネイティブアプリ診断
iOSアプリやAndroidアプリといったスマートフォン・タブレット用のアプリを対象として行う診断です。
近年は、特定のWebサービスとサーバー間で頻繁にやりとりを行うネイティブアプリが一般的であるため、サーバーとの通信に関する対策を行うことが求められます。ネイティブアプリ診断は、スマートフォンやタブレットに残る情報の管理や、機械語から人間が理解しやすい言語に変換する逆コンパイルの対策など、アプリならではの問題に対する検査も行います。
特にWebアプリケーションの脆弱性診断が注目されている理由
前項で解説した診断のうち、最近はWebアプリケーションの脆弱性診断が特に注目される傾向にあります。Webアプリケーション診断が注目されている理由について解説します。
攻撃者からみたWebアプリケーションの脆弱性
- 攻撃するポイントや、攻撃方法の選択肢が多い
- 個人情報など、価値の高い情報を取得することを目的とした攻撃ができる
- 改ざんを目的とした攻撃ができる
システムの特性からみたWebアプリケーションの脆弱性
- 正常な通信と攻撃をシステムが見分けることが難しい
- Webアプリケーションは個々で機能や構成が異なるため、個別の対応が求められる
- 開発スケジュールの関係でセキュリティ対策が後回しとなり、脆弱性が放置されることがある
近年の傾向からみたWebアプリケーションの脆弱性
- 開発から時間が経つにつれて、見直しが難しくなる
- 短期間で何度もアップデートを行い、セキュリティ対策が追いつかないことが多い
- セキュリティ意識が高まることにより、利用するアプリのセキュリティ面をチェックする企業が増えている
セキュリティ事故による被害・リスク
さまざまな企業でセキュリティ事故が発生し、被害が発生しています。例として、これまでに発生したセキュリティ事故の内容を紹介します。
被害パターン | 被害内容 |
---|---|
情報漏えい | ショッピングモールが運営しているメールマガジンサービスのサーバーへ、SQLインジェクションを用いた不正アクセスが行われた。約半年間で複数回の不正アクセスが行われ、メールアドレスとパスワードの組み合わせが約24万件流出した。 |
改ざん | 金融機関のWebサイトに第三者からの不正アクセスがあり、利用者を悪質なサイトへ誘導するよう、Webサイトが改ざんされていた。 |
なりすまし | ドラッグストアのオンラインショップで、第三者が別のWebサイトから入手したと考えられるIDとパスワードを使って、会員になりすまして不正にログインした。一部の会員のアカウントで、ポイントが不正に利用されていた。 |
脆弱性診断の進め方と流れ
脆弱性診断を行うためには、まず診断する対象を決める必要があります。企業にとって重要度の高い部分であり、セキュリティ事故を起こしてはいけないシステム・サーバーなどを選定します。
診断を行うと、担当者からレポートが提出され、報告が行われることが一般的です。脆弱性の内容や深刻度を把握したのち、対応すべき脆弱性に優先順位をつけ、順位の高いものから対応していきます。
把握した脆弱性に対処した後も、半年や1年といった一定の間隔で診断を行い、セキュリティを維持します。
セキュリティを考慮した最適な開発には外部への委託がおすすめ
Webアプリケーションなどの開発には、セキュリティに関するさまざまな問題がつきものです。近年はセキュリティ意識が高まっているのにもかかわらず、依然として大規模なセキュリティ事故が発生しています。セキュリティ事故が生じて個人情報が流出したり、企業や病院の機能が一時的に停止したりといった報道を見かけた方も多いのではないでしょうか。
このような事態によるイメージの低下や、機会の損失を防ぐためにも、設計・開発段階からセキュリティを十分に考慮することが望ましいと考えられます。専門性の高いシステム会社に依頼し、より質の高い開発を目指すことをおすすめします。
ハイブリッドテクノロジーズの脆弱性診断サービス
脆弱性診断は既知のハッキング手法や脆弱性を利用してアプリケーションやITシステムのセキュリティをテストし、セキュリティレベルを向上させる重要な作業です。組織内の脆弱性評価チームを補完することはもちろん、脆弱性診断サービスを全面的に代行することも可能です。OWASP(Open Web Application Security Project)トップ10リスク(ウェブアプリケーション、モバイルアプリケーション、クラウドサービスのそれぞれ)のすべての項目に対し、専門家による手動診断とツールによる自動診断を行えます。
また当社はベトナム国家サイバーセキュリティ監視センターと提携を結ぶことで、より品質の高い脆弱性診断を提供しています。
ハイブリッドテクノロジーズの提供サービス
ハイブリッドテクノロジーズでは、ビジネスデザイン、UIUXデザイン、設計、実装、テスト、リリース、運用、保守まで一気通貫してサービスを提供しております。500名以上の経験豊富なエンジニアにより、迅速かつ高品質なシステム開発が可能です。 アジャイル開発、ウォーターウォール開発、ハイブリッド開発と言った様々な開発手法に対応しており、契約形態に関しましてもラボ型契約と受託型契約の2つから選択いただけます。お客様の状況や開発内容に応じて、開発手法と契約形態を柔軟にご指定いただけますが、それぞれの開発手法、契約形態の特徴の親和性から、アジャイル開発ではラボ型契約が、ウォーターウォール開発とハイブリッド開発では受託型契約を選択されるクライアント様が多数を占めます。
ラボ型開発について: ラボ型開発 サービス
受託型開発について: 受託開発 サービス
ハイブリッドテクノロジーズが選ばれる理由
弊社ではクライアント企業様及びエンドユーザー様の声を聞き、UIUXを意識したビジネスデザインを行なっております。 テーマを決めて分析し、仮説を立ててビジネスデザインを行い、プロトタイピング、検証、フィードバックを受け、再度分析から始める。 この一連の流れを、アジャイルスクラム開発に精通した500名以上のエンジニアが高速で回していくことにより、最速でより良いものを実現していきます。 ハイブリッドテクノロジーズには市場の声を現実にするための仕組みとメンバーが揃っています。
システム開発の成功事例
システム開発での成功事例をご紹介します。
見守りサービス (株式会社otta)
サービス内容
位置情報履歴を、無料スマホアプリやメールを通じて保護者様に伝えるサービス
サービス上の課題/目指したいサービス
課題
共働き世帯や高齢者の増加など、社会構造の変化により、子どもや高齢者の見守りへのニーズが急速に高まっている。一方で、見守る方々の高齢化や地域コミュニティの変化により担い手は減少方向にあり、この需給ギャップを埋めるには、見守りの仕組みの生産性を大幅に向上させなければならない。
目指したいサービス
IoTを活用した見守りサービスのパイオニア企業として、見守り活動の生産性の飛躍的な向上に貢献するとともに、従来のサービスでは困難であった、多くの方々にご利用いただける料金体系を目指すこと。
クライアントの課題/要望
・追加開発体制のリソースが不足している
・既存ベンダーの開発チームと組み合わせながら、チームを構築したい
・事業状況に応じて柔軟にリソースを調整したい
当社を選択していただいた理由
キャピタル案件であり、HTからの投資次第で開発も頼みたいという理由から
当社ご提案内容
業界ラボ型(ストック)開発+保守にて提案
toB向け見守り管理システム開発
・今後の基盤変更も意識しながら登園バス管理システムの管理画面を作成し、サービス展開をしていきたい
・今後の開発体制構築も視野に入れつつまずはスモールに体制を構築しつつ今後の足掛かりとしたい
リソース活用し柔軟に対応できることと、javaを中心に進めていたが、よりモダンな言語を基盤に開発を進めたいという要望に対し、得意分野であった。
学習履歴データの可視化システム(放送大学学園)
サービス内容
学習履歴データ可視化システムの開発
サービス上の課題/目指したいサービス
課題
オンライン授業システムのデータベースには多量の学習履歴データが蓄積されており、このデータを学内の担当者が活用できるよう整備し、学生指導のためのヒントとして、あるいは学生に受講を促すための情報源として活用したいという意向があった。
目指したいサービス
・学外に開示する「サービス」ではなく、学内担当者用の「ツール」であること
・コマンドラインで操作可能なツールであること
・追加機能の実装をできるようにすること
クライアントの課題/要望
・社内で開発体制を保持していないこと
・金額をミニマムに抑えながら安定的な運用を実現したい
当社を選択していただいた理由
充分に仕様を満たす提案内容と他社と比較して最も安価な金額で入札提示したため。
当社ご提案内容
学習履歴データベースとBIツールの開発
オンライン授業システムのデータベースに蓄積された学習履歴データを活用するにあたって、実運用されているDBの処理とバッティングしないように、MongoDBに格納する処理にて開発を進めました。またMongoDBにデータを格納する際、他データとの連携も考慮し、汎用的なExperienceAPIに準拠したデータ形式を採用しました。
個人情報の扱いにおいては、開発人員含め、学生の個人情報の漏洩を防ぐため、学生の識別子を匿名化しての実装を実施しました。
DocIT (株式会社ドキットメディカルサービス)
サービス内容
働き口を探す医療従事者と、働き手を求める病院をつなぐマッチングプラットフォーム
サービス上の課題/目指したいサービス
課題
高額な紹介料がネックとなりスポットで人が必要な際に苦心をする病院の課題解決
目指したいサービス
休日や長期出張の空き時間を有効活用したい医師と、長期連休などで一時的に人手が必要となる病院をマッチングすることで医師の働き方の多様化を実現するサービス
クライアントの課題/要望
・サービス構想はあるが、実現させる開発パートナーが必要
・上流工程からの開発サポートが必要
当社を選択していただいた理由
開発にあたってサービス設計から本開発まで、一緒に伴走し考えながら開発してくれるパートナーとして安心感を感じて頂き、当社を選ばれました。
当社ご提案内容
ラボ型(ストック)開発にて提案
1.医療求人の性質を鑑みた機能提案、システム設計・開発
本サービスでは失敗の許されない医療系求人を取り扱うため、求人マッチングをする前に信頼のできる医師・病院であることを確認できることが重要となります。 そこで、実際に求人マッチングした医師・病院による相互レビュー機能を実装することで、信憑性の高いレビュー情報を蓄積することを提案・実現しました。 また、求人マッチング前に病院担当者と直接チャット出来る機能も実装することでレビューでは分からない定性的な情報確認も可能としました。 アジャイルスクラム手法の開発を取り入れることにより、システム開発の進捗報告を実際に動くシステム画面をお見せしながらデモンストレーション形式で毎週行いました。
2.定期的なスプリントを繰り返し、顧客と一緒に品質を高めるプロセスにて進行
実際に動くシステムを毎週見ていただくことで、開発進捗についての安心感やお客様も気がついていなかった新たな改善点がを発見でき、それを修正して再度デモンストレーションを行いました。この一連の流れを回すことで、お客様の求めるものを高い品質でご提供しました。
3.デザインを用いた視覚的なアウトプットで、具体的なシステムイメージを共有
Webサービス開発に初めて挑戦するお客様のため、お客様が思い描くビジネスを実現するためのシステムイメージを具体化していくデザインサポートも担当。求人情報サービスという特性上、さまざまな情報要素が混在する中で、目に見える形でデザインを整理・提案し、お客様からのフィードバックを受け、再提案を繰り返すことで、よりユーザーにとっての最適なWebサービスのための設計・提案・実現を行いました。
THINK, Reviewers (株式会社スパイス ボックス)
サービス内容
独自の「ソーシャルリスニング」手法をもって、企業と生活者の 間に生きたコミュニケーションを構築するサービス
サービス上の課題/目指したいサービス
課題
インフルエンサーの評価指標としてフォロワー数とエンゲージメント数が重要視されているケースが多いが、商品販売施策においては保存数が重視される。保存数を把握した上でインフルエンサーと企業のマッチングを行うプラットフォームが存在していなかったため、新たなサービスとしてスピード感を持ってサービス開発を行いたい。
目指したいサービス
・サービス名「THINK」:Twitter調査における既存システムの安定的かつ継続的な運用を維持しつつ、インフラコストを削減すること。
・サービス名「Reviewers」:インフルエンサーマーケティングで投稿保存数という指標を重要視するインフルエンサーマッチングプラットフォームの新規立ち上げをすること。
クライアントの課題/要望
・開発が発生した際に、都度RubyonRailsの対応人員を増やすのが難しい
・インフラ周りに強いメンバーがいない
・金額をミニマムに抑えながら安定的な運用を実現したい
・追加開発が発生した場合には、知見を維持した状態で取り組める体制がほしい
当社を選択していただいた理由
・開発リソースの柔軟性とインフラなど対応範囲の幅広さが先方ニーズにマッチしていたこと
・定常運用の際にもコストを抑えて対応できること
当社ご提案内容
受託型開発(フロー)にて提案
インフラ知見を持つディレクション人材をアサインメントすることで、インフラ周りの調整や業務対応にスピード感を持って対応できる体制を構築
インフラ/保守/開発を幅広く対応可能、かつ、コストミニマイズなオフショア体制をご提案しました。
ディレクション人材がインフラの知見を持ち、定常作業はベトナム側で行えるようにマニュアル化を行い、コストミニマイズしながらも幅広い知見を活かせる体制提案を行いました。
新規の開発が発生した際に、既存チームの知見を活かしながら適宜開発者を追加して、素早く開発を実行できる体制を実現しました。
その他システム開発事例
ハイブリッドテクノロジーズでは、その他にもモバイルアプリや業務用アプリケーションまで、多種多様な290社以上の制作実績がございます。
システム開発をご検討の方はぜひ一度お問い合わせください。
まとめ
脆弱性診断はアプリケーションやシステムなどをセキュリティ事故から守るため、脆弱性を発見することを目的に行われるテストを指します。第三者からの攻撃や、内部で起こる情報の漏えいや持ち出しといった事態に備えるため、開発中だけではなく、開発後も脆弱性診断を定期的に行うことが望ましいとされています。
また、脆弱性診断を行うだけではなく、セキュリティを十分に考慮したシステムを利用することも重要です。質の高いシステムを開発・利用することで、リスクを適切に管理しましょう。