Перейти к основному содержимому
Версия: 1.6.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