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

Материал из Википедии — свободной энциклопедии
Перейти к навигации Перейти к поиску
[непроверенная версия][непроверенная версия]
Содержимое удалено Содержимое добавлено
См. также: добавлено упоминание изолированной статьи "Деревья атак"
 
(не показано 66 промежуточных версий 43 участников)
Строка 1: Строка 1:
{{другое значение|У этого термина существуют и другие значения, см. [[уязвимость]].}}
{{другие значения|Уязвимость}}
В [[компьютерная безопасность|компьютерной безопасности]], термин '''уязвимость''' ({{lang-en|vulnerability}}) используется для обозначения недостатка в системе, используя который, можно нарушить её целостность и вызвать неправильную работу. Уязвимость может быть результатом [[баг|ошибок программирования]], недостатков, допущенных при проектировании системы, ненадежных [[Пароль|паролей]], [[Компьютерный вирус|вирусов]] и других [[Вредоносная программа|вредоносных программ]], скриптовых, а также [[Инъекция SQL|SQL-инъекций]]. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные [[эксплойт]]ы.
В [[компьютерная безопасность|компьютерной безопасности]] термин «'''уязвимость'''» ({{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}}).
Обычно уязвимость позволяет атакующему «обмануть» приложение — заставить его совершить действие, на которое у того не должно быть прав. Это делается путем внедрения каким-либо образом в программу данных или кода в такие места, что программа воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в [[интерпретатор|интерпретируемый]] код произвольные команды ([[SQL-инъекция]], [[Межсайтовый скриптинг|XSS]]). Другие уязвимости появляются из-за более сложных проблем, таких как запись данных в буфер без проверки его границ ([[переполнение буфера]]).


Обычно уязвимость позволяет атакующему «обмануть» приложение  выполнить непредусмотренные создателем действия или заставить приложение совершить действие, на которое у того не должно быть прав. Это делается путём внедрения каким-либо образом в программу данных или кода в такие места, что программа воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в [[интерпретатор|интерпретируемый]] код произвольные команды ([[SQL-инъекция]], [[Межсайтовый скриптинг|XSS]], [[SiXSS]]). Другие уязвимости появляются из-за более сложных проблем, таких как нарушение [[Безопасность доступа к памяти|безопасности при работе с памятью]], например [[переполнение буфера]]. Поиск уязвимостей иногда называют ''зондированием'', например когда говорят о зондировании удалённого компьютера — подразумевают, поиск открытых [[Порт (компьютерные сети)|сетевых портов]] и наличии уязвимостей, связанных с приложениями, использующими эти порты.<ref>{{cite book|title=Black Hat Python: Python Programming for Hackers|url=https://python.engineering/black-hat-python/|author=Justin Seitz|date=2021-04-14|ISBN=978-1718501126|publisher=No Starch Press}} {{Wayback|url=https://python.engineering/black-hat-python/ |date=20210826111249 }}</ref>
Метод информирования об уязвимостях является одним из пунктов спора в сообществе компьютерной безопасности. Некоторые специалисты отстаивают немедленное полное раскрытие информации об уязвимостях, как только они найдены. Другие советуют сообщать об уязвимостях только тем пользователям, которые подвергаются наибольшему риску, а полную информацию публиковать лишь после задержки или не публиковать совсем. Такие задержки могут позволить тем, кто был извещён, исправить ошибку при помощи разработки и применения [[патч]]ей, но также могут и увеличивать риск для тех, кто не посвящён в детали.


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


Существуют инструментальные средства, которые могут помочь в обнаружении уязвимостей в системе. Хоть эти инструменты могут обеспечить аудитору хороший обзор возможных уязвимостей, существующих в системе, они не могут заменить участие человека в их оценке.
Для обеспечения защищённости и целостности системы необходимо постоянно следить за ней: устанавливать обновления, и использовать инструменты, которые помогают противодействовать возможным атакам. Уязвимости обнаруживались во всех основных операционных системах, включая [[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}}
Распространённые типы уязвимостей включают в себя:
Распространённые типы уязвимостей включают в себя:
*Нарушения [[Безопасность доступа к памяти|безопасности доступа к памяти]], такие как:
* Нарушения [[Безопасность доступа к памяти|безопасности доступа к памяти]], такие как:
**[[Переполнение буфера|Переполнения буфера]]
** [[Переполнение буфера|Переполнения буфера]]
**[[Висящий указатель|Висящие указатели]]
** [[Висячий указатель|Висячие указатели]]
*Ошибки [[Проверка данных|проверки вводимых данных]], такие как:
* Ошибки [[Проверка данных|проверки вводимых данных]], такие как:
**[[Ошибка форматирующей строки|ошибки форматирующей строки]]
** [[Ошибки форматирующей строки]]
**Неверная поддержка интерпретации [[метасимвол|метасимволов]] [[Командная оболочка|командной оболочки]]
** Неверная поддержка интерпретации [[метасимвол]]ов [[Командная оболочка|командной оболочки]]
**[[SQL-инъекция]]
** [[SQL-инъекция]]
**[[Инъекция кода]]
** [[Инъекция кода]]
**[[E-mail инъекция]]
** [[E-mail инъекция|Инъекция E-mail]]
**[[Обход каталогов]]
** [[Обход каталогов]]
**[[Межсайтовый скриптинг]] в веб-приложениях
** [[Межсайтовый скриптинг]] в веб-приложениях
** [[SiXSS|Межсайтовый скриптинг при наличии SQL-инъекции]]
*[[Состояние гонки|Состояния гонки]], такие как:
* [[Состояние гонки|Состояния гонки]], такие как:
**Ошибки [[Время-проверки-ко-времени-использования|времени-проверки-ко-времени-использования]]
** Ошибки [[Время-проверки-ко-времени-использования|времени-проверки-ко-времени-использования]]
**[[Гонка символьных ссылок|Гонки символьных ссылок]]
** [[Гонка символьных ссылок|Гонки символьных ссылок]]
*Ошибки [[Проблема путаницы привилегий|путаницы привилегий]], такие как:
* Ошибки [[Проблема путаницы привилегий|путаницы привилегий]], такие как:
**[[Подделка межсайтовых запросов]] в веб-приложениях
** [[Подделка межсайтовых запросов]] в веб-приложениях
*[[Эскалация привилегий]], такие как:
* [[Эскалация привилегий]], такие как:
**[[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}}
* [https://packetstormsecurity.com/ Packet Storm (vulnerability and tool archives)]{{ref-en}}
* [http://www.packetstormsecurity.org/ Packet Storm (vulnerability and tool archives)]{{ref-en}}
* [https://vigilance.fr/ Vigilance vulnerability archive]{{ref-en}}{{ref-fr}}
* [https://www.nist.gov/itl/ssd/software-quality-group/samate NIST Software Assurance Metrics and Tool Evaluation (SAMATE) project]{{ref-en}}
* [http://vigilance.fr/ Vigil@nce vulnerability archive]{{ref-en}}{{ref-fr}}
* [https://www.securitylab.ru/vulnerability/ База уязвимостей на русском языке с 1997 года]{{ref-ru}}
* [http://samate.nist.gov/ NIST Software Assurance Metrics and Tool Evaluation (SAMATE) project]{{ref-en}}
* [https://pvs-studio.ru/ru/blog/posts/cpp/0178/ Безопасность, безопасность! А вы её тестируете? ] // Андрей Карпов, 07.11.2012, Viva64
* [http://sreport.ru/live.php/ Живой поиск по базе уязвимостей]{{ref-ru}}
* [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}}
* [http://www.xakep.ru/post/48221/default.asp Классификаторы и метрики компьютерных уязвимостей]
* [http://bo0om.ru Блог о уязвимостях и защите]
* [http://websound.ucoz.com/ Безопасность Windows]
* [http://www.surfpatrol.ru/report/ Проверка уязвимостей браузера и плагинов]


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

[[ar:هشاشة (علم الحاسوب)]]
[[ca:Vulnerabilitat (informàtica)]]
[[cs:Zranitelnost]]
[[de:Sicherheitslücke (Software)]]
[[en:Vulnerability (computing)]]
[[es:Agujero de seguridad]]
[[fi:Tietoturva-aukko]]
[[fr:Vulnérabilité (informatique)]]
[[he:פרצת אבטחה]]
[[hu:Biztonsági rés]]
[[it:Vulnerabilità]]
[[ja:セキュリティホール]]
[[ko:보안 취약점]]
[[lv:Drošības caurums]]
[[pt:Vulnerabilidade]]
[[sv:Säkerhetshål]]
[[th:ช่องโหว่ (คอมพิวเตอร์)]]
[[uk:Уразливість]]
[[zh:计算机安全隐患]]

Текущая версия от 10:48, 16 августа 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