sudoパスワードはどのくらい重要ですか?


25

sudoパスワードは、物理的にアクセスできる人によってローカルでハッキングされることからコンピューターを保護することを知っています(編集:実際にはそうではありません)。私のパスワードはその目的には十分に強力ですが、誰かがリモートでブルートフォースできる場合、それは十分に強力ではないことを知っています。

標準のUbuntuデスクトップインストールで、コンピューターに物理的にアクセスせずに、sudoパスワードを使用して、誰でもルートモードでコンピューターにアクセスできますか?

  1. ネットワークにアクセスできる場合、間違いなくはい(短い答え)
  2. セキュリティに十分な注意を払っていない場合は、はい(長い答え)
  3. 「ssh」を実行していて、2FAがない場合、はいコメントと回答)
  4. sudo /ユーザーパスワードなしでルートとしてコンピューターにアクセスできます

私を含む文字通り「誰でも」、または、例えば私が信頼する他の誰かのPAPAメンテナー。
mxdsp

1
SSHおよびsudoを介してrootにアクセスできます。
Aizuddin Zali

1
まさに。これを強化するには、2FAを使用できます。このフォローガイド
Aizuddin Zali

1
その後、SSH攻撃から救われます。人々が使用する多くのハッキング技術があります。
Aizuddin Zali

1
「sudoパスワード」のようなものはありません。
ホッブズ

回答:


34

sudoパスワードは、物理的にアクセスできる人によってローカルでハッキングされることからコンピューターを保護することを知っています。

私はあなたをあまり怖がらせたくありませんが、誰かが物理的なアクセスを持っているなら、あなたのパスワードの強さに関係なくあなたにアクセスを渡しました。rootパスワードを変更できるようになるには、誰かが1回再起動する必要があります(現在のパスワードを入力しなくても「grub rescue」から実行できます)。ちなみに、この方法は有効であり、機能であり、セキュリティリスクが受け入れられていると見なされます(そうでなければ、パスワードが侵害された場合にシステムを修正することはできません)。

しかし、誰かがそれをリモートでブルートフォースできる場合、それは十分に強力ではないことを知っています。

ここに何か別のことがあります。ROUTERは、短期間に同じ情報を繰り返し要求する繰り返し要求である場合、外部からのアクセスをロックするのに十分なほどスマートでなければなりません。基本的にここにあるのはDOS攻撃です(2台以上のコンピューターが攻撃している場合はDDOS)。ルーターは、その接続を切断し、その接続からの新しい要求を受け入れる前に待機期間を強制する必要があります。

標準のUbuntuデスクトップインストールで、コンピューターに物理的にアクセスせずに、sudoパスワードを使用して、誰でもルートモードでコンピューターにアクセスできますか?

最初に接続する必要があり、次にsudoパスワードを提供します。「ルート」モードは無効になっており、「#」プロンプトに直接ログインすることはできません。

サービスを悪用する可能性があることに注意してください。そのマシンで「ssh」を実行していて、システムに「ssh」でき、そのユーザーのユーザー名とパスワードを取得できる場合(そして管理ユーザーであるため、sudoパスワードも)、マシンにアクセスできます。それを台無しにします。ちなみに、彼らがそうするのであれば、彼らは最初にあなたのシステムの知識を持っている必要があります(あなたのパスワードのような)。

しかし、その後、それ(および他の方法)に問題があります:彼らはどのようにあなたのパスワードを取得しましたか?システム自体から取得することはできません。そして一般的に推測するのは面倒なことではありません。それが社会的に設計されていた場合...あなたの問題はそこにあり、お使いのシステムのセキュリティモデル、UbuntuまたはLinux一般ではありません。

sudoパスワードが自分のものである限り、問題ありません。また、強力なパスワードであれば覚えやすくなります(覚えやすいかもしれませんが、他人には推測できないかもしれません)。これについて議論する際に私が以前に使用した例:あなたの犬の名前が「Abwegwfkwefkwe」で、パスワードとして「Abwegwfkwefkwe」を使用している場合は、見栄えは悪いのですが(誰かが「あなたの犬の名前は何ですか?」無料の推測)。「Abwegwfkwefkwe」と関係がない場合は、適切なパスワードです。

私ができる最善のアドバイス:

  • 管理者パスワードが求められることがわかっている場合を除き、求められたときに管理者パスワードを入力しないでください。ブラウザを開いて、「管理者アカウントのパスワードを求めている」ようなポップアップが表示された場合は...停止し、最初に考えてください。

  • 「sudo」猶予期間がアクティブなときにシステムを放置しないでください。sudo --reset-timestamp現在の猶予期間を削除し、次に「sudo」を使用するときにパスワードを再度要求します。AFKに行くときに画面をロックします。

  • 楽しみのためにサービスやソフトウェアをインストールしないでください。sshインストールする必要がないssh場合、Webサーバーを使用しない場合は、Webサーバーをインストールしないでください。現在実行中のサービスをご覧ください。ノートブックでBTを使用しない場合は、無効にします。Webカメラを使用しない場合は、無効にします(アクティブな場合)。使用しないソフトウェアを削除します。

  • そして、本当に妄想的な人(そして、はい、私はあなたを見ているパラノイドパンダ)のために:パスワードを時々変更します。ルートキットハンターをインストールして、不適切なアクセスをチェックすることもできます。

  • 重要なデータをオフラインで保管するものにバックアップします。そのため、システム上で誰かを見つけたとしても、それをフォーマットし、新しいインストールとデータの復元からやり直すことができます。


2
sudo --reset-timestampsudo -k、またはsudo -K本当に偏執病に短縮できます(攻撃者がシステム時間を任意の値に設定できる場合にのみ必要です。この時点で、おそらく既に失っているでしょう)。
ケビン

うん。私は長いバージョンを使用したので、それが何をするかは明らかです。「-k」は確かに同じことをします。
リンツウィンド

1
@mxdsp:パスフレーズが十分に強力な場合、暗号化により暗号化されたパーティションの内容が読み取れないようにすることができますが、実行中または最近シャットダウンしたコンピューターから暗号化キー取得できる可能性があります。暗号も非常に急速に変化する分野であり、暗号化が古くなって簡単に破られないように、新しい開発に遅れずについていく必要があります。
ケビン

1
@mxdspはい。1つは、ディスクをフォーマットすることができ、データがなくなったとき...あなたが問題を抱えている人です。
リンツウィンド

1
最初の部分では、完全なディスク暗号化は暗黙的に想定されていません。
otus

6

はい、できます。

ただし、これを行う方法は複数あり、sudoパスワードを総当たり攻撃するのはおそらく最初の方法ではありません。

まず、sudoパスワードはユーザーのパスワードです。本当に彼らが取得する必要があるのはあなたのパスワードです。

第二に、システムにアクセスするためにブルートフォースを使用してユーザーのパスワードを解読することがおそらく最後の手段です。

別のシステムに侵入する方法は、より洗練された(ただし、より効果的な)方法があります。

通常、攻撃者は、最も一般的な脆弱性(おそらく何らかの方法でユーザーシェルを取得し、ShellShockを悪用してルートシェルを取得すること)を悪用しようとするか、次の行に沿って最高の仕事を行います。

  • 次のような情報を取得するために、システムの開いているポートをスキャンします。
    • オペレーティングシステムのバージョン
    • 実行中のサービスバージョン
  • 少なくともユーザーシェルを取得してからルートシェルを取得しようとするために、既知のオペレーティングシステムまたは実行中のサービスのバグ(バッファオーバーフローなど)を悪用する(再び、ShellShockを悪用する可能性があります)

ブルート強制sudo/ユーザのパスワードは、rootのシェルがそうでなければ得られないことはなく、例えば、rootとして実行されているサービスを利用すると、ブルートフォース攻撃者に必要としません場合の試みかもしれsudo/ユーザーのパスワードを。


1
ありがとうございました。簡単に言うと、攻撃者がrootアクセスを取得するためにsudoパスワードを必要としないということです。
mxdsp

2
@mxdspまさに。攻撃者が何らかの方法でsudoerユーザーシェルを取得した場合(たとえば、sudoerユーザーの実行中のプログラムをエクスプロイトする場合)、既知のエクスプロイト(私の答えでは最も悪名高い)を使用してルートシェルを取得し、ユーザーのsudoパスワードの必要性。さらに良いことに、彼がルートとして実行されているサービスを悪用した場合、彼は直接ルートになります。
コス

1
@mxdspこれでかなり一般化されましたが、たとえば、権限のないユーザー(=〜攻撃者はログインしているが攻撃者はパスワードを知らないユーザー)がルートを取得する方法を理解するには、このビデオを参照してくださいsudo既知のバグ(この場合は悪名高いShellShock)を悪用するだけでシェル。
コス

1
@mxdsp一方で、私はsudoersユーザーではなく、ユーザーだけを意味しました。それは必要ではありません、私はちょうど同時にあまりにも多くのものを考えていました。
コス

3
  1. ここ数年でセキュリティについて何かを学んだことがあるとしたら、一つのことです。不可能はありません

  2. ネットワークにアクセスできる限り、間違いなく。ネットワーク上でアクセス可能なシステムで実行されている各サービスは、理論的に脆弱であり、潜在的な脆弱性です。

したがって、十分なアイデアを持つ攻撃者にとっては可能です。システムを可能な限り安全にすることができますが、100%の安全性を達成することはできません。

したがって、正当な技術的努力によって何が可能か、そしてあなた自身がもはや働けなくなるほどあなたを保護するものを評価することが重要です。


ネットワークにアクセスできます。その種の攻撃の可能性についてより具体的に説明できますか?
mxdsp

1
二要素認証を使用します。PAM.Dなどを編集する必要があります。
Aizuddin Zali

@Arronicalリンクはこのフォーラムからのものであり、非常に素晴らしいガイドでもあります。
Aizuddin Zali

@Arronical私はそれを質問のコメントに入れました。このガイド
Aizuddin Zali

@AizuddinZaliすみません、ページを更新していませんでした!
アロニカル

2

sudoパスワードは、物理的にアクセスできる人によってローカルでハッキングされることからコンピューターを保護することを知っています(編集:実際にはそうではありません)。私のパスワードはその目的には十分に強力ですが、誰かがリモートでブルートフォースできる場合、それは十分に強力ではないことを知っています。標準のUbuntuデスクトップインストールで、コンピューターに物理的にアクセスせずに、sudoパスワードを使用して、誰でもルートモードでコンピューターにアクセスできますか?

sudoパスワードは、ローカル保護のためだけのものではありません。その目的は、root権限の使用に追加のセキュリティレイヤーを追加することです。良い議論はここで見つけることができます/superuser//a/771523/467316

パスワードは思ったほど強力ではないかもしれません。今、私はクライアントのActive Directoryハッシュの20〜40%を以前に見たものに対してクラックしています。パスワードルールが悪いものは70%クラックされています。16文字の複雑なパスワードをお勧めします。oclHashcatおよびRadeonグラフィックカードは、多くの損害を与える可能性があります。過去5年間のあらゆる違反からのすべてのパスワードダンプを追加すると、作業に適した辞書が得られる傾向があります。

SSHを使用している場合は、sshd_configでいくつかの調整を行います

sudo nano /etc/ssh/sshd_config

ゲートのすぐ外にあるMUSTS(使用していない場合にFTPサーバーを無効にする最後の1つ)。

Protocol 2
X11Forwarding no
PermitEmptyPasswords no
MaxAuthTries 5
#Subsystem sftp /usr/lib/openssh/sftp-server

保存して、sshを再起動します

sudo service ssh restart

公開鍵暗号化を使用するまず、リモートマシンで自分で鍵を作成することから始めます(puttygenまたはOSで使用可能なフレーバーを使用します)。authorized_keysファイルとしてログインするユーザーの下で、Ubuntuマシンに公開鍵をコピーします(おそらく作成する必要があります)

sudo nano /home/yourdumbusername/.ssh/authorized_keys

この形式で公開鍵をコピーします

ssh-rsa 23r0jfjlawjf342rffjfa89pwfj8ewfew98pfrfj8428pfwa9fupfwfcajwfpawf8rfapfj9pf892jpfjpwafj8a where-ever-you-have-your-private-key-for-your-own-notes

保存して、sshd_configをセットアップして公開鍵ログインを許可します

sudo nano /etc/ssh/sshd_config

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile      %h/.ssh/authorized_keys

sshを保存して再起動します

sudo service ssh restart

公開キー暗号化を使用して、秘密キーのコンピューターからUbuntuホストへのSSHを試してください。すべてうまくいけば、ubuntuホストに戻ってパスワード認証を無効にします。

sudo nano /etc/ssh/sshd_config

PasswordAuthentication no

sshを保存して再起動する

sudo service ssh restart

秘密キーのコンピューターから再度スッシグして確認します。

さらに追加したいですか?非特権アカウントをセットアップし、PermitRootLogin noをオンにし、sshを再起動し、新しいアカウントのauthorized_keysに公開鍵を追加し、非特権アカウントとしてログインし、ルートまたは特権を必要とするときにルートまたは特権アカウントにsuします。


2

sudoの目的はパスワードに関連するものではなく、代わりに特定のユーザーにルートのような機能を提供する一方で、他のユーザーをルートログイン(パスワード/キー/セキュリティトークン/など)を提示することなくマシン上で制限することです。たとえば、私の職場では、日々の労働者は、sudoを介して(会社が拒否したリポジトリから)ステーションを開始/シャットダウン/インストールおよびアップグレードすることしかできません。/の意図的な削除、デバイスのフォーマット、ユーザーの追加と削除、どのカーネルモジュールをブラックリストに登録するか、crontab(etcなど)で実行するかを決定するなど、他のルートの自由は与えられません。一方、自宅では、sudoによってマシンへのフルアクセスが許可されます。パスワードに関しては、実際には、sudoが必要とするのはユーザーアカウントのパスワードです(自動ログインが有効になっていない場合、ログインに使用するものとまったく同じです)。

悪いヒント:rootをsudo対応のUnix(linux / apple osx)で通常のアカウントにしたい場合は、次を実行します

sudo -s
passwd
Enter your unix password:

この時点で、rootには通常のパスワードがあり、「旧式の方法」で前述のパスワードを使用してrootとしてログアウトおよびログインすることができます。

セキュリティに関しては、1つのプログラム(Webサーバー、mysql、phpデーモン、sshdなど)が昇格アカウントとして実行され、ルートと呼ばれる既知のエクスプロイトがある場合、攻撃者はアクセスするためにセキュリティ資格情報を必要としない場合があります。プログラムの脆弱性を利用して、rootとして実行されているこのプログラムから新しいシェルを作成するだけです。ただし、ディストリビューションマネージャーは同様の問題を認識しており、よく考えられ、通常は安全なデフォルト環境を構築する際に優れた仕事をするため、これは非常にまれです。

では、他のオペレーティングシステムにsudoと同様の動作を右クリックし、システム管理者(またはしつこいUAC権限)として実行されます。

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