スーパーユーザーのアクティビティを追跡する方法


21

Linux環境でのスーパーユーザーのアクティビティを追跡するための最良のアプローチは何ですか。

具体的には、次の機能を探しています。

  • A)キーストロークをセキュリティで保護されたsyslogサーバーに記録する
  • B)シェルセッションを再生する機能(scriptreplayのようなもの)
  • C)理想的には、これはサーバーに物理的にアクセスすることなく回避することが不可能な(または非常に難しい)ものでなければなりません。

これをセキュリティ/監査の観点から考えてください。異なるシステム管理者(またはサードパーティ)がサーバーで特権操作を実行できるようにする必要がある環境で。

すべての管理者は自分の名目上のアカウントを持ち、必要に応じて再生できるように、すべての対話型セッションを完全にログに記録する必要があります(たとえば、重要なファイルを削除または変更するためにmcを使用した場合、それだけでは不十分です)その人がmcコマンドを発行したことを知ってください; mcの起動後に何が行われたかを正確に確認する方法が必要です。

追加のメモ

  1. wombleが指摘しているように、サーバーで変更を実行するためにroot権限でログインするのではなく、構成管理システムを使用して変更するのが最善のオプションかもしれません。そのため、このようなシステムがなく、同じサーバー上の異なるユーザーにルートレベルのアクセスを許可する必要がある状況を想定しましょう
  2. 私はこれを秘密裏に行うことにまったく興味がありません:ルート権限でサーバーにログインするすべての人は、セッションが記録されることを完全に認識します(たとえば、コールセンターのオペレーターが会話が記録中)
  3. 誰も一般的なスーパーユーザーアカウント(「ルート」)を使用しない
  4. 私はttyrpldを知っており、私が探していることをやっているようです。しかし、その前に、変更されていないカーネルを使用することでこれを解決できるかどうかを知りたいと思います。シェルまたはカーネルにパッチを当てることなく、スーパーユーザーアカウントの完全な監査を可能にする、特にDebian(または一般にLinux)用のツールがあるかどうかを知りたいです。

2
(椅子とポップコーンをつかむ)これは良いはずです...
エイブリーペイン

+1 ...まったく同じことを考えていました。笑
KPWINC 2009

:また、この関連の質問に注意serverfault.com/questions/46614/...
sleske

まだ構成管理システムを使用する必要があると思います。(puppet / cfengine / chef / systemimager / chef / etc ...)
ケビンレイ2009

ケビン、あなたに同意します。:例えばwombleの答えに私のコメントを参照してくださいserverfault.com/questions/50710/...を。残念ながら、これはこの環境ではオプションではないため、構成管理システムが利用できないシナリオを想定するように頼みました。とにかく、このトピックについてのフィードバックに感謝します。
mfriedman 2009

回答:


8

複数の管理者がいる環境では、可能であればルートを使用しないでください。

すべてにsudoを使用します-sudoは非常に構成可能で簡単にログに記録できます。

すべてまたはすべてのログインまたはsuをrootに記録し、誰かが確立されたルールを迂回しているときにそれらを調査します。


3
エントリである「ルートとしてwomble RAN / binに/ shの」すべての人々 -うん、須藤さんは偉大な伐採を得た本当の役に立ちます。設定管理がなければ、人々は常に管理者タスクを実行するためにrootになり、不正なことをしたい人は有効なタスクを実行するのと同じrootセッションで自分のことをすることができます。完璧なカバー。
ウォンブル

ポリシーは...単純に、これは当然の任意の良いことに、彼らは予約をオフに行きましたら、あなたは彼らが何をしたかを知ることができなくなりますが、それは容疑者のリストを狭めるためのルートとして砲撃阻止するために持っている
dmckee

2
ポリシー: "sudo / bin / sh" = fired / investigated。非常に明確で、非常に簡単なソリューション。
カールKatzke 09

5
プログラムからシェルを取得する方法は非常に多く、人々は正当に実行する必要があります(たとえば、sudo viから)。 'sudo / bin / sh'をブロックするだけではほとんど意味がありません。考えられるすべての方法をブロックした場合、チャレンジを発行するだけで、より曖昧な方法を見つけることができます。いずれの場合でも:a)sudo / bin / shが必要な場合があり、b)技術ではなく管理上の問題です。
cas

クリスは、技術的な問題ではなく、管理の問題を強調しています。
カールKatzke 09

2

1つは、どのタイプのrootユーザーアクセスを監視したいですか?愚かな管理者の間違いや悪意のあるインサイダー?前者-すでに提案されているように、優れた構成管理ソリューションが必要です。後者-彼らが何をしているのかを知っている場合、調査する価値のある出来事を示すのに十分なものをキャッチすることしか望めません。何らかの形で不正な活動が開始されたことを知り、その事実に注意を喚起したいだけです。彼らが賢い場合、彼らはあなたが構築するロギングの大部分を無効にします(サーバーの状態を変更するか、独自のツールを持ち込むことにより)が、できれば出来事の始まりをつかむことができます。

そうは言っても、使用できるツールをいくつかお勧めします。まず、良いsudoポリシーから始めます(これは既に提案されています)。次に、管理者にルートシェルアクセスを許可する必要がある場合は、sudoshellを確認します。第三に、おそらくあなたの最善策は(最も集中的ですが)、Linuxカーネルの監査を調べてください。


+1 sudoshellを提案してくれてありがとう、特にLinuxカーネルの監査システムを実現してくれてありがとう。これは私が達成しようとしていることの素晴らしい補完になるかもしれない。
mfriedman 09

2

できることは、この ライブラリをsudoに使用し、全員に自分のユーザーアカウントを与え、sudo -iをEveryonesプロファイルに入れることです。これにより、インスタントルートアクセスが使用され、使用するすべてのコマンドがログに記録されます。


+1そのライブラリについて知りませんでした。共有していただきありがとうございます!
mfriedman 2009

1

彼らはルートを持っています。あなたが期待できる最善の方法は、少なくとも彼らがあなたの小さな監視ユートピアから抜け出すことを決めた時を見ることですが、それを超えて彼らがしたことは誰の推測でもあります。

私が考えることができる「最良の」オプションは、広範な構成の自動化と管理の使用を義務付け、リビジョン管理システムを使用してマニフェストを管理し、それを通じて更新を展開することです。次に、サーバーへの実際のルートログインを防止します。(緊急の「おお、私は何かを壊した」アクセスは、毎回使用されていない分散または変更されたパスワードまたはSSHキーによって提供され、誰もがそれを確認するために台無しにしたシステム管理者を見ることができます何でも変更します)。

はい、これは不便で迷惑になりますが、あなたがこの程度まで全員の行動を監視したいほど妄想的であれば、あなたはこれが勝つ他の方法で不便で迷惑な環境にいると推測しています大きな問題ではないようです。


私はあなたに同意しなければなりません。最良のオプションは、サーバーで変更を実行するためにroot権限でログインする人々を持たず、代わりに構成管理システムを介してそれを行うことです。あなたのコメントは私の質問を洗練し明確にするのに役立ちます。
mfriedman 09

1

他の人がそこに彼らは無効にすることはできませんように、完全なrootアクセスをユーザーにログオンする方法はかなりませんが、あなたは、debianを実行している場合は/ Ubuntuは見とると述べてきたようにスヌーピーあなたが望むものにかなり接近し、

snoopyは、syslog(authpriv)へのすべての呼び出しを記録するためにlibcが提供するexecve()関数のラッパーとして使用される単なる共有ライブラリです。システム管理者は、システムの軽/重監視、他の管理者のアクションの追跡、システムで行われていることの良好な「感覚」(たとえば、cgiスクリプトを実行しているapache)のようなタスクでスヌーピーが役立つと感じるかもしれません。


答えてくれてありがとう。キーストロークロギングまたはコマンドロギングのみをサポートしていますか?
mfriedman 09

0

すべてにsudoを使用することに関するdisabledleopardのコメントに同意します。それは確かに物事を少し簡単に記録できるようにします。

また、bash履歴ファイルのバックアップも定期的に追加します。一見見過ごされがちですが、時には素晴らしい情報源になることもあります。ゴールドマン・サックスに聞いてください。;-)

http://www.guardian.co.uk/business/2009/jul/12/goldman-sachs-sergey-aleynikov


2
もっと気にかけた場合、プロセスアカウンティングまたは適切に設定した場合、/ var / lib / history / $ user。$ tty-or-IP。$ yymmddhhssに履歴のタイムスタンプ付きコピーを作成する.bash_logoutスクリプトがあります監査ツール...しかし、それは本当にセキュリティのためではありません。だから誰が愚かなことをしたのかを見つけて、a)もう一度やらないように、b)どうやってそれを正しくするかを伝えることができます。ここでは、後輩の手がかりレベルを上げることは、信頼よりもはるかに問題です。
cas

1
ジュニアセールスマンが100万ドルの取引をしたという話を思い出します。彼は上司が彼を解雇することを期待しており、上司は「いや!君を訓練するのに100万ドルかかっただけだ!」と言う。私たちが話すにつれて、後輩の「手がかりレベル」が増すのを感じることができます。;-)
KPWINC 2009

0

それは難しいだろう...

rootは慎重に十分にテストされたスクリプトを実行して、すべてのセキュリティ対策(監視プロセスの強制終了)に違反したり、ログファイルを細断したり、ログファイルをトリミングしたりできます。

ルート権限を与えられた複数の管理者がチームとして働いていると仮定します。また、rootは監視プロセスも強制終了できます。残念ながら、そのログイン/パスワードは公開されます。または、彼らは不要な会社を取得します。

推奨されていませんが、UID 0で複数のルートアカウントを作成することは、ここで適用できます。

/ etc / ssh / sshd_configで行を次のように変更します:PermitRootLogin no

がおすすめ。そのため、ここでは、ユーザーは通常のアカウントを使用してログインし(日時スタンプは(スプーフィングされたIPアドレスである可能性があります)とともにログに記録されます)、次にルートに切り替えます。suコマンドを使用

そして、このようにルートとして直接ログインすることはできません。

ここでルートカントが何をするかを考えなければなりません。

sudoは良いはずです。/ etcディレクトリーの構成ファイルのバックアップは適切なはずです。/ var /ディレクトリログファイルは定期的に電子メールで送信するか、別のNFSに保存する必要があります。

SMSをすべてのルートユーザーのモバイルにグループ化するモバイルゲートウェイ企業のAPIを統合するスクリプトを書くのはどうでしょうか。私はそれがいらいらすることを知っていますが、それでもです。

SSHを破ることはほとんど問題外です。


0

お客様のサイトに次のセットアップがあります。

  • 同様に、AD(個人アカウント)のKerberosで認証するためにオープン
  • Unix管理者の特定のADグループのみに許可
  • sudoersグループ== ADグループ
  • すべてのサーバー上のOSSEC HIDSエージェントと、強化されたサーバー上のマネージャー
  • OSSEC Web UI
  • Splunk -for-OSSECを使用したSplunk 3

サーバー上のすべてのsudoの使用を記録し、ファイルへの変更、パッケージのインストール、疑わしいプロセスなども追跡します。


0

すべての機器にアクセスする複数のターミナルサーバーがあります。つまり、ターミナルサーバーから、または物理的にアクセスできる場合は、何にでもログインできます。

ターミナルサーバーのSshdにはhttp://www.kdvelectronics.eu/ssh-logging/ssh-logging.htmlがパッチされていますが、正常に動作しますが、長い間更新されていません。openssh 4.7で動作するように少し変更しましたが、5.1では失敗しました。パッチを当てたsshdのセグメンテーション違反。修正するのに十分な時間がない限り、ほとんどttyrpldに切り替えました。


0

これまでのところ、これは私が持っているものです:

  • sudosh:AとBをサポートしているようですが(Aについては完全にはわかりません)
  • Sudoscript:Bをサポートしているようです(Sudoscriptにはsudoshellと呼ばれるコンポーネントがあり、それがロマンダが提案したものである場合、ヒントをありがとう)
  • Snoopy Loggerまたはsudo_exetrace:私が探しているものと正確には一致しませんが、良い補完になる可能性があります(これらのリンクについてはtheotherreceiveとblauwblaatjeに感謝します)

カーネルまたは他のシステムコンポーネントにパッチを適用する必要のない他の同様のツールを知っていますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.