Поверхность атаки — это совокупность всех точек, через которые посторонний пользователь может попытаться проникнуть в систему, извлечь из нее данные или причинить вред.
Поверхность атаки часто используют как приблизительный показатель уязвимости системы. Меньшая поверхность атаки означает меньше способов проникновения для злоумышленника, поэтому ее сокращение — один из ключевых принципов проектирования безопасности. Однако стоит отметить, что меньшая поверхность атаки не уменьшает ущерб, который злоумышленник может нанести после того, как уже взломал систему. Она лишь снижает количество способов, которыми он может в нее проникнуть.
Чтобы найти способ проникновения, злоумышленнику часто достаточно всего одной уязвимой точки. В более сложных попытках он может сначала составить карту системы, перечислить ее устройства и соединения, а затем искать слабые места в каждой ноде, прежде чем выбрать цель для удара.
Сокращение поверхности атаки — распространенный способ сделать системы более защищенными. Вот несколько базовых мер, которые могут помочь:
Меньше кода: меньше строк кода обычно означает меньше потенциальных векторов атаки.
Ограничение точек входа: чем меньше способов получить доступ к системе, тем меньше остается возможностей для посторонних пользователей.
Отключение ненужных функций: отключение сервисов, которыми пользуется лишь небольшое число пользователей, убирает функциональность, на которую злоумышленники могли бы нацелиться.
В сочетании эти практики помогают сделать систему более простой и, как правило, более устойчивой к компрометации, хотя ни один подход не способен полностью устранить риск.