Минулого тижня Progress Software Corporation, яка продає програмне забезпечення та послуги для розробки інтерфейсу користувача, devops, керування файлами тощо, попередила клієнтів про свою Передача MOVEit і пов'язаної з MOVEit Cloud продукти про а критична вразливість охрестили CVE-2023-34362.
Як випливає з назви, MOVEit Transfer — це система, яка дозволяє легко зберігати та обмінюватися файлами в команді, відділі, компанії чи навіть у ланцюжку постачання.
У своїй власні слова, «MOVEit забезпечує безпечну співпрацю та автоматизовану передачу файлів конфіденційних даних і розширені можливості автоматизації робочого процесу без необхідності створення сценаріїв».
На жаль, веб-інтерфейс MOVEit, який полегшує спільний доступ до файлів і керування ними за допомогою лише веб-браузера (цей процес, як правило, вважається менш схильним до помилкових або «втрачених» файлів, ніж обмін ними через електронну пошту), виявився SQL ін'єкційна вразливість.
Пояснення SQL-ін’єкцій
Помилки веб-ін’єкцій SQL виникають під час надсилання запиту HTTP на веб-сервер незахищено перетворюється на команду запиту, яка потім виконується сервером сам виконати пошук бази даних, щоб визначити, яку відповідь HTTP створити.
Наприклад, пошук у базі даних, ініційований на веб-сторінці, може закінчитися URL-адресою, яку запитує ваш браузер і виглядає так:
https://search.example.com/?type=file&name=duck
Текст запиту duck
потім можна витягнути з параметра імені в URL-адресі, перетворити на синтаксис запиту до бази даних і зшити в команду для надсилання на сервер бази даних.
Якщо серверні дані зберігаються в базі даних SQL, веб-сервер може перетворити цю URL-адресу на команду SQL, як показано нижче.
Команда %
символів, доданих до тексту duck
означає, що пошуковий термін може з’явитися будь-де в отриманій назві файлу, а символи одинарних лапок на кожному кінці додаються як маркери для позначення текстового рядка SQL:
ВИБЕРІТЬ ім'я файлу FROM filesdb WHERE ім'я LIKE '%duck%'
Дані, які надходять із запиту, можна було б гарно відформатувати, перетворити на HTML і надіслати назад як HTTP-відповідь у ваш браузер, можливо, даючи вам список відповідних файлів, які можна завантажувати.
Звичайно, веб-сервер має бути дуже обережним з іменами файлів, які надсилаються як пошуковий термін, на випадок, якщо зловмисник створить і запитає URL-адресу, подібну до цієї:
https://search.example.com/?type=file&name=duck';DROP table filesdb;--
Якби цей пошуковий термін було сліпо перетворено на рядок запиту, ви могли б обманом змусити веб-сервер надіслати серверу SQL таку команду:
ВИБЕРІТЬ назву файлу FROM filesdb WHERE ім'я LIKE '%duck';DROP TABLE filesdb;--%'
Тому що крапка з комою (;
) діє як роздільник операторів у SQL, ця однорядкова команда фактично така ж, як надсилання трьох послідовних команд:
SELECT name file FROM filesdb WHERE name LIKE '%duck' -- відповідає іменам, що закінчуються duck DROP TABLE filesdb -- видаляє всю базу даних --%' -- коментар, нічого не робить
Підступно, тому що все потім --
відкидається SQL як коментар програміста, ці три рядки є такими самими, як:
ВИБЕРІТЬ ім'я файлу FROM filesdb WHERE ім'я LIKE '%duck' DROP TABLE filesdb
Ви отримаєте список усіх імен файлів у базі даних, які закінчуються рядком duck
(спеціальний символ SQL %
на початку пошукового терміна означає «відповідати будь-чому до цього моменту»)...
…але ви будете останньою людиною, яка отримає щось корисне з цього filesdb
бази даних, тому що ваш шахрайський пошуковий термін продовжить пошук за допомогою команди SQL, щоб видалити всю базу даних.
Маленькі столи Боббі
Якщо ви коли-небудь чули, як сиадміни чи кодери жартують про Маленькі столи Боббі, це тому, що цей вид SQL-ін’єкцій був увічнений у an Мультфільм XKCD ще в 2007 році:
Як закінчується мультфільм в останньому кадрі, вам справді потрібно очистити вхідні дані вашої бази даних, тобто вам потрібно бути дуже обережним, щоб особа, яка надсилає пошуковий термін, не могла контролювати, як команда пошуку інтерпретується залученими серверами серверів.
Ви можете зрозуміти, чому такий трюк відомий як ін’єкційна атака: у наведених вище прикладах зловмисні пошукові терміни викликають введення додаткової команди SQL під час обробки запиту.
Насправді в обох цих прикладах використовуються дві введені команди fom, які слідують за непомітно вставленим символом «закритих лапок», щоб швидше завершити пошуковий рядок. Перша додаткова команда — деструктивна DROP TABLE
інструкція. Друга — «команда коментаря», яка змушує ігнорувати решту рядка, таким чином хитро з’їдаючи кінцеві %'
символи, згенеровані генератором команд сервера, які в іншому випадку спричинили б синтаксичну помилку та запобігли б впровадженню DROP TABLE
команда з робочого.
Хороші новини і погані новини
Хороша новина в цьому випадку полягає в тому, що Progress виправив усі підтримувані версії MOVEit, а також свій хмарний сервіс, як тільки йому стало відомо про вразливість.
Отже, якщо ви користуєтеся хмарною версією, ви тепер автоматично оновлюєтеся, а якщо ви використовуєте MOVEit у своїй власній мережі, ми сподіваємося, що ви вже встановили виправлення.
Погана новина полягає в тому, що ця вразливість була нульового дня, тобто Progress дізнався про неї, оскільки погані хлопці вже використовували її, а не до того, як з’ясували, як це зробити.
Іншими словами, до того моменту, коли ви виправляли власні сервери (або Progress виправляв свій хмарний сервіс), шахраї могли вже впровадити шахрайські команди у ваші серверні бази даних MOVEit SQL із низкою можливих результатів:
- Видалення існуючих даних. Як показано вище, класичним прикладом атаки SQL-ін’єкції є масштабне знищення даних.
- Викрадання існуючих даних. Замість того, щоб видаляти таблиці SQL, зловмисники можуть вводити власні запити, таким чином вивчаючи не лише структуру ваших внутрішніх баз даних, але й витягуючи та викрадаючи їх найцікавіші частини.
- Модифікація існуючих даних. Більш витончені зловмисники можуть вирішити пошкодити або порушити роботу ваших даних замість того, щоб (або також) викрасти їх.
- Імплантація нових файлів, у тому числі шкідливих програм. Зловмисники можуть вводити команди SQL, які, у свою чергу, запускають команди зовнішньої системи, таким чином досягаючи довільного віддаленого виконання коду у вашій мережі.
Одна група нападників, нібито Microsoft, яка є (або пов’язана з) сумнозвісною бандою програм-вимагачів Clop, очевидно, використовували цю вразливість, щоб імплантувати те, що відомо як веб-оболонки на уражених серверах.
Якщо ви не знайомі з веб-оболонками, прочитайте наш простий англійський пояснювач які ми опублікували під час неприємних атак HAFNIUM ще в березні 2021 року:
Небезпека Webshell
Простіше кажучи, веб-оболонки надають можливість зловмисникам, які можуть додавати нові файли на ваш веб-сервер, повертатися пізніше, проникати у вільний час і використовувати цей доступ лише для запису на повне дистанційне керування.
Веб-оболонки працюють, оскільки багато веб-серверів розглядають певні файли (зазвичай це визначається каталогом, у якому вони знаходяться, або розширенням, яке вони мають) як виконувані сценарії використовується для створення сторінки для повернення, а не як фактичний вміст для використання у відповіді.
Наприклад, Microsoft IIS (Інтернет-інформаційний сервер) зазвичай налаштований таким чином, що якщо веб-браузер запитує файл із назвою, скажімо, hello.html
, тоді необроблений, незмінений вміст цього файлу буде прочитано та надіслано назад у браузер.
Отже, чи є в цьому шкідливе програмне забезпечення hello.html
файл, то це вплине на особу, яка переглядає сервер, а не на сам сервер.
Але якщо файл викликається, скажімо, hello.aspx
(де ASP є скороченням для самоописової фрази Активні сторінки сервера), тоді цей файл розглядається як програма сценарію для виконання сервером.
Запуск цього файлу як програми, замість того, щоб просто зчитувати його як дані, створить результат, який буде надіслано у відповідь.
Іншими словами, чи є в цьому шкідливе програмне забезпечення hello.aspx
файл, то це безпосередньо вплине на сам сервер, а не на особу, яка переглядає його.
Коротше кажучи, видалення файлу веб-оболонки як побічний ефект атаки впровадження команд означає, що зловмисники можуть повернутися пізніше та, відвідавши URL-адресу, що відповідає назві файлу цієї веб-оболонки…
…вони можуть запускати своє шкідливе програмне забезпечення прямо у вашій мережі, не використовуючи нічого більш підозрілого, ніж невибагливий HTTP-запит, який робить повсякденний веб-браузер.
Дійсно, деякі веб-оболонки складаються лише з одного рядка шкідливого сценарію, наприклад, однієї команди, яка говорить «отримати текст із певного HTTP-заголовка в запиті та запустити його як системну команду».
Це надає командно-контрольний доступ загального призначення будь-якому зловмиснику, який знає правильну URL-адресу для відвідування та правильний HTTP-заголовок для доставки шахрайської команди.
Що ж робити?
- Якщо ви користувач MOVEit, переконайтеся, що всі екземпляри програмного забезпечення у вашій мережі виправлені.
- Якщо ви не можете виправити зараз, вимкніть веб-інтерфейси (HTTP і HTTP) для ваших серверів MOVEit, поки не зможете. Очевидно, ця вразливість виявляється лише через веб-інтерфейс MOVEit, а не через інші шляхи доступу, такі як SFTP.
- Пошук у журналах для щойно доданих файлів веб-сервера, щойно створених облікових записів користувачів і несподівано великих завантажень даних. У прогресі є список місць для пошуку разом із назвами файлів і для пошуку.
- Якщо ви програміст, продезінфікуйте свої входи.
- Якщо ви програміст SQL, використовували параметризовані запити, а не генерували команди запитів, що містять символи, якими керує особа, яка надсилає запит.
У багатьох, якщо не в більшості, атак на основі веб-оболонки, досліджених досі, Прогрес підказує що ви, ймовірно, знайдете фальшивий файл webshell під назвою human2.aspx
, можливо, разом із новоствореними шкідливими файлами з a .cmdline
розширення.
(Продукти Sophos виявлятимуть і блокуватимуть відомі файли webshell як Troj/WebShel-GO, чи називаються вони human2.aspx
чи ні.)
Пам’ятайте, однак, що якщо інші зловмисники знали про цей нульовий день до виходу виправлення, вони могли ввести інші та, можливо, більш тонкі команди, які зараз неможливо виявити шляхом сканування на наявність зловмисного програмного забезпечення, яке залишилося позаду, або пошуку для відомих імен файлів, які можуть відображатися в журналах.
Не забудьте переглянути свої журнали доступу в цілому, і якщо у вас немає часу зробити це самостійно, не бійтеся просити про допомогу!
Дізнатися більше про Кероване виявлення та реагування Sophos:
Цілодобове полювання на загрози, виявлення та реагування ▶
Не вистачає часу чи досвіду для реагування на загрози кібербезпеці? Хвилюєтеся, що кібербезпека зрештою відволікатиме вас від усіх інших справ, які вам потрібно зробити?
- Розповсюдження контенту та PR на основі SEO. Отримайте посилення сьогодні.
- PlatoAiStream. Web3 Data Intelligence. Розширення знань. Доступ тут.
- Карбування майбутнього з Адріенн Ешлі. Доступ тут.
- Купуйте та продавайте акції компаній, які вийшли на IPO, за допомогою PREIPO®. Доступ тут.
- джерело: https://nakedsecurity.sophos.com/2023/06/05/moveit-zero-day-exploit-used-by-data-breach-gangs-the-how-the-why-and-what-to-do/
- : має
- :є
- : ні
- :де
- $UP
- 1
- 15%
- 2021
- a
- Здатний
- МЕНЮ
- про це
- вище
- абсолют
- доступ
- Рахунки
- досягнення
- акти
- фактичний
- насправді
- додавати
- доданий
- Додатковий
- просунутий
- впливати
- боїться
- після
- ВСІ
- дозволяти
- по
- вже
- Також
- an
- та
- будь-який
- все
- де-небудь
- з'являтися
- ЕСТЬ
- AS
- At
- атака
- нападки
- автор
- автоматичний
- Автоматизований
- автоматично
- Автоматизація
- знати
- назад
- Backend
- фонове зображення
- поганий
- BE
- стали
- оскільки
- було
- перед тим
- за
- нижче
- сліпо
- Блокувати
- Боббі
- border
- обидва
- дно
- порушення
- Перерва
- браузер
- Перегляд
- помилки
- але
- by
- званий
- прийшов
- CAN
- можливості
- який
- обережний
- мультиплікація
- випадок
- Викликати
- викликаний
- Причини
- Центр
- певний
- ланцюг
- характер
- символи
- classic
- хмара
- код
- співробітництво
- color
- Приходити
- приходить
- коментар
- компанія
- повний
- підключений
- поспіль
- вважається
- будувати
- зміст
- контроль
- контроль
- конвертувати
- перероблений
- КОРПОРАЦІЯ
- Відповідний
- може
- курс
- обкладинка
- створювати
- створений
- Круки
- Клієнти
- Кібербезпека
- дані
- Дані порушення
- Database
- базами даних
- вирішувати
- надання
- відділ
- виявлено
- Виявлення
- певний
- розробка
- DevOps
- різний
- безпосередньо
- дисплей
- Зривати
- do
- робить
- Не знаю
- скачати
- завантажень
- Падіння
- Випадання
- охрестили
- кожен
- Рано
- легко
- кінець
- помилка
- Навіть
- НІКОЛИ
- повсякденний
- приклад
- Приклади
- виконувати
- виконання
- існуючий
- експертиза
- Експлуатувати
- піддаватися
- розширення
- зовнішній
- додатково
- факт
- знайомий
- далеко
- розібрався
- філе
- Файли
- знайти
- Перший
- стежити
- після
- для
- знайдений
- FRAME
- від
- перед
- передня частина
- Банда
- Загальне
- Головна мета
- в цілому
- породжувати
- генерується
- породжує
- generator
- отримати
- дає
- дає
- добре
- великий
- Group
- було
- Обробка
- Мати
- почутий
- висота
- надія
- hover
- Як
- How To
- Однак
- HTML
- HTTP
- HTTPS
- Полювання
- if
- Iis
- in
- У тому числі
- ганебний
- інформація
- вводити
- витрати
- замість
- інтерфейс
- Інтерфейси
- внутрішній
- інтернет
- в
- залучати
- залучений
- Випущений
- IT
- ЙОГО
- сам
- просто
- тільки один
- відомий
- великий
- масштабний
- останній
- пізніше
- запуск
- вивчення
- залишити
- менше
- як
- Лінія
- ліній
- список
- ВИГЛЯДИ
- пошук
- made
- зробити
- РОБОТИ
- Робить
- шкідливих програм
- управляти
- вдалося
- управління
- багато
- березня
- Маржа
- узгодження
- макс-ширина
- Може..
- значити
- сенс
- засоби
- Microsoft
- може бути
- більше
- найбільш
- ім'я
- Названий
- Імена
- Необхідність
- потреби
- мережу
- Нові
- нещодавно
- новини
- нормальний
- нічого
- зараз
- of
- від
- on
- один раз
- ONE
- тільки
- or
- порядок
- Інше
- інакше
- наші
- з
- Результати
- вихід
- власний
- сторінка
- параметр
- частини
- пластир
- Пол
- може бути
- людина
- місця
- plato
- Інформація про дані Платона
- PlatoData
- положення
- це можливо
- Пости
- ймовірно
- процес
- Продукти
- програма
- Програміст
- прогрес
- забезпечувати
- забезпечує
- опублікований
- put
- запити
- цитувати
- діапазон
- вимагачів
- швидше
- Сировина
- Читати
- читання
- насправді
- пов'язаний
- відносний
- віддалений
- відповісти
- запросити
- просив
- запитів
- відповідь
- REST
- огляд
- право
- прогін
- біг
- то ж
- say
- говорить
- сканування
- scripts
- Пошук
- Грати короля карти - безкоштовно Nijumi логічна гра гри
- другий
- безпечний
- побачити
- Продає
- послати
- відправка
- чутливий
- посланий
- обслуговування
- Послуги
- Поділитись
- поділ
- Короткий
- Показувати
- показаний
- просто
- один
- So
- так далеко
- Софтвер
- solid
- деякі
- спеціальний
- конкретний
- SQL
- SQL-ін'єкція
- старт
- Заява
- зберігати
- зберігати
- рядок
- структура
- представляти
- представлений
- такі
- Запропонує
- поставка
- ланцюжка поставок
- Підтриманий
- підозрілі
- SVG
- синтаксис
- система
- таблиця
- Приймати
- команда
- термін
- terms
- ніж
- Що
- Команда
- їх
- Їх
- потім
- Там.
- Ці
- вони
- речі
- це
- загроза
- три
- по всьому
- час
- до
- топ
- переклад
- переклади
- перехід
- прозорий
- лікувати
- спрацьовує
- ПЕРЕГЛЯД
- Опинився
- два
- до
- відповідний сучасним вимогам
- URL
- використання
- використовуваний
- користувач
- Інтерфейс користувача
- використання
- зазвичай
- версія
- через
- візит
- вразливість
- було
- шлях..
- we
- Web
- веб-браузер
- Веб-сервер
- Web-Based
- week
- ДОБРЕ
- були
- Що
- коли
- Чи
- який
- ВООЗ
- всі
- чому
- волі
- з
- без
- слова
- Work
- тренування
- робочий
- автоматизація робочого процесу
- робочий
- хвилювалися
- б
- ви
- вашу
- себе
- зефірнет