«Чистый» интернет-банкинг со свободным ПО: VirtualBox + Debian + Iceweasel + Vuurmuur + Squid + KeePassX 1
Сети/интернет
Статья была опубликована 3 декабря 2014 года в 14:58, а последний раз правилась 10 февраля 2020 года в 03:32.
Постоянная ссылка: http://www.nixp.ru/articles/97.html
Реализация «чистой» (безопасной) работы с интернет-банкингом на основе Linux-дистрибутива Debian и программного обеспечения VirtualBox, Iceweasel, Vuurmuur, Squid, LightSquid, Squidview, KeePassX.
Для «чистой» работы с интернет-банкингом предлагается использовать визуальный контроль и полный запрет на явно не разрешенные соединения в сети и управление ими.
Преамбула
Безопасности много-мало быть не может. Она или есть, или её… уже вообще не было.
Специализированные сборки Linux-дистрибутивов: такие как Tails, Liberte, Whynix, (!)LPS(!), Privatix, IprediaOS, — о которых говорится, что они могут обеспечить безопасные интернет-соединения… Можно не сомневаться, они предназначены для того, чтобы облегчить кому-то жизнь. Но в свете последних и не очень разоблачений (разговоры об узлах TOR’a, а на основе этой сети работают почти все эти сборки; слухи об АНБ, которое может забраться… куда оно только не хочет и не может не забраться?), возникает уверенность, что рассчитывать надо только на себя и на близких тебе людей. Это относится и к медицине, и к продуктам, и к лекарствам, и… ко всему. Кто может сейчас гарантировать на полные 100%, что, взяв котлеты, где написано «говядина», там не обнаружится при внимательном рассмотрении нечто раньше не мычащего, а мяукающего?..
Для многих становятся жизненно важными проблемы информационной безопасности. Пусть решает каждый сам по поводу сборок, но учитывайте: собираясь взять готовый, бесплатный, сыр, будьте готовы к тому, что это может довести до неожиданности — вплоть до детской. Смысл вышесказанного в том, что с бОльшим доверием можно отнестись только к тому, что собрано собственноручно из стандартного продукта, проверенного тысячами людей. Или, если не хватает знаний, с приглашением квалифицированного специалиста, но под неусыпным контролем. С записью и получением объяснений по всем производимым изменениям от установок по умолчанию, для возможности последующей проверки у других специалистов. Для параноидального уменьшения рисков во время настройки — без использования внешних носителей и без связи с интернетом.
В моём примере система (Debian) ставится из набора CD и DVD, образы для которых получены из надёжных источников с проверкой контрольных сумм в режиме offline — система не подключается к интернету до окончания конфигурации хотя бы брандмауэра. Остаются риски, связанные со стандартным продуктом. Но они гораздо меньше, чем получение сборок из чужих рук. Была сделана попытка сделать продукт, который сможет с бОльшей вероятностью защитить пользователей от неприятностей на самом уязвимом участке — у них дома, у них же самих, чем просто советы-предупреждения от уважаемых организаций, которые стараются блюсти строгие нормы только на своей стороне. Надо понимать, что всех участников интернет-взаимодействия соблюдать нормы на третьей стороне научить невозможно. Как невозможно влезть к каждому пользователю в компьютер или заставить даже ради его пользы придерживаться и обеспечивать требования специфических стандартов. Поэтому организации стараются обеспечить безопасность на двух из трёх участках: у себя и на канале передачи данных. Третий участник, ради которого и из-за которого создаются эти блага быстрого взаимодействия, остаётся, по бОльшей мере, один-на-один с этими благами и со своими проблемами из-за вероятности подцепить и хранить у себя на ПК какую-либо зловредность, которая из блага может сделать неприятность. Описываемая в статье система, по-моему, уменьшает шансы на это.
Описание технической части сделано быстро, немного сумбурно и без подробностей. Приступим.
Основные компоненты и схема их применения
ОС устанавливается в виртуальной машине VirtualBox. Основная задача — сохранить первосозданный вид ещё «чистой», настроенной, системы и гарантированно возвратиться к нему после хождений по интернету. В процессе наладки можно делать точки возврата для ликвидации непродуманных действий. Рекомендуемый снимок — после установки системы, настройки брандмауэра, ввода паролей в базу KeePassX и получения-установки вышедших обновлений операционной системы. На случай прозрения, что что-то «сделалось не так», и для беспроблемного возврата к исходному снимку, после возможного неправильной конфигурации программ.
Операционная система — Debian GNU/Linux, в минимально нужной для банкинга и возможности настроек конфигурации. По слухам, одна из самых надёжных и безопасных ОС. Веб-браузер — Iceweasel. В него заранее устанавливаются ссылки на необходимые сайты, а также он переводится на работу с прокси-сервером.
Vuurmuur — GUI-надстройка для iptables. Настраивается для того, чтобы обеспечить соединения только с определёнными портами и отбиваться от возможных напастей. В большинстве случаев достаточно трёх правил: предоставить доступ к DNS, HTTP и HTTPS. Остальные входы-выходы блокируются.
В качестве прокси-сервера — Squid. Он занимается управлением соединений, обеспечивает доступ к сайту по его доменному имени, а не по IP-адресу, который может меняться. Кроме прочего, имеет замечательную способность — несколькими строками исключает из общения все адреса и порты, кроме отдельно указанных, т.е. вносятся только нужные значения, по которым возможно общение, а все остальные — игнорируются.
Правила для Squid:
1. Запретить доступ ко всем адресам:
acl BAD dst 0.0.0.0/0.0.0.0 http_access deny BAD
2. Запретить доступ ко всем портам, кроме помеченных как безопасные:
http_access deny !Safe_ports
3. Добавить нужные адреса и порты — это можно сделать прописыванием наглядных отдельных правил:
http_access allow GOOD acl GOOD dst online.sberbank.ru acl Safe_ports port 443 80
Иллюстрация связи с разрешённым сайтом:
И вот попытка связи с сайтом, имени которого нет в списке разрешённых:
Для анализа логов Squid используется решение LightSquid. Оно необходимо для понимания, всё ли делается так, как хотелось, посещались ли только необходимые сайты.
Для быстрого просмотра запрашиваемых соединений — Squidview. Применяется для настройки и корректировки правил доступа к нужным сайтам. Например, для правильного доступа к pgu.mos.ru (портал городских услуг г. Москвы) надо разрешить доступ ещё к нескольким вспомогательным службам по дополнительным адресам — их имена можно узнать из окна этой программы.
Менеджер паролей — KeePassX. Среди прочих достоинств — вставка логина-пароля без ввода их на клавиатуре, что является защитой от кейлоггеров на хост-машине.
Примечания по работе с виртуальной машиной
После работы с интернет-банкингом можно в веб-браузере исключить соединение через прокси-сервер, перейти на обычный режим и просматривать интересующие страницы, предварительно очистив историю. Тут важно не забывать о разрешённых портах (только 53, 80, 443).
Для возврата к первоначальному состоянию виртуальная машина закрывается с установкой флажка в окне «Восстановить текущий снимок». Выбирается тот снимок, который зафиксировал состояние системы после её полной настройки. После перезагрузки имеем систему с удалёнными изменениями, возникшими после последнего входа. Размер созданной и настроенной машины в Virtualbox — около 3 Гб.
Виртуальную машину можно тиражировать и раздавать в пользование тому, кому это надо. Естественно, у других также должен быть установлен VirtualBox.
Контроль исходящих соединений из VirtualBox на хосте вёлся Windows-брандмауэром, который позволяет получить наглядную информацию по связи с интернетом.
Послесловие
Не по себе становится, понимая, сколько у нас пожилых людей и тех, кто по жизни не может и не хочет влазить в тонкости «дебрей» сегодняшнего интернета. Можно только догадаться, что они испытывают, когда остаются один на один со всеми его прелестями.
Не по себе становится, узнавая о новых фактах подлости и мошенничества в интернете. Кто может сказать о точной статистике по потерям из-за незнания и неумения?
Кто-нибудь видел эти глаза, полные недоумения и тоски из-за бессилия и безнадёжности вернуть потерянное? Да ещё сколько времени и нервов надо потратить на разборки…
А можно ли сделать по описанному образу и подобию систему именно для таких? В виде стандартного набора общеупотребительных ссылок на сайты госорганов, банков и необходимых служб? Ссылок, которые работают в достаточно безопасной среде.
И предоставить нуждающимся такую систему. Предоставить такую среду по принципу as is.
Чтобы всё-таки гарантии были, пригласить квалифицированных и уважаемых в этой области людей для её оценки.
Я, не будучи специалистом в области информационной безопасности, слепил вышеописанное за одну неделю. С поверхностными знаниями этой темы и руководствуясь только здравым смыслом. Начитавшись особо грустных новостей по проблемам взаимодействия за последнее время и находясь за тысячи верст от России. Этот риск также подтолкнул к попытке обезопасить среду на стороне пользователя.
Вопросы ко всем
- В самом ли деле возможно с помощью подобной системы повысить уровень безопасного взаимодействия с уже жизненно необходимыми сайтами? Или это мои фантазии?
- В случае подтверждаемой пользы и жизнеспособности подобного, могут ли найтись квалифицированные энтузиасты для её оценки и улучшения?
P.S.
К размышлениям о возможности (призрачного) защищённого стандарта общения с госорганами. Получил такой комментарий: «Это явно не для меня, мне лень было бы все это делать. Не хватает защиты от man-in-middle. Можно добавить какой-нибудь удаленный vpn».
Действительно, изоляция будет более серъёзной, но понадобятся дополнительные настройки: VPN — разные, и большинство, как я слышал, с оплатой, а российского VPN для работы только с госструктурами (для граждан) нет. Единообразие расплывается. Да и насколько глубоко ведётся логирование в VPN…
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Раз уж была идея с подачей такой возможности новичкам, недостаточно подробно описаны всякие детали настроек. Но как идея и примерный план — сделано интересно. Оценить не берусь, т.к. не очень заморочен рассматриваемой тематикой :))
Есть такая профессия(© к/ф «Офицеры»)… Комментатор. :(
Приветствуются замечания и размышления, несущие полезную нагрузку.
Где Вы увидели, что построение такой системы предназначено для новичков?
Оценивать не берётесь… Тематикой не заморочены…
Тем не менее, спасибо за выраженное Вами мнение — «интересно».
Мне кажется надо чуть больше внимания уделить тому, чтобы заставить браузер работать через https всегда когда это возможно. Вон в логе первая же позиция — sberbank.ru, — насколько я понимаю с ним работа идёт через чистый http. А значит инжекти в трафик всё что угодно, подменяй выдачу dns и отправляй пользователя на фишинговый сайт.
Быть может стоит ещё попытаться прибить гвоздями сертификаты всех разрешённых сайтов. Ну, были какие-то скандалы (наполовину непонятные мне — я не вникал в эту криптографию), что кто угодно может получить сертификат подписанный корневым, вопрос лишь в том что денег надо заслать куда надо. А ежели сертификаты разрешённых сайтов заранее собраны, то их подписанность уже не играет никакой роли: нет сертификата на диске, значит левый сайт какой-то. Правда я ни разу не представляю как это сделать — просто прочистить /etc/ssl/certs, и положить туда только те, которые можно? Не представляю, к чему это приведёт, на самом деле.
За первой позицией лога, куда свалился трафик от захода на главную страницу, на общие изображения и на незащищённые страницы помощи следуют ещё две, относящиеся к sberbank.ru. Но общение с ними уже идёт по https. Именно там проходит аутентификация, а затем защищённая связь онлайн-сбербанк.
Насчёт локального сохранения гарантированно подтверждённых сертификатов…?
Вдогонку приходит мысль о фиксации используемых IP-адресов.
Анекдот из прошлого.
Экскурсовод (Э) по зоопарку проводит группу посетителей (П). Идут мимо клетки льва.
(Э) — Вот, граждане, это животное может зараз съесть 3 кг мяса.
(П) — а 5 — может?
(Э) — может.
(П) — а 10 съесть сможет??
(Э) (задумчиво) — Съесть-то он съест. Тока кто-ж ему даст…?
Ну да ладно.
Значится, пока поводы для раздумий -
1. VPN
2. Сертификаты
3. IP-шники в числовом виде
Представьте себя на месте того, кто хочет увести деньги у пенсионера. Допустим вы создаёте фишинговый сайт сбербанка. А затем просто туда вставляете незащищённую же форму для оплаты коммунальных платежей или перевода денег. Которая выглядит как настоящая, но тоже с вашего же фишингового сайта. Эмм… Или мы боимся что человек обратит внимание на отсутствие https соединения с этой «защищённой» формой? Ну значит мы пойдём и зарегистрируем сертификат, вполне официально — правда при этом в адресной строке будет отображаться не тот адрес, но можно подобрать что-нибудь похожее, чтобы была вероятность беглом взгляде не заметить разницу. sherhank.ru может и не удачный вариант, потому что вероятность маловата, но она уже есть. Человек переходя с главного сайта компании склонен более доверять линкам. И если что-то пойдёт не совсем по привычной схеме, он скорее всего подумает, что так и надо. Ну мало ли, запросил банк данные своей же кредитной карты, никогда не спрашивает, но может решил удостовериться, ради нашей же безопасности…
Если есть возможность ходить через https, то надо ходить через https. У сбербанка есть https версия, значит можно в сквиде прописать редирект с http версии на https. Либо посмотреть аддончики к фф, которые сами будут проверять наличие https версии сайта, и при наличии уходить туда.
Это довольно слабая штука. Если подмена dns возможна, то скорее всего возможен и перехват трафика. Ну, не факт конечно, подмена dns может быть оказалась возможна из-за взломанного роутера с дефолтным паролем или через очередной бэкдор от производителей, а на роутер снифер не поставишь и доступ к iproute/iptables там обрезанный веб-интерфейсом. По идее, как раз SSL призван решать эту проблему, потому что он позволяет проверить аутентичность хоста с которым идёт общение по данному dns адресу. Как минимум это вынудит фишеров смириться с тем, что в адресной строке клиента будет что-то отличное от того, что там появляется обычно. Это, как известно, не всегда помогает клиенту, но по-крайней мере, даст ему дополнительные шансы.
Я про SSL завёл разговор со всеми этими сертификатами к тому, что были нюансы, когда браузер молча принимал левые сертификаты. Сейчас вроде это исправили, все браузеры ругаются и начинают орать о незащищённом соединении, но по-любому стоит ознакомиться со слабыми сторонами SSL и подумать как их можно прикрыть аддонами ли к браузеру, squid’ом ли, ещё как-то… Я просто не копенгаген в этих вопросах, поэтому конкретных и конструктивных предложений у меня нет. Выжимая из себя максимум конструктивности я могу лишь предложить почитать интернет на тему того, что такое SSL, и стать специалистом в этих вопросах лучше чем я. :)
Кстати, пока писал о том, как браузер ругается о незащищённом соединении… Интересно а есть ли возможность сменить текст на страничке с руганью браузера? Мне кажется, что если туда вставить конкретное объяснение того, что может означать данная ситуация — MiTM атака, фишинговый сайт, — то это будет гораздо действеннее, чем абстрактные утверждения о незащищённости. Конечно надо подумать как бы так объяснить «на пальцах» чтобы было понятно, но мне кажется это вполне возможно. Если можно сменить текст, конечно.
Согласен. «Если есть возможность ходить через https, то надо ходить через https.»
И на тот сайт, откуда шлёт известия любезный почтальон Печкин, желательно — тоже. :)
На солидном ресурсе должно быть солидное окружение.
Но в системе используется не возможность, а прямая установка ссылок на формы авторизации, которые уже используют https.
На тот же Сбербанк в изображении Iceweasel можно увидеть ссылку «Сбербанк ОнЛ@айн», которая соответствует выходу на страницу -
https://online.sberbank.ru/CSAFront/index.do
За словами -
«В виде стандартного набора общеупотребительных ссылок на сайты госорганов, банков и необходимых служб»
как раз и стоит фиксация ссылок через безопасное соединение прямиком на страницы авторизации.
И подразумевается то, что человек будет использовать эту защищённую некоторыми ограничениями систему не просто так, погулять по интернету, а с конкретной целью посетить свои личные кабинеты, страницы, на жизненно для него необходимых сайтах.
Установка первая — не использовать добавочное ПО, если можно обойтись стандартными средствами, которые уже присутствуют в системе.
Установка вторая — максимально возможная изоляция от ненужных связей.
Увидев слова — «чтобы заставить браузер работать через https всегда когда это возможно», захотелось протянуть руку и воскликнуть — «Да-да! Я знаю, что это! Этот плагин нужен и важен!»
Потом включился разум. Так нельзя. Пусть каждый решает сам, что ему нужно и важно. Именно в этот момент в жизни.
Времена, люди, отношения меняются. Доверие к продукту и его функциональность тоже может в любой момент измениться. Особенно, если стоит флажок на пункте «Автоматическое обновление». San Francisco…
А слово ты сказал сейчас и оно может запомниться другими надолго.
Насчёт — «сменить текст на страничке с руганью браузера?» — я не в курсе. Да и так уж это надо ли?
Любой уход от стандарта, по-моему, привносит дополнительные риски.
Насчёт совета о SSL — спасибо. Не обессудьте, не последую. Даже и не собираясь оценивать себя, не отягощённого большими и серъёзными знаниями, догадываюсь, улучшить я его не смогу.
Де-факто есть стандартный, проверенный продукт, используемый многими. Посыпется он, рассыпется не только эта система, рассчитанная на него.
Если позволите, я лучше, при необходимости, обращусь к Вам за разъяснениями. :)
А Вы не могли бы написать заметку о «слабых сторонах SSL"? И о возможностях их усиления?