Перейти к содержанию

Ошибка на одну позицию 2.0


Рекомендуемые сообщения

Николас Брулес

Эксперт «Лаборатории Касперского»

 

Уязвимость «off-by-one» (завышение/занижение на единицу) – это достаточно старая проблема. Вот перевод описания из английской версии Википедии:

 

Ошибка off-by-one (off-by-one error, OBOE) это логическая ошибка, возникающая при использовании дискретного эквивалента граничных условий. Подобные ошибки нередки в компьютерном программировании, когда цикл итерации повторяется на один раз больше или меньше, чем следует. Как правило, проблема возникает, если программист не учитывает, что последовательность начинается с нуля, а не с единицы (как, например, с индексами массивов в некоторых языках программирования) или ошибочно использует в сравнении «меньше или равно» вместо «меньше».

 

Подобные ошибки позволяют проводить DoS-атаки или даже выполнять произвольный код. В интернете есть множество ресурсов, на которых объясняется, как эксплуатировать «переполнение кучи на одну позицию» (“off-by-one heap overflow”).

 

Но почему «Ошибка на одну позицию 2.0»?

 

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

 

( http://www.securelist.com/ru/images/pictur...lblog/40348.png )

 

Если внимательно посмотреть на снимок экрана, обнаружатся две похожие ссылки, сокращенные с помощью сервиса bit.ly. В одной из них пропущена буква d. Отсюда и название – «Ошибка на одну позицию 2.0».

 

В результате элементарной ошибки копирования новая ссылка ведет совершенно не на тот сайт, на который должна была бы. На всякий случай я решил проверить ссылку на сайте http://web-sniffer.net.

 

Вот сайт, на который попадаешь по ссылке в сообщении Twitter:

 

( http://www.securelist.com/ru/images/pictur...lblog/40333.png )

 

Судя по присутствию слова quiz в названии сайта (LOLquiz), он предлагает разного рода викторины. Однако выглядит он подозрительно. По моему опыту, многие сайты, похожие на этот, используются для вредоносных целей.

 

Поэтому я решил продолжить расследование и кликнул по ссылке на выбранную случайным образом викторину:

 

( http://www.securelist.com/ru/images/pictur...lblog/40335.png )

 

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

 

( http://www.securelist.com/ru/images/pictur...lblog/40337.png )

 

В своей тестовой учетной записи я авторизовал приложение и был перенаправлен на ту самую викторину, в которой собирался принять участие:

 

( http://www.securelist.com/ru/images/pictur...lblog/40339.png )

 

Но каковы были функции того приложения?

 

Разрешив установку этого приложения, я тем самым предоставил ему права на чтение и запись моего аккаунта в Twitter, как видно на снимке экрана ниже:

 

( http://www.securelist.com/ru/images/pictur...lblog/40341.png )

 

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

 

Теперь мой тестовый аккаунт «следует» в Twitter за авторами этого потенциально опасного приложения.

 

Если посмотреть на число подписчиков на сообщения этой учетной записи, окажется, что права доступа к своим аккаунтам дали этому приложению более 300 000(!) пользователей. Я уверен, что большинство из них не читали набранную мелким шрифтом информацию о функции этого приложения по автоматической подписке на ленту сообщений в Twitter, принадлежащую владельцам сайта.

 

( http://www.securelist.com/ru/images/pictur...lblog/40343.png )

 

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

 

( http://www.securelist.com/ru/images/pictur...lblog/40345.png )

 

Как только вы заканчиваете отвечать на вопросы, приложение рассылает подписчикам вашего аккаунта сообщение с вашими результатами. Если кто-то из них захочет попробовать принять участие в викторине, ему тоже придется дать приложению доступ к своей учетной записи в Twitter, и он тоже автоматически станет подписчиком «lolquiz» и разошлет сообщение о своих результатах своим подписчикам и т.д. Это приводит к вирусному распространению приложения.

 

Интересно, что автор этого приложения сам является подписчиком двух аналогичных лент в Twitter.

 

Простой поиск на Twitter выдает множество аналогичных сообщений от других пользователей:

 

( http://www.securelist.com/ru/images/pictur...lblog/40346.png )

 

Остается непонятной настоящая цель, ради которой создавалось это приложение, которое (на данный момент) является не вредоносным, но потенциально опасным.

 

Авторы приложения утверждают, что вы всегда можете отписаться от их ленты сообщений, но не упоминают о том факте, что при этом у приложения сохранятся права на чтение и запись в вашей ленте Twitter. Отписаться от их ленты можно, отправив им сообщение напрямую (Direct Message), но это не приводит к удалению приложения или к прекращению автоматической рассылки сообщений.

 

( http://www.securelist.com/ru/images/pictur...lblog/40347.png )

 

Подобные приложения-викторины очень распространены в сети Facebook, а теперь они, очевидно, заполонили и Twitter. Эта викторина, судя по всему, появилась в 2009 году.

 

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

 

Мой пост о фальшивом антивирусе, распространяемом через Twitter, дает прекрасный пример того, что может произойти.

 

Мне кажется, это со всей очевидностью показывает, насколько опасными могут быть сервисы по сокращению интернет-адресов: банальная ошибка копирования текста может привести к тому, что по ссылке будет открываться совершенно другой веб-сайт, в то время как при использовании обычных ссылок в большинстве случаев подобная ошибка приведет лишь к сообщению «404 – Страница не найдена».

 

Источник: Securelist.com

Ссылка на комментарий
Поделиться на другие сайты

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

так это согласие и было написано мелким шрифтом?

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

 

 

ЗЫ где связь между неопытным программистом, который допускает ошибки при работе с массивами и потенциально опасным сайтом?

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • Lotte
      От Lotte
      Добрый день.
       
      Помогите подскажите возможно ли так сделать? 
       
      Читал статью Запрет запуска объектов установил веб консоль на сервер там же от куда Касперский устанавливается на рабочие станции, подключился под доменным админом и дальше не могу понять.
      Пытаюсь новую политику создать и страница зависает.
       

       

       
      Kaspersky Security Center 13.2 Web Console: 13.2.571
      Версия Сервера администрирования: 13.2.0.1511
    • mamruc
      От mamruc
      Здравствуйте!
      Физически помер сервер с установленным KSC14, есть бекап сервера. На новом сервере устанавливал  KSC с новой базой, при подключении через Веб морду ничего не отображает, через MMC пишет:
      «Операция не может быть выполнена, так как программа инициализируется или деинициализируется»
      Такой статус еже несколько часов.
    • SDDdo
      От SDDdo
      Здравствуйте! Есть внешний HDD диск. Во время загрузки файлов на этот диск произошло непреднамеренное отключение диска из USB разъема. При повторном подключении диска, система не видит диск в проводнике, в диспетчере устройств диск отображается, но с другим именем. В управлении дисками при попытке инициализировать диск выдает ошибку CRC. Возможно ли решить данную проблему своими силами?


    • ГГеоргий
      От ГГеоргий
      в процессе установки на РедОС возникает следующая ошибка

    • ГГеоргий
      От ГГеоргий
      Добрый день!

      Проводим переезд KSC на новую бд
      для этого полностью удалили KSC и ставим с нуля
      KSC будет на WINserv2016
      BD - PostgreSQL 15 на Rocky linux 9 (До этого стояла на WinServ 2016, что не подходило под требования CIS)
      предварительные настройки на стороне BD выполнены
      (а именно: создана бд и учетка к ней, изменен конфигурационный файл и созданы юзеры в смой системе)

      при установке возникает такая проблема

      В процессе установки произошла ошибка: Generic db error: "[42501]`ОШИБКА: нет доступа к схеме public `, LastStatement=`CREATE PROCEDURE "AK_RAISERROR"( ) LANGUAGE plpgsql

      судя по объяснению, проблема в том что у пользователя, под которым я выполняю установку KSC, нет необходимых прав доступа к схеме public в базе данных PostgreSQL.
      однако это не так
      я выполнил создание бд и пользователя:
      CREATE USER "KSCAdmin" WITH PASSWORD 'testpass@123';
      CREATE DATABASE "KAV" ENCODING 'UTF8';
      GRANT ALL PRIVILEGES ON DATABASE "KAV" TO "KSCAdmin";
      затем перешел в саму БД KAV и выполнил:
      GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "public" TO "KSCAdmin";
      GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "public" TO "KSCAdmin";

      вывод терминала:

      [admin@localhost ~]$ sudo psql -U KSCAdmin KAV
      [sudo] пароль для admin:
      Пароль пользователя KSCAdmin:
      psql (15.8)
      Введите "help", чтобы получить справку.

      KAV=> GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA "public" TO "KSCAdmin";
      GRANT
      KAV=> GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA "public" TO "KSCAdmin";
      GRANT
×
×
  • Создать...