メディア

攻撃者に先回りして潜んだ脆弱性を見つける「Web脆弱性診断ツール」の選び方セキュリティ専門家の上野宣氏に聞く

脆弱性を突いたサイバー攻撃は、事前に対応していれば防げる問題だが、被害は後を絶たない。こうした事態を未然に防ぐ上で、攻撃者に先回りして脆弱性を見つける「Web脆弱性診断ツール」が有用だ。ツールの特性や選び方、脆弱性問題に対応する上で企業として気を付けるべきことをセキュリティの専門家である上野 宣氏に聞いた。

» 2022年07月25日 08時00分 公開
[高橋睦美キーマンズネット]

 今や連日のように、サイバー攻撃による被害が報じられるようになった。ただ、一口に「サイバー攻撃」といっても、その種類はさまざまだ。

 たびたび報じられている攻撃の一つがEmotetだ。実在する人物の名前をかたり、それまでのやりとりを踏襲したメールで人をだましてマルウェアに感染させる手口で知られる。いくら注意しても、それをかいくぐって人の心理を突いてくることが特徴で、感染はある程度やむを得ない部分もあるだろう。

 一方、システムを運用する上で必要な義務を果たしていれば防げたはずの被害もある。それが、脆弱(ぜいじゃく)性を突いたサイバー攻撃だ。脆弱性情報を把握してパッチを適用したり、あらかじめ修正したりしていれば防げる問題だが、残念ながら被害は後を絶たない。しかもWebアプリケーションの場合、自社が被害に遭うだけでなく、保存されていた個人情報などが漏えいし、被害者であると同時に加害者となってしまう恐れがある。

 「Web脆弱性診断ツール」は、こうした事態を未然に防ぐ上で有用だ。攻撃者に先回りする形で自らSQLインジェクションやコマンドインジェクション、クロスサイトスクリプティング(XSS)といった脆弱性を見つけ出して修正することで、自社のシステムやサービス、顧客を守れる。そんなWeb脆弱性診断ツールが果たす役割と選び方について、セキュリティの専門家であるトライコーダの上野 宣氏に聞いた。

インタビュイー:上野 宣氏(トライコーダ 代表取締役)

 2006年にトライコーダを設立し、ハッキング技術を駆使して企業などに侵入する「ペネトレーションテスト」や「サイバーセキュリティ実践トレーニング」などを提供。

 OWASP Japan代表、Flatt Security社外取締役、グローバルセキュリティエキスパート 社外取締役、ScanNetSecurity 編集長などを務め、第16回「情報セキュリティ文化賞」受賞、第11回アジア・パシフィック情報セキュリティ・リーダーシップ・アチーブメント(ISLA)を受賞。

 主な著書に「Webセキュリティ担当者のための脆弱性診断スタートガイド - 上野宣が教える情報漏えいを防ぐ技術」「HTTPの教科書」など、他多数。

3種類に分けられるWeb脆弱性診断ツール、それぞれに得意、不得意も

 最近はマイクロサービスが広がりつつあるが、Webアプリケーションは基本的にOS上でWebサーバなどのミドルウェアが動作し、さらにその上で個別に開発したWebアプリケーションプログラムが動作するという構成を取る。それぞれに脆弱性が潜む恐れがあるが、OSやミドルウェアなどベンダーが提供するソフトウェアの脆弱性は「プラットフォーム診断ツール」でチェック可能だ。一方、実現したいサービスに合わせて、JavaやPythonなどさまざまな言語で開発されたWebアプリケーションの脆弱性を見つけ出すのが、Web脆弱性診断ツールとなる。

 上野氏は、Web脆弱性診断ツールにもいくつかの種類があると説明した。具体的には「自動診断ツール」「手動診断ツール」(手動診断補助ツール)、そして「ソースコード解析ツール」だ。それぞれのツールの特徴を解説する。

 自動診断ツールは、診断対象のURLを入力すると自動的に検査を行ってくれるツールだ。手軽に使える上に、SQLインジェクションやXSSといった「インジェクション系」の脆弱性を見つけ出すのが得意だが、弱点もある。

 「一番苦手なのはアクセス制御の問題です。例えば、ファイル共有サービスに複数の人がアクセスできる状態はいいのか、だめなのかは、設定したルールを見なければ分かりません。自動診断ツールはまだ、ルールを自動的に理解するところには至っていません」(上野氏)。また、ショッピングサイトや会員制サイトなど、サービスそれぞれに応じた「ビジネスロジック」に抜け道がないかを調べたり、「CHAPTCHA」「パズル認証」のような人間が関わる必要のあるコンポーネントが組み込まれているサイトの診断も、あまり得意とは言えない。

 こういった部分を補えるのが手動診断補助ツールだ。コンテキストやビジネスロジックといった人間の判断が必要とされる部分も含め、より少ない手間で検査できる。

 またソースコード解析ツールは、アジャイル開発やCI/CD(Continuous Integration/Continuous Delivery:継続的インティグレーション/継続的デリバリー)との関連で注目されつつあるツールだ。何らかの言語で書かれたソースコードを直接チェックし、セキュアではない書き方をしていないかを指摘してくれる。ただこれも、自動診断ツール同様に、アクセス制御やビジネスロジック周りの問題点は発見が難しい。

 ならば、問題を見つけるには手動診断補助ツールが一番良いかというと、そうとも言い切れない。「手動診断はどうしても時間がかかってしまいます。開発工程の中でその時間を確保できるかというと難しいでしょう」(上野氏)。対象や診断士のレベルにもよるが、自動診断ツールならば1日で100ページ、200ページといった対象を検査できるのに対し、手動の場合、スピードは10分の1以下になってしまう。

 もう一つの課題は、一定レベルの診断技術を持つ専門家を集められるかどうかだ。Webアプリケーション開発者が誰でも脆弱性診断を行えるかというと、残念ながらそうはいかない。そこで多くの会社が頼っているのが、外部のセキュリティ専門企業が提供する診断サービスの利用だ。開発の最終工程に当たるテスト段階で診断を外注し、チェックするというやり方だ。

 ただこの場合、工数や期間がそのままコストに反映される。

 「手動診断は非常に時間がかかります。当然、それを実施するセキュリティエンジニアのコストがかかるわけで、その分、費用に跳ね返ってきてしまいます」(上野氏)

 上野氏はさらに「今、開発のやり方はウオーターフォールからアジャイルへと変化しつつあり、開発スパンも、かつては数カ月かけてリリースしていたのが、1〜2週間ごとに新しいものがリリースされるようになっています。こうした短期スパンの中で手動の診断が使えるかというと難しいでしょう」と指摘し、うまく自動診断ツールやソースコード診断ツールを活用すべきだとした。

ツール自体の機能に大差はない? 決め手は目に見えない「サポート」

 Web脆弱性診断を実施するに当たって気になる問題は「予算」だろう。ちょっと検索してみれば分かるように、「OWASP ZAP」などオープンソースソフトウェアとして公開されている無償の手動診断補助ツールにはじまり、数十万、さらには数百万単位のものに至るまで、はっきり言えば「ピンキリ」という状態だ。いったいどう見極めていくべきだろうか。

 意外なことに上野氏は、「自動診断ツールと手動診断補助ツール、ソースコード診断ツールと種類は異なりますが、どんな脆弱性を発見できるかの機能については、ツール自体の差は大きくはないと思います」と述べた。では何が違うかというと、「サポート」だという。

 例えば、深く正確に診断するには、そのアプリケーションの挙動を知らなければならない。しかも近年、Webアプリケーションの構造は複雑化し、他のアプリケーションや外部のアイデンティティープロバイダーと連携することも珍しくない。蓄積してきたノウハウを基に、そうした部分をしっかり検査するコツを提供できるサポートの有無が、有償ツールの利点だという。

 また、ツール自体も徐々に進化している。例えば自動診断ツールでは一般的に、検査前に「どのようにユーザーは巡回するか」を最初に記録し、ツールに教えてあげる必要がある。ただ、「AeyeScan」のようにその部分も自動化すべく、AI(人工知能)を利用した診断ツールやSaaS(Software as a Service)型のサービスも登場している。「この領域はどんどん進化し、今まで人間がやらなければいけなかった部分をちょっとだけ肩代わりしてくれるようになっています」(上野氏)。

 だが、完全に自動診断ツールだけで完了する時代はまだ到来していないのも事実だ。各ツールの特質、人間が関与する診断サービスならではの特質を踏まえ、予算の枠内で最適な組み合わせを見いだしていくことになるだろう。

 そして大事なのは、ツールを適切に活用することだ。Webアプリケーションには、オペレーションミスなど、ツールだけではカバーできないリスクも存在する。そのことを頭に入れてWebサイト全体のリスクを見通し、どの部分を脆弱性診断ツールでカバーできたか、つまりツールの「スコープ」を把握しておくことが重要だとした。「そうした目を養うには、勉強会に参加したり、外部の専門家をコンサルタントとして雇ったりする方法もあるでしょう。やはり長い目で見て一番良いのは、社内にセキュリティに詳しい人を育てていくことでしょう」(上野氏)。

エンジニアがセキュリティ診断スキルを身につける支援体制を

 長年セキュリティ業界に携わってきた上野氏は、書籍やメディア、コミュニティーなどさまざまな場を通して、Webアプリケーションの脆弱性問題に注意と対策を呼びかけてきた。そして、ISOG-J(日本セキュリティオペレーション事業者協議会)とOWASP Japanの共同ワーキンググループとして「脆弱性診断士スキルマッププロジェクト」を推進し、脆弱性診断を行うためのガイドラインを整備してきた。

 残念ながらまだ、Webアプリケーションの脆弱性は根絶には至らず、被害は報じられ続けている。それでも、例えば楽天やリクルートのように、エンジニア向けにセキュリティ教育の仕組みを用意し、うまく回し始めている企業もあるという。「セキュアなWebアプリケーションはどのように開発すればいいのかといった講座や教育制度を会社として用意するのは、一つの方法だと思います」(上野氏)

 さらに上野氏は、「経営層が、セキュアなコードを書くための教育の重要性を理解し、エンジニアに対する支援やモチベーションアップにつながる取り組みを進めていただけるといいのではないでしょうか」とした。

 「セキュリティには面倒な部分もありますが、セキュアなコードが書けるというのは、『強くてかっこいいものが書ける』ということでもあります。エンジニアとしてそうしたスキルを身につけるのは喜びの一つであり、モチベーションにつながると思います。日常の業務に忙殺されてなかなか勉強する時間を取れないエンジニアを、会社が支援してあげるのがいいでしょう」(上野氏)

 ちなみに、グローバルのセキュリティ動向から見ると、日本の脆弱性診断は「他の国にはあまりないもの」だという。

 「日本の脆弱性診断は、網羅的という特徴があります。車に例えると、海外はいきなり衝突テストをやって安全かどうかを見るケースが多いのですが、日本では組み立ての工程でネジの強度やガラスの強度といった個々のコンポーネントの安全性を確かめ、網羅的に診断を下し、最終的な試験を通してから出荷します。脆弱性診断士などの制度を通じて、製造業が強い日本ならではのクオリティーを、ソフトウェアにおいても出していければと考えています」(上野氏)

 部品テストもしておらず、車検も通っていない車が町中を走るのが論外であるのと同様に、一定の診断を経ないWebアプリケーションが公開されるのは恐ろしい状態と言えるだろう。その意味で、業界として一定のルールを定めていくのは一つの手だとした。これは、Webアプリケーションを開発する側にとっても利点になるはずだ。「自分たちが開発したソフトウェアが、自信を持って出荷できるクオリティーであることを保証するために、自分たちでテストを実施するのが当たり前のようになっていくと思います」と上野氏は締めくくった。

インタビュイー:上野 宣氏(トライコーダ 代表取締役)

 奈良先端科学技術大学院大学で情報セキュリティを専攻、2006年にトライコーダを設立。ハッキング技術を駆使して企業などに侵入する「ペネトレーションテスト」や「サイバーセキュリティ実践トレーニング」などを提供。

 OWASP Japan代表、Flatt Security社外取締役、グローバルセキュリティエキスパート 社外取締役、ScanNetSecurity 編集長、情報処理安全確保支援士 カリキュラム検討委員会・実践講習講師、JNSA ISOG-J WG1リーダー、一般社団法人セキュリティ・キャンプ協議会理事・顧問、Hardening Project 実行委員、SECCON 実行委員、日本ハッカー協会理事、一般社団法人 ITキャリア推進協会(JAIC) アドバイザリーボードメンバー、情報経営イノベーション専門職大学 客員教員などを務める。第16回「情報セキュリティ文化賞」受賞、第11回アジア・パシフィック情報セキュリティ・リーダーシップ・アチーブメント(ISLA)受賞。

 主な著書に「Webセキュリティ担当者のための脆弱性診断スタートガイド - 上野宣が教える情報漏えいを防ぐ技術」「HTTPの教科書」「めんどうくさいWebセキュリティ」「今夜わかるシリーズ(TCP/IP、HTTP、メール)」など、他多数。

Copyright © ITmedia, Inc. All Rights Reserved.

会員登録(無料)

製品カタログや技術資料、導入事例など、IT導入の課題解決に役立つ資料を簡単に入手できます。