Сетевая безопасность
Содержание
Понятие сетевой безопасности
К сожалению, суровая правда жизни заключается в том, что изначально сеть интернет не создавалась с большим учетом безопасности. Поэтому никогда нельзя забывать о сетевой угрозе.
Сама по себе сетевая безопасность включает в себя 3 основных аспекта:
- Как взломщики могут атаковать компьютерные сети
- Как можно защитить компьютерные сети от атак
- Как разработать архитектуру сети, чтобы она была устойчива к атакам
Вредоносное ПО
Злоумышленник может передать вредоносное ПО на компьютер по сети интернет с помощью вируса, червя или Троянского коня. После этого у злоумышленника есть несколько возможностей использования зараженного компьютера, в основном следующие:
- Шпионское ПО может записывать все нажатые клавиши на клавиатуре, посещенные веб-сайты и передавать их злоумышленнику, например, с целью хищения паролей
- Зараженный компьютер может использоваться ботнетом для спам или DDoS-атак
- Часто вредоносное ПО реплицируется и передается с зараженного компьютера дальше еще не зараженным
Троянский конь
Представляет собой инструкции, спрятанные внутри обычной программы, которые выполняют вредоносный код в интересах создателя. По сути это означает, что Троянский конь маскируется под программы, необходимые пользователю, и исполняет вредоносный код во время работы программы.
Вирус
Представляет собой набор инструкций, который во время исполнения вставляет свои копии в другие программы. Например, код в электронных сообщениях, который во время исполнения отсылает сам себя другим пользователям по электронной почте.
Червь
По сути очень похож на вирус, но отличается тем, что вместо репликации в других программах в пределах компьютера, червь распространяется по другим машинам в сети.
Логическая бомба
Представляет собой набор инструкций, который исполняется при определенных условиях в будущем, например, по наступлению какого-то определенного времени.
Зомби
Зомби по сути есть компьютер, на который установлен набор вредоносных инструкций, готовый исполниться и атаковать другой компьютер по сигналу от создателя. Обеспечивает лучшую анонимность злоумышленника, чем прямая атака. Часто такой набор инструкций устанавливается на большое число компьютеров, делая их зомби, а потом все они атакуют какой-то определенный компьютер.
Типы сетевых атак
Нормальный поток данных
Нормальный поток данных выглядит идейно следующим образом:
Прерывание потока данных
По сути это атака на доступность какого-либо ресурса (DDoS (Distributed Denial of Service) атаки). Выглядит примерно так:
Перехват данных
Эта атака происходит с целью похищения каких-либо конфиденциальных данных, при этом не меняя их. Изобразить можно следующим образом:
Модификация потока данных
Это атака на целостность данных. В данном случае трафик на середине пути перехватывается и злоумышленник подменяет его на другой, который пойдет в итоге получателю. То есть изобразить такую передачу данных можно следующим образом:
Фабрикация данных
Данная атака производится на целостность данных, то есть трафик маскируется под настоящий, заставляя получателя думать, что он подлинный. В итоге получатель передает свои данные злоумышленнику. Выглядит это так:
Подходы сетевой безопасности
Криптография
Допустим, что Алиса и Боб общаются между собой, а кто-то другой имеет возможность перехватить, удалить или добавить любое сообщение. Алиса и Боб хотят общаться безопасно, чтобы никто не мог им помешать. Тут на помощь им приходят алгоритмы криптографии.
В данном случае нам нужны такие ключи
и , что , где - исходное сообщение, а - зашифрованное сообщение. Самое простое решение - использовать в качестве ключа некоторую другую перестановку алфавита, то есть словарь соответствия каждой букве какой-то другой. Минус такого подхода заключается в том, что очень быстро простым перебором можно подобрать ключ. Что же можно сделать? Разберемся, на чем основана криптография. Идея заключается в том, что алгоритм шифрования известен всем, а вот ключи являются секретными. Существует 2 основных типа криптографии: по симметричному ключу и по публичному ключу.Шифрование по симметричному ключу
Оба собеседника используют один и тот же симметричный ключ. По факту у обоих есть ключ
такой, что , где - передаваемое сообщение, а - зашифрованное сообщение.Есть 2 типа симметричного ключа:
- Потоковый шифр - симметричный шифр, в котором каждый символ сообщения преобразуется в символ зашифрованного текста в зависимости от используемого ключа и его расположения в сообщении. Одним из самых популярных шифров данного типа является RC4. Он широко используется в алгоритмах обеспечения безопасности беспроводных сетей WEP и WPA, а также может использоваться в протоколах SSL и TLS. Этот шифр строится на основе генератора псевдослучайных битов. На вход генератора записывается ключ, а на выходе читаются псевдослучайные биты. Длина ключа может составлять от 40 до 2048 бит. Генерируемые биты при этом имеют равномерное распределение. Основными преимуществами RC4 являются высокая скорость работы и переменный размер ключа. При этом он довольно уязвим, если используются не случайные или связанные ключи или один ключевой поток используется дважды.
- Блочный шифр - симметричный шифр, оперирующий группами бит фиксированной длины - блоками, характерный размер которых меняется в пределах 64-256 бит. Если исходный текст (или его остаток) меньше размера блока, перед шифрованием его дополняют. Фактически, блочный шифр представляет собой подстановку на алфавите блоков, которая, как следствие, может быть моно- или полиалфавитной. Главным достоинством блочных шифров является сходство алгоритмов шифрования и расшифрования, которые почти всегда отличаются лишь порядком действий. Блочный шифр сам по себе состоит из двух алгоритмов: шифрования и расшифрования. Оба алгоритма можно представить в виде функций. Функция шифрования (англ. encryption - шифрование) на вход получает блок данных (англ. message - сообщение) размером бит и ключ (англ. key - ключ) размером бит и на выходе отдает блок шифротекста (англ. cipher - шифр) размером бит: . Для любого ключа , является биекцией на множестве -битных блоков. Функция расшифрования (англ. decryption - расшифрование) на вход получает шифр , ключ и на выходе отдает : , являясь, при этом, обратной к функции шифрования: , и . Можно заметить, что ключ, необходимый для шифрования и дешифрования, один и тот же - следствие симметричности блочности шифра.
Шифрование по публичному ключу
Данный подход принципиально отличается от шифрования по симметричному ключу. Во-первых, у отправителя и получателя есть своя пара публичного и секретного ключа, при этом секретными ключами они не делятся даже друг с другом. Во-вторых, публичный ключ шифрования известен всем. И, наконец, приватный ключ дешифрования известен только получателю. Вот как это выглядит:
Можно сделать вывод, что должно выполняться 2 требования:
и такие, что , и, зная публичный ключ, человек не должен иметь возможности посчитать приватный. Одним из самых известных алгоритмов является RSA (Rivest-Shamir-Adleman). Это криптографический алгоритм с открытым ключом, который основывается на вычислительной сложности задачи факторизации больших целых чисел. В криптографической системе RSA каждый ключ состоит из пары целых чисел. Каждый участник создает свой открытый и закрытый ключ самостоятельно, при этом эти ключи являются согласованной парой в том смысле, что они являются взаимно обратными, то есть:допустимых пар открытого и закрытого ключей
соответствующие функции шифрования и расшифрования такие, что
сообщений , где - множество допустимых сообщений,
.
RSA-ключи генерируются следующим образом:
- Выбираются два различных простых числа и заданного размера (например, 1024 бита каждое).
- Вычисляется их произведение , которое называется модулем.
- Вычисляется значение функции Эйлера от числа : .
- Выбирается целое число , взаимно простое со значением функции . Обычно в качестве берут простые числа, содержащие небольшое количество единичных бит в двоичной записи, например, простые числа Ферма , или . Число называется открытой экспонентой.
- Выбирается число , мультипликативно обратное к числу по модулю , то есть число, удовлетворяющее сравнению: . Число называется секретной экспонентой.
- Пара публикуется в качестве открытого ключа RSA.
- Пара играет роль закрытого ключа RSA и держится в секрете.
Теперь, чтобы зашифровать сообщение
, нужно посчитать , а чтобы расшифровать - . Однако такая схема не используется на практике по причине того, что она не является практически надежной, так как односторонняя функция является детерминированной. Чтобы избежать такого, используют сеансовый ключ. С помощью RSA шифрования собеседники обмениваются симметричными ключами сессии, и дальше уже общаются с их помощью.IPSec
IPSec - набор протоколов для обеспечения защиты данных, передаваемых по межсетевому протоколу IP, является безопасностью на сетевом уровне. IPSec может шифровать и проводить проверку подлинности IP-пакетов. Поэтому IPSec предоставляет возможность защищать передачу данных в сетях LAN, в открытых и закрытых WAN, а также в сети Интернет.
Межсетевой экран
Определение: |
Межсетевой экран (англ. firewall, нем. brandmauer) - это система аппаратных или программных компонентов, предназначенных для ограничения доступа между сетями, чаще всего между Интернетом и частной сетью. Межсетевой экран является частью системы безопаснсти, направленных на защиту информационных ресурсов организации. |
Цели
- Предоставить людям из организации доступ к интернету так, чтобы лишние люди не могли получить доступ к внутренней информации компании.
- Воздвигнуть барьер между ненадежным программным обеспечением, общественными веб-серверами Вашей организации и конфиденциальной информацией, которая находится во внутренней сети.
Основные идеи
- Поместить специальное утройство-шлюз между внешним миром и внутренней сетью организации.
- Все сигналы должны сначала идти к шлюзу, где заранее определено, допустим ли подобный сигнал или нет.
Межсетевые экраны не защищают от атак, которым удалось проникнуть за "стену", от передачи внутренней информации недобросовестными сотрудниками во снешний мир и от передачи во внутреннюю сеть файлов или программ, содержащих вирусы.
Типы межсетевых экранов
Пакетные фильтры
Пакетный фильтр (англ. packet-filter) исходя из ограничений, определяет может или не может данный пакет пройти сквозь "стену". Фильтр основывается на данных,содержащихся в пакетах: источнике, адресе назначения, порте, транспортном протоколе и интерфейсе. Межсетевой экран может иметь разные настройки по умолчанию: либо он пропускает все неотфильтрованные пакеты, либо пропускает только отфильтрованные. Плюсом такого подхода явлется простота и быстрота. Недостатком является низкий уровень защищенности. В коммерческом мире, простые пакетные фильтры становятся все более редкими: все основные межсетевые экраны имеют некоторую степень мониторинга состояния.
Шлюзы сеансового уровня
Шлюз сеансового уровня (англ. stateful packet-filtering firewal) - это пакетный фильтр с таблицей состояний. В самом простом варианте шлюз сеансового уровня поддерживает отслеживание состояния TCP соединения, начиная с "тройного рукопожатия" (SYN, SYN/ACK, ACK), которое происходит на старте каждой TCP транзакции и заканчивая последним пакетом сессии (FIN или RST). Обычно, после того как шлюз сеансового уровня проверил, что данная транзакция разрешена(основываясь на источике/адресе назначения/порте), он фиксирует изначачальное рукопожатие. Если рукопожатие совершилось в разумное время, проверяются все заголовки всех TCP подпакетов для этой транзакции на соответствие с таблицей состояний. IP адрес источника, порт источника, IP адрес назначения, порт назначения и номер сообщения проверяются пока одна из сторон не закроет транзакцию, посылая FIN или RST.
Данный вид межсетегого экрана работает лучше, чем обычная пакетная фильтрация, так как без данных о состоянии соединений межсетевой экран не может знать, является ли данное сообщение частью уже установленной сессии или является первым сообщением сессии. Некоторые простые пакетные фильтры могут считать, что все сообщения с проставленным ACK флагом являются частью установленной сессии, что является потенциальной уязвимостью. Также знание о состоянии соединений защищает внутреннюю сеть от сканирования(например утилитой nmap), так как межсетевой экран сразу же обнаруживает любое несоответствие с данными в таблице и блокирует подозрительный ip адрес.
Посредники прикладного уровня
Посредники прикладного уровня (англ. application-layer proxying). В отличие от предыдущих пакетных фильтров, которые проверяют, но не изменяют пакетов их (кроме некоторых случаев переадресации), данные межсетевые экраны выступают в качестве посредника во всех сеансах передачи данных.
Шлюзы сеансового уровня называют прикладными, так как они используют множество прикладных данных о сервисах, с помощью которых они обеспечивают не только улучшение производительности, но и безопасности, в отличие от обычных прокси(посредников).
Недостатками данного типа межсетевых экранов являются большие затраты времени и ресурсов на анализ каждого пакета. По этой причине они обычно не подходят для приложений реального времени. Другим недостатком является невозможность автоматического подключения поддержки новых сетевых приложений и протоколов, так как для каждого из них необходим свой агент.
Инспекторы состояния.
Инспектор состояния - такой межсетевой экран, который использует технологию проверки состояния (англ. Stateful Inspection). Он представляет собой межсетевой экран, сочетающий фильтрацию трафика с сетевого по прикладной уровень.