Инструменты пользователя

Инструменты сайта


уязвимость

Уязвимость

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

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

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

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

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

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

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

  • Нарушения безопасности доступа к памяти, такие как:
    • Переполнения буфера
    • Висячие указатели
  • Ошибки проверки вводимых данных, такие как:
    • Ошибки форматирующей строки
    • Неверная поддержка интерпретации метасимволов командной оболочки
    • SQL-инъекция
    • Инъекция кода
    • E-mail инъекция
    • Обход каталогов
    • Межсайтовый скриптинг в веб-приложениях
    • Межсайтовый скриптинг при наличии SQL-инъекции
  • Состояния гонки, такие как:
    • Ошибки времени-проверки-ко-времени-использования
    • Гонки символьных ссылок
  • Ошибки путаницы привилегий, такие как:
    • Подделка межсайтовых запросов в веб-приложениях
  • Эскалация привилегий, такие как:
    • Shatter attack
  • Уязвимость нулевого дня

Ссылки

уязвимость.txt · Последние изменения: 2016/12/23 14:20 — Павел Кульков