この数年で「AI」という技術は私たちにとって身近なものになった。特に、StableDiffusion や ChatGPT といったサービスの登場によって、ちょっとした調査やプレゼンテーション・ドキュメント作成など、日々の業務も効率化し、肩代わりできるのではないかといった期待が高まっている。
では、「セキュリティのお仕事」への AI活用はどの程度現実的と言えるだろうか。まだまだ専門的な知見を持ったエンジニアにはかなわないと思われるが、徐々に、AI や ML技術を活用したセキュリティソリューションが登場している。その 1 つが、AIベースにした Webアプリケーション脆弱性検査ツール「AeyeScan」だ。
長年にわたって脆弱性診断サービスを手がけ、JNSA の「脆弱性診断士スキルマップ」の作成にも携わった編集長の上野 宣が、プロの立場から AeyeScan を実際に検証し、開発元であるエーアイセキュリティラボのカスタマーサクセス責任者 関根 鉄平(せきね てっぺい)氏、営業責任者 田中 大介(たなか だいすけ)氏と対談した。
●人による脆弱性診断では追いつけないほどに増え続ける Webアプリ
上野:まず、エーアイセキュリティラボという会社について教えてください。
田中:Webアプリケーション(Webアプリ)の脆弱性診断やツールを開発していたメンバーが集まって、2019 年 4 月に設立された会社です。上野さんの前で言うのも何ですが、Webアプリの専門家、それも診断だけでなく開発に関しても専門家がそろっていると思います。
上野:わざわざ新しい会社を立ち上げた理由は何でしょう?
田中:創業メンバーによると、AI という技術的なブレイクスルーがあったことが大きいですね。AI や RPA を使って今までにない診断ツールができそうだ、というところから始まったと聞いています。「人は、人にしかできないことを」という我々のコーポレートステートメントにもあるとおり、診断という業務のうち自動化できるところは自動化し、人月ビジネスから脱却したいという強い思いを持って活動しています。
上野:それで開発したのが「AeyeScan」というツールですね。
関根:はい。診断を自動化し、できるだけ簡単にやろうというのが製品のコンセプトです。
上野:そもそも、なぜ自動化する必要があるのでしょう?
田中:まず Webアプリの開発サイクルが高速化しており、人による診断がそのペースに追いつけていない実情があります。結果として、診断を受けずそのままリリースしているケースもあるようです。もう 1 つは、DX の流れで、情報システム部や開発部ではなく、ビジネスを立ち上げる各事業部単位で次々に Webアプリが開発されている状況があります。開発サイクルが早くなっているだけでなく、対象数も増えている中で、人を介した診断はもう限界にきているといっていいでしょう。一方で、診断サービスを提供するベンダー側も慢性的な人手不足に悩んでいますよね。
上野:僕は手動での Web診断サービスをやってきました。おそらく業界で最も使われている「Burp Suite Professional」(Burp Suite)を使っていますが、これは正直、Web の開発をちょっと経験したくらいの人にとっては使いこなしが難しいツールだと思います。
Web診断にはいろいろなツールがありますが、極端なことを言うと、どんな脆弱性を見つけられるかは、高額なツールでも他のツールでも、それほど変わらないと思うんですよ。脆弱性の見つけ方は研究すればわかるんですから。
では、なぜ人は高いツールを導入するのかというと、僕はサポートだと思うんですね。で、そのサポートの中でも大事なのは「ここの部分はどう診断したらいいのか」というところ、つまり「巡回の仕方」だと思います。診断対象のサイトをどの順番で回り、どのリンクをクリックしていくのかといった方法や、繰り返し手順をマクロとして登録するといった部分ですね。
もちろん Burp Suite にも自動巡回機能があります。しかし、リンクを直線的にたどってボタンを踏んでいく程度のことしかできません。ショッピングサイトでカートに商品を入れ、決済して……といった一連の流れを自動的に踏んでいってくれるようなものはないんですね。そこが巡回の難しさであり、だからこそ手動の検査が重宝されているのだと思います。そういう意味で、もし本当に使い物になる自動巡回機能が実現できれば、いいブレイクスルーになるんじゃないかなと思います。
関根:AeyeScan の自動巡回機能の精度は、他のツールに比べると圧倒的な差があると思っています。たとえば Webページ内に、何らかの文字を入力するフォームがあったとき、海外のツールだと適当に「test」といった文字列を入力します。これに対し AeyeScan は画面の情報を読み取り、そのフォームが氏名を入力するものか、あるいは ID やパスワードを入力するものなのかといった具合に判断しています。
また、人間がテストを行う際には、削除ボタンや退会機能などを押してしまったらその先の操作ができなくなることを理解して回避していきますが、機械的なツールではそうした区別も付けずにどんどんボタンを押していってしまいます。
AeyeScan は、人間が脆弱性診断を行うならばこういう範囲を診断するだろう、という自動判断の仕組みを、まさしく AI を活用しながら実現しています。簡単な CAPTCHA認証を解析し、突破する機能も付けています。
●診断の前提となる「巡回」を自動化、JavaScript を多用した今どきの Webサイトにも対応
上野:私も OWASP Juice Shop と、それからファッションサイトを対象に、実際に AeyeScan を触ってみました。前半は比較的素人の観点から、後半は診断のプロとして自分が使う観点で見ていきましたが、すごく操作しやすかったですね。
脆弱性診断を行う際には、まず対象のサイトを巡回してから検査を行います。巡回がきちんとできていないと、検査もできないんですね。ただ、単純に画面の順番を記録させればいいのかというとそうではなく、先ほど触れたようにデータをきちんと入力したり、認証に用いるセッションID や CSRF対策のトークンをきちんと把握し、システムに登録してあげたりしなくてはいけません。また、何がどの状態ならばログイン状態であるかということも教えてあげる必要もあります。
ある程度慣れればそんなに難しくはありませんが、今回、AeyeScan の自動巡回機能を使ってみて、特に何の設定を行う必要もなくさらっとできることがけっこう感動的でした。画面遷移を深く降りていってくれるところはとても便利で、この巡回機能が Burp Suite にも付かないかなと思ったくらいです。
確かに Burp Suite でも、自分でブラウザを操作していけば記録はしてくれますが、単純に人の操作に沿って時系列で覚えていくだけです。あるべき操作に沿った画面遷移の順番は覚えてくれず、自分で並び替えたりしないといけないんですね。僕らプロは慣れているし、当たり前だと思ってやっていますが、普段診断をしていない人にとってはちょっと難しいと思います。
関根:どの辺りが特によかったですか?
上野:一つ気に入っているのは、画面遷移図がグラフィカルに見えるところです。テキストや表で羅列するのではなく、各ページの画面キャプチャを取り、「この画面のこのボタンを押すとこのページに飛びますよ」ということが一目でわかるグラフィカルな画面遷移図が生成されるので、とてもわかりやすいなと思いました。これがなくても診断はできるでしょうが、直感的というのがいいですよね。とても楽だなと感じます。
田中:これで、診断作業はどのくらい楽になったと思いますか?
上野:具体的に数値化するのは難しいんですが、自分でちまちまやっていくと本当に時間がかかります。サイトの規模にもよりますが、半日から一日かけてサイトを見て把握していく作業が必要で、本当に一日仕事になるんですけれど、AeyeScan では、ボタンを押しておけばとりあえず動いていってくれるところがありますね。
ツールで自動化できない部分はいくつもありますが、その点 AeyeScan は、「リモートブラウザ機能」で、自動巡回できなかったところを自分で補完できるようになっているのもいいですね。ブラウザの中でブラウザが立ち上がるようなイメージで、その中で自分で Webサイトを巡回させ、データを入力できるようになっています。ここでも、単純な時系列ではなく、画面遷移をきちんと覚えてくれるところが自分には感動的でした。
関根:最近の Webサイトではそうした機能がますます重要になっていますよね。
上野:昔の Webサイト……いわゆる「Web 1.0」世代のサイトは、リンクをクリックしてボタンを押していくといった単純な操作しかないので、巡回しやすいんですよ。でも今どきの Webサイトでは JavaScript が多用されており、たとえばボタンの上に onmouseover したら何か表示が変わる、といった仕組みがあちこちにあります。これらは普通の巡回だとなかなか拾いきれないのですが、リモートブラウザ機能ではそうしたイベントもちゃんと拾い、再生するようになっているんですね。「あ、ここまで見ているんだな」と思いました。
関根:使用している JavaScript のライブラリによってイベントの形が異なったりするのですが、AeyeScan はそれらにも対応しています。ユーザーからすると当たり前かもしれませんが、クラウド側で立ち上げたブラウザの画面情報を転送し、その画面のどこをクリックしたかをまたサーバ側に送って……という、技術的にはけっこう難易度の高いことをやっています。
上野:僕はけっこう感動したんですが……ひょっとしたら知らない人は全然感動しないかもしれませんね(笑)。AeyeScan の開発はどんな形で進めているんですか?
関根:SaaS の良さを生かして、お客様から「こういうサイトの診断がうまくいかない」といったご要望をいただいたら、すぐにデータを確認して対応しています。定例会議で出てきたオプションのアイデアが、翌日にはできあがっていたりして、尋常ではないスピードで開発し、毎週リリースしています。
田中:なので、営業資料が追いつかないこともありますね。
上野:これから先、どんな機能を強化していく予定なんでしょう。
関根:アイデアはたくさんありますが、4 月には、API に対するスキャンをできるようにする予定です。これまでかなりの程度巡回の自動化ができていましたが、逆に言うと「画面」がないものについてはアクセスできなかったのですが、APIについても、Open API という定義ファイルを読み込ませたり、開発者がよく使う Curl のコマンドをそのままスキャンできるように対象範囲を広げていきます。全体として、自動化の範囲をもっと広げていこうと考えています。
田中:日本のエンタープライズでニーズの高い管理機能も強化していく予定です。すでにパーツとしてはできあがっているのですが、たとえば LDAP連携やレポート機能をもっと使いやすくしていく予定です。
上野:OWASP TOP 10 には API のセキュリティも入っていますし、この先、API の診断も増えていくでしょうね。
田中:実際にご要望もいただいています。
●クラウドサービスならではの利点、診断士にいい意味で「サボれる」時間を提供
上野:僕が今回 AeyeScan を触ってみて思ったのは、あまり診断ツールっぽくないということです。どちらかというと CI/CD の開発者が使うツールのように感じました。SaaS型ということもあって、Slack や GitHub との連携もできますよね。
いろいろ試してみての一番の感想は、「これいいな、サボれるじゃん」っていうことです。今回は金曜から週末にかけて実際に診断をしてみたのですが、診断を仕掛けてからちょっと出かけることができ、しかもその間、ちゃんと Slack に「開始しました」「終了しました」と通知が来るので、すごくよかったですね。
関根:オンプレミス環境で利用する手動の巡回ツールには、細かな設定ができる利点もありますが、どうしても巡回設定に時間がかかります。人によってはその作業ばかりになって気持ちが沈んでしまうこともあるんですね。ですので、そういう作業は機械に任せ、人間には人間にしかできないことをやってほしいな、という思いでこのツールを開発しています。
田中:中には、エンジニアのローテーションをさせたいので AeyeScan の導入に向けた実証を行っているお客様もあります。診断に携わる技術者は、最初は仕事にわくわくしても、結局ルーティン作業のくり返しになってくるので、時が経つにつれてだんだん楽しくなくなってくるんですよね。
上野:そうですね。三年も診断をやっていたら「また XSS かぁ……」ってなりますよね(笑)。
業務で脆弱性スキャナーを使う場合、回している間、ずっと見ていなければいけないわけではありません。けれど、エラーなどで停止しないか心配なので、結局は張り付くことになります。その意味で面白かったのが、今回、検証中にたまたま AeyeScan にメンテナンスが入ったことですね。通常ならば、メンテナンスで止まったりすると不安になっていろいろ調べるんですが、AeyeScan は止まった後、ちゃんと再開し、スキャンを再び回し始めてくれました。インフラを含めてちゃんと動いているかどうか心配したり、自分で見る必要がなく、設定だけやればいいんだというのが、「あ、SaaS なんだ」と思って感動しました。
田中:サボれるっていいですよね。
上野:精神安定上、めちゃくちゃいいことですよね。今までは診断ツールのお守りをしていなくちゃいけなかったんですが、そこから解放されますから。
あとは、診断のプロフェッショナル向けに、ある程度楽をしつつも手動で細かくパラメータを入力できるような機能が追加されると、なおうれしいですね。それと、強いて挙げれば、デザインがもう少しかっこよくなったらいいなと思います。
この先、どんどん自動化が進んでいったとしても、レポートを精査する部分は人間に残ると思います。ツールが診断をやってくれたとしても、それが正しく診断できているかどうかを判断するのは人間だと思うんですよね。ただ、これまでは 100 %すべて人間が見なければいけなかったかもしれませんが、AI の信頼性が高まればそれが 50 とか、10 とかで済むようになるかもしれません。とはいえまだしばらくは、人間が結果を精査し、ジャッジする部分は残るでしょうね。
田中:これまで市場では、「プロフェッショナルによるマニュアル診断で 100 %完全に見ていきましょう」という言い方がされてきたこともあって、AeyeScan のお話をすると「自分たちの仕事がなくなってしまう」と、特に現場の方から抵抗を受けることもあります。もちろん、専門家の手が必要な部分はまだまだありますが、現実問題として診断を依頼される案件が増え、一方で診断リソースが枯渇する中、ツールをうまく使って、別の部分で皆さんに力を発揮していただければと思っています。
