SaaS 利用時の2FA (2要素認証) についての考察

G Suite、Office 365 をはじめとした SaaS を利用する際の 2FA (2要素認証) について、簡単にまとめてみました。

(1) 2FA (2要素認証) とは

2FA とは Two Factor Authentication の略で、システムの個人認証に2つ以上の要素を使うことを示します。例えばパスワードを2種類組み合わせて使うのは2FAとは呼びません。次の3つのうち、いずれか2つを組み合わせるのを2FAと呼びます。

・本人が記憶していること (パスワード、暗証番号 など)
・本人が持っているもの (スマホ、USBセキュリティキー、パスワードカード など)
・本人の身体的特徴 (指紋、静脈、虹彩 など)

SaaS はインターネットがあればどこからでも利用できるのがメリットである一方、パスワードだけの1要素認証では、パスワードが漏れると不正にログインされ、情報を搾取されてしまうというリスクがあります。2要素を組み合わせて認証することによって、万が一第三者にパスワードが漏れても、もう1要素を持っていなければ不正にログインできなくなるので、セキュリティレベルが格段に高まります。

メジャーな SaaS (G Suite、Office 365 など) は詐欺メールによるパスワードの抜き取り (そっくりなログイン画面をつくってパスワードを入れさせる) が横行しているので、2FAなしで運用するのはかなり危険じゃないかなと思っています。

※ 似た呼び方として「2段階認証」というのがありますが、これは Two Step なので Two Factor とは限らないです。パスワードを2重化するのは Two Step ではありますが Two Factor ではない、ということになります。

(2) 現場でよく使われている 2FA

私がこれまで経験した現場でよく使われている 2FA は下記のいずれかでした。日本企業、とくに大企業ではパターンAが多い気がします。

パターンA:接続元IPアドレスによる認証

1要素目はパスワード。2要素目はその組織がインターネット接続に利用するグローバルIPアドレス、というものです。事前に登録したグローバルIPアドレス以外からの接続を制限することにより、パスワードが漏れても、その組織のオフィス以外からはアクセスできません。

パターンB:スマホやUSBセキュリティキーによる認証

1要素目はパスワード。2要素目はその個人が持っているスマホやUSBセキュリティキーといった所有物を使うというものです。パスワードを入力後、事前に登録したスマホにSMSや専用アプリなどを使って一時的なコードを送付し、それを入力しないとログインできなくします。USBセキュリティキーの場合は、それが挿入されているパソコンからでないとログインできない、というものです。パスワードが漏れても、スマホやキーが無ければログインできません。

※ 生体認証は、マイナンバーを扱う端末など、特別なセキュリティレベルを要するケースを除き、そんなに頻繁に利用されていない気がしますね。金融業界とかに関与したことがないので、知らないだけかもしれませんが…。

(3) メリットとデメリット

パターンA のメリットとしては、組織のオフィス内のネットワークに接続された端末であれば、パスワードの入力だけで使うことができ、簡便という点です。
デメリットとしては、許可されていない端末をオフィスに持ち込まれ、ネットワークに接続されてしまうと良くないので、許可された端末と許可されていない端末をどう区別して制御する何らかの手段が必要です。また、インターネット接続口単位での制御であるという点。接続口が一つに集中できていれば良いのですが、例えば海外拠点から本社経由で SaaS に接続するというのは接続速度の面からも考えにくく、拠点から直接インターネット経由で SaaS に接続したいでしょう。そうなると、拠点が増えたり移転したりするたびに接続元のグローバルIPアドレスを登録・変更しなければいけません。あと、出張中やリモートワークなど、社外から SaaS を利用する際は、一旦社内ネットワークに接続するための方法を何らかの形で提供する必要がありますね。VPNなど。

パターンB のメリットとしては、海外拠点からの接続や、出張中やリモートワークなど、オフィスの外からでも安全に接続できるという点です。
デメリットは、まず毎回スマホに飛んできたコードを入れたりするのが若干面倒という点。ただ、利用する SaaS や認証サービスによっては、タップするだけでOKのアプリで認証できたりもしますので、緩和する方法はあります。最大の難点は、許可されていない端末からの接続を制御できない点です。スマホやUSBキーを自宅に持ち帰ってしまうと、自宅のパソコンからの接続は制御しようがありません。

(4) どうすればいいのか

パターンA は、SaaS との境界線をオフィスのネットワークの出口に持ってくる発想です。少し前までは極めて普通の発想だと思っていたのですが、海外含めた複数拠点からの SaaS の利用、直行直帰やリモートワークの浸透に伴う出先や自宅からの SaaS の利用などが今後増えるに伴い、少しずつ無理が出てきているような気がします。

パターンB は、SaaS との境界線を各デバイスに持ってくる発想です。今後はこちらの発想がメインになってくる気がします。ただ、前述のとおり、許可されていない端末からの接続を制御できないというリスクに対し、何らかの対処が必要です。具体的にはどのようなリスクがあるか想像してみます。

ア) 従業員が悪意を持って情報を持ち出す可能性がある。自宅のパソコンから SaaS に接続し、そこから企業データをダウンロードし、個人で保有あるいは契約しているストレージに情報をコピーされてしまうと厄介です。

イ) 十分なセキュリティ対策が行われていない端末から SaaS に接続できてしまう。例えば Windows Update が行われていない、ウイルス対策ソフトウェアが導入されていない端末など。不正なソフトウェアに感染し、結果として企業の情報を抜かれてしまうリスクがあります。

ア) に対しては、SaaS の機能を利用して、特定のデータのダウンロードを禁止したり、ログの取得を強化して牽制したりするという方法があります。また、ア) イ) 両方に効く対策としては CASB (Cloud Access Security Broker、キャスビー) を導入して SaaS 全般へのアクセスを制御したり、端末のセキュリティレベルを監査したりするという方法があります。CASB については最近さまざまな解説サイトが登場していますが、こちら が比較的わかりやすいかも。

私の職場では、G Suite を導入するにあたり、リスクやコストメリットを勘案した結果、パターンBで進めました。ア) イ) のリスクに対する対策については…あまり細かいことは書けないのですが、十分ではありません。コストもかかるので、経営層の理解を得ながら強化していきたいと思っています。