Угроза, уязвимость, риск, эксплойт: словарь
Чтобы говорить о безопасности точно, нужно различать четыре близких, но разных понятия.
Уязвимость — слабое место в системе. Угроза — то, что может это слабое место использовать. Риск — вероятность ущерба и его величина. Эксплойт — конкретный способ воспользоваться уязвимостью.
Аналогия с дверью
Представьте дом. Уязвимость — сломанный замок на двери. Угроза — вор, который может прийти. Эксплойт — отмычка, которой он откроет сломанный замок. Риск — насколько вероятно, что вор придёт именно к вам, и сколько вы потеряете. Эта аналогия помогает не путать термины.
Разбираем по отдельности
Уязвимость (vulnerability)
Дефект, который можно использовать во вред: непроверенный пользовательский ввод, устаревшая библиотека с известной дырой, пароль по умолчанию. Уязвимость существует независимо от того, знает ли о ней кто-то.
Угроза (threat)
Потенциальный источник вреда: злоумышленник, вредоносная программа, но также неосторожный сотрудник или даже стихийное бедствие для серверной. Угроза опасна только тогда, когда есть соответствующая уязвимость.
Эксплойт (exploit)
Конкретная техника или код, который использует уязвимость. Если уязвимость — это открытое окно, то эксплойт — лестница, приставленная к нему. В защитном контексте нам важно понимать принцип работы эксплойта, чтобы закрыть уязвимость.
Риск (risk)
Сочетание вероятности и ущерба. Формула, которую держат в голове специалисты:
Риск ≈ Вероятность угрозы × Величина ущерба
Уязвимость в системе, которую никто никогда не атакует и где нет ценных данных, несёт низкий риск. Та же уязвимость в банковском приложении — критический риск.
Как это связано
Цепочка простая: есть уязвимость → существует угроза, способная её использовать → у угрозы есть эксплойт → возникает риск ущерба. Защита разрывает эту цепочку в самом дешёвом месте: чаще всего — устраняя уязвимость (обновили библиотеку, добавили проверку ввода).
| Термин | Что это | Пример |
| Уязвимость | слабое место | SQL-запрос склеен из строк |
| Угроза | источник вреда | злоумышленник в сети |
| Эксплойт | способ использовать дыру | специально сформированный ввод |
| Риск | вероятность × ущерб | высокий для банка, низкий для блога |
Что такое CVE
Когда в популярном продукте находят уязвимость, ей присваивают идентификатор вида CVE-2021-44228 в публичной базе. Так весь мир может ссылаться на одну и ту же проблему и понимать, обновлены ли их системы. Следить за CVE используемых библиотек — часть гигиены разработчика.
Итог
- Уязвимость — слабое место, угроза — источник вреда, эксплойт — способ, риск — вероятность × ущерб.
- Угроза опасна только при наличии уязвимости.
- Дешевле всего разрывать цепочку, устраняя уязвимость.
- CVE — публичный идентификатор известной уязвимости.