В четверг в сети появилась информация о том, что на сайте Госуслуг найден потенциально опасный код, и сегодня мы хотим поделиться с вами результатами собственного расследования и в очередной раз напомнить о важности применения Content Security Policy.



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

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



Такие фрагменты попадают в код страницы на стороне клиента, если у него установлено расширение. И здесь напрашивается вопрос: «как же тогда этот код оказался на стороне сервера?» И у нас есть гипотеза.

Мы считаем, что появление данного кода на страницах gosuslugi.ru не связано со взломом, целенаправленной атакой. Более вероятно, что у администратора, который редактировал содержимое этих страниц, было установлено подобное расширение. Оно внедрило посторонний код в документ, когда он загружался на сторону клиента, а на сервере он появился уже после того, как сотрудник сохранил свои изменения. В пользу этой версии говорит еще один факт. Мы внимательно мониторили все найденные фрагменты, и ни один из них так и не начал подгружать какой-либо контент – авторы кода вряд ли предполагали, что получат доступ к пользователям портала государственных услуг. Но это не означает, что угрозы не было — они могли начать делать это в любой момент, как только поняли, на страницах какого сайта оказался их код.

А теперь про механизм защиты. У порядка процента пользователей Яндекса возникает аналогичная проблема с посторонним контентом в посещаемых страницах. И это очень много. Поэтому мы давно и активно боремся с подобной угрозой. Прежде всего, мы защищаем пользователей Яндекс.Браузера с помощью механизма, который препятствует подгрузке данных с выявленных сомнительных адресов. Информация о новых угрозах оперативно попадает в базу SafeBrowsing, которая доступна Браузеру, Поиску и другим нашим сервисам при помощи специального API. Это позволяет нам быстро пресекать распространение эпидемий без необходимости выпускать обновление для самого приложения.

К счастью, в случае с Госуслугами пользователи Яндекса по большей части уже были защищены: 15 найденных фрагментов из 16 уже были внесены в базу SafeBrowsing еще до ситуации с сайтом в рамках обычного процесса поиска угроз.

И еще кое-что. Иметь щит на стороне клиента хорошо, но и о защите на стороне сервиса тоже не стоит забывать. Мы рекомендуем всем крупным сервисам, работающим с приватными данными пользователей, внедрять поддержку Content Security Policy. Это позволит заблокировать подгрузку стороннего контента и защитить ваших пользователей. Сервисы Яндекса уже давно используют CSP для предотвращения загрузки постороннего кода.
Поделиться с друзьями
-->

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


  1. imbasoft
    15.07.2017 16:49
    +19

    Как говорится, «ломанешь» рабочее место админа — «ломанешь» всю сеть.


  1. antonksa
    15.07.2017 17:27
    +15

    Яндекс.Браузер — это тот, который сделан на опенсорс движке и распространяется с помощью спама в установщиках всего хлама по умолчанию?


    1. NLO
      15.07.2017 17:30

      НЛО прилетело и опубликовало эту надпись здесь


      1. Gal78rus
        15.07.2017 17:51
        -16

        bobuk, перелогинься.


      1. Taras-proger
        16.07.2017 22:55

        Вирус с открытым исходникком? Однако!


      1. Taras-proger
        18.07.2017 16:50
        -3

        А ничего, что ему это не нужно? И что его как раз ищут специально? Соответственно он так и не распространяется. В отличие от яндекс вируса.


        1. tundrawolf_kiba
          18.07.2017 17:56

          Соответственно он так и не распространяется.

          image
          image
          image
          image


          1. Taras-proger
            19.07.2017 09:19
            -2

            Ты серьёзно? При установке флеша в гуглохром предлагают скачать гуглохром? И прям я аваста не ставил. Ничего, что он ссылок не даёт вообще? Фейковые окна я и сам лепить умею. С любым текстом.


            1. Wernisag
              19.07.2017 09:54
              +1

              Я же не ленивый, вот Вам Edge. Если пообещаете съесть красные труселя на камеру, то могу записать видео, в котором можно будет убедиться, в отсутствии фейковых окон.

              image


              1. tundrawolf_kiba
                19.07.2017 11:43
                +1

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

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


            1. mayorovp
              19.07.2017 10:48

              Да, одно время при установке флеша одно время предлагали поставить гуглхром. Хотя лично я считаю это скорее недостатком флеша, чем недостатком гуглхрома.


              Кстати, они чуть ли не первыми придумали выводить "галочку" для установки хлама не в инсталяторе, а на странице загрузки.


              1. Frankenstine
                19.07.2017 11:35
                +1

                Они и сейчас его предлагают, если браузер не на хроме или фаерфоксе.


    1. BarakAdama
      15.07.2017 18:07
      +11

      Это тот, чьи разработчики Chromium ускоряют: https://habrahabr.ru/company/yandex/blog/277555/

      Плюс еще несколько интересных ссылок:

      https://habrahabr.ru/company/yandex/blog/280380/
      https://habrahabr.ru/company/yandex/blog/309014/
      https://habrahabr.ru/company/yandex/blog/326796/
      https://habrahabr.ru/company/yandex/blog/273385/


    1. FSA
      15.07.2017 20:31
      -8

      Это тоже реклама браузера «Стриги» (знакомые его так называют).


      1. Areso
        15.07.2017 20:45
        +5

        Стринги, вы хотели сказать?


        1. Termux
          15.07.2017 20:52
          -12

          Браузер трусЫ


          я надеюсь, автор логотипа сменил профессию


          1. Dmitry_5
            17.07.2017 08:17
            +3

            У меня для вас плохие новости. В реальности трусы выглядят несколько иначе.


          1. Termux
            17.07.2017 13:23
            -5

            В минусах моего комментария
            https://habrahabr.ru/company/yandex/blog/333404/#comment_10314048
            отметились все друзья и родственники
            автора логотипа-трусОв.

            Целых 13 душ — это успех!

            Хорошо жить дизайнеру иконок с такой командой поддержки


            1. pimentium
              17.07.2017 14:06
              +5

              Может просто комментарий неоригинален и поднадоел (короче, баян)?


              1. Termux
                17.07.2017 14:54
                -5

                Причём здесь комментарий?!

                Ребята из Яндекса откровенно заFAILили с лого/иконкой,
                это очевидно уже и им самим

                Сейчас они на стадии

                • отрицание;
                • гнев; <== родственники дизайнера логотипа браузера «стринги» находятся здесь.
                • торг;
                • депрессия;
                • принятие.


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


                1. pimentium
                  17.07.2017 15:29
                  +1

                  О вкусах не спорят. Кроме того, к чему это все упоминать в данном треде (с достаточным упорством) — неясно.

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


                  1. Termux
                    18.07.2017 08:55
                    -3

                    это скорее лого продукта к дизайну не имеет отношения

                    или дизайнер слепой,
                    или ему 12 лет

                    потому что в 14 уже понимают «на что это похоже»


                  1. Termux
                    18.07.2017 10:35
                    -3

                    Картинки по запросу «Яндекс.Браузер»:

                    Яндекс.Браузер == красные стринги


                    1. Wernisag
                      18.07.2017 10:59
                      +3

                      По такому запросу ни в яндексе, ни в гугле труселя не выходят. Что я делаю не так?


                      1. tundrawolf_kiba
                        18.07.2017 13:24

                        Так выдача же вроде индивидуальная? Под конкретного пользователя подстраивается?


                        1. Wernisag
                          18.07.2017 13:40
                          +2

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


                    1. nepritimov_m
                      18.07.2017 16:33

                      Просто вам нужны вылезти из Яндекс.Браузера и залезть какой-нибудь девушке в стринги, может подотпустит гнев))


                      1. Termux
                        18.07.2017 17:50
                        -1

                        кого, родственников горе-дезигнера?

                        или это торг уже у вас начался?


                        1. nepritimov_m
                          18.07.2017 18:15
                          +2

                          Мне с вами торговаться не о чем. Да и почему дезайнер — «горе-дезайнер»?
                          Столько лет назад появились «стринги», а люди до сих пор волну хайпа поднимают. Для продукта шумиха — это хорошо.

                          А насчет минусов в карму — просто вы высказали своё мнение, которое некоторым людям не понравилось. Или вы привыкли только к «лайкам»?))


    1. stranger777
      16.07.2017 20:55
      -2

      Вот представьте, что «хлам» решили писать вы.
      Допущение ради умозрительного эксперимента. И вот дело дошло до установщика вашего хлама. Ни у Яндекса, ни у Гугла вы не найдёте партнёрских программ, предлагающих установщик взамен на рекламу и дефолтные установки. Ни одна компания не заинтересована в том, чтобы продвигаться так, ибо неизвестно, чем это обернётся для неё.
      Больше того, например, Freemake, «качественный хлам», предлагающий ставить Яндекс по дефолту — это вообще не наша корова, не мы её доим и де-факто они гораздо более заинтересованы продвигать бинг или тот же гугл и прочие иностранные продукты. М они делают это, именно навязывая Яндекс, потому, что у конечного юзера в результате осадочек остаётся. Вот как у вас. В результате эффект обратный: конечный юзер точно не использует Яндекс.Браузер. У него складывается негативное впечатление об отечественных продуктах, а выигрывают все «забугорные».


  1. easty
    15.07.2017 17:50
    +4

    Интересная гипотеза, только как? Разработчик сохранил страницу из браузера, поправил потом залил код на серевер? Как то смахивает на сумашествие))


    1. masterspline
      15.07.2017 18:06
      +3

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

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


      1. pimentium
        15.07.2017 20:27
        +5

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


        1. mickvav
          16.07.2017 00:22

          Есть основания полагать, что это представитель какого-то ведомства — из общения с техподдержкой госуслуг я как-то сделал вывод, что именно что контент-менеджментом конкретных услуг у них занимаются представители ведомств. Есть что-то общее у тех услуг, на страницах которых видели iframe?


          1. batollo
            16.07.2017 09:53
            +4

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


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


            1. pimentium
              17.07.2017 14:07
              +2

              Охотно верю :)


    1. khim
      15.07.2017 18:36
      +6

      Одно время так Google Docs работал. Нажимаешь кнопку «редактировать», document.body.contentEditable устанавливается в true, страничка редактируется, а нажатие кнопки save отправляет её на сервер.

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


    1. SergeyD
      15.07.2017 19:56
      +13

      Достаточно в админке открыть редактор контента с каким-нибудь tinymce или fck.
      Вирус / расширение браузера вставляет туда свой код.


      У нас такое было на практике — у контентера комп с winxp+ie8 чем то заразило.
      После этого в половине текстов новостей на сайте появились ссылки на порнуху.


  1. Maccimo
    15.07.2017 17:55
    +23

    Заголовок обещает «расследование», а в тексте статьи — унылая реклама клона хрома с нескучными обоями.
    Фи!


  1. masterspline
    15.07.2017 17:58

    > авторы кода вряд ли предполагали, что получат доступ к пользователям портала государственных услуг

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


    1. pimentium
      15.07.2017 20:38

      Есть разница в размере аудитории. У расширения аудитория скорее всего небольшая. А если наша гипотеза верна, то код начал исполняться у значительно большего количества пользователей, пользователей, которые расширения с рекламой не ставят, пользователей разных браузеров. Тут открываются бОльшие возможности для "злоупотреблений".


      1. masterspline
        15.07.2017 23:23

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

        Как приход пользователей с госуслуг привел к неработоспособности ссылок? Не пойму логику: если ссылки вставляет только плагин и приходит 100 запросов в сутки, то отдаем рекламу, а если неожиданно пришло 1 000 000 запросов, то ссылки стали неработоспособными… Не понимаю объяснения неработоспособности ссылок неожиданным приходом пользователей с госуслуг. Тем более не понимаю объяснения неработоспособности ссылок внезапно открывшимися бОльшими возможностями…


        1. pimentium
          15.07.2017 23:34

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


          Речь была о том, что "владельцы" сайтов, куда ссылки указывают, могли осознать, что у них есть "шанс" использовать их на массовой аудитории.


        1. SirEdvin
          17.07.2017 13:07

          Как приход пользователей с госуслуг привел к неработоспособности ссылок? Не пойму логику: если ссылки вставляет только плагин и приходит 100 запросов в сутки, то отдаем рекламу, а если неожиданно пришло 1 000 000 запросов, то ссылки стали неработоспособными… Не понимаю объяснения неработоспособности ссылок неожиданным приходом пользователей с госуслуг. Тем более не понимаю объяснения неработоспособности ссылок внезапно открывшимися бОльшими возможностями…

          Сервер не выдержал, например


          1. pimentium
            17.07.2017 14:08

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

            Так же они себя вели и когда мы их находили в расширениях, до этой истории.


    1. l1tero
      15.07.2017 22:35
      +1

      Насколько я понял — речь о том, что не было таргетированой атаки на пользователей госуслуг, и авторы кода не внедряли вредоносного кода специально ради госуслуг( если вообще внедряли какой-то вредоносный код).


      1. pimentium
        15.07.2017 22:44

        Речь о том, что сам сайт не ломали, а попадание кода — невнимательность, небрежность, отсутствие мониторингов, csp и т.п.


        Еще мы не ожидали найти на сайте фрагменты, которые нам были известны по активностям противодействия подмене контента.


  1. Hazrat
    15.07.2017 18:41
    +6

    Я не понял, яндекс собрал статью из комментариев к посту об обнаружении уязвимости от dr. web?


    1. dmitry_ch
      15.07.2017 18:45
      -1

      ФрагиПлюсы не пахнут!


    1. pimentium
      15.07.2017 20:32

      Мы смотрели, что случилось, после появления новости от Dr.Web. Многие делали то же самое. А подготовка текста для Хабра заняла время.


  1. vilgeforce
    15.07.2017 19:21
    +2

    Если вы детально исследовали инцидент, то могли бы видеть, что iframe приходил в JSON. Я скорее за добавление кода при вводе данных в форму…


  1. dom1n1k
    15.07.2017 19:35
    -2

    Версия, мягко говоря, сомнительная. Но если всё-таки предположить, что она имело место в реальности, то это получится не оправдание, а наоборот еще бОльшая дискредитация администрации Госуслуг. Потому как это полный алес.


    1. pimentium
      15.07.2017 20:29

      Какая версия более вероятна?


  1. x893
    15.07.2017 19:46
    -5

    По-моему, рассчитано на прокладку с крылышками между клавиатурой и стулом.
    То есть мониторы/анализаторы уже запретили?
    Берем 10 летний TelePro и делаем копию сайта — получаем внешние ссылки и заодно и ошибки при обращениях.
    А есть еще проверяльщики нагрузки (лет 20 примерно),
    Конечно когда цель впарить что-то, то можно и лапшой закидывать.


  1. iXCray
    16.07.2017 00:41
    +21

    Что ж, повторю свой комментарий из поста Яндекса про его "шифрование" referrer во славу безопасности пользовательских данных (нет).


    Если в посте яндекса на хабре нет развернутой технической части — это 100% маркетинговое дерьмо :)
    Причем, нет никакой разницы: про погоду это или про то, как они для защиты своих пользователей referrer-ы начали шифровать.

    В каждом абзаце реклама функций ябраузера. Тезис ничем не подкреплен, информации о том, через что заливают код на госуслуги, нет. Кому принадлежат найденные домены — тоже не расследовали.


    15 из 16 уже фильтруются, но внимание (!) "авторы кода вряд ли предполагали, что получат доступ к пользователям портала государственных услуг". То есть iframe все-таки дружественный?


    Серьезная компания, технологичная. А пользователей хабра считаете за аудиторию Московского Комсомольца.


    1. FernandoAlfonso
      16.07.2017 13:51

      Outpost Firewall умер, чтобы у этого браузера появилась система безопасности. Как многолетний пользователь Аутпоста, в компетенции пилящих эту защиту людей я не сомневаюсь ни на секунду.
      Но и убийство Яндексом моего любимого фаервола не прощу.


      1. pimentium
        16.07.2017 13:56

        У Браузера функции безопасности есть с самого начала. Более того, мы работаем по поиску различных угроза на сайтах с 2009 года, используем эти данные в наших сервисах, интегрировали через API со специальными сборками других браузеров.

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

        А новые люди со своим опытом и наработками усилили это направление.


    1. sky2high0
      16.07.2017 13:56

      В каждом абзаце реклама функций ябраузера.

      Информация не соответствует действительности.

      авторы кода вряд ли предполагали, что получат доступ к пользователям портала государственных услуг

      Какой логической цепочкой вы пользовались, чтобы прийти к такому выводу?


      1. zuwr2t
        17.07.2017 14:09
        +1

        авторы кода вряд ли предполагали, что получат доступ к пользователям портала государственных услуг
        Какой логической цепочкой вы пользовались, чтобы прийти к такому выводу?


        Это цитата из статьи. Спросите автора статьи.


  1. ganqqwerty
    16.07.2017 00:58

    До меня все еще не дошло, как из расширения для браузера у админа что-то попало в серверный код. Админ использовал функцию «Сохранить как»?


    1. VolCh
      16.07.2017 01:08
      +1

      В процессе работы с CMS.


    1. pyrex
      16.07.2017 13:56

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


  1. kashey
    16.07.2017 07:44
    +2

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


    1. pansa
      16.07.2017 13:50

      Корретно настроить CSP, т.е с блокировкой встраивания скриптов и eval — дело далеко не всегда простое. Может потребоваться переписать очень много кода приложения. Посмотрите, очень редко у кого CSP жёсткий. Буквально по пальцам пока можно считать.


      1. kashey
        16.07.2017 15:01

        Ну блокировка стилей, скриптов и фреймов по while list — это плевое дело, и 99% сайтов, которые никого внешнего не подключают с этим легко справятся.
        Блокировка инлайн стилей — немного сложнее, но совсем немного.
        Другое дело блокировка инлайн скриптов и евалов — тут у «старого» кода могут быть проблемы с поддержкой, но, опять же, все решается серверными плагинами. Был бы смысл.
        Для 99% сайтов этого смысла нет.


        1. pansa
          16.07.2017 18:42

          Нет, как раз для 99% сайтов — xss наиболее вероятная атака, и как раз нужны запреты eval и inline. Как вы заблочите js серверными плагинами, вы про что??
          Плюс плагины браузеров, их на стороне сервера никак не поймать.


          1. kashey
            17.07.2017 02:31

            XSS не так опасен, если он не может:
            1. Подгрузить другие скрипты с третих сайтов, чтобы мозгов добавить
            2. Отправить секретные данные пользователя «куда надо».
            Те максимум, что эта чтука сможет сделать — показывать Alertы.


            1. mayorovp
              17.07.2017 13:33

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


    1. pimentium
      16.07.2017 13:58

      Конечно, CSP — не панацея, слабые места, если говорить о работе подобных расширений очевидны.

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


      1. pansa
        16.07.2017 14:10

        Ну в данном конкретном случае всё было вообще банально — там был протухший сертификат и любой нормальный браузер, конечно, ничего не загружал =) Речь про более-менее грамотный инжект, конечно.


      1. kashey
        16.07.2017 15:04

        На любом нормальном сайте с нормальной посещаемостью этот лог — куча говна, которое нереально разобрать в поисках крупиц настоящих опасностей.
        Лично у меня он на 99.9% состоит из блокировки разной малвари, и на 0.1(и это очень много), из Яндекса, который вечно новые хосты с разными ролями ничинает использовать и не публикует об этом никаких пресрелизов :(
        А вообще добавили бы анализ логов CSP в метрику — вот было бы аудитории приятно. Да и Яндексу пришло бы много полезных данных про творимые страсти.
        Ах мечты мечты.


        1. pimentium
          16.07.2017 17:31

          Поиск Яндекса — сайт с «нормальной посещаемостью»? ;) Мы следим за этими логами, полезное он дает.


          1. kashey
            17.07.2017 02:35

            Тогда скажите честно — все плохо?
            Я как открываю свои логи — так сразу закрываю.
            Есть ли возможность трекать поведение пользователя и «намекать» ему, что гадость какая-то в системе есть?


            1. pimentium
              17.07.2017 11:28

              Плохо с подменами или анализом логов? :)

              С анализом все неплохо, было хуже, но вносились изменения, чтобы проще анализировать было и чтобы мы сами себе не стреляли в ногу, встраивая загрузку того, что по CSP не разрешили.

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

              Что касается «трекать», то если вы можете определить, что у пользователя осуществляется подмена контента, то можете «намекать» ему. Мы не намекаем, мы открытым текстом сообщаем :)


  1. pansa
    16.07.2017 13:48

    Сервисы Яндекса уже давно используют CSP для предотвращения загрузки постороннего кода.


    Однако, стоит уточнить, что CSP у вас весьма ослаблен, т.к директива script-src у вас содержит unsafe-eval и unsafe-inline. И они не просто так называются unsafe-*, это означает, что если кто-то всё же сможет осуществить XSS, то толку от такого CSP будет чуть более нуля, увы =) Правда, редко у кого CSP настроен без этих ограничений, даже у гугла, который тоже весьма яро агитирует за него.

    Вообще, великолепную идею CSP, на мой взгляд, запороли на корню, когда разрешили браузерным расширениям модифицировать заголовки ответов, в т.ч. и CSP. Это удар под дых изначально хорошей, относительно целостной идеи защиты. =(


    1. pimentium
      16.07.2017 14:01

      В полном объеме CSP внедрить очень непросто, особенно на работающем в production сервисе.

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


      1. pansa
        16.07.2017 14:13

        В полном объеме CSP внедрить очень непросто, особенно на работающем в production сервисе.

        Да, я в курсе, мы включали. И включили. Мы, конечно, далеко не Яндекс, но и ресурсы у нас не сравнимы =)

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


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

        А вот юзер ставит расширения без разбору =(


        1. pimentium
          16.07.2017 15:13

          Речь шла не о серверной стороне, а о клиенте. Способы, которыми на клиенте модифицируют содержимое страниц — расширения, установленные локально прокси (браузер конфигурируется на работу через них, для работы с https делается MitB), сетевые драйверы на системе, которые меняют контент (с https аналогично, как и в случае с proxy). Но, расширения — один из самых простых вариантов, конечно.

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


          1. pansa
            16.07.2017 15:35

            Эта ситуация тоже полный мрак, такое уже должно отлавливаться антивирусом.
            Ну и pinning сертификата иногда сможет стать последним рубежом, если атака не узконаправлена…
            В общем, да, секьюрити должна быть не точечная, а кОмплексная =)


            1. pimentium
              16.07.2017 15:45

              Да, должно, но все же подобных случаев хватает. Антиврусы не всегда оперативно реагируют, не любой вредноносный код они быстро замечают. Например, простой proxy на Pyhton может заметное время оставаться незамеченным. В свое время эффективными были .bat-файлы, меняющие hosts.


              1. pansa
                16.07.2017 16:05

                Запрет модификации hosts в одном близком мне АВ есть уже… не соврать, лет 5 как. =)
                Прокси на питоне сама по себе не сможет незаметно подменить сертификат или добавить свой в хранилище. На это нужны права, это вызов специфичных функций, которые обязательно привлекут активную защиту ав.


                1. pimentium
                  16.07.2017 17:25

                  Я же про .bat написал «в свое время».

                  Что касается proxy, то в теории да, сложнее, но на практике часто встречается.


  1. mSnus
    16.07.2017 15:13

    При чём здесь вообще CSP? Тут должна быть жёсткая фильтрация ввода на стороне сервера, очевидно же, что подгружать iframe и script с внешних ресурсов не стоит!


    Но вообще, судя по количеству страниц с фреймом, это кто-то "удачно" поправил шаблон или компонент, и как туда попал фрейм — большой вопрос. Вряд ли кто-то правит шаблоны сайт в онлайн-редакторе)


    1. pimentium
      16.07.2017 15:14

      Безусловна валидация ввода нужна, но можно и поменять файлы на сервере. В этому случае валидация не поможет. Нужно контролировать изменения файлов на сервере, но и CSP полезно иметь.


    1. pansa
      16.07.2017 15:19

      При чём здесь вообще CSP?

      При том, что защищать от подобной фигни — это его первое предназначение.


    1. pansa
      16.07.2017 15:25

      Тут должна быть жёсткая фильтрация ввода на стороне сервера, очевидно же, что подгружать iframe и script с внешних ресурсов не стоит!


      И вообще, reflected xss или то же вредное расширение — и на сервер вообще ничего не придёт просто физически.


  1. pansa
    16.07.2017 15:18

    Да, к сожалению, от расширений, меняющих заголовки это не спасет.


    Так добавьте возможность в ЯБраузере запрещать расшируниям модификацию заголовков. Хотя бы секьюрити. Хотя бы через chrome://
    Вот это был реальный респект довод пользоваться ЯБ!


    1. pimentium
      16.07.2017 15:43

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

      Запрещение такой возможности может сделать невозможной работу расширений, которым подобные действия нужны. Например, расширениям, которые используют разработчики или те, кто анализирует работу браузера с конкретным сайтом (тем же специалистам по ИБ).


      1. pansa
        16.07.2017 15:57

        Вы в целом молодцы, общался с сотрудниками Я из защиты — очень понравилось. Но специалисты ИБ и так знают как что включать-выключать, и их количество относительно мизерно. Сделать эту фичу опциональной — не проблема, хотя, по умолчанию было бы круто запрещать модицикацию. Например, для неподписанных/недоверенных расширений.


  1. devalone
    16.07.2017 23:13

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

    Эмм, по вашему мнению он редактировал код в браузере?


    1. pimentium
      17.07.2017 01:42

      Вряд ли код, скорее содержание (судя по тому, где встречались эти фрагменты).


  1. SerheoNikolis
    17.07.2017 11:19

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


    1. pimentium
      17.07.2017 11:21

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

      А ответственные за Госуслуги, надеюсь, сделают какие-то выводы, чтобы не допустить подобных и других проблем в будущем.


  1. kursoriks
    17.07.2017 11:21

    Ребят, не парьтесь, админ просто хотел немного подзаработать на пиво, вот и поставил код рекламы из партнерки. Ели бы вы знали какие гроши платят в ГОСах нашим админам, поняли бы, о чем я говорю.


    1. pimentium
      17.07.2017 11:22

      Честно говоря, думаем, что не нужно это объяснять злым умыслом :)


    1. Bender_Render
      19.07.2017 13:00

      Ну на счет грошей в ростелекоме, я бы так не сказал…


  1. alexalansmith14
    17.07.2017 11:29
    -1

    Яндекс, подскажите, пожалуйста, что за расширение я подхватил в хроме и как его удалить навсегда?
    image
    image


    1. zee
      20.07.2017 16:46

      Frigate


  1. Shushlyaev
    18.07.2017 15:22

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


    1. pimentium
      18.07.2017 17:28

      Интересно одно, была ли какая-либо утечка любой инфы с госуслуг?

      Вряд ли

      Если что-то проникло на серверную строну, могли ли пострадать юзеры, которые в этот период времени не посещали сей ресурс?

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