「cybozu.com」監査ログに関する不具合について
お客様およびパートナーの皆様へ
2012年3月29日
サイボウズ株式会社
「cybozu.com」監査ログに関する不具合について
平素は「cybozu.com」をご愛顧いただき誠にありがとうございます。
このたび、「cybozu.com 共通管理」の「6 週間以上前の監査ログの書き出し」機能において不具合があることが判明いたしました。ここに本不具合の概要と対策を報告させていただきます。
お客様にご迷惑をお掛けいたしましたことを深くお詫び申し上げます。
■不具合の概要
cybozu.com共通管理には「監査ログの閲覧」機能が存在します。監査ログにはお客様のサブドメインごとに、ユーザーの行動(ログイン等)が記録されます。大量の監査ログが残ることでシステムの性能劣化を発生させないよう、直近6週間よりも以前のログはExcel (xlsx) 形式や ZIP 圧縮したCSV形式のファイルで保存され、「6 週間以上前の監査ログの書き出し」機能でダウンロードできるようになっております。
今回の不具合は、この「6 週間以上前の監査ログの書き出し」機能で保存される監査ログのユーザー情報に、他のお客様のサブドメイン環境上に登録されているユーザーの表示名とログイン名が誤って記録される場合があったものです。
監査ログに記録されている他の情報(ユーザーの内部IDや時刻やアクセス元のIPアドレス等)はすべてお客様のサブドメインで発生したものが正しく記録されておりました。
■誤って記録された可能性がある情報
「cybozu.com」をご利用中のお客様の環境に登録されているユーザーの表示名およびログイン名
※サブドメイン、IPアドレス等、どのお客様のものであったか特定する情報は含まれておりません。
■誤って記録されたお客様の特定について
恐れ入りますが、監査ログファイルの「ユーザーの表示名」と「ログイン名」に、どのお客様の情報が誤って記録されたかは、弊社でも特定できない状況でございます。
特定できない理由に関しては、別項にてご説明いたします。
■誤って記録された監査ログファイルのダウンロード件数
2012 年 3 月 21 日までに、10社のお客様が「6 週間以上前の監査ログファイル」をダウンロードされたことを確認しております。
同機能を利用して監査ログのダウンロードをされたお客様へは、該当ファイルを削除いただくよう、別途連絡を差し上げております。
■不具合への対応について
プログラムを修正し、今後作成される6 週間以上前の監査ログ(以降アーカイブと呼びます)において、本不具合が発生しないことを確認いたしました。
既に作成されていたアーカイブについては、正常に記録されていたユーザーの内部IDをもとに正しい表示名とログイン名に修正するプログラムを開発し、適用いたしました。
今後同様の問題の発生を防ぐ再発防止策については、別項にてご説明いたします。
■お客様への影響
2012 年 3 月 21 日までに、「6 週間以上前の監査ログの書き出し」機能を利用して監査ログをダウンロードされていた場合、正しいログ情報をダウンロードできない状況でございました。
大変恐れ入りますが、再度該当期間のログファイルをダウンロードいただくようお願い申し上げます。
■対応の経緯
2012/03/21 11時30分 お客様より、不具合に関するお問い合わせをいただく
2013/03/21 13時50分 弊社サポートよりcybozu.com運用チームへ連絡
2013/03/21 16時頃 調査結果より不具合の可能性を認識
2013/03/21
19時49分 緊急対応として「6週間以上前の監査ログの書き出し」機能へのアクセスを遮断
2013/03/22 アーカイブの修正プログラムを開発
2013/03/26 10時頃 アーカイブの修正プログラムの試験を完了
2013/03/26 11時07分 アーカイブのユーザー名とログイン名を修正
2013/03/29 「6週間以上前の監査ログの書き出し」機能へのアクセスを再開
■不具合の詳細
cybozu.com では、サブドメインごとに専用のデータ領域を設けております。このデータ領域を弊社では「プロテクションドメイン」と呼んでおり、cybozu.com で動作するアプリケーション(サイボウズ Office, ガルーン, kintone)はサブドメインに結びついたプロテクションドメインのデータにしかアクセスできないアーキテクチャとなっております。
アプリケーション以外のプログラムとして、サブドメインやプロテクションドメインを管理する管理プログラムが複数存在します。これらはアプリケーションのデータには通常アクセスすることはありません。
監査ログも、各サブドメインのプロテクションドメインによって保護された領域に存在します。そのため、Webブラウザで確認できるデータベース上の監査ログに関しては、他のサブドメインの表示名やログイン名が表示する不具合は発生しません。
今回の不具合はアプリケーションではなく、管理プログラムに存在しました。管理プログラムはアプリケーションのデータにアクセスしない原則なのですが、古い監査ログを週に1回アーカイブにする処理を行う管理プログラムがその原則の例外として存在しておりました。
この管理プログラム(以降、ログアーカイバと呼びます)は存在するすべてのサブドメインに対して、逐次的に古い監査ログをアーカイブに変換します。この処理はデータベースに記録されている監査ログをExcelやCSVファイルの形式に書き出すものです。
表示名およびログイン名については監査ログ上には内部IDのみが記録されています。内部IDのままExcelやCSVのファイルにしてしまうと、どのユーザーの操作か識別が困難です。
そこで、ログアーカイバはデータベースに問い合わせて、内部IDからユーザーの表示名とログイン名を特定し、ファイルに書き出しています。監査ログ中では同じ内部IDが何度も出現することがあり、データベースへの問い合わせ頻度を少なくするためにログアーカイバの中では一度データベースに問い合わせた内部IDをメモリ上にキャッシュしています。
今回の不具合は、このログアーカイバの持つ表示名とログイン名のキャッシュ機構に存在しました。システムへの過剰な負荷を発生させないよう、ログアーカイバは複数のサブドメインの監査ログを順番にアーカイブに変換しています。その際に、先に処理したサブドメインのキャッシュを破棄せずに次のサブドメインを処理していました。その結果、他のサブドメインの表示名とログイン名がアーカイブファイルに書き出されておりました。
■誤って「ユーザーの表示名」と「ログイン名」を記録されたお客様の特定について
以下の理由から、どのお客様の「ユーザーの表示名」と「ログイン名」が使用されたかについては特定できません。
1. どのサブドメインの情報がどのアーカイブに混入したか処理したログは当社にも存在しておりません。
2. ログアーカイバは毎回異なる処理順序でユーザーの表示名とログイン名をキャッシュしているので、
現在の状況から過去の状況を推定することができません。
閲覧することは内規で禁じているため、調査いたしませんでした。
また、誤って記録されたアーカイブはすでに修正済みであることと、10社のお客様には個別にダウンロ
ードしたアーカイブの破棄をお願いしております。
■改修の詳細
本不具合に対して、既に以下二つの改修を行いました。
1. ログアーカイバの修正
キャッシュをサブドメインの処理ごとに破棄するように修正しました。
2. アーカイブの修正
すべてのアーカイブを、正常に記録されていたユーザーの内部IDをもとに正しい表示名とログイン名に
書き換える修正プログラムを開発し、適用しました。
■再発防止策
cybozu.comでは先述したプロテクションドメインにより、お客様のデータを保護しております。今回の不具合はプロテクションドメインに管理されていないプログラムがお客様のデータを処理していたことが根本的な原因として発生しました。
再発防止策として、管理プログラムはバッチ処理を起動するものとし、アプリケーションデータを操作するプログラムはアプリケーションのプログラムに限定することを徹底してまいります。
■本件に関するお問い合わせ
本件に関するご質問は、cybozu.com お問い合わせ窓口で承っております。
▼cybozu.comに関するお問い合わせ
https://www.cybozu.com/jp/inquiry/common.html
改めまして、この度は、お客様へ多大なるご迷惑とご心配をおかけしたことを深くお詫び申しあげます。
クラウドサービスにおいて、お客様が安心してデータを預けることができる安全な環境を提供することが最も重要であると認識しております。
今回の不具合を真摯に受け止め、お客様に安心して「cybozu.com」をご利用いただけるよう、サービス品質の向上に今後より一層努力いたします。