Уязвимость (компьютерная безопасность): различия между версиями

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[отпатрулированная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Метки: с мобильного устройства из мобильной версии
 
(не показано 45 промежуточных версий 30 участников)
Строка 1: Строка 1:
{{другие значения|Уязвимость}}
{{другие значения|Уязвимость}}
В [[компьютерная безопасность|компьютерной безопасности]] термин «'''уязвимость'''» ({{lang-en|vulnerability}}) используется для обозначения недостатка в системе, используя который, можно намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом [[|ошибок программирования]], недостатков, допущенных при проектировании системы, ненадежных [[Пароль|паролей]], [[Компьютерный вирус|вирусов]] и других [[Вредоносная программа|вредоносных программ]], скриптовых и [[Инъекция SQL|SQL-инъекций]]. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные [[эксплойт]]ы.


Уровень опасности уязвимостей делится на пять ступеней по возрастанию своей критичности: недочёт ({{lang-en|None vulnerability}}), несерьёзная уязвимость ({{lang-en|Low vulnerability}}), средняя уязвимость ({{lang-en|Medium vulnerability}}), серьёзная уязвимость ({{lang-en|High vulnerability}}) и критическая уязвимость ({{lang-en|Critical vulnerability}}).
В [[компьютерная безопасность|компьютерной безопасности]] термин «'''уязвимость'''» ({{lang-en|vulnerability}}) используется для обозначения недостатка в системе, используя который, можно намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом [[баг|ошибок программирования]], недостатков, допущенных при проектировании системы, ненадежных [[Пароль|паролей]], [[Компьютерный вирус|вирусов]] и других [[Вредоносная программа|вредоносных программ]], скриптовых и [[Инъекция SQL|SQL-инъекций]]. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные [[эксплойт]]ы.


Обычно уязвимость позволяет атакующему «обмануть» приложение — заставить его совершить действие, на которое у того не должно быть прав. Это делается путем внедрения каким-либо образом в программу данных или кода в такие места, что программа воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в [[интерпретатор|интерпретируемый]] код произвольные команды ([[SQL-инъекция]], [[Межсайтовый скриптинг|XSS]], [[SiXSS]]). Другие уязвимости появляются из-за более сложных проблем, таких как запись данных в буфер без проверки его границ ([[переполнение буфера]]). Поиск уязвимостей иногда называют ''зондированием'', например когда говорят о зондировании удалённого компьютера — подразумевают, поиск открытых [[Порт (компьютерные сети)|сетевых портов]] и наличии уязвимостей, связанных с приложениями, использующими эти порты.
Обычно уязвимость позволяет атакующему «обмануть» приложение — заставить совершить действие, на которое у того не должно быть прав. Это делается внедрения каким-либо образом в программу данных или кода в такие места, что программа воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в [[интерпретатор|интерпретируемый]] код произвольные команды ([[SQL-инъекция]], [[Межсайтовый скриптинг|XSS]], [[SiXSS]]). Другие уязвимости появляются из-за более сложных проблем, таких как [[переполнение буфера]]. Поиск уязвимостей иногда называют ''зондированием'', например когда говорят о зондировании удалённого компьютера — подразумевают, поиск открытых [[Порт (компьютерные сети)|сетевых портов]] и наличии уязвимостей, связанных с приложениями, использующими эти порты.


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


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


Для обеспечения защищённости и целостности системы необходимо постоянно следить за ней: устанавливать обновления, использовать инструменты, которые помогают противодействовать возможным атакам. Уязвимости обнаруживались во всех основных операционных системах, включая [[Microsoft Windows]], [[Mac OS]], различные варианты [[UNIX]] (в том числе [[GNU/Linux]]) и [[OpenVMS]]. Так как новые уязвимости находят непрерывно, единственный путь уменьшить вероятность их использования против системы — постоянная бдительность.
Для обеспечения защищённости и целостности системы необходимо постоянно следить за ней: устанавливать обновления, использовать инструменты, которые помогают противодействовать возможным атакам. Уязвимости обнаруживались во всех основных операционных системах, включая [[Microsoft Windows]], [[Mac OS]], различные варианты [[UNIX]] (в том числе [[GNU/Linux]]) и [[OpenVMS]]. Так как новые уязвимости находят непрерывно, единственный путь уменьшить вероятность их использования против системы — постоянная бдительность.

=== Выявление уязвимостей ===
Для выявления уязвимостей проводятся [[Pentest|пентесты]], в ходе которых обычно определяется перечень проверяемых систем и конкретная цель, а затем анализируется доступная информация и подбираются средства для достижения этой цели. Целью теста на проникновение может быть «''белый ящик''» (о котором предварительная и системная информация предоставляется тестировщику заранее) или «''черный ящик''» (о котором предоставляется только основная информация — если таковая имеется — кроме названия компании).

=== Система управления информационной безопасностью ===
Набор политик, относящихся к [[Система менеджмента информационной безопасности|системе менеджмента информационной безопасности]] (ISMS), был разработан для управления контрмерами, чтобы стратегия безопасности была реализована в соответствии с правилами и положениями, применимыми к данной организации.<ref name=Vacca>{{cite book
|last1= Wright
|first1=Joe
|first2 = Jim | last2 = Harmening
|editor-last=Vacca
|editor-first=John
|title=Computer and Information Security Handbook
|url= https://archive.org/details/computerinformat0000unse_y3h5/page/257
|series=Morgan Kaufmann Publications
|year=2009
|publisher= Elsevier Inc
|isbn= 978-0-12-374354-1
|page=257
|chapter=15
}}
</ref>

=== Модели уязвимости и факторов риска ===
Ресурс (физический или логический) может иметь одну или несколько уязвимостей, которыми может воспользоваться злоумышленник. Результат может потенциально поставить под угрозу конфиденциальность, целостность или доступность ресурсов, принадлежащих организации и / или другим вовлеченным сторонам (клиентам, поставщикам).<ref>{{cite book|title=CEH v11 Certified Ethical Hacker Study Guide|author=Ric Messier|date=2021|url=https://python.engineering/ceh-v11-certified-ethical-hacker-study-guide/|ISBN=9781119800286}} {{Wayback|url=https://python.engineering/ceh-v11-certified-ethical-hacker-study-guide/ |date=20211027111016 }}</ref>


== Примеры уязвимостей ==
== Примеры уязвимостей ==
{{Список примеров |дата=2024-05-24}}
Распространённые типы уязвимостей включают в себя:
Распространённые типы уязвимостей включают в себя:
* Нарушения [[Безопасность доступа к памяти|безопасности доступа к памяти]], такие как:
* Нарушения [[Безопасность доступа к памяти|безопасности доступа к памяти]], такие как:
** [[Переполнение буфера|Переполнения буфера]]
** [[Переполнение буфера|Переполнения буфера]]
** [[Висящий указатель|Висящие указатели]]
** [[ указатель| указатели]]
* Ошибки [[Проверка данных|проверки вводимых данных]], такие как:
* Ошибки [[Проверка данных|проверки вводимых данных]], такие как:
** [[Ошибки форматирующей строки]]
** [[Ошибки форматирующей строки]]
Строка 21: Строка 47:
** [[SQL-инъекция]]
** [[SQL-инъекция]]
** [[Инъекция кода]]
** [[Инъекция кода]]
** [[E-mail инъекция]]
** [[E-mail инъекция]]
** [[Обход каталогов]]
** [[Обход каталогов]]
** [[Межсайтовый скриптинг]] в веб-приложениях
** [[Межсайтовый скриптинг]] в веб-приложениях
Строка 32: Строка 58:
* [[Эскалация привилегий]], такие как:
* [[Эскалация привилегий]], такие как:
** [[Shatter attack]]
** [[Shatter attack]]
* [[Уязвимость нулевого дня]]


== См. также ==
== См. также ==
{{Викисловарь|уязвимость}}
{{Викисловарь|уязвимость}}
* [[Недекларированные возможности]]
* [[Недекларированные возможности]]

== Примечания ==
{{примечания}}


== Ссылки ==
== Ссылки ==
* [http://www.osvdb.org/ Open Source Vulnerability Database homepage]{{ref-en}}
* [http://www.osvdb.org/ Open Source Vulnerability Database homepage]{{ref-en}}
* [http://www.securityfocus.com/bid Security Focus Vulns Archive]{{ref-en}}
* [://.com/ ]{{ref-en}}
* [http://www.packetstormsecurity.org/ Packet Storm (vulnerability and tool archives)]{{ref-en}}
* [://./ vulnerability ]{{ref-en}}
* [://.nist.gov/ NIST Software Assurance Metrics and Tool Evaluation (SAMATE) project]{{ref-en}}
* [http://vigilance.fr/ Vigil@nce vulnerability archive]{{ref-en}}{{ref-fr}}
* [://www.securitylab.ru/vulnerability/ База уязвимостей на русском языке с 1997года]{{ref-ru}}
* [http://samate.nist.gov/ NIST Software Assurance Metrics and Tool Evaluation (SAMATE) project]{{ref-en}}
* [://./ru//0178/ Безопасность, безопасность! А вы её тестируете? ] // Андрей Карпов, 07.11.2012, Viva64
* [http://www.securitylab.ru/vulnerability/ База уязвимостей на русском языке с 1997 года]{{ref-ru}}
* [https://vulners.com/ Vulners (vulnerability database)]{{ref-en}} — база уязвимостей Kirill Ermakov (Qiwi) на основе CVE, Debian patches, CentOS bulletins, ExploitDB и др.
* [http://slovari.yandex.ru/dict/gl_natural/article/151/151_191.HTM?text=%D1%83%D1%8F%D0%B7%D0%B2%D0%B8%D0%BC%D0%BE%D1%81%D1%82%D1%8C Определение понятия уязвимость. Словарь Глоссарий.ру]{{ref-ru}}{{deadlink}}
* [http://www.xakep.ru/post/48221/default.asp Классификаторы и метрики компьютерных уязвимостей] //15.05.2009, Андрей «skvz» Комаров, Xakep
* [http://www.viva64.com/ru/b/0178/ Безопасность, безопасность! А вы её тестируете? ] // Андрей Карпов, 07.11.2012, Viva64


[[Категория:Уязвимости защиты]]
[[Категория:Уязвимости защиты]]
[[Категория:Информационная безопасность]]
[[Категория:Информационная безопасность]]

Текущая версия от 21:50, 15 июля 2024

В компьютерной безопасности термин «уязвимость» (англ. vulnerability, на сленге — дыра) используется для обозначения недостатка в системе, используя который, можно намеренно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании системы, ненадежных паролей, вирусов и других вредоносных программ, скриптовых и SQL-инъекций. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные эксплойты.

Уровень опасности уязвимостей делится на пять ступеней по возрастанию своей критичности: недочёт (англ. None vulnerability), несерьёзная уязвимость (англ. Low vulnerability), средняя уязвимость (англ. Medium vulnerability), серьёзная уязвимость (англ. High vulnerability) и критическая уязвимость (англ. Critical vulnerability).

Обычно уязвимость позволяет атакующему «обмануть» приложение — выполнить непредусмотренные создателем действия или заставить приложение совершить действие, на которое у того не должно быть прав. Это делается путём внедрения каким-либо образом в программу данных или кода в такие места, что программа воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в интерпретируемый код произвольные команды (SQL-инъекция, XSS, SiXSS). Другие уязвимости появляются из-за более сложных проблем, таких как нарушение безопасности при работе с памятью, например переполнение буфера. Поиск уязвимостей иногда называют зондированием, например когда говорят о зондировании удалённого компьютера — подразумевают, поиск открытых сетевых портов и наличии уязвимостей, связанных с приложениями, использующими эти порты.[1]

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

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

Для обеспечения защищённости и целостности системы необходимо постоянно следить за ней: устанавливать обновления, использовать инструменты, которые помогают противодействовать возможным атакам. Уязвимости обнаруживались во всех основных операционных системах, включая Microsoft Windows, Mac OS, различные варианты UNIX (в том числе GNU/Linux) и OpenVMS. Так как новые уязвимости находят непрерывно, единственный путь уменьшить вероятность их использования против системы — постоянная бдительность и использование обновленных версий ПО.

Выявление уязвимостей

[править | править код]

Для выявления уязвимостей проводятся пентесты, в ходе которых обычно определяется перечень проверяемых систем и конкретная цель, а затем анализируется доступная информация и подбираются средства для достижения этой цели. Целью теста на проникновение может быть «белый ящик» (о котором предварительная и системная информация предоставляется тестировщику заранее) или «черный ящик» (о котором предоставляется только основная информация — если таковая имеется — кроме названия компании).

Система управления информационной безопасностью

[править | править код]

Набор политик, относящихся к системе менеджмента информационной безопасности (ISMS), был разработан для управления контрмерами, чтобы стратегия безопасности была реализована в соответствии с правилами и положениями, применимыми к данной организации.[2]

Модели уязвимости и факторов риска

[править | править код]

Ресурс (физический или логический) может иметь одну или несколько уязвимостей, которыми может воспользоваться злоумышленник. Результат может потенциально поставить под угрозу конфиденциальность, целостность или доступность ресурсов, принадлежащих организации и / или другим вовлеченным сторонам (клиентам, поставщикам).[3]

Примеры уязвимостей

[править | править код]

Распространённые типы уязвимостей включают в себя:

Примечания

[править | править код]
  1. Justin Seitz. Black Hat Python: Python Programming for Hackers. — No Starch Press, 2021-04-14. — ISBN 978-1718501126. Архивная копия от 26 августа 2021 на Wayback Machine
  2. Wright, Joe. 15 // Computer and Information Security Handbook / Joe Wright, Jim Harmening. — Elsevier Inc, 2009. — P. 257. — ISBN 978-0-12-374354-1.
  3. Ric Messier. CEH v11 Certified Ethical Hacker Study Guide. — 2021. — ISBN 9781119800286. Архивная копия от 27 октября 2021 на Wayback Machine