По вашему запросу ничего не найдено :(
Убедитесь, что запрос написан правильно, или посмотрите другие наши статьи:
img
Международная организации ISO представляет свою уникальную разработку под названием OSI, которой необходимо создать базу для разработки сетевых стандартов. Сетевая модель TCP/IP контролирует процесс межсетевого взаимодействия между компьютерными системами. Несмотря на это, модель OSI включает в себя 7 уровней сетевого взаимодействия, а модель TCP/IP - 4. Межсетевой экран Netfilter определяет протоколы Некоторые из них могут быть заданы только косвенно. Протоколы сетевого уровня и межсетевое экранирование Для формирования сквозной транспортной системы необходимо предоставить сетевой уровень (Network Layer). Он определяет маршрут передачи данных, преобразует логические адреса и имена в физические; в модели OSI (Таблица 2.1) данный уровень получает дейтаграммы, определяет маршрут и логическую адресацию, и направляет пакеты в канальный уровень, при этом сетевой уровень прибавляет свой заголовок. Протокол IP (Internet Protocol) Основным протоколом является IP, который имеет две версии: IPv4 и IPv6. Основные характеристики протокола IPv4: Размер адреса узла - 4 байта В заголовке есть поле TTL Нет гарантии при доставке, что будет правильная последовательность Пакетная передача данных. Если превысится максимальный размер для пакета, тогда обеспечивается его фрагментация. Версия состоящее из четырех бит поле, которое содержит в себе номер версии IP протокола (4 или 6). Длина заголовка - состоящее их 4х бит поле, которое определяет размер заголовка пакета. Тип обслуживания поле, которое состоит из 1 байта; на сегодняшний день не используется. Его заменяют на два других: DSCP, которое делит трафик на классы обслуживания, размер его составляет 6 бит. ECN - поле, состоящее из 2 бит, используется в случае, если есть перегрузка при передаче трафика. Смещение фрагмента используется в случае фрагментации пакета, поле которого равно 13 бит. Должно быть кратно 8. "Время жизни" поле, длиной в 1 байт, значение устанавливает создающий IP-пакет узел сети, поле, состоящее из 1 байта Транспорт поле, размером в один байт. Доп. данные заголовка поле, которое имеет произвольную длину в зависимости от содержимого и используется для спец. задач. Данные выравнивания. Данное поле используется для выравнивания заголовка пакета до 4 байт. IP уникальный адрес. Адреса протокола четвёртой версии имеют длину 4 байта, а шестой 16 байт. IP адреса делятся на классы (A, B, C). Рисунок 2.2. Сети, которые получаются в результате взаимодействия данных классов, различаются допустимым количеством возможных адресов сети. Для классов A, B и C адреса распределяются между идентификатором (номером) сети и идентификатором узла сети Протокол ICMP Протокол сетевого уровня ICMP передает транспортную и диагностическую информацию. Даже если атакующий компьютер посылает множество ICMP сообщений, из-за которых система примет его за 1 из машин. Тип поле, которое содержит в себе идентификатор типа ICMP-сообщения. Оно длиною в 1 байт. Код поле, размером в 1 байт. Включает в себя числовой идентификатор, Internet Header + 64 bits of Original Data Datagram включает в себе IP заголовок и 8 байт данных, которые могут быть частью TCP/UDP заголовка или нести информацию об ошибке. Типы ICMP-сообщений, есть во всех версиях ОС Альт, и они подразделяются на две большие категории. Протоколы транспортного уровня и межсетевое экранирование При ПТУ правильная последовательность прихода данных. Основными протоколами этого уровня являются TCP и UDP. Протокол UDP Основные характеристики протокола UDP приведены ниже. Простую структура, в отличие от TCP Сведения придут неповрежденными, потому что проверяется контрольная сумма Нет гарантии надёжной передачи данных и правильного порядка доставки UDP-пакетов Последнее утверждение нельзя рассматривать как отрицательное свойство UDP. Поддержка протокола не контролирует доставку пакетов, значит передача данных быстрее, в отличие от TCP. UDP-пакеты являются пользовательскими дейтаграммами и имеют точный размер заголовка 8 байт. Адрес порта источника - поле, размером 16 бит, с № порта. Адрес порта пункта назначения - поле, размером 16 бит, в котором есть адрес порта назначения. Длина - размером 16 бит. Оно предназначено для хранения всей длины дейтаграммы пользователя и заголовка данных. Контрольная сумма. Данная ячейка обнаруживается всею пользовательскую дейтаграмму. В UDP контрольная сумма состоит из псевдозаголовока, заголовка и данных, поступивших от прикладного уровня. Псевдозаголовок это часть заголовка IP-пакета, в котором дейтаграмма пользователя закодирована в поля, в которых находятся 0. Передающее устройство может вычисляет итоговую сумму за восемь шагов: Появляется псевдозаголовок в дейтаграмме. В поле КС по итогу ставится 0. Нужно посчитать число байтов. Если четное тогда в поле заполнения мы пишем 1 байт (все нули). Конечный результат - вычисление контрольной суммы и его удаление. Складываются все 16-битовых секций и дополняются 1. Дополнение результата. Данное число и есть контрольная сумма Убирается псевдозаголовка и всех дополнений. Передача UDP-сегмента к IP программному обеспечению для инкапсуляции. Приемник вычисляет контрольную сумму в течение 6 шагов: Прописывается псевдозаголовок к пользовательской дейтаграмме UDP. Если надо, то дополняется заполнение. Все биты делятся на 16-битовые секции. Складывается все 16-битовых секций и дополняются 1. Дополнение результата. Когда результат = нулю, убирается псевдозаголовок и дополнения, и получает UDP-дейтаграмму только семь б. Однако, если программа выдает иной рез., пользовательская дейтаграмма удаляется. Чтобы передать данные - инкапсулируется пакет. В хосте пункта назначения биты декодируются и отправляются к звену данных. Последний использует заголовок для проверки данных, заголовок и окончание убираются, если все правильно, а дейтаграмма передается IP. ПО делает свою проверку. Когда будет все правильно, заголовок убирается, и пользовательская дейтаграмма передается с адресами передатчика и приемника. UDP считает контрольную сумму для проверки . Если и в этот раз все верно, тогда опять заголовок убирается, и прикладные данные передаются процессу. Протокол TCP Транспортный адрес заголовка IP-сегмента равен 6 (Таблица 2.2). Протокол TCP совсем другой, в отличие от протокола UDP. UDP добавляет свой собственный адрес к данным, которые являются дейтаграммой, и прибавляет ее IP для передачи. TCP образует виртуальное соединение между хостами, что разрешает передавать и получать данные как поток байтов. Также добавляется заголовок перед передачей пакету СУ. Порт источника и порт приемника поля размером по 16 бит. В нем есть номер порта службы источника. Номер в последовательности поле размером в 32 бита, содержит в себе номер кадра TCP-пакета в последовательности. Номер подтверждения поле длиной в 32 бита, индикатор успешно принятых предыдущих данных. Смещение данных поле длиной в 4 бита (длина заголовка + смещение расположения данных пакета. Биты управления поле длиной 6 бит, содержащее в себе различные флаги управления. Размер окна поле размером 16 бит, содержит в себе размер данных в байтах, их принимает тот, кто отправил данный пакет. Макс.значение размера окна - 40967байт. Контр. сумма поле размером 16 бит, содержит в себе значение всего TCP-сегмента Указатель поле размером 16 бит, которое используется, когда устанавливается флаг URG. Индикатор количества пакетов особой важности. Опции - поле произв. длины, размер которого зависит от данных находящихся в нём. Чтобы повысить пропускную функцию канала, необходим способ "скользящего окна". Необходимы только поля заголовка TCP-сегмента: "Window". Вместе с данным полем можно отправлять максимальное количество байт данных. Классификация межсетевых экранов Межсетевые экраны не позволяют проникнуть несанкционированным путем, даже если будет использоваться незащищенныеместа, которые есть в протоколах ТСР/IP. Нынешние МЭ управляют потоком сетевого трафика между сетями с различными требованиями к безопасности. Есть несколько типов МЭ. Чтобы их сравнить, нужно с точностью указать все уровни модели OSI, которые он может просчитать. МЭ работают на всех уровнях модели OSI. Пакетные фильтры Изначально сделанный тип МЭ и есть пакетный фильтр. ПФ - часть маршрутизаторов, которые могут быть допущены к разным сист.адресам. ПФ читают информацию заголовков пакетов 3-го и 4-го уровней. ПФ применяется в таких разделай сетевой инфраструктуры, как: пограничные маршрутизаторы; ос; персональные МЭ. Пограничные роутеры Главным приоритетом ПФ является скорость. Также пф ограничивать доступ при DoS-атаки. Поэтому данные пф встроены в большинство роутеров. Преимущества пф: Пф доступен для всех, так как остается в целостности ТСР-соединение. Недостатки пакетных фильтров: Пфпропускают данные с высших уровней МЭ имеет доступ не ко всей информации Большинство пф не аутентифицируют пользователя. Для исходящего и входящего трафика происходит фильтрация. МЭ анализирующие состояние сессии Такие МЭ являются пакетными фильтрами, которые считывают сохраняемый пакет 4-го уровня OSI. Плюсы МЭ четвертого уровня: Информацию могут узнать только установленные соединения Пф доступен для всех, остается в целостности ТСР-соединение Прокси-сервер прикладного уровня Если применять МЭ ПУ, тогда нам не потребуется устройство, чтобы выполнить маршрутизацию. Прокси-сервер, анализирующий точный протокол ПУ, называется агентом прокси. Такой МЭ имеют много преимуществ. Плюсы прокси-сервера ПУ: Прокси требует распознавание пользователя МЭ ПУ проанализирует весь сетевой пакет. Прокси ПУ создают детальные логи. Минусы прокси-сервера ПУ: МЭ использует больше времени при работе с пакетами рикладные прокси работают не со всеми сетевыми приложениями и протоколами Выделенные прокси-серверы Эти прокси-серверы считывают трафик определенного прикладного протокола и не анализируют его полностью. Прокси-серверы нужны для сканирования web и e-mail содержимого: отсеивание Java-приложений; отсеивание управлений ActiveX; отсеивание JavaScript; уничтожение вирусов; блокирование команд, определенных для приложений и пользователя, вместе с блокирование нескольких типов содержимого для точных пользователей.
img
Каждое семейство операционных систем производит загрузку по-своему. Это связанно с различной архитектурой ядра операционной системы, разными инструкциями по работе с подключенными устройствами. В данной статье попробую разобрать загрузку популярной операционной системы на ядре Linux Ubuntu. Схематично процесс загрузки можно отобразить следующим образом. Загружаемся Итак, Нажимаем кнопку включения компьютера, и центральный процессор переходит на адрес BIOS. BIOS или UEFI, в более современных компьютерах, проводит систему проверок и выбирает носитель информации с которого будет производится загрузка операционной системы. На носителе находится MBR (Master Boot Record) или GPT (Guid Partition table) на новых компьютерах в которых находится загрузчик. А дальше уже в зависимости от настройки. Загрузчик может самостоятельно загружать операционную систему, а может передавать управление следующему загрузчику. Например, если Windows и Linux установлены на одном компьютере и находятся на разных разделах жесткого диска. В любом случае, если идет речь о Linux у нас есть первая стадия с небольшой частью кода, которая загружает у нас загрузчик. Загрузчик знает где лежит ядро операционной системы, загружает ядро, загружает initial run disk, там находятся необходимые файлы и модули для загрузки ядра. Далее уже ядро берет процесс управления на себя. Происходит инициализация устройств, конфигурирование процессов памяти и так далее. После всех этих процессов ядро запускает процесс init. Вернемся к вопросу загрузчиков, для каждой операционной системы разработан свой загрузчик, а иногда и несколько. NTLDR - Загрузчик операционной системы Windows, LILO - один из стандартных загрузчиков для Linux и BSD системы. GRUB - загрузчик операционной системы от проекта GNU. Нас интересуют последние два. Данные загрузчики работают в два этапа. На первом этапе у них крошечный код на MBR или GPT, который запускает исполнение кода второго этапа. Перейдем непосредственно к самой загрузке. Данное меню мы можем получить при загрузке если зажать клавишу Shift. Как видно на картинке в данном примере загрузчик GRUB версии 2.04. У нас есть несколько вариантов. Загрузка Ubuntu по умолчанию и вариант загрузки с расширенными опциями. В нашем случае расширенные опции не дают многого, а всего лишь позволяют начать загрузку в режиме восстановления recovery mode. Данная опция не является целью стати, и мы ее опустим. Вернемся к первому пункту загрузки. Выбираем, нажимаем "e" получаем следующую картину загрузки. На данной картинке можно увидеть, что корневой раздел монтируется по uuid, он будет корневым root и непосредственно сам id. ID раздела можно посмотреть после загрузки операционной системы командой blkid. Можно часть параметров отредактировать или большинство. Более подробно можно поискать в интернете. По нажатию F10 осуществляется продолжение загрузки операционной системы. После загрузки операционной системы, мы можем с помощью команды dmesg посмотреть, сообщения ядра, все что происходило с ядром. Нужно различать сообщения ядра и лог ядра. Который можно посмотреть cat /var/log/dmesg. Данный файл содержи информацию только о загрузке операционной системы. В данном файле содержится информация с самого начала загрузки операционной системы и до конца. Если событие происходит позднее, то в данном файле этой информации вы не найдете. Система инициализации ОС Есть такое понятие Init - это первый или родительский процесс, который запускает все последующие процессы. Это может быть проверка и монтирование файловых систем запуск служб и.т.д. Существует 3 варианта работы этого родительского процесса. Init в стиле SysV - родительский процесс инициализации системы на одном из заданных уровней запуска (runlevel); Т.е. есть несколько уровней загрузки (runlevel) обычно их 7 штук. Один из них - это обычный многопользовательский режим. Другие это выключение компьютера, перезагрузка, режим восстановления и т.д. Init в стиле systemd - родительский процесс инициализации системы в ускоренном режиме, за счёт параллельного запуска задач; Ускоренный режим достигается за счет использования процессора в частности Intel, который позволяет запускать процессы инициализации параллельно. К этому режиму есть еще куча софта библиотек, которые расширяют функционал. Init в стиле Upstart - родительский процесс инициализации системы на основе отслеживания событий; Данный режим используется на Ubuntu уже давным - давно, тут не только запускаются скрипты инициализации, но и запускаются скрипты отслеживания событий и реагирования на них. Т.е. это более гибкий процесс инициализации, например, если какая-то служба не запустилась или упала в процессе загрузки то, upstart умеет это отследить и запустить это повторно В операционной систему Ubuntu можно посмотреть дерево процессов использую команду pstree. В результате ее вывода мы можем увидеть, что родительским процессом являлся процесс systemd. Который запускал уже свои, какие-то дочерние процессы. Перейдем в корневую директорию boot. Здесь мы можем увидеть директорию загрузчика grub. Ядра линуксовые vmlinuz (ссылка на ядро) и до обновления старое ядро vmlinux.old (ссылка на старое ядро). Соответственно пара initrd* - файлы диска, эти файлы содержат диск, который грузится в оперативную память, данный диск содержит файлы необходимые самому ядру Linux для нормальной загрузки. Перейдя в директорию grub, мы можем найти конфигурационный файл grub.cfg и несколько вспомогательных, но не менее важных фалов. Соответственно мы можем внести изменения в данный файл на постоянной основе и соответственно данный код будет выполнятся при каждой загрузке операционной системы.
img
Мы уже рассказывали об опасности атак на системы IP-телефонии, о том, как можно использовать скомпрометированную систему и кому это может быть выгодно. В данной статье, подробно разберём один из способов атак на системы, работающие по протоколу SIP, через генерацию вредоносного пакета и последующую компрометацию учётной записи. Вы убедитесь, что провести подобную атаку - совсем не сложно. Инструменты для её осуществления не являются какой-то сверхсекретной разработкой и находятся в свободном доступе. Цель данной статьи - показать, к чему может привести недостаточное внимание, уделённое вопросам безопасности при настройке систем IP-телефонии и как просто это могут использовать злоумышленники. Внимание! Информация, представленная в данной статье, носит исключительно ознакомительный характер. Компания Мерион Нетворкс не несёт ответственности за последствия применения техник и способов, описанных в данном материале. Напоминаем, что неправомерный доступ к компьютерной информации преследуется по закону и влечет за собой уголовную ответственность. Атака, о которой мы поговорим, связана с процессом аутентификации по протоколу SIP, а именно - с получением информации из заголовков SIP пакета и её последующая обработка для извлечения учётных данных. Чтобы понять её суть и определить, какие системы уязвимы к данной атаке, нужно вспомнить как происходит SIP аутентификация. Как показано на рисунке: Клиент отправляет запрос регистрации на сервер; Сервер сообщает о необходимости зарегистрироваться и запрашивает данные для аутентификации; Клиент повторно отправляет запрос регистрации, но на этот раз со строкой Authorization, в которой указаны учётные данные; Сервер проверяет учётные данные в локальной базе и если есть совпадения – разрешает регистрацию. В стандартном процессе SIP аутентификации все запросы клиентов и ответы от сервера идут в строгой последовательности. Пользователь просто вводит учётные данные и клиент сам формирует пакеты для отправки на сервер, которые он может обработать. Если учётные данные не верны, то сервер не разрешит регистрацию и дальнейшее взаимодействие для осуществления звонков. Однако, злоумышленник, используя специальные инструменты, может сам решать какие отправлять пакеты и более того - осуществлять их формирование. Наверное, Вы догадались, что ключевым моментом процесса SIP аутентификации является отправка клиентом повторного запроса REGISTER, который также содержит учётные данные для регистрации на сервере. Как раз в этот момент, наш потенциальный злоумышленник и нанесёт свой удар. Давайте рассмотрим, что из себя представляет строка Authorization в повторном запросе REGISTER. Как видно на рисунке, заголовок Authorization включает в себя следующие поля: Authentication Scheme - метод аутентификации; Поскольку SIP многое унаследовал от протокола HTTP, то и схема аутентификации в нём основана на HTTP аутентификации, которая также называется Дайджест (Digest) аутентификация. Эта схема применяется серверами для обработки учётных данных от клиентов. При этом, часть учётных данных передаётся в виде хэш-сумм, которые сервер комбинирует с открытыми данными и вычисляет пароль для данного клиента. Это значительно повышает уровень безопасности, но как мы убедимся в дальнейшем – не помогает при некорректной настройке учётной записи. Username - имя пользователя, заданное на сервере. В нашем случае – это внутренний номер 3354; Realm - параметр, определяющий подключение к серверу телефонии; Как правило, администратор VoIP сервера сам настраивает realm и транслирует его пользователю, который хочет осуществить подключение. Например, у провайдеров облачных услуг это может быть строка вида domain.com, в сервере Asterisk, по-умолчанию значение этой строки - asterisk. Nonce Value - рандомно сгенерированная сервером, уникальная строка, при формировании ответа 401 в сторону клиента. В дальнейшем используется сервером в вычислениях после получения учетных данных от клиента, должна совпадать с тем, что пришло от сервера; Authentication URI - унифицированный идентификатор ресурса. В нашем случае, ресурсом является сервер, расположенный по адресу 123.45.67.89, обращение к нему происходит по протоколу SIP, по порту 5060. Digest Authentication Response - ответ от клиента, посчитанный на основании данных, полученных от сервера. На основании этого значения сервер в том числе сверяет пароль, который задан клиенту. Согласно RFC 2069, который описывает HTTP дайджест аутентификацию, response вычисляется следующим образом: HA1 = MD5(username:realm:password) HA2 = MD5(method:digestURI) response = MD5(HA1:nonce:HA2) Как видите, на основании MD5 хэш-сумм полей: username, realm, password (да, это пароль клиента), method, digestURI и nonce высчитывается тот самый заветный response, от которого зависит регистрация клиента на сервере, а следовательно, и возможность осуществлять им вызовы. Algorithm - алгоритм, по которому высчитывался response Догадываетесь о чём идёт речь? О том, что если злоумышленник заполучит полную строку Authorization, то он может вычислить пароль клиента, зарегистрироваться на сервере и спокойно звонить куда ему вздумается. Пространство для данной атаки достаточно обширное. Дело в том, что клиент может передавать строку авторизации в нескольких запросах – в уже известном нам REGISTER, INVITE или BYE. Атакующему не составит труда притвориться “сервером” и затребовать от клиента аутентификации. Для этого, атакующий направит в сторону клиента, созданный с помощью специальной программы вредоносный SIP пакет с ответом 401 Unauthorized, который будет содержать строку, заставляющую клиента отправить учётные данные. Данная строка должна содержать realm и nonce . Выглядит эта строка следующим образом: Таким образом, атака может выглядеть следующим образом: С точки зрения атакуемого, это будет выглядеть как простой звонок, на другой стороне трубки которого будет тишина. Он даже не будет подозревать о том, что его учётные данные вот-вот утекут к злоумышленнику. Атакующий в нужный момент разорвёт соединение, отправив BYE и затем сформированный вредоносный пакет. Нагляднее всего приводить в пример прямое взаимодействие между клиентами. Такой сценарий становится, когда есть возможность отправлять SIP запросы напрямую до оконечного клиента. Например, когда телефон выставлен в открытую сеть по SIP порту. Помимо этого, уязвимости подвержены сервера, разрешающие прямое взаимодействия между оконечными клиентами. Лучше всего, пропускать все запросы через Proxy-сервер. Итак, данной атаке могут быть подвержены: IP-телефоны с открытыми в интернет SIP-портами; IP-телефоны, отвечающие на запросы INVITE от неизвестных серверов; IP-АТС, разрешающие запросы INVITE напрямую до клиентов.; Заполучив полную строку Authorization атакующий может в оффлайн режиме подобрать пароль к учётной записи. Для этого ему нужно подать на вход специального скрипта, который перебирает хэш-суммы по словарям, перехваченные данные: username, realm, method, digestURI, nonce и наконец - response. На выходе он получит пароль от учётной записи. Если пароль слабый или, ещё хуже, совпадает с username, то время перебора не превысит 1 секунды. Чтобы этого не случилось, даже если злоумышленник перехватит необходимую информацию, используйте стойкие пароли к учётным записям, да и вообще везде, где только можно. В этом Вам может помочь наш генератор паролей.
ВЕСЕННИЕ СКИДКИ
40%
50%
60%
До конца акции: 30 дней 24 : 59 : 59