3.1 APIリリースノート

QualysGuard® WAS 3.1
API リリースノート
2013 年 11 月 4 日
QualysGuard Web Application Scanning(WAS)3.1 では、WAS API で次の新しい機能拡張が行われており、ここ
ではこれらについてすべて説明します。
認証レコードを管理するための新しい API
XML 形式の WAS レポート – 検出内容の Base64 エンコード化
認証レコードを管理するための新しい API
これまでのリリースと同様、認証機能を使用して、Web アプリケーションのより詳細な評価を実行し、脆弱性を検出
して検証することができます。フォーム(Basic、Selenium スクリプト)やサーバ認証(Basic、Digest、NTLM、SSL)な
ど、さまざまな認証メソッドに対応しています。認証を使用するには、認証レコードを設定し、設定したレコードとス
キャンする Web アプリケーションを関連付けて、使用する認証メソッドを指定します。
WAS 3.1 では、認証レコードを管理するための WebAppAuthRecord という新しい API が導入されました。この新し
い API では次のことを実行できます。
•
認証レコードを Web アプリケーション設定と別に管理する
•
認証レコードを簡単に作成し、作成した 1 つのレコードを複数の Web アプリケーションに関連付ける
•
作成、更新、削除、詳細の取得、検索、カウントなど、認証レコードに関するすべての処理を実行する
新しい WebAppAuthRecord リソースは次の URL にあります。
https://qualysapi.qualys.com/qps/ rest/3.0/<処理>/was/webappauthrecord
(“ qualysapi.qualys.com ”は QualysGuard プラットフォーム用の QualysGuard API サーバの URL です。ここでは、
US プラットフォーム 1 になります。)
重要!
このリリースで Web アプリケーション API(WebApp)が更新されました。Web ア
プリケーション API を使用した認証レコードの管理(作成、更新、削除など)はで
きなくなりました。代わりに新しい認証レコード API を使用します。
既存の認証レコードについては、特別な作業は必要ありません。レコードで定義
されている認証のメソッドを使用して、Web アプリケーションがスキャンされます。
新しいレコードを作成したり既存のレコードを更新したりするには、新しい認証レ
コード API を使用する必要があります。
無断複写・転載を禁じます。2013 年 クォリスジャパン株式会社
1
API の機能拡張の概要
新しい認証レコード API
サポートされる処理 - 新しい WebAppAuthRecord API では次の処理を行うことができます。<基本 URL> は、ご使
用のアカウントが所属している QualysGuard プラットフォームの API サーバの URL です。
処理
URL
認証レコードのカウント
<基本 URL>/qps/3.0/count/was/webappauthrecord
認証レコードの検索
<基本 URL>/qps//3.0/search/was/webappauthrecord
認証レコードの詳細の取得
<基本 URL>/qps//3.0/get/was/webappauthrecord
新しい認証レコードの作成
<基本 URL>/qps//3.0/create/was/webappauthrecord
認証レコードの更新
<基本 URL>/qps//3.0/update/was/webappauthrecord
認証レコードの削除
<基本 URL>/qps//3.0/delete/was/webappauthrecord
新しい XSD - WebAppAuthRecord オブジェクトは WebApp オブジェクトとは別になります。新しく
webappauthrecord.xsd(…/qps/xsd/3.0/was/webappauthrecord.xsd)になります。WebAppAuthRecord オブジェクトに
は次の新しい属性が含まれます。
<xs:complexType name="WebAppAuthRecord">
<xs:all>
<xs:element name="id" type="xs:long" minOccurs="0"/>
<xs:element name="name" type="Cdata" minOccurs="0"/>
<xs:element name="owner" type="User" minOccurs="0"/>
<xs:element name="formRecord" type="WebAppAuthFormRecord" minOccurs="0"/>
<xs:element name="serverRecord" type="WebAppAuthServerRecord" minOccurs="0"/>
<xs:element name="tags" type="TagList" minOccurs="0"/>
<xs:element name="comments" type="CommentList" minOccurs="0"/>
<xs:element name="createdDate" type="xs:dateTime" />
<xs:element name="createdBy" type="User" />
<xs:element name="updatedDate" type="xs:dateTime" />
<xs:element name="updatedBy" type="User" />
</xs:all>
</xs:complexType>
Web アプリケーション API の変更点
このリリースで WebApp API が更新されました。
サポートされる処理 – 次の 2 つの変更点に注意してください。
1)作成処理と更新処理を使用して、認証レコードを Web アプリケーションに関連付けます(以前のように Web ア
プリケーション設定内でレコードを作成することはできません)。API リクエストでは、入力として id 要素を指定する
のみです。
2)Web アプリケーションの表示および詳細の取得の API リクエスト(検索処理と取得処理)では、Web アプリケー
ションの ID と名前のみが返されます。
QualysGuard WAS API リリースノート
2
XSD の更新 - webapp.xsd が更新されました(…/qps/xsd/3.0/was/webapp.xsd)。次の変更点に注意してください。
1)WebApp オブジェクトには、引き続き WebAppAuthRecord 要素のリストが含まれます(変更なし)。
<xs:complexType name="WebApp">
<xs:all>
...
<xs:element name="authRecords" type="WebAppAuthRecordList" minOccurs="0"/>
...
</xs:all>
</xs:complexType>
2)WebAppAuthRecord 要素では、id 属性と name 属性のみを使用できます(その他の属性は使用できなくなりました)。
<xs:complexType name="WebAppAuthRecord">
<xs:all>
<xs:element name="id" type="xs:long" minOccurs="0"/>
<xs:element name="name" type="Cdata" minOccurs="0"/>
</xs:all>
</xs:complexType>
QualysGuard WAS API リリースノート
3
認証レコードを作成してスキャンに適用する方法
WAS API バージョン 3.1 で個別の認証レコードを作成し、作成したレコードを Web アプリケーションに関連付けま
す。これにより、Web アプリケーションに対して認証スキャンを開始できるようになります。
ステップ 1: 認証レコードの作成
新しい認証レコードを作成して Web アプリケーションの認証方法を指定します。次のリクエストの例は、フォーム認
証が使用されることを示しています。それぞれの Web アプリケーションの必要に応じて、複数の認証レコードを作
成できます(Web アプリケーション認証レコードに関するパーミッションのうち、認証レコードの新規作成のパーミッ
ションが付与されている必要があります)。
リクエスト:
curl -u "USERNAME:PASSWORD" -H "Content-type: text/xml" -X "POST" --data-binary @"https://qualysapi.qualys.com/qps/rest/3.0/create/was/webappauthrecord/" < file.xml
注記: file.xml には、リクエスト POST データが含まれます。
リクエスト POST データ:
<?xml version="1.0" encoding="UTF-8"?>
<ServiceRequest>
<data>
<WebAppAuthRecord>
<name><![CDATA[From API - Form]]></name>
<formRecord>
<type>STANDARD</type>
<sslOnly>true</sslOnly>
<fields>
<set>
<WebAppAuthFormRecordField>
<name><![CDATA[password]]></name>
<value><![CDATA[12345]]></value>
</WebAppAuthFormRecordField>
<WebAppAuthFormRecordField>
<name><![CDATA[username]]></name>
<value><![CDATA[user]]></value>
</WebAppAuthFormRecordField>
</set>
</fields>
</formRecord>
<comments>
<set>
<Comment>
<contents><![CDATA[This is a comment]]></contents>
</Comment>
</set>
</comments>
<tags>
<set>
<Tag>
<id>102609</id>
</Tag>
</set>
</tags>
</WebAppAuthRecord>
</data>
</ServiceRequest>
QualysGuard WAS API リリースノート
4
応答:
<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="https://qualysapi.qualys.com/qps/xsd/3.0/was/webappauth
record.xsd">
<responseCode>SUCCESS</responseCode>
<count>1</count>
<data>
<WebAppAuthRecord>
<id>1037</id>
<name><![CDATA[From API - Form]]></name>
<owner>
<id>123056</id>
<username>username</username>
<firstName><![CDATA[Rodnina]]></firstName>
<lastName><![CDATA[Rocker]]></lastName>
</owner>
<formRecord>
<type>STANDARD</type>
<sslOnly>true</sslOnly>
<fields>
<count>8</count>
<list>
<WebAppAuthFormRecordField>
<id>1196</id>
<name><![CDATA[password]]></name>
<value><![CDATA[abc123]]></value>
</WebAppAuthFormRecordField>
<WebAppAuthFormRecordField>
<id>1154</id>
<name><![CDATA[username]]></name>
<value><![CDATA[admin]]></value>
</WebAppAuthFormRecordField>
</list>
</fields>
</formRecord>
<tags>
<count>1</count>
</tags>
<comments>
<count>1</count>
</comments>
<createdDate>2009-02-05T17:10:41Z</createdDate>
<updatedDate>2012-05-10T19:11:04Z</updatedDate>
<updatedBy>
<id>123056</id>
<username>username</username>
<firstName><![CDATA[Rodnina]]></firstName>
<lastName><![CDATA[Rocker]]></lastName>
</updatedBy>
</WebAppAuthRecord>
</data>
</ServiceResponse>
QualysGuard WAS API リリースノート
5
ステップ 2: Web アプリケーション設定への認証レコードの追加
認証先の各 Web アプリケーションを作成または更新して、Web アプリケーション設定に認証レコードを追加します。
作業は、認証レコード ID を追加するのみです。なお、複数の Web アプリケーションに同じ認証レコードを関連付
けることもできます(WAS アセットに関するパーミッションのうち、Web アプリケーションの作成/更新のパーミッショ
ンがあれば、Web アプリケーション設定に認証レコードを追加することができます)。
リクエスト:
curl -u "USERNAME:PASSWORD" -H "Content-type: text/xml" -X "POST" --data-binary @"https://qualysapi.qualys.com/qps/rest/3.0/update/was/webapp/324539" < file.xml
注記: file.xml には、リクエスト POST データが含まれます。
リクエスト POST データ:
<ServiceRequest>
<data>
<WebApp>
<authRecords>
<add>
<WebAppAuthRecord><id>1688</id></WebAppAuthRecord>
<WebAppAuthRecord><id>1689</id></WebAppAuthRecord>
<WebAppAuthRecord><id>1690</id></WebAppAuthRecord>
<WebAppAuthRecord><id>1691</id></WebAppAuthRecord>
</add>
</authRecords>
</WebApp>
</data>
</ServiceRequest>
応答:
<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse xmlns:xsi="http://www.w3.org/2001/XMLSchemainstance"
xsi:noNamespaceSchemaLocation="https://qualysapi.qualys.com/qps/xsd/3.0/was/webapp.xsd
">
<responseCode>SUCCESS</responseCode>
<count>1</count>
<data>
<WebApp>
<id>324539</id>
</WebApp>
</data>
</ServiceResponse>
ステップ 3: Web アプリケーションの詳細の確認
Web アプリケーションの詳細には、すべての Web アプリケーション設定と追加した認証レコードが含まれます。ス
キャンを実行すると、Web アプリケーションに関連付けられたすべてのレコードを使用して認証が試行されます。
リクエスト:
curl -u "USERNAME:PASSWORD" -H "Content-type: text/xml"
"https://qualysapi.qualys.com/qps/rest/3.0/get/was/webapp/324539"
QualysGuard WAS API リリースノート
6
応答:
<?xml version="1.0" encoding="UTF-8"?>
<ServiceResponse
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://qualysapi.qualys.com/qps/xsd/3.0/was/webapp.xsd"
>
<responseCode>SUCCESS</responseCode>
<count>1</count>
<data>
<WebApp>
<id>324539</id>
<name><![CDATA[my-web-app]]></name>
<authRecords>
<count>4</count>
<list>
<WebAppAuthRecord>
<id>1688</id>
<name><![CDATA[From API - Form]]></name>
</WebAppAuthRecord>
<WebAppAuthRecord>
<id>1689</id>
<name><![CDATA[From API - Selenium]]></name>
</WebAppAuthRecord>
<WebAppAuthRecord>
<id>1690</id>
<name><![CDATA[From API - Server]]></name>
</WebAppAuthRecord>
<WebAppAuthRecord>
<id>1691</id>
<name><![CDATA[From API – SSL Cert]]></name>
</WebAppAuthRecord>
</list>
</authRecords>
...
</WebApp>
</data>
</ServiceResponse>
ステップ 4: スキャンの開始
次の URL にある WasScan API を使用してスキャンを開始します。
https://qualysapi.qualys.com/qps/rest/3.0/launch/was/wascan
すべての機能の詳細について
すべての API 呼び出しとサンプルの詳細については、『QualysGuard WAS API User Guide Version 3.1』を参照し
てください。このガイドは、リリース時に「Resources」項(「Help」→「Resources」)からダウンロードできます。
QualysGuard WAS API リリースノート
7
XML 形式の WAS レポート – 検出内容の Base64 エンコード化
XML 形式のすべての WAS レポートで、検出内容が Base64 でエンコードされるようになりました。検出内容には、
脆弱性検出データ、収集情報、機密コンテンツがあります。API または UI を使用して WAS アプリケーションで作
成した XML 形式のデータを他のクライアントで利用している場合は、WAS の検索内容のデータを適切に処理で
きるようにクライアントを更新してください。
Base64 でエンコードされる検出内容について
スキャンおよび Web アプリケーションのすべての検索内容は、XML 形式の場合、Base64 でエンコードされます。
エンコードされる検出内容には、次のものがあります。
•
応答の実際の内容
•
応答で証拠が明確な場合は、その証拠の内容
•
収集情報データ
Base64 でエンコードされたデータは通常、属性が“ base64=true ”に設定されます。次に例を示します。
<FINDING>
<PAYLOAD><![CDATA[uid=%00%3Cscript%3E_q%3Drandom(X157105156Y1Z)%3C%2Fscript
%3E]]></PAYLOAD>
<RESULT base64="true"><![CDATA[Cl9mZWVkKCgKCgpbCiI=]]></RESULT>
</FINDING>
“ base64=true ”属性が設定されていない場合、値はプレーンテキストになります。次に例を示します。
<FINDING>
<PAYLOAD><![CDATA[uid=%00%3Cscript%3E_q%3Drandom(X157105156Y1Z)%3C%2Fscript
%3E]]></PAYLOAD>
<RESULT><![CDATA[_feed(("]]></RESULT>
</FINDING>
更新されたレポート
次の WAS レポートに表示される検出内容が Base64 でエンコードされるようになりました。
•
WAS v3 スキャン結果
•
Web アプリケーションレポート
•
Web アプリケーションスキャンレポート
WAS v3 スキャン結果
脆弱性と機密コンテンツの検出内容
更新された要素:
WasScan/vulns/list/WasScanVuln/instances/list/WasScanVulnInstance/payloads/list/WasSca
nVulnPayload/result
WasScan/sensitiveContents/list/WasScanSensitiveContent/instances/list/WasScanSensitive
ContentInstance/payloads/list/WasScanSensitiveContentPayload/result
QualysGuard WAS API リリースノート
8
スキャン結果の XML 出力例:
<WasScanVuln>
<qid>150001</qid>
<title><![CDATA[Reflected Cross-Site Scripting (XSS)
Vulnerabilities]]></title>
<uri><![CDATA[http://myuri.apps.com/613460625329/feed.gtl?uid=%22'%3E%3Cqss%20a%3DX157
105156Y1Z%3E]]></uri>
<param>uid</param>
<instances>
<count>1</count>
<list>
<WasScanVulnInstance>
<authenticated>false</authenticated>
<payloads>
<count>4</count>
<list>
<WasScanVulnPayload>
<payload><![CDATA[uid=%00%3Cscript%3E_q%3Drandom(X157105156Y1Z)%3C%2Fscript%3E]]>
</payload>
<result base64="true"> <![CDATA[Cl9mZWVkKCgKCgpbCiI]]></result>
</WasScanVulnPayload>
<WasScanVulnPayload>
<payload><![CDATA[uid=%22'%3E%3Cqss%20a%3DX157105156Y1Z%3E]]></payload>
<result base64="true">
<![CDATA[Cl9mZWVkKCgKCgpbCiIiJyZndDsmbHQ7cXNzIGE9WDE1NzEwNTE1NlkxWiZndDsiCgpdCgoKCikpC
g]]></result>
</WasScanVulnPayload>
<WasScanVulnPayload>
<payload><![CDATA[uid=%00%3Cscript%3E_q%3Drandom(X157201836Y1Z)%3C%2Fscript%3E]]>
</payload>
<result base64="true"><![CDATA[Cl9mZWVkKCgKCgpbCiI]]></result>
</WasScanVulnPayload>
<WasScanVulnPayload>
<payload><![CDATA[uid=%22'%3E%3Cqss%20a%3DX157201836Y1Z%3E]]></payload>
<result base64="true">
<![CDATA[Cl9mZWVkKCgKCgpbCiIiJyZndDsmbHQ7cXNzIGE9WDE1NzIwMTgzNlkxWiZndDsiCgpdCgoKCikpC
g]]></result>
</WasScanVulnPayload>
</list>
</payloads>
</WasScanVulnInstance>
</list>
</instances>
</WasScanVuln>
収集情報の検出内容
更新された要素:
WasScan/igs/list/WasScanIg/data
スキャン結果の XML 出力例:
<INFO>
<QID>150044</QID>
<TITLE><![CDATA[Login Form Is Not Submitted Via HTTPS]]></TITLE>
<RESULT base64="true">
<![CDATA[RGVmYXVsdCBmb3JtIGFjdGlvbiBkb2VzIG5vdCBzdWJtaXQgdmlhIFNTTDogaHR0cDovL2dvb2ds
ZS1ncnV5ZXJlLmFwcHNwb3QuY29tLzYxMzQ2MDYyNTMyOS9sb2dpbgo=
]]></RESULT>
</INFO>
QualysGuard WAS API リリースノート
9
Web アプリケーションレポート
脆弱性と機密コンテンツの検出内容
更新された要素:
WAS_WEBAPP_REPORT/RESULTS/WEB_APPLICATION/VULNERABILITY_LIST/VULNERABILITY/PAYLOADS/PA
YLOAD/RESPONSE/CONTENTS
WAS_WEBAPP_REPORT/RESULTS/WEB_APPLICATION/SENSITIVE_CONTENT_LIST/SENSITIVE_CONTENT/PAY
LOADS/PAYLOAD/RESPONSE/CONTENTS
WAS_WEBAPP_REPORT/RESULTS/WEB_APPLICATION/VULNERABILITY_LIST/VULNERABILITY/PAYLOADS/PA
YLOAD/RESPONSE/EVIDENCE
WAS_WEBAPP_REPORT/RESULTS/WEB_APPLICATION/SENSITIVE_CONTENT_LIST/SENSITIVE_CONTENT/PAY
LOADS/PAYLOAD/RESPONSE/EVIDENCE
Web アプリケーションレポートの XML 出力例:
<VULNERABILITY>
<ID>5943</ID>
<QID>150001</QID>
<URL><![CDATA[http://myuri.apps.com/app/xss/0/1/0/xss.php?s='%20onEvent%3dX146470180Y1
Z%20]]></URL>
<PARAM><![CDATA[s]]></PARAM>
<AUTHENTICATION>Not Required</AUTHENTICATION>
<STATUS>NEW</STATUS>
<FIRST_TIME_DETECTED>2011-12-30T09:57:39Z</FIRST_TIME_DETECTED>
<LAST_TIME_DETECTED>2011-12-30T09:57:39Z</LAST_TIME_DETECTED>
<LAST_TIME_TESTED>2011-12-30T09:57:39Z</LAST_TIME_TESTED>
<TIMES_DETECTED>1</TIMES_DETECTED>
<PAYLOADS>
<PAYLOAD>
<NUM>1</NUM>
<PAYLOAD><![CDATA[s='%20onEvent%3dX146470180Y1Z%20]]></PAYLOAD>
<REQUEST/>
<RESPONSE>
<CONTENTS
base64="true"><![CDATA[bGQiJmd0OyZsdDsmbHQ7L3NwYW4mZ3Q7ID0mZ3Q7ICZsdDtzcGFuIGNsYXNzPSJ
ib2xkIiZndDsm
YW1wO2x0OyZsdDsvc3BhbiZndDsmbHQ7YnImZ3Q7CiZsdDsvZGl2Jmd0OwombHQ7L2RpdiZndDsK
Jmx0O2JyJmd0OwombHQ7ZGl2IGNsYXNzPSJwYXlsb2FkcyImZ3Q7Ck91dHB1dCBmcm9tIHJlcXVl
c3QgJmx0O3NwYW4gY2xhc3M9ImJvbGQiJmd0Oy9jYXNzaXVtL3hzcy5waHA/dmFyaWFudD0wJmFt
cDtxcz0xJmFtcDtmPTAmYW1wO3M9JyUyMG9uRXZlbnQlM2RYMTQ2NDcwMTgwWTFaJTIwJmx0Oy9z
cGFuJmd0OwombHQ7YnImZ3Q7CiZsdDthIGhyZWY9J1wnIG9uRXZlbnQ9WDE0NjQ3MDE4MFkxWiAn
Jmd0O3NhbXBsZSBsaW5rJmx0Oy9hJmd0OwombHQ7L2RpdiZndDsKJmx0O3NjcmlwdCZndDttYWlu
KCkmbHQ7L3NjcmlwdCZndDsKJmx0Oy9ib2R5Jmd0OwombHQ7L2h0bWwmZ3Q7
]]></CONTENTS>
</RESPONSE>
</PAYLOAD>
</PAYLOADS>
<IGNORED>false</IGNORED>
</VULNERABILITY>
収集情報の検出内容
更新された要素:
WAS_WEBAPP_REPORT/RESULTS/WEB_APPLICATION/INFORMATION_GATHERED_LIST/INFORMATION_GATHER
ED/DATA
QualysGuard WAS API リリースノート
10
Web アプリケーションレポートの XML 出力例:
<INFORMATION_GATHERED_LIST>
<INFORMATION_GATHERED>
<ID>1529</ID>
<QID>6</QID>
<FIRST_TIME_DETECTED>2011-12-30T09:57:39Z</FIRST_TIME_DETECTED>
<LAST_TIME_DETECTED>2011-12-30T09:57:39Z</LAST_TIME_DETECTED>
<LAST_TIME_TESTED>2011-12-30T09:57:39Z</LAST_TIME_TESTED>
<DATA
base64="true"><![CDATA[I3RhYmxlCklQX2FkZHJlc3MgSG9zdF9uYW1lCgoxMC4xMC4yNi43NyBmdW5reXR
vd24udnVsbi5x
YS5xdWFseXMuY29tCg==
]]></DATA>
</INFORMATION_GATHERED>
<INFORMATION_GATHERED>
<ID>1532</ID>
<QID>150031</QID>
<FIRST_TIME_DETECTED>2011-12-30T09:57:39Z</FIRST_TIME_DETECTED>
<LAST_TIME_DETECTED>2011-12-30T09:57:39Z</LAST_TIME_DETECTED>
<LAST_TIME_TESTED>2011-12-30T09:57:39Z</LAST_TIME_TESTED>
<DATA
base64="true"><![CDATA[VGltZW91dCByZWFjaGVkIGluIElQQyBjb25uZWN0aW9uIHRvIFdlYktpdC4gSmF
2YVNjcmlwdCBz
dXBwb3J0IGRpc2FibGVkIGluOmVQaGFzZUNyYXdsCkNyYXdsIGNvbXBsZXRlZCB3aXRoIFdlYktp
dC4K
]]></DATA>
</INFORMATION_GATHERED>
スキャンレポート
脆弱性と機密コンテンツの検出内容
更新された要素:
WAS_SCAN_REPORT/RESULTS/VULNERABILITY_LIST/VULNERABILITY/PAYLOADS/PAYLOAD/RESPONSE/CON
TENTS
WAS_SCAN_REPORT/RESULTS/SENSITIVE_CONTENT_LIST/SENSITIVE_CONTENT/PAYLOADS/PAYLOAD/RESP
ONSE/CONTENTS
WAS_SCAN_REPORT/RESULTS/VULNERABILITY_LIST/VULNERABILITY/PAYLOADS/PAYLOAD/RESPONSE/EVI
DENCE
WAS_SCAN_REPORT/RESULTS/SENSITIVE_CONTENT_LIST/SENSITIVE_CONTENT/PAYLOADS/PAYLOAD/RESP
ONSE/EVIDENCE
収集情報の検出内容
更新された要素:
WAS_SCAN_REPORT/RESULTS/INFORMATION_GATHERED_LIST/INFORMATION_GATHERED/DATA
QualysGuard WAS API リリースノート
11