SoftLayer API Nessus Scan Status / Отчет через переполнение стека

Чтобы сгенерировать / инициировать новое сканирование уязвимостей на SoftLayer, это работает (для каждого сервера в учетной записи):

    require_once('SoapClient.class.php');
$apiUsername = "omitted";
$apiKey = "omitted";

$client = SoftLayer_SoapClient::getClient('SoftLayer_Account', null, $apiUsername, $apiKey);

$accountInfo = $client->getObject();
$hardware = $client->getHardware();

foreach ($hardware as $server){
$scanclient = SoftLayer_SoapClient::getClient('SoftLayer_Network_Security_Scanner_Request', '', $apiUsername, $apiKey);

$scantemplate = new stdClass();
$scantemplate->accountId = $accountInfo->id;
$scantemplate->hardwareId = $server->id;
$scantemplate->ipAddress = $server->primaryIpAddress;
try{
// Successfully creates new scan
$scan = $scanclient->createObject($scantemplate);
} catch (Exception $e){
echo $e->getMessage() . "\n\r";
}
}

При смене

$reportstatus = $scanclient->createObject($scantemplate);

в

$reportstatus = $scanclient->getReport($scantemplate);

API отвечает с ошибкой относительно «Объект не существует для выполнения метода.».

Требуется ли SoftLayer_Network_Security_Scanner_RequestInitParameters в соответствии с документами? Если да, как вы определяете эти «параметры инициализации» и прикрепляете их к запросу о статусе или отчете?

http://sldn.softlayer.com/reference/services/SoftLayer_Network_Security_Scanner_Request/getReport

0

Решение

Вам нужно установить параметр init с помощью PHP-клиента Softlayer, вы можете сделать это следующим образом:

Когда вы создаете клиент:

$virtualGuestService = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', $initParemter, $username, $key);

Или после создания клиента:

$virtualGuestService = SoftLayer_SoapClient::getClient('SoftLayer_Virtual_Guest', null, $username, $key);
# Setting the init parameter
$virtualGuestService->setInitParameter($virtualGuestId);

Параметр init — это, в основном, идентификатор объекта, который вы хотите отредактировать или удалить, в этом случае параметр init — это идентификатор сканирования уязвимостей, для которого вы хотите получить отчет.

Вы можете попробовать этот код:

$scanclient = SoftLayer_SoapClient::getClient('SoftLayer_Network_Security_Scanner_Request', '', $apiUsername, $apiKey);
$scanclient->setInitParameter(15326); # The id of the vulnerability scan
$reportstatus = $scanclient->getReport();

Чтобы получить список ваших сканирований уязвимостей в VSI, вы можете использовать этот метод:
http://sldn.softlayer.com/reference/services/SoftLayer_Virtual_Guest/getSecurityScanRequests
и для серверов с открытым исходным кодом вы можете использовать этот:
http://sldn.softlayer.com/reference/services/SoftLayer_Hardware_Server/getSecurityScanRequests

С уважением

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]