LINE株式会社は、2023年10月1日にLINEヤフー株式会社になりました。LINEヤフー株式会社の新しいブログはこちらです。 LINEヤフー Tech Blog

セキュリティ向上だけではなくエンジニアのキャリアにも好影響がある、脆弱性対応のプロセスを改善する意義

LINEの技術組織が取り組んでいる・今後取り組む未解決課題を深堀りするインタビューシリーズ「Unresolved Tech Issue」、今回のテーマは「脆弱性発見の自動化セキュリティチェックツールを開発し、業務効率やシステム品質の向上を目指す」プロジェクトです。

プロダクトセキュリティ室のアプリケーションセキュリティチームは、LINEグループ全体が提供しているサービスのセキュリティを向上させる役割を担っています。もともとこのチームでは、脆弱性を発見するために脆弱性診断ツールを活用したりセキュリティエンジニア自身が各サービスのソースコードを読んだりしていました。

しかし、一般的にツールによる脆弱性の点検は誤検知の問題がつきまといます。状況によっては数百から数千個の誤検知が報告されることもあり、セキュリティエンジニアがそれぞれ確認するため、業務効率が非常に低くなってしまいます。また、セキュリティエンジニアの技術力により、脆弱性の検出可否に個人差が出てしまうこともあります。こうした課題を解決するために、アプリケーションセキュリティチームは独自のツールを開発し、チームの業務プロセスそのものも改善することで、脆弱性発見の効率やサービス品質の向上に日々取り組んでいます。

活動の詳細について、プロダクトセキュリティ室アプリケーションセキュリティチームマネージャーの鄭ヨンミン(Jeong Youngmin)が解説しました。

脆弱性対応のプロセスに複数の課題があった

──脆弱性対応の方法を改善するプロジェクトが発足する以前に、どのような体制で脆弱性対応をしていたのかを教えてください。

まず、各部署からアプリケーションセキュリティチームに診断の申請が届きます。それに応じて、セキュリティエンジニアが脆弱性診断ツールを用いたり、アプリケーションのソースコードを読んだりしてセキュリティテストを進行していました。

しかし、この方式には複数の課題がありました。脆弱性診断ツールは必ずしも正しい情報を通知してくれるわけではありません。例えば、実際には脆弱性ではないにもかかわらず、“その疑いがある”というレベルの情報も大量に通知します。いわゆるフォールスポジティブと呼ばれる動作です。脆弱性診断ツールが間違った結果を大量に出力するため、その情報の内容確認でセキュリティエンジニアの時間が奪われてしまう事態が発生していました。

それ以外にも、脆弱性診断の業務の属人性が高いという課題もありました。各セキュリティエンジニアはスキルレベルの差や得意不得意もあります。あるエンジニアが発見できる脆弱性を、別のエンジニアが見逃してしまうことも起こりえます。また、セキュリティエンジニアも人間ですからミスをしたり、コンディションの良くない日があったりして、仕事のクオリティにばらつきが生じることもあります。

それ以外にも、セキュリティエンジニアが脆弱性の情報を報告しても、依頼主のサービスチームごとに対応状況が異なり、うまく情報を活用してもらえていないケースもありました。

DevSecOpsの導入による脆弱性診断の高度化・自動化

──そうした状況を改善するために、いくつかの施策を講じていると伺っています。

まず、DevSecOpsによる診断環境の高度化・自動化を行っています。DevSecOpsとは情報システムにおいて開発(Development)と運用(Operations)のライフサイクルの中にセキュリティ(Security)を融合させるという概念です。私たちが導入を進めているのは、CI/CDパイプラインの中に脆弱性診断を組み込むことです。

この仕組みでは、アプリケーション開発を行うエンジニアがソースコードをGitHubにコミットすると、セキュリティチームが構築したCI/CD環境で脆弱性診断ツールが自動的に動作し、セキュリティのチェックが行われます。この処理にはアプリケーションセキュリティチームが既存の脆弱性診断ツールをカスタマイズしたものを使用しています。

CI/CDパイプラインに脆弱性診断を組み込むことで、アプリケーション開発の早期フェーズで問題を検出し、各チームで対応が可能になります。また、脆弱性が修正されたかどうかの確認もスムーズにできるようになります。セキュリティエンジニアがすべてのプロジェクトで脆弱性の対応状況を逐次チェックするのは大変でしたが、その課題も解消されます。

また、こうした脆弱性発見のフローにすることで、セキュリティエンジニアだけではなく、そのサービスを担当するアプリケーションエンジニアも作業効率が向上します。なぜなら、アプリケーションがリリースされる直前に脆弱性診断を実施して脆弱性が見つかると、検出された問題の内容によってはシステムの設計や実装を大幅に変更しなければならないケースがあります。

その場合、リリースが数週間から数か月ほど延期される可能性があり、プロジェクトの進捗が大幅に遅延し、事業としても大きな問題となります。CI/CDパイプラインの中で脆弱性診断を行うことにより、プロジェクト初期の段階でセキュリティ関連のフィードバックを返せるため、工程の手戻りが少なくなり設計や実装への影響も減らせます。そのため、プロジェクト遅延のリスクを非常に低く抑えることができます。

──このプロジェクトの今後のビジョンについても教えてください。

私が掲げている目標は大きく2つあります。まずは脆弱性発見のプロセスを可能な限り自動化・効率化し、セキュリティエンジニアがより本質的な業務にフォーカスできるようにすることです。

もうひとつは、検出した脆弱性やセキュリティエンジニアの対応内容などのデータを収集・分析して、今後の業務プロセスのさらなる改善を目指すことです。機械学習やディープラーニングなどの技術を用いれば、過去のデータを活用してさらなる業務改善を実現できるかもしれません。そうしたチャレンジを続けたいと考えています。

──どのようなスキルや適性を持ったセキュリティエンジニアが、このプロジェクトに向いていると思われますか?

脆弱性やその対応法についての知識を持っていることに加えて、開発プロセス全体のライフサイクルを深く理解しているセキュリティエンジニアが望ましいです。サービスの企画から世の中にリリースされるまでの流れを把握していなければ、最適なDevSecOpsのプロセスは構築できません。またアプリケーション開発やセキュリティの知識だけではなく、自分たちの作業が事業にどういった影響を与えるのかという、ビジネスに関する理解も求められます。

企画・設計段階でのセキュリティコンサルティング・脆弱性診断

──他に実施している施策はありますか?

プロジェクトの企画・設計段階でセキュリティコンサルティングやセキュリティ実装の支援を実施することにも取り組んでいます。先ほど、アプリケーションがリリースされる直前に脆弱性診断を行うと、プロジェクトのスケジュールへの影響が大きくなってしまうとお伝えしました。そのためこの施策では、プロジェクトの早期に私たちが関与することにより、スケジュールの遅れなどを最小限に抑え、プロジェクトのセキュリティ品質と工数の両面で良い影響があると考えています。

──コンサルティング業務となりますと、脆弱性対応に関するスキル以外にも、豊富なスキルが必要でしょうね。

その通りです。例えば、過去のキャリアでさまざまな経験をしてきたセキュリティエンジニアがコンサルティングに携わることが望ましいです。

LINE社内では多種多様なサービスが開発・運用されています。LINEアプリをはじめ、音楽や動画配信や漫画といったエンタメ、ショッピング、ライフスタイルなどバラエティ豊かなジャンルを扱っています。

特定のプログラミング言語や特定のサービスだけしか経験していないエンジニアでは、コンサルティングできる内容の幅も狭くなってしまうかもしれません。豊富な知識・経験のあるセキュリティエンジニアが、この業務には向いています。

そして、何より大事なのはコミュニケーションスキルです。私たちはセキュリティのスペシャリストですが、私たちがコンサルティングする際の話す相手は、そうとも限りません。説明をする相手がセキュリティの知見が少ないエンジニアというケースもありますし、ときにはビジネスサイドの企画担当者のケースもあります。

私たちが難解な専門用語を使ってひとりよがりに説明すると、相手にうまく情報が伝わらない可能性があります。相手のスキルや過去の経験、チーム内での立場などに応じて説明の仕方を柔軟に変える必要があります。それが上手にできるコミュニケーションスキルの高いエンジニアが、この業務には向いています。

業務プロセスの改善がセキュリティエンジニアのキャリアにも好影響を及ぼす

──今後、LINE社内の脆弱性対策の業務はどのように改善していくでしょうか?

脆弱性診断のプロセスの大半を自動化・効率化することで、各セキュリティエンジニアにかかる負荷が軽減され、かつ提供するサービスの均質化が実現できます。それにより、全社的なセキュリティの強化が実現できると考えています。

さらに、セキュリティエンジニアに時間の余裕が生まれます。これまでの業務プロセスでは、脆弱性診断またはセキュリティに関する技術の研鑽とは関係のない業務に、セキュリティエンジニアがかなりの時間を費やしていました。そのため、せっかくスキルの高いセキュリティエンジニアがいても、その人の力を正しく発揮できない環境であることに、私は非常にもどかしさを感じていました。

自動化・効率化を推進することで、本質的に重要な業務にフォーカスできるようになるはずです。さらに、最新技術の習得や新しいツールの開発などに注力する環境が実現できますから、セキュリティエンジニアがより優れたパフォーマンスを発揮できるでしょう。

その体制を実現すると、セキュリティエンジニアがこれまでより多種多様なサービスやシステムに触れられる環境へと変わっていきます。よりたくさんのシステムを見て、より多くのソースコードを読み書きすることで、習得できる知識やノウハウの量も増えていきセキュリティエンジニアのスキルが向上します。

そうすると結果的に、LINE社内のセキュリティをさらに高められますし、働いてくれているエンジニアたちのキャリアの面でも、メリットがありますよね。そんな体制を目指して、私はアプリケーションセキュリティチームの運営を行っています。

採用情報

LINE株式会社では一緒に働くエンジニアを募集しています!
今回のインタビューと関連する募集ポジションはこちらです、ご応募お待ちしております。