AWS Amplify небезопасен? - PullRequest
       80

AWS Amplify небезопасен?

0 голосов
/ 08 ноября 2019

Мне было поручено реализовать пользовательский поток Вход / Регистрация в реагирующем собственном приложении. В этом приложении нет ничего особенного. Обычные экраны входа, регистрации (с проверкой SMS) и сброса пароля достаточно. Поэтому я пошел искать поставщиков удостоверений. Auth0 и AWS Cognito были наиболее подходящими находками. Мои менеджеры посчитали Auth0 слишком дорогим, поэтому мы отказались от него. Что оставило меня с опцией Cognito.

Согласно документам , можно полностью заменить стандартный пользовательский интерфейс (что нравится команде UI / UX), но при этом использовать базовую инфраструктуру. Одна вещь, которая очень волнует нашу команду, это безопасность. Согласно this и this запросы на авторизацию должны выполняться только через внешних агентов (браузеры мобильных пользователей). Поэтому я покопался в исходном коде aws-ampify и обнаружил, что в конечном итоге то, что он делает (и исправьте меня, если я ошибаюсь здесь, пожалуйста), является простым запросом API к конечным точкам аутентификации AWS, передающим моиClientId и другие атрибуты.

Меня это немного беспокоит безопасность взаимодействия с AWS. Поскольку конечные точки AWS безопасны, я знаю, что атака с помощью mitm отбрасывается.

Но что удерживает злоумышленника от декомпиляции моего мобильного приложения, получения доступа к ClientId и отправки прямых запросов в AWS? Действительно ли AWS Amplify небезопасен или я что-то здесь упускаю?

1 Ответ

0 голосов
/ 13 ноября 2019

Существует множество атак, которые возможны, но на высоком уровне 3 выделяются
Компрометация учетных данных
Социальная инженерия
DoS

Компрометация учетных данных
Учетные данные вашей учетной записи не должны раскрыватьсяУчетные данные STS ограничены по времени, и вам необходимо специально предоставить разрешения пулу для доступа к службам aws
https://docs.aws.amazon.com/cognito/latest/developerguide/role-based-access-control.html вам нужно предоставить наименьшую привилегию, следуйте подходу, описанному здесь
https://docs.aws.amazon.com/IAM/latest/UserGuide/best-practices.html#grant-least-privilege

Атака на социальную инженерию
Я полагаю, можно использовать незащищенный ClientId из декомпилированного источника, но его необходимо будет объединить с другими пользовательскими данными, чтобы общее правило блокировало все, что связано с вашей учетной записью и могло быть объединено с клиентом. Идентификатор в социальной атаке

DOS
AWS предоставляет то, что он называет «повышенной безопасностью» в пулах https://docs.aws.amazon.com/cognito/latest/developerguide/cognito-user-pool-settings-advanced-security.html

, это должно потребоваться при сборке Cognito Apps, его всеобъемлющее

Угрозы безопасности постоянно развиваются, AWS отлично справляется со своей задачей, в вас есть преимущества для безопасностипеть
Cloudfront
https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/security.html

CloudTrail
https://aws.amazon.com/cloudtrail/

...