スタートアップがAeyeScanでセキュリティ診断を自動化した話

※この記事は 2021年09月13日に Medium で公開されたものを、ブログ移行に伴い再掲載したものです。内容は当時のままですので、一部情報が古くなっている可能性があります。

Tebiki 社の CTO をしている渋谷です(会社名が変わりました)。「現場向け動画 DX」を実現するための SaaS『tebiki』を開発しています。

今回は「スタートアップでも AeyeScan を使えば、継続的に脆弱性を診断できるようになるよ」という話について書いてみたいと思います。 (※近年特に注目されている SaaS などの Web アプリケーションに対する脆弱性診断の話です)

スタートアップでもセキュリティは最重要

スタートアップではとにかくサービスの PMF を目指すことを優先すべきで多少の脆弱性は後でどうにかすればよい、という意見をたまに見かけます。BtoB 向けの SaaS スタートアップを3年間やってきた一人としては、それは全くの嘘で、やはりセキュリティが最も重要だと考えています。

なぜなら「情報漏えいは会社の倒産リスクに直結する」からです。 仮に脆弱性を突かれて情報が漏えいしてしまったとすると、契約先の企業や顧客に対して損害賠償責任が発生するだけでなく、フォレンジック調査の費用や法的対応費用などが必ず発生します。 ※1

賠償で済めばまだマシなほうです。スタートアップは後ろ盾がないので、信用を失って企業価値が大きく毀損されると二度と立ち上がれません。 セキュリティ上の問題が発生してからでは圧倒的に手遅れです。

ちなみに SaaSエンタープライズの企業と利用契約を結ぶ際は、IPA が出している「安全なウェブサイトの作り方」に準拠しているか等のセキュリティチェックシートを提出することが求められることも多いので、そういう面でも重要だったりします。

脆弱性が放置されるのはなぜか

一方で、スタートアップの社内にはセキュリティエンジニアなんていないことがほとんどです。となると自分たちで脆弱性を潰すか、脆弱性診断を外部に依頼するかしかないのですが、それにもいくつかの障壁が存在します。

攻撃手法が複雑化している 一般的な SQL インジェクションくらいであればフレームワークなどが担保してくれたりしますが ※2、対応すべき攻撃手法はより複雑、かつ増加していきますし、開発者全員が OWASP ASVS などを網羅的に理解しつつアプリケーションを開発するのはほぼ不可能です。

診断コストが高い 手動で行われる脆弱性診断は(当たり前の話ですが人力なので)それ相応の金額が掛かります。すべての機能に対して実施しようとすると 、最低でも200万円以上は掛かってしまいます。

開発モデルに適合しない スタートアップの開発モデルは最小単位の機能で価値を検証しながら進めるスタイルであるため、リリースごとの継続的な脆弱性テストが重要です。つまり、年1回の第三者による診断では効果が相対的に薄くなってしまいます。

アジリティが低下する 個人的にはこの問題が一番大きいのですが、スタートアップは「この機能を追加すればユーザーが喜んでくれるに違いない」という機能追加の誘惑に負けてしまって、頭ではセキュリティが重要と分かっていても、つい開発を優先させてしまいます。 開発のアジリティとセキュリティを天秤に掛けてしまうんですよね。

スタートアップにとってはこれらの障壁を乗り越えることが難しいので、結果として脆弱性が放置されたままになってしまうのです。

脆弱性診断プロセスの理想像

では逆に、継続的な脆弱性診断の理想はどういったものか考えてみると

  1. 脆弱性を発見する(Discover)

  2. 脆弱性を評価する(Assess)

  3. 脆弱性を分析する(Analyze)

  4. 脆弱性を修正する(Fix)

  5. プロセスを再評価する(Measure)

この 5つの工程を1つのサイクルとしたプロセスが ※3 アプリケーションの開発フローに組み込まれて、診断に対するフィードバックループを形成することで、脆弱性診断が継続的に実施できていると初めて言えるはずです(DevSecOps の実現)。

理想はこうですが、ではスタートアップが前述の障壁を乗り越えてこのプロセスを開発フローに組み込むにはどうすればいいでしょうか。

弊社での選定事例

弊社ではほぼ毎日リリースをしており、かつリリースが与える影響はかなりの広範囲に渡ることもあるため、前提としてアプリケーションに対して「定期的」「網羅的」に脆弱性診断を行う必要があります。 つまり、他社に診断を依頼する方式だとコスト面でも開発モデルの面でも難しいということが分かっていました。

そんなときに VC 経由でエーアイセキュリティラボ社の AeyeScan というのがあるよと紹介してもらいました。 クラウド型Webアプリケーション脆弱性診断ツール「AeyeScan」 | 株式会社エーアイセキュリティラボ ・SaaS提供によりいつでもどこでも診断可能 -インターネットとPCがあればいつでもどこでも診断が可能 ・簡単設定で、AIにより人間なみの診断を提供 -AIによるログイン・入力箇所等を自動判定 -入力値をAIが自動入力し巡回・診断…www.aeyesec.jp

簡単に説明すると、GUI / API から任意のタイミングで実行すると、AI を利用してセキュリティエンジニアに近い精度で巡回・診断をフルマネージドでまるっとやってくれるサービスで、まさに SaaS にうってつけのものでした。

ということで、弊社が達成したかったことは定期的かつ継続的な診断プロセスを開発フローに組み込むことだったので、以下の図のように AeyeScan を中心に据えることでこのプロセスを自動化することができました。 ちなみにこの図の構成はエラー時のリトライ対応含め1日掛からないくらいで構築できています。

AeyeScanを中心とした脆弱性プロセス図AeyeScanを中心とした脆弱性プロセス図

気になる診断の精度ですが、弊社サービスのケースだとすべての画面に対して OWASP TOP 10 / IPA「安全なウェブサイトの作り方」/ OWASP ASVS4.0 にある項目を診断し、サマリーとして診断結果レポートを出力してくれています。 OWASP ZAP で Add-on を入れることを考えると遥かに楽で網羅的です。

一方で脆弱性診断のすべてがカバーできたというわけではなく、一部割り切った点もあります。 例えば、あくまで自動での診断なので、手動による診断とは違い仕様のコンテキストを伝えることができません。なので仕様上の不具合や仕様を起因とする脆弱性は見つけることができません。これについては自分たちのアプリケーションレベルで、E2E テストを充実させるなどにより担保する必要がありますが、それはまあそうだよね、という感じです。

まとめ

スタートアップでは軽視されていると思われがちな脆弱性診断も、弊社では AeyeScan を利用することにより現実的なコストで DevSecOps を実現できるようになりました。 これによりかなりの精神的な安定を得られましたし、顧客にもこれまで以上に自信を持って弊社サービスを利用して頂ける様になったと考えています。 スタートアップだから少し早いのでは?と思わずに、是非検討してみてください。導入する価値はあると思います。

次の課題としては、社内エンジニアが誰でも AeyeScan を運用できるように、セキュリティの知識レベルを引き上げる必要があると考えています。 すでに社内勉強会やもくもく会をやっていたりしますので、そういった知見はまた別途 Medium にて共有できればと思います。

※1)「インシデント損害額調査レポート」2021年版 — JNSA

※2)弊社では rubysec/bundler-audit や presidentbeef/brakeman、dependabot 等も利用しています

※3)脆弱性管理とは? | Tenable®

Tebiki 社では一緒に働く仲間を募集してます!

弊社ではセキュリティの社内勉強会だけでなく、エンジニア全員のスキルアップを会社がサポートする体制を目指しています。 店舗/倉庫/工場などで働く「ノンデスクワーカー」の教育課題だけでなく、エンジニア組織の構築にご興味がある方は、オールポジションで絶賛採用してますので、ぜひご応募ください! 3.エンジニア の求人一覧 - Tebiki株式会社 Tebiki株式会社が公開している、3.エンジニア の求人一覧ですherp.careers