Уязвимости: модель OSI, классификация уязвимостей



Лекция#4 Уязвимости: модель OSI, классификация уязвимостей  
Лектор : cyb3rpadla
[09:00:09] <cyb3rpadla> Всем здравствуйте! Рад вас приветствовать сегодня здесь.
Уязвимости: модель OSI, классификация уязвимостей
[09:00:31] <cyb3rpadla> Задача этого обучения - показать мир уязвимостей, рассказать об их типах, как они устроены, где работают и как нам можно развиваться и зарабатывать имея в виду эти знания.
[09:00:51] <cyb3rpadla> В данном обучении мы делаем фокус на ботнеты и некоторые темы и нюансы будут разобраны досконально для надлежащего понимания и прогресса в дальнейшем. 
[09:01:10] <cyb3rpadla> Помимо ботнетов мы детально разберем инсталлы (установка определенного программного обеспечения, далее ПО на компьютер - пользователем), пути привлечения трафика, работу с логами, проанализируем рынок и разберемся в принципах работы с кодером: 
[09:01:17] <cyb3rpadla> - правильная постановка задачи для кодера (разработчика); 
[09:01:23] <cyb3rpadla> - контроль исполнения задач; 
[09:01:30] <cyb3rpadla> - грамотный подход при разработке ПО, тестирование ПО; 
[09:01:38] <cyb3rpadla> - грамотная покупка инсталов; 
[09:01:58] <cyb3rpadla> Мы крайне детально (для вашего уровня познаний) разберем все, что касается веб-инжектов, их работы, истории развития и современных возможностей. Как с ними работать и как выбирать исполнителя для написания инжекта. 
[09:02:16] <cyb3rpadla> ВВЕДЕНИЕ - МОДЕЛЬ OSI. Азы 
[09:02:31] <cyb3rpadla> Несмотря на то, что основным предметом нашего изучения являются ботнеты и все с ними связаное, мы не можем не коснуться каких-то основополагающих вещей. 
[09:02:48] <cyb3rpadla> Начнем с введения в Информационную Безопасность и разные уязвимости. 
[09:03:30] <cyb3rpadla> Первым домашним заданием будет ознакомиться с моделью сетевого взаимодействия OSI (рекомендуется сделать это до следующей лекции). Данная модель будет полезна в дальнейшем и лучше ее изучить сейчас т.к. по мере роста Ваших навыков, Вам она будет нужна как воздух. Это основа Ваших знаний, т.к. работа ПО и отдельных уязвимостей идет с сетью и разными уровнями OSI. 
[09:03:48] <cyb3rpadla> То, что мы сейчас будем рассматривать по-русски называется Базовая Эталонная Модель Взаимодействия Открытых Сетей, а по-английски - Open Systems Interconnection Basic Reference Model. 
[09:04:10] <cyb3rpadla> Модель OSI (модель стека протоколов TCP/IP) описывает архитектуру и функции компьютерной сети на каждом из уровней. Именно поэтому важно понимать и знать функции каждого уровня модели передачи данных, чтобы понимать принципы функционирования компьютерных сетей в целом.
[09:04:35] <cyb3rpadla> Всего в модели 7 уровней. Каждый из этих уровней выполняет свои определенные задачи. На каждом уровне есть свои единицы измерения информации или тип данных - PDU (protocol data unit). 
[09:05:14] <cyb3rpadla> Это единицы измерения данных, которыми оперирует протокол на том или ином уровне. Так, например, на уровнях с седьмого по пятый включительно PDU называется просто - данные, на транспортном уровне в случае протокола TCP данные представляются в виде сегментов, а в случае протокола UDP единицей измерения данных являются дейтаграммы или датаграммы. 
[09:05:36] <cyb3rpadla> На сетевом уровне PDU называются пакетами, на канальном уровне - кадрами, а на физическом уровне представляют из себя последовательности нулей и единиц или просто биты.
[09:05:50] <cyb3rpadla> Также из важного стоит отметить, что условно уровни эталонной модели делятся на верхние и нижние.
[09:06:05] <cyb3rpadla> Физический, канальный и сетевой уровни можно отнести к нижним уровням или уровням среды передачи данных, в английской литературе это называется media layers.
[09:06:19] <cyb3rpadla> А вот транспортный, сеансовый, представительский и уровень приложений относятся к host layers или к верхним уровням, ну или к уровням хоста.
[09:06:43] <cyb3rpadla> Модель OSI 7 проводит четкую границу между протоколом и службой. Службы работают между уровнями внутри одного устройства, а протоколы отвечают за взаимодействие двух устройств на одном уровне.
[09:07:20] <cyb3rpadla> Не стоит боятся если Вы ничего не поняли. Я согласен, что понять это с первого раза не совсем удается всем, но развитие и немного стараний и делает нас умнее. Если у Вас не получилось понять это сейчас, просто посмотрите (прочтите) это утром.
[09:07:27] <cyb3rpadla> КЛАССИФИКАЦИЯ УЯЗВИМОСТЕЙ 
[09:07:45] <cyb3rpadla> Прежде чем приступить к изучению ботнетов, нам требуется понять, где этот ботнет работает, как и кому он передает данные. Посредством каких протоколов и каналов. 
[09:08:00] <cyb3rpadla> В первую очередь, мы должны пройтись немного по уязвимостям в целом. Прежде чем разбираться в классификации, следует понять, что же такое уязвимость в принципе? 
[09:08:14] <cyb3rpadla> Уязвимость - это какая-либо характеристика или свойство информационной системы, использовав которую мы можем реализовать атаку (угрозу).
[09:08:33] <cyb3rpadla> Под угрозой, в свою очередь, следует понимать вероятное событие или же некий процесс, которые, воздействуя на компоненты информационной системы, могут нанести ущерб ее целостности.
[09:08:51] <cyb3rpadla> Естественно, все осуществляемые атаки имеют свою конкретную цель.
Каковы причины возникновения уязвимостей? Принято выделять следующие:
[09:08:59] <cyb3rpadla> 1) ошибки в ходе проектирования и разработки программного обеспечения; 
[09:09:12] <cyb3rpadla> 2) целенаправленное добавление уязвимостей в ходе проектирования и разработки программного обеспечения; 
[09:09:21] <cyb3rpadla> 3) ошибки в процессе настройки программного обеспечения; 
[09:09:30] <cyb3rpadla> 4) неправомерное изменение режимов работы устройств и/или программ; 
[09:09:44] <cyb3rpadla> 5) установка и использование незарегистрированных программ, что приводит к необоснованному расходованию ресурсов (загрузка процессора, захват оперативной памяти, места на жестком диске и т.п.) 
[09:09:49] <cyb3rpadla> 5) внедрение вирусных программ; 
[09:09:55] <cyb3rpadla> 6) несанкционированные действия пользователей; 
[09:10:09] <cyb3rpadla> 7) сбои в работе аппаратного и программного обеспечения в результате скачков электроэнергии, устаревания и снижения надежности отдельных элементов, внешних воздействий электромагнитных полей технических устройств и т.п. 
[09:10:22] <cyb3rpadla> Далее пара слов о классификации основных уязвимостей. Эти вещи знать крайне желательно. Может, не досконально, но хотя бы иметь представление в общих чертах.
[09:10:39] <cyb3rpadla> Итак, выделяют две основные группы. Первая - это уязвимости системного программного обеспечения (в частности, протоколов сетевого взаимодействия), а вторая - уязвимости прикладного программного обеспечения (в частности, средств защиты информации). 
[09:10:52] <cyb3rpadla> Первую группу важно рассматривать с привязкой к архитектуре построения самих вычислительных систем. Здесь можно выделить следующие типы уязвимостей:
[09:11:01] <cyb3rpadla> 1)   уязвимости в микро-программах и прошивках ПЗУ, ППЗУ; 
[09:11:50] <cyb3rpadla> 2) уязвимости в средствах операционной системы, которые обеспечивают выполнение функций управления процессами, памятью, устройствами ввода/вывода и пользовательским интерфейсом, а также в драйверах и утилитах;
[09:11:58] <cyb3rpadla> 3) уязвимости в инструментах операционной системы, предназначенных для выполнения вспомогательных функций;
[09:12:16] <cyb3rpadla> 4) уязвимости в программах, предоставляющих пользователю дополнительные услуги (утилитах), таких как архиваторы, программы дефрагментации, проверки и уплотнения диска диска и др., в системных обрабатывающих программах (компиляторах, компоновщиках, отладчиках и т.п.), в библиотеках процедур различного назначения, например, математических функций, функций ввода/вывода и др.;
[09:12:19] <cyb3rpadla> 5) уязвимости в сетевых средствах операционной системы. 
[09:12:47] <cyb3rpadla> На последнем пункте остановимся подробнее. Уязвимости протоколов сетевого взаимодействия имеют четкую корреляцию с особенностями их программной реализации. Ограниченная память применяемого буфера, несовершенства процедуры аутентификации, отсутствие системы контроля за достоверностью служебной информации - эти и другие подобные факторы служат для уязвимостей благодатной почвой.
[09:13:13] <cyb3rpadla> Весь интернет базируется на наборе протоколов TCP/IP, как вы знаете. Типичными (но не единственными) уязвимостями отдельных компонентов данного стека являются:
[09:13:23] <cyb3rpadla> 1) Аутентификация, основанная на открытом тексте (пересылка паролей в незашифрованном виде) - в основном это протокол HTTP;
[09:13:27] <cyb3rpadla> 2)  Доступ по умолчанию; 
[09:13:34] <cyb3rpadla> 3) Отсутствие системы контроля за перегрузкой буфера и предотвращения таковой; 
[09:13:41] <cyb3rpadla> 4) Отсутствие механизма проверки подлинности управляющих сообщений о перенаправлении пакета/изменении маршрута; 
[09:13:47] <cyb3rpadla> 5) Отсутствие системы защиты от ошибок при заполнении служебных заголовков пакета; 
[09:13:55] <cyb3rpadla> 6) Отсутствие средств проверки подлинности данных, полученных от источника. 
[09:14:01] <cyb3rpadla> Повторюсь, это далеко не полный список. 
[09:14:22] <cyb3rpadla> Описания всевозможных видов уязвимостей можно найти в единой базе данных CVE (Common Vulnerabilities and Exposures). Подробнее об этом мы еще поговорим.
Кстати много информации собрано здесь: https://www.exploit-db.com/ (база пополняется ежедневно). Для человека в теме - ресурс обязательный к просмотру и мониторингу.
[09:14:33] <cyb3rpadla> Помимо вышеупомянутых уязвимостей, также существуют и уязвимости прикладного программного обеспечения. Вот лишь некоторые из которых:
[09:14:50] <cyb3rpadla> 1) различное программное обеспечение между собой не совместимо, то есть попросту не может функционировать в одной операционной среде (например, из-за конфликтов, связанных с распределением ресурсов системы);
[09:15:01] <cyb3rpadla> 2) параметры установлены таким образом, который дает возможность проникнуть в операционную среду информационной системы и вызвать ее определенные функции;
[09:15:15] <cyb3rpadla> 3) фрагменты кода программ, которые предусмотрены разработчиком, позволяют обходить процедуры идентификации, аутентификации, проверки целостности операционной системы и др.;
[09:15:26] <cyb3rpadla> 4) отсутствуют необходимые средства защиты (аутентификации, проверки целостности, проверки форматов сообщений, блокирования несанкционированно модифицированных функций и т.п.); 
[09:15:45] <cyb3rpadla> 5) ошибки в кодах программ, в объявлении переменных, функций и процедур, которые при определенных условиях (скажем, при выполнении логических переходов) ведут к сбоям. Так, сбои при работе средств и систем защиты информации дают возможность легко получить к ней несанкционированный доступ. 
[09:15:56] <cyb3rpadla> Мы уже вскользь упомянули про базу данных CVE. Так вот в ней собираются, обобщаются и анализируются сведения об уязвимостях разрабатываемого и распространяемого на коммерческой основе прикладного программного обеспечения. 
[09:16:26] <cyb3rpadla> Относительно оценки и понимания угроз, есть устоявшаяся модель, разработанная, кстати говоря, компанией Майкрософт, - STRIDE.
[09:16:45] <cyb3rpadla> Аббревиатура STRIDE собрана по первым буквам названий шести состояний информационной системы, подверженных угрозам:
[09:16:58] <cyb3rpadla> Аутентичность (spoofing) - это характеристика, означающая, что объект, о котором идет речь, является настоящим, подлинным, не поддельным.  Т.е. например сертификат сайт является подлинным. 
[09:17:16] <cyb3rpadla> Целостность  (tampering) - соответствие имеющейся информации её внутренней логике, структуре и всем явно заданным правилам. Например ограничение поля на ввод имени, все данные отвечают некоторым условиям и требованиям 
[09:17:32] <cyb3rpadla> Апеллируемость (repudiation) – гарантия того, что информацию можно привязать к ее автору и при необходимости доказать, что автором сообщения является он. Доказательства аутентичности. 
[09:17:42] <cyb3rpadla> Конфиденциальность (information disclosure) - степень хранения информации с определенным доступом лиц. Например твои паспортные данные или список ордеров твоих на алике.   
[09:18:15] <cyb3rpadla> Доступность (denial of service) - состояние информации (ресурсов автоматизированной информационной системы), при котором субъекты, имеющие права доступа, могут реализовывать их беспрепятственно. К правам доступа относятся: право на чтение, изменение, хранение, копирование, уничтожение информации, а также права на изменение, использование, уничтожение ресурсов. Например конфиденциальный доступ за счет апеллируемость на основе аутентичности. 
[09:18:38] <cyb3rpadla> Авторизованность (elevation of privilege) - фактическое разрешение на распространение или использование информации на основе доступности 
[09:18:52] <cyb3rpadla> Кстати любой может сгенерить себе серт, и ваша фейковая страница будет с замочком. Кто полезет проверять замочек - да никто! 
[09:19:13] <cyb3rpadla> Перечисленные состояния охватывают весь спектр возможных угроз целостности информационной системы.
Очевидно, что далеко не каждая угроза актуальна для всех объектов информационной системы. Чтобы выявить актуальные угрозы, разрабатываются индивидуальные модели. Подходов к построению моделей угроз предостаточно, и в рамках данного обучения смысла их анализировать нет.
[09:20:04] <cyb3rpadla> Формально уязвимость можно охарактеризовать как совокупность факторов и условий, которые способствуют реализации той или иной угрозы в отношении информационной системы целиком или отдельных ее компонентов. Необходимо понимать, что всего одна уязвимость может способствовать реализации сразу нескольких угроз. 
Что касается методик оценки рисков, их огромное множество и все это, конечно, из теории информационной безопасности или даже риск-менеджмента. Нам вряд ли пригодится.
Разве что, если кто-то не захочет стать пен-тестером или специалистом в области информационной безопасности, но для этих целей существуют совсем другие обучения. 
[09:20:12] <cyb3rpadla> И еще буквально пару слов о CVE - базе всех известных уязвимостей. 
[09:20:41] <cyb3rpadla> Главное отличие CVE от любой Bugtrack-ленты - все собранные в ней уязвимости имеют строгую характеристику по описательным критериям.
Официальный сайт базы - cve.mitre.org/data/downloads. 
Также полная версия CVE доступна в Национальной Базе Уязвимостей США (nvd.nist.gov).
[09:21:20] <cyb3rpadla> Записи в базе имеют (плюс-минус) следующий вид: CVE ID, Reference и Description. Поле ID содержит код и порядковый номер. Пример: CVE-2020-01.  В поле Reference отображаются ссылки на патчи, рекомендуемые дополнительные материалы, а также комментарии разработчика.  Поле Description, как можно догадаться, отвечает за описание уязвимости. 
[09:21:44] <cyb3rpadla> База CVE является многопрофильной. Это означает, что в ней есть данные не только о клиентских уязвимостях или, к примеру, она не ограничена только лишь WEB-протоколом. 
[09:21:55] <cyb3rpadla> Зачем CVE нужна, думаю, и так понятно. Но вот откуда она взялась? 
[09:22:25] <cyb3rpadla> Дело в том, что в целях реализации политики неразглашения (non- disclosure) или же, напротив, разглашения информации многие компании занимаются поиском уязвимостей того или иного продукта. Нередко при исследовании продукта сразу несколькими компаниями одна и та же уязвимость получала разные названия. Возникала путаница. Стало ясно, что единый стандарт просто необходим.
На этом сегодня все. Ставьте знак вопроса я вызову.
[09:24:40] <denisdawydow> Посоветуйте пожалуйста в какой книге или материале в более доступной форме можно ознакомиться  с моделью сетевого взаимодействия OSI 
[09:25:38] <cyb3rpadla> интернет, компьтерные системы и сети 
[09:25:58] <Soulman> В самом начале лекции было указано что будет освещен маериал по инсталлам, инжектам и др. Это когда будет? 
[09:26:13] <cyb3rpadla> в сл лекциях

Комментариев нет:

Отправить комментарий