Безопасность AWS API Gateway - PullRequest
1 голос
/ 31 марта 2019

У меня есть следующий URL-адрес для вызова служб за шлюзом API: https://< random-key> .execute-api..amazonaws.com / prod / ..., пока я не включил ключ API и авторизацию.

Вопрос: это достаточно безопасно? бакалавр естественных наук сказал, что это небезопасно, потому что любой может использовать URL для вызова моих служб за URL, не только я. Одним из решений является то, что я могу включить ключ API и прикрепить ключ API в качестве заголовка запроса при вызове URL. Другое решение - использовать AWS Cognito и т. Д.

Почему это не безопасно? уже не является своего рода учетными данными? Только я знаю этот и даю api url с только человеку, которому доверяю, никто больше не знает, что такое URL. И если сб. действительно хочет шпионить , тогда присоединение API-ключа не помогает, потому что если человек может украсть , он также может украсть API-ключ.

Я понимаю, что API-шлюз также может использовать AWS cognito для аутентификации. то есть, когда человек получает доступ к URL, ему будет предложено ввести учетные данные (пользователь / пароль), но опять же, эти учетные данные также могут быть украдены, так же, как могут быть украдены и API Key.

IMO, использование , API-ключа и учетных данных - это одно и то же. вот почему я думаю, что мне просто нужно установить API-шлюз как общедоступный без включения API-шлюза и AWS cogonito.

Я прав? Кто-нибудь может объяснить, почему использование API Gateway или AWS cognito более безопасно, чем без их использования?

Еще один вопрос, связанный с вышеуказанным вопросом: поскольку в URL-адресе используется https, не будет ли зашифрован сам URL-адрес (включая ), а заголовок запроса, такой как ключ API, и содержимое в виде имени пользователя / пароля будут зашифрованы?

1 Ответ

3 голосов
/ 31 марта 2019

Безопасность через неизвестность - это все равно что хоронить ваши деньги под деревом.Единственное, что делает его безопасным, - никто не знает, что оно там.

Самый важный фактор безопасности - это всегда риск .Мы никогда не сможем создать совершенно безопасную систему, мы можем только попытаться сбалансировать стоимость атаки на систему и стоимость ее взлома.Поэтому прежде всего я бы спросил: что за риск, если кто-то знает URL вашего API?

Вы правы - это минимальная форма безопасности.Просто не более того.

Задайте себе несколько вопросов:

  • Что злоумышленник может узнать по ответу? - если вы простоЧтобы начать получать ответы, нужно знать, что что-то существует, вы можете начать тестировать его, чтобы увидеть, как оно себя ведет.Вы можете помешать этому, подавив ВСЕ ответы, но это может негативно повлиять на ваших законных клиентов, поэтому вы спрашиваете ...

  • Могу ли я ограничить то, что злоумышленник может узнать по ответу? - если злоумышленнику требуется дополнительная информация для построения законного запроса , вы можете ограничить и ограничить все недопустимые запросы.

И вопросы продолжаютсяэскалировать оттуда.Все сводится к рентабельности инвестиций - какова ценность того, что вы защищаете, какова площадь атаки и какова вероятность того, что она будет нарушена?Самое главное - это доверие ваших клиентов и пользователей. Как профессионалы, мы должны защищать целостность информации, которой мы доверяем.

Отдельный вопрос по HTTPS (TLS / SSL), что защищено, а что нет, от третьей стороныслушатели?Краткий ответ: если вы запрашиваете foo.com/bar, имя хоста (foo.com) видимо любому, кто хочет знать, но путь (/bar) - нет;файлы cookie, заголовки и все остальное, включенное в запрос, являются безопасными.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...