مجموعهای از آسیبپذیریهای بحرانی تحت عنوان ShellTorch در ابزار هوش مصنوعی متن باز TorchServe کشف شدهاند که دهها هزار سرور متصل به اینترنت را تحت تاثیر قرار میدهند. برخی از این سرورها متعلق به شرکتهای بزرگ میباشند. TorchServe که توسط Meta و Amazon توسعه داده میشود یک ابزار محبوب برای مقیاسپذیری و ارائه مدلهای چارچوب یادگیری ماشین PyTorch است.
این کتابخانه معمولاً توسط افرادی که در حوزه هوش مصنوعی فعالیت میکنند استفاده میشود و در کنار کاربران آکادمیک، شرکتهای بزرگی مانند Amazon، OpenAI، Tesla، Azure، Google و Intel از آن استفاده میکنند. نقصهای TorchServe توسط تیم تحقیقات امنیتی Oligo کشف شدهاند که میتوانند منجر به دسترسی غیر مجاز به سرور و اجرای کد از راه دور بر روی نمونههای آسیبپذیر شوند.
اولین آسیبپذیری از نوع پیکربندی نامناسب رابط مدیریتی API است که بدون تصدیق هویت قابل بهرهبرداری است و باعث میشود پنل تحت وب به جای localhost به طور پیشفرض به 0.0.0.0 تنظیم شود که آن را در دسترس درخواستهای از راه دور قرار میدهد. از آنجایی که رابط کاربری نیازی به تصدیق هویت ندارد، این اجازه دسترسی نامحدود به هر کاربری را میدهد و میتواند برای بارگزاری مدلهای آلوده از آدرسهای خارجی مورد استفاده قرار بگیرد.
نقص امنتی دوم که شناسه CVE-2023-43654 را به خود اختصاص داده و دارای شدت بحرانی 9.8 میباشد و یک آسیبپذیری جعل درخواست سمت سرور (SSRF) است که منجر به اجرای کد از راه دور میشود. در حالیکه API مربوط به TorchServe دارای یک لیست از دامنههای مجاز به دریافت فایلهای پیکربندی مدلها از یک URL راه دور است، مشخص شده که به طور پیشفرض تمام دامنهها مورد پذیرش هستند که این باعث به وجود آمدن نقض SSRF میشود و به مهاجمان اجازه خواهد داد مدلهای مخرب خود را بارگزاری کرده و منجر به اجرای کد از راه دور بر روی سرور شوند.
سومین آسیبپذیری با شناسه CVE-2022-1471 دارای شدت بحرانی 9.8 میباشد و از نوع Java deserialization است که منجر به اجرای کد از راه دور میشود. به دلیل وجود deserialization غیر امن در کتابخانه SnakeYAML ، مهاجم میتواند یک مدل با فایل مخرب YAML را بارگزاری کند که منجر به اجرای کد از راه دور شود.
اگر یک مهاجم از این سه آسیبپذیری بهرهبرداری کند، به راحتی میتواند یک سیستم که نسخه آسیبپذیر TorchServe روی آن در حال اجرا است را تحت کنترل خود درآورد.
Oligo اعلام کرده که طی اسکن انجام شده جهت بررسی این آسیبپذیرها، دهها هزار آدرس IP را شناسایی کرده است که در حال حاضر در برابر ShellTorch آسیبپذیر هستند که برخی از این سرورها متعلق به شرکتهای بزرگ و بین المللی هستند.
محصولات تحت تأثیر
سه آسیبپذیری فوق الذکر که تحت عنوان ShellTorch شناخته میشوند نسخههای 0.3.0 تا 0.8.1 TorchServe را تحت تاثیر قرار میدهند.
توصیههای امنیتی
جهت برطرف کردن این آسیبپذیریها، کاربران باید به نسخه 0.8.2 از TorchServe بهروزرسانی نمایند. این بهروزرسانی آسیبپذیری CVE-2023-43654 را برطرف نمیکند ولی یک هشدار در خصوص SSRF به کاربر نمایش میدهد. در مرحله بعدی اطمینان حاصل کنید که کنسول مدیریتی دارای پیکربندی درست باشد. در فایل config.properties مقدار management_address باید به http://127.0.0.1:8081 تنظیم شود. این باعث میشود که TorchServe فقط از localhost در دسترس باشد. و در آخرین مرحله اطمینان حاصل کنید که با بهروزرسانی دامنههای قابل اطمینان در فایل config.properties و قسمت allowed_urls سرور مدلها را از دامنههای مجاز دریافت کند:
allowed_urls=https://s3.amazonaws.com/.*,https://torchserve.pytorch.org/.*
Oligo یک ابزار برای بررسی آسیبپذیری ShellTorch در گیتهاب منتشر کرده که از طریق لینک زیر قابل دسترس میباشد:
https://github.com/OligoCyberSecurity/ShellTorchChecker
منابع خبر:
https://www.bleepingcomputer.com/news/security/shelltorch-flaws-expose-ai-servers-to-code-execution…
https://aws.amazon.com/security/security-bulletins/AWS-2023-009/
https://pypistats.org/packages/torchserve
https://www.oligo.security/blog/shelltorch-torchserve-ssrf-vulnerability-cve-2023-43654
- 83