Уязвимость (компьютерная безопасность)

В компьютерной безопасности термин «уязвимость» (англ. 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