Qualys API を使用している場合、サブスクリプションで AGMS を有効にすると、API が次のように変更されます。
下記の項に移動します。
アセットグループのリスト表示: 「All」グループが出力に表示されない
アセットグループのリスト表示: ビジネスユニット ID を持つアセットグループの表示
アセットグループのリスト表示: 出力にドメインネットブロックが表示
IP の追加: ユニットマネージャ/スキャナは「All」グループが割り当てられている場合に IP を「All」グループに割り当て、ネットワーク ID を指定する必要がある
IP の更新: ユニットマネージャ/スキャナはネットワーク ID を指定する必要がある
ユーザの追加: アセットグループを連絡先ユーザに割り当てられない
アセットグループ API の XML 出力に「All」グループは表示されません。この API は、個々のアセットグループのみを表示します。AGMS が有効の場合の例を示します。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -X "POST" -d
"action=list"
"https://qualysapi.qualys.com/api/2.0/fo/asset/group/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_GROUP_LIST_OUTPUT SYSTEM "https://qualysapi.qualys.com/api/2.0/fo/asset/group/asset_group_list_output.dtd">
<ASSET_GROUP_LIST_OUTPUT>
<REQUEST>
<DATETIME>2019-11-09T08:22:20Z</DATETIME>
<USER_LOGIN>john_doe</USER_LOGIN>
<RESOURCE>https://qualysapi.qualys.com/api/2.0/fo/asset/group/</RESOURCE>
<PARAM_LIST>
<PARAM>
<KEY>action</KEY>
<VALUE>list</VALUE>
</PARAM>
</PARAM_LIST>
</REQUEST>
<RESPONSE>
<DATETIME>2019-11-09T08:22:20Z</DATETIME>
<ASSET_GROUP_LIST>
<ASSET_GROUP>
<ID>1024368</ID>
<TITLE><![CDATA[AG_VM_1]]></TITLE>
<NETWORK_ID>0</NETWORK_ID>
<IP_SET>
<IP_RANGE>10.10.30.10-10.10.30.30</IP_RANGE>
</IP_SET>
</ASSET_GROUP>
...
<ASSET_GROUP>
<ID>7038084</ID>
<TITLE><![CDATA[Windows]]></TITLE>
<NETWORK_ID>0</NETWORK_ID>
<IP_SET>
<IP>10.10.10.81</IP>
</IP_SET>
</ASSET_GROUP>
</ASSET_GROUP_LIST>
</RESPONSE>
</ASSET_GROUP_LIST_OUTPUT>
アセットグループをリスト表示する場合に、リクエストに show_attributes=ASSIGNED_UNIT_IDS を含めると、「All」アセットグループが指定されたビジネスユニットにアセットグループは表示されません。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -X "POST" -d
"action=list&echo_request=1&show_attributes=ASSIGNED_UNIT_IDS"
"https://qualysapi.qualys.com/api/2.0/fo/asset/group/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_GROUP_LIST_OUTPUT SYSTEM "https://qualysapi.qualys.com/api/2.0/fo/asset/group/asset_group_list_output.dtd">
<ASSET_GROUP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2020-02-05T05:18:05Z</DATETIME>
</RESPONSE>
</ASSET_GROUP_LIST_OUTPUT>
アセットグループをリスト表示し、リクエストに show_attributes=All を含める場合、ネットブロックが定義されていると、出力のドメインリストに各ドメインのネットブロックが表示されます。AGMS が有効でない場合、出力にネットブロック情報は表示されません。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -X "POST" -d
"action=list&ids=5443081&show_attributes=ALL"
"https://qualysapi.qualys.com/api/2.0/fo/asset/group/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE ASSET_GROUP_LIST_OUTPUT SYSTEM "https://qualysapi.qualys.com/api/2.0/fo/asset/group/asset_group_list_output.dtd">
<ASSET_GROUP_LIST_OUTPUT>
<RESPONSE>
<DATETIME>2020-01-16T04:16:38Z</DATETIME>
<ASSET_GROUP_LIST>
<ASSET_GROUP>
<ID>5443081</ID>
<TITLE><![CDATA[AG1]]></TITLE>
<OWNER_USER_ID>64060</OWNER_USER_ID>
<LAST_UPDATE>2020-01-16T04:16:07Z</LAST_UPDATE>
<BUSINESS_IMPACT>High</BUSINESS_IMPACT>
<CVSS_ENVIRO_CDP>Not Defined</CVSS_ENVIRO_CDP>
<CVSS_ENVIRO_TD>Not Defined</CVSS_ENVIRO_TD>
<CVSS_ENVIRO_CR>Not Defined</CVSS_ENVIRO_CR>
<CVSS_ENVIRO_IR>Not Defined</CVSS_ENVIRO_IR>
<CVSS_ENVIRO_AR>Not Defined</CVSS_ENVIRO_AR>
<DOMAIN_LIST>
<DOMAIN netblock="10.10.10.10-10.10.10.12">abc123.com</DOMAIN>
</DOMAIN_LIST>
<COMMENTS><![CDATA[My-Comments]]></COMMENTS>
<OWNER_USER_NAME><![CDATA[Joe User (Manager)]]></OWNER_USER_NAME>
</ASSET_GROUP>
</ASSET_GROUP_LIST>
</RESPONSE>
</ASSET_GROUP_LIST_OUTPUT>
「Add assets」パーミッションが付与されたユニットマネージャまたはスキャナがサブスクリプションに新しい IP を追加する場合、ユーザは、IP の追加先のアセットグループを選択する必要があります。使用できるオプションは、ユーザに「All」グループが割り当てられているかどうかによって決まります。
- リクエストを行うユーザに「All」グループが割り当てられている場合(他のアセットグループの有無にかかわらず)、ユーザは API リクエストに ag_title=All を指定する必要があります。サブスクリプションでネットワークサポート機能が有効になっている場合、ユーザは、リクエストに network_id を指定する必要もあります。
- リクエストを行うユーザに「All」グループが割り当てられていない場合、ユーザは、割り当てられているアセットグループのいずれかのタイトルを指定する必要があります。ネットワークサポート機能が有効になっているアカウントでの network_id はオプションとなります。
この例では、リクエストで、ag_title=All および network_id=114075 が指定されています。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -X "POST" -d
"action=add&ips=10.111.25.20&enable_vm=1&ag_title=All&network_id=114075"
"https://qualysapi.qualys.com/api/2.0/fo/asset/ip/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2020-01-20T06:33:49Z</DATETIME>
<TEXT>IPs successfully added to Vulnerability Management</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
この例では、リクエストに ag_title=All が指定されていませんが(別のグループが指定されている)、リクエストを行うユーザには「All」グループが割り当てられていました。出力には、「All is assigned to user, so please specify All in ag_title」というメッセージが表示されます。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -X "POST" -d
"action=add&echo_request=0&ips=10.111.25.20&enable_vm=1&ag_title=MyGroup"
"https://qualysapi.qualys.com/api/2.0/fo/asset/ip/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2020-01-20T06:33:49Z</DATETIME>
<CODE>1905</CODE>
<TEXT>All is assigned to user, so please specify All in ag_title</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
サブスクリプションでネットワークサポート機能が有効になっている場合に、ユニットマネージャまたはスキャナが API を使用して IP を更新するとき、リクエストに network_id を指定する必要があります。
curl -u "USERNAME:PASSWORD" -H "X-Requested-With: Curl" -d
"action=update&ips=1.1.1.1-1.1.1.254&network_id=114075&tracking_method=DNS"
"https://qualysapi.qualys.com/api/2.0/fo/asset/ip/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "https:// qualysapi.qualys.com /api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2020-02-20T09:42:12Z</DATETIME>
<TEXT>IPs successfully updated</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
「Manage virtual scanner appliances」パーミッションが付与されたユニットマネージャまたはスキャナがサブスクリプションに新しい Virtual Scanner Appliance を追加する場合、そのユーザは、スキャナの追加先のアセットグループを選択する必要があります。API リクエストで指定されるアセットグループ ID は、ユーザのアカウントの有効なアセットグループ ID である必要があります。ユニットマネージャ/スキャナに「All」グループが割り当てられている場合、そのユーザは、ユーザが属するビジネスユニットのスコープ内にあるマネージャ作成のアセットグループが使用できます(以前に説明済み)。ユーザは、Scanner Appliance を追加するときに、スコープ内にあるマネージャ作成のアセットグループのいずれかの ID を指定できます。
以下の例では、ユーザがアカウントに有効なアセットグループ ID を指定しています。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -d
"action=create&name=MyScanner&asset_group_id=5480600"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE APPLIANCE_LIST_OUTPUT SYSTEM
"https://qualysapi.qualys.com/api/2.0/fo/appliance/appliance_create_output.dtd">
<APPLIANCE_CREATE_OUTPUT>
<RESPONSE>
<DATETIME>2020-01-28T05:11:12Z</DATETIME>
<ID>777</ID>
<NAME>MyScanner</NAME>
<ACTIVATION CODE>70171268144764</ACTIVATION CODE>
<REMAINING_QVSA_LICENSES>4</REMAINING_QVSA_LICENSES>
</RESPONSE>
</APPLIANCE_CREATE_OUTPUT>
以下の例では、ユーザがアカウントにないアセットグループ ID を指定したため、「parameter asset_group_id has invalid value」というメッセージが出力に表示されます。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -d
"action=create&name=MyScanner&asset_group_id=5475586"
"https://qualysapi.qualys.com/api/2.0/fo/appliance/"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE SIMPLE_RETURN SYSTEM "https://qualysapi.qualys.com/api/2.0/simple_return.dtd">
<SIMPLE_RETURN>
<RESPONSE>
<DATETIME>2020-01-28T05:11:12Z</DATETIME>
<CODE>1905</CODE>
<TEXT>parameter asset_group_id has invalid value (Given Asset Group is not in user's scope: 5475586)</TEXT>
</RESPONSE>
</SIMPLE_RETURN>
AGMS が有効の場合、連絡先ユーザロールを持つユーザにアセットグループを割り当てることはできません。ユーザの追加 API(/msp/user.php)を使用して新しい連絡先ユーザを作成するときに、リクエストにアセットグループを含めると、エラーが発生します。新しい連絡先ユーザを追加し、リクエストにアセットグループ AG1 を指定した場合の例を示します。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -d
"action=add&user_role=contact&business_unit=BU1&first_name=Joe&last_name=User&title=Security+Consultant&phone=6508016100&[email protected]&address1=919+Hillsdale+Blvd&city=Foster+City&country=United+States+of+America&state=California&zip_code=94404"
"https://qualysapi.qualys.com/msp/user.php"
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE USER_OUTPUT SYSTEM "https://qualysapi.qualys.com/user_output.dtd">
<USER_OUTPUT>
<API name="user.php" username="user" at="2019-11-05T04:24:50Z" />
<RETURN status="FAILED" number="1905">
<MESSAGE><![CDATA[Invalid value for 'asset_groups' : AG1.This asset group is not accessible.]]></MESSAGE>
</RETURN>
</USER_OUTPUT>
VM スキャンリスト API(/api/2.0/fo/scan/?action=list)を使用すると、ユーザのアカウントに脆弱性スキャンをリスト表示できます。コンプライアンススキャンリスト API(/api/2.0/fo/scan/compliance/?action=list)を使用すると、ユーザのアカウントにコンプライアンススキャンをリスト表示できます。
サブユーザに表示されるスキャンのリストへの変更が行われました。サブユーザが API を使用して、脆弱性スキャンまたはコンプライアンススキャンをリスト表示すると、XML 出力に次のスキャンが表示されます。
- サブユーザが開始したスキャン。
- ユーザに割り当てられたアセット(ユーザスコープのアセット)に対してマネージャが開始した完了スキャン。サブユーザには、マネージャが開始し、スキャン結果の処理が終了した完了スキャンのみが表示されます。
サブユーザのスコープ内のアセットがマネージャによってパージされた場合。そのアセットのスキャンはサブユーザのスキャンリストに表示されなくなります。
詳細については、「スキャンリストの変更」を参照してください。
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -d
"action=list" "https://qualysapi.qualys.com/api/2.0/fo/scan/"
curl -u "USERNAME:PASSWD" -H "X-Requested-With: Curl" -d
"action=list" "https://qualysapi.qualys.com/api/2.0/fo/scan/compliance/"
エラーメッセージがいくつか変更されました。
以前のメッセージ:
<TEXT>parameter title has invalid value: An asset group with title ‘Title' already exists.Please use a different title</TEXT>
新しいメッセージ:
<TEXT> (Asset Group name - An asset group with name Title already exists.Please use a different title)</TEXT>
以前のメッセージ:
<TEXT>parameter Asset Group has invalid value: Tried to delete invalid Asset Group - NNNN.Asset Group id does not exist or you do not have permission to delete this Asset Group</TEXT>
新しいメッセージ:
<TEXT> (Invalid Parameter Ids Data not found for Asset Group, NNNN)</TEXT>
以前のメッセージ:
<TEXT> parameter IPs has invalid value: One or more IPs are not assigned to this user: N.N.N.N-N.N.N.N</TEXT>
新しいメッセージ:
<TEXT> (IPs N.N.N.N-N.N.N.N are not in user account scope.)</TEXT>