Уязвимость (компьютерная безопасность): различия между версиями
[непроверенная версия] | [непроверенная версия] |
GENOMUS (обсуждение | вклад) →См. также: добавлено упоминание изолированной статьи "Деревья атак" |
|||
(не показано 66 промежуточных версий 43 участников) | |||
Строка 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}}). |
|||
⚫ | Обычно уязвимость позволяет атакующему «обмануть» приложение |
||
⚫ | Обычно уязвимость позволяет атакующему «обмануть» приложение — выполнить непредусмотренные создателем действия или заставить приложение совершить действие, на которое у того не должно быть прав. Это делается путём внедрения каким-либо образом в программу данных или кода в такие места, что программа воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в [[интерпретатор|интерпретируемый]] код произвольные команды ([[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]]. Так как новые уязвимости находят непрерывно, единственный путь уменьшить вероятность их использования против системы — постоянная бдительность и использование обновленных версий ПО. |
||
=== Выявление уязвимостей === |
|||
Для выявления уязвимостей проводятся [[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}} |
||
* [ |
* [https://packetstormsecurity.com/ Packet Storm (vulnerability and tool archives)]{{ref-en}} |
||
* [ |
* [https://vigilance.fr/ Vigilance vulnerability archive]{{ref-en}}{{ref-fr}} |
||
⚫ | |||
* [http://vigilance.fr/ Vigil@nce vulnerability archive]{{ref-en}}{{ref-fr}} |
|||
* [https://www.securitylab.ru/vulnerability/ База уязвимостей на русском языке с 1997 года]{{ref-ru}} |
|||
⚫ | |||
* [https://pvs-studio.ru/ru/blog/posts/cpp/0178/ Безопасность, безопасность! А вы её тестируете? ] // Андрей Карпов, 07.11.2012, Viva64 |
|||
* [http://sreport.ru/live.php/ Живой поиск по базе уязвимостей]{{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]
Примеры уязвимостей
[править | править код]Список примеров в этой статье не основывается на авторитетных источниках, посвящённых непосредственно предмету статьи. |
Распространённые типы уязвимостей включают в себя:
- Нарушения безопасности доступа к памяти, такие как:
- Ошибки проверки вводимых данных, такие как:
- Ошибки форматирующей строки
- Неверная поддержка интерпретации метасимволов командной оболочки
- SQL-инъекция
- Инъекция кода
- Инъекция E-mail
- Обход каталогов
- Межсайтовый скриптинг в веб-приложениях
- Межсайтовый скриптинг при наличии SQL-инъекции
- Состояния гонки, такие как:
- Ошибки путаницы привилегий, такие как:
- Подделка межсайтовых запросов в веб-приложениях
- Эскалация привилегий, такие как:
- Уязвимость нулевого дня
См. также
[править | править код]Примечания
[править | править код]- ↑ Justin Seitz. Black Hat Python: Python Programming for Hackers. — No Starch Press, 2021-04-14. — ISBN 978-1718501126. Архивная копия от 26 августа 2021 на Wayback Machine
- ↑ Wright, Joe. 15 // Computer and Information Security Handbook / Joe Wright, Jim Harmening. — Elsevier Inc, 2009. — P. 257. — ISBN 978-0-12-374354-1.
- ↑ Ric Messier. CEH v11 Certified Ethical Hacker Study Guide. — 2021. — ISBN 9781119800286. Архивная копия от 27 октября 2021 на Wayback Machine
Ссылки
[править | править код]- Open Source Vulnerability Database homepage (англ.)
- Packet Storm (vulnerability and tool archives) (англ.)
- Vigilance vulnerability archive (англ.) (фр.)
- NIST Software Assurance Metrics and Tool Evaluation (SAMATE) project (англ.)
- База уязвимостей на русском языке с 1997 года (рус.)
- Безопасность, безопасность! А вы её тестируете? // Андрей Карпов, 07.11.2012, Viva64
- Vulners (vulnerability database) (англ.) — база уязвимостей Kirill Ermakov (Qiwi) на основе CVE, Debian patches, CentOS bulletins, ExploitDB и др.