Согласно докладу инженера Microsoft на конференции BlueHat в этом году, почти три четверти всех уязвимостей, обнаруженных в продуктах Microsoft, относятся к категории проблем безопасности памяти.
Цифры были получены в рамках сессии под названием «Тенденции, проблемы и стратегические сдвиги в ландшафте смягчения уязвимостей программного обеспечения», которую Мэтт Миллер из Microsoft Security Response Center провел на конференции Blue Hat в Израиле.
В Microsoft думают, что, поскольку не все уязвимости могут быть устранены, Microsoft вместо этого сосредоточилась на средствах защиты от эксплойтов, таких как ASLR (рандомизация структуры памяти), Mem GC (меры по усилению выделения памяти) и Control Flow Guard для предотвращения повторного использования кода.
Эти методы оказались очень успешными, а это означает, что эксплуатация все время усложняется. Количество уязвимостей нулевого дня, используемых для массовых атак, по существу сведено к нулю, и меньше уязвимостей обнаруживается в «массовых» наборах эксплойтов. Поскольку наиболее очевидные векторы атак блокируются, злоумышленники переходят к использованию социальной инженерии или к новым атакам на мобильные телефоны и неправильно настроенные серверы.
Однако проблемы безопасности памяти остаются основной целью атак, когда доступ к системной памяти превышает выделенный размер и адреса памяти. Это происходит потому, что Windows в основном написана на C и C ++, и оба языка позволяют разработчикам получать доступ к памяти способами, которые повышают вероятность наличия уязвимости. По словам Миллера, наиболее распространенным методом является использование после освобождения (UAF), когда память освобождается после использования, но все еще остается доступной. Повреждение кучи — другой предпочтительный путь атаки.
Другое изменение привело к тому, что злоумышленники перешли от основных ошибок памяти к более сложным методам, которые запускают код по определенным адресам памяти, которые, вероятно, будут использоваться приложениями или процессами, запущенными в системе. Пакет слайдов для презентации доступен на Github.