私は読んだUnixセキュリティに関するWikipediaの記事そして「サービス」の下の最初の文以前も言った使用していないソフトウェアは削除する必要があります。理由は不明です。助けてもらえますか?
答え1
すべてのソフトウェアに脆弱性が含まれているか、攻撃に役立つ可能性があります。したがって、すべてのソフトウェアは、ユーザビリティとそれに伴うリスク(攻撃面)の間でバランスをとる必要があります。ソフトウェアを使用しない場合は、それは危険です(些細なことですが)。
サービスに関しては他に考慮事項があります。サービスは通常何かを公開します。例えばネットワークポートは、外部からアクセスできる場合はシステムへのエントリー手段にすることができます。さらに、サービスはしばしば特定の権限で実行されるため(rootとして実行されていなくても)、一般ユーザーがアクセスできないファイルにアクセスできるため、多段階攻撃に非常に役立ちます。
もう1つの考慮事項は、使用されていないソフトウェアがメンテナンスされる可能性が低いことです。セキュリティ更新プログラムを受け取る展開パッケージであれば、それを心配する必要はありません。ただし、ローカルにインストールされたソフトウェアは忘れることがあります。これは設定にも当てはまります。ディストリビューションでメンテナンスするパッケージも安全に構成でき、使用しないと無視される可能性が高くなります。
答え2
ソフトウェアとは、services
LAN(ローカルネットワーク)またはWAN(インターネット)からの着信接続を受信するためにローカルシステムのポートを開くソフトウェアを意味します。
そのようなソフトウェアの例には、ユーザーがシステムに接続した後に特定の情報を提供できるWebサーバー、メールサーバー、またはその他のサービスがあります。"services"
通常のユーザー(自分自身)の観点からは、急流クライアントを実行している可能性があります。qbittorrent
これは、インターネット上の他のユーザーがシステムに接続できるようにローカルにポートを開くことができるこの種のソフトウェアの例でもあります。ファイルを共有します。
セキュリティ上のリスクは、これらのソフトウェアに潜在的な攻撃者がソフトウェアの目的を超えてシステムにアクセスするために悪用する可能性がある脆弱性を含む可能性があることです。
nmap
攻撃者が実行する最初のステップは、システムのオープンポート検索などのツールを使用し、同じツールの方法を使用して、使用しているソフトウェアのバージョンとオペレーティングシステムを理解することです。
攻撃者はソフトウェアのソースコードを調べて脆弱性が存在するかどうかを確認し、存在する場合は悪用するコードを書く可能性があります。
もちろん、ポートスキャンはシステムを直接ターゲットにするのではなく、NAT
受信ソフトウェアがアクセスできるようにポートを開く必要があるルーターを対象としています。
これが攻撃の表面を減らし、脆弱性を減らすためにこれらのソフトウェアを更新する必要がある理由です。
このようなソフトウェアが不要な場合(使用されていない場合など)、脆弱性が現れず、潜在的な攻撃者がそれを悪用することができないため、そのソフトウェアを削除することをお勧めします。
ただし、一部のサービス(ソフトウェア)が必要です。この場合、ソフトウェアの更新に加えて、ポートスキャンを検出して防止するようにファイアウォールを設定する必要があります。
システムにこれらのポートオープンソフトウェアがあることを確認するには、次のコマンドを実行します。
sudo ss -tunlp
nftables
以下のリンクは、TCP
ポートスキャンを検出して停止するためのサンプルファイアウォール設定を示す私の答えです。https://unix.stackexchange.com/a/774404/599939
答え3
安全原則を考慮してください。から引用コンピュータセキュリティ:芸術と科学Matt Bishopの作成(Bold Mine):
原則最小権限そのタスクを完了するために必要な権限のみがサブジェクトに付与されることを示します。
プリンシパルにアクセス権が必要ない場合、そのプリンシパルはその権利を持ってはいけません。
この原則によれば、正当なユーザーが許可されたタスクを実行するのに必要でないソフトウェアは、そのユーザーに提供してはなりません。これにはrootユーザーが含まれます。定義によると、これらのソフトウェアはライセンスのない操作を実行するためにのみ使用できるため、存在してはいけません。
原則メカニズム経済セキュリティメカニズムはできるだけ単純でなければならないことを指摘してください。
設計と実装が簡単であれば、エラーが発生する可能性が低くなります。テストするコンポーネントとケースが少ないため、テストとテストプロセスはあまり複雑ではありません。複雑なメカニズムは、しばしば自分が動作するシステムと環境を想定しています。これらの仮定が正しくないと、セキュリティ上の問題が発生する可能性があります。
これらはすべてコンピュータにインストールされているソフトウェアの量に適用されます。ソフトウェアが少ないとは、そのソフトウェアにバグが発生する可能性が少ないこと、またはそのソフトウェアを構成するときにエラーが発生する可能性が低いことを意味します。テストマシンのセキュリティ;機械の安全はより少ない家に頼るべきです。
つまり、使用していないソフトウェアを削除することは、作業量を減らす1つの方法です。攻撃面。未使用のソフトウェアが特権ユーザーのみにアクセスできる場合でも、そのソフトウェアをアンインストールすると役に立ちます。深い防御。
答え4
攻撃面が損傷する可能性があるもう1つの方法は、廃止、一時的に修正、または廃止されたコードリビジョンを自動的に削除するように設計された機能が機能しない場合です。
私の場合、データベースに数字を移植する一時的に修正されたコードバージョンが誤ってロードされ、数日間デフォルトで実行されたため、データベースが破損しました。幸いなことに、これは攻撃につながりませんでしたが、この数字に頼っていた数十人のエンジニアは怒りました。
この場合の回避策は、一時コードリビジョンが元のコードを上書きするのを防ぐことです。