Перейти к основному содержимому
Версия: 1.7.0

Операции с рисками

Управление рисками

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

Атаки на систему выявляются с помощью проверок velocity checks, которые позволяют отслеживать количество повторений элементов данных транзакции за определенные временные интервалы, а также количество аномалий или сходства с поведением мошенников.

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

Уровень риска

Существует два уровня риска:

  • Significant. Значительный, риск на который следует обратить внимание первым.
  • Moderate. Умеренный, риск которы следует рассматривать во вторую очередь.

Уровень риска используются только как дополнительный фильтр в publicapi.

Таблица рисков

Тип рискаУровень рискаДанные необходимые для работы рискаУсловия
0MassAttackSignificantПоле deviceMetadata.Ip в данных запроса на валидацию.Превышение числа запросов валидации, отправленных после определенной даты (текущая дата минус длительность периода) c IP-адреса.

Параметры: Period — период, по умолчанию равен TimeSpan("01:00:00"), Count — количество запросов, по умолчанию равно 3.

Риск срабатывает, если с одного IP-адреса пришло больше 3 запросов в течение одного часа, считая от текущего запроса.

1PeriodicAttackModerate

Поля в данных запроса на валидацию:

  • browserMetadata.browserInfo
  • browserMetadata.canvasInfo
  • browserMetadata.fontsInfo
  • browserMetadata.html5Info
  • browserMetadata.webGlInfo
Наличие запросов на валидацию аппликанта с отличающимся ValidationRequestId и совпадающим отпечатком окружения пользователя.

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

6DuplicateFaceSignificantПоле faceImageBase64 в данных запроса на валидацию.Наличие зарегистрированного аппликанта с коэффициентом совпадения лица выше значения параметра.

Параметры: FaceValidationPercent

7InconsistentMetadataSignificantНомер телефона указанный в данных аппликанта. Поля deviceMetadata.Ip и deviceMetadata.timeZone в данных запроса на валидацию.При проверке были обнаружены несоответствия в метаданных клиента.

Возможные несоответствия:

  • Страна телефона - страна номера телефона не совпадает со страной Ip клиента.
  • TimeZone - часовой пояс на клиентском устройстве не совпадает с часовым поясом clientIp.
8MissingMetadataModerateПоля deviceMetadata.Ip и deviceMetadata.timeZone в данных запроса на валидацию.В данных запроса на валидацию отсутствуют необходимые поля.
9UntrustedIpModerateПоле deviceMetadata.Ip в данных запроса на валидацию.Ip при регистрации не совпадает с ip авторизации.
10MotionControlFailedModerateИнформация о контроле движений с веб компоненты.Движения пользователя не совпадают с указаниями веб компоненты при записи видео.
11UntrustedDeviceModerateПоле userAgent в данных запроса на валидацию.Отпечаток устройства при регистрации не совпадает с отпечатком устройства при авторизации.

Получение списка рисков

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

Эндпоинт GET /publicapi/api/v2/private/RiskEvents

Параметры:

Название поляОписаниеЗначение
PageНомер страницыОт 1 до 2147483647
PageSizeМаксимальное количество аппликантов на страницеОт 1 до 400

Для поиска и сортировки можно использовать следующие необязательные поля:

Название поляОписание
CreatedFromНижняя граница даты: дд-мм-гггг
CreatedToВерхняя граница даты: дд-мм-гггг
SortFieldПоле для сортировки. Можно указать firstName, lastName, phone и т.д.
OrderПорядок сортировки для выбранного поля. Для порядка по убыванию укажите значение: descending. Порядок по возрастанию задан по умолчанию.
TextFilterТекстовый поиск.
LevelУровень риска. Значения 0 (Moderate) или 1 (Significant)
TypeНомер типа риска

Пример запроса:

curl -X 'GET' \
'https://baf.ai/publicapi/api/v2/private/RiskEvents?Page=1&PageSize=10' \
-H 'accept: text/plain' \
-H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b'

Пример ответа:

Status Code200
{
"page": 0,
"pageSize": 0,
"total": 0,
"totalPages": 0,
"items": [
{
"id": "3fa85***", // ID риска
"validationResponseId": 0,
"validationRequestId": "3fa85***",
"level": 0,
"type": 0,
"created": "2023-09-20T10:45:37.851Z"
}
]
}

Возможные ошибки:

CodeMessageDescriptionCode
400No sorting by selected property.Wrong sorting field selected120026

Получение списка типов отслеживаемых рисков

Запрос возвращает список доступных в системе типов рисков и их статусы.

Эндпоинт GET /publicapi/api/v2/private/RiskManagement/ActiveRisks

Пример запроса:

curl -X 'GET' \
'https://baf.ai/publicapi/api/v2/private/RiskManagement/ActiveRisks' \
-H 'accept: text/plain' \
-H 'Authorization: Bearer sk_3938***'

Пример ответа:

Status Code200
[
{
"riskType": 0,
"description": "Mass Attack",
"isActive": false
},
{
"riskType": 1,
"description": "Periodic Attack",
"isActive": false
},
{
"riskType": 6,
"description": "Duplicate Face",
"isActive": true
},
{
"riskType": 7,
"description": "Inconsistent Metadata",
"isActive": false
},
{
"riskType": 8,
"description": "Missing Metadata",
"isActive": false
},
{
"riskType": 9,
"description": "Untrusted Ip",
"isActive": false
},
{
"riskType": 10,
"description": "Motion Control Failed",
"isActive": false
},
{
"riskType": 11,
"description": "Untrusted device",
"isActive": false
}
]

Включение/отключение активности рисков

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

Эндпоинт PUT /publicapi/api/v2/private/RiskManagement/ActiveRisks

Тело запроса:

[
0,1,6
]

Пример запроса:

curl -X 'PUT' \
'https://baf.ai/publicapi/api/v2/private/RiskManagement/ActiveRisks' \
-H 'accept: */*' \
-H 'Authorization: Bearer sk_3938ab7b-cdbf-4a1a-952b-e3782f061f4b' \
-H 'Content-Type: application/json' \
-d '[
0,1,6
]'

Пример ответа:

Status Code200