#deepsecurity
#deepsecurity
Вопрос:
Пытаюсь добавить в отчет значение для обновлений безопасности на компьютерных объектах. используя метод list_computers с python SDK и используя AWS TM 11.3.184.
Ссылка на метод:https://automation.deepsecurity.trendmicro.com/article/11_3/api-reference ?платформа = aws#operation/Список компьютеров
Согласно документации SDK внутри возвращаемого значения должен быть объект securityUpdates (действительно security_updates в python return), который содержит объект status внутри. Однако тестирование, похоже, показывает, что пока security_updates существует, его значение всегда равно None
Примечание: Кстати, вторичная проблема, которую следует отметить, заключается в том, что ссылка на API python SDK показывает camelcase (предполагая, что Java SDK возвращает как таковой), но реальный возврат — это случай snake.
Я перепроверил с помощью консоли и, посмотрев на компьютер, для которого установлен статус обновления системы безопасности «Актуально», объект в возврате вызова API по-прежнему показывает None вместо этого. В сокращенном коде можно увидеть конец возврата объекта computer для этого случая
'last_agent_communication': 1554232722261,
'last_appliance_communication': None,
'last_ip_used': '10.254.253.126',
'last_send_policy_request': 1554148882568,
'last_send_policy_success': 1554148896261,
'log_inspection': {'module_status': {'agent_status': 'inactive',
'agent_status_message': 'Off, not '
'installed, '
'no rules',
'appliance_status': None,
'appliance_status_message': None},
'rule_ids': None,
'state': 'off'},
'no_connector_virtual_machine_summary': None,
'platform': 'Amazon Linux (64 bit) (4.14.77-70.59.amzn1.x86_64)',
'policy_id': 4,
'relay_list_id': None,
'sap': None,
'security_updates': None,
'tasks': None,
'vmware_vm_virtual_machine_summary': None,
'web_reputation': {'module_status': {'agent_status': 'inactive',
'agent_status_message': 'Off, not '
'installed',
'appliance_status': None,
'appliance_status_message': None},
'state': 'off'},
'workspace_virtual_machine_summary': None},
Ожидаемый, как и в документации API, возврат, аналогичный этому, вместо None (в случае snake, конечно, на самом деле это скопировано из ссылки API):
"securityUpdates": {
"updateStatus": {
"status": "inactive",
"statusMessage": "string"
},
"lastChanged": 0,
"rules": [],
"antiMalware": [],
"webReputationService": [],
"manifests": [],
"other": []
},
Комментарии:
1. К вашему сведению, начиная с Deep Security 12.0 и более поздних версий, информация об обновлениях безопасности доступна.
Ответ №1:
Вы нашли то, что я назову «случайным предварительным просмотром будущих функций DS API». Хотя есть ошибка docs, которая означает, что securityUpdates виден, это не функциональность, предлагаемая в DS 11.3. У моей команды есть возможность исправить ошибку docs в ближайшее время, но мне жаль видеть, что вы тем временем на это попались.
Что касается ссылки на API в случае с верблюдом / змеей… ссылка на API показывает JSON «по проводам», отправленный из DSM, который использует camelCase. Когда python SDK получает JSON, он присваивает значения переменным snake_case (другие пакеты SDK присваиваются camelCase, или такой инструмент, как Postman, напрямую отображает JSON). Я вижу, насколько это сбивает с толку, поскольку str () объектов python выглядит аналогично json.
Я надеюсь, что это помогает разобраться в вещах, и что в остальном использование python SDK идет вам на пользу!
P.S. Я работаю в R amp; D для Trend Micro Deep Security
Комментарии:
1. Спасибо за информацию. Когда вы говорите «это не функциональность, предлагаемая в DS 11.3», вы имели в виду, что пока нет, или что это будет в выпуске 11.4 ? Также есть ETA? Camelcase / snakecase не вызывал проблем, но я заметил, что это может вызвать путаницу, когда я пытался (как здесь) ссылаться на выходные данные в сравнении с примерами документации. Я полагал, что по умолчанию используется camelcase из-за других случаев, таких как rest / java, предположительно использующих этот синтаксис. Предположим, что не слишком много работы по обновлению версии python на странице doc, чтобы отразить форму вывода SDK, было бы идеально, в противном случае это не огромная потеря.
2. Мы исправляем ошибку docs, из-за которой обновления безопасности отображались в версии 11.3, но сама функция появится в будущей версии (я не могу сказать, когда, кроме как сказать «скоро», извините). И, чтобы уточнить, проблема с документами в camelCase заключается в том, что мы показываем значения JSON (то, что вы бы увидели, используя такой инструмент, как postman, вместо SDK), так что это вообще не зависит от языка. Если в будущем мы действительно покажем результат, специфичный для SDK, мы обязательно должны убедиться, что python использовал snakecase.