27 ноября 2014

Старый баг в старом коде: проблема дня сегодняшнего

Бизнес

Microsoft стала жертвой (некоторым образом) еще одного скандала, залатав баг в Internet Explorer, затрагивавший все версии Windows, начиная с – держитесь крепче — Windows 95.

Действительно старый и незамеченный

Что в этом удивительного? Ошибка никем не была обнаружена до самого начала этого года, ни хакерами, ни экспертами по безопасности. Исследователи IBM сообщили об уязвимости в мае, сразу после того, как был выпущен патч. Уязвимость торчала у всех на виду, при этом многие другие баги в той же библиотеке Microsoft Windows Object Linking and Embedding (OLE) давно вычислены и исправлены.

Теперь к OLE привлечено повышенное внимание по обе стороны киберфронта. В конце октября iSight Partners сообщили, что группа Sandworm APT использовала еще одну уязвимость нулевого дня в OLE (CVE2014-6352) для атак по своим целям. В Sandworm применили зловредные инструменты под кодовым названием BlackEnergy, о которых недавно рассказали эксперты «Лаборатории Касперского». Почитайте об этом здесь.

wide

C техническими деталями двух последних критических уязвимостей OLE — CVE2014-6332 и CVE2014-6352 — можно ознакомиться тут.

В то время как прочие уязвимости OLE эксплуатировали по чём зря, включая баг, задействованный в Sandworm, именно эта 19-летняя уязвимость осталась незамеченной.

Никогда не знаешь

В чём соль? Никогда не знаешь, где будут обнаружены новые уязвимости, в том числе «потенциально катастрофические», допускающие удаленное исполнение кода.

Текущие пользователи Windows XP, которая не поддерживается Microsoft с апреля этого года, по-прежнему в опасности. Пока нет никаких известных эксплойтов для нее, но так как проблема лишь недавно всплыла, следует ожидать таковых в ближайшее время.

Ранее в этом году два существенных и старых бага были обнаружены в программном обеспечении с открытым исходным кодом — Heartbleed и Shellshock. Они оба оставались незамеченными в течение многих лет. Обретя широкую известность и повсеместное обсуждение, они спровоцировали усиленный контроль за программным обеспечением с открытыми исходниками, который уже выявил ряд менее известных уязвимостей.

И вот мы имеем дело с двадцатилетней давности багом Windows, самой популярной операционной системы для ПК. Баг торчал у всех на виду, он был критическим, и всё равно его не замечали на протяжении 19 лет. Поразительно.

Старый код

Все вместе эти ошибки являют собой серьезную проблему, которая заслуживает внимания: старый, «унаследованный» код. «Работает — не трогай»,  — так говорят и продолжают использовать античный код десятками лет. Иногда для обеспечения обратной совместимости, которая сродни проблеме гордиева узла для разработчиков операционных систем, приходится «тащить» наследный код для старых устройств и программ, которые все еще попадаются, хотя это и приводит к «раздуванию» самой ОС. Однажды они поступят как Microsoft: прекратят поддержку старых версий программного обеспечения (Windows XP и более ранних). Но если программа по-прежнему популярна, это вызывает недовольство пользователей и способно привести к масштабным проблемам с безопасностью. Это решение, но необязательно хорошее.

В пользовательском программном обеспечении для бизнеса полно наследного кода. Как часто его проверяют? Специализированное программное обеспечение для бизнеса было одной из главных причин долголетия Windows XP в корпоративном сегменте. У вас программы специального назначения, которые работают в среде Windows XP, используя некоторые из его особенностей; они могут быть не до конца совместимы или вообще не запускаться под Windows Vista, Windows 7 и 8, а разработка новых стоит дорого. Решение для бизнеса? Держаться за Windows XP до последней возможности — это выбор. Но решение ли это на самом деле, или просто откладывание неизбежного?

По крайней мере, устарелые системы, такие как Windows XP, следует должным образом защитить. Это одна из причин, почему мы все еще будем поддерживать XP в наших корпоративных и потребительских продуктах до 2016 года. Хочется верить, что дольше не потребуется.