По многочисленным просьбам…
АрхивКомментарий дняВ минувшую субботу Интернет в очередной раз поставила на колени эпидемия нового компьютерного вируса. Что самое замечательное, длина тела "червя", устроившего суточный инсульт для Сети, не превышает половины килобайта…
Вообще, сегодняшнюю колонку планировалось посвятить любопытнейшей электронно-коммерческой системе, созданной в России. Но развернувшиеся в субботу события внесли коррективы: на Сеть обрушилась гигантская эпидемия очередной кибернетической заразы. В списке жертв - десятки компаний, сотни тысяч серверов и миллионы человек по всему миру. Краткие сообщения о том, что случилось, наверняка, доводилось слышать и вам, но подробности появились только в последние сутки. Поэтому давайте забудем о коммерции и рассмотрим, что поставило Интернет на колени в этот раз.
Всё началось в субботу вечером, когда наблюдатели в США и Южной Корее впервые отметили необычную сетевую активность: отслеживая входящий трафик, можно было заметить прибегающие со всех направлений (а, точнее, от компьютеров со случайными Интернет-адресами) короткие пакеты. Длиною в три - четыре сотни байт, они приходили на порт с номером 1434. Всего за пару часов количество этих пакетов в Сети возросло до таких объёмов, что каналы, объединяющие многих провайдеров (т.н. бэкбон-сети) перестали справляться с нагрузкой, недопустимо сильно увеличив время прохождения через них информации. Попросту говоря, попытка рядового пользователя Сети достучаться до какого-то сайта в пяти случаях из десяти заканчивалась неудачей. Таково было положение дел в Японии, странах Европы и ряде других государств. В Штатах и Южной Корее ситуация была самой тяжёлой: многие провайдеры попросту прекратили свою работу, больше того - начались перебои в работе оборудования, подключенного к Сети (так, отказались выдавать деньги 13 тысяч банкоматов Bank of America). Пиком эпидемии стал выход из строя пяти из тринадцати корневых серверов службы DNS, поддерживающих работу всего Интернет.
Причины происходящего прояснялись медленно. В первые часы удалось лишь выяснить, что виноват во всём "червь", эксплуатирующий уязвимость в программном продукте Microsoft SQL Server. Именно эта программа "слушает" порт 1434, обрабатывая поступающую на него информацию. На основании этих сведений были выработаны и первые рекомендации по ограничению масштабов эпидемии: закрыть порт от связи с внешним миром. Благодаря этому уже в течение шести часов после начала, развитие инфекции удалось приостановить. А чуть позже появились и сведения о её масштабах: по различным данным (Symantec приводит цифру в 22 тысячи), эпидемия охватила от двух десятков до 25 тысяч узлов, на которых работал MS SQL Server. Однако, как два десятка тысяч машин, рассылая пакеты размером меньше килобайта, едва не повесили всю Сеть?!
Изюминка крылась в принципе работы "червя". Он, кстати, не прояснён полностью и на данный момент, но в общих чертах сводится к использованию пары уязвимостей в MS SQL Server, открытых ещё летом прошлого года. Одна из них заключается в возможности переполнения буфера и выполнения произвольного кода на компьютере с запущенным SQL Server. Её, вирус длиной в четыре сотни байт, использовал для заражения сервера. Инфицировав сервер, вирус приступал к размножению: SQL Server наделён своеобразной ping-функцией, которая заставляет его, в ответ на запрос, поступивший на порт 1434, отсылать ответ. Вирус, рассылая такие запросы по случайным IP-адресам, сканировал адресное пространство Сети, отыскивая новые жертвы - и заражая их немедленно по обнаружении. Но, одновременно с этим, производилась и другая работа: вирус организовывал между двумя обнаруженными SQL-серверами бесконечный обмен информацией, для чего использовалась вторая уязвимость. Дело в том, что ping-функция, если на неё прислать особый пакет, отвечает тем же самым пакетом. Представьте теперь, что сервер 1 шлёт такой пакет на сервер 2, тот отсылает его обратно, и вызывает ответную реакцию: сервер 1, получив пакет от 2-го сервера, опять отвечает на него и т.д. Такое бесконечное перебрасывание "мяча" способно съесть до 60% вычислительной мощности каждого из участвующих в нём серверов, ещё и многократно увеличив трафик. Именно этот трафик и перегрузил бэкбон-сети.
На жёсткий диск вирус не сохранялся, равно как ничего на нём не портил, поэтому удалить его с машины можно было простой выгрузкой SQL Server из памяти. Тем не менее, несмотря на всю простоту, эксперты уже назвали эпидемию SQL Slammer Worm (так прозвали нового "червя") самой тяжёлой за последние полтора года. По масштабам и последствиям с ней может сравниться только эпидемия Code Red. Впрочем, о последствиях пока судить рано: как предупреждают вирусологи, через несколько дней неизбежно появятся варианты Slammer, который могут вызвать ещё большие разрушения.
Эпидемия Slammer замечательно продемонстрировала ужасающую незащищённость современной Сети перед вирусными инфекциями. Частично виною тому - человек (администраторам серверов было просто лень поставить нужные "заплатки"), частично - инфраструктура Сети (нет никаких инструментов ограничения избыточного трафика). Как защититься от новых эпидемий? Можно ли устранить человеческий фактор из компьютерной безопасности? Можно ли найти универсальное техническое решение, гарантирующее защищённость машин? А может быть стоит просто максимально ужесточить наказание за преступления в киберпространстве? Форум "Компьютерры" на прошлой неделе, наконец, стал обретать былую популярность, давайте обсудим тему вместе!