ルートとしてネットワークに一種のTCP接続を確立すると、通常のユーザーと同じTCP接続を確立するよりも安全性が低くなりますか?
私はrootで接続を確立することで、相手のハッカーがrootで自分のシステムにアクセスできることをしばらく疑ってきました。
ただし、通常のユーザーとして接続すると、そのユーザーとしてログインでき、root権限がないため、セキュリティ上のリスクが軽減されます。
私は正しいですか?
答え1
TCP 接続を root または一般ユーザーとして作成するかどうかは重要ではありません。ソケット生成はコア事業、TCP接続は伝送レベルオープンシステム相互接続モデル
ただし、使用するソフトウェア(アプリケーションレベル)には、ハッカーが悪用する可能性があるソフトウェアの脆弱性が含まれる可能性があります。したがって、デフォルトの推奨事項は、root権限でアプリケーションを実行しないことです。
答え2
ルートまたはルートではない場合、これはコンピュータに固有の問題です。ピアが接続の反対側で受信する内容は変更されません。
接続に使用するソフトウェアに、リモートサーバーがアプリケーションをハイジャックする可能性がある重大な脆弱性がある場合は、接続を開きます。根攻撃者が得ることを意味する根お使いのコンピュータで処理します。一方、root以外のユーザーとして接続を開くと、攻撃者はroot以外のプロセスへのアクセス権を取得します。実際には重要ではありません。攻撃者があなたのUID(コンピュータ上のすべてのタスクを実行するために使用する)で任意のコードを実行できる場合、とにかくあなたは破壊されます。
「ルートとして実行しない」という一般的な表現は部分的にはダメージ防止機能ですが、ほとんどは一般的なUnixシステムで数十人の同時ユーザーが使用していた時代の古い知識です。ホストモデル。機械が今私たちがしていることにモデルを適用することは限られています。実はシングルユーザーシステム伝統のためにのみ(そして伝統はUnixの世界で重要です)、rootではなくユーザーとしてプロセスを実行する必要があります。
効果的な分離層が本当に必要な場合は、次の環境でネットワークプロセスを実行します。砂箱:chroot
環境、おそらく仮想マシン(これは櫛する)。