ВЫЗОВ
Я разрабатываю простое приложение для новостей, где пользователи могут видеть последние новости без входа в систему, я не знаю, как сделать его безопасным
Ну, вы купили себе действительно огромную проблему, потому что даже если бы вам потребовалось, чтобы ваши пользователи вошли в систему, это было бы огромной проблемой, потому что сеть, как мы знаем, была разработана в их ранние времена с наивным предположением, что только добросовестные люди будут использовать его, поэтому становится очень трудной задачей обеспечить защиту того, что изначально не было разработано для обеспечения безопасности.
Для защиты и привязки сервера API к конкретному приложению c требуется что-то секретное для использования в каждом запросе для проверки подлинности Что выполняет запрос, но как только вы публикуете веб-приложение или мобильное приложение в общедоступном c, любой секретный ключ теперь находится в общедоступном c домен, поэтому больше не секрет, так как лучше использовать его в качестве слабого идентификатора.
Веб-приложение
Веб-приложение работает в Таким образом, все, что нужно сделать злоумышленнику, - это проверить исходный код страницы и извлечь секрет, а затем использовать его в автоматизированных сценариях или в ручных запросах от curl
или в таких инструментах, как Postman.
Мобильное приложение
Некоторые разработчики думают, что, поскольку мобильное приложение выпущено в виде двоичного файла, они могут просто поместить туда секрет, и никто не найдет его ... Ну, я должен сказать, что в прошлом я был одним из них, но потом я узнал, что существует множество инструментов с открытым исходным кодом, чтобы сделать эту задачу тривиальной, что даже сценарист может это сделать. Мой предпочтительный инструмент для этого - MobSF , и вы можете увидеть пример использования его в этой статье, которую я написал Как извлечь ключ API из мобильного приложения с помощью Stati c Двоичный анализ :
Ассортимент инструментов с открытым исходным кодом, доступных для реверс-инжиниринга, огромен, и мы действительно не можем вкратце рассказать об этой топике c в этой статье, но вместо этого мы сосредоточимся в использовании Mobile Security Framework (MobSF), чтобы продемонстрировать, как выполнить обратный инжиниринг APK нашего мобильного приложения. MobSF - это набор инструментов с открытым исходным кодом, которые представляют свои результаты на привлекательной панели инструментов, но те же инструменты, которые используются в MobSF и других местах, могут использоваться отдельно для достижения тех же результатов.
MobSF - Mobile Security Framework :
Mobile Security Framework - это автоматизированная универсальная платформа для тестирования пера мобильного приложения (Android / iOS / Windows), способная выполнять c анализ, динамический c анализ, анализ вредоносных программ и тестирование веб-API.
Вывод заключается в том, что после выпуска приложения любая конфиденциальная информация, отправленная в нем, должна рассматриваться как взломанная.
JWT и OAUTH2
Я прочитал, что следует использовать JWT с OAuth2, но, насколько я понимаю, пользователь должен войти в провайдер, чтобы получить токен
Да, пользователю потребуется войти в систему, чтобы получить токен OAuth, но любой тип токена, который приходит от имени пользователя, успешно идентифицируется. ifies Кто в запросе, а не Что выполняет запрос, и, по моему опыту, это очень распространенное заблуждение среди разработчиков, независимо от того, являются ли они младшим или старшим разработчиком .
Разница между ВОЗ и ЧТО обеспечивает доступ к API-серверу
Я написал серию статей о безопасности Mobile API и в статье Зачем вашему мобильному приложению нужен API Ключ? Вы можете подробно прочитать разницу между Кто и Что делает запрос на ваш сервер API:
что это то, что делает запрос к серверу API. Действительно ли это подлинный экземпляр вашего мобильного приложения, или это бот, автоматизированный скрипт или злоумышленник, вручную копающийся в вашем API-сервере с помощью такого инструмента, как Postman?
who является пользователем мобильного приложения, которое мы можем аутентифицировать, авторизовывать и идентифицировать несколькими способами, например, используя OpenID Connect или потоки OAUTH2.
Возможно, вы Удивлен, что иногда даже ваши пользователи git могут атаковать ваш API-сервер, чтобы попытаться получить выгоду от вашего сервиса, которая в противном случае не имела бы доступа.
ЗАЩИТА И БЛОКИРОВКА СЕРВЕРА API ДЛЯ Приложение
, но я хочу, чтобы пользователи могли читать данные без входа в систему. Сейчас меня беспокоит вопрос о том, как запретить другим людям использовать мой API в своих приложениях
Чтобы выполнить эти требования в своем приложении, вам необходимо найти способы защиты и блокировки вашего сервера API для обслуживания только запросов от подлинные экземпляры ваших веб-приложений и мобильных приложений.
Я должен сказать, что для мобильных приложений это может быть достигнуто с очень высокой степенью уверенности при использовании концепции аттестации мобильных приложений, но для веб-приложений мы просто можем Сделайте это наилучшим образом, используя решения для искусственного интеллекта.
Чтобы понять, как это можно сделать для веб-приложения, прочитайте этот ответ Я дал вопрос Безопасный данные API от вызовов из приложения , в частности, раздел под названием Защита API-сервера .
Для мобильного приложения вы должны прочитать этот ответ Я дал на вопрос Как обезопасить API REST для мобильного приложения? , более конкретно в разделе Защита сервера API и раздел Возможное лучшее решение .
Если вы прочитали оба ответа, которые я связал выше, теперь вы можете лучше понять, почему я первоначально сказал, что это огромная проблема .
DoS ATTACKS
Вы также обеспокоены DoS-атаками.
Обычно это не решается на уровне приложений, вместо этого его лучше всего обрабатывать на уровне инфраструктуры, как в брандмауэре, где могут применяться правила для идентификации и отбрасывания пакетов DoS, но если они слишком строгие, они также могут блокировать пользователей git, в то время как если они слишком расслаблены, они пропускают пакеты DoS. Чтобы обеспечить более эффективную защиту от атак DoS, вам нужно прибегнуть к специализированному программному обеспечению, и даже для этого может потребоваться ручное вмешательство во время масштабной атаки DoS.
Поэтому я советую начать с добавления в брандмауэр некоторых правила отбрасывания DoS-пакетов и / или если вы используете облачного провайдера, вы можете посмотреть, какой уровень защиты от DoS они могут предложить в вашей учетной записи. Например, я знаю, что некоторые провайдеры CDN до некоторой степени предлагают защиту от DoS бесплатно, поэтому, возможно, стоит подумать о том, чтобы весь трафик c проходил через CDN, что также приносит другие традиционные преимущества CDN, то есть обслуживающие активы. из ближайшего к вашим клиентам места.
ВЫ ХОТИТЕ GO ДОПОЛНИТЕЛЬНУЮ МИЛЮ?
В любом ответе на секретный вопрос я не сопротивляюсь ссылаться на отличную работу от OW ASP foundation.
Для веб-приложений
OW ASP Web Top 10 рисков
OW ASP Top 10 - мощный информационный документ по безопасности веб-приложений. Он представляет широкий консенсус в отношении наиболее критических угроз безопасности для веб-приложений. В число участников проекта входят различные эксперты по безопасности со всего мира, которые поделились своими знаниями для составления этого списка.
Руководство по тестированию веб-безопасности :
OW ASP Руководство по тестированию веб-безопасности включает в себя инфраструктуру тестирования на проникновение «передовой опыт», которую пользователи могут внедрять в своих организациях, и руководство по тестированию на проникновение «низкого уровня», в котором описываются методы тестирования наиболее распространенных веб-приложений и безопасности веб-служб. проблемы.
для мобильных приложений
OW ASP Проект Mobile Security - 10 основных рисков
OW ASP Mobile Security Project - это централизованный ресурс, предназначенный для того, чтобы предоставить разработчикам и командам безопасности ресурсы, необходимые для создания и поддержки безопасных мобильных приложений. В рамках проекта наша цель состоит в том, чтобы классифицировать риски для безопасности мобильных устройств и обеспечить средства управления развитием, чтобы уменьшить их влияние или вероятность эксплуатации.
OW ASP - Руководство по тестированию мобильной безопасности :
Руководство по тестированию безопасности мобильных устройств (MSTG) - это всеобъемлющее руководство по разработке, тестированию и реверс-инжинирингу безопасности мобильных приложений.
Для APIS
OW ASP API Security Top 10
OW ASP API Security Project стремится обеспечить ценность разработчикам программного обеспечения и оценщикам безопасности, подчеркивая потенциальные риски в небезопасных API, и иллюстрирующий, как эти риски могут быть смягчены. Для достижения этой цели проект безопасности API OW ASP создаст и будет поддерживать документ «Топ 10 угроз безопасности API», а также портал документации для рекомендаций по созданию и оценке API.