Всем привет от Intel

Аватар пользователя Partisan

Накладочка закладочка вышла... Ой, щас поправим другую заложим.

«Пакет смерти» для сетевых карт Intel

http://habrahabr.ru/post/168607/


Сетевой инженер Кристиан Кильхофнер (Kristian Kielhofner), купив новые серверы для обработки VoIP-трафика, столкнулся с неприятной проблемой. Серверы периодически падали без видимой причины. Но самое странное, что на серверах иногда отключался Ethernet-контроллер. Отключался в прямом смысле: система некоторое время работала нормально, но после обработки определённого количества трафика интерфейс выдавал аппаратную ошибку и обрывал связь, а восстановление работы было возможно только после холодной перезагрузки.

Кристиан провёл небольшое исследование и нашёл ряд сообщений о том, что у других пользователей тоже бывают проблемы с контроллерами Intel 82574L, говорили, что у них баги в EEPROM, ASPM и т.д. Кристиан с коллегами потратил несколько месяцев на поиск причин, почему в их случае контроллеры выдавали ошибку. В конце концов, им удалось докопаться до сути.

Инженер начал исследовать с помощью Wireshark содержимое пакетов, которые проходили через сетевую карту непосредственно перед отключением интерфейса — и обнаружил некоторую закономерность. Последний пакет всегда был ответом 100 Trying по протоколу SIP, он всегда был определённой длины и всегда поступал после запроса INVITE конкретного производителя IP-телефонов.

Кристиан говорит, что в пятницу вечером поднял на уши спецов из компании, продавшей ему телефоны этой марки. Он предоставил им доказательства и потребовал ответа. Они собрались все вместе, чтобы проверить баг, сделали тестовую конфигурацию на разных серверах и разных моделях телефонов — и смогли воспроизвести его! Правда, баг проявлялся не на всех моделях серверов и телефонов. После долгого анализа, в конце концов, всё-таки удалось выявить конкретный пакет, из-за которого падал интерфейс Ethernet. Это оказался полученный INVITE, а не 100 Trying.

Для проверки взяли программу tcpreplay, изолировали INVITE от телефона — и отправили этот пакет на сетевую карту. Трюк сработал.

Каждый может проверить работу «пакета смерти» на своей сетевой карте Intel, установив виртуальную машину и отправив оттуда пакет с помощью tcpreplay, или можно это сделать с другого компьютера по локальной сети. «Пакет смерти» срабатывает под любыми ОС, независимо от настроек файрвола, если только файрвол не блокирует на уровне OSI 2/3.

Содержимое пакета

Кстати, Кристиан довёл анализ до логического завершения и выяснил, какие конкретно байты превращают любой пакет в «пакет смерти» для Ethernet-карты Intel.

Отключение интерфейса происходит, если по адресу 0x47f находится значение 2 или 3.

Байт 0x47f = 32 HEX (2 ASCII)
Байт 0x47f = 33 HEX (3 ASCII)



Если там 4, то всё OK.



Подходит любой пакет: HTTP POST, ICMP echo-request и проч. например, на веб-сервере можно сконфигурировать ответ 200 таким образом, что он будет «убивать» сетевые интерфейсы на клиентских машинах.

Кристиан Кильхофнер говорит, что занимается сетями 15 лет и никогда не видел ничего подобного. Он уже связался с инженерами Intel, и они подтвердили, что действительно, это баг в прошивке EEPROM на контроллерах 82574L.

Комментарии

Аватар пользователя x-notch
x-notch(12 лет 3 месяца)

Чем  отличается  баг от закладки ?

Аватар пользователя Partisan
Partisan(11 лет 11 месяцев)

Баг - это само так вышло, недопроверили.

Аватар пользователя PigPog
PigPog(12 лет 1 месяц)

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

Аватар пользователя x-notch
x-notch(12 лет 3 месяца)

Критерия четкого нет.

Аватар пользователя Partisan
Partisan(11 лет 11 месяцев)

Главное, нет доказательств умысла. Значит - случайность. Все дружно этому верим!

Аватар пользователя Карл Сруэ
Карл Сруэ(12 лет 1 месяц)

нет доказательства умысла - начит нельзя с уверенностью утверждать, что умысел был. Или что его не было.

Аватар пользователя PigPog
PigPog(12 лет 1 месяц)

Производитель не знает об этой особенности изделия и не воспользуется ей в час "Ч". 

Аватар пользователя Bolek
Bolek(12 лет 1 месяц)

баг - о, йа не знал!

закладка или фича - так было задумано с самого начала.

Аватар пользователя Barmalley
Barmalley(12 лет 1 месяц)

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

Аватар пользователя deepinspace
deepinspace(12 лет 2 месяца)

есть такой глючный чип realtek. сколько я с ним намучался )))

Аватар пользователя Barmalley
Barmalley(12 лет 1 месяц)

А он не глючный, он просто дешевый и не умеет нихрена.

Аватар пользователя SergeyVBNM
SergeyVBNM(11 лет 10 месяцев)

на простых людях это как-то сказывается? или это информация для узких специалистов, коих на АШ просто каждый второй?

Комментарий администрации:  
*** Зассыха, интеллектуально пресмыкающаяся перед США ***
Аватар пользователя Мэкс
Мэкс(12 лет 6 дней)

Да, может сказаться.

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

Аватар пользователя SergeyVBNM
SergeyVBNM(11 лет 10 месяцев)

какой же это злоумышленник, благодетель это!

Комментарий администрации:  
*** Зассыха, интеллектуально пресмыкающаяся перед США ***
Аватар пользователя Partisan
Partisan(11 лет 11 месяцев)

Это значит, что энная часть компов в случае БП будет превентивно отключена от сети. Ну, а если внутри есть другие такие заморочки, то и выведена из строя.

Да и зачем они? Электричества-то всё равно не будет :-)))

Аватар пользователя KMS-64
KMS-64(12 лет 2 месяца)

Вот гады! Лучше б динамомашины для ноутов повсеместно в компьютерные лабазы завезли. Тут в одном флаконе и спорт, и надежда на автономность, и динамо!

Аватар пользователя CragHack
CragHack(11 лет 5 месяцев)

> Каждый может проверить работу «пакета смерти» на своей сетевой карте Intel, установив виртуальную машину и отправив оттуда пакет с помощью tcpreplay

А что, энтузиасты ещё не выложили в сеть программку, которая бы дропала компьютер по адресу? Было бы весело.

Аватар пользователя nbm
nbm(11 лет 7 месяцев)

Как не выложили? Обижаете!

Аватар пользователя CragHack
CragHack(11 лет 5 месяцев)

Спасибо!

Аватар пользователя юрчён
юрчён(11 лет 4 месяца)

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

Аватар пользователя casper_nn
casper_nn(11 лет 6 месяцев)

Особенно весело было, когда с интервалом в пару дней в рэйд массиве полетело два одинаковых винта поставленных одновременно. %)

Аватар пользователя Barmalley
Barmalley(12 лет 1 месяц)

Если в рейде, особенно пятом полетел один винт, то на осташиеся резко возрастает нагрузка, и очень вероятно что если не заменить первый, и не произвести ребилд рейда, что тоже дает нехилую нагрузку, вылетит второй, поэтому грамотные люди предпочитают либо просто зеркалку, либо рейд 6, либо raid-dp.

Аватар пользователя Тракторист
Тракторист(11 лет 11 месяцев)

все просто, только час посидеть и посмотреть.

Аватар пользователя casper_nn
casper_nn(11 лет 6 месяцев)

Подобная история произошла у нас лет 10 назад, на каком именно железе не помню - на определенной последовательности данных в них менялся определенный байт. Тоже хрен поймаешь такое. Чем сложнее техника, тем загадочнее баги. Еще лично сталкивался с приколом, когда еще были сетки x.25 по телефонным сетям, модем не устанавливал соединение с неродным блоком питания. Т.е. все параметры у блока такие же, другой модем с ним работает, а этот нет. Меняешь блок притания - все ок.

Аватар пользователя PigPog
PigPog(12 лет 1 месяц)

6 больших военных путеров. (больших это не то слово, если память не изменяет шкаф в метрах, ширина 1. длинна 6, высота 2.5, таких 6 штук на один путер), есть локальная сеть, оптика, на одном из путеров в блоке управления висела ошибка, все поменяли, ничего не помогает. Через недельку один товарищ заметил, что на совершенно другом путере немного занижено напряжени на "сетевой карточке" (прим, размеры смотри выше), покрутил до номинала, ошибка в блоке управления другого путера пропала. Чем сложнее система, тем необьяснимее ошибки и методы их устранения.

Аватар пользователя kirpitch83
kirpitch83(11 лет 6 месяцев)

Создаётся впечатление, что скоро дойдёт до того, что инжинеры  в отношении техники, станут как медики в отношении организма: "хрен его знает как оно работает, но таблеточки попейте, обычно помогает")

Аватар пользователя KMS-64
KMS-64(12 лет 2 месяца)
"Вот вам телефончик, бабка на Винду шепчет, на Линух насылает."
Аватар пользователя deepinspace
deepinspace(12 лет 2 месяца)

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

Аватар пользователя kirpitch83
kirpitch83(11 лет 6 месяцев)

Ну с софтом-то понятно (аналог - психология, где ваще с научностью туго), а вот аппаратная часть... Глядишь, физиологи догонят в понимании организма инжинеров, человек-то остаётся прежним, а машины усложняются.

Аватар пользователя Barmalley
Barmalley(12 лет 1 месяц)

А аппаратная часть это тоже микроконтроллер(тот же процессор) и программы.

Аватар пользователя slw068
slw068(12 лет 2 месяца)

Уровень сложности подобной техники уже зашкаливает за способности одного человека охватить все очобенности системы целиком. Поэтому либо шаманство (тпа холодной перезагрузки), либо долгое, нудное и очень дорогое разбирательство в сути проблемы. И если шаманство сильно дешевле, то будут использовать его.

Аватар пользователя r3po
r3po(11 лет 10 месяцев)

> Кристиан Кильхофнер говорит, что занимается сетями 15 лет и никогда не видел ничего подобного.
Он просто не имеет их готовить. (c) У меня были сервера с интеловскими сетевыми чипами на матери, и был с ними забавный глюк - раз в неделю ни с того ни с сего kernel panic. Расследование заняло несколько недель и показало, что на матери из 2 сетевух одна была на чипе 82575EB, а другая на 82575E. (Вот на фига, такой зоопарк спрашивается?) И вот та, которая 82575EB при работе с MTU = 9000 периодически выбивала систему.
И не у меня одного. - http://forum.mikrotik.com/viewtopic.php?f=2&t=58329

Аватар пользователя Оборотень
Оборотень(11 лет 2 месяца)

Intel - это не святая церковь )) даже скорее наоборот )) интеллектуальная деградация - она всех касается.