hacomono TECH BLOG

フィットネスクラブやスクールなどの顧客管理・予約・決済を行う、業界特化型SaaS「hacomono」を提供する会社のテックブログです!

継続的な脆弱性管理と改善への取り組みのはなし



はじめまして、SRE 部に所属しているもりと申します。「弊社が運営する、ウェルネス産業に特化した会員管理・予約・決済システムを提供するバーティカルSaaSであるhacomono」のサービス運用や信頼性向上のためのセキュリティ施策の実施をしたりしております。
本記事では SRE 部の活動の中からプロダクトの脆弱性管理によるセキュリティ強化の取り組みについてご紹介します。

課題のはなし

hacomonoでは Web アプリケーションの実行基盤に AWS の EC2 や ECS、またそれらをプロビジョニングするためのコードなど様々なソフトウェアで構成されています。各レイヤでセキュリティを担保する定期的な脆弱性診を行っていましたが、この延長線としての日々の継続した脆弱性チェックの仕組みがまだ確立されていませんでした。
また、その仕組みを陳腐化させず継続的に脆弱性を気にする文化として醸成させる必要がありました。これらの課題のアプローチについて以下で説明します。

どうやってやるか

これらの課題に対して以下の取り組みを実施しています。

  • 脆弱性管理サービスの導入と対応優先順位
  • 脆弱性対応者の可視化
脆弱性管理サービスの導入と対応優先順位

脆弱性管理の選定には複数のサービスを検討しました。価格・日本語対応をしていることや検出結果にメモを残せる機能があることから、組織内のセキュリティ文化醸成に最適と判断し、株式会社アシュアードが提供するyamoryを導入しました。
ホスト・コンテナ・アプリケーションライブラリの脆弱性管理に対応しており、定期スキャンによって検出された脆弱性について、対策の優先順位付けを把握できるオートトリアージ機能があります。これにより修正対象や対応方針も迅速に判断でき、各担当チームへのフィードバックが容易だと感じます。
ダッシュボードも用意されており、各レイヤでどのレベルの脆弱性がどれくらいあるかが分かります。



特に気にすべきは CISA KEV(Known Exploited Vulnerabilities)です。これは米国の政府機関 CISA が公開している実際に悪用が確認された脆弱性です。特にリスクが高く、対応において考慮が必要なものを特定する上で有用な 1 つの指標として利用できると考えています。
KEVに登録されるには、以下の3つの条件を満たす必要があります。

  • CVE 番号が割り振られていること。
  • 実際に攻撃が観測されていること・悪用されていること。
  • 明確な是正ガイダンスが公開されていること。

上記のとおり実際に悪用が観測され、是正方法が提示されている脆弱性を優先して対応してもらうよう担当チームへ依頼し改善を試みています。
依頼後は週次の yamory のレポートによって、対応推移がわかるようになっています。
以下は修正後の具体的な件数のレポートです。

脆弱性対応者の可視化

脆弱性対応はプロダクトのセキュリティと信頼性向上に不可欠な取り組みですが、その貢献が適切に評価につながらないと持続的な改善活動は難しくなります。そこで脆弱性対応をしてくれたメンバーを可視化し評価する仕組みを構築することで、脆弱性対応への積極的な参加を促しセキュリティを意識する開発スタイルの文化形成を目指しています。
yamory の管理画面では脆弱性の対応ステータスは確認できますが、誰が修正対応をおこなったかまでは把握できません。アプリライブラリのようなコード管理されているものについて、GitHub REST API を利用し修正したユーザー(CommitUsers)を抽出し、Notion に履歴としてレポートします。


この誰がどの脆弱性を修正したかを評価項目として考慮し、脆弱性改善の文化醸成につながればと考えております。

さいごに

本記事では、hacomonoの脆弱性管理と改善への取り組みについてご紹介しました。yamory の導入により、各レイヤでの脆弱性を網羅的に検知・管理できるようになりました。特にリスクの高い CISA KEV への対応を優先することで効果的な脆弱性改善を進めております。
また、脆弱性修正の貢献者を可視化する仕組みにより、プロダクトの信頼性向上への貢献が評価につながる文化の醸成を目指しています。今後もセキュリティを「特別なこと」ではなく「当たり前のこと」として日々の開発サイクルに組み込み、信頼性の高いサービス提供に努めてまいります。



💁 関連記事