Хабрахабр

Веб-разработчики пишут небезопасный код по умолчанию

«Если хотите, я могу зашифровать пароли»

Некоторые разработчики, которым дали прямое указание применить криптографию, использовали шифрование парольной базы с помощью Base64

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

Из них только 43 согласились на заказ, который предусматривал использование технологий Java, JSF, Hibernate и PostgreSQL Новое исследование из Университета Бонна (Германия) показывает, что разработчики-фрилансеры по умолчанию придерживаются исключительно небезопасных практик, если только заказчик не требует большего.
Исследователи предложили 260 Java-разработчикам на Freelancer.com разработать систему регистрации для воображаемой социальной сети, которую заказчики якобы начинали делать.

Половине каждой из двух групп дали указания использовать защищённое хранилище паролей, другим — нет. Половина разработчиков получила за работу 100 евро, а половина — 200 евро.

Вот некоторые результаты исследования: Хотя выборка явно мала, но разница настолько значительная, что она позволяет предположить некие общие тенденции.

  • Среди тех, кому не были предоставлены инструкции, 15 из 18 хранили пароли открытым текстом
  • Три человека из тех, кому поручили использовать защищённое хранилище, также хранили свои пароли в виде открытого текста.
  • Программисты, которые зашифровали пароли, использовали небезопасные методы: 31 программист использовал для шифрования такие методы, как Base64, MD5, SHA-1 и т. д.
  • Только 12 фрилансеров применили безопасные методы, такие как bcrypt и PBKDF2.

8 человек использовали для шифрования Base64
10 – MD5
1 – SHA-1
3 – 3DES
3 – AES
5 – SHA-256
1 – HMAC/SHA1
5 – PBKDF2
7 – Bcrypt

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

В подавляющем большинстве программисты не смогли реализовать основные методы безопасности, а 17 из 43 скопировали код со случайных веб-сайтов.

Только 15 разработчиков применили соль — строку данных, которая передаётся хеш-функции вместе с паролем, что существенно усложняет брутфорс.

Как видим, в основном это мужчины, средний возраст 30 лет, из 11 стран (в двух случаях страна не указана)
В таблице (можно увеличить по клику) показаны демографические данные участников исследования.

Низкооплачиваемые и высокооплачиваемые группы сработали примерно на одном уровне качества.

Можно предположить, что базовая осведомлённость о безопасности среди фрилансеров невероятно низка. В целом исследование довольно удручает. Из 18 участников, которые получили специальные указания использовать криптографию, трое решили использовать Base64 и утверждали, например: «[Я] всё зашифровал, так что пароль не виден» и «Его очень сложно расшифровать».

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

Показать больше

Похожие публикации

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»