
Microsoft の NLWeb: 概要
2023 年 5 月、Build 2025 カンファレンスで、マイクロソフトは「NLWeb」(Natural Language Web) と呼ばれる革新的なイニシアチブを発表しました。このプロジェクトの目的は、AI エージェントと Web サイト間のインテリジェントな相互作用を促進し、オンライン サービスに直接関与することで複雑なタスクを実行できるようにすることです。
NLWebの意味
関係企業の中で、ShopifyとTripAdvisorはこのコンセプトへの支持を表明し、NLWebをマイクロソフトが「エージェントウェブ」と呼ぶものの主要コンポーネントとして位置付けています。このビジョンは、AIがオンラインでさまざまなタスクを自律的に実行し、ユーザーエクスペリエンスを大幅に合理化する未来を約束しています。
セキュリティ脆弱性の発見
しかし、NLWebフレームワークのセキュリティをめぐっては重大な懸念が浮上しています。セキュリティ研究者のAonan Guan氏は、共同研究者のLei Wang氏とともに、このオープンソースプロジェクトのコードリポジトリ内にパストラバーサルの脆弱性を発見しました。この発見は、NLWebのGitHubリポジトリ、特に というファイルの調査から生まれました。 webserver/static_file_handler.py
脆弱性の技術的分析
特定された欠陥は、コードの特定のセグメント内に存在します。
# The vulnerable code snippet safe_path = os.path.normpath(path.lstrip('/'))
可能なルート = [ APP_ROOT, os.path.join(APP_ROOT, ‘site’, ‘wwwroot’), ‘/home/site/wwwroot’, os.environ.get(‘HOME’, ”), ]
# コードの後半…full_path = os.path.join(root, safe_path)
このスニペットの最初の行は無害に見えますが、不要な区切り文字と上位レベルの参照を削除してパスを正規化するように設計されています。このプロセスはPython の公式ドキュメントに記載されています。 os.path.normpath()
脆弱性の影響
この機能は有益である一方で、セキュリティ上の抜け穴を生み出します。Guan氏によると、この機能は、ユーザーがシーケンスなどのディレクトリトラバーサル技術を利用して、意図したWebディレクトリを超えて移動することを制限できないとのことです。 ../
この問題を検証するために、Guan 氏は にローカルサーバー構成を設定しました。コマンド を実行することで、UNIX システムにとって重要な情報である の内容(ユーザーアカウントの詳細を含む)を取得することに成功しました。 0.0.0.0:8000
curl "http://localhost:8000/static/..%2f..%2f..%2fetc/passwd"
/etc/passwd
さらに、Guanはプロジェクトのファイルを含む他の機密ファイルにもアクセスできました。プロジェクトのファイルはAPIキーなどの機密情報が格納されているため、常に機密性を保つ必要があります。これは、コマンドを実行することでさらに実証されました。 .env
curl "http://localhost:8000/static/..%2f..%2f..%2fUsers//NLWeb/code/.env"
Microsoft の対応と推奨事項
5月28日に報告されたGuan氏の調査結果を受けて、Microsoftは同日中にこの問題を認識し、48時間以内に修正を実施しました。この解決策には、いくつかの重要な対策が含まれていました。
- 潜在的なディレクトリトラバーサルの試みに対抗するために、パス内の のインスタンスを初期フィルタリングします。
..
- 要求されたファイルに、.html、.css、.json などの形式を含む許容可能な拡張子があるかどうかの検証。
- 絶対パスを解決して、許可されたルート ディレクトリ内に存在することを確認し、不正なアクセスを防止します。
このインシデントを受けて、Guan氏はNLWebのインスタンスを直ちに更新することの重要性を強調しています。彼は、エージェントウェブの概念が拡大するにつれて、新たな脆弱性が露呈する可能性があると指摘しています。特に、自然言語処理は、厳重な管理が行われない場合、悪意のあるファイルパスやコマンドを誤って解釈してしまう可能性があります。
この問題に関する詳細情報と完全な脆弱性レポートについては、 Neowinをご覧ください。
コメントを残す