[質問] Nacos の脆弱性の修正 —— Nacos のアップグレードと認証の問題の解決

        ここでは、nacos の脆弱性を処理する際に職場で遭遇した問題の概要と記録を示します。nacos の脆弱性の問題は次のとおりです。

  • 認証局の認証バイパスの脆弱性

  • 影響を受けるバージョン: Nacos <= 2.0.0-ALPHA.1

  • (ユーザーエージェントの不適切な処理による不正アクセスの脆弱性。この脆弱性により、攻撃者は新規ユーザーの作成やログイン後の操作などの任意の操作を実行できる)

nacos の修正計画は次のとおりです。

  1. nacosのバージョンをアップグレードする
  2. nacos 認証を有効にする

QQ 交換グループ ナビゲーション ——> 231378628

最初の一歩:

それは、nacos のバージョンをアップグレードすることです。社内プロジェクト nacos のバージョンは 1.3 程度で、nacos サーバーは直接 2.0.0 以降にアップグレードされます。会社のクラウド上には 2.0.3 nacos イメージがあり、 nacos 2.0.3 イメージは直接アップグレードできます。


ステップ2:

nacos サーバーのバージョンをアップグレードした後、この時点で nacos 認証を有効にする必要があります。有効にする方法はいくつかあります。nacos 構成ファイルを変更することで有効にできます。会社のプロジェクトは docker を通じて有効になるため、 nacosの公式ドキュメント 次のように開きます。

Nacos Docker クイック スタート

a2fdfd6543bd43a0a7450cbb733b8bff.png

  • NACOS_AUTH_ENABLE、デフォルトは false、true に設定
  • NACOS_AUTH_CACHE_ENABLE、デフォルトは false、true に設定

ここで問題に注目してください。

NACOS_AUTH_IDENTITY_KEY、NACOS_AUTH_IDENTITY_VALUE、これら 2 つの構成にはデフォルト値があり、必ずしも使用する必要はありません。


3番目のステップ:

次に、nacos 脆弱性のアドレスにアクセスします。例:

ip:port/nacos/v1/auth/users?username=test&password=test にアクセスすると、アクセスできなくなっていることがわかります。これは、認証が正常に有効になっていることを意味します。


4番目のステップ:

nacos のバージョンがアップグレードされると、必ず問題が発生します。つまり、クライアントがサービスを nacos に登録できなくなります (クライアントの設定ファイルでアカウントのパスワードが設定されていても、サービスを登録することはできません)。登録センターで)。

私の変更した構成:

c13882f7b2104987979071159cef71e1.png

エラー: 不明なユーザーです!

com.alibaba.nacos.api.exception.NacosException: <html><body><h1>Whitelabel Error Page</h1><p>This application has no explicit mapping for /error, so you are seeing this as a fallback.</p><div id='created'>Sat May 14 06:51:53 CST 2022</div><div>There was an unexpected error (type=Forbidden, status=403).</div><div>unknown user!</div></body></html>

理由は、nacos サーバーのバージョンアップ後、nacos サーバーのバージョンと nacos-client の jar パッケージのバージョンが一致せず、nacos 登録センターにサービスを登録できません。

解決:

最初に遭遇した落とし穴について話しましょう: 最初に考えたのは、nacos に対応する springboot、springcloudlibab、springcloud のすべてのバージョンを対応するバージョンに置き換えることでした。その結果、問題が深刻であることがわかりました。 feign にも問題があります。feign のバージョンが一致しません。最初は feign の問題が見つかりませんでした。feign のすべての呼び出しに @lazy 遅延読み込みを追加しました。 、サービスは正常に登録されましたが、通話にはまだ問題があることがわかりました。

Requested bean is currently in creation: Is there an unresolvab circular reference?

複雑な気がしますが、それでも公式サイトを見てみると、nacos-clientのバージョンを変更しただけで、他のspringboot、springcloudlibab、springcloudのバージョンはすべて元の状態に戻りました。

 

注: オンライン情報によると、バージョン 1.x のnacos -client はバージョン 2.x の nacos-server にアクセスできますが、バージョン 2.x の nacos-client はバージョン 2.x の nacos-server にアクセスできません。しかし。

元のサーバーは 1.x で、クライアントも 1.x なので、正常であるはずです。現時点では、サーバーは 2.x にアップグレードされています。インターネットによると、1.3.3 は登録できるはずです。この時点では通常通りの結果が得られましたが、結果は満足のいくものではなく、エラーが報告されました。

com.alibaba.nacos.api.Exception.NacosException: <html><body><h1>ホワイトラベル エラー ページ</h1><p>このアプリケーションには /error の明示的なマッピングがないため、これがフォールバックとして表示されます。 </p><div id='created'>Sat May 14 06:51:53 CST 2022</div><div>予期しないエラーが発生しました (type=Forbidden、status=403)。</div><div >不明なユーザーです!</div></body></html>

3ad2b8049301461d8fd5264d97e7932b.png

最終的に、nacos-client バージョンも、対応する nacos-server バージョン 2.* にアップグレードされます。 

b2249efafa3d453b8ac02bd0d3d06fe2.png

これは公式に推奨されています。 

 

おすすめ

転載: blog.csdn.net/weixin_56995925/article/details/126193084