yum install http-これは安全ですか?


10

私は、yumを使用してパッケージをインストールすることにあまり詳しくありません。前世ではaptを使っていました。

現在、実行するためのいくつかの指示を見ています

# yum install http://example.com/package.rpm

これは明らかに特定のリポジトリにサブスクライブし、そこからさらにパッケージをダウンロードできます。これは安全ですか?

比較のために、aptパッケージにはgpg署名があることを知っています。つまり、http経由のダウンロードは問題ではありません。ここで説明されています。また、aptを使用してメインリポジトリの外にパッケージをダウンロードする場合、aptが受け入れるgpgキーを手動で追加して、非標準のパッケージに同じ信頼できるソースが含まれるようにすることができます。

上記のコマンドを実行した場合、yumはインストールを開始する前にgpgキーを受け入れるように求めますか、それとも何かをインストールするだけですか?

それが関連している場合、私の/etc/yum.confファイルはセクションgpgcheck=1内に含まれてい[main]ます。

回答:


11

あなたの質問で説明するビットがあります。

まず、方法を理解しYUMrpm一緒に作業することが重要です。

  1. RPMはパッケージ形式であり、同様の名前のコマンドラインツールがrpmあり、個々のRPMパッケージをインストールします。rpmコマンドラインツールはコマンドラインツールに類似していると考えることができますdpkg。どちらも、依存関係なしに個別のパッケージをインストールするためです。
  2. yumRPMパッケージとその依存関係をインストールする上位レベルのプログラムです。yumコマンドは、apt-get両方がパッケージとそのすべての依存関係をインストールできるのと同じように考えることができます。
  3. 実行yum installするときは、URLではなくパッケージ名を使用する必要があります。たとえばyum install package、次のように実行しますapt-get install package
  4. パッケージURL rpm -i https://urlがあればを実行できますが、パッケージの依存関係がインストールされていない場合は、パッケージを1つずつrpm -i(痛みを伴う)またはyum構成済みのリポジトリとともにインストールする必要があります。

ここで、GPGに関する限り、DebianとRPMのパッケージシステムの両方に当てはまるいくつかの理解しておくべきことがありますが、最も重要なことは次のとおりです。

  1. どちらのシステムにも、パッケージ自体のGPGシグネチャとリポジトリのGPGシグネチャの2セットのGPGシグネチャがあります。
  2. DebianパッケージはGPG署名がチェックされておらず、UbuntuとDebianの両方のプロジェクトリポジトリからの公式パッケージはGPG署名されていません。
  3. どちらのシステムも、クリアテキストHTTPで使用した場合、さまざまなGPGリプレイ攻撃に対して脆弱です。絶対に、可能であればプレーンテキストのHTTP ではなく、HTTPS経由でパッケージを100%インストールする必要があります。

これまでのところ、RPMおよびYUM GPG署名:

  1. 最初に、構成ファイルでGPGキーへのパスまたはURLを次のように指定できます:gpgkey=https://example/gpg.keyまたはgpgkey=/usr/share/example/gpg.key。複数が必要な場合は、複数のGPGキーを指定できます。
  2. 第二に、そこに2つのオプションがあります。gpgcheck=1repo_gpgcheck=1。最初のオプションではyum install、パッケージ自体のGPG署名を検証します。2番目のオプションでは、リポジトリのGPG署名を検証します。理想的には両方を使用する必要がありますが、多くのリポジトリは両方をサポートするように適切に構成されていません。
  3. を初めて実行するとyum installyumにリストされているGPGキーgpgkeyがまだインポートされていない場合に、それらがインポートされます。プロンプトが表示され、受け入れるか拒否するかを尋ねられます。
  4. pygpgmeGPG署名を検証するには、システムにパッケージをインストールする必要があります。RHELとCentOSの最新バージョンでpygpgmeは、の依存関係が自動的にインストールyumされますが、システムにインストールされていることを確認する必要があります。
  5. そこのは同等ではありませんapt-transport-httpsyumボックスのHTTPSを経由話すことができますが、バージョンのことを確認する必要がありますyum使用しているが、持ってsslverify有効にデフォルト設定オプションを。一部のバージョンでyumはサポートされていません。お使いのバージョンがそうでない場合は、有効に設定する必要があります。SSL証明書を検証することが重要です。

パッケージとリポジトリの両方にGPGシグネチャがあっても、リポジトリは依然としてリプレイ攻撃に対して脆弱です。可能であれば、HTTPS経由でリポジトリにアクセスする必要があります。1つの攻撃の簡単な説明は、悪意のある攻撃者がリポジトリメタデータと関連するGPG署名を特定の時間にスナップショットし、そのメタデータと署名を要求元のクライアントに再生して、クライアントが更新されたパッケージを表示できないようにすることです。メタデータは変更されないため、GPG署名は有効になります。その後、攻撃者は更新されていないソフトウェアの既知のバグに対するエクスプロイトを使用して、マシンを攻撃できます。パッケージマネージャーに対する攻撃の詳細については、このペーパーを参照してください

GPGとYUM / rpm、およびGPGとAPTに関する2つの広範なブログ投稿を執筆しました。

私が回答できる質問がある場合は、コメントを残してください。パッケージ管理を正しく行うのは非常に困難です。


いいね。ここで吸収することがたくさんあります。特定の質問:「実行yum installするときは、URLではなくパッケージ名を使用する必要があります。」-そうですね、これは私がaptで通常行うことです。しかし、URLが与えられたら、どうしますか?おそらくこれは明白ですが、手動でリポジトリhttp://example.comを追加してから実行でき yum install packageますか?
SauceCode 2016年

「両方のシステムは、クリアテキストHTTPを介して使用されると、さまざまなGPGリプレイ攻撃に対して脆弱です。」おもしろいです-ここでさらに読むことを指摘できますか?と同等のyumはありapt-transport-httpsますか?
SauceCode 2016年

@SauceCode私はあなたの質問に答えるように私の回答を更新し、より多くのパッケージマネージャーのセキュリティ情報を含む論文にリンクしました。
Joe Damato、2016年

aptリポジトリのReleaseファイルに有効期限が設定されていることに注意してください。これにより、リプレイ攻撃が有効である期間が制限されます。(私が正しく覚えていれば、これは回答でリンクされた論文の結果として実装されました。)しかし、TLSを使用する方がより良い解決策です!
Stephen Kitt

@StephenKittはい、Valid-Untilリプレイ攻撃を防ぐために追加されました。ただし、リポジトリユーザーに新しいリポジトリのメタデータをダウンロードして手動で検査し、ヘッダーが存在することを確認するよう依頼するのは不合理です。常にTLSを使用するように言うだけの方がはるかに簡単です。
Joe Damato、2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.