Делает ли неоднозначность имен файлов на сервере безопасностью?

1

Я работаю над системой, которая имеет неоднозначные имена файлов для вызовов сервера (для мобильного приложения). Например, если у меня есть запрос на регистрацию пользователя, файл можно вызвать из r.php или df.php(random). Логика (когда система была изначально построена) заключается в том, что это поможет предотвратить угадывание имен файлов и злоупотребление вызовами сервера.

Это действительно что-то делает? Все, что нужно сделать, это запустить трассировку пакетов или использовать декомпилятор, чтобы узнать, какие вызовы HTTP вызывают. (и реально, любой, кто хочет злоупотреблять HTTP-запросами, знал бы, как сделать один или оба из этих "трюков")

Кроме того, с растущими именами файлов, сохранение всех имен файлов в порядке становится болью.

Неправильная практика заключается в том, чтобы наш регистрационный файл просто был register.php или newUser.php?

Теги:
server

1 ответ

1
Лучший ответ

Короче нет. Безопасность через неясность не является безопасностью [1].

Во-первых, имя файла имеет очень мало общего с раскрытием URI запроса, который всегда отображается клиенту UA в текстовом виде. Таким образом, никакая трассировка пакетов или "декомпилятор" здесь не требуется, чтобы выявлять данные запроса/ответа по HTTP.

Во-вторых, когда вы думаете о фактических видах злоупотреблений, которые вы хотели бы предотвратить в системе входа (например, атаки с использованием грубой силы, автоматическая регистрация и т.д.), Ни одна из них не может быть предотвращена путем рандомизации конечного URI, так как он в конечном итоге всегда должен быть виден клиенту в конце дня. Неважно, пытаетесь ли вы скрыть его от них напрямую или нет, вам нехорошо. В основном потому, что люди, с которыми вам удалось бы спрятаться, - это не те люди, которых вы боитесь атаковать вас (т.е. Не люди, которые могут на самом деле сделать вашу систему какой-либо вред). Таким образом, вы ничего не сделали, сделав это.

Вместо этого вам нужны измеримые секреты (и секреты - это огромное отличие от неясности в практике техники безопасности), которые могут либо помешать, либо предотвратить вмешательство системы независимо от ее реализации [2].

Чтобы дать вам пример, система регистрации с ограничением скорости. Регулируя количество попыток входа в определенную учетную запись пользователя или из определенного диапазона IP/диапазона, вы можете эффективно препятствовать усилиям грубой силы, достаточным для предотвращения попыток атакующего. Тот факт, что они знают, что этот предел скорости существует, не обязательно обуславливает их дальнейшую попытку обойти вашу безопасность, поскольку предел скорости все еще находится под полным контролем вашей системы. Принимая во внимание, что, скрывая URI конечной точки, все, что им нужно сделать, это проверить заголовки HTTP-запроса/ответа, чтобы найти этот URI, и вы все равно остаетесь беззащитными.


[1] https://en.wikipedia.org/wiki/Security_through_obscurity

[2] https://security.stackexchange.com/questions/44094/isnt-all-security-through-obscurity

  • 0
    Это невероятно полезно. Я посмотрю в измеримые секреты.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню