二要素認証を用いたホストログイン管理およびユーザ操作監査が可能なプロダクト「Bastionhost」のご紹介②

f:id:sbc_suzuki10:20200908191522p:plain

こんにちは。エンジニアの鈴木です。
前回はBastionhostを利用したHost接続までをご紹介しました。

www.sbcloud.co.jp



今回はBastionhostのユーザ操作の監査機能を中心にご紹介させて頂きます。

ユーザ操作の監査は、
Bastionhostを経由し、ログインしたHost先での操作に対して制限もしくは記録をするといった機能となります。


操作の制限の例としては、
誤ったファイル削除によるシステムダウンを防止するため、ファイルやディレクトリを削除するrmコマンドを禁止することや、

f:id:sbc_suzuki10:20200903110625p:plain
安易なファイルの持ち出しを禁止するためにローカル/リモート間のクリップボードの使用を禁止したりなどができます。
f:id:sbc_suzuki10:20200903110641p:plain

また、操作の記録の用途としては、
なんからの操作ミスでインシデントが起きた際に誰の操作が原因だったかを探るため、常に操作記録を保持・再生できるようにするといったこととなります。
f:id:sbc_suzuki10:20200903110652p:plain

小規模システムであれば、上記は導入・保守コスト的に見合わないですが、
中規模ー大規模システムになると利用ユーザが増加に伴い、人的ミスも増加するので導入するメリットが勝ります。

プロダクト費用につきましては、以下をご参照下さい。

www.alibabacloud.com




制御ポリシー

www.alibabacloud.com

制御ポリシーでは、WindowsとLinuxでの禁止コマンドおよび禁止操作を設定できます。
制御ポリシーを設定することで必要なファイルが消されてしまったり、
勝手にファイルをダウンロードされないようにするといったことが可能です。

制御ポリシーは以下で構成されています。
・Command Control(Blacklist/Whitelist)(Linux) ※禁止コマンド/許可コマンド設定
・Command Approval(Linux) ※承認対象とするコマンド
・Protocol Control(RDP/SSH)(Windows/Linux) ※禁止操作設定
・Access Control(Blacklist/Whitelist)(Windows/Linux) ※アクセスコントロール


Command Control
Command Controlでは特定コマンドのBlacklist/Whitelist設定が可能です。
アスタリスクも使用できるので、幅広くマッチします。

f:id:sbc_suzuki10:20200901183058p:plain


Command Approval
Command Approvalでは承認対象とするコマンドを設定可能です。
Command Controlのように単純にコマンドを禁止にするのではなく、コンソールで承認を受ければコマンドが使用できるように設定できます。

f:id:sbc_suzuki10:20200901183106p:plain


Protocol Control
Protocol Controlでは操作に関する制御が可能です。
例えば、ファイルのダウンロードを禁止したり、Windowsのクリップボードの使用を禁止にすることが可能です。

f:id:sbc_suzuki10:20200901183115p:plain


Access Control
Access Controlではアクセス制限が可能です。
BastionhostインスタンスのSecurity GroupやWhitelistとは別に設けられています。
Bastionhostインスタンスにはアクセスできますが、その先のHostに接続する際にAccess ControlのBlacklist/Whitelist設定が適用されます。

f:id:sbc_suzuki10:20200901183124p:plain




制御ポリシーの活用例① Command Control

作成したポリシーはHost(またはHost Group)とUser(またはUser Group)に対して付与するので、
例えば、rootユーザをBastionhostで作成した管理者ユーザと一般ユーザで使い分けるといったことも可能です。
f:id:sbc_suzuki10:20200904115650p:plain

Control Policyに禁止対象とするコマンドを入力し、保存します。

f:id:sbc_suzuki10:20200907115440p:plain


Command ControlでLinuxのrmコマンドを禁止にしたPolicyをHost GroupとUser Groupに割り当てます。 User Groupには一般ユーザのみ所属しています。

f:id:sbc_suzuki10:20200904111337p:plain


f:id:sbc_suzuki10:20200904140215p:plain f:id:sbc_suzuki10:20200904140204p:plain



2つのターミナルで同じHostに同時ログインします。
左がBastionhost管理者ユーザのログイン画面です。右がBastionhost一般ユーザのログイン画面です。
左はrmコマンドが実行可能ですが、右はrmコマンドを実行すると「 [USM] permission denied by rule ~ 」と表示され、コマンドが拒否されました。
このように制御ポリシーを使用することで、OS側で新規ユーザを作成しなくても1つのOSユーザで操作の制限をかけることが可能です。

f:id:sbc_suzuki10:20200903145229p:plain




制御ポリシーの活用例② Command Approval

www.alibabacloud.com

コマンド完全に禁止にすると不都合が生じる場合もあります。
しかし、ミスを防止するため、特定コマンドの制限はしたい・・・といった場合に活用できる「コマンド承認」機能もあります。

f:id:sbc_suzuki10:20200904152610p:plain
Command Approvalに承認対象とするコマンドを入力し、保存します。

f:id:sbc_suzuki10:20200904150044p:plain


制御ポリシーに紐づけられたHostとUserで接続し、承認対象のコマンドを入力すると、
「 [USM] Waiting for confirmation ~」と標準出力され、待機状態となります。
この状態はコマンド承認待ち状態となります。
次にBastionhostコンソールを見てみます。

f:id:sbc_suzuki10:20200904150211p:plain


先程、入力したコマンドがCommand Approvalに表示されています(入力したコマンドがコンソールへ反映される速度は体感1秒以内と高レスポンスです)。
これを承認する場合、対象行にチェックし、Allowを押下して承認します。

f:id:sbc_suzuki10:20200904150701p:plain


承認されると自動的にコマンドの処理が進みます(こちらも1秒以のレスポンスです)。

f:id:sbc_suzuki10:20200904150906p:plain


無事コマンドが成功しました。
ファイルも削除されました。

f:id:sbc_suzuki10:20200904150952p:plain





過去セッションの監査

www.alibabacloud.com

何か問題が起きた際に原因究明として、
どの「チーム」がどのような「操作」をしたのか、再発を防ぐにはどうしたらいいのかを調査する場合があります。
その際に手っ取り早いのが、(必ずしも解決するとは限りませんが)障害発生時に接続していたユーザの操作を調べることです。

Bastionhostの「Session Audit」では過去の操作記録を動画で見ることができます。

過去のセッションはAudit⇒Session Auditから見ることができます。
各セッションのActionsのPlayを押下することで操作内容を見ることができます。

f:id:sbc_suzuki10:20200901163601p:plain


操作画面では監査動画を見ることの他に以下のようなことも可能です。
・スクリーンショット取得およびダウンロード
・再生速度の変更
・操作待機時間のスキップ
・操作コマンド履歴の表示(Linuxのみ)

監査動画は10fps~15fps程の画像取得周期でした。

f:id:sbc_suzuki10:20200901164448p:plain


監査動画は半年以上保存できます。
動画はOSSに保存されますが、ユーザからは見えないため改ざんはされません。
www.alibabacloud.com




現在セッションの監査

www.alibabacloud.com

Bastionhostでは現在Hostに接続しているUserの操作もリアルタイムで見ることも可能です。
現在セッションがAuditのReal-Time Monitoringに表示されます。

f:id:sbc_suzuki10:20200901131018p:plain


Actions列の「Play」で現在の操作を閲覧することが可能です。

f:id:sbc_suzuki10:20200901131203p:plain


左画面がBastionhost、右画面がmstsc.exeで接続したWindowsサーバです(Bastionhost側の遅延は回線環境によりますが1秒以内でした)。

f:id:sbc_suzuki10:20200901132837p:plain


スクリーンショットを取ることも可能です。画像はローカルにダウンロードされます。

f:id:sbc_suzuki10:20200904163928p:plain


セッションの詳細を見ることもできます。

f:id:sbc_suzuki10:20200901134600p:plain


Linuxだとコマンド履歴も見れます。

f:id:sbc_suzuki10:20200901155236p:plain




セッションの強制切断

www.alibabacloud.com

Real-Time Monitoringで不正な操作を見つけた場合、Bastionhostであればセッションの強制切断が可能です。
セッションの強制切断はReal-Time Monitoringの「Interrupt Sessions」で可能です。

f:id:sbc_suzuki10:20200902132314p:plain




認証の種類

前回のブログでは、Bastionhostインスタンスログイン時の2要素認証にRAMユーザのMFAを使用していました。
しかし、上記以外でも認証方法を設定することが可能です。

ログイン時の認証で以下を選択することができます。
・SMS認証 ※Local Userに設定している電話番号を用います。
・AD認証の連携 ※別途ADサーバが必要です。
・LDAPの連携 ※別途LDAPサーバが必要です。


SMS認証

www.alibabacloud.com

f:id:sbc_suzuki10:20200902184616p:plain



AD認証の連携

www.alibabacloud.com

f:id:sbc_suzuki10:20200902184625p:plain


LDAPの連携

www.alibabacloud.com

f:id:sbc_suzuki10:20200902184633p:plain




おわりに

今回はBastionhostの監査機能についてご紹介させて頂きました。

Bastionhostは過去セッションの録画のみならず、
現在セッションの監査や、禁止コマンドの設定、管理者の承認を得ないと使用できないコマンドの設定なども有しています。

また、OS内に別途ユーザを作らなくともBastionhostインスタンスのUserに設定をすれば、コマンドやクリップボードの利用制限なども設定できるのでとても便利です。

前回ブログのアクセス権限の管理や2要素認証に加え、
今回紹介させて頂いたような監査機能についてもBastionhostは十分に機能を備えていますので、ぜひご利用を検討ください!