Dwarkin (dwarkin) wrote,
Dwarkin
dwarkin

Categories:

А для крутых парней барабаны – часть 12

Давно не писал ничего про наших друзей из NSA, и компьютерную безопасность вообще. С тех пор достаточно сочных подробностей из повседневной работы американских разведчиков утекло в сеть, в том числе и мало кого (из тех кто в теме, конечно же) удивляющий факт, что клуб по-интересам "5 глаз" (FVEY) де-факто включал в себя также подразделение израильской разведки 8200, широко известное обилием стартапов, основанных выходцами из нее. Что не мешало, кстати, всем, по мере возможности, следить за всеми, хотя возможности каждого из игроков существенно различались – но об этом в следующем выпуске.

А сегодня я хотел-бы рассказать вам грустную и одновременно идиотскую историю двух израильских компаний - SuperFish и Komodia, и одного из наиболее известных в мире производителей персональных компьютеров – китайской фирмы Lenovo.

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

Начнем издалека – вся прелесть современного интернета состоит в том, что за почти тридцать лет, путем множественных проб и ошибок, коммерческие компании нашли способ уговорить людей пользоваться глобальной сетью не только для того чтобы наблюдать за котиками онлайн, а также пользоваться банковскими услугами, покупать и продавать вещи на ebay, затовариваться ненужными гаджетами на dealextreme и amazon.com – в общем не опасаться вбивать в сеть номер своей кредитной карточки, пароль от банковского счета и т.д. и т.п.

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

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

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

Подобная атака называется man in the middle – то есть "человек посередине", и для того чтобы не пасть ее жертвой, стоит очень внимательно смотреть не просто на наличие ключа или замочка, свидетельствующего о зашифрованном подключении, но и проверить, что указанное сбоку от ключика имя – действительно та организация, к которой вы планировали подключиться.

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

"Стоп, а кто же распределяет эти сертификаты?", воскликните вы – и будете абсолютно правы. Кому то в этой схеме нам придется доверять. И, действительно, есть определенное количество (когда-то их было в десять-двадцать, сейчас – пару сотен) коммерческих и государственных организаций, которые ответственны за выдачу сертификатов. Как мы знаем – что некий Вася Пупкин действительно государственное учреждение, и может выдавать сертификаты банкам? Очень просто – у Васи есть свой сертификат, который автоматически внесен в список "доверенных" вашим телефоном/компьютером/планшетом (для зануд – вашей операционной системой, или браузером). Заканчивая тему – если вы параноик (а стоило бы), то вы не просто проверите, что сбоку от ключика вашего банка написано его настоящее имя, но и посмотрите кем был выдан этот сертификат – и если это государственная почта Папуа-Новой Гвинеи, или Нигерии - то возможно что-то не так. А если это очень уважаемая контора типа Symantec или Verisign, то можно спокойно продолжать дальше.

Все, это был конец преамбулы. Теперь будет амбула.

Жила-была такая израильская контора под названием Superfish. Ей, как и многим другим (кто сказал Яндекс?) показалось нечестным, что широко известная в узких кругах фирма Google гребет деньги лопатой от показа контекстной рекламы своим пользователям, и она решил попытаться урвать себе хотя бы маленький кусочек этого большого и вкусного пирога, при этом не вкладывая миллиарды долларов в разработку той самой экосистемы (читай - всего пользовательского окружения: поиск, операционная система мобильного телефона, браузер, почта, новости и т.д.) в которую вложился Google. Супер-рыбка решила сделать очень простую вещь: сначала договориться с производителем компьютеров, чтобы он заранее установил ее продукт на продаваемых им устройствах, потом перехватывать запросы к Google на поиск, пропускать их через себя, и внутри показывать свою собственную рекламу. Чистый profit.

Я даже склонен искренне поверить "рыбным" товарищам, что они в этот момент думали лишь о своей наживе, и не могли себе представить размеров скандала, который вот-вот грянет. С другой стороны, как простой пользователь интернет-поиска, я бы хотел отметить, что если я с трудом доверяю Google – громадной корпорации с очень четко прописанными правилами игры, которая многократно доказывала, что не выдаст своих пользователей властям кроме как по предъявлению судебного ордера, то что уж там говорить про непонятную мелкую контору, играющую в какие-то слабо легальные игры с заменой поиска Google?

"Подождите", скажете вы. Только что автор этих строк рассказывал про то, что Google зашифровали доступ к своему поиску, поэтому если у SuperFish нет сертификатa Google (а вы можете быть уверены, что честным путем они его никогда не получат) – то даже если СуперРыбка правдами и неправдами сможет перенаправить запрос на свой сайт, ваш компьютер начнет громко кричать про то что представленный сертификат не принадлежит google, поэтому пожалуйста аккуратней с вашими данными, они скорее всего попадут не по адресу...

Все верно, но есть один момент. Если искуственно добавить сертификат SuperFish в список "доверенных" вашего компьютера, и заодно пометить, что этот сертификат – самого высшего уровня (правильное техническое название "корневой"), то SuperFish сможет обьявить себя что Google-ом, что вашим банком, что Папой Римским – и вы не увидите никакого уведомления об ошибке. "Ловкость рук, и никакого мошенничества". Для этого необходимо всего-навсего договориться с производителем компьютера.

И, да, вы абсолютно правы – SuperFish сумела договориться с Lenovo. Любой человек, купивший у Lenovo компьютер определенной марки в прошлом году (на самом деле "пострадавших" марок три или четыре) получал в свои руки систему, которая автоматически доверяла всем правильным корневым сертификатам ... плюс сертификат SuperFish.

Итого, если вам "повезло" оказаться одним из "счастливчиков", то вы ваш поиск сначала отправится в SuperFish, который выступит тем самым "человеком посредине", а уж потом доберется до Google. Неприятно, но не смертельно. Если бы наша история на этом заканчивалась – не стоило бы сотрясать воздух всеми этими словами. Как в том анекдоте: "оно, может, и кошерно, но чуток воняет".

Вот только наши проблемы на этом только начинаются. Ведь если сертификат от SuperFish прописан как корневой – то с его помощью можно себя назвать не только google.com, но еще и вашим банком, компанией медицинского страхования, биржевыми новостями, и т.д. и т.п.

Ок, но для того чтобы изобразить из себя другой сайт надо каким-то образом "примазаться" к SuperFish? Да, надо. Не вдаваясь в излишние подробности – требуется иметь доступ к "личному ключу" сертификата. Серьезные компании (те самые, действительно указанные в списке корневых сертификатов, которым можно доверять) хранят свои "личные ключи" в помещениях охраняемых лучше чем сейфы какого-нибудь ну очень параноидального швейцарского банка. Популярны даже специальные железки (HSM, hardware security module), обычно крайне недешевые, из которых физически невозможно этот "личный ключ" извлечь.

Что делают шлимазлы из SuperFish? Они хранят личный ключ прямо на компьютере пользователя, и шифруют его паролем komodia. Семь букв, латинский алфавит, ни знаков препинания тебе, ни цифр, даже больших букв нет! И, в довершение всех радостей, это слово фигурирует в тексте самой программы!!!

Итого, за считанные часы любой мало-мальски профессиональный товарищ получает доступ к личному ключу сертификата, который позволяет компьютеру Lenovo доверять ему целиком и полностью. После этого уже ничего сложного делать не надо – едешь в центр города/популярное кафе, ставишь там свой WiFi раутер с сигналом посильнее, ждешь народ с компьютерами Lenovo, который присоединится к твоей сети, а потом изображаешь из себя Bank Of America, Google Mail, Facebook, Amazon, Ebay – да все что угодно, и собираешь кредитные карточки и пароли.

Что еще интереснее – оказывается "гениальная" идея с сертификатом не принадлежит самой SuperFish. Они, судя по всему, лицензировали эту часть своего продукта у израильской фирмы Komodia, которая как-раз и занимается всеми этими грязными играми с подменой сертификатов.

Вы понимаете, да, security фирма хранит на компьютере пользователя сертификат, который позволяет любому встречному и поперечному перехватывать его интернет-сессии и шифрует его названием компании!!!

По-моему, кому-то надо найти ближайшую стенку, и срочно себя об нее убить.

По зрелом размышлении, впрочем, вполне возможно, что Komodia просто продавала среду разработки (API) для всего этого непотребства, и надеялась, что умный пользователь ее продукта (SuperFish то есть) хотя-бы сменит пароль на что-то чуть более сложное. Не сложилось. Метод "хуяк-хуяк, и в production" сработал и здесь.

Переходим к выводам – проще всего с Lenovo. Им явно SuperFish готов был отстегивать копеечку за каждую установленную копию своей программы. Подмена поиска – очень серая область, скорее в сторону нелегальной, и уже на этом этапе Lenovo стоило бы остановиться, но бизнес-интересы, все дела, могли хотя-бы нанять какого-нибудь security специалиста для того чтобы понять механизм работы СуперРыбки. Надеюсь, хотя-бы в следующий раз у них хватит на это мозгов.

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

Komodia говорит, что разработала продукт для предотвращения доступа детей к опасным интернет-сайтам. Святая тема, соглашусь. Но если вы начали лицензировать свою "супер-технологию" другим компаниям – сделайте доброе дело, наймите кого-нибудь, кто понимает в компьютерной безопасности чуть лучше. Как в том анекдоте, "Абрам, не позорь нацию". Ну и прыжок этот от продукта для "защиты детей" через "право работодателя знать чем его работник занимается в рабочее время на своем компьютере" к показу рекламы в обход Google – дурновато пахнет, согласитесь.

NSA проделывают еще более неприятные трюки, но они, по крайней мере, делают вид, что заботятся о национальной безопасности, и. судя по последним сливам – делают свою работу крайне профессионально. Об этом - в следущий раз.

Tags: nsa
Subscribe

  • Post a new comment

    Error

    Anonymous comments are disabled in this journal

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

  • 54 comments