Операции с рисками
Управление рисками
Управление рисками включает определение, оценку и контроль воздействий внешних факторов, а также выявление предумышленных атак, которые могут негативно повлиять на внедрение и работу BAF на ресурсе заказчика.
Атаки на систему выявляются с помощью проверок velocity checks, которые позволяют отслеживать количество повторений элементов данных транзакции за определенные временные интервалы, а также количество аномалий или сходства с поведением мошенников.
По умолчанию BAF отслеживает и фиксирует все случившиеся риски. Чтобы возникший риск повлиял на ход верификации (например, произошла блокировка аппликанта при массовой атаке), включите активность риска.
Уровень риска
Существует два уровня риска:
- Significant. Значительный, риск на который следует обратить внимание первым.
- Moderate. Умеренный, риск которы следует рассматривать во вторую очередь.
Уровень риска используются только как дополнительный фильтр в publicapi.
Таблица рисков
№ | Тип риска | Уровень риска | Данные необходимые для работы риска | Условия |
0 | MassAttack | Significant | Поле deviceMetadata.Ip в данных запроса на валидацию. | Превышение числа запросов валидации, отправленных после определенной даты (текущая дата минус длительность периода) c IP-адреса. Параметры: Period — период, по умолчанию равен TimeSpan("01:00:00"), Count — количество запросов, по умолчанию равно 3. Риск срабатывает, если с одного IP-адреса пришло больше 3 запросов в течение одного часа, считая от текущего запроса. |
1 | PeriodicAttack | Moderate | Поля в данных запроса на валидацию:
| Наличие запросов на валидацию аппликанта с отличающимся ValidationRequestId и совпадающим отпечатком окружения пользователя. Отпечаток окружения пользователя это совокупность полей перечисленных в данных, необходимых для работы риска. |
6 | DuplicateFace | Significant | Поле faceImageBase64 в данных запроса на валидацию. | Наличие зарегистрированного аппликанта с коэффициентом совпадения лица выше значения параметра. Параметры: FaceValidationPercent |
7 | InconsistentMetadata | Significant | Номер телефона указанный в данных аппликанта. Поля deviceMetadata.Ip и deviceMetadata.timeZone в данных запроса на валидацию. | При проверке были обнаружены несоответствия в метаданных клиента. Возможные несоответствия:
|
8 | MissingMetadata | Moderate | Поля deviceMetadata.Ip и deviceMetadata.timeZone в данных запроса на валидацию. | В данных запроса на валидацию отсутствуют необходимые поля. |
9 | UntrustedIp | Moderate | Поле deviceMetadata.Ip в данных запроса на валидацию. | Ip при регистрации не совпадает с ip авторизации. |
10 | MotionControlFailed | Moderate | Информация о контроле движений с веб компоненты. | Движения пользователя не совпадают с указаниями веб компоненты при записи видео. |
11 | UntrustedDevice | Moderate | Поле 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 Code | 200 |
{
"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"
}
]
}
Возможные ошибки:
Code | Message | Description | Code |
400 | No sorting by selected property. | Wrong sorting field selected | 120026 |
Получение списка типов отслеживаемых рисков
Запрос возвращает список доступных в системе типов рисков и их статусы.
Эндпоинт 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 Code | 200 |
[
{
"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 Code | 200 |