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