Dragon Attack
- 1 year ago
- 0
- 0
«Подрывная атака» ( англ. shatter attack ) — программная технология, которая используется хакерами для обхода ограничений безопасности между процессами одного сеанса в операционной системе Microsoft Windows . Она опирается на недостаток архитектуры системы передачи сообщений и позволяет одному приложению внедрить произвольный код в любое другое приложение или службу , работающие в том же сеансе. В результате может произойти несанкционированное повышение привилегий .
Новый тип атак стал темой горячих обсуждений среди специалистов в сфере безопасности после публикации в августе 2002 года статьи Криса Паже , независимого консультанта по защите данных. В этом документе впервые появился термин «shatter attack», описывающий процесс, с помощью которого приложение может выполнить произвольный код в другом приложении. Это возможно благодаря тому, что Windows позволяет приложениям с низкими привилегиями отправлять сообщения приложениям, имеющим более высокие привилегии. В сообщении в качестве параметра может содержаться адрес функции обратного вызова из адресного пространства приложения. Если злоумышленник сумеет внедрить свои данные в память другого приложения (например, вставив шелл-код в окно редактирования или с помощью функций VirtualAllocEx и WriteProcessMemory), то он может послать ему сообщение WM_TIMER и указать адрес функции обратного вызова, который ссылается на эти данные.
Спустя несколько недель после публикации статьи компания Microsoft согласилась с тем, что проблема существует, но в то же время пояснила , что называть это недоработкой Windows ошибочно, так как проблема кроется в самой службе с высокими привилегиями.
В декабре 2002 года Microsoft выпустила патч для систем Windows NT 4.0 , Windows 2000 и Windows XP , предотвращающий использование «shatter attack» . Но это было частичное решение проблемы, так как исправление касалось служб, поставляемых вместе с Windows. Однако сама архитектура не претерпела изменений, и для остальных приложений и служб угроза продолжала существовать.
В Windows Vista проблему решили комплексно, внеся два существенных изменения. Во-первых, сеанс 0 выделен исключительно для системных процессов, и пользователь больше не осуществляет вход в этот сеанс . Во-вторых, большая часть сообщений теперь не отправляется от процессов с низкими привилегиями процессам с высокими привилегиями ( , UIPI) . К примеру, Internet Explorer 7 использует это нововведение для ограничения взаимодействия компонентов визуализации с остальной системой.