Мне нужно обнаружить выскабливание информации на моем веб-сайте. Я пробовал обнаружение на основе поведенческих паттернов, и это кажется многообещающим, хотя относительно тяжелым для вычислений.
Основа состоит в сборе временных меток запросов определенной клиентской стороны и сравнении их поведенческих паттернов с общим паттерном или предварительно вычисленным паттерном.
Чтобы быть более точным, я собираю временные интервалы между запросами в массив, индексированный функцией времени:
i = (integer) ln(interval + 1) / ln(N + 1) * N + 1
Y[i]++
X[i]++ for current client
где N - предел времени (счетчика), интервалы больше N отбрасываются. Изначально X и Y заполнены единицами.
Затем, после того, как я наберу их в X и Y, пора принимать решение. Критерий - это параметр C:
C = sqrt(summ((X[i]/norm(X) - Y[i]/norm(Y))^2)/k)
, где X - определенные данные клиента, Y - общие данные, а norm () - калибровочная функция, а k - коэффициент нормализации, в зависимости от типа нормы (). Есть 3 типа:
norm (X) = summ (X) / count (X), k = 2
norm (X) = sqrt (summ (X [i] ^ 2), k = 2
norm (X) = max (X [i]), k - квадратный корень из числа непустых элементов X
C находится в диапазоне (0..1), 0 означает отсутствие отклонений в поведении и 1 - максимальное отклонение.
Калибровка типа 1 лучше всего подходит для повторяющихся запросов, типа 2 для повторения запросов с небольшими интервалами, типа 3 для непостоянных интервалов запросов.
Что вы думаете? Буду признателен вам » Попробую это на ваших услугах.