По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие
наши статьи:
В прошлой статье мы рассказывали о ресурсе HIBP, на котором можно, проверить находится ли ваш email или пароль в базе взломанных учётных данных. В этой статье расскажем о расширении от Google, которое может выполнять такую же проверку автоматически на любом сайте, где вы вводите учётные данные, используя браузер Google Chrome.
Расширение, описанное в данной статье, актуально только для пользователей браузера Google Chrome. Остальным же, мы надеемся, будет просто полезно ознакомиться с возможностями решения.
Похоже, что факт обнаружения баз слитых учёток Collection #1 и последующих более крупных Collection #2-5, не остался без внимания Google. Потому что 5 февраля (в день безопасного Интернета, кстати) они объявили о создании сразу двух расширений, которые призваны сделать процесс работы с вэб-ресурсами и приложениями ещё более безопасным. Про одно из них мы бы хотели рассказать в нашей статье.
Password Checkup
Проверяет учётные данные, которые вы вводите на каждом сайте или в приложении через Google, по базе из свыше 4 миллиардов взломанных логинов и паролей. Если расширение обнаруживает ваши логин и пароль (то есть оба типа данных, которые необходимы для получения доступа к вашему аккаунту) в списке взломанных, то оно генерирует оповещение с предложением сменить скомпрометированные данные. При этом, расширение не будет уведомлять о том, что вы используете слабый пароль или о том, что ваш старый, не актуальный пароль был скомпрометирован.
Google заявляет, что разрабатывал расширение так, чтобы учетные данные, которые вы вводите, никогда не попали не только в злоумышленникам, но и в сам Google, в этом им помогали эксперты в области криптографии Стэндфордского Университа.
Итак, как это работает? Когда вы вводите на каком-либо сайте свой логин и пароль расширение обращается к серверам Google для того, чтобы проверить находятся ли введённые учётные данные в списке скомпрометированных. При этом, в запросе не передаются сами логин и пароль. То есть расширение опрашивает сервер, не передавая туда запрашиваемую информацию. При этом, важно исключить возможность использования расширения злоумышленниками, которые будут брутить сайты и пробовать получить от расширения информацию о скомпрометированных учётках. Для этого в расширении применяется сразу несколько технологий шифрования, многоразовое хэширование вводимой информации, а также технологии Private Set Intersection (PSI) и k-annonimity.
Google имеет в своём распоряжении базу из взломанных учётных данных, содержащих около 4 миллиардов записей. Однако, это не учётные данные в открытом виде, а их захэшированная и зашифрованная копия, ключ от которой известен только Google.
Каждый раз, когда вы вводите свой логин и пароль, расширение Password Checkup будет отправлять на сервера Google захэшированную копию этих данных, ключ от которых будет известен только вам.
В свою очередь на сервере Google эта копия также будет зашифрована специальным ключом. Последнее преобразование происходит локально в самом расширении - полученная копия от Google дешифруется и если результат сходится с тем хэшом скомпрометированных учётных данных, что хранится на сервере Google - то пользователю выводится Алерт с рекомендациями по смене пароля.
Если вы пользуетесь браузером Google Chrome, то рекомендуем установить данное расширение, чтобы обезопасить свои аккаунты от доступа к ним третьих лиц. И никогда, пожалуйста, не используйте одни и те же пароли на разных сайтах.
Предыдущая статья из цикла про популярные приложения TCP/IP тут.
Установление TCP-соединения происходит до того, как любая из других функций TCP сможет начать свою работу. Установление соединения относится к процессу инициализации полей "Sequence" и "Acknowledgment" и согласования используемых номеров портов. На рисунке 5 показан пример процесса установления соединения.
Этот трехсторонний процесс установления соединения (также называемый трехсторонним рукопожатием) должен завершиться до начала передачи данных. Соединение существует между двумя сокетами, хотя в заголовке TCP нет единственного поля сокета. Из трех частей сокета подразумеваются IP-адреса на основе IP-адресов источника и назначения в IP-заголовке. TCP подразумевается, потому что используется заголовок TCP, как указано значением поля протокола в заголовке IP. Следовательно, единственные части сокета, которые необходимо закодировать в заголовке TCP, - это номера портов.
TCP сообщает об установлении соединения, используя 2 бита в полях флагов заголовка TCP. Эти биты, называемые флагами SYN и ACK, имеют особенно интересное значение. SYN означает "синхронизировать порядковые номера", что является одним из необходимых компонентов при инициализации TCP.
На рисунке 6 показано завершение TCP-соединения. Эта четырехсторонняя последовательность завершения проста и использует дополнительный флаг, называемый битом FIN. (FIN - это сокращение от "finished", как вы могли догадаться.) Одно интересное замечание: перед тем, как устройство справа отправит третий сегмент TCP в последовательности, оно уведомляет приложение о том, что соединение прерывается. Затем он ожидает подтверждения от приложения перед отправкой третьего сегмента на рисунке. На случай, если приложению потребуется некоторое время, чтобы ответить, ПК справа отправляет второй поток на рисунке, подтверждая, что другой ПК хочет разорвать соединение. В противном случае ПК слева может повторно отправить первый сегмент.
TCP устанавливает и завершает соединения между конечными точками, а UDP - нет. Многие протоколы работают в рамках одних и тех же концепций, поэтому термины "ориентированный на соединение" и "без установления соединения" используются для обозначения общей идеи каждого из них. Более формально эти термины можно определить следующим образом:
Протокол, ориентированный на соединение: протокол, который требует обмена сообщениями до начала передачи данных или который имеет требуемую предварительно установленную корреляцию между двумя конечными точками.
Протокол без установления соединения: протокол, который не требует обмена сообщениями и не требует предварительно установленной корреляции между двумя конечными точками.
Восстановление после ошибок и надежность
TCP обеспечивает надежную передачу данных, что также называется reliability or error recovery. Для обеспечения надежности TCP нумерует байты данных, используя поля "Sequence" и "Acknowledgment" в заголовке TCP. TCP обеспечивает надежность в обоих направлениях, используя поле Sequence Number одного направления в сочетании с полем Acknowledgment в противоположном направлении.
На рисунке 7 показан пример того, как поля TCP Sequence и Acknowledgment позволяют ПК отправлять 3000 байтов данных на сервер, при этом сервер подтверждает получение данных. Сегменты TCP на рисунке расположены по порядку, сверху вниз. Для простоты все сообщения содержат 1000 байтов данных в части данных сегмента TCP. Первый порядковый номер - красивое круглое число (1000), опять же для простоты. В верхней части рисунка показаны три сегмента, каждый из которых на 1000 больше предыдущего, что указывает на первый из 1000 байтов сообщения. (То есть в этом примере первый сегмент содержит байты 10001999; второй - байты 20002999, а третий - байты 30003999.)
Четвертый сегмент TCP на рисунке - единственный, который возвращается от сервера к веб-браузеру - подтверждает получение всех трех сегментов. Как? Значение подтверждения 4000 означает: "Я получил все данные с порядковыми номерами на единицу меньше 4000, поэтому я готов принять ваш байт 4000 следующим". (Обратите внимание, что это соглашение о подтверждении путем перечисления следующего ожидаемого байта, а не номера последнего полученного байта, называется прямым подтверждением.)
Однако этот пример не исправляет никаких ошибок; он просто показывает основы того, как хост-отправитель использует поле порядкового номера для идентификации данных, а хост-получатель использует прямые подтверждения для подтверждения данных. Более интересное обсуждение вращается вокруг того, как использовать эти же инструменты для восстановления ошибок. TCP использует поля "Sequence" и "Acknowledgment", чтобы принимающий хост мог заметить потерю данных, попросить отправляющий хост повторно отправить, а затем подтвердить, что повторно отправленные данные прибыли.
Существует множество вариантов того, как TCP выполняет исправление ошибок. На рисунке 8 показан только один такой пример, детализация которого аналогична предыдущему. Веб-браузер снова отправляет три сегмента TCP, снова по 1000 байт каждый, снова с легко запоминающимися порядковыми номерами. Однако в этом примере второй сегмент TCP не может пройти через сеть.
Рисунок указывает на три набора идей, лежащих в основе того, как думают два хозяина. Во-первых, справа сервер понимает, что он не получил все данные. Два полученных сегмента TCP содержат байты с номерами 10001999 и 30003999. Очевидно, сервер не получил байты, пронумерованные между ними. Затем сервер решает подтвердить все данные вплоть до потерянных, то есть отправить обратно сегмент с полем подтверждения, равным 2000.
Получение подтверждения, которое не подтверждает все данные, отправленные на данный момент, заставляет хост-отправитель повторно отправить данные. ПК слева может подождать несколько секунд, чтобы убедиться, что другие подтверждения не поступят (используя таймер, называемый таймером повторной передачи), но вскоре решит, что сервер сообщает: "Мне действительно нужно 2000 - отправьте его повторно". ПК слева делает это, как показано на пятом из шести сегментов TCP на рисунке.
Наконец, обратите внимание, что сервер может подтверждать не только повторно отправленные данные, но и любые предыдущие данные, которые были получены правильно. В этом случае сервер получил повторно отправленный второй сегмент TCP (данные с порядковыми номерами 20002999), и сервер уже получил третий сегмент TCP (данные с номерами 30003999). Следующее поле подтверждения сервера подтверждает данные в обоих этих сегментах с полем подтверждения, равным 4000.
Управление потоком с использованием окон
TCP реализует управление потоком, используя концепцию окна, которая применяется к количеству данных, которые могут быть ожидающими подтверждения в любой момент времени. Концепция окна позволяет принимающему хосту сообщать отправителю, сколько данных он может получить прямо сейчас, давая принимающему хосту способ замедлить или ускорить отправляющий хост. Получатель может перемещать размер окна вверх и вниз (это называется скользящим окном или динамическим окном), чтобы изменить объем данных, который может отправить хост-отправитель.
Механизм раздвижного окна имеет больше смысла на примере. В примере, показанном на рисунке 9, используются те же основные правила, что и в примерах на нескольких предыдущих рисунках. В этом случае ни один из сегментов TCP не содержит ошибок, и обсуждение начинается на один сегмент TCP раньше, чем на предыдущих двух рисунках.
Начнем с первого сегмента, отправленного сервером на ПК. Поле Acknowledgment должно быть вам знакомо: оно сообщает ПК, что сервер ожидает следующий сегмент с порядковым номером 1000. Новое поле, поле окна, установлено на 3000. Поскольку сегмент передается на ПК, это значение сообщает ПК, что ПК может послать не более 3000 байтов по этому соединению до получения подтверждения. Итак, как показано слева, ПК понимает, что может отправлять только 3000 байтов, и прекращает отправку, ожидая подтверждения, после отправки трех 1000-байтовых сегментов TCP.
Продолжая пример, сервер не только подтверждает получение данных (без потерь), но и решает немного увеличить размер окна. Обратите внимание, что второе сообщение, идущее справа налево на рисунке, на этот раз с окном 4000. Как только ПК получает этот сегмент TCP, ПК понимает, что он может отправить еще 4000 байтов (окно немного больше, чем предыдущее значение).
Обратите внимание, что хотя на последних нескольких рисунках показаны примеры с целью объяснения того, как работают механизмы, из этих примеров может сложиться впечатление, что TCP заставляет хосты сидеть и долго ждать подтверждения. TCP не хочет заставлять хост-отправитель ждать отправки данных. Например, если подтверждение получено до того, как окно будет исчерпано, начинается новое окно, и отправитель продолжает отправлять данные до тех пор, пока текущее окно не будет исчерпано. Часто в сети, где мало проблем, мало потерянных сегментов и небольшая перегрузка, окна TCP остаются относительно большими, а узлы редко ждут отправки.
Закрепим самое важное про TCP и UDP в следующей статье.
В последние несколько лет всё чаще появляется информация об очередных хакерских атаках, направленных на сетевое оборудование различных производителей. И если оборудование класса Enterprise, такое как Cisco, Juniper, Extreme, HP и так далее, обычно обслуживается армией высококвалифицированных специалистов, которые постоянно проводят обновления и закрывают “дыры”, то с оборудованием класса SOHO (MikroTik, Netgear, TP-Link, Lynksys) дела, зачастую, обстоят совсем иначе. А ведь недостаточное внимание, уделяемое сетевому оборудованию, может нанести вред любому бизнесу.
В данной статье мы хотим рассказать о ещё одном крайне действенном способе защиты оборудования MikroTik, которое не потребует о вас больших усилий в настройке и будет само автоматически обновлять свою конфигурацию без вашего вмешательства.
Предыстория
В конце марта 2018 года появилась информация о хакерской активности, которая как раз направлена на SOHO сегмент. В частности – на роутеры MikroTik под управлением RouterOS ниже версии v6.38.5. Суть заключалась в том, что некий хакерский ботнет сканировал множество публичных IP-адресов на предмет открытых портов 80 (www) и 8291 (WinBox), чтобы по ответам оборудования определить, что это RouterOS, а также выяснить его версию. Тогда производитель заявил, что уязвимость реализации протокола www (80), которую можно было бы использовать, была закрыта ещё в марте 2017 версией v6.38.5 и рекомендовал всем обновиться, а также отключить небезопасный сервис www. Нужно отметить, что ботнет только собирал информацию, никаких атак не предпринималось.
Внимание! Если на вашем роутере MikroTik установлена версия прошивки ниже v6.38.5, мы рекомендуем незамедлительно произвести обновление до последней актуальной версии. Как это сделать, вы можете почитать в нашей статье. Также, рекомендуем закрыть сервис www и настроить доступ к WinBox только с доверенных IP-адресов более подробно о том как это сделать читайте здесь.
А совсем недавно на сайте подразделения Cisco, которое занимается кибербезопасностью - Talos, появилась информация о вредоносном программном обеспечении, которое использует ту самую уязвимость. Оно получило название VPNFilter, хоть и не имеет ничего общего с VPN туннелями. Вероятно потому, что после заражения оно создаёт директории /var/run/vpnfilterw и /var/run/vpnfilterm для дальнейшей работы.
По самым поверхностным оценкам, вредонос способен красть пользовательские данные и данные вэб-приложений, устанавливать без ведома пользователя модули, которые взаимодействуют с серверами в сети Tor, а также полностью выводить оборудования из строя посредством изменения критически важных файлов прошивки. До конца вредонос ещё не изучен и актуальные данные по нему всё ещё поступают. Пока известно о том, что уязвимости подвержено всего 3 модели оборудования MikroTik -1016, 1036 и 1072, но защитить другие модели будет не лишним.
Настройка
Итак, перейдём собственно к тому самому универсальному методу защиты, о котором мы упомянули вначале. Данный метод основан на простом блокировании заведомо вредоносных IP-адресов, которые были замечены в подозрительной активности (сканнирование, брутфорс, неудачные попытки доступа к различным сервисам) но только не вручную, а в автоматическом режиме. Существует много открытых ресурсов, которые собирают информацию о таких “чёрных” IP-адресах и генерируют актуальные списки, которые мы можем просто загружать на наш роутер с помощью нехитрого скрипта.
К таким ресурсам относятся:
Blocklist.DE - бесплатный открытый ресурс, созданный специалистами, чьи сервера часто подвергаются различного рода атакам, таким как атаки ssh, почтовых и файловых сервисов, вэб-серверов и другое. IP-адреса атакующих заносятся в список и выкладываются в общий доступ;
dshield.org - генерирует списки из топ-20 подсетей, из которых за последние 3-е суток совершалось наибольшее число атак;
Spamhaus - генерирует списки IP-адресов, замеченных в “спаммерской” активности, а также “угнанных” устройств, с помощью которых также осуществляется вредоносная деятельность;
Итак, чтобы нам заблокировать адреса из этих списков, нужно сначала создать блокирующее правило на нашем роутере. Для этого подключаемся к нашему MikroTik и даём в консоль следующие команды:
ip firewall raw add chain=prerouting src-address-list="sbl dshield" action=drop comment="sbl dshield"
ip firewall raw add chain=prerouting src-address-list="sbl spamhaus" action=drop comment="sbl spamhaus"
ip firewall raw add chain=prerouting src-address-list="sbl blocklist.de" action=drop comment="sbl blocklist.de"
Тем самым, мы создали 3 правила, которые будут блокировать подключения к нашему роутеру из списков каждого ресурса соответственно – dshield, spamhaus и blocklist.de.
Теперь нужно настроить автоматический загрузчик, который будет обращаться на данные ресурсы за актуальными списками и загружать их в конфигурацию роутера. Для этого через WinBox откроем вкладку System → Sheduler → +
И создадим задачу на проверку обновления списков вредоносных ресурсов начиная с полуночи следующего числа каждые 12 часов. Обращение будет происходить посредством простого http запроса к ресурсу www.squidblacklist.org/downloads/drop.malicious.rsc. Для этого в поле On Event напишем простой скрипт:
/tool fetch address=www.squidblacklist.org host=www.squidblacklist.org mode=http src-path=/downloads/drop.malicious.rsc
Мы будем обращаться к ресурсу www.squidblacklist.org, потому что его специалисты любезно скомпоновали списки с dshield, spamhaus и blocklist.de в одном месте и нам не придётся писать скрипт обращения для каждого ресурса.
Должно получиться как то так:
Теперь создадим ещё одну задачу на импорт списка в конфигурацию роутера, спустя минуту после того, как отработает проверка актуальности списков из первой задачи. На этот раз в поле On Event напишем:
:log warning "Disabling system Logging";
import drop.malicious.rsc
/system logging enable 0
Теперь наш роутер будет автоматически запрашивать актуальные списки вредоносных IP-адресов и добавлять их в блок. Вы так же можете использовать другие открытые ресурсы, на которых публикуются списки опасных IP-адресов.