Специалист по ИТ-безопасности Рубен Сантамарта из компании Wintercore сообщил в своем блоге об обнаружении серьезной уязвимости в Windows-версии популярного мультимедийного видеоплеера Apple QuickTime. Эксплуатируя указанную уязвимость потенциальный злоумышленник может вызвать заражение целевой системы вредоносным программным обеспечением. Причем, уязвимость затрагивает даже последние версии OC Windows.
Технически, проблема кроется в работе незадействованного параметра "_Marshaled _pUnk", который по сути представляет собой бэкдор, появившийся по вине разработчиков Apple или их партнеров, работавших над QuickTime и просто забывших удалить этот параметр после завершения работы над программой. По словам ИТ-специалиста, этот параметр присутствует в QuickTime уже около 9 лет, но за счет него хакер может получить контроль даже над компьютером на базе Windows 7.
Авторы известного сканера безопасности Metasploit из компании Rapid7 называют выявленный баг с одной стороны странным, а с другой - довольно серьезным. "Это похоже на служебный вход, сделанный программистами при разработке программы и забывшими его удалить из конечной версии программы", - говорит Эйч Ди Мур, операционный директор Rapid7.
Говоря упрощенно, _Marshaled _pUnk представляет собой эквивалент объектного указателя, который может быть использован атакующим для внедрения злонамеренного кода прямо в память компьютера. За прошедшие несколько лет похоже проблемы несколько раз возникали в продуктах Microsoft. Эксперты говорят, что в случае с продуктом Apple, проблема не является классическим багом в обычном понимании этого термина, здесь это скорее такая архитектурная особенность. Впрочем, проблемы это не устраняет.
По словам программистов, за последние несколько лет в программах стало нормой создавать систему ASLR или address space layout randomization, которая технически позволяет загрузить код хакера извне в память, но вот потом злоумышленник не может этот код найти. У Microsoft появился свой подход - DEP или data execution prevention. Эта система блокирует выполнение любого кода, которых находится за пределами кодов исполняемой программы.