セールスフォースドットコムから、「Salesforceサイトおよびコミュニティにおけるゲストユーザのアクセス制御の設定について」というお知らせが出ていました。
https://www.salesforce.com/jp/company/news-press/stories/salesforce-update/
お知らせを確認すると「認証されていないユーザ(以下『ゲストユーザ』に対して意図した以上の情報にアクセスを許可してしまう可能性があることに懸念を持たれているお客様がいらっしゃることを認識しております」とのこと。
また、「Salesforceプラットフォーム固有の脆弱性に起因するものではなく、お客様のアクセス制御の権限設定が適切に行われていない場合に発生する」とのことです。
あと、「ゲストユーザセキュリティポリシーのベストプラクティス」も公開されていますね
https://help.salesforce.com/articleView?siteLang=ja&id=000355945&type=1&mode=1
その中で以下のような記載がありました。
- 内部および外部の組織共有のデフォルトを、非公開データを持つすべてのオブジェクトで「非公開」に設定します。適切な理由で代替共有モデルが許可される場合があります。(例: [CRUD] レベルでの作成、参照、更新、削除での適切な制限)
- サイトゲストユーザとデータを共有しないように、すべての共有ルールを設定します。
このことから、ゲストユーザを作った際、デフォルト設定されるロールが一般ユーザと同じものだったんでしょう。また、データの共有設定も、ゲストユーザを作成した場合のことを考えていなかった可能性があります。
つまり、あらかじめゲストユーザを作成する前提でロール設計やデータの権限設定をしておらず、後々にゲストユーザを作成した際にデータが見えてしまったのではないでしょうか。
人が犯罪を犯すには、機会と動機と正当性が大きな要素と言われています。
今回のSalesforceの件は、機会を充足するものだと考えられます。
あとは、アクセスするユーザ自身が、会社や給料に不満があると、自己正当化して犯罪に手を染めるというシナリオができてしまいます。
今回のことを防ぐためには、ゲストユーザを作成する可能性があることを考慮してあらかじめ設計したり、ゲストユーザ作成のタイミングで権限周りの洗い出しをして見直しをしたりべきでした。
実際問題、私も社内情シスを経験をした身からすると、ゲストユーザ運用前提の設定や洗い出しなんて絶っっっっっっっっっっっっっっ対できないです。(そもそも日次のタスクで死んでる)あらかじめ設計する案も、小さい会社ならできるかもしれませんが、大きな会社だと、難しいかなと考えています。
その上でどうするかですが、経営層に口を出せるセキュリティ部署や担当者が、CRM導入の際設計のレビューをしたり、ゲストアカウント作成の際、洗い出しを実施するよう経営層に話をしたりする必要があると考えています。そうすると、口を出せるセキュリティ部署や担当者が必要になるのですが、それは会社の体制として作ってもらう必要があります。
今回のことに限らずですが、まだまだセキュリティに工数をかけられる会社は多くない印象です。必要性を論じて、工数を確保する必要があるので、これからもっとセキュリティに意識するひる必要が増えてくるのではないでしょうか。
※今回の件で、「S〇lesforceは危ない!使うな!」ってならないように祈ってます。製品に(基本的に)罪はないです。