Сообщения без ответов | Активные темы Текущее время: 28 мар 2024, 13:23



Ответить на тему  [ Сообщений: 8 ] 
SYN Cookie и randomseq на ASA 
Автор Сообщение
Супермодератор

Зарегистрирован: 01 окт 2008, 12:24
Сообщения: 4434
На ASA есть технология защиты от SYN Flood. Конфигурируется порог, после которого ASA начинает перехватывать сессии и считать хэш сессий.

Если сессия приходит от нормально пользователя, а не хакера, то далее АСА сама открывает сессию на сервер (three-way handshake). При этом возникает разность initial sequence number, высчитанный АСой и сгенерированный сервером. АСА эту дельту высчитывает и при работе сервера с клиентом вычитает эту дельту из ACK.

Это присказка. А теперь сказка: как будет работать АСА при такой настройке

static (i,o) tcp 1.1.1.1 80 10.1.1.10 80 tcp 0 25 norandomseq


15 сен 2009, 11:38
Профиль

Зарегистрирован: 21 июл 2009, 13:59
Сообщения: 565
Откуда: Moscow
естественно говорим про случай с 26ым embryonicом ? ( ибо макс сейчас у вас 25, а intercept начинает работать только после перешагивания за данный парог ) ?


15 сен 2009, 14:25
Профиль WWW
Супермодератор

Зарегистрирован: 01 окт 2008, 12:24
Сообщения: 4434
Ясен перец :)


15 сен 2009, 15:58
Профиль

Зарегистрирован: 21 июл 2009, 13:59
Сообщения: 565
Откуда: Moscow
nikita@nikitaDeb:~$ cat asa
10.1.1.2 инициатор, 10.1.1.3 - нат на pixe, 10.0.37.15 - сервер.

NUMERO UNO
2ый коннект ( те уже зашли за предел max embryonic )
PIX(config)# sh run | grep static
static (TRUSTED_LAN,UNTRUSTED_LAN) tcp 10.1.1.3 telnet 10.0.37.15 telnet netmask 255.255.255.255 tcp 0 1 norandomseq

Получаем что random seq ставиться только от респондера к инициатору ( несмотря на то, что стоит norandomseq )

capture со стороны инициатора на pix

58 packets captured
1: 13:04:44.726021 10.1.1.2.40297 > 10.1.1.3.23: S 3718448162:3718448162(0) win 4128 <mss 1460>
2: 13:04:44.726219 10.1.1.3.23 > 10.1.1.2.40297: S 1687709656:1687709656(0) ack 3718448163 win 0 <mss 536>
3: 13:04:44.736793 10.1.1.2.40297 > 10.1.1.3.23: . ack 1687709657 win 4128
4: 13:04:44.747703 10.1.1.3.23 > 10.1.1.2.40297: . ack 3718448163 win 4128
5: 13:04:44.756491 10.1.1.3.23 > 10.1.1.2.40297: P 1687709657:1687709669(12) ack 3718448163 win 4128
6: 13:04:44.766134 10.1.1.3.23 > 10.1.1.2.40297: P 1687709669:1687709711(42) ack 3718448163 win 4128
7: 13:04:44.776784 10.1.1.2.40297 > 10.1.1.3.23: . 3718448163:3718448164(1) ack 1687709669 win 4116
8: 13:04:44.786565 10.1.1.2.40297 > 10.1.1.3.23: . ack 1687709711 win 4074
9: 13:04:44.796299 10.1.1.2.40297 > 10.1.1.3.23: P 3718448164:3718448172(8) ack 1687709711 win 4074
10: 13:04:44.806064 10.1.1.2.40297 > 10.1.1.3.23: . ack 1687709711 win 4128
11: 13:04:44.806247 10.1.1.3.23 > 10.1.1.2.40297: P 1687709711:1687709714(3) ack 3718448172 win 4119


capture от pixa на сервер-респондер
57 packets captured
1: 13:04:44.737876 10.1.1.2.40297 > 10.0.37.15.23: S 3718448162:3718448162(0) win 4128 <mss 1380>
2: 13:04:44.746665 10.0.37.15.23 > 10.1.1.2.40297: S 1863805981:1863805981(0) ack 3718448163 win 4128 <mss 536>
3: 13:04:44.747260 10.1.1.2.40297 > 10.0.37.15.23: . ack 1863805982 win 4128
4: 13:04:44.756339 10.0.37.15.23 > 10.1.1.2.40297: P 1863805982:1863805994(12) ack 3718448163 win 4128
5: 13:04:44.766073 10.0.37.15.23 > 10.1.1.2.40297: P 1863805994:1863806036(42) ack 3718448163 win 4128
6: 13:04:44.776891 10.1.1.2.40297 > 10.0.37.15.23: . 3718448163:3718448164(1) ack 1863805994 win 4116
7: 13:04:44.786610 10.1.1.2.40297 > 10.0.37.15.23: . ack 1863806036 win 4074
8: 13:04:44.796360 10.1.1.2.40297 > 10.0.37.15.23: P 3718448164:3718448172(8) ack 1863806036 win 4074
9: 13:04:44.806125 10.1.1.2.40297 > 10.0.37.15.23: . ack 1863806036 win 4128
10: 13:04:44.806186 10.0.37.15.23 > 10.1.1.2.40297: P 1863806036:1863806039(3) ack 3718448172 win 4119
11: 13:04:44.815997 10.1.1.2.40297 > 10.0.37.15.23: P 3718448172:3718448175(3) ack 1863806036 win 4128
12: 13:04:44.816074 10.0.37.15.23 > 10.1.1.2.40297: P 1863806039:1863806045(6) ack 3718448172 win 4119
13: 13:04:44.826647 10.1.1.2.40297 > 10.0.37.15.23: P 3718448175:3718448178(3) ack 1863806036 win 4128
14: 13:04:44.836428 10.1.1.2.40297 > 10.0.37.15.23: P 3718448178:3718448187(9) ack 1863806036 win 4128
15: 13:04:44.836489 10.0.37.15.23 > 10.1.1.2.40297: P 1863806045:1863806048(3) ack 3718448178 win 4113



NUMERO DUOS:
нат все еще с norandomseq, но это только первый коннект ( соот intercept не работает )
видем что нигде seq не меняются ( те работает, как ожидаемо )
=================================================
capture от инициатора на пикс
30 packets captured
1: 13:11:50.962535 10.1.1.2.58320 > 10.1.1.3.23: S 2644409861:2644409861(0) win 4128 <mss 1460>
2: 13:11:50.972346 10.1.1.3.23 > 10.1.1.2.58320: S 1978310467:1978310467(0) ack 2644409862 win 4128 <mss 536>
3: 13:11:50.982981 10.1.1.2.58320 > 10.1.1.3.23: . ack 1978310468 win 4128
4: 13:11:50.992746 10.1.1.2.58320 > 10.1.1.3.23: P 2644409862:2644409871(9) ack 1978310468 win 4128
5: 13:11:51.002624 10.1.1.2.58320 > 10.1.1.3.23: . ack 1978310468 win 4128
6: 13:11:51.002776 10.1.1.3.23 > 10.1.1.2.58320: P 1978310468:1978310480(12) ack 2644409862 win 4128
7: 13:11:51.012420 10.1.1.3.23 > 10.1.1.2.58320: P 1978310480:1978310522(42) ack 2644409862 win 4128
8: 13:11:51.023054 10.1.1.2.58320 > 10.1.1.3.23: P 2644409871:2644409874(3) ack 1978310522 win 4074
9: 13:11:51.023207 10.1.1.3.23 > 10.1.1.2.58320: P 1978310522:1978310525(3) ack 2644409871 win 4119
10: 13:11:51.032835 10.1.1.2.58320 > 10.1.1.3.23: P 2644409874:2644409877(3) ack 1978310522 win 4074
11: 13:11:51.032972 10.1.1.3.23 > 10.1.1.2.58320: P 1978310525:1978310531(6) ack 2644409871 win 4119
12: 13:11:51.042600 10.1.1.2.58320 > 10.1.1.3.23: P 2644409877:2644409886(9) ack 1978310522 win 4074
13: 13:11:51.042752 10.1.1.3.23 > 10.1.1.2.58320: P 1978310531:1978310534(3) ack 2644409877 win 4113
14: 13:11:51.233065 10.1.1.2.58320 > 10.1.1.3.23: . ack 1978310534 win 4062
15: 13:11:51.252641 10.1.1.3.23 > 10.1.1.2.58320: . ack 2644409886 win 4104

capture от пикс к серверу-респондеру
PIX# show capture TEST1
30 packets captured
1: 13:11:50.963023 10.1.1.2.58320 > 10.0.37.15.23: S 2644409861:2644409861(0) win 4128 <mss 1380>
2: 13:11:50.972270 10.0.37.15.23 > 10.1.1.2.58320: S 1978310467:1978310467(0) ack 2644409862 win 4128 <mss 536>
3: 13:11:50.983042 10.1.1.2.58320 > 10.0.37.15.23: . ack 1978310468 win 4128
4: 13:11:50.992792 10.1.1.2.58320 > 10.0.37.15.23: P 2644409862:2644409871(9) ack 1978310468 win 4128
5: 13:11:51.002670 10.1.1.2.58320 > 10.0.37.15.23: . ack 1978310468 win 4128
6: 13:11:51.002731 10.0.37.15.23 > 10.1.1.2.58320: P 1978310468:1978310480(12) ack 2644409862 win 4128
7: 13:11:51.012374 10.0.37.15.23 > 10.1.1.2.58320: P 1978310480:1978310522(42) ack 2644409862 win 4128
8: 13:11:51.023100 10.1.1.2.58320 > 10.0.37.15.23: P 2644409871:2644409874(3) ack 1978310522 win 4074
9: 13:11:51.023161 10.0.37.15.23 > 10.1.1.2.58320: P 1978310522:1978310525(3) ack 2644409871 win 4119
10: 13:11:51.032880 10.1.1.2.58320 > 10.0.37.15.23: P 2644409874:2644409877(3) ack 1978310522 win 4074
11: 13:11:51.032942 10.0.37.15.23 > 10.1.1.2.58320: P 1978310525:1978310531(6) ack 2644409871 win 4119
12: 13:11:51.042646 10.1.1.2.58320 > 10.0.37.15.23: P 2644409877:2644409886(9) ack 1978310522 win 4074
13: 13:11:51.042707 10.0.37.15.23 > 10.1.1.2.58320: P 1978310531:1978310534(3) ack 2644409877 win 4113
14: 13:11:51.233111 10.1.1.2.58320 > 10.0.37.15.23: . ack 1978310534 win 4062
15: 13:11:51.252580 10.0.37.15.23 > 10.1.1.2.58320: . ack 2644409886 win 4104
16: 13:11:53.563203 10.1.1.2.58320 > 10.0.37.15.23: P 2644409886:2644409887(1) ack 1978310534 win 4062




NUMERO TRES: убираем norandomseq
===========================================

получаем, что pix ставить random seq и инициатору, и респондеру.

capture от инициатору к пиксу
PIX# show capture TEST
19 packets captured
1: 13:13:30.444984 10.1.1.2.50078 > 10.1.1.3.23: S 1841617742:1841617742(0) win 4128 <mss 1460>
2: 13:13:30.454306 10.1.1.3.23 > 10.1.1.2.50078: S 2934285019:2934285019(0) ack 1841617743 win 4128 <mss 536>
3: 13:13:30.463995 10.1.1.2.50078 > 10.1.1.3.23: . ack 2934285020 win 4128
4: 13:13:30.473730 10.1.1.2.50078 > 10.1.1.3.23: P 1841617743:1841617752(9) ack 2934285020 win 4128
5: 13:13:30.473882 10.1.1.3.23 > 10.1.1.2.50078: P 2934285020:2934285032(12) ack 1841617743 win 4128
6: 13:13:30.484502 10.1.1.2.50078 > 10.1.1.3.23: . ack 2934285020 win 4128
7: 13:13:30.484639 10.1.1.3.23 > 10.1.1.2.50078: P 2934285032:2934285074(42) ack 1841617743 win 4128
8: 13:13:30.494237 10.1.1.2.50078 > 10.1.1.3.23: P 1841617752:1841617755(3) ack 2934285032 win 4116
9: 13:13:30.494389 10.1.1.3.23 > 10.1.1.2.50078: P 2934285074:2934285077(3) ack 1841617752 win 4119
10: 13:13:30.504139 10.1.1.2.50078 > 10.1.1.3.23: P 1841617755:1841617758(3) ack 2934285032 win 4116
11: 13:13:30.504292 10.1.1.3.23 > 10.1.1.2.50078: P 2934285077:2934285083(6) ack 1841617752 win 4119
12: 13:13:30.513797 10.1.1.2.50078 > 10.1.1.3.23: P 1841617758:1841617767(9) ack 2934285032 win 4116
13: 13:13:30.513950 10.1.1.3.23 > 10.1.1.2.50078: P 2934285083:2934285086(3) ack 1841617758 win 4113
14: 13:13:30.684672 10.1.1.2.50078 > 10.1.1.3.23: . ack 2934285086 win 4062
15: 13:13:30.744285 10.1.1.3.23 > 10.1.1.2.50078: . ack 1841617767 win 4104
16: 13:13:33.724709 10.1.1.2.50078 > 10.1.1.3.23: P 1841617767:1841617768(1) ack 2934285086 win 4062
17: 13:13:33.734504 10.1.1.3.23 > 10.1.1.2.50078: P 2934285086:2934285087(1) ack 1841617768 win 4103
18: 13:13:33.868393 10.1.1.2.50078 > 10.1.1.3.23: . ack 2934285087 win 4061
19: 13:13:34.234866 10.1.1.2.50078 > 10.1.1.3.23: . ack 2934285087 win 4128
19 packets shown

capture от pixa к серверу-респондеру
PIX# show capture TEST1
19 packets captured
1: 13:13:30.445548 10.1.1.2.50078 > 10.0.37.15.23: S 2514007823:2514007823(0) win 4128 <mss 1380>
2: 13:13:30.454230 10.0.37.15.23 > 10.1.1.2.50078: S 2570457973:2570457973(0) ack 2514007824 win 4128 <mss 536>
3: 13:13:30.464072 10.1.1.2.50078 > 10.0.37.15.23: . ack 2570457974 win 4128
4: 13:13:30.473776 10.1.1.2.50078 > 10.0.37.15.23: P 2514007824:2514007833(9) ack 2570457974 win 4128
5: 13:13:30.473837 10.0.37.15.23 > 10.1.1.2.50078: P 2570457974:2570457986(12) ack 2514007824 win 4128
6: 13:13:30.484533 10.1.1.2.50078 > 10.0.37.15.23: . ack 2570457974 win 4128
7: 13:13:30.484594 10.0.37.15.23 > 10.1.1.2.50078: P 2570457986:2570458028(42) ack 2514007824 win 4128
8: 13:13:30.494282 10.1.1.2.50078 > 10.0.37.15.23: P 2514007833:2514007836(3) ack 2570457986 win 4116
9: 13:13:30.494343 10.0.37.15.23 > 10.1.1.2.50078: P 2570458028:2570458031(3) ack 2514007833 win 4119
10: 13:13:30.504185 10.1.1.2.50078 > 10.0.37.15.23: P 2514007836:2514007839(3) ack 2570457986 win 4116
11: 13:13:30.504246 10.0.37.15.23 > 10.1.1.2.50078: P 2570458031:2570458037(6) ack 2514007833 win 4119
12: 13:13:30.513843 10.1.1.2.50078 > 10.0.37.15.23: P 2514007839:2514007848(9) ack 2570457986 win 4116
13: 13:13:30.513904 10.0.37.15.23 > 10.1.1.2.50078: P 2570458037:2570458040(3) ack 2514007839 win 4113
14: 13:13:30.684733 10.1.1.2.50078 > 10.0.37.15.23: . ack 2570458040 win 4062
15: 13:13:30.744239 10.0.37.15.23 > 10.1.1.2.50078: . ack 2514007848 win 4104
16: 13:13:33.724816 10.1.1.2.50078 > 10.0.37.15.23: P 2514007848:2514007849(1) ack 2570458040 win 4062
17: 13:13:33.734443 10.0.37.15.23 > 10.1.1.2.50078: P 2570458040:2570458041(1) ack 2514007849 win 4103
18: 13:13:33.868515 10.1.1.2.50078 > 10.0.37.15.23: . ack 2570458041 win 4061
19: 13:13:34.234973 10.1.1.2.50078 > 10.0.37.15.23: . ack 2570458041 win 4128
19 packets shown
PIX#




Вопрос: где нить описанно поведение PIX/ASA в первом случае ( когда embryonic > max ) и мы получаем односторонний random seq ?


15 сен 2009, 16:27
Профиль WWW
Супермодератор

Зарегистрирован: 01 окт 2008, 12:24
Сообщения: 4434
Вооот. Нигде не написано! Вообще про односторонний randomseq ни звука!

В такой конфигурации могут смешные штуки получаться для тех протоколов, где рандомайзить нельзя никак (BGP и другие tcp приложения с аутентификацией)...


17 сен 2009, 11:23
Профиль

Зарегистрирован: 21 июл 2009, 13:59
Сообщения: 565
Откуда: Moscow
когда искал про norandomseq наткнулся на
http://www.cisco.com/web/about/ac123/ac ... tacks.html
мне то, что под figure 7 понравилось.
spoofed ack можно сделать ( так как мы видели уже syn от инициатора; аутентификация tcp сессии на этапе 3-w handshake еще нет ) с нормальными syn ( те такими же , какие приходят в реальном ack ), а чтоб не было рассинхронизации после этого, если приходит настоящий ack -> мы его не пересылаем респондеру.

Вроде данный вариант должен решить проблемы c syn flood в случаях когда нельзя random seq делать. Хотя мож я чего не учел :)


17 сен 2009, 11:38
Профиль WWW
Супермодератор

Зарегистрирован: 01 окт 2008, 12:24
Сообщения: 4434
Да, забавная картинка.

Вот только не понятно, чем принципиально она будет отличаться от вообще отсутствия СИНКуки? Ведь на сервере появится куча полуоткрытых сессий, правда заспуфленных от фаервола.


17 сен 2009, 13:19
Профиль

Зарегистрирован: 21 июл 2009, 13:59
Сообщения: 565
Откуда: Moscow
Я думаю в таком случае все равно ж остается возможность явно ограничивать максимальное кол-во embryonic на файрвалле. Так же явно задаем таймаут на АСК от инициатора вне зависимости от настроек сервера ( за счет RST ) + может убивать рандомно ( или самые старые ) embryonic коннекты, если появились новые а лимит исчерпан.


17 сен 2009, 13:27
Профиль WWW
Показать сообщения за:  Поле сортировки  
Ответить на тему   [ Сообщений: 8 ] 

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Designed by ST Software for PTF.
Русская поддержка phpBB