Центр исследования компьютерной преступности

home контакты

Противодействие Интернет мошенничеству путем идентификации действий сетевых агентов

Дата: 01.01.2008
Источник: www.crime-research.ru
Автор: Алексей Турута


hack/spy.jpg ... Поэтому предлагается в качестве дайджест сообщения использовать пары любых известных и распространенных алгоритмов sha1+md5. Сложность создания одной коллизии для пары алгоритмов существенно выше. В таком случае стоимость подбора коллизии существенно возрастает, превышает эффект от самой коллизии.

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

При использовании временной составляющей возникает проблема перехода временных границ. В таком случае целесообразно привязывать транзакцию к времени генерации секретной последовательности, а вычислении хеша производить в пределах Δt от порогового времени. А Δt задавать на сервера, как максимальное время проведения транзакции. Заменим секретный компонент выражения (1) и получим:
period = time() div (N*day);
md5(secure_word.":".period)
upper(md5(secure_word.":". (time() div (N*day)))) (2)
где
upper – функция приведения символов к верхнему регистру (для уменьшения проблем с обработкой текстовых параметров);
md5 – функция реализующая любой известный алгоритм получения дайджест сообщений;
secure_word – секретная последовательность символов, известная на серверах и не известная клиенту.
time() – функция возвращающее число характеризующее время в секундах;
div – операция целочисленного деления;
n – длина периода (например, в днях);
day – продолжительность единичного периода (например, день day=24*60*60).
Итоговая формула для вычисления дайджест сообщения имеет вид:
$t = f1.";". f2.";". f3…. upper(md5(secure_word.":". (time() div (N*day))))
$check_code = sha1($t).md5($t); (3)
где
f1, f2, f3… - значение полей данных формы;
$check_code – результат вычисляется на каждом из сервисов и определяет корректность поступивших данных.

В результате:
1. применение подхода подтверждения целостности данных форм позволяет идентифицировать агента и предупредить Интернет мошенничество с данными транзакции;
2. предложенный подход не требует дополнительного программного обеспечения, а значит, является универсальным для клиентов web;
3. предложенный подход не использует сложных математических преобразований, следовательно, менее требователен к ресурсам и обеспечивает доступность web-ресурса.
Обеспечение доступности ресурса для реального пользователя.
Выявление вопросов закладок
Рассмотрим задачу обеспечения доступности ресурса реальному пользователю. При предоставлении доступа к ресурсам web-сервиса необходимо проверить ряд параметров (в т.ч. авторизовать пользователя, а если необходимо убедиться в том, что это не мошенник). При идентификации агента иногда важно знать, кто им управляет. Для получения значений признаков и разделения агентов на пользовательские и интеллектуальные предлагается использовать вопросы-закладки (рис. 3.). Вопросы-закладки предлагается использовать незаметно для агента (пользователя). Их применение улучшает процесс идентификации и не затрудняет работу агента. Например, способность различать контрастные цвета используется в элементах навигации и выясняется в процессе работы агента, без надобности признаки не выясняются. Используются 5 видов вопросов-закладок:
1) проверка ранее известных признаков (текст, средства авторизации, секретный вопрос, и т.п.);
2) проверка данных, переданных по секретному каналу;
3) проверка способности объекта, управляющего агентом, воспринимать когнитивный вопрос;
4) оценка выбранной области (способность различать контрастные ссылки, место страницы для выбора);
5) вопросы о действиях, предыдущей и будущей работе (например, продолжить работу, прервать работу).

Выбирать необходимые вопросы-закладки, в зависимости от их разделяющей способности в текущий момент времени.
1) для идентификации пользовательского или интеллектуального агента:
когнитивный вопрос; область выбора; вопрос о действии;
2) для подтверждения авторизации:
- проверка ранее известных признаков;
- секретный канал.

При выборе вопросов-закладок необходимо учитывать характеризующие признаки.
1. Заранее известные признаки. Содержание полей известно пользователю, может быть объектом для несанкционированного перехвата, изменяется по инициативе пользователя, система может предлагать изменение.
2. Когнитивный вопрос. Понятен человеку, генерируется в конкретный момент времени, создается сколь угодно много раз, вопрос создается по инициативе системы.
3. Секретный канал. Признак известен пользователю через некоторое время, что позволяет избежать определенного количества несанкционированных перехватов информации. Генерируется системой.
4. Область выбора. Позволяет применять ненавязчивое использование, генерируется сколь угодно много раз и не является целью несанкционированного перехвата.
5. Вопрос о действиях. Ненавязчивое выяснение намерений, позволяет находить последовательности и несоответствия.

Авторизация также проводится с использованием вопросов закладок. Помимо данных авторизации проверяются другие параметры: история, настройки профиля, смена адреса, формируются положительные и отрицательные оценки. Исходя из этого, принимается решение предоставить доступ или уточнить еще какие-либо признаки. Для этого на основе алгебры конечных предикатов была разработана модель и реализована в виде логических уравнений.[24]

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

Определение вспомогательных признаков
С первым запросом на установление соединения, агент направляют информацию полезную для его идентификации. В тоже время усиление методов защиты зачастую приводит к ухудшению пользовательских характеристик, поэтому предлагается выделить группы признаков, которые помогут сформировать обобщенную оценку:
1) запрос сопровождается отправкой параметров указывающих на зарегистрированного пользователя (например, Cookie, $_REQUEST);
2) признаки запроса проверяются в истории;
3) при продолжении сессии предлагать только одно окно авторизации.
4) узнавать атаки строки запроса (SQL-инъекции, применение эксплоитов);
5) выбирать систему Honey Pot для проверки работы агента.
Дополнительно система накапливает обобщенную информацию о работе сервера:
- нагрузку на ресурсы сервера, запрашиваемые файлы;
- потоки запросов на каналах связи.

Предлагается использовать данные истории для быстрой идентификации агента, оценки его полезности для системы и принятии решения о предоставлении ответа с учетом состояния системы и обобщенной информации о подключенных агентах. История позволяет накапливать признаки об агентах, их действиях и элементах работы, оценивать полезность для работы системы. Каждая запись таблицы истории содержит:
1) индексируемое поле, характеризующее адрес агента (IP) или идентификатор зарегистрированного пользователя (ID);
2) оценочное поле. Пусть N - максимальная положительная оценка записи, тогда оценка:
- соответствует корректной работе ID;
- соответствует корректной работе IP;
- соответствует обычной работе пользователя;
- отсутствием информации;
- наличием некоторых несерьезных замечаний;
- наличием серьезных замечаний;
- блокировку записи;
3) временное поле. Определяет старение записи [25];
4) групповой идентификатор, объединяет несколько записей при совпадении индексов;
5) оценку полезности подключенного пользователя.

Последствия применения и методы предупреждения SQL-инъекций рассмотрены в других работах [26], нас интересует факт попытки, проверки. Идентификатор компьютера, идентификатор пользователя получает штрафные балы, в будущем, при повторной попытке, такой агент будет отключен. Сбор данных о потоках на каналах связи позволяет определять аномальное увеличение потов и отключать соответствующие точки входа. Порядок сбора и использования обобщенной информации приводится в работе [27].

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

С одной стороны, ошибка ввода может указывать на несанкционированный подбор параметров, с другой стороны, – на результат невнимательности пользователя. Предлагается адаптировать вторую стратегию к учету неудачных попыток и времени. После каждой неудачной попытке пользователю будет показано сообщение об ошибке и установлено время повтора (если после ошибки – увеличено), сделана запись в историю (-). Для определения пауз между попытками регистрации предлагается использовать ряд Фибоначчи. Такой подход позволяет также...

Добавить комментарий
2008-01-04 07:27:10 - 1. Интересно было бы посмотреть на расчеты... helgi
2008-01-03 16:06:07 - хорошая, информативная статья. Автору... owling
Всего 2 комментариев


Copyright © 2001–2012 Computer Crime Research Center

CCRC logo
Рассылка новостей