суббота, 24 апреля 2010 г.

PKI (Public Key Infrastructure) v1.7

Владислав Спектор

PKI (Public Key Infrastructure) – это система управления сертификатами (certificate management), которая приобретает всё большую популярность. Но что такое сертификаты и зачем нам нужно ими управлять, почему недостаточно просто их иметь?
Сертификаты используются для аутентификации, они являются аналогом паспорта или кредитной карты. У них есть множество применений: для защиты HTTP трафика (SSL/TLS), для защиты электронной почты (Secure MIME, S/MIME), цифровая подпись (digital signature) и многое другое.

Вы уже знаете, что существуют и другие способы аутентификации, например, NTLM или Kerberos. Зачем же нужен еще один способ ? Оказывается, проблема в том, что для NTLM или Kerberos пользователи должны быть заранее известны, т.е. они должны быть членами домена и должна существовать третья удостоверяющая сторона – в данном случае, контроллер домена DC. В Kerberos удостоверяющей стороной является KDC, который обязан располагаться на DC.

В случае с сертификатами также существует третья удостоверяющая сторона, которая называется CA (certificate authority, центр сертификации). Но она не привязана в обязательном порядке к членству в домене (или реалму Kerberos), хотя это и не исключено. Удостоверяющей стороной обычно является международная организация (например, Verisign или Thawte), которая, в отличие от домена, пользуется доверием в мировых масштабах. Поэтому даже частный пользователь, желающий совершить покупку в интернете, может доверять интернет-магазину любой страны, имеющему сертификат, а магазин может быть уверен в том, что пользователь не откажется от покупки под предлогом того, что сделку он не совершал (Nonrepudiation).
Существует, правда, возможность организовать систему сетификации и на уровне домена в пределах организации.
Но в любом случае отдельно взятый сертификат не принесет большой пользы, т.к. должна существовать 3-х сторонняя система доверия: клиент, услуга и удостоверяющая сторона. Такая иерархическая система доверия называется PKI.

Теперь дадим формальное определение PKI.

PKI (Public Key Infrastructure) – это совокупность совместно работающих служб и компонентов, которая применяется для построения безопасного окружения, позволяющего обмениваться сообщениями электронной почты по локальной сети и Интернет, обезопасить WEB- узел и WEB-транзакции, расширить EFS, развернуть поддержку смарт-карт и т.д.. Более конкретно – это способ центрального управления, выпуска, обновления и аннулирования сертификатов, а также способ построения маршрута доверия. При аутентификации PKI использует отношения доверия и нередко дополняет систему DC и KDC. Сертификаты и PKI работают сегодня на основе стандарта X.509 v3.

Инфраструктура PKI позволяет организовать поддержку следующих служб:
Управление ключами (Key Management)
Публикация ключей
Использование ключей


PKI содержит интегрированный набор средств и служб для развертывания и администрирования приложений открытого ключа (Public Key Applications).
Основным элементом инфраструктуры PKI являются службы сертификации (CA – Certification Authorities). CA центры отвечают за выдачу и отзыв сертификатов. Microsoft CA часто интегрированы в службу Active Directory. PKI не заменяет системы DC и KDC, напротив, они работают совместно. Поддержка приложений Public Key возможна благодаря интерфейсу MS CryptoAPI.
Над службами криптографии находится набор служб управления сертификатами. Они поддерживают сертификаты X.509, обеспечивая хранение ключей и поддержку декодирования.

Сертификаты являются основой PKI.
Вот некоторые наиболее часто встречающиеся сценарии использования сертификатов и, соответственно, PKI:

- EFS - Шифрование диска и файлов, сертификаты используются для защиты симметричного крипто ключа (symmetric crypto key)
- Многофакторная аутентификация (Multifactor authentication) с помощью смарт карт - IPSec
- Digital signature (Цифровая подпись)
- Аутентификация RADIUS и 802.1x
- Wireless networks (Беспроводные сети)
- NAP (Network Access Control) и NAQ (Network Access Quarantine) соответственно для подписи кода и драйверов
- SSL/TLS для защиты HTTP трафика


Понятия PKI основываются на понятиях криптографии, поэтому поговорим о ней и об элементах, ее составляющих.

Понятия криптографии:
Encryption, Ciphering
- шифрование, криптография.
Plain text – открытый, незашифрованный текст
Cipher text - зашифрованный текст
Private Key Encryption = Symmetric Key Encryption = Classic Encryption.
Public Key Encryption = Asymmetric Key Encryption – шифрование, основанное на паре ключей Public/Private (публичный/секретный, открытый/закрытый).
Hashing function - функция хэширования.
Session Key (сеансовый ключ) – симметричный ключ.
Key Certificate (Digital Certificate, Цифровой Сертификат) – контейнер для Public Key.
Digital Signature - цифровая подпись
Private Key=Symmetric Кey=Single Кey=Shared-Кey=Оne Кey (секретные/личные/закрытые/общие ключи)

А теперь попробуем расшифровать приведенные понятия шифрования.

Шифрование (Encryption) существует тысячи лет. Вначале алгоритм и был ключом. Затем алгоритм и ключ разделились - стало возможным знать алгоритм, но не уметь расшифровать сообщение, т.к. не был известен ключ. Наконец в 70-е годы 20-го века был придуман способ, который решал главную проблему последнего времени – передачу ключа шифрования по сети. Удалось найти способ, при котором ключ по сети просто никогда не передавался. Такие алгоритмы назвали асимметричными.
Примером асимметричных алгоритмов может служить Алгоритм Диффи — Хеллмана (англ. Diffie-Hellman, DH) асимметричный алгоритм, позволяющий двум сторонам получить общий секретный ключ, используя незащищенный от прослушивания, но защищённый от подмены, канал связи. Этот ключ может быть использован для шифрования дальнейшего обмена с помощью алгоритма симметричного шифрования, который намного быстрее и эффективнее для обработки больших объемов данных.

Симметричные и асимметричные криптографические алгоритмы.

- Private Key Encryption (Symmetric Key Encryption, Classic Encryption) – это классическая форма криптографии. В них существует постоянная часть – криптографический алгоритм и переменная часть – криптографический ключ. Не предполагается, что алгоритм шифрования является секретным. Вся безопасность основывается на сохранении в секретности общего ключа. По определению, процесс дешифрования использует тот же ключ, что и шифрование т.е. шифрование обратимо. Отсюда и название - симметричная криптография. Симметричные алгоритмы используют симметричные ключи.Последние могут быть рандомальными (случайными) блоками данных или же создаваться из паролей путем хэширования. Иногда симметричное шифрование называют шифрованием с общим секретом (shared secret). Симметричная криптография отличается алгоритмами или ключами шифрования и дешифрования, которые в данном случае одинаковы.

- Public Key Encryption (Asymmetric Key Encryption) также использует алгоритм и ключ. Разница состоит в использовании отличающихся ключей шифрования и дешифрования. Отсюда название - асимметричная криптография. Шифрующий (публичный/открытый/public) ключ и дешифрующий (секретный/закрытый/private) ключ связаны друг с другом сложной математической зависимостью (функцией) и ни один не может быть вычислен из другого. Поэтому шифрующий (public) ключ не обязан сохраняться в секрете и даже может быть опубликован. Безопасность основывается на сохранении секретного (private) ключа в секретности. Обычно асимметричное шифрование используют для передачи симметричных ключей, при помощи которых и выполняется шифрование и дешифрование массива данных, т.к. асимметричное шифрование намного медленнее, чем симметричное.

- Hashing function (функция хэширования)
это алгоритм односторонней (one-way) трансформации, который превращает данные различной длины в данные фиксированной длины при помощи специального алгоритма. Результат хэширования обычно называют дайджестом (Digest) или просто хэшем.

- Session Key (сеансовый ключ) – симметричный ключ
Алгоритмы асимметричного шифрования в сотни или тысячи раз медленнее симметричных (от 100 до 10,000). Поэтому для массового (bulk) шифрования обычно используются симметричные ключи сеанса, которые зашифровываются только один раз при помощи асимметричного открытого ключа (Public Key) для передачи получателю-адресату. Дальнейшие коммуникации в течении сеанса проходят при помощи быстрых симметричных шифров – ключей сеанса (Session Keys).

Процесс шифрования данных происходит так:

1. Ключ сеанса генерируется заново для каждого соединения при помощи центра распространения ключей (Key Distribution Authority)
2. Ключ сеанса зашифровывается с использованием открытого ключа получателя
3. Данные сообщения зашифровываются с использованием ключа сеанса
4. Данные+ключ отправляются получателю
5. Получатель расшифровывает ключ сеанса с помощью своего секретного ключа
6. Затем получатель расшифровывает данные сообщения, используя ключ сеанса


<РИСУНОК>

- Key Certificates (Digital Certificates, Цифровые Сертификаты)
Сертификат – это дигитальный документ, выданный CA (центром сертификации). Существует политика, которая связывает открытый ключ (Public Key) субъекта с его именем на определенный период времени. Другой субъект, который доверяет этому CA, также верит, что открытый ключ принадлежит названному субъекту.
Сертификат является контейнером для ключа, так же, как паспорт является контейнером для своего номера. Этот ключ или номер и является главным идентифицирующим фактором. Обычно в сертификате содержится открытый ключ (Public Key) или пара ключей. Кроме того, каждый сертификат содержит дополнительную информацию, удостоверяющую (идентифицирующую) клиента и организацию, выдавшую сертификат, дату его создания и цифровые подписи, а также срок действия (аналогично expiration date кредитной карты).

Итак, Открытые Ключи упаковываются в Цифровые Сертификаты. Пример – виза с правом въезда в другую страну. Номер визы – это и есть ключ, упакованный в визу. Вместо отдела паспортного контроля существуют Центры Сертификации CA (Certificate Authorities), выдающие сертификаты.

Для проверки сертификата, выданного центром, используется цифровая подпись. Ее, в свою очередь, можно проверить при помощи открытого ключа Центры Сертификации. Но кто поручится за сам Центр? Для этого используется иерархия сертификации (sertification hierarchy). На верхнем уровне иерархии находится группа корневых центров сертификации CA (Sertificate Authorities).

- Digital Signature (цифровая подпись) – ключ, сгенерированный путем хэширования сообщения и зашифрованный при помощи Private Key. Этот ключ добавляется в конец сообщения в качестве подписи.
Секретный ключ предоставляет возможность аутентификации и обеспечивает целостность данных, но не их конфиденциальность. Данные передаются в открытом формате, а ключ является аналогом подписи.
Цифровая подпись – это 128 или 256-разрядный ключ, который генерируется при обработке сообщения посредством алгоритма хэширования. Сгенерированный ключ дополнительно шифруется закрытым ключом и добавляется в конец сообщения.
Адресат, получив сообщение, обрабатывает его тем же алгоритмом хэширования, что и посылающая сторона, затем дешифрует подпись открытым ключом отправителя и сравнивает полученные числа. Они должны совпадать.

<РИСУНОК>

- Private Keys (секретные/личные/закрытые ключи).
Поскольку шифрование Public Key трудоемкая операция, его обычно используют для распространения ключей среди заинтересованных сторон.

1. Каждая сторона создает половину ключа
2. Стороны шифруют созданные половины с помощью Public Key противоположной стороны
3. Каждая сторона отправляет свою половину ключа другой стороне
4. При получении второй половины стороны проводят дешифрацию с помощью Private Key, после чего каждая сторона будет иметь обе части ключа и, следовательно, получит возможность использовать шифрование симметричным ключом


Метод генерации половины ключа позволяет вдвойне усилить систему безопасности, поскольку, даже при краже секретного ключа злоумышленник получит лишь его половину.
Теперь сделаем некоторое обобщение. Иногда требуется зашифровать текст сообщения, а иногда нужно только подтвердить подлинность посылающего. Иногда нужно и то и другое. Для шифрования секретного собщения используют открытый ключ адресата, а для подтверждения подлинности посылающего используют секретный ключ отправителя. В последнем случае мы имеем дело с цифровой подписью, которая сама по себе секретности не обеспечивает, хотя можно объединить шифрование и подпись и получить все преимущества зашифрованного секретного собщения и подтверждения подлинности одновременно.

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

PKI подразумевает использование пары ключей – открытого (публичного) и закрытого (секретного). Для распространения открытых ключей используются сертификаты X.509 и требуется наличие центров сертификации (CA - Certificate Authority).
Для шифрования сообщения используют открытый ключ адресата. Для подтверждения подлинности посылающего используют его секретный ключ: тогда адресат может расшифровать подпись открытым ключом, полученным от посылающего, и удостовериться в подлинности посылающего. Поскольку асимметричное шифрование снижает быстродействие системы, оно часто применяется только для распространения симметричных ключей, а они уже используются для шифрования реальных данных.

PKI может помочь в нескольких аспектах:
Confidentiality – шифрование передаваемых или хранимых данных при помощи Public Key.
Integrity – дигитальная подпись секретным ключем (Private Key), помогающая определить, модифицировались ли данные при передаче или хранении.
Authenticity – идентификационная информация проходит через хэш алгоритм (например, SHA1), создавая дайджест сообщения (Message Digest). Он, в свою очередь, подписывается Private Key посылающей стороны для доказательства ее подлинности.
Nonrepudiation – апеллируемость или неотказуемость. Дигитальная подпись секретным ключем (Private Key) доказывает подлинность источника данных и тот факт, что данные не изменялись в пути. Это дает возможность юридического доказательства совершенной сделки или других подобных действий.

PKI реализуется в модели клиент-сервер, то есть проверка какой-либо информации, предоставляемой инфраструктурой может происходить только по инициативе клиента.

Основные компоненты PKI:
Удостоверяющий центр (УЦ, CA, Certificate Authority) обеспечивает связь идентичности субъекта криптографии (обычно имя и какая-то дополнительная информация) и его открытого ключа. В очень малых PKI удостоверяющий центр может отсутствовать, в средних и крупных он обязательно присутствует.
Сертификат открытого ключа (чаще всего просто сертификат, certificate) - подписанная удостоверяющим центром структура данных идентичности субъекта криптографии и его открытого ключа. Для подписи сертификата удостоверяющий центр CA выпускает сертификат, который подписывает ключом, указанным в сертификате. Такой сертификат называется самоподписанным (самоизданным).
Регистрационный центр - компонент системы, проверяющий правильность предоставленных субъектом криптографии данных для формирования записи об идентичности. Удостоверяющий центр доверяет регистрационному центру проверку этой информации. Регистрационный центр, проверив правильность информации, подписывает её своим ключом и передаёт удостоверяющему центру, который, проверив ключ регистрационного центра, выписывает сертификат. Один регистрационный центр может работать с несколькими удостоверяющими центрами (т.е. состоять в нескольких PKI), один удостоверяющий центр может работать с несколькими регистрационными центрами.
Репозиторий - хранилище выпущенных УЦ сертификатов. В Законе РФ "Об электронной цифровой подписи" он называется реестр сертификатов ключей подписей.
Архив сертификатов - хранилище всех изданных когда-либо сертификатов (включая сертификаты с закончившимся сроком действия). Архив используется для проверки подлинности электронной подписи, которой заверялись документы.


Итак, PKI позволяет клиентским и серверным аппликациям воспользоваться отношениями доверия при взаимной аутентификации. Затем возможно использование услуг Confidentiality (при помощи шифрования открытым ключом) и Integrity/Authenticity (при помощи цифровой подписи секретным ключом).

Субъекты могут иметь одну или более пар ключей и ассоциированных сертификатов открытых ключей.

Как видно, для доказательства Integrity и Authenticity используется шифрование Private Key, а для сохранения секретности данных – Public Key. Естественно, вся система PKI основана на надежном хранении Private Key, так же как Kerberos основан на надежном хранении паролей. Чем длиннее ключ, тем сложнее процесс расшифровки при том же алгоритме. В системе симметричного шифрования строго не рекомендуется посылать ключ вместе с данными, т.к. это все равно, что посылать сундук с деньгами со вставленным ключом. Если же речь идет о подписи и асимметричном шифровании, то не считается проблемой послать Public Key вместе с подписью, т.к. цель, в данном случае, не сохранить информацию в секретности, а убедиться в подлинности отправителя и в том, что информация не была подвергнута изменениям.

В большинстве реальных применений симметричные и асимметричные алгоритмы комбинируются. Симметричное шифрование используется для преобразования данных (plain text to cipher text), а асимметричное – для обмена симметричными ключами и для цифровой подписи. Таким образом достигаются безопасность и скорость в одно время.

Примеры алгоритмов:
Симметричные алгоритмы : Data Encryption Standard (DES), Rivest’s Cipher v.2 (RC2), Triple DES (3DES), Advanced Encryption Standard (AES).
Асимметричные алгоритмы : Diffie-Hellman Key Agreement, Rivest-Shamir-Adleman (RSA).
Хэширующие алгоритмы : Message Digest 5 (MD5), Secure Hash Algorithm 1 (SHA1)


Приложение I

Основные принципы построения криптосистем с открытым ключом

Начинаем с трудной задачи P. Она должна решаться сложно в смысле теории: не должно быть алгоритма, с помощью которого можно было бы перебрать все варианты решения задачи P за полиномиальное время относительно размера задачи. Более правильно сказать: не должно быть известного полиномиального алгоритма, решающего данную задачу — так как ни для одной задачи ещё пока не доказано, что для неё подходящего алгоритма нет в принципе.
Можно выделить легкую подзадачу P1 из P. Она должна решаться за полиномиальное время, лучше, если за линейное.
«Перетасовываем и взбалтываем» P1, чтобы получить задачу P2, совершенно не похожую на первоначальную. Задача P2, по крайней мере, должна выглядеть как оригинальная труднорешаемая задача P.
P2 открывается с описанием, как она может быть использована в роли ключа зашифрования. Как из P2 получить P1, держится в секрете как секретная лазейка.
Криптосистема организована так, что алгоритмы расшифрования для легального пользователя и криптоаналитика существенно различны. В то время как второй решает P2 задачу, первый использует секретную лазейку и решает P1 задачу.

Применение криптосистем с открытым ключом

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

Преимущества криптосистем с открытым ключом

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

Приложение II


четверг, 22 апреля 2010 г.

Полезные ссылки (линки)

Windows Server 2008, Пошаговые руководства для установки, настройки и использования систем:

http://galushka.com/windows-server-2008-poshagovye-rukovodstva-dlya-ustanovki-nastroiki-i-ispolzovaniya-sistem/

вторник, 20 апреля 2010 г.

План курса 2830 (экзамен 70-298) – Designing Security 2003

Владислав Спектор

Module 1
1. Организация открыта для разных опасностей: внутренних внешних, физических и др. Мы должны предупредить их насколько возможно. Чтобы определить, какими опасностями заниматься, нужно осуществлять Risk Management. Ключевой принцип – стоимость защиты должна быть меньше, чем убытки от опасности.
2. Некоторые принципы защиты:
a. защита по уровням
b. задание минимальных прав
c. создание минимальной площади атаки (attack surface)
3. Нужно создать план системы безопасности и затем выполнять его.
4. План защиты:
a. собрать команду для обдумывания темы безопасности
b. подготовить список угроз организации
c. подготовить Risk Management и оценить вероятность угрозы
d. подготовить план защиты
e. подготовить план, при помощи которого можно выявить взлом
f. регулярно заниматься защитой информации

Module 2
1. Security Policies – правила, установки OS и физическая защита (замки).
2. Почему Security Policies не имеют успеха:
a. их выполнением не отслеживается
b. они не ясны
c. их трудно найти
d. они “не свежие”
e. они не однозначны
f. они слишком жесткие
g. нет поддержки руководства
3. MSF Framework – определяет этапы создания политики безопасности:
a. предвидение (Envision)
b. первоначальное планирование – функциональные требования, Risk Management, первоначальное планирование time table (life cycle) проекта
c. продвинутое планирование – на этом этапе приходят к окончательному варианту с технической стороны и готовят список проверок
d. выполнение проверок и затем создание эмблемы проекта
e. практическое выполнение проекта

Module 3
1. Причины сетевых атак:
a. месть
b. кража секретной информации
c. реклама
d. для удовольствия
e. террор
2. Виды атакующих
a. люди с ограниченными знаниями, которые даже не понимают размеров причиненной ими катастрофы
b. такие, которые стремятся причинить максимальный вред, чтобы похвастаться перед друзьями
c. профессионалы, работающие для заработка или по идейным причинам
3. Этапы атаки:
a. проверка района атаки путем обозрения или задания вопросов
b. проверка дыр в системе безопасности
c. атака путем, которым действуют обычные пользователи
d. атакующий пытается получить повышенные привилегии
4. Виды атак:
a. прослушивание – большая часть информации проходит как Clear text и можно прослушивать ее при помощи сниффера – решением является IPSec
b. Man-in-the-Middle - изменение проходящей информации – решение – IPSec
c. подделка IP адресов и получение доступа к ресурсам
d. подделка паролей или их раскрытие при помощи brute force attack
e. Denial-of-Service (DoS) – вывод системы из строя путем отказа в обслуживании
f. Man-in-the-Middle (MITM) – взломщик располагается “посередине”
g. Pre-Shared Key (PSK) – заранее известный “секрет”
h. Sniffing – “вынюхивание” сетевой информации
i. Application Layer Attack
5. Microsoft Treat Model (Модель угроз) STRIDE
a. Spoofing – подделка адреса источника, подлог
b. Tampering – порча, взламывание замка
c. Repudiation – неотказываемость, неотрицаемость (факта покупки в интернете)
d. Information Disclosure - раскрытие информации (хакер подсматривает пароль)
e. Denial-of-Service (DoS) - вывод системы из строя путем отказа в обслуживании
f. Elevation-of-Privilege – получение повышенных полномочий, например, повышение привилегий до административных

Module 4
1. Необходимое условие успеха проекта безопасности – его поддержка начальством.
2. Только после вирусной атаки организации начинают понимать, что лучше предупреждать проблемы, вместо того, чтобы их решать.
3. Что должен содежать Security Risk Management:
a. идентификация имущества фирмы
b. определение последствий повреждения
c. определение возможностей уменьшения шансов повреждения имущества
4. Реактивный подход (Reactive) сисадмин хочет решить проблему немедленно и без ее расследования.
5. Проактивный подход (Proactive) – попытка предотвратить проблему
6. Оценка рисков (Risk Assestment) – это процесс определения рисков и задание им приоритетов.
7. Количественная оценка стоимости ущерба
8. Качественная оценка ущерба
9. Microsoft Security Risk Management
a. Assestment Risk – нужно идентифицировать опасности и определить степень их критичности для организации
b. Conducting Decision Support – подготовка программы борьбы с опасностями
c. Implementing Control Phase – внедрение соответствующей программы
d. Measuring Program Effectiveness – проверка эффективности программы
10. MOF Risk Management Process
a. Identify Risks – понять опасность и какой вред она причиняет (есть рекомендация написать начальству следующее: если вирус атакует компьютер, обслуживание компьютеров занимает 6 часов и мы, соответственно, теряем 6 часов работы)
b. Analyze Risks – просчитать денежный проигрыш, который является результатом однократного ущерба и умножить на возможное количество раз в году
c. Manage Risks to Assets – способы работы с опасностями:
I. Accept – возможность опасности принимается как данность и ничего не делается, т.к., очевидно, риск не стоит затрачиваемых на него усилий
II. Mitigate – уменьшение опасности путем уменьшения открытости имущества
III. Transfer – перенос ответственности на другого, например, на хеврат битуах
IV. Avoid – полное предотвращение опасности
d. Track Changes to a Risk – разные риски меняются со временем и нуждаются в отслеживании:
I. Real-Time – проверка при помощи программ контроля
II. Periodic – периодическая проверка
III. Ad hoc – совершение переоценки рисков после нанесения вреда
11. Risk Management Controls – правила слежения за Risk Management похожи на правила из предыдущего пункта, например, периодическая переоценка правил работы с рисками

Module 5
1. Этап Envision (предвидения): нужно определиться с объемом проекта, какие физические места необходимо защищать, убедиться, что внедрение защиты производится по уровням.
2. Microsoft Treat Model (Модель угроз) STRIDE:
3. Как защитить здание:
a. охрана
b. идентификационные таги
c. камеры
d. возможность входа только через центральные ворота
4. Wiretapping – подслушивание. борьба: например, стирание с доски после заседания.
5. Защита компьютеров
a. правила удаления компьютеров
b. удаление внешних носителей информации: CD/DVD
c. закрытие доступа к USB
d. закрытие доступа к LAN из лобби
6. Защита ноутбуков и сотовых устройств:
a. воспитание пользователей
b. биометрическая идентификация
c. избегание хранения важной информации
7. Backup:
a. архивирование информации на внешние кассеты
b. создание “холодного” бэкапа
c. создание “горячего” бэкапа

Module 6
1. MSF – нужно назначить из области проекта
2. Виды правил безопасности для OS
a. укрепление рабочих станций
b. укрепление серверов
c. Patch management – инсталляция fixes/patches
d. Antivirus
e. Firewall
3. Microsoft Treat Model (Модель угроз) STRIDE
4. Computer’s Lifecycle
a. во время инсталляции компьютер не должен заразиться вирусом и у админа должен быть пароль
b. назначение безопасность в соответствии с ролью компьютера
c. в течение всего жизненного цикла компьютера нужно обновлять SP и делать апдейты
d. при изъятии компьютера из работы, следить, что бы на нем не оставалась информация
5. Как защитить компьютер во время инсталляции:
a. отдельная сеть
b. установка обновлений
c. создание скриптов, останавливающих ненужные сервисы
d. использование имиджа, содержащего все обновления
e. создание управляемых и централизованных установок RIS
6. Создание шаблона (Template) для защиты компьютеров
7. Планирование установок в зависимости от ролей компьютеров
8. Пути установки обновлений: WSUS, SMS, Windows Update
9. Начиная с Windows XP SP2 на компъютерах есть Firewall
10. Защита изъятия компьютеров из оборота:
a. уничтожение элементов памяти (жестких дисков)
b. изъятие CD/DVD, дискет и др.
c. измельчение документов

Module 7
1. Планирование защиты пользовательских счетов (Accounts):
a. этап Envision (предвидения) – планирование работы с пользователями в соответствии с уровнем их надежности
b. этап Planning – первоначальное техническое планирование, определить, откуда пользователи будут получать права и привилегии:
I. User Rights
II. ACL – Permissions на папки и в-AD
III. Account Scope – пользователи локальные или доменные
IV. Group membership
2. В добавок к модели STRIDE есть еще несколько важных моментов:
a. обычый пользователь должен хранить свои пароли в тайне
b. администратор не должен использовать свои права во зло
3. Планирование защиты сервисов:
a. этап Envision (предвидения) – нужно определить, какие сервисы защищать
b. этап Planning – какие права им давать сервисам
I. Network Service Account – может работать в сети и использует права компьютерного аккаунта, у него нет прав администратора
II. Local Service Account – выполняет только локальные действия
4. Рекомендации по защите сервисов:
a. использование преимущественно Local Service Account
b. остановить ненужные сервисы
c. важно познакомиться со всеми специфическими сервисами, которые бегут на любом компьютере
d. существуют инструменты для управления сервисами
e. рекомендуется не трогать сервисы, которые приходят вместе с OS – у них изначально невысокие права
f. можно отменять сервисы в домене при помощи GPO
5. Защита пользовательских аккаунтов:
a. нужно разделить пользователей по уровню их надежности
b. нужно подготовить точные правила создания и удаления пользователей
c. определение правил для дачи прав и привилегий (rights)
d. нужно создать правила контроля за пользователями
e. нужно создать правила, когда можно использовать административные полномочия
6. Защита сервисов:
a. проверить свойства сервисов, бегущих на всех серверах
b. проверить нужность сервисов, имеющихся по определению, для этого можно исп. Security Configuration Wizard (SCW)
c. отменить разрешения Domain Admin для аккаунтов, используемых в сервисах
d. порядок привилегий:
I. Local Service
II. Network Service
III. Unique User
IV. Local System
V. Local Admin
VI. Domain admin
e. периодическое изменение и назначение сильных паролей
7. Политика паролей назначается при помощи GPO

Module 8
1. Модуль занимается процессом Authentication
2. Планирование Security
a. этап Envision (предвидения) – планирование области
b. планирование желаемого способа идентификации, общего для клиента и сервера
I. LAN Manager -
II. NTLM -
III. NTLM v2 -
IV. Kerberos 5 –
3. При использовании Kerberos нужно брать в расчет:
a. если есть системы UNIX/Linux, создать с ними связь
b. синхронизацию времени между компьютерами
4. Проблемы идентификации:
a. пароль – может проходить как clear test или как hash, но это раскрывается, или жe есть троянский конь, который сидит на компьютере и записывает вводимые пароли
b. соответствие – старые программы используют старые способы идентификации
5. Когда используется LAN Manager, нужно брать в расчет:
a. убрать Password Hashed – можно при помощи Policy или использовать пароли, длиннее, чем 14 знаков, это посылает пароль, зашифрованный при помощи hash
b. можно определить уровень безопасности в LAN Manager
6. Подсоединение пользователей WEB:
a. Anonymous подсоединение – позволяет подсоединяться любому, создает локального пользователя с именем IUSR_
b. Basic Authentication – посылает пароль в виде plain text, поддерживается всеми браузерами, для защиты можно использовать SSL
c. Digest – похож на Basic, но с некоторым шифрованием, обязывает клиента и сервер быть членами Active Sirectory
d. Advanced Digest
e. Integrated – нуждается в IE 4 и выше, обязывает клиента и сервер быть членами домена, позволяет использовать и NTLM и Kerberos
f. Windows Live ID - обязывает клиента быть зарегестрированным в Microsoft
g. Certificate
7. Протоколы VPN:
a. CHAP – старый протокол симметричного шифрования, подвержен взлому
b. MS-CHAPv2 – более продвинутое шифрование
c. EAP-TLS – шифрование при помощи сертификата
8. Использование RADIUS: создает Proxy для просьб подсоединения посредством VPN
9. Аутентификация пользователей в сети Wireless:
a. WEP – использование заранее известного пароля
b. MAC Filtering
c. WPA – более защищен, чем WEP
d. PEAP, TLS

Module 9
1. С точки зрения этапа предвидения, нужно определить, с чем мы хотим работать и чего мы хотим достичь. На этапе планирования нужно распланировать DACL на разные папки.
2. Access Token – после аутентификации, пользователь получает Access Token, который включает SID пользователя и SID всех групп компьютера и домена.
3. DACL включает в себя ACE и определяет, кто может получить доступ к папке.
4. Примеры взломанной информации:
a. украденный Laptop, пароль Admin которого раскрыт
b. пользователь, которому удалось получить доступ к Share и вытащить из него информацию
5. Нужно давать права по заранее назначенной модели, например AGDLP.
6. Нужно обращать внимание, что, когда пользователь создает папку, он становиться Creator Owner этой папки и, поэтому, у него есть полные права на все, что создается под ней.
7. Способы шифрования:
a. EFS
c. Bit-Locker (Vista и выше)
8. Советы по безопасности:
a. Data Storage Location – нужно продумать, какую информацию сохранять местно/локально
b. Backup Strategy - нужно продумать, кто может делать Backup, с какой частотой и как защищать кассеты с информацией
c. Audit – как его выполнять и как наблюдать за полученной информацией
d. Manage Permissions – кто и где управляет разрешениями
e. Hardware Replacement – как выполняется замена деталей
f. Data Retention – сколько времени хранится информация и где хранить архив

Module 10
1. Этап планирования: объем, типы сетей и насколько на них можно положиться.
2. Опасности: spoofing компьютера, изменение информации, посылка спама с троянами, Man-in-the-Middle, причинение падения сети, прослушивание информации, проходящей по сети Wireless.
3. Способы шифрования на аппликативном уровне:
a. SSL
b. SMB – доступ к файлам и принтерам (определяется через GPO)
c. S/MIME
d. X802.1
e. RPC over HTTPS
4. Шифрование на уровне IP при помощи IPSec
5. Защита на уровне Data-Link:
a. Port Authentication – аутентификация каждого устройства на уровне порта, свойство 802.1x
b. замена Хабов Свитчами
c. физическая защита важных мест
d. не давать доступ к LAN из общественных мест
6. Способы работы с VPN, различия между PPTP и L2TP
a. NAT – нельзя работать с L2TP и IPSec за NAT, т.к. нужна замена IP Header
b. User Authentication – поддерживают оба протокола
c. Computer Authentication – поддерживает L2TP
d. поддержка OS - L2TP работает с 2000 и выше

Module 11
1. Модуль говорит о защите сети DMZ и рекомендациях по ее защите
2. Опасности:
a. Внешние – пользователь пытается сканировать порты, открытые внаружу, и атаковать
b. Внутренние – пользователь открывает почтовое сообщение при помощи шпионской программы
3. Когда планируются сеть периметра (Perimeter/DMZ), нужно продумать ее месторасположение, что в ней будет находиться и как она будет защищена
4. Bastion Host – компонент, через который проходят все пользователи, имеющие доступ к Интернет и он фильтрует и защищает проходящую информацию
5. Three Pronged Configuration – внутренняя сеть, DMZ и Интернет соединены при помощи объединяющего компонента
6. Back to Back – сеть DMZ, которая находится между двумя FireWalls
7. Как защищают сеть DMZ:
a. все сервисы, проходящие через DMZ должны быть защищены
b. нужно проверить, какие порты нужны сервисам в направлении внутрь и вовне и открыть только их
c. нужно позаботиться о правильном процессе аутентификации сервисов
d. нужно планировать, как будет производиться регулярное обслуживание сервисов (например обновления)
e. нужно заботиться о мониторинге сервисов
8. Определения на Routers и Firewalls для защиты сети DMZ:
a. Packet filtering
b. Routing
c. Statefull Packet Inspection
d. Application Gateway – программа, знает способ общения программ с обеих сторон
e. Server Publishing (например при помощи ISA)
f. User Authentication
g. Intrusion Detection/ Intrusion Prevention (IDS/IPS) – определение попыток взлома

Module 12
1. Для определения атак и отслеживания пользовательских соединений можно использовать логи.
2. Логи с одной стороны важны, а с другой, нужно вкладывать ресурсы в их отслеживание.
3. Нужно подготовить правила для определения взлома.
4. Планирование Audit:
a. нужно определить, какие события (Events) будут просматриваться
b. каким образом будет происходить просмотр событий
c. должны существовать правила нахождения определенных событий (Events)
d. логи нужно получать только по релевантным событиям
5. Существуют специальные инструменты для эффективного диагностика
6. Подозрительные признаки:
a. необъяснимая нагрузка на сеть
b. пользователи подсоединяются в нестандартное время
c. серверы падают по необъяснимым причинам, логи заполнены, серверы загружены
d. определился вирус или шпионская программа
e. физическое исчезновение деталей
f. важная информация о фирме опубликована в Интернет
7. В ситуации взлома нужно определить следующее:
a. найти симптомы
b. Origin – найти источник атаки
c. Entry Point – откуда вошел взломщик
d. Intent – намерения взломщика
e. Severity – насколько опасен нанесенный ущерб
f. насколько система стала доступна извне
8. Пути уменьшения ущерба:
a. отключить поврежденный участок от сети LAN и Internet
b. поврежденные компьютеры выключить
c. компьютеры с важной информацией отключить и установить на них обновления
d. аппликации – изменение паролей, обновление антивируса
e. физическая защита – замена замков и усиление защиты (автоматчики, нацеленные на компьютеры).

понедельник, 12 апреля 2010 г.

Microsoft Security Concepts

Автор – Владислав Спектор

Эта статья является продуктом авторской компиляциии из нескольких книг и статей + собственный взгляд и понимание.

Содержание

Отличия Аутентификации от Авторизации
Понятия Windows Security
Аутентификация NTLM
Аутентификация и основные понятия Kerberos


Защищенность системы 2003 зависит от админа. Он может сделать ее защищенной на любом уровне в зависимости от своей компетентности (или ее отсутствия ):).
А теперь поговорим об основных понятиях системы защиты Windows линейки NT.
Отличия Аутентификации от Авторизации.

Authentication (Аутентификация, проверка подлинности) – это проверка того, что данное лицо соответствует опознавательным данным, которые оно предъявляет. Это то, что делает охранник, проверяя теудат-зеут и сверяя лицо с фотографией. Лицо здесь соответсвует паролю входа, а фото – паролю, хранимому на сервере.
Существует определение: аутентификация - проверка того, что субъект является тем, за кого он себя выдает. Аутентификация выполняется, в идеале, только однажды во время первого входа (logon) в систему.

Следует отличать аутентификацию от авторизации.

Authorization (Авторизация) – это получение субъектом (аутентифицированным лицом) прав на объекты. Последними могут быть объекты файловой системы, объекты Active Directory и многое другое.
Существует такое формальное определение:
Авторизация - процесс определения правомочности использования клиентом определенной услуги, перечня доступных объектов, а также разрешенных видов доступа.
Таким образом, авторизация выполняется при доступе к каждому объекту, имеющему разрешения доступа. Но для пользователя это обычно прозрачный процесс, не требующий дополнительного вмешательства

Еще в Windows NT был реализован механизм аутентификации NTLM (NT LAN Manager).
В Security Windows 2000/2003 появились новые элементы:
- Протокол Kerberos – новый механизм аутентификации
- PKI (Public Key Infrastructure) – Инфраструктура Открытого Ключа
- Active Directory вместе с GPO
- Протокол IPSec
- EFS – Encrypted File System
- Security Configuration Tool Set

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

Понятия Windows Security
- Integrated Windows Authentication (IWA)
- Secure Logon Process
- Interactive Logon Model – Winlogon, GINA, SSP, SSPI, LSA
- Interactive Logon and Network Authentication
- Security Principals: groups, users, computer accounts and Domains
- Security Descriptor, ACL, DACL, SACL
- ACE
- SID
- Security Access Token
- SSO
- Impersonating

- Integrated Windows Authentication (IWA) – это термин, ассоциированный с продуктами Microsoft и имеющий отношение к Kerberos и NTLM SSP протоколам аутентификации и к функциональности SSPI.

- Secure Logon Process – в NT безопасность доступа к системе усиливается обязательным Logon. Т.е., в отличие от Windows 9x, нельзя зайти даже локально, не выполнив входа с указанием имени и пароля (user credentials). Это является требованием стандарта безопасности C2.

- Interactive Logon Model – состоит из трех главных компонентов:

a) Winlogon.exe – отслеживает Ctrl-Alt-Del, аутентифицирует и логинит интерактивного пользователя, загружает профиль, выполняет Screen Saver.
b) GINA (Graphical Identification aNd Authorization) – создает экран Logon.
c) SSP (Security Support Provider) – network provider DLL, который делает пакеты безопасности доступными дла аппликаций. К таковым относятся NTLM SSP и Kerberos SSP. SSP действует через SSPI (SSP Interface) – API, функционирующий в качестве интерфейса к нескольким разным SSP.

LSA (Local Security Authority) – проверяет все локальные и удаленные (сетевые) Logons, генерирует маркеры безопасности (security access tokens), управляет локальной политикой безопасности (local security policy), включая политику аудита (audit policy) и журналы событий (event logs).

- Interactive Logon and Network Authentication (Интерактивный вход и сетевая идентификация):

Interactive Logon – под ним подразумеваются действия пользователя, вводящего logon credantials (как правило это username и password) для аутентификации на локальном компьютере или в домене с целью доступа к компьютерному окружению Windows. Эти logon credantials соотносятся с секретом, который был установлен пользователем или администратором для локального или доменного аккаунта. Общим секретом (shared secret) м.б. как традиционный пароль так и ключ, хранимый на смарт-карте и защищенный PIN-кодом. Поскольку поддержка интерактивного Logon содержит заменяемые библиотеки (DLL), то общий секрет (за счет замены DLL на другой) может включать более трудную для подделки биометрическую идентификацию, такую как отпечатки пальцев (fingerprints) или сканирование зрачка (retinal scan).
Интерактивный Logon требует три системных компонента: Winlogon.exe, GINA и network provider DLL или SSP (Security Support Provider).

Network Authentication – в схеме SSO (single sign-on) сетевая идентификация зависит от успешного интерактивного входа в домен. Когда аппликация нуждается в использовании сетевого ресурса, она косвенно получает идентификационную информацию. При этом, на основе имеющегося TGT аппликация запрашивает у TGS сеансовый билет (session key), который затем представляется запрашиваемому ресурсу (мы обсудим в разделе о Kerberos). Главное, что для пользователя (при SSO) получение доступа к сетевому ресурсу выглядит прозрачно и не требует никаких действий, несмотря на сложность происходящих при этом процессов.

- Security Principals (subjects, субъекты безопасности): groups, users, services, computer accounts и Domains, которые имеют SIDs для интерактивного входа и сетевой идентификации. Субъекты безопасности могут выполнять действия над объектами: files, folders, printers, registry keys, AD entries и др. Аутентификация входа субъектов безопасности осуществляется обычно контроллером домена (DC). Каждый объект имеет владельца (owner) или хозяина, который назначает привилегии субъектам безопасности.

- Security Descriptor (SD) + ACL, DACL, SACL, ACE, SID.
SD является свойством объекта и определяет атрибуты безопасности объекта. Примеры объектов безопасности включают files, folders, printers, registry keys, AD entries и др. Security Descriptor содержит информацию о владельце (owner) объекта и его главной группе.
В добавок, SD содержит два списка доступа (ACL):
DACL (Discretionary Access Control) – описывает, кто имеет доступ к определенному объекту и тип доступа (permissions) определенных пользователей и групп.
SACL (System Access Control) – определяет такие типы доступа, которые генерируют записи аудита для объекта.
Итак, SD включает DACL и SACL, которые, в свою очередь, содержат ACEs, детализирующие тип доступа к объекту (DACL) или тип требуемого аудита (SACL). Каждый ACE, в свою очередь, содержит SID, определяющий субъект применения привилегий и описание того, что может делать данный субъект с ресурсом.

FlowChart - from Security Descriptor to SID
Security Descriptor (SD)
One DACL One SACL
ACE (or ACEs) ACE (or ACEs)
One SID One SID

Выражаясь количественно, SD состоит из одного DACL и одного SACL.
DACL и SACL состоят из одного или нескольких ACE.
Каждый ACE состоит из одного SID.
Каждый SID представляет одного пользователя, одну группу или компьютер.

Если в DACL отсутствуют ACEs, доступ к объекту запрещается всем, кроме собственника (Owner), который может назначать права на объект, или Админа, который может взять право владения (Ownership). Права доступа (Access Permissions) кумулятивны, т.е. складываются, за ислючением NoAccess (Deny), который проверяется первым по списку и поэтому является определяющим.

- ACEs (Access Control Entries) – это элементы, из которых состоят DACL и SACL.
ACE содержит:
- SIDs субъектов безопасности, которым даны привилегии
- маску доступа (access mask), которая определяет разрешенные права доступа
- набор контрольных битов (set of bit flags), контролирующих наследование и аудит

При попытке доступа пользователя к какому-либо ресурсу, ОС пытается сопоставить SIDs субъекта, содержащиеся в маркере с SIDs в ACL объекта.

Среди основных типов ACE, определяемых специальными флагами, есть такие:
- Access-denied
- Access-allowed
- System-audit

- SID (Secirity IDentifier) – уникально идентифицирует Security Principals: groups, users, computer accounts и Domains.
SID состоит из двух частей – issuing authority и unique identifier.
Существуют well-known SIDs, например группа EveryOne, SID которой одинаков на всех компьютерах в мире. Для примера, если аккаунт, который определяет ваши права на ресурс, это EveryOne (Deny Full Control), то SID = S-1-1-0.
Иногда не понимается разница между группами EveryOne и Authenticated Users. Вот формула: EveryOne = Authenticated Users + Anonymous Users.

- Security Access Token (Маркер Доступа) – контейнер для SIDs и другой информации, создается процессом LSA как часть интерактивного или сетевого процесса Logon. Каждый процесс в системе имеет ассоциированный с ним Access Token, несущий информацию безопасности, которая затем используется для определения прав доступа такого процесса к объекту, имеющему Security Descriptor. Access Token наследуется от субъекта безопасности. Когда пользователь делает Log off, все ассоциированные процессы и маркер доступа уничтожаются. Security Access Token гарантирует, что процессы, идущие от имени пользователя не имеют большего доступа к объекту, чем сам пользователь, что эти процессы производятся в контексте безопасности (security context) этого пользователя.
Обобщая, можно сказать, что, когда пользователь выполняет logon, Windows создает структуру, называемую access token. В нем хранится информация о SID пользователя и SIDs групп, к которым он принадлежит. Этот token применим к каждому процессу, выполняемому пользователем.

- SSO (Single Sign-On) - система однократной регистрации пользователей при помощи единой учётной записи. Как результат, пользователю достаточно помнить лишь один пароль для доступа к различным ресурсам.

- Impersonating (олицетворение, представление) - выдавание себя за кого-либо другого, действия от имени пользователя, компъютера или любого субъекта безопасности.
Аутентификация NTLM.

Теперь, зная основные понятия Windows Security, мы можем поговорить об аутентификации NTLM, которая продолжает существовать при входе со старых систем, а также в новых системах при интерактивном входе в локальную систему, или при входе на серверы NT.
Как мы уже знаем, аутентификация – это процесс распознавания пользователя при входе в систему. Пользователь вводит имя и пароль в экране Logon. Этот экран создается компонентом с красивым женским именем Джина (не Лоллобриджида). Расшифровка слова GINA - Graphical Identification aNd Authorization. GINA существует в виде файла msgina.dll.
После этого система опознает пользователя, пересылая введенные данные в SAM (Security Account Manager или Диспетчер Учетных Записей). SAM сравнивает имя пользователя и зашифрованный пароль с теми, которые хранятся в базе данных пользователей домена или рабочей станции. Если имя и пароль совпадают, сервер уведомляет рабочую станцию о подтверждении доступа. Затем подсистема защиты создает маркер доступа (access token), представляющий пользователя. Маркер хранит SID пользователя и SIDs групп, к которым он принадлежит. Комбинация процесс/маркер (process/token) называется субъектом (subject). Субъекты оперируют над объектами (object), вызывая системные сервисы, которые и осуществляют реальные операции (например, чтения/записи в файл). В момент, когда субъект осуществляет доступ к объекту, содержимое маркера (т.е. SIDs субъекта и его групп) сравнивается с содержимым ACL (который также включает в себя SIDs). В соответствии с ACL определяются права доступа субъекта к объекту. Таким образом, маркер является связующим звеном между субъектом и объектом.
Затем маркер передается процессу Winlogon, который, в свою очередь предписывает подсистеме Win32 создать процесс для пользователя. К этому процессу присоединяется копия того же маркера доступа. После этого подсистема Win32 инициализирует Windows Explorer, который представляет нам Desktop и Окна. Процесс Logon завершился!

В целом, Access Control Model в WinNT 4.0 основывается на Access Token и ACL.

Поскольку в какой-то момент было осознано, что NTLM легко поддается взлому, то в Windows NT 4.0 SP4 появился протокол NTLMv2, который отличается 128-битным шифрованием пароля.

Аутентификация Kerberos.

Идентификация и проверка подлинности пользователей или аутентификация - основное средство защиты информационных систем от постороннего вмешательства.
Протокол Kerberos представляет собой набор методов идентификации и проверки истинности партнеров по обмену информацией (рабочих станций, пользователей или серверов) в открытой (незащищенной) сети.
Как и легендарный трехголовый пес, охраняющий врата в ад, аутентификация Kerberos основана на 3 компонентах-головах: клиент, сервер и удостоверяющая сторона.
Формальное определение гласит, что Kerberos – это протокол безопасной сетевой аутентификации.
В качестве протокола, Kerberos является набором правил взаимодействия клиентов и серверов в сети с целью проверка подлинности. Кроме того он является набором программ, действующих на нескольких компьютерах, связанных сетью. Kerberos основан на симметричной криптосистеме системе с общим секретом (shared secret key) и третьим доверенным лицом (KDC). Причем KDC – центр распределения билетов и главная удостоверяющая сторона – может существовать только на Domain Controllers. Безопасность протокола обеспечивается, в частности, тем, что пароль никогда не передается по сети даже в зашифрованном виде, а также постоянным отслеживанием синхронности системного времени.

Три главных этапа использования клиентом Kerberos:

1. Logon и аутентификация на KDC.
2. Запрос к KDC на обращение к ресурсам.
3. Обращение к серверу ресурсов с целью получения услуг.

Краткое объяснение аутентификации Kerberos (RFC 1510).

1 этап. Клиент совершает Logon (GINA, Winlogon, LSA, SSP и т.д.) и аутентифицируется в домене при помощи KDC (Key Distribution Center), используя его компонент AS (Authentication Server). Заодно клиент получает билет TGT, дающий право обратиться к этому же или к другому серверу KDC.

2 этап. Клиент запрашивает какой-либо сервис в домене, но обращается при этом не к серверу ресурсов (файловый сервер, например), как можно было бы подумать, а все к тому же серверу KDC (возможно это будет другой сервер KDC в другом домене), a говоря точнее, к его компоненту под названием TGS (Ticket Granting Service). При этом клиент предъявляет билет TGT, полученный на предыдущем этапе. Сервер KDC посылает в ответ разрешение на подсоединение к серверу ресурсов. Это разрешение состоит из двух сообщений, одно из которых понятно клиенту, а другое серверу (т.к. они шифруются по разному).

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

Основные понятия Kerberos:

KERBEROS (ЦЕРБЕР) - НЕ ТОЛЬКО МИФОЛОГИЧЕСКИЙ ТРЕХГОЛОВЫЙ ПЕС, ОХРАНЯВШИЙ ПОДЗЕМНОЕ ЦАРСТВО, НО И НАЗВАНИЕ СЕРВИСА ПРОВЕРКИ ПОДЛИННОСТИ ДЛЯ ПРОЕКТА АФИНА (МАССАЧУСЕТСКИЙ ТЕХНОЛОГИЧЕСКИЙ ИНСТИТУТ), ПРОТОКОЛ, ИСПОЛЬЗУЕМЫЙ ЭТИМ СЕРВИСОМ, А ТАКЖЕ ПРОГРАММНАЯ РЕАЛИЗАЦИЯ СЕРВИСА АУТЕНТИФИКАЦИИ.

KDC, KEY DISTRIBUTION CENTER (ЦЕНТР РАСПРЕДЕЛЕНИЯ БИЛЕТОВ) - СЕТЕВОЙ СЕРВИС, ПРЕДОСТАВЛЯЮЩИЙ БИЛЕТЫ И ВРЕМЕННЫЕ СЕАНСОВЫЕ КЛЮЧИ, ИЛИ КОНКРЕТНЫЙ СЕРВЕР, ОКАЗЫВАЮЩИЙ ДАННУЮ УСЛУГУ, ИЛИ ХОСТ - КОМПЬЮТЕР, НА КОТОРОМ ФУНКЦИОНИРУЕТ ЭТОТ СЕРВЕР. KDC ОБСЛУЖИВАЕТ ЗАПРОСЫ И НА НАЧАЛЬНЫЙ БИЛЕТ, А СООТВЕТСТВУЮЩИЙ КОМПОНЕНТ ИНОГДА НАЗЫВАЮТ СЕРВЕРОМ НАЧАЛЬНОЙ АУТЕНТИФИКАЦИИ - AUTHENTICATION SERVER, AS, И НА БИЛЕТЫ К КОНКРЕТНЫМ СЕРВЕРАМ - ЭТОТ КОМПОНЕНТ ИМЕНУЮТ СЕРВЕРОМ ВЫДАЧИ БИЛЕТОВ – TGS.

AS, AUTHENTICATION SERVER - СЕРВЕР НАЧАЛЬНОЙ АУТЕНТИФИКАЦИИ
TGS, TICKET GRANTING SERVICE – СЕРВЕР ВЫДАЧИ БИЛЕТОВ К КОНКРЕТНЫМ СЕРВЕРАМ РЕСУРСОВ

TICKET (БИЛЕТ) - ЗАПИСЬ, ПОМОГАЮЩАЯ КЛИЕНТУ ДОКАЗАТЬ СЕРВЕРУ СВОЮ ПОДЛИННОСТЬ. БИЛЕТ СОДЕРЖИТ СВЕДЕНИЯ О КЛИЕНТЕ, СЕАНСОВЫЙ КЛЮЧ, ВРЕМЕННОЙ ШТАМП И ДРУГУЮ ИНФОРМАЦИЮ. НА БИЛЕТЕ СТАВИТСЯ ПЕЧАТЬ С ПОМОЩЬЮ СЕКРЕТНОГО КЛЮЧА СЕРВЕРА. БИЛЕТ ДЕЙСТВИТЕЛЕН ТОЛЬКО ВМЕСТЕ СО СВЕЖИМ АУТЕНТИФИКАТОРОМ.
TGT, TICKET-GRANTING TICKET (БИЛЕТ НА БИЛЕТЫ) - БИЛЕТ ДЛЯ СЕРВЕРА ВЫДАЧИ БИЛЕТОВ (TICKET-GRANTING SERVER, TGS), ПОЗВОЛЯЮЩИЙ ПОЛУЧАТЬ БИЛЕТЫ К ДРУГИМ СЕРВЕРАМ.

SECRET KEY (СЕКРЕТНЫЙ КЛЮЧ) - КЛЮЧ ШИФРОВАНИЯ, РАЗДЕЛЯЕМЫЙ СУБЪЕКТОМ И KDC И ИСПОЛЬЗУЕМЫЙ ДЛИТЕЛЬНОЕ ВРЕМЯ. В СЛУЧАЕ, КОГДА СУБЪЕКТОМ ЯВЛЯЕТСЯ ПОЛЬЗОВАТЕЛЬ, СЕКРЕТНЫЙ КЛЮЧ ВЫЧИСЛЯЕТСЯ ПО ПАРОЛЮ.

SESSION KEY (СЕАНСОВЫЙ КЛЮЧ) - ВРЕМЕННЫЙ КЛЮЧ ШИФРОВАНИЯ, ИСПОЛЬЗУЕМЫЙ ДВУМЯ СУБЪЕКТАМИ. ВРЕМЯ ЖИЗНИ ТАКОГО КЛЮЧА ОГРАНИЧЕНО ОДНИМ СЕАНСОМ РАБОТЫ В СИСТЕМЕ.

О системе PKI будет рассказано в следующей статье…

Hacking и защита от него

Автор – Владислав Спектор. 31.03.2010 v2.2

Перед тем, как начать изучать защиту от хакеров и шпионских программ, нужно предварительно изучить нападение. Как известно, хороший преступник может стать хорошим полицейским. Но, во всяком случае, полицейский должен знать хотя бы наиболее типичные уловки преступника. Чем мы и займемся. Но сначала замечание : для полного понимания Hacking и защиты от него нужно быть хорошо знакомым с темой сетей (Networking). Во-первых, хакеры хорошо эту тему знают и используют знания в своих целях и мы должны знать ее не намного хуже. Во-вторых, такое важное средство защиты как FireWall представляет из себя специализированный Router и поэтому пользование им требует хорошего знания сетей, в частности IP-адресации.
Для понимания способов атаки мы познакомимся с различными инструментами хакинга. Здесь не стоит цель превратить вас хакеров, но скорее показать, какие методы и средства могут использоваться в целях нападения и убедить вас в том, что ваша сеть недостаточно защищена. Вы должны научится думать не только с позиции обороны, но и с точки зрения нападения.
Изучением мы займемся в соответствии с моделью OSI (или TCP/IP).
На уровне L2 мы познакомимся с атаками, связанными с MAC и Switch.
На уровне L3 мы познакомимся с Routers и с атаками на них, включая IP scanning.
На уровне L3 мы познакомимся с атаками, основанными на TCP.
В конце – атаки на passwords, кража ключей шифрования и использование в аппликациях Bufer Overflow (если доберемся ).
Важно помнить следующее правило: только треть (20%-40%) попыток нападения приходят снаружи. Большая часть производится изнутри организации, т.е. ее работниками. Бывают разочарованные работники или уволенные. Последние наиболее опасны, т.к. они знают систему изнутри. Случаются также проблемы из-за незнания или из-за неосторожности.
Layer 1 – Physical
Медный кабель распространяет вокруг себя электромагнитное излучение (поле индукции). Возможно подсоединиться к кабелю и получить информацию. Оптические кабели не обладают этим недостатком. Сети Wireless особенно легко перехватить, поскольку они специально созданы для того, чтобы излучать радио-волны на относительно большие расстояния. В отличие от медных кабелей это не считается недостатком.
Основные понятия Wireless:
- MAC – физический адрес
- SSID (Service Set IDentifier) – имя сети
- WEP (Wired Equivalent Privacy) – WEBcrack, Airsnort
- WPA (Wi-Fi Protected Access) – создает ключи шифрования с высокой частотой
- AES (Advanced Encryption Standard) – новые NIC поддерживают стандарт 802.11i + AES
Sniffing в сети Wireless:
- Netstumbler – определяет AP (Access Point)
- Wildpacket Airopeek – находит станции в сети
- LANguard scanner for WLAN – сетевой сканнер
Правила защиты от Wireless Hacking:
1. Соблюдайте единый уровень стандартов.
2. Делайте периодический сниффинг, чтобы проверить, нет ли чего необычного.
3. Попытайтесь думать за хакера: выйдите из здания, при помощи Laptop и программы определите свою сеть и проверьте, можете ли вы сами себе навредить.
4. Измените дефолтные установки пароля, имени и SSID у Wireless Switch.
5. Запретите SSID broadcasting (Cain&Abel – wireless sniffer).
6. Нужно установить последние updates и patches.
7. Если SNMP не используется, отмените его.
Layer 2 – Data-Link
Основа Layer 2 – MAC и Switch.
Большая часть атак основана на изменении MAC-адреса с целью маскировки под другой host, а также на проникновении в Switch и изменении его настроек и конфигурации.
Новые беспроводные роутеры и свитчи позволяют любому пользователю подключаться к себе. Можно легко дать определение, каким MAC разрешено подключаться. Однако при помощи программ можно легко изменить MAC адрес хоста. Для этого сначала нужно перехватить фрейм, извлечь из него MAC адрес, затем при помощи программы изменить адрес своего Wireless NIC на MAC соседа (если вы упражняетесь на соседях ) – оп-ля – и вы гуляете по интернету за счет соседа (только не делайте это регулярно)! Обычно роутер приходит со встроенным IP 10.0.0.138, username Admin и с паролем Admin – проверьте!
2-й уровень занимается не кражей информации, а распознаванием информации заголовка.
MAC Spoofing – изменение (подделка) MAC адреса источника. Большинство программ защиты заботятся об адресе destination, а не об адресе source и о том, подлинный ли пользователь обращается к цели. Поэтому, изменив адрес источника, можно притвориться другим пользователем и получить услуги, предназначенные этому пользователю.
ARP cache poisoning – изменение таблицы ARP на другом компьютере, роутере или свитче. В результате, когда кто-то обращается к компьютеру X, он попадает на компьютер Y. Можно изменить собственный IP на чужой и сделать ping на целевой компьютер с измененного IP. Тогда цель подумает, что у известного IP изменился MAC адрес (хотя обычно бывает как-раз наоборот) и изменит таблицу ARP. Теперь, когда целевой компьютер захочет послать информацию на чужой компьютер (которым мы притворились) – эта информация попадет к нам! Ведь главное в LAN – это MAC, а целевой компьютер знает, что чей-то IP привязан к нашему MAC (в его ARP table) и обращается к нам по MAC. Затем можно послать в сеть broadcast. В поле IP source будет записан чужой IP, а в поле MAC source – мой MAC-адрес. Тогда все станции вместо чужого компьютера обратятся ко мне. Но как выяснить чужой IP, если он неизвестен ? Можно через Network Neiborhood. Тогда в таблице ARP появится IP чужого компьютера. Кто-то скажет – но у меня в сети Switches ! Да, но в случае с broadcasts свитч не знает, кто является целью (точнее, целью являются все) и пропустит broadcasts на все порты. Затем можно задействовать ping на все компьтытеры, чтобы они записали в ARP-таблицу новое соотношение IP-MAC. Это можно сделать при помощи скрипта или программы.
Следующий сценарий еще интереснее. Создаем компьютер с двумя IP (лучше с двумя NIC) и делаем из него Router. Делаем ping на Router и получаем его MAC (в таблице ARP). Затем посылаем broadcast в котором находится IP роутера в качестве источника (это spoofing) и наш реальный MAC. Теперь весь трафик в сторону интернета проходит на Router через нас.
(Рисунок)
Очевидно, один из наших NIC будет видеться всем в качестве DG (Default Gateway), а второй NIC будет подсоединен обычным способом к настоящему DG. Фактически, только этот NIC будет знать правду об истинном DG. Такой вид атаки называется Man-in-the-Middle (MITM).
Не забывайте – компьютеры обращаются к Router (наш компьютер в данном случае) с Destination IP конечного компьютера и с MAC-address роутера (DG). IP-адрес остается неизменным на протяжении всего маршрута, а MAC изменяется при переходе от сети к сети. Это важно и нужно это хорошо запомнить!
Такая программа как Cain&Abel позволяет отравлять (poizoning) ARP-cache, т.е. изменять правильные ARP entries на поддельные. ARP spoofing же способен перегрузить Switch, т.к. у последнего на каждом порту есть кэш в 1000-2000 адресов MAC. Если этот кэш переполняется, свитч начинает работать как обычный HUB, а такой режим удобен для хакера, который при помощи sniffer может прослушивать всю сеть без ограничений.
Атаки на Switch
Switches – естественная цель для нападения, т.к. через них подсоединяются все компьютеры, как между собой, так и к интернету. Для выполнения некоторых действий нам нужен manageable (управляемый) Switch. В таком свитче можно управлять каждым портом и объединять их в группы VLANs (logical subnets). Итак, способы атак на свитч:
- Изменение ражима работы Switch на режим HUB. Защита от этого: связать каждый порт с определенным MAC-портом (port security). Поскольку, однако, возможна подделка MAC (MAC spoofing), то этого может быть недостаточно. Тогда нужно использовать DHCP snooping – создание таблицы IP-Port-MAC. В таком случае хакеру будет недостаточно подделать только адрес MAC (или IP). Например, команда CISCO Switch(config)# ip arp inspection vlan 10 не даст осуществить ARP poisoning.

- Если есть физический доступ к свитчу, очень легко привести его в состояние, когда он разрешит вход при помощи кабеля Console в режим администрирования (enable mode в оборудовании Cisco). Вообще – против физического доступа нет защиты.
- Подсоединение станции с установленным сервером DHCP. DHCP snooping не позволит любому компьютеру стать DHCP сервером. Пример команд Cisco:
Switch(config)# ip dhcp snooping (запрет DHCP)
Switch(config)# ip dhcp snooping trust (разрешение DHCP)

- Port-mirroring – port monitoring на определенном порту или копирование информации проходящей через определенный порт на дополнительный порт. Пример команды Cisco:
Switch(config)# port monitoring fa0/9 (с порта fa0/9 трафик копируется на текущий порт).

- Подделка под Trunk. Trunk-порт проводит информацию всех VLANs между свитчами. Хакер получает возможность прослушивания всех портов.
Советы по защите от атак L2, особенно на Switch:
- Между свитчами стоит располагать роутеры или же использовать свитчи 3-го уровня.
- Нужно убедиться, что в свитче нет свободных портов, а если есть – их нужно выключить (выполнить команду shutdown). Тогда никто, имея Laptop/Notebook не сможет подсоединится к свободным портам свитча.
- Следите, нет ли трафика, содержащего Default Gateway IP, но с неправильным MAC. Используйте для этого sniffer. Если есть подозрение в неправильном роутинге, проверьте его при помощи tracert.

Layer 3 – Network
Этот слой относится в основном к адресам IP. Но существуют также ICMP, который используется в команде ping (ICMP echo request) и ARP – протокол для трансляции IP-to-MAC.
Посмотрим как делается IP spoofing – подделка IP-адреса, как изменять пароль у Router и как опасно передавать незащищенную информацию по сети clear text-ом.
После того, как пользователь прошел аутентификацию, хакер может воспользоваться этим и прийти “на готовенькое”. Существует множество программ для сканирования сети и портов: LANguard, Nmap, SuperScan, WebInspect, Wireshark (Ethereal), Nikto, Nessus, Internet Scanner…
Другой способ использования IP – атака DoS (Denial of Service). Эта атака не дает серверу обслуживать пользователей, например при помощи Ping of Death (POD, размер пакета 64 kb). При этом может произойти Buffer overflow, приводящий к system crash. Поскольку этот баг в последние годы ликвидирован, то сегодня для DoS атаки чаще используется ping flooding. Ping flooding затопляет жертву таким количеством ping-трафика, что он не дает нормальному трафику достичь серверной системы. Простой пример, команда :
ping –t –l
При этом посылается бесконечный ping с любым нужным размером пакета.
Можно сделать интересней: при помощи IP spoofing изменить свой адрес на адрес целевого компьютера и послать ping от его имени на третий компьютер. Третий компьютер ответит на ping целевому компьютеру. Можно, вообще, послать ping от имени целевого компьютера на broadcast address сети, тогда все компьютеры ответят жертве, а вы останетесь как бы и ни причем.




Layer 4 – Transport
TCP – connection-oriented протокол, используется в большей части сетевых коммуникаций, сообщениях DNS между собой. Используются подтверждения сообщений SYN/ACK.
UDP – connectionless протокол, применяется в TFTP, обращениях к DNS, streaming audio/video и т.д. Подтверждения сообщений не используются.
SYN-атака
- SYN flooding – обычно в коммуникациях TCP есть вопрос – SYN, ответ – SYN/ACK и возврат – ACK. Но что, если хакер не вернет ACK. В таком случае цель сохранит сессию в буфере. А что, если SYN будут посылаться постоянно и часто. Буфер переполнится и компьютер перестанет давать услуги. Сисадмин может опустить и снова поднять сервис, тогда буфер опустошится. Но это отключит пользователя и даст работу администратору (может последнее и хорошо , но это скорее даст работу другому администратору ).
- Steal SYN Scan – при этом хакер посылает SYN и ожидает ответа SYN/ACK, тогда он посылает RST от имени программы. Это обрывает сессию нежелательным для системы способом. Среди программ:
SolarWinds, который умеет делать Remote TCP Session Reset,
Komodia StealthTCPScanner.
Команда Netstat –N –P показывает TCP connections на уровне Socket (IP:port).
Как можно удаленно получить информацию? Первым делом хакер изучает систему и собирает информацию. Это может продолжаться дни и недели. Какие серверы и сервисы существуют в организации, какие версии Service Pack и т.д. установлены и т.д. Для этого используется сканирование портов. Например, если работает и доступен порт 80, значит существует WEB-server, а значит можно использовать соответствующий Exploit. Чтобы port scan не был раскрыт, хакер будет делать его с разных компьютеров.
Инструменты хакера: Nessus, LANguard, netcat, superscan, Nmap и т.д. Они занимаются определением сервисов.
- Nmap – определяет действующие станции. Nmap –sP –sS – Stealth Port Scan против IDS. Благодаря RST не остаются открытые сессии и IDS не забьет тревогу.
- Superscan – port scan с GUI.
- Nmapwin – стоит с ним проверить работу FW и IDS.
- Get-if, SolarWinds – port 161=SNMP
- Telnet – удаленное управление компьютером на уровне командной строки.
Пример чтения писем:
telnet
open localhost 110
user …..
pass …..
list (список писем)
retr 2 (для чтения второго письма)
После этого копируем информацию в Notepad, сохраняем с расширением HTM и читаем на здоровье !
- Netcat – сбор информации при помощи remote control.
- Nessus, LANguard – осуществляют различные действия
- Sniffers – как известно, могут отслеживать информацию на уровне отдельных фреймов и пакетов.

Layer 5-7 – Application
Password cracking, атаки на серверы, кража информации, Viruses , Spyware, Trojans.
Многие пароли шифруются хэширующимим алгоритмами (hashing algorithm) – шифрование без возможности расшифровки , так называемое one-way шифрование. При этом часто используются алгоритмы DES и MD5.
Программы: LC5 - password cracking, NAT (Netbois Auditing Tool) – cracking через сеть, John the Ripper, pwdumps – локальный cracking.

Программа NAT использует слабости протокола SMB. Пример команды:
Nat –u userlist.txt –p passlist.txt

В windows пароли хранятся в SAM в файле ntds.dit, местоположение которого:
X:\Windows\system32\config\

В сетях доменов Active Directory пароли хранятся в файле ntds.dit, местоположение которого: X:\Windows\NTDS\
Защитнику сетей полезно знать некоторые широко известные порты:
TCP 20/21 FTP
TCP 23 Telnet
TCP 25 SMTP
TCP/UDP 53 DNS
TCP 80 HTTP
TCP 110 POP3
TCP/UDP 135 RPC
TCP/UDP 137-139 NetBIOS over TCP/IP
TCP/UDP 161 SNMP
TCP 443 HTTPs
TCP 3389 RDP (Windows Terminal)

Советы и рекомендации по защите на 7-м уровне OSI
1. Между отделами ставьте роутеры, Позаботьтесь о permissions по отношению к Wireless (скрытый SSID, шифрование WPA, доступ по определенным MAC), запретите модемы – они открывают back doors в организацию.
2. Network Monitoring должен всегда работать. Нужно быть внимательным к необычным действиям:
- Множественные ping
- Множественные SYN или ARP
- Множественные обращения к DNS или WEB
3. Permissions. Кроме программистов не разрешайте никому устанавливать программы. Некоторые сисадмины используют трюк двойного Logon – локальный админ + ограниченный domain user. Однако, если установлена шпионская программа, это все еще опасно.
4. Пользуйтесь sniffer, чтобы обнаруживать port/service scanning, attacks, DoS или любые нелогичные (с вашей точки зрения) действия.
5. Не разрешайте без необходимости работу с Disk-on-Key, FDD, CD/DVD, внешними дисками (USB-HDD, eSATA). CD, например, дает возможность перезагрузки и входа в систему, обнуления пароля администратора, кражи файлов через сеть или на внешие диски, пример: ERD Commander. Начиная с VISTA, защитой может являться система BitLocker. Она предохраняет компьютеры и диски от взлома после кражи и она лучше, чем EFS.
6. Все это имеет смысл при наличии защиты от физического доступа к компьютерам, роутерам, свитчам и др. оборудованию (совет уровня Layer 1).
Способы OS Hacking
- TCP port scanning – Superscan
- UDP scanning – Nmap
Nmap <> -0
- SMB/CIFS – Netbios порты 137-139. Добавочные порт - 445 для SMB over TCP/IP.
- Показ сервисов компьютера: Nbtstat –A , расшифровка такая:
<00> UNIQUE – computer name
<00> GROUP – workgroup name
<03> UNIQUE – user name
- Share scanning - Legion, Superscan, LANguard
- User/Group list – dumpsec
- ERD Commander 2005 – обнуление admin password, делает system restore в winXP, работает на любом железе (SATA, SCSI, RAID, NIC), подсоединяется к сети.
Советы по защите OS и Server Hardening
1. Не давайте доступ к серверам по сети и физически без достаточных оснований.
2. Не используйте ненадежные файловые системы: FAT, FAT32.
3. Важно, что происходит после перезагрузки компьютера вследствие прекращения подачи электроэнергии. Это момент слабости OS.
4. Не устанавливайте на DC аппликации и не только третьих фирм, но и такие, как IIS, Terminal Services и т.д. Закройте ненужные сервисы: Run As, ICS, DHCP client, Telnet..
5. Запирайте экран компьютера при помощи screen saver с паролем или при помощи lock (Winkey + L).
6. Переименуйте аккаунт admin и создайте admin без прав, но с сильным паролем для соблазнения хакера на бесполезный труд.
7. Оставьте аккаунт Guest в состоянии Disabled.
8. Не разрешайте Logon locally
Security Settings – Local Policies – User Rights Assigments – Allow logon locally (make disable)
9. Удалите право “Access this computer from network” из группы Everyone.
10. В серверах 2000/2003 применяйте групповую политику:
Local Security Settings - Security Settings – Local Policies – Security Options,
в окне справа: Additional Restrictions for anonymous connections: “Do not allow enumeration of SAM accounts and shares”.
11. Не устанавливайте ненужные протоколы, например NetBIOS. Если нельзя отменить NetBIOS полностью, перекройте его на Firewall по портам 139, 445.
12. Установка Service:
Аккаунт должен быть не domain user, а local account.
13. Для отслеживания Spyware программ можно воспользоваться встроенным инструментом Windows netstat –an.
14. Устанавливайте последние обновления и Service Packs. OS должна быть “full patched”. Для этого можно использовать MS WSUS.
15. Используйте “Security Configuration Wizard”, который существует, начиная с Server 2003 SP1. Его можно установить при помощи:
Add/Remove Programs – Add/Remove Windows Components.
16. Все это имеет смысл при при наличии сильной системы парольной защиты.


Для хакеров очень полезен сайт http://www.metasploit.com/
Нужно зайти на него, скачать Framework и установить.
Затем в Start-Programs найти Metasploit Framework и запустить MSFWEB.
После этого в IE вписать адрес http://127.0.0.1:55555 - и пользуйтесь !

Существует также сайт, который дает интересную и полезную информацию о других сайтах:
http://www.uptime.netcraft.com/


У Microsoft существует своя модель под названием STRIDE для классификации угроз компьютерной безопасности. Она обеспечивает мнемонику для угроз в шести категориях:
• Spoofing of user identity
• Tampering
• Repudiation
• Information disclosure (privacy breach or Data Leak)
• Denial of Service (D.o.S.)
• Elevation of privilege

Сайты (v.1.6)

Автор Владислав Спектор

Сайт – территориально-географическое деление, создаваемое для управления трафиком репликации данных AD и DFS и для ускорения процесса пользовательских Logon.
Идея сайтов взята из Exchange Server, начиная с версии 4.0 , когда об Active Directory ещё и не думали. Оттуда же взята и идея механизма (engine) базы данных Active Directory. До появления Windows 2000, Exchange Server имел собственную, отдельную от домена (тогда ещё просто домена безо всякой Active Directory) базу данных пользователей почты. В Windows2000/Exchange2000 их DB слились в единую базу данных Active Directory с общим управлением пользователями (не только счета пользователей, но и почтовые ящики теперь создаются из ADUC).
Репликация, как известно, нужна для синхронизации информации Active Directory между разными DC (в предположении, что в домене будет больше, чем один DC). Идея множественности DC имеет множество плюсов и даже маленьким организациям не стоит иметь меньше двух DC.
Active Directory состоит из разделов (partitions) Домена, Схемы , Конфигурации и Приложений (Applications). Существует также Global Catalog, который разделом не считается, хотя информация о нём хранится в Active Directory аналогичным образом.
Синхронизация информации между DC осуществляется отдельно для каждого раздела, включая топологию (DC, которые в ней участвуют и пути репликации между ними). Active Directory использует модель репликации с несколькими хозяевами (Multi-master replication). Модель репликации Active Directory представляет собой модель с нежёстким согласованием, обладающую сходимостью. Нежёсткое согласование – это возможность временного несоответствия информации на разных DC, а сходимость – приход к соответствию, в случае отсутствия изменений в течении некоторого времени. Это очень напоминает поведение протоколов роутинга.
При репликации используется процесс хранения и ретрансляции (store and forward) или последовательная передача изменений каталога по цепочке DC. При данном способе исходный DC не должен самостоятельно копировать изменения на другие DC, а они передаются как эстафетная палочка. Существует правило: внутри сайта должно быть не более 3-х скачков (hops) для передачи изменений, а для этого (попробуйте нарисовать и проверить) в сайте должно существовать не более 7 DC. Если эти условия не соблюдаются, то потребуются дополнительные соединения между DC.
В прежней модели репликации с единственным хозяином (Single-master replication), которая существовала в Windows Server версий 3.1-4.0, единственный в домене DC, умевший производить изменения (он назывался PDC), должен был самостоятельно и без посредников распространять изменения на все DC в домене. Кроме минусов, здесь был и большой плюс с точки зрения структур баз данных: даже теоретически не должна была сложиться ситуация инконсистентности баз данных домена (имеется в виду несогласованность информации разных DC).
Среди определений сайта есть и такое – это собрание подсетей (скорее всего, в пределах локальной сети), связанных высокоскоростными соединениями. Там, где связь медленная, обычно и пролегает граница сайта.
Цель создания сайта – уменьшить нагрузку на низкоскоростные соединения. Нагрузка создаётся репликацией DC и трафиком Logon (особенно в утренние часы).
Репликация внутри сайта
Репликация происходит почти сразу после изменения информации AD. DC выжидает 15 секунд перед началом распределения изменений. После репликации с одним партнером DC ожидает 3 секунды, а затем начинает репликацию с другим партнером. Процесс репликации инициируется уведомлением DC-отправителя. DC-адресат забирает изменения при помощи RPC (процедуры удаленного вызова). Это тип pull replication или тянущей репликации.
Репликация между сайтами
Главная цель межсайтовой репликации та же, что и создания сайта – т.е., уменьшение трафика репликации. Репликация инициируется согласно расписанию, а не уведомлениями, как это происходит при репликации внутри сайта. Существует окно репликации и интервал. Окно м.б. установлено на нерабочие часы. Интервал действителен только на время окна.
Трафик репликации посылается через серверы плацдармы (Bridhead-servers). В каждом сайте существует один Bridhead-server, который, получив изменения, распределяет их в пределах своего сайта. Это сделано для того, чтобы по медленным связям между сайтами изменения посылались только один раз.
Иными словами Bridgehead-server – это сервер, специально предназначенный принимать трафик репликации с другого сайта и реплицировать его на DC's в локальном сайте. Хотя Bridgehead-servers создаются автоматически, их можно назначать вручную.
Bridgehead-servers общаются между собой при помощи Site-links. Их, в свою очередь, можно объединять Site-link bridges. Site-link bridges представляют собой коллекцию Site-links с целью роутинга между не соседними сайтами.
site bridges are a collection of links to allow routing between non-adjacent sites.
Время ожидания репликации (replication latency).
В пределах сайта время ожидания равно 15 сек * 3 хопа = 45 сек (мах.).
В репликации между сайтами вычисления зависят от множества факторов и потому сложнее.
Срочная репликация (Urgent replication) происходит при:
- изменении политики блокировки учетных записей.
- изменении политики паролей.
- перемещении хозяина RID на другой DC.
- изменении пароля DC.
Срочные обновления, как правило, применяются к репликации внутри сайта.
У этого правила есть исключение: когда пользователь меняет пароль на каком-либо DC, это изменение немедленно копируется прямо в PDC-эмулятор при помощи RPC-подключения и независимо от сайта, которому принадлежит исходный DC. Такая репликация пересекает границы сайта и не использует Bridhead Servers. Т.е. всё в этом случае происходит так, как будто сайтов вообще не существует. Затем PDC-эмулятор обновляет другие DC домена через нормальный процесс репликации. Это сделано для того, чтобы PDC-эмулятор мог служить арбитром конфликтных ситуаций с изменением пароля пользователя в домене. Конечно, такая ситуация может создаться только тогда, когда сайт меньше, чем домен (т.е., когда домен включает в себя несколько сайтов).
Топология репликации.
Топология репликации генерируется автоматически и обычно не требует вмешательства, хотя оно и возможно. На каждом DC выполняется KCC – процесс, ответственный за создание топологии репликации в пределах сайта и между сайтами. KCC начинает работать с момента добавления второго DC в лесу и срабатывает каждые 15 минут. Действия KCC напоминают автоматические вычисления таблиц маршрутизации в роутерах.
При помощи ADSS можно заставить контроллер пересчитать топологию репликации. Это выполняется следующим образом:
ADSS – Server – NTDS Settings – Right click – All Tasks (from menu) – Check Replication Topology.
KCC создаёт объекты связи (connection objects), которые хранятся в разделе конфигурации AD. Объект связи всегда создаётся как одностороннее тянущее (pull) соединение между двумя DC. Обычно создаётся два односторонних соединения, что напоминает создание отношений доверия.
Объекты связи можно менять, редактируя параметры настройки объектов, автоматически созданных KCC, или же добавляя новые объекты вручную. Служба KCC не трогает связи, созданные или изменённые вручную.
Для каждого DC создаётся избыточное кольцо репликации в противоположном направлении, и тогда каждый DC получает 2 входящие и 2 исходящие связи. Каждый DC в сайте может быть удалён от любого другого DC не более, чем на 3 скачка (прыжка, хопа, ретрансляции). Если в сайте существует более 7 DC, то невозможно соблюсти круговую связь с тремя скачками и тогда создаются дополнительные объекты связи.
Важный момент: KCC вычисляет отдельное кольцо топологии репликации для каждого раздела (Partition) каталога AD.
- Для разделов конфигурации и схемы – топология для всех DC в лесу
- Для раздела каталога домена – топология для всех DC в домене
- Для раздела приложений или Application Partition – топология для всех DNS, например
- Для Global Catalog – минимум один DC в каждом домене леса (хотя формально GC разделом и не считается).
Итого, мы насчитали 4 топологии. Для просмотра разделов репликации и топологии можно использовать Replication Monitor из набора Support Tools серверного CD:
X:\Support\Tools\Suptools.msi
После установки инструментов поддержки достаточно открыть Run – replmon.
Кольцо репликации реализуется с помощью объектов связи. KCC старается использовать одни и те же объекты связи для нескольких разных колец репликации различных разделов каталога. В каждом сайте один DC (он же KCC) является ответственным за разработку межсайтовой топологии. Такой DC/KCC обозначается как ISTG (Inter-Site Topology Generator) – генератор межсайтовой топологии. По сути, ISTG – это выделенный межсайтовый KCC, в задачи которого входит:
- - определить серверы-форпосты (Bridgehead Servers) отдельно для каждого раздела каталога в сайте
- - затем создать объекты связи между Bridgehead Servers.
Способы управления репликацией.
Для управления репликацией каталога в AD используются:
- порядковые номера обновлений USN (update sequence numbers)
- значения уровня (high-watermark values)
- векторы новизны (up-to-dateness vectors)
- отметки об изменениях (change stamps).
Способы разрешения конфликтов репликации.
В случаях, когда два или больше администратора одновременно производят изменения, касающиеся одних и тех же объектов, могут возникнуть конфликтные ситуации (хоть и не каждый день). Способы их разрешения следующие:
- Объект, добавленный к удаленному контейнеру, будет перемещен в контейнер LostAndFound.
- Добавление объектов с тем же RDN в тот же контейнер: объект с высшим GUID будет сохранен, а с низким GUID будет переименован.
Репликация удалений объектов.
При удалении аккаунта пользователя или компьютера, он не уничтожается немедленно, а создается объект памятник (tombstone object) с новым атрибутом isDeleted=true плюс старые атрибуты GUID, SID, RDN и USN. Остальные атрибуты удаляются. Tombstone objects хранятся 60 дней, а затем в процессе уборки мусора (garbage collection), которая производится каждые 12 часов, объекты уничтожаются. Если некий DC не реплицировался более 60 дней, он может содержать неактивные объекты (Lingering objects), которые на других серверах уже исчезли. Такие объекты иногда называют фантомами или зомби. Для предупреждения такого явления в Windows 2003, начиная с Service Pack 2, Tombstone objects хранятся 180 дней, т.е. в 3 раза больше прежнего. Время хранения Tombstone objects называется Default Tombstone Lifetime (TSL). Существует известный баг, когда после инсталляции Windows Server 2003 R2 значение TSL остается 60 дней. В таком случае нужно просто установить Service Pack 2 (SP2).