PyTorch: інструментарій машинного навчання, створений з Різдва до Нового року PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

PyTorch: інструментарій для машинного навчання, створений з Різдва до Нового року

PyTorch є одним із найпопулярніших і широко використовуваних інструментів машинного навчання.

(Нас не цікавить місце в таблиці лідерів штучного інтелекту – як і у випадку з багатьма широко використовуваними інструментами з відкритим кодом у конкурентній сфері, відповідь, схоже, залежить від того, кого ви запитуєте та який інструментарій вони використовують самі.)

Спочатку програмне забезпечення було розроблено та випущено як проект із відкритим вихідним кодом компанією Facebook, тепер Meta, а наприкінці 2022 року було передано Linux Foundation, яка тепер керує ним під егідою PyTorch Foundation.

На жаль, проект був скомпрометований за допомогою атаки на ланцюг поставок під час святкового сезону наприкінці 2022 року, між Різдвом [2022-12-25] і напередодні Нового року [2022-12-30].

Зловмисники зловмисно створили пакет Python під назвою torchtriton на PyPI, популярному сховищі індексу пакетів Python.

Ім'я torchtriton був обраний так, щоб він відповідав назві пакета в самій системі PyTorch, що призвело до небезпечної ситуації пояснює команда PyTorch (курсив наш) наступним чином:

[A] шкідливий пакет залежностей (torchtriton). Оскільки індекс PyPI має пріоритет, цей шкідливий пакет встановлювався замість версії з нашого офіційного репозиторію. Цей дизайн дозволяє комусь зареєструвати пакунок із тим самим іменем, що й той, що існує в сторонньому індексі, а також pip встановить свою версію за замовчуванням.

Програма pip, до речі, раніше називався pyinstall, і, очевидно, є рекурсивним жартом, який є скороченням pip installs packages. Незважаючи на оригінальну назву, він не призначений для встановлення самого Python – це стандартний спосіб для користувачів Python керування програмними бібліотеками та програмами, написаними на Python, наприклад PyTorch та багатьма іншими популярними інструментами.

Підданий трюку ланцюга постачання

Будь-хто, кому не пощастило інсталювати завантажену версію PyTorch під час небезпечного періоду, майже напевно мав на своєму комп’ютері зловмисне програмне забезпечення для крадіжки даних.

Згідно з власним PyTorch коротким, але корисним аналіз шкідливих програм, зловмисники викрали деякі, більшість або всі наступні важливі дані з заражених систем:

  • Інформація про систему, включаючи ім’я хоста, ім’я користувача, відомих користувачів у системі та вміст усіх змінних системного середовища. Змінні середовища — це спосіб надання вхідних даних лише для пам’яті, до яких програми можуть отримати доступ під час запуску, часто включаючи дані, які не мають зберігатися на диску, наприклад криптографічні ключі та маркери автентифікації, що надають доступ до хмарних служб. Список відомих користувачів взято з /etc/passwd, який, на щастя, насправді не містить жодних паролів чи хешів паролів.
  • Ваша локальна конфігурація Git. Це вкрадено з $HOME/.gitconfigі зазвичай містить корисну інформацію про особисті налаштування кожного, хто використовує популярну систему керування вихідним кодом Git.
  • Ваші ключі SSH. Вони викрадені з каталогу $HOME/.ssh. Ключі SSH зазвичай включають закриті ключі, які використовуються для безпечного підключення через SSH (захищену оболонку) або використання SCP (захищену копію) до інших серверів у ваших власних мережах або в хмарі. Багато розробників зберігають принаймні деякі свої приватні ключі незашифрованими, щоб сценарії та програмні інструменти, які вони використовують, могли автоматично підключатися до віддалених систем, щоразу не запитуючи пароль або апаратний ключ безпеки.
  • Перші 1000 інших файлів у вашому домашньому каталозі розміром менше 100 кілобайт. В описі зловмисного ПЗ PyTorch не вказано, як обчислюється «список перших 1000 файлів». Вміст і порядок списків файлів залежить від того, чи впорядковано список за алфавітом; чи відвідуються підкаталоги до, під час або після обробки файлів у будь-якому каталозі; чи включені приховані файли; і чи використовується якась випадковість у коді, який проходить через каталоги. Ймовірно, ви повинні припустити, що будь-які файли, розмір яких нижчий за порогове значення, можуть бути викраденими.

На цьому етапі ми згадаємо гарні новини: лише ті, хто отримав так звану «нічну» або експериментальну версію програмного забезпечення, були під загрозою. (Назва «ніч» походить від того, що це найновіша збірка, яка зазвичай створюється автоматично наприкінці кожного робочого дня.)

Більшість користувачів PyTorch, ймовірно, дотримуватимуться так звана «стабільна» версія, на яку ця атака не вплинула.

Крім того, зі звіту PyTorch здається, що виконуваний файл зловмисного ПЗ Triton спеціально націлений на 64-розрядні середовища Linux.

Тому ми припускаємо, що ця шкідлива програма працюватиме лише на комп’ютерах Windows, якщо буде встановлено підсистему Windows для Linux (WSL).

Однак не забувайте, що люди, які, швидше за все, встановлюватимуть звичайні «вечірки», включають розробників самого PyTorch або програм, які його використовують – можливо, включаючи ваших власних розробників, які можуть мати доступ на основі закритого ключа до корпоративної збірки , тестові та робочі сервери.

Крадіжка даних DNS

Інтригуюче те, що зловмисне програмне забезпечення Triton не викрадає свої дані (термін на мілітаристському жаргоні, який індустрія кібербезпеки любить використовувати замість красти or копіювати незаконно) за допомогою HTTP, HTTPS, SSH або будь-якого іншого протоколу високого рівня.

Натомість він шифрує та кодує дані, які хоче викрасти, у послідовність, схожу на «імена серверів», які належать до доменного імені, контрольованого злочинцями.

Це означає, що, виконавши послідовність DNS-запитів, шахраї можуть викрасти невелику кількість даних у кожному фальшивому запиті.

Це той самий трюк, який використовував Хакери Log4Shell наприкінці 2021 року, який злив ключі шифрування, виконавши DNS-пошук для «серверів» з «іменами», які щойно були значенням вашого секретного ключа доступу до AWS, викраденого зі змінної середовища в пам’яті.

Тож те, що виглядало як невинний, хоча й безглуздий, пошук DNS для «сервера», наприклад S3CR3TPA55W0RD.DODGY.EXAMPLE тихо видасть ваш ключ доступу під виглядом простого пошуку, який спрямовує на офіційний сервер DNS, указаний для DODGY.EXAMPLE домен


ДЕМОНСТРАЦІЯ LOG4SHELL, ЩО ПОЯСНЮЄ ФІЛЬТРАЦІЮ ДАНИХ ЧЕРЕЗ DNS

[Вбудоване вміст]

Якщо ви не можете чітко прочитати текст тут, спробуйте використати повноекранний режим або дивитися безпосередньо на YouTube.
Натисніть на гвинтик у відеоплеєрі, щоб прискорити відтворення або ввімкнути субтитри.


Якщо шахраї володіють доменом DODGY.EXAMPLE, вони повідомляють світу, до якого DNS-сервера підключатися під час цих пошуків.

Що ще важливіше, навіть мережі, які суворо фільтрують мережеві з’єднання на основі TCP за допомогою HTTP, SSH та інших високорівневих протоколів обміну даними…

…іноді взагалі не фільтрують мережеві з’єднання на основі UDP, які використовуються для пошуку DNS.

Єдиним недоліком для шахраїв є те, що запити DNS мають досить обмежений розмір.

Окремі імена серверів обмежені 64 символами з набору з 37 (A-Z, 0-9 і тире або дефіс), і багато мереж обмежують окремі DNS-пакети, включаючи всі вкладені запити, заголовки та метадані, лише 512 байтами кожен.

Ми припускаємо, що саме тому зловмисне програмне забезпечення в цьому випадку почало з пошуку ваших особистих ключів, а потім обмежилося щонайбільше 1000 файлами, кожний розміром менше 100,000 XNUMX байт.

Таким чином шахраї можуть викрасти багато особистих даних, зокрема ключі доступу до сервера, не створюючи некеровано великої кількості запитів DNS.

Незвичайно велика кількість пошукових запитів DNS може бути помічена через звичайні робочі причини, навіть за відсутності будь-якої перевірки, яка застосовується спеціально для цілей кібербезпеки.

Що ж робити?

PyTorch уже вжив заходів для припинення цієї атаки, тож якщо ви ще не постраждали, ви майже напевно не постраждаєте зараз, оскільки шкідливі torchtriton Пакунок на PyPI було замінено на навмисно «дурний», порожній пакет з такою ж назвою.

Це означає, що будь-яка особа або будь-яке програмне забезпечення, яке намагалося встановити torchtriton з PyPI після 2022-12-30T08:38:06Z випадково чи задумом не отримає зловмисне програмне забезпечення.

Підроблений пакет PyPI після втручання PyTorch.

PyTorch опублікував зручний список IoC, або індикатори компромісу, які ви можете шукати у своїй мережі.

Пам’ятайте, як ми зазначали вище, що навіть якщо майже всі ваші користувачі дотримуються «стабільної» версії, яка не постраждала від цієї атаки, у вас можуть бути розробники чи ентузіасти, які експериментують із «нічними», навіть якщо вони використовують стабільну випуск також.

Відповідно до PyTorch:

  • Зловмисне програмне забезпечення встановлюється з назвою файлу triton. За замовчуванням ви очікуєте знайти його в підкаталозі triton/runtime у каталозі пакетів сайту Python. Враховуючи, що самі по собі назви файлів є слабкими індикаторами зловмисного програмного забезпечення, розглядайте присутність цього файлу як доказ небезпеки; не сприймайте його відсутність як усе зрозуміле.
  • Зловмисне програмне забезпечення в цій конкретній атаці має суму SHA256 2385b294­89cd9e35­f92c0727­80f903ae­2e517ed4­22eae672­46ae50a5cc738a0e. Знову ж таки, зловмисне програмне забезпечення можна легко перекомпілювати для отримання іншої контрольної суми, тому відсутність цього файлу не є ознакою певної працездатності, але ви можете вважати його присутністю ознакою зараження.
  • DNS-запити, які використовуються для викрадення даних, закінчуються доменним іменем H4CK.CFD. Якщо у вас є мережеві журнали, які записують пошук DNS за іменем, ви можете шукати цей текстовий рядок як доказ витоку секретних даних.
  • Зловмисні DNS-відповіді, очевидно, надходили, а відповіді, якщо такі були, надходили від DNS-сервера під назвою WHEEZY.IO. На даний момент ми не можемо знайти жодних IP-номерів, пов’язаних із цією службою, і PyTorch не надав жодних IP-даних, які б пов’язували DNS-трафік із цією шкідливою програмою, тому ми не впевнені, наскільки ця інформація корисна для полювання на загрози на даний момент [2023-01-01T21:05:00Z].

На щастя, ми припускаємо, що більшість користувачів PyTorch це не вплине через те, що вони не користуються нічними збірками, або не працювали під час відпустки, або і те, і інше.

Але якщо ви ентузіаст PyTorch, який щоночі збирає, і якщо ви працювали на свята, то навіть якщо ви не знайдете жодних чітких доказів того, що вас скомпрометували…

… все ж ви можете розглянути можливість створення нових пар ключів SSH як запобіжного заходу та оновлення відкритих ключів, які ви завантажили на різні сервери, до яких ви отримуєте доступ через SSH.

Звичайно, якщо ви підозрюєте, що вас зламали, не відкладайте оновлення ключів SSH – якщо ви ще цього не зробили, зробіть це прямо зараз!


Часова мітка:

Більше від Гола безпека