SSHでのファイルコピーの制御について
本記事は2019年5月17日に公開したものをアップデートしたものです。
リモートメンテナンスなどの作業では、SSHプロトコルを使用して、対象のサーバーやネットワーク機器にアクセスします。
特権を付与されたIDでリモートアクセスする場合も多く、特権IDユーザーは、あらゆる権限で設定変更などの重要な操作が可能です。
セキュリティ対策やコンプライアンス・監査対応として、特権IDユーザーの操作を証跡として記録する必要があります。
しかし、ユーザーの操作画面を記録するだけでは不十分です。
ユーザーは、情報漏洩のリスクになる可能性がある機密ファイルやディレクトリをコピーするかもしれません。
しかし、操作方法によっては、コピー操作の内容が画面に表示されず、記録に残らない場合があります。また、ユーザーに応じて、コピー操作を禁止する必要もあります。
今回は、SSHのリモートアクセスにおけるファイルコピーをコントロールする方法について、特権IDアクセスのセッションを制御・監視・記録する”Safeguard for Privileged Sessions(SPS)”で説明します。
特権IDアクセスのセッションを制御・監視・記録する
SSHでサーバーやネットワーク機器のターミナル操作を行う場合、SSHクライアントやLinux端末から”Session Shell”というプロトコルチャネルを利用してアクセスします。
SSHのリモートアクセスでファイルコピーを行う場合、SCPやSFTPなどのプロトコルを利用するケースがあります。
SPSは、SCPやSFTPを実行するSSHチャネルタイプ(”Session exec SCP”や“Session SFTP”)ごとに制御することが可能です。
ご参考までに、SPSがサポートしているSSHチャネルタイプは次の通りです。
- Agent:SSH認証エージェントをクライアントからサーバーにフォワードします。
- X11 forward:グラフィカルX-サーバーセッションからクライアントにフォワードします。
- Local forward:クライアントのローカルポートに着信したトラフィックをリモートホストにフォワードします。
- Remote forward:サーバーのリモートポートに着信したトラフィックをクライアントにフォワードします。
- Session Exec:セッションシェルを開かないでリモートコマンド(例、rsync)を実行します。
- Session exec SCP:Secure Copy (SCP)プロトコルを使用してファイルを転送します。
- Session subsystem:サブシステムを使用します。
- Session SFTP:Secure File Transferプロトコル(SFTP)を使用してファイルを転送します。
- Session Shell:従来のリモートターミナルセッションです。
例えば、SPSのポリシーで、リモートターミナルセッションは許可するが、SCPやSFTPは拒否に設定します。
通常のターミナル操作は可能だが、SCPやSFTPを利用したコピー操作はできなくなります。
また、SCPやSFTPは許可するが、ファイルコピー操作を閲覧できるようなポリシーを設定することも可能です。
ドラッグ&ドロップなどでコピー操作を行った場合、ターミナル画面では表示されず、画面やコマンド出力では何を行ったか分かり難いです。
しかし、このファイル閲覧機能を有効にすれば、”いつ”どのファイルに”何を行ったか(ファイルのアップロード/ダウロード)”を確認できます。
SPSのローカルディスク容量を圧迫するため使用環境にもよりますが、コピーしたファイルを保存して確認することもできます。
今回は、SSHでのファイルコピーの制御について紹介しましたが、SPSはきめ細やかなアクセス制御できる点が特長のひとつであり、他にもいろいろな機能を有しています。