Всем привет! В последнее время мы в Awillix наблюдаем растущий интерес компаний к процессам безопасной разработки и много противоречивых мнений.
SSDLС – Secure Software development lifecycle исповедует идею, что в процессе разработки ПО нужно оценивать возможные уязвимости и сразу предусматривать меры, которые их нейтрализуют.
Качественный код и безопасный код — далеко не одно и тоже. Например:
У бизнеса есть сервис, позволяющий привязать накопительную скидочную карту к аккаунту клиента. Пользователю становится доступно накопление бонусных баллов. Бизнес-заказчик описывает разработчику задачу: после авторизации в личном кабинете, пользователю предлагается заполнить поля «Номер карты» и «sms-код». Если введенные данные верны — карта привязывается к пользователю и ему предоставляется скидка.
Разработчик реализует нужную форму и запрос к базе данных, в котором проверяется соответствие номера карты и коды. Программный код качественный, все тесты пройдены, ошибок нет. Обновление выкатывается в production, и в этот момент выясняется, что количество попыток ввода данных было неограниченно. В результате — злоумышленник, завладев номером карты, может подобрать sms-код простым перебором вариантов. Программный код в нашем примере оказался небезопасным.
Качество кода — определяется уровнем квалификации разработчиков. А его безопасность — в первую очередь зависит от анализа модели угроз.
Post #40
540