Рутинна уязвимост в уеб приложение беше свързана със сериозно компрометиране на Windows сървър, след като атакуващи използваха SQL инжекция, за да внедрят инструментариум за отдалечен контрол в база данни Oracle.

Инцидентът показва как една лошо защитена уеб форма може да се превърне в път от обществен уебсайт до операционната система зад него.

Атакуващите са се насочили към публично достъпно приложение Java и Tomcat, свързано с Oracle.

Чрез изпращане на команди към базата данни чрез функция за автоматично довършване при търсене, която не е проверявала правилно въведените данни, те са успели да накарат базата данни да обработи командите и да подготвят следващия етап от навлизането.

Изследователи от Huntress са идентифицирали активността, след като са засекли опити за кражба на идентификационни данни от сървър, хостващ Oracle.

Разследването е открило копия на Windows SAM, SECURITY и SYSTEM регистрите (registry hives) – материали, които могат да помогнат на натрапника да възстанови хешове на пароли и да разшири достъпа си.

От Huntress заявяват в доклад, споделен с „Cyber Security News“ (CSN), че случаят е важен, тъй като зловредният код не е бил първоначално записан на диска като типичен файл със зловреден софтуер.

Вместо това той е бил съхраняван и компилиран в самата база данни Oracle, където за мониторинга, фокусиран върху крайните устройства, е по-трудно да го засече, преди да бъде използван за контрол на Windows хоста.

Хакери скриха инструментариум за отдалечен контрол в Oracle

Атакуващите са използвали вградената Java функционалност на Oracle, за да създадат Java обекти с изходен код директно в базата данни.

Командите, изпратени чрез JDBC връзката на приложението, са били компилирани като съхранени обекти на схемата, превръщайки базата данни в скрита стартова точка, а не просто в място за съхранение на бизнес данни.

Инструментариумът, наречен „khunt“, включва компоненти за стартиране на Windows команди, събиране на потребителски имена и пароли от Oracle, разглеждане на файлове, проверка дали инструментариумът е активен и разопаковане на файлове.

Този подход с разполагане в базата данни е осигурил на оператора инструменти за проучване на сървъра, без да се разчита на един очевиден зловреден изпълним файл.

Един от компонентите е отварял командна обвивка (command shell) и е изпълнявал команда за идентифициране на текущия потребител.

Тя е върнала права на ниво SYSTEM, потвърждавайки, че атакуващият е преминал от достъп до базата данни към контрол над операционната система – риск, който се илюстрира и от заплахата за отдалечено изпълнение на код (RCE) в Windows Netlogon, засягаща изложени на риск сървърни среди.

След това активността е преминала към събиране на идентификационни данни. Натрапникът е използвал системни инструменти на Windows, за да копира регистрите и е изброил работещите услуги, създавайки файлове в директорията на Oracle, които могат да бъдат изтеглени за офлайн анализ. Подобна кражба на идентификационни данни от регистрите може да разкрие данни за достъп до локални акаунти.

Първоначалният достъп е получен чрез SQL инжекция, а не чрез новоразкрит софтуерен дефект. Тази разлика е важна, тъй като насочва вниманието върху дизайна на приложението и правата на базата данни, а не само върху инсталирането на корекции за сигурност.

Затваряне на пътя от базата данни към сървъра

Организациите трябва да прегледат всяка публична форма и поле за търсене, които имат достъп до база данни, особено наследени функции, които могат да бъдат пропуснати по време на тестване.

Въвежданите данни трябва да се пречистват (sanitize), а заявките към базата данни да се параметризират, така че предоставеният текст да не може да се интерпретира като изпълним SQL код – основна мярка за защита срещу вида неправилна валидация, наблюдавана при дефекта в Windows Active Directory. Акаунтите в базите данни също се нуждаят от възможно най-ограничения набор от права.

Акаунт, използван от уеб приложение, не трябва да може да създава Java обекти с изходен код, да изпълнява чувствителни съхранени процедури или да получава широк достъп до операционната система, което ограничава щетите дори когато се допусне грешка с инжекция. Защитниците трябва да гледат отвъд обикновеното сканиране на файлове, когато разследват сървъри на Oracle.

Търсенето в обектите на базата данни за неочаквани Java класове, прегледът на PL/SQL обвивките и проверката на уеб и SQL логовете за необичайни команди могат да разкрият активност, която инструментите за крайни устройства могат да пропуснат; администраторите трябва също така да следят юнските актуализации за сигурност на Microsoft за Windows системите, които поддържат тези работни натоварвания.

Докладваната инфраструктура на атакуващия и имената на артефактите дават на специалистите по реагиране на инциденти практически насоки за лов на заплахи.

Прегледът трябва да даде приоритет на необичайни файлове, създадени от Oracle, неочаквани обекти в базата данни и признаци, че „oracle.exe“ е стартирал инструменти за команден ред или системния регистър. След това засегнатите системи трябва да се изолират, идентификационните данни да се нулират (ако има вероятност да са били копирани) и да се запазят съответните лог файлове за пълен форензик анализ, преди да се възстанови доверието в хоста.