Семь шагов для создания безопасного веб-приложения
7 шагов для создания безопасного веб-приложения
В течение многих лет эксперты по безопасности предупреждали и предупреждают об уязвимостях в веб-приложениях. На эти предупреждения, к сожалению, не всегда обращают внимание вовремя. Сегодня все чаще появляются новости о том, что хакеры успешно взламывают одно веб-приложение за другим. Форумы переполнены информацией о открытых уязвимостях, историях успешных взломов. Тогда как же защищать web-приложения, и возможно ли это вообще?
Да, к счастью, это возможно. Далее представлены семь этапов (в нескольких статьях), которые необходимо выполнить, для создания веб-приложений, наименее подверженного риску успешной атаки.
Шаг 1: Параметризация запроса
Одной из самых частых уязвимостей web-приложений является SQL-инъекция. Предприятия, правительства и сайты социальных сетей уже стали жертвами этой атаки, что делает ее универсальной проблемой. В качестве свидетельства размера проблемы - недавний отчет по статистике безопасности веб-сайтов показал, что семь процентов всех веб-сайтов по-прежнему содержат SQL инъекцию.
Исходной точкой для этой уязвимости может послужить окно комментариев в веб-форме, поле данных или другая область формы, которая допускает свободный ввод данных. Атаки типа SQL инъекции могут даже передаваться через невидимые веб-элементы, такие как заголовки HTTP запроса. Простая вставка вредоносного кода SQL, и вся база данных может быть украдена, удалена, изменена или даже использована для запуска вредоносных команд в вашей операционной системе.
Чтобы остановить SQL-инъекцию, разработчики должны запретить интерпретацию пользовательского ввода как часть SQL команды. Лучший способ остановить sql инъекцию - это параметризация запроса.
Шаг 2: Безопасное хранение паролей
Разумеется, если SQL-инъекции используются для кражи паролей, вам необходимо их безопасно хранить. Худший способ хранения паролей - это, конечно, простой текст; однако шифрование не намного лучше. Причина в том, что оно обратимо. Сегодня у хакеров есть доступ к мощным вычислительным ресурсам, которые являются недорогими. С помощью купленных или созданных радужных таблиц, которые позволяют расшифровывать средние по сложности пароли в режиме реального времени. В наши дни радужные таблицы даже не используются, так как наступило время высокопроизводительных домашних компьютеров, которые могут использоваться для высокоскоростных словарных атак. Создание соли - это методика кодирования, необходимая для того, чтобы помочь победить атаки, с использованием радужных таблиц, но этого недостаточно.
Сегодня, обладая даже скромными ресурсами, злоумышленники могут создавать на основе графических процессоров установки, которые способны выполнять 25 миллиардов попыток (!) или больше попыток в секунду для подбора сохраненных паролей - да, это правда - 25 миллиардов попыток в секунду с использованием недорогого домашнего компьютерного оборудования.
Поэтому, чтобы безопасно хранить пароли, я рекомендую объединить три основных метода: использовать однонаправленный алгоритм, использовать соль и использовать алгоритм, который преднамеренно медленный, чтобы предотвратить подбор ваших паролей. Алгоритмы SCRYPT и PBKDF2 - отличные примеры алгоритмов, которые можно безопасно использовать для хранения паролей таким образом.
На этом все!
-
- Михаил Русаков
Комментарии (0):
Для добавления комментариев надо войти в систему.
Если Вы ещё не зарегистрированы на сайте, то сначала зарегистрируйтесь.