GNU/Linux >> Linux の 問題 >  >> Linux

エンタープライズLinuxでのセキュリティ監査の存続

システム管理者は、セキュリティまたはリスク管理の専門家にシステムを監査してもらうことの喜び(?)をすでに経験しているかもしれません。監査人が使用するセキュリティツールは通常、システムをスキャンし、スキャンしたシステムで見つかった脆弱性を強調する監査人向けのレポートを作成し、監査人はシステムを管理するチームに提示します。管理および管理チームが報告された脆弱性を解決することが期待されています。ただし、エンタープライズLinuxディストリビューションの場合、監査人が推奨する修復は、組織が適用するのに最適な選択ではない可能性があります。

情報を取得する

例から始めて、これらの監査ツールの多くは、ターゲットシステムをポートスキャンし、開いているポートに接続して、マシンによって提供されているサービスに関するデータを収集することから始まります。これは、nmapによって生成された自分のシステムからのポートスキャンの例です。 コマンド:

[root@somebox ~]# nmap 10.200.157.174

Starting Nmap 6.40 ( http://nmap.org ) at 2020-01-29 13:40 CET
Nmap scan report for 10.200.157.174
Host is up (0.000010s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
111/tcp open rpcbind

Nmap done: 1 IP address (1 host up) scanned in 0.41 seconds

この出力から、ポート22、80、および111がこのシステムに接続するサービスに使用できることがわかります。次に、セキュリティ監査ツールがこれらの各ポートに接続して、ポートで実行されているものを特定するか、プロファイリングユーティリティを使用してこのデータを収集および分析する可能性があります。 telnetを使用します このマシンのポート80に接続して、そこで実行されているものを判別するコマンド:

[root@somebox ~]# telnet 10.200.157.174 80
Trying 10.200.157.174...
Connected to 10.200.157.174.
Escape character is '^]'.
help
HTTP/1.1 400 Bad Request
Date: Wed, 29 Jan 2020 12:46:39 GMT
Server: Apache/2.4.6 (Red Hat Enterprise Linux)
Content-Length: 226
Connection: close
Content-Type: text/html; charset=iso-8859-1

<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
<html><head>
<title>400 Bad Request</title>
</head><body>
<h1>Bad Request</h1>
<p>Your browser sent a request that this server could not understand.<br />
</p>
</body></html>
Connection closed by foreign host.

接続が確立された後、私はサービスを要求しなければなりませんでした。この場合、「ヘルプ」という単語を入力しました。これは、サービスによってはコマンドになる場合があります。ただし、このシステムのポート80で実行されているサービスの場合、ヘルプは理解できるコマンドではありません。その結果、エラーが発生します。ヘッダーには、システムとサービスに関するかなりの情報が表示されます。具体的には、このポートのサービスはApacheバージョン2.4.6です。

案の定、yum listを見てこの情報を確認すれば 、Apacheバージョン2.4.6は、マシンにインストールされて実行されているバージョンです:

[root@somebox ~]# yum list httpd
… output truncated…
Installed Packages
httpd.x86_64 2.4.6-89.el7_6.1      @rhel-x86_64-workstation-7.6
監査報告書の処理

これは物事が面白くなり始めるところです。私の経験では、監査レポートが机の上に置かれ、次のように表示されます。

新しいバージョンのApacheでクローズされたいくつかの脆弱性がある古いバージョンのApache(2.4.6)が検出されました。

推奨事項:最新バージョンのApache2.4.41をインストールしてください。

この時点で、エンタープライズLinuxデプロイメントとして、停止する必要があります。監査報告書は、システムスキャン情報によると、このシステムには未解決の脆弱性がある可能性があることを強調していることを理解してください。監査報告書は、apache.orgから最新のApacheバージョンをインストールすることでその問題が解決するというものです。ただし、エンタープライズLinuxシステムとして、これらの潜在的な脆弱性は、現在システムにデプロイされているバージョンのApacheではすでに解決されている可能性があります。

システムのバージョンは2.4.6-89.el7_6.1であることに注意してください。ここで、2.4.6は実際のバージョン番号であり、追加のバージョン番号 このパッケージの場合は89.el7_6.1です。エンタープライズLinuxディストリビューションは、多くの場合、新しいリリースの問題を修正し、それらの修正を古いコードベースにバックポートしてから、この古いソフトウェアパッケージの更新バージョンをコンパイルします。私のサンプルシステムのオペレーティングシステムであるRedHatEnterprise Linuxの場合、Apacheパッケージを管理するエンジニアは、rpmパッケージのこの追加のバージョン番号を通じてこれらの適用された変更を追跡します。

一部の監査人はすでにこれを知っており、一部のツールもこのタイプのソフトウェア管理を説明しています。ただし、あまり洗練されていないスキャンツールを使用している人と一緒に作業する場合もあります。それだけでなく、この人は、このシステム上の古いバージョンのApacheが正しいことを認識していない可能性もあります。 このマシンにインストールされているバージョンであり、セキュリティまたはリスク管理の担当者が懸念するセキュリティの脆弱性はすでに解決されています。また、システム管理者は、監査人の推奨に反して、組織がこのパッケージの最新バージョンをインストールしない理由を説明することになります。

私の経験では、この点を説明する最良の方法の1つは、エンタープライズLinuxバージョンのこのソフトウェアパッケージに含まれている追加データを確認することです。多くのエンタープライズLinuxディストリビューションは、RPM変更ログなどの機能を使用してこのデータを強調表示します。これが私のサンプルシステムからの情報です:

[root@somebox ~]# rpm -q httpd --changelog
* Tue Jun 25 2019 Lubos Uhliarik <> - 2.4.6-89.1
- Resolves: #1719722 - CVE-2018-1312 httpd: Weak Digest auth
nonce generation in mod_auth_digest

… output truncated …

上記のリンク先のCVE通知によると、この脆弱性は2.4.29以降までApacheで修正されていません。ただし、このパッケージの変更ログの出力で、CVE-2018-1312の修正がバックポートされ、Apache2.4.6に基づく現在インストールされているコードベースに適用されていることがわかります。この事実は、私のサンプルシステムが脆弱ではないことを意味します Apacheソフトウェアの古いバージョンであるにもかかわらず、このエクスプロイトに対して。

なぜこれがすべて重要なのですか?おそらく、エンタープライズLinuxディストリビューションを使用している場合は、変更、潜在的な競合、およびその他のソフトウェアの不一致の問題を最小限に抑えたいために使用しています。監査の推奨事項に示されているように、Apacheをアップグレードすることは、変更を最小限に抑えるという目標に反します。商用サポートされているお客様の場合、ディストリビューションに同梱されていないバージョンに移行すると、ベンダーはこのマシンでのApache関連の問題をサポートしなくなる可能性があります。

まとめ

上記の例のように監査レポートを存続させるには、監査人と協力して、エンタープライズLinuxパッケージがどのように維持されているかを理解していることを確認する必要があります(ポートに表示されるバージョンがシステムにインストールされているバージョンと異なる場合があります) 、およびエンタープライズLinuxパッケージャーは通常、監査人、コンピューターセキュリティの専門家、またはリスク管理担当者が発見する可能性のある脆弱性を考慮して、これらのパッケージの古いバージョンを維持します。変更ログ情報などのデータを使用すると、バックポートとエンタープライズLinuxパッケージ管理のこの概念を示すのに役立ちます。

Red Hat Enterprise Linuxを試してみませんか?今すぐ無料でダウンロードしてください。


Linux
  1. procps-ngを使用してターミナルでLinuxシステムを監視します

  2. straceを使用したLinuxでのシステムコールの理解

  3. Linuxのセキュリティ:fail2banでシステムを保護する

  1. LynisでLinuxセキュリティをスキャンする

  2. Linuxのセキュリティとユーザビリティのバランス

  3. Linuxでカーネルバージョンを確認する方法

  1. Linuxシャットダウンコマンド(例付き)

  2. LinuxでのCronを使用したシステムタスクのスケジューリング

  3. Tripwireを使用したLinuxでのセキュリティ監視