ソニックムーブが提供するクラウド型のLINE連携サービス「COMSBI(SaaS版)」が、運用・サポート用の社内アカウントを使った不正アクセスを受け、複数の導入企業・団体の利用者情報が取得されました。導入企業のヒューマンアジャストは、自社分だけで利用者情報が最大58,510人、LINE公式アカウントの友だち情報が最大116,518人と開示しています。本記事の前半では、公式発表と適時開示で確かめられる経緯と取得項目、友だち登録者が知っておきたいLINEユーザーIDの性質を整理しました。後半は導入企業の担当者と開発者向けに、報告と件数の照合の手順、運用者アカウント1つで複数の企業のデータが取られる構造の防ぎ方をコード例で示します。
まとめ:COMSBI(SaaS版)不正アクセスで公表された事実と導入企業の対応
侵入に使われたのは、複数の企業・団体の管理機能を操作できる権限が付いたソニックムーブの社内アカウントです。11月9日23時4分から翌朝まで取得が続き、クラウド環境の設定情報や認証情報も取られました。サービスは止まらず、引き続き使える状態です。
| 項目 | 公表内容 |
|---|---|
| 不正アクセスの期間 | 2026年11月9日夜〜翌10日朝(時刻は下記) |
| 侵入に使われたもの | 運用・サポート用の社内アカウント(複数) |
| 利用者の情報 | 氏名・連絡先・生年月日・性別など(詳細は下記) |
| 友だちの情報 | LINEプロフィール・ユーザーID(詳細は下記) |
| クレジットカード情報 | 保持していない |
| 対象企業と総件数 | 未公表(対象企業へ個別に報告) |
| サービス | 継続して利用可能 |
不正アクセスの期間は2026年11月9日23時4分〜11月10日9時17分です。利用者の情報は氏名・電話番号・メールアドレス・住所・生年月日・性別などを指します。友だちの情報はLINEの表示名・プロフィール画像・ステータスメッセージ・LINEユーザーIDです。
導入企業が先に動くのは、ソニックムーブからの個別報告で自社が対象かを確かめ、対象なら個人情報保護委員会への報告に入ることです。並行して、LINE公式アカウントの連携用の認証情報を自社の権限で更新します。友だち登録をしていた利用者は、公式アカウントや企業名を名乗るメッセージでも、パスワードや認証コードの入力を求めるリンクは開かないことが当面の備えになります。
公式発表と適時開示で確かめるCOMSBI不正アクセスの経緯と取得項目
11月9日23時4分から社内アカウント複数で広がった取得の時系列
ソニックムーブのお知らせ(11月12日)によると、経緯は次の順です。認証情報が第三者の手に渡った経緯は調査中とされています。
- 11月9日23時4分:第三者が社内アカウントの1つでログインし、複数の企業・団体の情報の取得を始める
- 11月10日2時15分:別の社内アカウントも複数使い、取得を広げる
- 11月10日7時36分:クラウド環境の異常を検知し、不正に使われた権限を遮断
- 11月10日9時頃〜9時17分:攻撃元を遮断し、社内アカウントのパスワード変更と強制ログアウト
- 11月11日:導入企業への報告(ヒューマンアジャストの開示による)
最初のログインから検知までは約8時間半あります。深夜帯に始まり、途中で使うアカウントを増やしていることから、1つのアカウントの取得量だけを見ていても気付きにくい動きでした。この点は後半の検知の章で扱います。
利用者情報と友だち情報で分かれる取得項目とヒューマンアジャストの件数
取得された情報は2系統です。1つは導入企業が預けていた利用者の情報で、項目は企業ごとに違います。もう1つはLINE公式アカウントの友だちの情報で、LINE側から得たプロフィールです。
件数を出しているのは、現時点では導入企業側の開示です。ヒューマンアジャストの適時開示(11月13日)は、利用者情報が最大58,510人、友だち情報が最大116,518人としました。いずれも確認中の最大値で、調査で減る可能性があると書かれています。友だち情報の項目は表示名・プロフィール画像のURL・LINEユーザーIDで、ソニックムーブの発表にあるステータスメッセージは同社の開示には含まれていません。COMSBI全体の企業数と総件数は公表されていません。
10月23日のCOMSBIエンタープライズ基盤の事案と別基盤である点
ソニックムーブは10月にも、法人向けの「COMSBI エンタープライズ基盤」への不正アクセスを公表しています。エンタープライズ基盤のお知らせでは、10月23日午前に管理システムへ不正ログインがあり、管理画面の機能の不備を通じてサーバーの認証情報が取得されました。同基盤は、このお知らせの時点で全機能を止めています。
今回のSaaS版は、ソニックムーブが別のシステム基盤で動いていると説明している別の事案です。エンタープライズ基盤の利用企業に今回の影響は無いとされています。名前が似ているため、自社がどちらの契約かを最初に確かめます。共通しているのは、管理側のアカウントの認証情報が起点になった点です。
友だち登録者が知っておくLINEユーザーIDの性質と不審な連絡の見分け方
プロバイダーごとに値が変わるLINEユーザーIDと検索用LINE IDの違い
漏えい項目にある「LINEユーザーID」は、友だち検索に使うLINE IDとは別物です。LINE Developersのユーザーの説明によると、ユーザーIDはLINEプラットフォームが発行するUと16進数32桁の値です。同じ人でも、LINE公式アカウントを運営するプロバイダーごとに違う値になります。
つまり、漏れたユーザーIDは、その導入企業のプロバイダーの中でだけ意味を持つ識別子です。他社が受け取っても、その人のLINEアカウントを探したり、友だち追加したりする手掛かりにはなりません。ユーザーIDだけでLINEにログインされることもありません。
ユーザーIDと連携用の認証情報が揃うと起きる本物の公式アカウントからの配信
懸念が残るのは、ユーザーIDと、そのLINE公式アカウントのチャネルアクセストークンが同じ相手の手に渡った場合です。Messaging APIでは、トークンとユーザーIDがあれば特定の個人へメッセージを送れます。届くメッセージは本物の公式アカウントからのものなので、送信元の名前やアイコンでは見分けられません。
ソニックムーブはクラウド環境の認証情報が取得されたと公表し、LINE公式アカウント連携用の認証情報を順次更新しているとしています。連携用のトークンそのものが取られたかは明記されていません。見分ける基準は内容の側に置きます。プレゼントの当選や会員情報の確認を理由に、パスワード・認証コード・カード番号の入力を求めるメッセージやSMSは開かず、企業の公式サイトを自分で開いて同じ案内があるかを確かめてください。
COMSBI導入企業が今週進める報告・件数照合・認証情報の更新
個人情報保護委員会への報告と、不正目的の漏えいで確報60日となる期限
今回のように不正アクセスで取得された場合は、個人情報保護委員会の案内にある「不正の目的をもって行われたおそれがある」類型に当たり、件数にかかわらず報告の対象です。速報は発覚から3〜5日以内、確報は不正目的のおそれがあるため発覚から60日以内が期限です。
利用者の情報を預けていたのは導入企業なので、報告と本人への通知は委託元の側の仕事になります。ヒューマンアジャストも、ソニックムーブから報告を受けた翌々日に開示し、委員会への報告手続きを進めているとしました。対象者がまだ絞り込めていなければ、速報は最大値で出し、確報で確定値に直します。速報と確報の書き分けは個人情報保護委員会への報告義務の実務で解説しています。
友だちID一覧APIで自社の友だち数を数え、通知された最大件数と照らす手順
ソニックムーブから届いた友だち情報の件数が、自社の規模として妥当かは手元で確かめられます。Messaging APIリファレンスの「LINE公式アカウントを友だち追加したユーザーのリストを取得する」(GET /v2/bot/followers/ids)で、数える対象は、そこで取得できるユーザーIDです。認証済アカウントかプレミアムアカウントでのみ使え、それ以外は403が返ります。
# 友だちのユーザーIDを全件たどって数える(Python 3 標準ライブラリのみ)
# LINE_CHANNEL_ACCESS_TOKEN には更新後のトークンを環境変数で渡す
import json, os, urllib.parse, urllib.request
token = os.environ["LINE_CHANNEL_ACCESS_TOKEN"]
total, start = 0, None
while True:
params = {"limit": "1000"} # 既定は300、最大1000
if start:
params["start"] = start # 前回の next をそのまま渡す(有効期間24時間)
url = "https://api.line.me/v2/bot/followers/ids?" + urllib.parse.urlencode(params)
req = urllib.request.Request(url, headers={"Authorization": "Bearer " + token})
with urllib.request.urlopen(req) as res:
data = json.load(res)
total += len(data["userIds"])
start = data.get("next")
if not start:
break
print("取得できたユーザーID数:", total)
この数には、ブロックしたユーザー、LINEアカウントを削除したユーザー、プロフィール情報の取得に同意していないユーザーが含まれません。管理画面に出る友だち数より少なくなるのはそのためです。通知された件数がこの数を大きく上回るなら、過去にブロックした人やデータの残り方を含めてソニックムーブに内訳を確かめます。コードは本記事の環境では実行しておらず、リファレンスの記載に基づきます。
連携用トークンとシークレットの更新をソニックムーブ任せにしない理由
ソニックムーブは連携用の認証情報を順次更新するとしていますが、LINE公式アカウントのチャネルは導入企業のものです。長期のチャネルアクセストークンとチャネルシークレットはLINE Developersコンソールから導入企業が自分で再発行でき、再発行すれば古い値は使えなくなります。更新の後は、新しい値をCOMSBIに登録し直す順番になります。
トークンの種類ごとの取り消しの可否、シークレットの再発行とWebhook署名検証の切り替え、送信済みメッセージ数で身に覚えのない配信を照合する方法は、同じ週に起きたTONARIWA不正アクセスでの失効手順にコマンド例付きでまとめました。手順はCOMSBIの導入企業にもそのまま当てはまります。
運用者アカウント1つで複数企業のデータが取られる構造と開発側の防ぎ方
テナント横断の権限を常設せず期限付きで付与する行レベルセキュリティ
今回の起点は、運用・サポート用のアカウントに、複数の企業・団体の管理機能を操作できる権限が常に付いていたことです。問い合わせ対応のたびに顧客のデータを見る必要があるSaaSでは、この権限を「常設」から「チケットごとに期限付きで付与」に変えるだけで、1つのアカウントが奪われたときの範囲が大きく縮みます。
PostgreSQLなら行レベルセキュリティで組めます。PostgreSQL 18のドキュメントによると、行レベルセキュリティを有効にしたテーブルはポリシーで許した行しか読めず、ポリシーが無ければ1行も見えません。
-- 導入企業ごとの行だけを見せ、サポート担当には期限付きの付与がある企業だけを見せる
ALTER TABLE end_users ENABLE ROW LEVEL SECURITY;
ALTER TABLE end_users FORCE ROW LEVEL SECURITY; -- テーブル所有者にも適用する
CREATE TABLE support_grants (
staff_id text NOT NULL,
tenant_id bigint NOT NULL,
ticket_id text NOT NULL, -- 問い合わせ番号の無い付与は作らない
expires_at timestamptz NOT NULL
);
CREATE POLICY tenant_or_granted ON end_users
USING (
tenant_id = current_setting('app.tenant_id', true)::bigint
OR EXISTS (
SELECT 1 FROM support_grants g
WHERE g.staff_id = current_setting('app.staff_id', true)
AND g.tenant_id = end_users.tenant_id
AND g.expires_at > now()
)
);
落とし穴はアプリが接続するロールです。スーパーユーザーとBYPASSRLS属性のロールは常にポリシーを素通りし、テーブル所有者もFORCEを付けない限り素通りします。管理画面の接続ロールがこのどれかなら、上の設定は効きません。付与テーブルへの書き込みは別の承認者だけに許します。SQLは本記事の環境では実行していません。
短時間の大量取得を監査ログから検知するSQLと企業数の閾値の決め方
ソニックムーブは再発防止として、短時間に大量のデータを取得するアクセスの制限を入れました。制限と同時に、1つのアカウントが1時間に何社分のデータに触れたかを監査ログで数えておくと、今回のような動きは数値で見えます。
-- 1時間のうちに3社以上のデータを読んだ社内アカウント、または1万行以上を読んだアカウントを出す
SELECT actor_id,
date_trunc('hour', created_at) AS hour,
count(DISTINCT tenant_id) AS tenants,
sum(row_count) AS rows_read
FROM audit_log
WHERE actor_type = 'staff'
AND action IN ('list', 'export')
AND created_at >= now() - interval '1 day'
GROUP BY actor_id, date_trunc('hour', created_at)
HAVING count(DISTINCT tenant_id) >= 3
OR sum(row_count) >= 10000
ORDER BY hour;
閾値の3社と1万行は例です。過去30日の実績で、サポート担当1人が1時間に触れる企業数の最大値を出し、その少し上を閾値にする設定です。今回は使うアカウントが途中で増えたため、アカウント単位だけでなく、深夜帯の社内アカウント全体の合計も同じ形で数えます。侵入口側のレート制限や認可の作り方はAPI不正アクセス対策の実装手順で扱っています。
LINE連携SaaSを使い続ける判断基準と自社開発に切り替える条件
契約前後に確かめるサポート用アカウントの権限と2段階認証の有無
導入企業の側から見えにくいのが、提供会社の社内アカウントが自社のデータにどこまで届くかです。ソニックムーブは今後、管理画面の2段階認証の必須化と接続元の制限、社内アカウントとクラウド環境の権限の見直しを進めるとしています。他のLINE連携SaaSを使っている企業も、同じ点を自社の契約先に聞けます。
- 運用・サポート用のアカウントが自社のデータを見られる条件(常時か、依頼のたびか)
- そのアカウントに2段階認証と接続元の制限がかかっているか
- 自社データへのアクセス記録を、求めれば提供してもらえるか
- 友だち情報や会員情報のうち、連携に要らない項目まで保存していないか
答えが「常時見られる」「記録は出せない」なら、契約の見直しの材料になります。委託先に何を求めるかの整理は委託先管理の監督義務とチェックリストが参考になります。
自社開発に切り替えるべき規模とSaaSのままでよい場面の線引き
友だちが数千人規模で、配信と簡単なアンケートにしか使っていないなら、SaaSのままでよいと判断します。自社で同じ水準の監視と権限管理を持つほうが費用も手間も大きく、上の4項目を契約先に確かめるほうが効果は出ます。
切り替えを検討するのは、LINEのユーザーIDを会員番号・購買履歴・住所と結び付けて保存している場合です。今回のヒューマンアジャストのように友だちが10万人を超え、氏名や住所まで同じ基盤に置いているなら、漏えい時の報告と通知の負担は配信ツールの月額を大きく超えます。その場合に採るのは、個人情報を自社の会員DBに残し、SaaSにはユーザーIDと配信に要る最小限だけを渡す構成です。LINE連携を含む会員システムの権限と認証情報の扱いを外部の目で点検するなら、脆弱性診断・セキュリティ診断で相談できます。
よくある質問
COMSBI(SaaS版)への不正アクセスについて、導入企業の担当者や友だち登録をしていた利用者から出やすい質問をまとめました。
COMSBIの不正アクセスで漏れた可能性がある情報は何ですか?
導入企業が預けていた利用者の氏名・電話番号・メールアドレス・住所・生年月日・性別などと、LINE公式アカウントの友だちの表示名・プロフィール画像・ステータスメッセージ・LINEユーザーIDです。項目は導入企業ごとに違います。クレジットカード情報は保持していないとされています。システムの設定情報や認証情報も取得されました。
LINEユーザーIDが漏れるとアカウントを乗っ取られますか?
ユーザーIDだけでLINEにログインされることはありません。ユーザーIDは公式アカウントを運営するプロバイダーごとに別の値で、友だち検索に使うLINE IDとも違います。注意したいのは、同じ公式アカウントの連携用トークンも渡った場合に、本物の公式アカウントからメッセージが届く点です。入力を求めるリンクは開かず、公式サイトで確かめてください。
COMSBIは今も使えますか?エンタープライズ基盤とは違いますか?
ソニックムーブの11月12日の発表では、SaaS版は引き続き利用可能な状態です。10月23日に不正アクセスが見つかった「COMSBI エンタープライズ基盤」は別のシステム基盤で、10月のお知らせの時点では全機能を止めて調査を進めていました。今回のSaaS版の件は、エンタープライズ基盤の利用企業には影響しないとされています。
自分の情報が対象か確かめるにはどうすればよいですか?
COMSBIを使っていた企業からの案内で確かめます。ソニックムーブは対象の企業・団体に個別に報告するとしており、ヒューマンアジャストは対象者を特定したら個別に案内するとしています。COMSBIを使っている企業の一覧は公表されていないため、心当たりのある企業の公式サイトのお知らせを見るのが確実です。
導入企業はソニックムーブの対応を待つだけでよいですか?
待つだけでは足りません。個人情報保護委員会への報告と本人への通知は、利用者の情報を預けていた導入企業の側にも求められます。不正アクセスによる漏えいは件数にかかわらず報告の対象で、速報は3〜5日以内が期限です。LINE公式アカウントのトークンとシークレットも、導入企業がLINE Developersコンソールから自分で再発行できます。
関連記事
- TONARIWA不正アクセス:LINE連携トークン漏えいの恐れと利用企業の失効手順:同じ週に起きたLINE運用基盤の事案と、トークン・シークレットの失効手順
- KARTEの不正アクセス:全機能停止で利用企業がタグ・配信・データ連携を確かめる手順:顧客接点のSaaSが止まったときに利用企業が確かめる点
- ブラストメール不正アクセス:421契約の配信先漏えいと、ピッコマ・エックスサーバーなど利用企業の公表、報告・通知の手順:配信サービスの提供会社が侵入された事例
- 個人情報保護委員会への報告義務|対象4類型・速報3〜5日と確報30日の実務:導入企業が出す速報と確報の書き方
- 委託先管理とは?個人情報保護法25条の監督義務とチェックリスト・契約条項の実務:SaaS提供会社に求める監督の範囲