Garoonのセキュリティを維持するYukimiチームの紹介

Garoon開発チームの松尾です。

昨日の記事では、Garoon開発チームにおいて課題解決を担当している日本のチームについて紹介しました。 今回はそのうちの1チームであるYukimiチームを紹介します。

より安全なGaroonをユーザーに届ける

Yukimiチームは、より安全なGaroonをユーザーに届けることを目標とし、将来に渡って継続的にGaroonを安定提供できるように活動しているチームです。Garoonはさまざまな組織を支えるグループウェアであり、お客さまの業務にまつわるデータを預かっていることから、セキュリティの確保はとても重要な課題です。

Yukimiチームはセキュリティを担当するチーム
Yukimiチームはセキュリティを担当するチーム

他のクラウドサービスやパッケージ製品と同様に、GaroonもさまざまなOSS(オープンソースソフトウェア)を利用しています。Yukimiチームは、Garoonでライブラリとして使用しているOSSの更新作業を行っており、Garoonのセキュリティを維持および向上するための開発・保守作業を主に担当しているチームです。

20年以上の歴史があるGaroonは多くのユーザーにご使用いただいていますが、設計が古い箇所が残っていたり、古くからあるOSSを使用している箇所が存在していたりします。より安心して製品をご使用いただけるように、そして、より安全なGaroonをご利用いただけるように、日々ライブラリの更新作業や見直しを継続的に行っています。

開発チーム作成ガイドを参考にしてスクラムを採用

Yukimiチームでは、今年社内で作られた開発チーム作成ガイドを参考にして、今年の6月からスクラムを採用しています。

blog.cybozu.io

チームの方向性を決める役割(プロダクトオーナー)と、チームを健全に保つ役割(スクラムマスター)に責任を負う人をチーム内に置いて、現在次のようなスタイルで仕事を進めています。

  • 四半期ごとにチームのゴールおよびライブラリの更新計画を策定および見直し
  • 1週間(1スプリント)ごとにスプリントのゴールを設定
  • スプリントゴールを意識しながらカンバンでタスクを管理
  • タスクの優先度を調整しつつ担当者を割り当て
  • 必要に応じてモブの時間をとって作業もしくは個々でタスクをこなす
  • 毎日タスクの進捗状況を確認しながらチーム内で相談および方針を決定
  • 脆弱性の新着情報やライブラリの更新状況に応じて随時更新計画を見直し
  • 週に一度振り返りを実施

日々のライブラリ更新作業や見直しをチーム全体で行えるようにし、長い歴史の中で積み重なっている技術的負債を少しずつ解消しながら、より安全な製品にしていきたいと考えているところです。

継続的に最新のセキュリティ更新を取り込めるように

GaroonはPHPを使って構築されたグループウェアであるため、毎年欠かさずにPHPのメジャーバージョンアップおよびマイナーバージョンアップを行い、常に最新のセキュリティ更新を取り込める状態を保つようにしています。

組織の情報共有に必要な機能が揃っている一方、ソースコードが長大になっていて、開発および保守には相当な時間と手間をかける必要がある状態になっています。PHPのバージョンアップに追随していきながら、Garoonの各機能に影響を与えないように細かい調査や検証を行っています。PHPのバージョン移行ガイドに記載されている内容を精査し、必要に応じてソースコードを修正しながらCI上でのユニットテストやE2Eテストの結果を都度確認し、ライブラリや開発環境の更新作業を継続的に行っています。

このあたりの詳細については、過去に開催されたPHPカンファレンスにおける発表資料をご覧ください。

speakerdeck.com

ライブラリに脆弱性が見つかった場合の影響も調査

PHPに限らず利用しているライブラリに脆弱性が見つかった場合には、製品の安全を維持するために他のチームと連携しながら、ユーザーへの影響がないか調査も行っています。そして、調査結果に応じて適宜ライブラリを更新するようにしています。

ユーザーへの影響を調査するにあたり、脆弱性について知っている必要があるので、最近ではチームで定期的に読書会を開催しています。現在は、Webアプリの脆弱性に関する知識を再確認するために、IPA(独立行政法人 情報処理推進機構)が公開している「安全なウェブサイトの作り方」を読んでいて、他のチームからも希望者が読書会に参加している状況です。

今後は、Yukimiチームに限らず開発チーム全体で脆弱性に関する基礎知識を身につけて、開発プロセスのあらゆる段階でセキュリティを意識した開発やテストができるようにしていきたいと思っています。

今後取り組みたいこと

将来に渡って継続的にGaroonを安定提供できるように、今後もライブラリの継続的なバージョンアップを実施しつつ、ライブラリの更新計画を立てやすくするためのツールの整備や情報収集の自動化を行いたいと考えています。

また、近年ソフトウェアサプライチェーン攻撃に起因するリスクの影響が高まっている状況でもあるため、当該攻撃に対する緩和策や防御策について改めて見直すようにし、Garoonの安全性を維持していきたいと考えています。

やるべきことや実施したいことなどは他にもまだまだたくさんありますが、今後もお客さまの業務にまつわるデータを守りつつGaroonのセキュリティを維持していくために、Yukimiチームはこれからも頑張っていく所存です。

イベントのお知らせ

2023年10月8日(日)に大田区産業プラザPiOで開催されるPHPカンファレンス 2023では、サイボウズのGaroon開発チームから2名セッションに登壇します。ブースも出展する予定ですので、よろしければ事前登録の上、当日ご来場ください。

そして、PHPカンファレンス 2023向けのプロポーザルを提出したものの、残念ながらいくつかは採択されなかった(リジェクトされた)ものもありました。そこでPHPカンファレンス 2023のリジェクトコン(非公式)を勝手に開催する予定です。

他にも採択されなかった方がいらっしゃいましたら、この機会に発表しませんか?10月8日に開催されるPHPカンファレンス 2023に向けて一緒に盛り上がりましょう!

  • イベント名: Cybozu Tech Meetup #22
  • 開催日時: 2023年10月5日(木)19時から21時まで(18時30分開場)
  • 会場: サイボウズ株式会社 東京オフィス
  • 詳細: https://cybozu.connpass.com/event/294979/

応募申し込みや詳細についてはこちらのページをご参照ください。参加枠はあとわずかですが、ご都合がよろしければ是非ご参加ください。

cybozu.connpass.com