Ошибка в работе с открытым кодом спровоцировала дыру в Windows Defender
Специалисты Microsoft спровоцировали критическую уязвимость в защитном ПО Windows Defender, неправильно внедрив в его работу элементы распаковщика с открытым кодом, пишет The Register.
This is amazing, Windows Defender used the open source unrar code, but changed all the signed ints to unsigned for some reason, breaking the code. @halvarflake noticed and got it fixed. Remote SYSTEM memory corruption https://t.co/gsx9ZMk1Hz
— Tavis Ormandy (@taviso) April 4, 2018
Уязвимость обнаружил известный исследователь безопасности Хальвар Флэйк, работающий в Google. Ему удалось отследить баг до ранней версии распаковщика с открытым кодом unrar. Microsoft внедрила элементы ПО в антивирусный движок операционной системы, но модифицировала код, конвертировав целые числа со знаком в беззнаковые целые числа, что нарушило порядок проведения математических сравнений. В результате система стала открыта ошибкам в работе с оперативной памятью.
Баг позволял злоумышленникам удалённо выполнять нужный им код на компьютере жертвы. Добиться этого они могли, отправив ссылку на скачивание специально созданного .rar-файла при активированном режиме сканирования ПК. Во время сканирования защитное ПО запускало баг, нарушавший целостность содержимого оперативной памяти. В свою очередь, это приводило к исполнению зловредного кода, давая хакеру полный доступ к компьютеру.
Информация об уязвимости появилась после того, как Microsoft выпустила обновления безопасности, решающие проблему.