Перейти к содержанию

Подключение к агенту на хосте через KSC13 OpenAPI


Рекомендуемые сообщения

Я автоматизирую инфраструктуру и для скрипта мне нужно временно приостановить антивирус на хосте.

 

Я нашел описание (ужасного) API и через два дня пришел к следующему:

 

Использую Session.StartSession -> получаю «sessionID»

С «sessionID» -> Использую HostGroup.FindHosts -> получаю «RequestID»

С «sessionID», «RequestID» -> Использую ChunkAccessor.GetItemsChunk -> получаю «hostnameID»

С «sessionID», «hostnameID» -> Использую CgwHelper.GetNagentLocation -> получаю «locationObj»:

{
  "PxgRetVal": {
    "GwLocHostId": "4f0737f2-9885-46f4-8437-3ba72e50103c",
    "GwLocIndirect": true,
    "GwLocLocation": "http://172.20.23.121:15000",
    "GwLocSignUdp": true,
    "GwLocTargetComponent": "1103;86;1.0.0.0;b736452e-8f9d-42b0-a6bc-251535210f7a",
    "GwLocUseCompression": true
  }
}

 С «locationObj» в качестве массива → пытаемся использовать GatewayConnection.PrepareGatewayConnection:

{
"pLocations":
	[{
 "GwLocHostId": "4f0737f2-9885-46f4-8437-3ba72e50103c",
 "GwLocIndirect": true,
 "GwLocLocation": "http://172.20.23.121:15000",
 "GwLocSignUdp": true,
 "GwLocTargetComponent": "1103;86;1.0.0.0;b736452e-8f9d-42b0-a6bc-251535210f7a",
 "GwLocUseCompression": true
}]
}

 

И я получаю ошибку:

{
  "PxgError": {
    "code": 1192,
    "file": "c:\\a\\b\\a_6vlf7p9h\\s\\csadminkit\\development2\\kloapi\\contentstream\\sax_handler.cpp",
    "line": 314,
    "message": "Field 'type' is not found for the value with name: ",
    "module": "KLSTD",
    "subcode": 0
  }
}

 

При этом ничего полезного в документации по этому поводу нет:

5a832620-ebd4-477d-ad39-8e59b1cbc430.png

https://support.kaspersky.com/help/KSC/13/KSCAPI/a00478_a5983b9b35b07657ef3afdc864c4d6c7e.html#a5983b9b35b07657ef3afdc864c4d6c7e

Что делать?

Ссылка на комментарий
Поделиться на другие сайты

Благодарю, решение пришло методом перебора (охренеть, перебирать чужое api, потому что создатели не удосужились составить нормальные доки). Вердикт - документация, как и реализация api - отвратные.

https://community.kaspersky.com/kaspersky-corporate-products-27/how-to-disable-kes-on-a-host-via-open-ksc-api-18551?postid=83471#post83471

https://community.kaspersky.com/produkty-kaspersky-dlya-biznesa-31/podklyuchenie-k-agentu-na-hoste-cherez-ksc13-openapi-18564?postid=83470#post83470

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...

Знаете что здорово? То, что я еще больше убеждаюсь, что API KSC плохой. Как думаете, что могло произойти с уже написанным  playbook во время рефакторинга? Правильно, он снова споткнулся об эту ошибку.

А знаете, почему я думаю, что API плохой, а всех остальных хочется послать более крепким словцом?

Потому что тему с ответом в соседнем форуме удалили! Здорово правда? Форум для решения проблем с этим чудовищем, а пост с решением удален с форума! Отлично!

 

Хоть api и работает, после долгого времени решения, причины, почему я считаю api KCS плохим:

1. Плохая документация - сложно найти требуемые элементы, т.к. они представлены в виде списка одиночных функций. Формально говоря - документация к API предназначена для работы через CLI а не REST. Плохо работает поиск по ключевым словам. Формально - не работает.

1.1 Предложение - перевести документацию для REST API на что-то вроде Swagger. В таком случае будет:

  1. Видна взаимосвязь конечных точек
  2. Возможность их группировки по категориям
  3. Структура и возможность увидеть примеры запроса

2. Название аргументов к запросам и ответам представлены в виде аббревиатур, через одну включающих инициалы названия сервиса. Зачем включать мусорные символы в название аргумента? Например:

REST API: ChunkAccessor.GetItemsChunk
Ответ: {
	"pChunk": {
		"KLCSP_ITERATOR_ARRAY": [
			{
				"type": "params",
				"value": {
					"KLHST_WKS_HOSTNAME": "f652a0af-e219-4716-9064-1da7d59decfd"
				}
			}
		]
	},
	"PxgRetVal": 1
}

Зачем здесь задвоение в названии  KLHST_WKS_HOSTNAME? А за что означают эти символы KLCSP_ITERATOR_ARRAY, KLHST_WKS_HOSTNAME ? Касперский? Спасибо, при общении с таким API эту информацию фиг забудешь.

Что есть WKS? Для чего в ответе ITERATOR_ARRAY? Хочешь массив - делай массив, для чего плодить объекты с длинными бессмысленными названиями?

А божественные ответы в виде ёлочки? Почему нельзя получить ёмкий ответ на заданный запрос, для чего плодить монструозную вложенность объектов - вам платят как Маяковскому - построчно? Пример:

{
	"PxgRetVal": {
		"KLHST_APP_INFO": {
			"type": "params",
			"value": {
				"1103": {
					"type": "params",
					"value": {
						"1.0.0.0": {
							"type": "params",
							"value": {
								"KLHST_APP_STATE": 3,
								"KLHST_APP_STATE_TIME": {
									"type": "datetime",
									"value": "2023-04-03T11:43:11Z"
								}
							}
						}
					}
				},
				"KES": {
					"type": "params",
					"value": {
						"11.0.0.0": {
							"type": "params",
							"value": {
								"KLHST_APP_STATE": 3,
								"KLHST_APP_STATE_TIME": {
									"type": "datetime",
									"value": "2023-04-03T11:43:11Z"
								}
							}
						}
					}
				}
			}
		}
	}
}

2.1. Предложение:

  1. Дать конечным точкам и аргументам ёмкие названия, отражающие их суть. Не можешь уложиться максимум в 2 слова - значит название неудачное.
  2. Выходная глубина Марианской впадины в ответе не имеет никакой пользы, а только добавляет проблемы при разборе экранирующих символов. В самом сервисе может быть любая глубина зависимости между объектами, но на внешнем API должно быть минимум информации, представлена она должна быть максимально емко. Объект - все требуемые свойства на одном уровне. Список - родительский объект -> дочерние объекты, без посредников.

3. Множественные ошибки при возврате сообщений по REST API, вида:

  1. 200 код, при ошибке
  2. отсутствие заголовков, например "application/json" для возвращаемого json
  3. Отсутствие вменяемой причины, почему возникла ошибка, а так же отсутствие синтаксиса и описания, как сделать правильно

Всё вышесказанное относится к первому сообщению поста.

Тут уже не предложение, а обязанность как разработчика REST API сервиса:

  1. Привести в порядок заголовки ответов. Многие службы привязаны к правильным заголовкам ответа и автоматически выполняют регламентные операции при их обнаружении. При их отсутствии - хорошо, если есть возможность в ручной обработке ответа. Плохо, что это может быть не очевидно, поскольку 3.3
  2. Привести в порядок коды возвращаемых ответов и их описание. Для большинства ситуаций существуют стандартные коды, способные отработать большинство ситуаций. Возвращать ошибку сервиса в виде 200 - неправильно.
Ссылка на комментарий
Поделиться на другие сайты

Добрый день. Ваши предложения и замечания по работе продукта, вы можете оставить через запрос в техподдержку через портал https://companyaccount.kaspersky.com/

Ссылка на комментарий
Поделиться на другие сайты

4 часа назад, GrimAnEye2 сказал:

Потому что тему с ответом в соседнем форуме удалили!

про какой соседний форум речь? вы помните название темы?

если про прежнее комьюнити https://community.kaspersky.com/ то оно закрыто, по независящим от компании обстоятельствам.

Ссылка на комментарий
Поделиться на другие сайты

Пожалуйста, войдите, чтобы комментировать

Вы сможете оставить комментарий после входа в



Войти
  • Похожий контент

    • Илья Н.
      Автор Илья Н.
      Добрый день!
      В организации установлен Kaspersky Security Center 12, с KES различных версий и Агентом администрирования KSC 12 версии. У многих ПК в домене проблемы с Агентом KSC, из за чего нет управления над этими ПК.
      Я хочу обновить на всех доменных ПК Агент KSC с 12 версии, до версии 14.2, заодно решив проблему с неуправляемыми ПК и обновлением самого KSC с 12 версии до 14.2. Для этого на сервере KSC я развернул инсталляционный пакет Агента KSC 14.2 и написал скрипт, который удаляет любую версию установленного Агента KSC и устанавливает Агент KSC 14.2 версии. Но возникла проблема с запуском данного .bat файла через GPO на логон пользователя, так как для этого нужны админские права (у пользователей в домене их нет).
      ВОПРОСЫ:
      1. Подскажите пожалуйста, может быть вы знаете как запустить батник на всех компах в домене с админскими правами?
      2. Может быть вы знаете еще способы массового обновления Агента KSC (в том числе и не на управляемых ПК в KSC)?  
    • Ufolog
      Автор Ufolog
      Нет связи агента с KSC , при установке не проходит проверка
      Всем привет, столкнулся с проблемой в установке KES.
      Разворачиваю при помощи автономного пакета установки (проверенный сотни раз) на одном из серверов под управлением ОС Windows Server 2008 R2 Enterprise (x64) доходит до шага проверки соединения с сервером KSC, не может с ним соединиться и всё на этом. При этом с данного сервера, сервер KSC отлично пингуется, в обратном направлении так же всё хорошо пингуется.
      Но при ручном запуске утилиты проверки klnagchk
       Она просто завершается, скорее всего это происходит и на этапе установки.
      Пробовал с другим агентом 14.2 такая же история.
       

       
      Может кто сталкивался или просто подскажет что то дельное...
    • Роман П.
      Автор Роман П.
      Добрый день.
       
      На одном из ПК возникла проблема с подключением к серверу администрирования через mmc-консоль администрирования.
      При попытке подключения выдает ошибку - неверный сертификат, показывая его отпечаток. Отпечаток сертификата действительно не совпадает с тем, что находится на сервере администрирования.

       
      1) При попытке повторного подключения, указываю "вручную" файл сертификата, который располагается на сервере администрирования в  C:\ProgramData\KasperskyLab\adminkit\1093\cert - статья О сертификатах Kaspersky Security Center
      Результат - аналогичен неверный сертификат.
      2) Исходя из статьи Решение проблем с узлами Сервера администрирования - зачищал файл сервера администрирования в %USERPROFILE%\AppData\Roaming\Microsoft\MMC\ 
      3) Заметил, что после того как запускаешь консоль и выдает эту ошибку, то в хранилище сертификатов certmgr.msc формируется этот "левый" сертификат.

      4) Его зачистка в хранилище сертификатов, а также же поиск  по отпечатку и удаление в реестре с последующей перезагрузкой ПК к результату не привели. По-прежнему - неверный сертификат.
      5) Переустанавливал агента и клиента Касперского. Также пытался производить подключение без установленного антивируса и агента.
       
      Вопросы: как исправить эту проблему? Как удалить этот непонятный сертификат и заставить сервер получить верный. 
       
    • bit314
      Автор bit314
      Добрый день, пытаюсь сделать тихую установку, но все время ошибка 1603
      Пытался напрямую также ошибка 

      msiexec /i "\\server.local\Soft\KAS\exec\Kaspersky Network Agent.msi" /qn SERVERADDRESS=aksc.server.ru  EULA=1 PRIVACYPOLICY=1 NAGENTTAGS=C /l*vx "%userprofile%\nag_inst.log
      log.log
    • andrew75
      Автор andrew75
      Если у вас есть лицензия на Kaspersky Secure Connection, то вы можете настроить VPN подключение в Linux к серверу KSC.
       
      Сначала нам нужно получить файл конфигурации для подключения к OVPN-серверу.
       
      1. Заходим в свой аккаунт на My Kaspersky, идем на вкладку "Безопасное соединение" и нажимаем кнопку "Создать конфигурацию".
       
      2. Выбираем протокол OpenVPN и нажимаем "Продолжить".
       
      3. Выбираем локацию. Можно выбрать только одну. Если захотите поменять, то нужно будет пересоздать конфигурацию. При этом предыдущая будет деактивирована. То есть использовать одновременно несколько локаций нельзя.
      Нажимаем кнопку "Продолжить".
       
      4. Теперь скачиваем файл конфигурации. Он называется credentials.ovpn
      Не забываем сохранить логин и пароль для подключения. Больше их вам не покажут. Если забыли сохранить, то придется пересоздавать конфигурацию.
       
      Теперь настроим OVPN подключение c использованием этой конфигурации на Linux
      Рассмотрим на примере Linux Mint 22.1
      Весь необходимый софт уже установлен в системе по умолчанию, поэтому ничего доустанавливать не надо.
       
      1. В трее нажимаем на иконку "Менеджер сетей" и выбираем "Параметры сети".
       
      2. Добавляем новое VPN подключение.
       
      3. Выбираем "Импортировать из файла"
       
      4. Находим наш файл конфигурации (credentials.ovpn) и нажимаем "Открыть".
       
      5. На вкладке "Идентификатор" меняем при желании имя соединения (по умолчанию будет credentials), вводим сохраненные логин и пароль и нажимаем "Добавить". Никаких других настроек менять не надо.
       
      6. В результате мы создали новое соединение VPN Kaspersky.
       
      7. Идем в "Менеджер сетей" и нажимаем движок "Подключить".
       
      8. Соединение установлено.
       
      9. Проверяем. Германия, Франкфурт.
       
      Как видите, все достаточно просто.
       
      Напоминаю. Использовать можно только одну локацию. Если нужна другая, то нужно создать новую конфигурацию OVPN. При этом старая конфигурация будет деактивирована. 
×
×
  • Создать...