Что хорошего в обнаружении «больших» багов

2014 год войдет в анналы истории кибербезопасности двумя исполинскими уязвимостями в широко используемом программном обеспечении, обнаруженными всего за полгода — или того даже меньше. У этих багов много общего: оба

2014 год войдет в анналы истории кибербезопасности двумя исполинскими уязвимостями в широко используемом программном обеспечении, обнаруженными всего за полгода — или того даже меньше.

У этих багов много общего: оба они найдены в широко (или глобально) используемом программном обеспечении с открытым исходным кодом, и как будто этого было еще мало, оба они довольно легко эксплуатируются (хотя оценки реального ущерба разнятся). И Heartbleed, и Shellshock вызвали панику планетарного масштаба, что неудивительно. Кстати, это, пожалуй, первый случай, когда программные изъяны получили собственные имена.

Дальнейшие открытия?

Так что же дальше? Сразу после открытия Heartbleed некоторые эксперты утверждали, что предстоят еще «крупные» находки. Shellshock, обнаруженный в прошлом месяце, доказал их правоту. Логично предположить, что в ближайшие месяцы мы наткнемся на нечто столь же «огромное».

Несмотря на все волнения, которые они могут вызвать, открытие таких уязвимостей — дело действительно хорошее.

Хорошее дело

Да, поначалу это выглядит настоящим бедствием. Эксперты по безопасности бьют тревогу, владельцы компаний вызывают своих ИТ-специалистов на ковер, чтобы потребовать проверки и оперативного внесения исправлений, а администраторы скрежещут зубами, потому что уже пятница, полседьмого вечера, но подчиняются, потому что, если не сделать все необходимое, может разразиться катастрофа.

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

Чем больше таких серьезных изъянов выявят, тем больше мы увидим оптимистичных сценариев: чем больше шума вокруг этих багов, тем больше внимания (и настороженности) они привлекут.

В продолжение разговора о Heartbleed и Shellshockнеобходимо отметить, что оба были обнаружены и обнародованы официальными экспертами по безопасности. Только представьте, что было бы, если бы вместо них оказались плохие парни.

Ревизия кода

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

К сожалению, это ничего не гарантирует. Heartbleed был введен в 2012 году и избегал всех проверок в течение двух лет. Shellshock присутствовал в оболочке BourneAgain, по-видимому, с 1992 года, то есть на протяжении 22 лет, и опять же никто его не находил до самого недавнего времени.

Возможность просмотра открытого кода еще не означает, что такой анализ на самом деле осуществляется, равно, как и не гарантирует, что это делается успешно.

По словам Роберта Грэма, код самого Bash является «шокирующе устаревшим«: «У нас есть современные объективные стандарты относительно качества кода, и Bash им не соответствует«.

После Грэм уже переходит к критике стиля кодирования Bash и, по-видимому, не зря. Это плохо написанный код, который порой очень затрудняет работу по его ревизии, что подрывает уверенность в его надежной работе. Это проблема не только Bash, зато, по крайней мере, она объясняет, почему Shellshockтак долго не удавалось обнаружить.

Последствия для бизнеса

С учетом сказанного выше, каковы последствия для предприятий и их ИТ-специалистов?

Прежде всего, речь идет о готовности. Лучший сценарий должен стать рутинной. Нашли баг? Прибейте его, как только мухобойку выложат на сайте разработчика программного обеспечения, и не ждите, пока ваш дом не станет ими кишеть. Причем, скорее всего, кишеть ими будет уже не только ваш дом (сервер вашей компании). Уязвимость Shellshockбыла немедленно использована в целях создания большого и жирного ботнета для DDoS и брутфорса. Кого его владельцы выберут в качестве следующей мишени? Никто не гарантирует, что это будете не вы.

Кроме того, внешняя проверка кода открытых программных пакетов, используемых в инфраструктуре компании, может сослужить вам добрую службу. На это понадобятся средства, конечно, но успешный взлом обойдется куда дороже.

Советы