Содержание к диссертации
Введение
1 Современные подходы к проблемам анализа защищенности информационных систем 11
1.1 Актуальность задач оценки защищённости информационных систем. 11
1.2 Обзор существующих направлений и нормативных документов в области оценки защищённости информации 14
1.3 Подходы к оценке защищенности информационных систем и их структура 21
2. Анализ защищённости информационных систем 35
2.1 Существующие модели методов оценок 35
2.2 Модель уязвимости 43
2.3 Двухуровневая система критериев оценки защищённости ИС 47
2.4 Качество команды разработчиков 60
2.5 Нечёткая модель системы 61
3. Экспериментальный анализ целевых систем 67
3.1 Процесс анализа защищённости 68
3.2 Сканирование портов 70
3.2.1 Методы сканирования TCP-портов 72
3.2.2. Методы сканирования UDP-портов 88
3.3. Определение операционной системы удаленного хоста (OS- fingerprinting) 93
3.3.1. Краткий обзор подходов 93
3.3.2. Методы определения операционной системы удаленного хоста...94
3.3.3. Метод опроса стека TCP/IP удаленного хоста 96
3.4. Функциональная модель системы поиска и анализа уязвимостей 107
4. Разработка программного обеспечения сканера системы безопасности Complex Information Security Guard (CISGuard) 111
4.1 Концепция Ill
4.2 Ключевые особенности 112
4.2.1 Универсальность 112
4.2.2 Особенности сканирующего ядра 112
4.2.3 Функциональные особенности 113
4.3 Качество сканирования 114
4.3.1 Уязвимости разной природы 114
4.3.2 Этапы сканирования 116
4.4 Состав программного комплекса 123
4.5 Основные оконные формы CISGuard 124
4.6 Внешнее обеспечение 128
Заключение 129
Список литературы 131
Глоссарий 143
- Обзор существующих направлений и нормативных документов в области оценки защищённости информации
- Двухуровневая система критериев оценки защищённости ИС
- Определение операционной системы удаленного хоста (OS- fingerprinting)
- Состав программного комплекса
Введение к работе
Актуальность темы
Современная информационная система (ИС), находящаяся в производственной эксплуатации, включает в себе функции защиты обрабатываемой в ней информации и предотвращения к ней несанкционированного доступа. Однако динамика изменения нарушений защищенности информационных систем свидетельствует о наличии ряда нерешённых задач в области защиты информации ИС, в том числе, при проектировании и эксплуатации средств защиты.
На этапе проектирования системы информационной безопасности ИС необходимо определить требуемый уровень защищённости системы, а на этапе тестирования оценить параметры безопасности аудируемой системы и сопоставить их с начальным заданием по безопасности. Для оценки защищённости системы на этапе тестирования необходимо применение эффективного алгоритме анализа, но на сегодня не существует каких-либо стандартизированных методик объективного анализа защищенности ИС. В каждом конкретном случае алгоритмы действий аудиторов могут существенно различаться, что, в свою очередь, может привести к существенным расхождениям в результатах оценки и неадекватному реагированию на сложившиеся угрозы.
Практикуемые в настоящее время методы исследования защищенности предполагают использование как активного, так и пассивного тестирования системы защиты. Активное тестирование системы защиты заключается в эмуляции действий потенциального злоумышленника по преодолению механизмов защиты. Пассивное тестирование предполагает анализ конфигурации операционной системы и приложений по шаблонам с использованием списков проверки. Тестирование может производиться непосредственно экспертом, либо с использованием специализированных программных средств. При этом возникает проблема выбора и полноты алгоритма анализа, а также сравнения полученных результатов оценки. Для оценки и анализа результатов тестирования различных конфигураций ИС необходима некоторая, абстрагированная от конкретных свойств ИС, единица измерения, с помощью которой можно измерить общий уровень защищённости этих ИС.
Анализ современных методов решения рассматриваемых задач показал, что используются ряд различных подходов. Можно выделить работы С. Као, Л.Ф. Кранор, П. Мела, К. Скарфоне и А. Романовского по проблеме оценки уровня защищённости, С.А. Петренко, СВ. Симонова по построению экономически обоснованных систем обеспечения информационной безопасности, А.В. Мельникова по проблемам анализа защищенности информационных систем, И.В. Ко-тенко по разработке интеллектуальных методов анализа уязвимостей корпоративной вычислительной сети, В.И. Васильева, В.И. Городецкого, ОБ. Макаревича, И.Д. Медведовского, Ю.С. Соломонова, А.А. Шелупанова и др. по проектированию интеллектуальных систем защиты информации. Однако вопросы объективного анализа уровня защищённости ИС и его прогнозирования в этих работах рассмотрены недостаточно глубоко.
Объект исследования
Безопасность и защищённость данных, обрабатываемых в компьютерных информационных системах.
Предмет исследования
Методы и модели оценки уровня защищённости компьютерных информационных систем.
Цель работы
Повышение достоверности оценки уровня защищённости информационных систем на основе накопленных баз данных их уязвимостей и модели временных рядов.
Задачи исследования
Исходя из поставленной цели работы, определен следующий перечень решаемых задач:
Выполнить анализ существующих подходов и методов оценки уровня защищённости информационных систем.
Разработать модель оценивания уровня защищённости сложных информационных систем относительно заданной точки входа
Разработать метод прогнозирования уровня защищённости информационных систем на основе достоверных знаний о системе.
Разработать структурно-функциональную модель уязвимости информационной системы для создания унифицированной базы уязвимостей.
Разработать программный прототип системы динамического анализа защищенности корпоративной вычислительной сети с применением техник эвристического анализа уязвимостей.
Методы исследования
При работе над диссертацией использовались методология защиты информации, методы системного анализа, теория множеств, методы теории нечёткой логики, теория вероятностей, теория временных рядов - для разработки концепции построения информационных систем с заранее заданным уровнем защищенности.
Основные научные результаты, выносимые на защиту
Модель оценивания уровня защищённости сложных информационных систем относительно заданной точки входа
Метод прогнозирования уровня защищённости информационных систем на основе достоверных знаний о системе и модели временных рядов.
Структурно-функциональная и теоретико-множественная модель уязвимости ИС.
Реализация программного прототипа системы динамического анализа защищенности корпоративной вычислительной сети с применением техник эвристического анализа уязвимостей.
Научная новизна результатов
Предложена модель оценивания защищенности сложных информационных систем на основе разбиения всей системы на подсистемы - блоки со своими характеристиками уровня уязвимости. В рамках предложенной концепции становится возможным создание систем с заранее определёнными характеристиками защищённости, что, в свою очередь, увеличивает надёжность системы в долгосрочной перспективе.
Предложен метод оценки уровня защищённости ИС, который в отличие от существующих экспертных оценок, позволяет на основе накопленных мировым сообществом баз данных уязвимостей информационных систем спрогнозировать с использованием модели временных рядов более достоверные результаты.
Предложена структурно - функциональная модель уязвимости с использованием теоретико-множественного подхода, позволяющая параметрически описать каждую уязвимость, систематизировать и структурировать имеющиеся данные по уязвимостям с целью создания соответствующих баз для автоматизированных систем аудита.
Обоснованность и достоверность результатов диссертации
Обоснованность результатов, полученных в диссертационной работе, обусловлена корректным применением математического аппарата, апробированных научных положений и методов исследования, согласованием новых результатов с известными теоретическими положениями.
Достоверность полученных результатов и выводов подтверждается численными методами и экспериментальным путем, результатами апробации разработанного программного прототипа для проведения анализа защищенности корпоративной вычислительной сети.
Практическая значимость результатов
Практическая ценность результатов, полученных в диссертации, заключается в разработке:
формализованной процедуры анализа защищенности сложных систем на основе логического разбиения всей информационной системы на подсистемы-блоки со своими характеристиками уровня защищённости;
структурно-функциональной (СФМУ/VSFM) и теоретико-множественной модели уязвимости, позволяющих в параметрически описать каждую уязвимость, что, в свою очередь, даёт возможность систематизировать и структурировать имеющиеся данные по всем уязвимостям;
методов и алгоритмов (в том числе и эвристических) функционирования автоматизированной системы анализа защищенности корпоративной вычислительной сети, подтвердивших высокую эффективность при апробации разработанного программного комплекса в реальных условиях;
Результаты диссертационной работы в виде методов, алгоритмов, методик и программного обеспечения внедрены в корпоративной вычислительной сети Челябинского государственного университета и ООО «ИТ Энигма».
Апробация работы
Основные научные и практические результаты диссертационной работы докладывались и обсуждались на ряде следующих конференций:
Всероссийской научной конференции «Математика, механика, информатика», Челябинск, 2004, 2006;
7-ой и 9-ой Международной научной конференции «Компьютерные науки и информационные технологии» (CSIT), Уфа, 2005,2007;
Международной научно-практической конференции студентов, аспирантов и молодых учёных, Екатеринбург, 2006;
10-ой Всероссийской научно-практической конференции «Проблемы информационной безопасности государства, общества и личности».
Публикации
Результаты выполненных исследований отражены в 8 публикациях: в 6 научных статьях, в 2 изданиях из списка периодических изданий, рекомендованных ВАК Ро-собрнадзора, в 2 тезисах докладов в материалах международных и российских конференций.
Структура и объем работы
Диссертация состоит из введения, четырех глав, заключения, библиографического списка из 126 наименований и глоссария, всего на 143 листах.
Обзор существующих направлений и нормативных документов в области оценки защищённости информации
В 1992 г. был утвержден ряд руководящих документов Гостехкомиссии Российской Федерации, в частности, дополняющие друг друга [25] и [26]. В соответствии с Указом Президента Российской Федерации от 9 марта 2004 г. №314 "О системе и структуре федеральных органов исполнительной власти" и от 20 мая 2004 г. №649 "Вопросы структуры федеральных органов исполнительной власти" Государственная техническая комиссия при Президенте Российской Федерации преобразована в Федеральную службу по техническому и экспортному контролю (ФСТЭК России). Основная нормативно-правовая база в области ИБ на сегодняшний день представлена следующими источниками: 1. Правовые и нормативные документы в области ИБ: - конституция РФ и кодексы законов РФ; - федеральные и региональные законы в области информационной безопасности (ФЗ «О государственной тайне», ФЗ №149 «Об информации, информатизации и защите информации» от 27.07.2006); - постановления и указы президента и правительства РФ; - международные соглашения и конвенции. 2. Стандарты ИБ: - международные стандарты ISO 13335, ISO 15408, ISO 17799, ISO 19791, ISO 27001 [25-29]; - государственные стандарты РФ [1-4]; - руководящие документы Гостехкомиссии РФ (ГТК) [5-10, 12-21]; - руководящие документы Федеральной службы по техническому и экспортному контролю (ФСТЭК) РФ; - отраслевые стандарты и стандарты предприятия. 3. Рекомендации по ИБ: - рекомендации IETF, CERT, NIST и других организаций, связанных со стандартизацией области ИБ [24, 30-33, 109, 117, 118]. Что касается организации самого процесса анализа защищённости, то основными руководящими документами в этой области, на сегодняшний день, являются: - часть перечисленных выше международных стандартов в области информационной безопасности ISO 15408, ISO 17799, ISO 19791, ISO 27001 [26-29]; - руководящие документы ГТК и ФСТЭК РФ, связанные с порядком проведения аттестации объектов информатизации [13, 15, 21]; - методология оценки информационной безопасности АНБ США [114]; - методики проверки безопасности информационных технологий, разработанные британской группой обеспечения безопасности электроники и связи [22]; - руководства по тестированию безопасности сетей и информационных систем Национального института стандартов США [31, 33]. Эти документы в своём базисе используют верификационную методику оценки защищённости ИС.
Так, общепринятый на сегодняшний день в отечественной и международной практике подход к оценке и обеспечению безопасности информации специализированных ИС, состоит в проведении сертификационных испытаний (в основе лежат верификационный и экспертный методы оценки защищённости) систем на соответствие требованиям по защищенности. Вместе с тем, присущие этому подходу недостатки, в частности, значительные материальные и временные затраты на проведение испытаний, субъективность самой оценки и испытаний, привели к тому, что появилась необходимость в ограничении срока действия сертификатов. Это, в свою очередь, обусловило возникновение противоречия, суть которого сводится к следующему. С одной стороны, сертификат о соответствии ИС требованиям по защищенности является, по существу, единственной «гарантией» надежности средств защиты информации (СЗИ) на срок действия сертификата. С другой стороны, решение вопросов безопасности в ИС при проведении сертификационных испытаний было сведено к решению статических задач анализа и синтеза СЗИ, которые неприменимы к динамично развивающимся системам. Вывод, о необходимости существенного изменения системы оценок защищенности ИС, заданных в [25, 26], подтверждается началом активной работы в этом направлении компаний с мировыми именами, специализирующихся в области информационной безопасности, а также привлечением в последние годы значительного количества отечественных специалистов к разработке, в рамках выполнения ряда комплексных программ, нормативных документов, регламентирующих сертификационные испытания ИС.
Двухуровневая система критериев оценки защищённости ИС
После определения уровня приемлемого риска начинается этап управления рисками. Управление рисками заключается в определении стратегии, которая будет описывать меры по снижению рисков до приемлемого уровня. В соответствии с приоритетностью снижения рисков и уровнем приемлемого риска, специалисты службы информационной безопасности (или сотрудники компании, ответственные за обеспечение информационной безопасности), как правило, совместно со сторонними консультантами определяют и внедряют меры для снижения рисков.
На протяжении всего процесса оценивания прослеживается чёткая зависимость результатов от знаний и опыта конечного эксперта и заинтересованной стороны. За счёт введения в оценивание лиц, не имеющих профессиональных навыков в сфере анализа общего уровня информационной безопасности, адекватность данной методики существенно снижается. Также стоит отметить, что основной целью анализа рисков является сопоставление стоимости самой информации с вероятностью её потерять, а этап оценивания уровня защищённости является лишь вспомогательным и не имеет в данном случае конкретных алгоритмов реализации.
К оценке общего уровня защищённости можно попытаться подойти со стороны оценки качества, т.е. рассматривать защищённость, как качественную характеристику информационной системы. Одним из подходов для оценки атрибутов безопасности разрабатываемого программного обеспечения (ПО) является оценка соответствующих атрибутов качества, связанных с безопасностью, определённых в серии международных стандартов ISO/ IEC 9126 «Software engineering — Product quality» и ISO/ IEC 14598 «Software engineering — Product evaluation» [22].
Стандарты определяют базовую терминологию и общий подход к проблеме оценки качества ПО (характеристики качества, метрики для их измерения, методологию оценки), что позволяет уменьшить неопределённость при совместной работе нескольких организаций (заказчики разработки, разработчики, независимые оценщики).
Характеристика как внутреннего, так и внешнего качества «защищённость» используется в стандартах в значении: способность программного продукта защищать информацию и данные так, чтобы неавторизованные субъекты или процессы не смогли читать или модифицировать их, а авторизованным пользователям и процессам не было отказано в доступе к ним. В стандартах подчеркивается, что данное требование также относится и к данным, которые находятся в процессе пересылки.
Характеристика качества «безопасность» вводится как характеристика качества в использовании, данная характеристика определяет способность программного продукта достигать приемлемого уровня риска для здоровья людей, их бизнеса, ПО, имущества или окружающей среды при данном способе (контексте) применения.
Если учесть, что информационная безопасность включает в себя вопросы обеспечения целостности, конфиденциальности и доступности, то можно прийти к выводу, что при комплексной оценке безопасности программного продукта и его использования в соответствии с вышеназванными стандартами нельзя ограничиться только этими характеристиками. Необходимо также учесть (полностью или частично) такие характеристики как «надёжность», «сопровождаемость», а также ряд смежных субхарактеристик (в составе других характеристик), которые косвенно затрагивают атрибуты безопасности программного продукта и системы, в которой он используется.
Данный подход имеет ряд своих преимуществ и недостатков. Преимущества: подход обращает внимание участников разработки ПО на необходимость учёта требований реализации безопасного ПО; возможность применения для оценки качества как для разработанного ПО, так и для ПО, находящегося в процессе разработки; подход представляет базу для разработки собственной методики оценки качества характеристик безопасности разрабатываемого ПО, и использования её для взаимодействия с заказчиками и оценщиками; возможность планировать и контролировать значения метрик безопасности в случае реализации ПО в ограниченные сроки или при ограниченном бюджете проекта; ряд метрик в стандартах необходимо вычислять экспериментальным путём (использование «тестов на проникновение»), что обычно не практикуется в случае обычного функционального тестирования ПО, где происходит тестирование функций в соответствии со спецификацией; интеграция со всем процессом разработки ПО в соответствии с их жизненным циклом (ISO/ IEC 12207), а также родственными стандартами ISO 9000-9001, которые уже сейчас активно применяются в странах СНГ;
Недостатки: не учтена специфика разрабатываемого ПО (угрозы действующие на функции ПО, величины рисков этих угроз, величины возможных ущербов); стандартный набор метрик не может в полной мере характеризовать качество безопасности разрабатываемого ПО и требуется расширение набора; подход применяется для оценки качества безопасности ПО, но не даёт гарантий безопасности, однако может давать хороший материал для анализа, в случае проведения оценки защищённости в соответствии с ISO/ IEC 15408 («Общие критерии»). С другой стороны, в случае, если наряду с данным подходом применяется также и ISO/ IEC 15408 (имеется профиль защиты или задание на обеспечение безопасности ПО или системы, в состав которой входит данное ПО), то подход на базе «Общих критериев» может предоставить возможность для более точного определения необходимых метрик безопасности и более гибкого контроля их значений. Не лишён субъективного фактора.
Недостатками всех этих методик является достаточно высокий уровень абстракции, который в каждом конкретном случае даёт слишком большую свободу в интерпретации предписанных шагов алгоритма анализа и их результатов.
Определение операционной системы удаленного хоста (OS- fingerprinting)
В данном разделе предлагаются к рассмотрению методы получения информации об операционной системе удаленного хоста, используя механизм опроса стека TCP/IP.
Проблема определения типа и версии операционной системы (ОС) удаленного хоста является весьма актуальной на начальном этапе реализации атаки на хост. В зависимости от того, какая ОС установлена на удаленном хосте, атакующий будет планировать свои дальнейшие действия, воздействуя на известную уязвимость (если таковая имеется) в безопасности установленной на хосте ОС. При этом, чем точнее удастся определить тип и версию ОС удаленного хоста, тем эффективней будет выполнен поиск уязвимостей. В подтверждении этого, рассмотрим несколько возможных ситуаций.
Допустим, осуществляется попытка проникновения в удаленный хост. В результате сканирования портов было обнаружено, что 53-й порт хоста открыт. На основании данного признака можно предположить, что на хосте установлена одна из версий ОС UNIX, и выполняется одна из уязвимых версий демона bind. Если это весьма условное предположение является верным, атакующий имеет только одну попытку использовать обнаруженную "дыру", поскольку неудавшаяся попытка атаки "подвесит" демона и порт окажется закрытым, после чего атакующему придется искать новые "дыры" в безопасности удаленного хоста. Если атакующий точно определит тип и версию ОС удаленного хоста (например, Linux kernel 2.0.35 или Solaris 2.51), он может соответствующим образом скоординировать свои действия, проанализировав информацию, касающуюся известных проблем в безопасности определенной ОС.
Используя программные средства, обеспечивающие определение ОС удаленного хоста, атакующий способен просканировать множество хостов и определить тип и версию ОС, установленную на каждом из них. Затем, когда кто-нибудь опубликует в сети Интернет информацию об обнаруженной "дыре" в безопасности конкретной ОС, атакующий автоматически получает список уязвимых хостов, на которых установлена данная версия ОС.
Информацию о типе и версии ОС удаленного хоста возможно использовать в качестве спекулятивного средства социальной инженерии. Например, атакующий получает от удаленного хоста следующую информацию:
Следующим его шагом может быть звонок администратору данного хоста от имени службы поддержки DataVoice и подробный рассказ о мифической "дыре" в Prisma 3000, с рекомендацией обязательной установки программы - "заплаты", "только что отправленной" по электронной почте администратору. "Заплата" на самом деле является закладкой, пересылающей атакующему все пароли системы. Как видно, информация об ОС хоста является основным оружием в руках опытного взломщика.
Возможны несколько различных способов получить информацию об ОС удаленного хоста. Одним из самых эффективных является следующий:
Как видно, не имеет смысла прибегать к различным ухищрениям, если удаленный хост сам сообщает о своей ОС. Основная масса разработчиков ОС поставляют свои продукты именно с такими заголовками, и многие системные администраторы забывают их отключить. Но даже если вывод заголовка отключен, большинство прикладных программ выдадут информацию, находящуюся в заголовке ОС хоста по первому требованию (если администратор не позаботился об отключении этой возможности). Например, FTP-сервер:
Кроме того, если имеется доступ к FTP, атакующий может просмотреть bin-файлы в каталоге /bin/Is и определить, в какой ОС они используются. Аналогичную информацию можно получить и от WEB-сервера:
Другие методы предусматривают просмотр базы данных сервера службы DNS (неэффективный метод, поскольку немногие из системных администраторов станут размещать эту информацию на DNS-сервере), а также упомянутую ранее социальную инженерию.
Как правило, реакцией сервера на любое удаленное воздействие (входящий пакет данных, запрос) является пакет данных, посылаемый источнику данного воздействия (в дальнейшем под термином "сервер" понимается атакуемый хост, а под термином "хост" - хост атакующего).
Как показывает практика, различные ОС при работе в сети по-разному реагируют на один и тот же запрос. Исследовав особенности реакций на запрос ОС, версии которых заранее известны, можно набрать определенную статистику, сопоставив реакции на запрос с типом ОС. При использовании комбинированного воздействия, статистическая информация становится более конкретизированной.
В дальнейшем, исследуя реакцию сервера с неизвестной ОС, с использованием накопленной статистики можно определить не только тип, но и версию установленной на сервере ОС. Например, возможно точно отличить Solaris 2.4 от Solaris 2.50 или Linux kernel version 2.0.30 (для всех Linux далее указывается версия ядра) от Linux 2.0.35. 3.3.3.1. FIN-исследование
Перед началом непосредственного исследования хост сканирует порты сервера и определяет, какие порты являются открытыми. Затем на любой открытый порт сервера хост посылает FIN-пакет (TCP-пакет на завершение соединения) или любой другой пакет без флагов SYN и АСК. В соответствии с RFC 793 сервер должен ответить на такой пакет RST-пакетом, однако некоторые ОС типа Windows, BSDI, CISCO, HP/UX, MVS и IRIX не посылают ничего в ответ.
Состав программного комплекса
Хост посылает на сервер SYN-пакет с запросом на соединение, записав в пакет свое (известное) значение ISN. Сервер, получив запрос на соединение, прибавляет к полученному ISN единицу и записывает полученное значение в поле АСК ответа (т.е. SYNlACK-пакета), а в поле ISS ответа - свой собственный ISN, и передает пакет устанавливающему соединение хосту. На приемной стороне (т.е. на стороне хоста) пакет анализируется.
Операция повторяется до тех пор, пока не будет выявлен закон изменения ISN сервера. Возможны следующие закономерности: закон "постоянного приращения" (традиционный закон "+64" - старые версии UNIX): значение ISN сервера, записываемого в поле ISS ответа на запрос "установление соединения", увеличивается на постоянную величину (либо на 64) с каждым обрабатываемым запросом; закон "случайных приращений" (новые версии Solaris, IRIX, FreeBSD, DigitalUNIX, Cray): приращение ISN носит случайный характер; истинно случайные значения (Linux 2.0.x, Open VMS, новые AIX): значение ISN является случайной величиной; закон "время-зависимых приращений" (Windows): значение ISN периодически во времени увеличивается на некоторую небольшую величину; постоянный (концентраторы 3Com [ISN=0x803], принтеры Apple LaserWriter [0хС7001]): значение ISN остается постоянным. Анализируя принятые от сервера TCP-пакеты целесообразно обратить внимание на поле Window в их заголовках , поскольку значение этого поля является своеобразной константой, характеризующей ОС. В некоторых случаях для однозначного определения типа ОС достаточно извлечь значение поля Window в TCP-заголовке принятого от сервера пакета. Так, ОС AIX - единственная ОС, имеющая значение Window=0x3F25. "Полностью переписанный" стек TCP/IP в ОС Windows NT5, равно, как и OpenBSD и FreeBSD, имеют Window=0x402E. Рекомендацией RFC 793 определено стандартное изменение поля АСК в TCP-пакетах при установлении соединения, передаче данных и закрытии соединения. Однако в нестандартных ситуациях различные ОС по-разному устанавливают значение этого поля. Исследование проводится следующим образом. На закрытый ТСР-порт хост отправляет FINPSHURG-naKeT с известным значением ISN в поле ISS. Большинство ОС скопируют значение ISN, прибывшее в ISS, в поле АСК ответа. Однако ОС Windows и некоторые сетевые принтеры отправят в поле АСК ответа ISN+1. Если хост пошлет SYNFINPSHURG-naKeT, поведение Windows предсказать трудно. Иногда эта ОС отправляет в поле АСК ответа прибывший ISN, иногда - ISN+1, иногда - по всей видимости, случайное значение.
Остается только догадываться, какой код написала Microsoft для обработки подобной ситуации. Согласно RFC 792, протокол ICMP использует протокол IP в качестве средства доставки. Очевидно, что ІСМР-сообщения занимают определенную часть полосы пропускания канала связи, что снижает общую скорость передачи данных. По этой причине некоторые продвинутые ОС, следуя рекомендации RFC 1812, ограничивают количество отправляемых в канал связи ІСМР-сообщений об ошибках. Так, Linux ограничивает количество ІСМР-сообщений об ошибке типа "получатель недоступен" (Destination Unreachable) до 80 сообщений в 4 секунды, с простоем 0,25 секунды, если это ограничение было превышено. Единственный способ проверить скорость генерирования ІСМР-сообщений сервером - послать на некоторый закрытый UDP-порт с большим номером набор пакетов и подсчитать количество принятых ІСМР сообщений. Этот тест является очень медленным, и, кроме того, вызывает относительно большую нагрузку на сеть. Для снижения общей нагрузки на сеть рекомендациями было установлено, что дейтаграмма с ІСМР-сообщением об ошибке должна иметь меньший размер, чем дейтаграмма с ІСМР-сообщением, вызвавшая ошибку. Так, в качестве ІСМР-сообщения "порт недостижим" (Port Unreachable - PU) практически все ОС генерируют дейтаграмму, представляющую собой необходимый IP-заголовок и 8 байт данных, которые и являются непосредственно ІСМР-сообщением. Однако ОС Solaris формирует ICMP-сообщение немного большего размера, a Linux - еще больше, чем Solaris. Таким образом, имеется возможность распознавать ОС Linux и Solaris даже в том случае, если сервер не осуществляет прослушивание портов. Как известно, в ІСМР-сообщении об ошибке должна присутствовать часть дейтаграммы, вызвавшей эту ошибку. Эта часть состоит из ІР-заголовка дейтаграммы и первых 64-х бит данных дейтаграммы, и называется "эхом" дейтаграммы. Некоторые ОС используют IP-заголовок прибывшей дейтаграммы в качестве "рабочего пространства" на начальном этапе ее обработки. Это приводит к искажению IP-заголовка, и дейтаграмма с искаженным заголовком отправляется как эхо ІСМР-сообщения. Различные ОС по-разному искажают заголовок дейтаграммы. Например, ОС АІХ и BSDI в ІР-заголовке эха возвращают значение поля TotalLength на 20 байт больше первоначального значения исходной дейтаграммы. Некоторые версии ОС BSDI, FreeBSD, OpenBSD, ULTRIX и VAXen стирают поле ID в эхо-IP заголовке.