SCPを介してサーバーに接続し、リモートサーバーから自宅のコンピューターにいくつかのファイルをコピーするとします。サーバー管理者は、私が何かをコピーしたこと、コピーされたものを確認したこと、または誰がコピーしたかを知ることができますか?
ServerFaultの質問 はこれとほとんど同じです。うまくいけば、質問を投稿する前に確認しましたが、あなたの質問は少し異なるので、ここで回答します。
簡単に言えば、誰でもエンドポイント(scp
ingの元またはscp
ingの元のシステム)へのアクセス権とアクセス許可を持っている場合、何が起きるかを確認できます。どちらのエンドポイントにもアクセスできない場合、おそらくプロトコル番号によってアプリケーションを知る可能性があることを除いて、実行していることにアクセスできないか、解読することができません。
答えは、最終的にはインフラストラクチャに大きく依存します。ただし、厳重な監視が行われておらず、SCPが社内で脅威と見なされていない限り(レッドフラグがスローされます)、トラフィックは気づかれずに通過します。これは特に中小企業に当てはまります。
@SimonRichterとして 言及 :システム上でコマンドを実行できる場合(つまり、管理者など)、プロセスリストを確認してコマンドラインscp -args /filepath/
を確認できます。ただし、これには、すべてのプロセスアクティビティを記録するか、転送時にチェックする必要があります。さらに、職場で自分のシステムから別のシステム(たとえば、自宅や他の場所)にそれを行っている場合、それらは必ずしもその可視性を備えているとは限りません。
さらに、@ alex.forencichが言及したように:コピープログラム(scp、sftpなど)が何もログに記録したりリークしたりしなくても(コマンドライン引数)、どのファイルが読み取られたか、または書き込まれたかを把握することは可能です。 Linux監査システムを参照してください。 –
管理者だけではありません。
テストのために、/bin
サーバーからラップトップの一時ディレクトリに。サーバー上のps
は
$ ps 24096
PID TTY STAT TIME COMMAND
24096 ? Ss 0:00 scp -r -f /bin
通常、この情報にはすべてのユーザーがアクセスできます。
scp
は、サーバーで実行されているコード(sshd
、およびscp
自体)を使用して機能します。そのサーバーコードは理論的には完全にサーバー管理者の制御下にあり、サーバー上で実行されているscp
のバージョンは、接続を介してファイルを書き込み、マシンで実行されているscp
のバージョンとは異なり、リクエストを発行します。
サーバーの管理者は、ほんの一例として、Webサーバーがログを書き込むことができるように、サーバーのscp
をすべての要求をログに記録するバージョンに置き換えることができます。次に、それらのログから、コピーした内容を正確に確認できます。
彼らが実際にこれを行うための専門知識と動機を持っているかどうかは明確ではありませんが、彼らが望むなら、原則としてそれらを止めることは何もありません。
これらの質問はあなたの質問の仲間だと思います: https://security.stackexchange.com/questions/14782/is-there-an-easy-way-to-see-a-log-of-scp-activity -on-a-server-ala-var-log-sec 、 https://askubuntu.com/questions/659896/where-would-you-find-scp-logs
詳細はすべてわかりませんが、そのままではscp
とsshd
はありませんには、自分のログを記録するオプションがないようですについて尋ねます。したがって、おそらく単純な構成よりも多くが必要ですが、管理者がサーバーを制御するという事実から逃れることはできません。
暗号化されずにコンピュータのメモリを通過するものはすべて、そのマシンの十分に特権のあるユーザーが読み取りまたは変更できます。
実行中のプロセスの名前と、それらを開始するために使用されるコマンドラインは、Linuxにログオンしているすべてのユーザーがアクセスできます。 (これは、好奇心旺盛なWindowsには当てはまりません。)したがって、管理者や他の人がたまたまコピーしたファイルを見ることができます。さらに、管理者が何らかのファイルアクセスログを設定したり、一方のscp
プログラムを置き換え/ジグリングして追加のログを作成したりすることは完全に可能です。
scp
は、ネットワークスニファからユーザーを保護するだけです。明らかに、両端は復号化されたデータを知っている必要があるため、どちらかのエンドポイントの高度な管理者がscp
のメモリからデータを吸い出す機会があります。コマンドラインを使用しないソリューションでも、他のソリューションはその可能性があります。sftp
の両端は何が起こっているかを知っているため、メモリ検査を介してsftp
が何を考えているかを判断できます。 /転送。
経験則として、rootアクセス権を持つユーザーはすべてを知ることができます(わざわざ確認する必要がある場合)。おそらく、立ち入り禁止の唯一のものは、証明書で暗号化されたファイルシステムです。
during動作中、scp
はリモート側でプロセスを開きます。これはanyoneps
を呼び出すだけです。プロセスリストに表示されているコマンドラインを非表示にした場合、lsof
(開いているファイルのリスト)は、どのファイルが操作されているかを示すことができます。それはとても簡単です、私が実際にそれを行っているのは、私が開始したコピープロセスがどこまでかを観察するためです。現時点で表示できない(ファイルリストが出力されている)端末でプロセスを開始した場合。
後動作後、find
を使用したクイックスキャンで最新のファイルを見つけることができます(コピー中にタイムスタンプが保持されなかった場合)。ファイルがssh
セッションを通じて何らかの方法でアクセスまたは変更された場合、.bash_history
は、何をしていたかを示します(ただし、必要に応じて削除できます)。
セキュリティが非常に厳しい場合は、いつでも追加の監視を設定できます。単純なデーモンですべてのファイルの変更をリッスンし、ローカルとリモートのファイルシステムトランザクションに関するすべてをログに記録できます。 ユーザーが作成したすべてのプロセスをログに記録する に驚かないでしょう。バックアップが行われている場合、ファイルを削除した後も、ファイルはまだどこかに保存されている可能性があります。
サーバー管理者は、サーバーに出入りするすべてのトラフィックを監視できるため、必要に応じてSCPトラフィックを簡単に監視でき、ファイルをコピーしたこと、どのファイルをコピーしたかを確認できます。