モバイルセキュリティ
ServiceNow モバイル プラットフォームのセキュリティ機能について説明します。
ServiceNow モバイル アーキテクチャ
ServiceNow モバイル アプリは、 ServiceNow サーバーインスタンスと iOS および Android用のネイティブアプリで構成されます。アプリは完全なネイティブコードを使用し、ハイブリッドアプローチではありません。モバイルアプリは、ワイヤレスネットワークを介してサーバーとデータを送受信します。
ServiceNow モバイル Platform Security の主な機能の概要
- モバイル アプリは、安全な ServiceNow プラットフォームとその API を利用して、ユーザーにシームレスなモバイル エクスペリエンスを提供します。
- アプリ/サーバーのインタラクションは、OAuth 認証フレームワークによって保護されます。
- ServiceNowアプリのユーザーインターフェイスのほとんどは、ServiceNowプラットフォームによって提供されるメタデータによって駆動されます。
- ServiceNow モバイルアプリは ServiceNow プラットフォームからすべてのデータをフェッチし、アプリクライアントレイヤーのローカルキャッシュに保存します。
- ServiceNowインスタンスとの間で転送されるデータとローカルに保存されるデータは暗号化されます。
- iOS アプリの場合、ServiceNow は、デバイスレベルの PIN または生体認証セキュリティを強制することで、コアデータに OS レベルの FIPS 140-2 検証済みディスク暗号化を使用します。iOS は、オペレーティングシステムの更新により、FIPS 準拠の暗号スイートを最新の状態に保ちます。
- Android アプリの場合は、ServiceNow は SQLCipher SDK を使用します。この SDK は、Room DB に格納されているすべてのアプリデータに対して FIPS 140-2 検証済み暗号モジュールを使用した暗号化を行います。Android アプリのクライアント バージョン 20.1.0 では、TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 暗号スイートが追加され、以下の CBC 暗号のサポートは中止されました。
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA
- TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256
暗号の不一致が原因で SSL ハンドシェイクの問題が発生した場合は、インスタンスでサポートされている暗号を確認し、サポートされている暗号をもう 1 つ追加します。
以下は、 Androidでサポートされている暗号のリストです。- TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384
- TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256
- TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384
アプリフローの概要
ServiceNow モバイル アプリは、サインインが成功すると、初期ユーザーエクスペリエンスのフェッチを開始します。モバイルアプリは、インスタンスからランディングホーム画面を表示するためのメタデータをフェッチします。その後、アプリはこのメタデータを使用してホーム画面をレンダリングします。
データ検索
- データの読み取り
- ユーザーがモバイルアプリで情報の表示を要求すると、次の手順が実行されます。
- モバイルアプリは、インスタンスからデータにアクセスする要求を送信します。要求には、要求に必要なトークンと関連データフィールドが含まれます。
- インスタンスは要求を受信し、トークンが有効かどうかを確認します。
- トークンが有効な場合、インスタンスは情報をフェッチするために関連する API に要求を送信します。
- インスタンスは情報をモバイルアプリに返します。
- ドキュメントのダウンロード
- ユーザーがアプリからドキュメントのダウンロードを要求すると、次の手順が実行されます。
- モバイルアプリからドキュメントへのアクセス要求が送信されます。要求にトークンが含まれます。
- インスタンスは要求を受信し、トークンが有効かどうかを確認します
- インスタンスは、アクセス制御リスト (ACL) ルールをチェックします。
- 有効な場合、ドキュメントを表示できます。
- フィールド更新のためのライトバック
- ユーザーがモバイルアプリのフィールドを更新すると、次の手順が実行されます。
- モバイルアプリは、トークンとアクションメタデータをインスタンスに送信します。たとえば、更新する ID やフィールドなどです。
- インスタンスは、関連する API に基づいてアクションを指示します。
- インスタンスはアクションを完了し、応答をモバイルアプリに送信します。
- 応答に基づいて、モバイルアプリはフィールドの変更とアクションの可用性を UI に反映します。
- ファイルを添付するためのライトバック
- ファイルを添付する場合、次の手順が実行されます。
- モバイルアプリでは、画像などのファイルを添付するようにユーザーに求めます。
- モバイルアプリがファイルとトークンをインスタンスに送信します。
- インスタンスは、関連する API に基づいてファイルを配置します。
- インスタンスが応答をモバイルアプリに送り返します。
モバイル認証
ServiceNow モバイル アプリは、OAuth 2.0 を使用したプラットフォーム認証をサポートしています。認証メカニズムには、マルチプロバイダー SSO、MFA、LDAP、ローカル DB、およびダイジェストが含まれます。 ServiceNow モバイル アプリでは、AppAuth と呼ばれる認証方法が使用されます。AppAuth は、外部のモバイルブラウザを使用してユーザーをログインさせます。
- 認証フロー
ユーザーがモバイルデバイスでアプリにサインインすると、アプリはユーザーの認証情報を使用してインスタンスと OAuth トークンをネゴシエートします。iOS キーチェーンには、iOSデバイスのトークンが保存されます。デバイスAndroid KeyStore を使用します。キーチェーン暗号化は、ガロア/カウンタモード (GCM) で AES 256 です。
初回ログイン時に、インスタンスはアクセストークンとリフレッシュトークンをユーザーに与えます。これらのトークンは、インスタンスで設定できる期間有効です。ユーザーがモバイルアプリを開くと、クライアントはアクセストークンが有効かどうかを確認します。有効な場合、ユーザーはセッションを続行できます。有効でない場合、クライアントはリフレッシュトークンが有効かどうかを確認します。有効な場合、リフレッシュトークンを使用してユーザーの新しい有効なアクセストークンがフェッチされ、セッションは続行できます。リフレッシュトークンが有効でない場合、ユーザーは再認証する必要があります。
- アクセストークンとリフレッシュトークン
- モバイルアプリは、ユーザーパスワードを保存しません。
- モバイルアプリには、認証フローの一部として OAuth トークンを取得するために必要なクライアント ID が保存されます。
- ユーザーの終了
- アドミニストレーターがインスタンスからユーザーを削除または除去すると、アクセストークンは無効になり、操作によってユーザーはログアウトされます。
- 複数プロバイダー SSO
- マルチプロバイダー SSO プラグイン [com.snc.integration.sso.multi.installer] は、SAML 認証のサポートを提供します。SAML を使用している場合、ログインプロセス (AppAuth) はこのプラグインを使用して、ユーザーを IDP (SAML プロバイダー) ログインページにリダイレクトします。
- マルチファクター認証
- ユーザーは、MFA プラグイン [com.snc.integration.multifactor.authentication] を使用して、マルチファクター認証を介してインスタンスにアクセスできます。モバイルアプリでインスタンスを選択した後、モバイルアプリはユーザーをログインページに誘導します。
- LDAP
- LDAP 認証を使用するには、LDAP 認証情報を使用してアクセスします。ユーザーにはローカルログインと同じログインページが表示されますが (DB ベース) が、LDAP サーバーのバックエンドによって認証が削除されます。
データセキュリティ
ServiceNow モバイル アプリは、データセキュリティのために SSL/TLS 無線 (OTA) 通信暗号化を使用します。OAuth 認証エンドポイントは HTTPS です。
- 保存データ
お気に入り、ホーム画面、モバイルナビゲーターアイテムなどのアプリケーション設定データは、デバイスにローカルに保存され、キャッシュされます。モバイルアプリは、組織がフィールドサービスのオフライン同期を特別に有効にしていない限り、インシデントや問題などのレコードデータをデバイスに保存しません。オフラインモードで保存されたレコードデータは、FIPS 140-2 検証済みモジュールで暗号化されます。(iOS 暗号化モジュールと、この暗号化モジュールを使用する Android の SQL 暗号)。
- 移動中データ
- 移動中のデータは、安全な SSL/TLS チャネルを介して行われ、FIPS 140-2 検証済みモジュールで暗号化されます。
- データ損失防止
- ServiceNow は、デバイスやアプリケーションをエンタープライズモビリティ管理 (EMM) スイートで管理しなくても、データ損失防止機能を提供します。これらの機能には、コピー/貼り付けの制限、PIN の強制、添付ファイルのブロック、および/またはぼかし機能が含まれます。
- コピー/貼り付けの制限
- コピー/貼り付けの制限は、システムプロパティテーブルのプロパティによって定義されます。
- アプリ PIN の要求
- ユーザーがモバイルデバイスからサインインするたびに、またはアプリケーションが 5 分間非アクティブになっているときに、ユーザーに 6 桁の PIN の入力を要求します。アプリ PIN の要求は、システムプロパティテーブルのプロパティで制御されます。
- モバイルデバイスでの添付ファイルの無効化
- 特にモバイルデバイス上の添付ファイルをブロックするように ACL ルールを設定できます。
isMobileメソッドを使用して、要求がモバイルデバイスから送信されたかどうかを確認します。たとえば、読み取りおよび書き込みスクリプト ACL に次のチェックを含む添付ファイル [sys_attachment] テーブルの ACL ルールを追加できます。 - アプリのぼかしオプションを有効にする
- モバイルデバイスにフォーカスしていないときに、システムプロパティテーブルの次のシステムプロパティを使用して、モバイルアプリをぼかします。
- ペネトレーションテスト
ServiceNow は、モバイルアプリのペネトレーションテストを実行するためにサードパーティと契約します。これは通常、毎年発生しますが、より頻繁に発生することもあります。これらのテストの結果は顧客に提供されます。セキュリティテストの詳細については、「KB0538598」を参照してください 。 カスタマーインスタンスセキュリティテスト |ポリシーと手順。
- セキュリティパッチ適用
- セキュリティパッチが必要な場合、モバイル開発チームは標準の SDLC プロパティに合わせてパッチを適用します。
- ユーザーデータ収集
モバイルアプリは、特にユーザーデータを収集しません。
アプリ内のユーザーのトランザクションまたは使用状況は、Web 上の場合と同様に ServiceNow インスタンスでも追跡されます。ユーザー認証情報の場合、ユーザーがログインした後、モバイルアプリは Apple キーチェーンまたは Android キーストアに格納されている OAuth トークンをネゴシエートします。ユーザーの認証情報は保存されません。ユーザーがオプトインすると、次の情報が収集されます。
- 場所
- カメラへのアクセス
- 通知