Comments 16
В результате нескольких громких инцидентов, произошедших за последний год, включая утечку данных с сайта Snowflake, утечку данных с сайта SOCRadar.io и другие, в руки киберпреступников попали миллиарды паролей и других данных.
За последний год серия громких инцидентов, включая утечки данных Snowflake и SOCRadar.io, привела к попаданию в руки злоумышленников миллиардов учетных записей.
Кризис парольной безопасности: на дворе 2к25, а веб погромисты так и не научились в хеширование паролей. Сам факт существования таких баз паролей говорит о низкой квалификации ответственных за системы аутентификации
А другие не научились применять приставки СИ и падежи ;)
Мое давнее наблюдение: Ответственные задачи привлекают безответственных исполнителей.
Еще "в детстве" я думал, что это только там где я вижу, там безопасность "так себе", а есть серьезные огранизации. Финансовые, например - и там все будет прямо фанатично безопасно. Там, наверное, все так хорошо, что таких как я туда даже не подпустят, там вообще киноперсонажи вроде 007 и Шелдона Купера занимаются безопасностью.
Когда довелось поработать с ними - понял, как я ошибался. Оказалось, наоборот. Код для безопасности пишут те же программисты, которым место - писать фронтенд для зоомагазина. И в этом есть логика - человек, который параноидально-маньячески относится к безопасности он не захочет этим заниматься, потому что он видит, что сроки маленькие, ресурсов нет и у него повышенная тревожность и ответственность от того, что он что-то сделает, а потом вдруг взломают.... Это же стыд-то какой!
А "веб программист", ему сказали "сделай аутентификацию", он берет и делает. О том, какие недостатки в его решении - он не то что не знает, не может представить, нет, хуже - он даже думать про это не хочет. Сделал, тикет в Jira закрыли, доволен. Он не проснется ночью в ужасе, что "блиииин, я же для генерации рандомной соли инициализирую PRNG через time()".
Даже интересно: где могут пропустить пароли подобные озвученным в статье? В каких античных системах? В голову приходит только домашняя техника (принтер и роутер). Я пользуюсь кучей сервисов и самое слабое требование - 8 символов, включающих буквы и цифры. А львиная доля хочет еще и разный регистр со спец символами.
Я за слабые пароли. Очень часто сильные не нужны. Риск забыть свой пароль и понести сопутствующие потери-расходы - более опасная угроза, чем если кто-то взломает мой акк на сайте аптеки чтобы потратить там мои бонусы на 8 рублей.
А больше всего раздражает, что вот эти требования к паролям у всех разные. Одни хотят 8 символов, другие 10. Одни разрешают символы, а другие запрещают (да, так бывает! видимо, такая домашняя защита от SQL injection). Даже к логинам требования бывают странные. Один банк требует, чтобы в логине были цифры (представляю, сколько там юзеров с 0 или 1 в конце логина). Телега не разрешает ники с цифрами в начале. С чего бы? Просто программистая привычка, что идентификатор не может начинаться с цифры? Так это оправдано в коде программы, а ник юзера - это не переменная в коде, там нет тех ограничений.
И требования к смене паролей - ужас. (Опять же, для банка я это допускаю, но не для аптеки или сайта по ЖКХ). К слову, новые рекомендации NIST наконец-то начали отговаривать от этого.
Безопасность должна быть удобной для пользователя. Если она неудобна - пользователь найдет способ, как ее извратить и сделать удобной.
Я за слабые пароли. Очень часто сильные не нужны. Риск забыть свой пароль и понести сопутствующие потери-расходы - более опасная угроза, чем если кто-то взломает мой акк на сайте аптеки чтобы потратить там мои бонусы на 8 рублей.
А так же посмотрит список заказов и сделает выводы, от чего потенциальная жертва лечится.
Но, вообще, нет ли тут противоречия? Почему в данном случае потерять доступ к учетке - вообще считаются большим риском? всех расходов - 8 руб бонусов, да и те, собственно, расходами считать нельзя.
Безопасность должна быть удобной для пользователя. Если она неудобна - пользователь найдет способ, как ее извратить и сделать удобной.
Уже придумали. Passkey-и, синхронизируемые между устройствами. Для большей части пользователей - чрезвычайно удобно. Вообще никакого пароля помнить не надо. Ни простого, ни сложного.
И сейчас будет аргумент "а если телефон один и его потеряешь?"
Да и пусть узнает. В случае с аптекой - пароль нужен чтобы два человека с именем Вася не заходили оба по ошибке в один акк Vasya и не было путаницы. Поэтому примитивный пароль часто вполне достаточнен. Пусть даже 123456 допускать. Второй Вася не будет его перебирать, и вспомнит, что он был Vasya007.
Но и аргумент про "один телефон" (а так же, украденный телефон, а так же пассворд менеджер с пасскеями от компании которая закрылась или бойкотирует страну), и аргумент про болезни, которые не хочется афишировать - это все имеет смысл. Мне вот - пустяк, если кто-то 8 бонусов сопрет или узнает, что я, сопляк, капли от носа покупаю. А кому-то - не пустяк. Кому-то любой странный и валоважный (на наш взгляд) аргумент - в его ситуации очень важен. Поэтому:
Неправильный подход: Ну у нас 7 лет назад сайт делали, там программисты сделали вот так. Почему они решили именно так - мы даже и не знаем, они уже не работают с нами.
Правильный подход: Пользователь сам должен выбирать свои настройки. Можно предложить ему дефолт какой-то, но он сам под себя должен подкручивать безопасность. Хочет - с пасскеем, хочет без, хочет с SMS 2FA, хочет с TOTP (у каждого из двух вариантов свои плюсы), хочет - сложный пароль, а хочет простой.
"Правильный подход" - это только для того, кто знает что такое TOTP и чем отличается от пасскея. Таких немного. А что делать с остальными?
В случае с аптекой - пароль нужен чтобы два человека с именем Вася не заходили оба по ошибке в один акк Vasya и не было путаницы.
Признаюсь, видел такое только в универе, НО в большинстве систем, в таблице users используют уникальный id, а не по имени ЛК открывается. Это я ещё не говорю про фингер-принты, токены, сессии, oauth и прочие ништяки. Поэтому, да, для не критичных данных можно и допустить пароли низкой стойкости, просто разрабатывать системы должны не ИИ, а хотя бы их умелые операторы, но лучше всё-таки квалифицированные разработчики.
Пусть даже 123456 допускать. Второй Вася не будет его перебирать, и вспомнит, что он был Vasya007.
Будет забавно, если у обоих окажется такой пароль )
В голову приходит только домашняя техника (принтер и роутер)
Одна из самых уязвимых ко взлому категорий устройств, кстати. А учитывая тот факт, что заходить в админку роутера или чайника рядовому юзеру приходится в лучшем случае почти никогда или пару раз за всё время - там как раз и мог бы стоять достаточно длинный и сложный пароль. Не вижу большой проблемы перепечатать пару раз с наклейки 10+ цифробукв. Не в упрёк Вам, просто сам не понимаю, почему в роутерах "admin:admin" с завода, до сих пор считается нормой..
Так я и не агитирую за слабые пароли. Лично у меня что на принтере, что на роутере стоят длинные слова (Верхний, нижний регистр, цифры и спецсимволы, полный набор). Но это потому, что я так решил, а не потому, что такие требования заложили разработчики админпанели. Я, честно говоря, удивлен, что есть еще публичные сервисы, где может прокатить какой-то пароль вида "1234" или "password".
Кстати, на счет "admin:admin". Я видел на некоторых моделях прямо на корпусе инструкцию по подключению к WiFi c помощью кнопки WPS и кода. Если человек купил такое устройство, то ему, в принципе, ничего из заводских предустановок менять не надо. Воткнул кабель от провайдера в wan порт. Нажал кнопку, ввел код... Какой там логин? Кому оно надо?
Кризис парольной безопасности: 94% повторно используют слабые пароли