Атака на почтового клиента

Атака на почтового клиента

O В этой главе:

O Похищение паролей у клиента

O Фальсификация писем и социальная инженерия

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

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

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

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

Если посчитать время, необходимое для подбора шестисимвольного пароля, состоящего только из заглавных латинских символов, то получится 0+1+262+263+264+265+266 = 321 272 407 секунд или около 3 719 дней [230]. Срок, заведомо нереальный для взлома. Поэтому, злоумышленники практически никогда подбирают пароли. Вместо этого они пытаются похитить их у клиента.

Врезка «замечание»

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

Легко посчитать, что всевозможных дат даже в последнем столетии было всего-навсего порядка 386*100, т.е. порядка 4 * 104. При скорости 1 попытка в секунду все варианты можно перебрать всего за 11 часов! А если откинуть заведомо ложные варианты, то значительно быстрее - ведь зачастую пользователем вводится не абсолютно случайная информация.

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

Позже появилась необязательная для реализации команда APOP, поддерживающая распространенную схему аутентификации «запрос-отклик» (подробнее о схеме запрос-отклик рассказывается в главе «Атака на Windows NT»), основанную на алгоритме MD5, но в силу некоторых причин, массового распространения она не получила, и даже сегодня многие клиенты поддерживают только открытые пароли.

Поэтому, вся атака сводится к перехвату пароля в незашифрованном виде передаваемого по сети. В Ethernet-сетях это реализуется изучением всех, проходящих через адаптер злоумышленника, пакетов, а в Internet прибегают к «подмятию» DNS-сервера. Если в настойках клиента пользователь указал не цифровой IP адрес сервера, а его доменное имя, то клиент будет вынужден обратиться к DNS с соответствующим запросом. Злоумышленник же может, закидывая клиента ворохом ложных DNS-ответов, ввести жертву в заблуждение и тогда соединение будет установлено не с почтовым сервером, а с компьютером злоумышленника и туда же будет передан и пароль!

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

Но существует и другой способ похищения пароля - попросить его у владельца. Злоумышленник может послать фальшивое письмо от имени администратора системы, сообщающее, например, об учащении подбора паролей и предложении сменить свой старый пароль, на новый, значительно более длинный. Естественно, от жертвы требуют сообщить не только «новый», но и текущий пароль! Подобная схема активно используется злоумышленниками, похищающими и пароли на почтовые ящики, и пароли для входа в Internet, и номера пластиковых карт, и другую конфиденциальную информацию.

Жертвы до сих пор остаются необычайно доверчивыми, но все же постепенно начинают присматриваться к адресам отправителей. Скажем, если письмо пришло с VasiaPupkin@hotmail.com, то обман, скорее всего, удастся разоблачить и на такую удочку уже не попадается никто, ну практически никто.

Поэтому, представляет интерес рассмотреть, как злоумышленники ухитряются фальсифицировать адреса отправителей, получая при этом ответы. Технически ничего не стоит отправить письмо от имени admin@provider.com, но ведь и ответ получит admin, а не Вася Пупкин!

Самое простое, что используют злоумышленники: указывают в поле “Reply-To” адрес, отличный от адреса отправителя. Если жертва не обратит на это обстоятельство внимание [231], то она окажется введена в заблуждение и вполне способна сообщить требуемую информацию. Но это слишком известный примем, представляющий сегодня не более чем исторический интерес.

А вот о чем действительно знает не каждый пользователь: если получатель не существует, то письмо возвращается либо отправителю, либо пересылается на адрес, указанный в поле “Errors-To:”. Злоумышленник выбирает правдоподобный, но в действительности не существующий адрес (скажем, root@provider.com), а в поле “Errors-To” указывает свой почтовый адрес (желательно, не бросающийся в глаза).

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