Принцип наименьшей привилегии
Каков принцип наименьших привилегий в безопасной разработке программного обеспечения? Как это может быть применено в программе смены паролей, где пользователи должны иметь возможность изменять свои собственные пароли, но им не должен предоставляться свободный доступ для чтения или изменения файла паролей, содержащего все пароли пользователей?
1 ответ
Я считаю, что это в принципе так и есть. Кодирование таким образом, чтобы пользователи могли ТОЛЬКО изменять часть файла паролей, содержащую их собственный пароль, вместо того, чтобы позволять им изменять весь файл просто для изменения своего пароля, является довольно хорошей идеей наименьших привилегий.
Представьте себе, у вас есть программа, которая считывает данные из файла паролей в буфер и позволяет вносить изменения в определенную часть буфера, содержащую пароль пользователя. Это небезопасно только потому, что может произойти переполнение буфера, что позволяет перезаписывать пользовательские данные за пределами данных пользователя.
Чтобы исправить это, вы можете изменить его так, чтобы каждому пользователю был предоставлен файл паролей, который принадлежит им и только им, или, возможно, вы могли бы использовать некоторые хитрые приемы, чтобы предотвратить переполнение буфера для других пользовательских данных.
Действительно, трудно привести пример, поскольку безопасное кодирование!== минимальная привилегия, учитывая, что первый - это способ кодирования, который сводит к минимуму недостатки в конечном продукте, подчеркивая строгость продукта от атак, в то время как последний просто способ предоставления разрешений пользователям через что-то вроде панели доступа, например, FTP или Linux.