はじめに
以前、Twitterを見ていたら「電車でSalesforceを見てる人がいて、ユーザIDとパスワードが丸見えだった」というTweetを見かけました。
それを見た私は、こんなTweetをしました。
「セールスフォース」でTweet検索結果を垂れ流しにしてたら「ログインIDとパスワードが横から見えたからログインできる」って出たけど、どんな環境でも普通にログインIPと操作ログは取ってて、そのログはどうあがいても消せないからな。
— Mark Hammer (@Mar9Hammer) 2019年3月19日
さて、仮にユーザIDとパスワードが分かったとして、Salesforceにログインすることはできるのでしょうか。
そして、不正ログインされた場合、そのアクセス内容は分かるのでしょうか。
ふつうはユーザIDとパスワードだけではログインできない
Salesforceで特にセキュリティ設定を行っていない場合、Salesforceに初めてアクセスするPCからログインすると、以下のような確認コード入力画面が表示されます。
これは、過去Salesforceにログインしたことがない端末からログインが試みられた場合の二段階認証の意味があります。
この確認コード入力が必要になっているため、通常はユーザIDとパスワードが分かっただけではログインはできません。
でも確認コード入れたくない
しかし、セキュリティ対策の常ですが多くの人はこう思っているでしょう。
「確認コード入力面倒くさい。」と。
そして、「この確認コード入力をなしにする方法はないか」と探します。
この確認コード入力を無効にするには、このヘルプにも記載されている通り、以下の方法があります。
- 組織の信頼済み IP 範囲の設定 で自分がアクセスするIPアドレス範囲を指定する。
- プロファイルのログインIPアドレスの制限 で自分がアクセスするIPアドレス範囲を指定する。
このうち、組織の信頼済み IP 範囲の設定では全IPアドレス範囲を一度に指定することはできませんが、プロファイルのログインIPアドレスの制限では0.0.0.0~255.255.255.255のように、IPアドレス指定範囲の制限はありません。
そのため、多くの人は下記サイトのように、プロファイルのログインIPアドレスの制限にて0.0.0.0~255.255.255.255を指定して確認コード入力を回避します。
ただ、確認コードをなしとすれば、当然ユーザIDとパスワードが分かっただけでログイン可能となります。
このように、「デフォルトのセキュリティ対策を利便性のために弱める」ことで、不正ログインは可能となるのです。
ログイン履歴と操作ログはどうやって見るの?
先のTweetで、私は「どんな環境でもログイン履歴と操作ログは取っていて、消せない」と書きました。
では、どうやってそれらのログを見るのでしょうか。
ログイン履歴
ログイン履歴 では、過去6か月間のユーザのログイン履歴が参照できます。
具体的には、
- ログイン時刻
- アクセス元IPアドレス
- 状況(ログイン成功、失敗)
の情報が取得できます。
もし、アクセス元IPアドレスに会社で使用可能としているもの以外のIPアドレスがあり、かつ状況が「成功」となっていたら、そのログインは不正ログインの可能性大です。
操作ログ
Salesforceの操作履歴を取得する方法について、イベントモニタリング があります。
これはSalesforce内で発生したイベントごとに、ログが取得できるものとなります。 具体的には、
- ログイン
- ログアウト
- 各画面へのアクセス内容
- レポートのエクスポート
など、「どのユーザがいつどのようなページを見たか」、また「どのユーザが、いつどのレポートをエクスポートしたか」、といった情報が取得できます。
しかし、このイベントモニタリング、Developer Edition 以外では有料のオプションを購入しないとアクセスできないものになります。
では、イベントモニタリング用オプションを購入していない組織では操作履歴は取得できないのでしょうか。。
実は、イベントモニタリング用オプションを購入していない組織でも、同様のログを取得できる方法はあります。
こちらのヘルプ によると、イベントモニタリング用オプションを購入していない場合でも過去 90 日間のログ情報を取得できます。
なお、こちらの方法でも費用は発生します。
「費用が発生してもいいので、どうしても操作ログを見たい!」という方向けですね。
おわりに
Salesforceにログインして何らかの操作をした場合、(期間制限はありますが)ログは取得可能であることをお伝えしました。
しかし、そもそも不正なログインをさせない方法を取った方が良いのは言うまでもありません。
例えば、
- 確認コード入力が面倒なのであれば、組織の信頼済み IP 範囲の設定で会社のIPアドレスを細かく指定して、「会社からのアクセスは確認コード入力不要」とする。
- そもそも社外でSalesforceにログインさせない。
といった方法があります。
万が一があった場合に、この投稿が何かのお役に立てば幸いです。