Don't fuck with TCP!

|
Уважаемые, а давайте пофлеймим? Я кое-что скажу, а вы мне в ответ скажете, что я дурак и нихрена не понимаю.

А скажу я вот что: цископикс (ну и его производные) - говно.

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

Речь о том, что PIX - говно по построению. Сам принцип, по которому действует PIX, не позволяет построить что-либо, кроме говна.

А именно, попытка анализировать и модифицировать пакеты в некотором контексте, выведенном из пролетающего мимо трафика, - идея заведомо ущербная. Вот возьмем TCP, к примеру. TCP по своему дизайну - end-to-end протокол. Функции согласования параметров, сборки потока, ретрансмиссии, контроля скорости и все остальные выполняются на оконечном устройстве. Попытка вмешаться в пролетающие пакеты без взятия на себя всех функций неминуемо ведет к неисчислимым бедствиям.

Перейдем к примерам.

Я тут повспоминал, и понял, что PIX последовательно и неуклонно просрал все полимеры по очереди.

ECN просрал? Тупо и линейно. PIX присылал RST на SYN с установленными ECN-флагами (CSCds23698).

SACK просрал? Еще как! С фейрверком. PIX и ASA рандомизируют TCP sequence numbers, а тот sequence number, который внутри SACK option - забыли (CSCse14419). Oops.

Window scaling просрал? Просрал самым классическим образом. До некоторой версии window scaling не поддерживался. Попытка контролировать window overshooting в сочетании с непониманием window scaling приводил понятно к чему: пикс думал, что окошко маааленькое, и дропал совершенно нормальные пакеты. Починили это несчастье только в 2006 году, если мне не изменяет склероз. Т.е. через 14 (!) лет после выхода RFC 1323. Аплодисменты.

Не, конечно, всё это цискоиндусы поправили. Но поправили они это только после того как. А иначе быть и не могло. Появление всех расширений предвидеть невозможно, а принцип функционирования не позволяет обходиться с ними по-человечески без допиливания софта. Это не случайные баги, это системное.

И совершенно понятно, что это все повторится вновь. Следующее расширение опять будет сломано. Мы все опять будем пялиться красными от недосыпа глазами в wireshark и тихо материться.

Вы мне скажете: Даня, ты дурачок, это же security, security is supposed to break things.
Так я вам отвечу: Ежели так, то глобальная ядреная война - это the ultimate security solution. Вот взять, долбануть всех Бомбой и чтобы никто и никуда, и чтобы ша, и чтобы тихо и ничего не шевелилось.

/me облачился в asbestos suit. Расчехляйте flamethrower, коллеги.

0 TrackBacks

Listed below are links to blogs that reference this entry: Don't fuck with TCP!.

TrackBack URL for this entry: http://net-geek.org/cgi-bin/mt/mt-tb.cgi/275

17 Comments

visir Author Profile Page on August 7, 2008 12:48 PM said:

"security" -- это не просто security, это еще и способ попила бюджетов (=> откаты).

Elsewere Author Profile Page on August 7, 2008 1:13 PM said:

Не только. Очень часто - способ изображать бурную деятельность и развитие. Есть, к примеру, дочерняя организация, по условию задачи лазящая каким-то клиентом на какой-то сервер материнской, с коей сидит в разных VLAN'ах и коннектится по L3 . Дальше руководство IT службы последней трубит, что "у нас жопа не прикрыта", туда ставится ASA или PIX эдак 525 с двумя статическими пробросками, кто-то получает благодарность, премию, и т.д. . Ломаться при такой конфигурации не чему;-) Ибо "Мусор вывозится? Вывозится. Вывоз учитывается? Учитывается. Всегда можно отчитаться, что в текущем квартале вывезено на столько-то тонн говна больше, чем в предыдущем"/c/ Стругацкие.
Ну и откаты и попил бюджета в этом процессе тоже вполне могут присутствовать...;-)

ZW Author Profile Page on August 7, 2008 2:27 PM said:

Как обычно - если в этом году не освоим все что дали, в следующем дадут меньше.

Dmitry Rubinstein Author Profile Page on August 7, 2008 12:55 PM said:

Ну, я априори согласен с любым наездом на сиско :)

Daniel Ginsburg Author Profile Page on August 7, 2008 12:59 PM said:

Бабло баблом, а пакеты пакетами. Почему бы не пилить бюджет, не ломая сеть?

Синий Че Author Profile Page on August 7, 2008 1:01 PM said:

> А именно, попытка анализировать и модифицировать пакеты в некотором контексте, выведенном из пролетающего мимо трафика, - идея заведомо ущербная.

предлагаю запретить nat :)

Daniel Ginsburg Author Profile Page on August 7, 2008 1:04 PM said:

> предлагаю запретить nat :)

Я категорически за.

Dmitry Rubinstein Author Profile Page on August 7, 2008 1:26 PM said:

Осталось внедрить IPv6 - и мы в дамках.

Daniel Ginsburg Author Profile Page on August 7, 2008 1:52 PM said:

IPv6-trolling - это вотчина netch'а. Мне как-то неудобно залезать на его территорию :)

Но горькая правда состоит в том, что миграция (именно миграция, а не IPv6 сам по себе) приведет к еще большему NAT'натированию. Это очень грустно.

ZW Author Profile Page on August 7, 2008 2:24 PM said:

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

Elsewere Author Profile Page on August 7, 2008 1:18 PM said:

Меня в PIX'ах - АСАх просто убивает ко всему прочему отсутствие инструментов для нормальных подсчётов/статистики/репортов, типа нетфлоу того же самого.

Daniel Ginsburg Author Profile Page on August 7, 2008 1:53 PM said:

Угу. И это тоже. Но я обещал сегодня не наезжать на пикс по этому поводу :)

bishop on August 8, 2008 5:23 AM said:

А что на счёт ip tcp adjust-mss? Это есть хорошо или плохо, если без него не робоит? Правда, у нас она (команда) не на PIX и ASA настроена, а на c7301, но концепции это не меняет.

bishop on August 8, 2008 5:24 AM said:

робит*

iCEDman on August 8, 2008 8:44 AM said:

хм. а что вы можете сказать насчет Juniper Networks SSG 550/550M?

bishop on August 8, 2008 9:53 AM said:

Что меня заколупало набирать каждый раз полную команду, состоящую в среднем из 4-5 слов. Есть там какие-нибудь вещи типа global config mode, interface config mode и прочие? :)

snar.myopenid.com Author Profile Page on August 10, 2008 8:44 PM said:

Заменить PIX на "любой stateful firewall" - тогда соглашусь полностью.
Попытка поддерживать state протокола, которого можешь не до конца
(не со всеми расширениями) понимать - обречена на провал...

Например, на PF (Free/OpenBSD) я тоже натыкался на проблемы с window
scaling, благо, решилось с пониманием того, "почему это так"
(http://www.mail-archive.com/pf@benzedrine.cx/msg07837.html)
и переписыванием конфига...

PS: отказ от nat методом перехода на ipv6 - тоже не панацея.
Точнее, от nat'а-то отказаться можно, но отказываться от firewall'а
(и, скорее всего, stateful) при этом ни один разумный админ не будет..

Leave a comment

 

Pages

Archives

Sign In