Обнаружение жестко закодированных паролей
Я пытался обнаружить жестко запрограммированные пароли в файлах исходного кода.
В настоящее время я проверяю назначение переменных и сравниваю идентификаторы с подстрокой, совпадающей с паролем, pswd.
Но это приводит к множеству ложных срабатываний, как в этом случае (Чтение паролей из файла конфигурации)
String PASSWORD_KEY = "server.password";
String password = prop.getProperty(PASSWORD_KEY);
Я могу выделить некоторые подстроки, такие как Key,location,path, для которых я могу пропустить генерацию ошибок, но кроме этого я не могу придумать лучшего подхода.
Все предложения приветствуются.
1 ответ
В реальных случаях скрытых бэкдоров выясняется, что код, как правило, гораздо более скрыт, чтобы использовать имя переменной, указывающее цель.
Таким образом, чтобы получить что-то надежное, вам нужно выполнить полный статический анализ и иметь "интеллект" в средстве проверки кода, чтобы понять код и найти, где происходит аутентификация, а затем работать в обратном направлении, чтобы убедиться, что для этого нет скрытых способов.,
ИМХО дешевле нанять кого-нибудь для проверки кода (безопасности), чем пытаться автоматизировать это.