1

2Technical Overview of the Application 3Vulnerability Description Language 4(AVDL) V1.0

5Version 1.0, 22 March 2004

6Document identifier: 7 AVDL Technical Overview - 01 8Location: 9 http://TBD 10Editor: 11 Jan Bialkowski, NetContinuum, [email protected] 12 Kevin Heineman, SPI Dynamics, [email protected] 13 Srinivas Mantripragada, NetContinuum, [email protected] 14Abstract: 15 This specification describes a standard XML format that allows entities (such as 16 applications, organizations, or institutes) to communicate information regarding web 17 application vulnerabilities. . Simply said, Application Vulnerability Description Language 18 (AVDL) is a security interoperability standard for creating a uniform method of describing 19 application security vulnerabilities using XML. 20Status: 21 This is a non-normative document. This document provides a technical description of 22 AVDL 1.0. It has been produced by the AVDL technical committee. This working draft 23 may be updated, replaced, or obsoleted at any time. Please send comments to the 24 editors. 25 26 Committee members should send comments on this specification to [email protected] 27 open.org. Others should subscribe to and send comments to [email protected] 28 open.org. To subscribe, send an email message to [email protected] 29 open.org with the word "subscribe" as the body of the message. 30 31 For information on whether any patents have been disclosed that may be essential to 32 implementing this specification, and any offers of patent licensing terms, please refer to

1AVDL Working Draft Standard 1 January 2004 2Copyright © OASIS Open 2004. All Rights Reserved. Page 1 of 22 3 4 5 6 7 8 33 the Intellectual Property Rights section of the AVDL Technical Committee (AVDL TC) 34 web page (http://www.oasis-open.org/committees/avdl/ipr.php).

9AVDL Working Draft Standard 1 January 2004 10Copyright © OASIS Open 2004. All Rights Reserved. Page 2 of 22 11 12 13 14 15 16 35Table of Contents

361 Introduction...... 4 372 AVDL Overview...... 5 383 AVDL Architecture...... 6 39 3.1 AVDL Concepts...... 6 40 3.2 AVDL Schema Insights...... 14 41 3.2 AVDL Structure and Examples...... 6 424 Enabling Security using AVDL...... 14 43 4.1 Application positive behavioral model...... 16 44 4.2 Application vulnerability...... 16 45 4.3 Remediation...... 17 465 AVDL Life Cycle Example...... 19 47Revision History...... 21 48Appendix A. Notices...... 22

49

17AVDL Working Draft Standard 1 January 2004 18Copyright © OASIS Open 2004. All Rights Reserved. Page 3 of 22 19 20 21 22 23 24 501 Introduction 51The goal of AVDL is to create a uniform format for describing application security vulnerabilities. 52The OASIS AVDL Technical Committee was formed to create an XML definition for exchanging 53information about the security vulnerabilities of applications exposed to networks. For example, 54the owners of an application use an assessment tool to determine if their application is vulnerable 55to various types of malicious attacks. The assessment tool records and catalogues detected 56vulnerabilities in an XML file in AVDL format. An application security gateway then uses the AVDL 57information to recommend the optimal attack prevention policy for the protected application. In 58addition, a remediation product uses the same AVDL file to suggest the best course of action for 59correcting the security issues. Finally a reporting tool uses the AVDL file to correlate event logs 60with areas of known vulnerability. 61 62A detailed description of the specification draft submitted to OASIS is available at: 63http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=avdl. 64

25AVDL Working Draft Standard 1 January 2004 26Copyright © OASIS Open 2004. All Rights Reserved. Page 4 of 22 27 28 29 30 31 32 652 AVDL Overview 66Security managers have grown accustomed to relying on traditional tools, such as network 67firewalls, IDS, and VPNs to protect corporate networks. The exploding number of application-level 68security incidents, however certifies that these tools provide few tangible benefits in the area of 69application security. While next generation application security products now solve many of these 70problems, these best-of-breed stand-alone systems still require individual and separate user 71interactions, leaving the overall security management process too manual, time-consuming, and 72error prone. 73 74Proposed by leading application security vendors and users, the AVDL specification creates a 75rich and effective set of consistent XML schema definitions to describe application security 76properties and vulnerabilities. Using AVDL, security tools and products from different vendors will 77be able to precisely and unambiguously communicate with each other to coordinate their security 78operations and automate security management. 79 80AVDL integration creates a seamless ecosystem that secures the web application environment in 81which mundane security operations such as patching and reconfigurations that implement 82evolving application requirements and security policies become automated freeing security 83administrators to focus on higher-level security policy analysis. Because all new vulnerability 84alters can be described consistently in AVDL, automation of security management also vastly 85reduces the incident response time thus closing critical vulnerability windows and enhancing 86security posture. AVDL-based security altered bulletins will give users highly efficient access to 87the collective security expertise of all participants in this dynamic field where even the largest 88organizations are challenged to keep up with rapid industry revolution. 89

33AVDL Working Draft Standard 1 January 2004 34Copyright © OASIS Open 2004. All Rights Reserved. Page 5 of 22 35 36 37 38 39 40 903 AVDL Architecture 91The AVDL technology is rooted in XML. The information passed around between the producers 92and consumers is mostly in the form of XML, and the format of these XML messages is defined in 93the AVDL schema.

943.1 AVDL Concepts 95AVDL has the following key concepts: 96 Probe: The basic concept embodied in the AVDL schema is an application-level transaction, 97called a “probe”, which describes HTTP exchanges between browsers and web application 98servers. The probe defines the basic unit of request-response exchange and its relation to the 99expected result. 100 Transaction: AVDL defines markups which allow specifications of the transaction between 101the browser and server as a series of probes. Such probes may specify valid and expected 102request-response exchanges between browsers and servers, or may specify application 103vulnerability exploits. AVDL 1.0 allows specification of the HTTP transaction in full detail at 104various levels of abstraction (raw byte stream, or parsed to HTTP header constructs). 105 Traversal: The “traversal” step is a derived extension of a “probe” where the request- 106response exchange between browser and server is expected (and valid). The traversal step 107probes supply host of information including target URLs, links, cookies and other headers as well 108as query for form parameters, their attributes, ranges of legitimate values etc. The traversal 109probes can be used to automate enforcement of safe usage policies. 110 Vulnerability-probe: The “vulnerability-probe” is a derived extension of a “probe” where the 111request-response exchange between browser and server is of illegitimate kind. The probe 112contains undesirable (or malicious) elements with a primary intent to cause damage to the 113application. 114 Vulnerability-description: The “vulnerability-description” highlights specific questionable 115constructs and supply detailed specifications of vulnerabilities, including human readable 116description and machine-readable assessment information such as vulnerability severity, 117applicability, and its historical records. The vulnerability-description supplies enough information 118necessary to configure protective “deny” rules as well as information about possible hot fixes if 119any is available, workarounds etc. that can be used to automate management of remediation 120process.

1213.2 AVDL Structure and Examples 122The AVDL output is divided into two major sections. The first is the Traversal. This output reflects 123the basic structure of the web site. It describes the requests and responses that were made to the 124server and the pages that were displayed as a result of the requests. A Traversal is a single 125transaction containing one or more request/response exchanges, each exchange is enclosed in a 126separate Traversal Container. The Traversal Container provides a complete topological ordering 127of the URLs visited in a web site. 128 41AVDL Working Draft Standard 1 January 2004 42Copyright © OASIS Open 2004. All Rights Reserved. Page 6 of 22 43 44 45 46 47 48 AVDL

Session

Traversal

Request

Response

129 130 Figure 1: AVDL Traversal Structure 131 132Figure 1 shows the layout of the Traversal structure. The root node contains a session 133header. The session header embodies a user-level transaction activity, e.g. scan for 134vulnerabilities, a web site crawl etc. The session header contains the ID of the session, the target 135URI that was crawled and when the activity was started. The session contains a series of 136traversal headers. The traversal header corresponds to one probe activity describing the request 137and response details. The traversal header contains a sequence number (a number designating 138this traversal in the ordered sequence of traversals visited during the crawl). The request and 139response headers contain detailed information on the HTTP byte stream (both in raw and parsed 140form) containing detailed information about headers, cookies, URLs, query inputs, POST data, 141HREF links etc. 142

49AVDL Working Draft Standard 1 January 2004 50Copyright © OASIS Open 2004. All Rights Reserved. Page 7 of 22 51 52 53 54 55 56 AVDL

Session

Vulnerability probe

Request

Response

Vulnerability Description

Summary Classification Target Test Script Remediation

143 144 Figure 2: AVDL Vulnerability Probe Structure 145 146Figure 2 shows the layout of the Vulnerability Probe structure. The root node contains a 147session header. The session header contains a vulnerability probe header. While the traversal 148header maps the web application and describes the requests and responses for each page of a 149Web application, the Vulnerability Probe header describes the vulnerabilities contained within the 150Web application. The session structure can contain many vulnerability probes each describing a 151single vulnerability of the Web application. It is important to note that not all vulnerability probes 152lead to identifying application vulnerability. Each vulnerability probe header contains the 153request/response details and a description of the vulnerability if found. The vulnerability 154description header contains the following 5 items. 155 156 Summary -- Provides a brief description of the vulnerability 157 Classification -- Provides a logical grouping of the vulnerability, e.g. SQL Injection, Cross- 158 Site Scripting 159 Target -- Provides details on the target, e.g. Host, OS, Architecture, Protocol, Web Server 160 Test Script -- Provides details on how to reproduce the application vulnerability 161 Remediation – Provides specific recommended actions to close the vulnerability 162

57AVDL Working Draft Standard 1 January 2004 58Copyright © OASIS Open 2004. All Rights Reserved. Page 8 of 22 59 60 61 62 63 64 163A detailed description of the above items is discussed in the AVDL draft standard.

1643.3 AVDL Design Philosophy 165The AVDL schema design is heavily derived from object-oriented (OO) programming concepts. 166An attempt is made to devise base containers which abstract common properties. The child 167nodes are derived from the parent base containers to provide effective sharing of common 168properties. At the root node two types of blocks are created, and . 170 171The provides a base to abstract common base properties. The properties include: 172 Summary – Provides a brief description of the vulnerability 173 Description – Provides a detailed explanation of the vulnerability 174 Classification – Provides a logical grouping of the vulnerability, e.g. SQL Injection, Cross- 175 Site Scripting 176 Datum – A generic tuple entity of type 178 History – Provides a reference to earlier version(s) of this block, or documents it is based on 179 180The above fields are conditional elements and don’t need to be always present. The child nodes 181of the include , and . 182

65AVDL Working Draft Standard 1 January 2004 66Copyright © OASIS Open 2004. All Rights Reserved. Page 9 of 22 67 68 69 70 71 72 183 184 Figure 3: AVDL Top Level Structure 185The in addition to containing the above properties also contains 186information about: 187 188 Target -- Provides details on the target, e.g. Host, OS, Architecture, Protocol, Web Server 189 Test Script -- Provides details on how to reproduce the application vulnerability 190 Solution -- Provides specific recommended actions to close the vulnerability 191 192The child nodes of the include , and . 194

73AVDL Working Draft Standard 1 January 2004 74Copyright © OASIS Open 2004. All Rights Reserved. Page 10 of 22 75 76 77 78 79 80 195 196 Figure 4: AVDL Traversal Step structure 197Figure 4 provides the diagram of the traversal-step structure. The traversal-step is the base- 198class for all stepwise traversals (such as an enumeration of accessible URL's at a given site). The 199traversal-step results from a probe activity. For example, each URL in a web-spiders crawl would 200show up as one traversal-step. A single traversal-step can sometimes constitute of multiple 201internal steps often spanning multiple applications using multiple protocols. The essence of the 202field item traversal-protocol is essentially to capture this effect. It contains a single field item 203http-traversal since the AVDL 1.0 draft addresses only HTTP protocol but allows for extensions 204in the future.The http-traversal structure details the basic HTTP message type in detail. 205

81AVDL Working Draft Standard 1 January 2004 82Copyright © OASIS Open 2004. All Rights Reserved. Page 11 of 22 83 84 85 86 87 88 206 207 Figure 5: AVDL Vulnerability Probe Structure 208 209Figure 5 explains the Vulnerability-Probe structure. Its children nodes include: 210 Session-block : Definition provided in earlier section. See also Figure 4 211 Vulnerability-description : Provides a detailed explanation of the vulnerability 212 Test-probe : Provides a base class for all Test related stuff 213 Test-block : Provides base block for all Test configurations 214  Http-probe : A child item of Test-block. Describes how a HTTP probe was performed 215 and the result. Provides detailed script information to automate the detection of the 216 vulnerability, e.g. attack strings, expected return codes.

89AVDL Working Draft Standard 1 January 2004 90Copyright © OASIS Open 2004. All Rights Reserved. Page 12 of 22 91 92 93 94 95 96 217 218 Figure 6: AVDL Vulnerability Description Structure 219 220Figure 6 explains the AVDL Vulnerability Description structure. Its children nodes include:

97AVDL Working Draft Standard 1 January 2004 98Copyright © OASIS Open 2004. All Rights Reserved. Page 13 of 22 99 100 101 102 103 104 221 Block-type – Definition provided in earlier section 222 Target -- Provides details on the target, e.g. Host, OS, Architecture, Protocol, Web Server 223 Test-Script – Provides details on the test script to reproduce the vulnerability 224 Solution -- Provides specific recommended actions to close the vulnerability

2253.2 AVDL Schema Insights 226This section provides detailed insights on key structures used in the AVDL schema: 227 228 Validated data types – The language provides a rich set of primitive and extended data type 229definitions to allow tagging of properties to specific datum values. For example, tag a specific 230parameter in a URL to type int. The validated data types are extensions of XML Schema 231supported base type, “xs:NMTOKEN”. 232 unsigned -- An unsigned integer 233 int – A integer quanitity 234 number – Any number representation not including NaNs or infinites, e.g. integer, float 235 date – A date quantity 236 time – A time quantity 237 date-time – A date-time quantity 238 string – Any possible string quantity 239  zero-to-unbounded-type – A non-negative integer or the string “unbounded”. Used 240 for max-length 241  time-stamp-type -- Timestamps are either absolute (xs:dateTime) or relative 242 (xs:decimal as seconds since the sessions session-start) 243 http-method-type – Supported HTTP method types as per RFC 2616 section 5.1.1 244  OPTIONS 245  GET 246  HEAD 247  POST 248  PUT 249  DELETE 250  TRACE 251  CONNECT 252 253 Allowed operators – The language provides a rich set of operators to test tagged data types 254with the expected result values. For example, check to see if the return response code of a 255specific probe matches “200 OK” or specify that the first parameter in a specific URL is always 256required. The set of operators include: 257 equals – Equality operator 105AVDL Working Draft Standard 1 January 2004 106Copyright © OASIS Open 2004. All Rights Reserved. Page 14 of 22 107 108 109 110 111 112 258 not-equals – Exact inverse of equals 259 contains – Matches substring operator 260 not-contains – Does not contain (exact inverse of Contains) 261 less-than – Less than operator 262 greater-than – Greater than operator 263 less-or-equals – Less than or equal (exact inverse of greater-than) 264 greater-or-equals – Greater than or equal (exact inverse of less-than) 265 max-length – Maximum length of data 266 min-length – Minimum length of data 267 type – Of type validated-type 268 required – Specifies if the parameter is required or not 269 regex – Compare using regular expression 270 not-regex – Does not match using regular expression (exact inverse of regex) 271 matches – Match using pattern where ‘*’ matches anything 272  not-matches – Does not match using pattern where ‘*’ matches anything (exact inverse 273 of match). 274 275 Basic raw elements – The language provides extensive support to describe basic raw 276 elements. This has been very useful in implementing precise test configurations to 277 automatically detect vulnerabilities and to support various encoding formats. The set of raw 278 elements include: 279 eol : Indicates a protocol appropriate end-of-line 280 tab: Indicates a protocol appropriate end-of-tab 281  space: Indicates a protocol appropriate space. This is useful to represent sequences of 282 more than one space, since the white space in the raw block is normalized 283 char: Indicates one character in the encoding specified by the protocol 284 code: A character-type string containing any inline code 285  base64: A chunk of base64 data in the encoding specified by the protocol (see 286 RFC2045) 287 hex: A chunk of hex data in the encoding specified by the protocol 288 289 Extended raw elements – Enumerates extensions to basic raw elements 290  var : Substitutes the value of a variable a protocol appropriate end-of-line 291  name: Indicates a protocol appropriate end-of-tab 292  attack: Marks an attack component. This is useful in configuring specific deny policies 293 e.g. deny a specific header or a URL

113AVDL Working Draft Standard 1 January 2004 114Copyright © OASIS Open 2004. All Rights Reserved. Page 15 of 22 115 116 117 118 119 120 2944 Enabling Security using AVDL 295AVDL enhances the security of web applications by using a multi-tiered approach. The key 296concepts include: 297 298 Ability to allow good guys using application positive behavior 299 Ability to deny bad guys using deep knowledge on specific application vulnerabilities 300 Ability to facilitate remediation engines to download patches without human intervention 301 302The examples below show how AVDL can be used to facilitate the above goals.

303

3044.1 Application positive behavioral model 305In this specific example, the user has deep knowledge on the application ‘plink.asp’ hosted on 306domain ‘www.example.com:80’ input query requirements. The user then uses the AVDL 307descriptions to facilitate the goal. 308 309 311 … 312 313 314 315 316 317 318 319 320 321 322 … 323 324 325The query portion takes two input arguments. The specifications describe that the first argument, 326‘a’ is of type integer and expects input values ranging from 0..123456. The second specification 327indicates that the second argument, ‘c’ expects an input not greater than 3 characters. The two 328conditions can then get translated to highly tuned URL allow policy by application firewall 329vendors.

3304.2 Application vulnerability 331The example below shows a Cross-site scripting vulnerability. The vulnerability occurs when a 332web application uses client-supplied data in an HTTP response without first filtering out potentially 121AVDL Working Draft Standard 1 January 2004 122Copyright © OASIS Open 2004. All Rights Reserved. Page 16 of 22 123 124 125 126 127 128 333malicious characters. This is one of the most common types of cross-site scripting attacks. The 334attack strings are embedded within the tokens. This gives specific handles 335on how the vulnerability was exploited and enough information to application firewall vendors to 336configure a highly tuned deny policy. As evident, a malicious script has been injected to the 337parameter email that the application expects. 338 339 340 341 GET/join.asp? 342 name=&email=>">&surname=&ho 343 use=&street=&address2=&town=&postcode=&country=&homephone=&mobilephone 344 =&msg=Please%2Bfill%2Bin%2Byour%2Bname Referer: 345 http://:/join1.asp Connection: Close Host: 346 User-Agent: Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 347 5.0) Pragma: no-cache Cookie: 348 ASPSESSIONIDCQADCBSB=NKAAPGKBBAJPBGDPFGEDPANA; 349 Keyed=Var2=Second+Value&Var1=First+Value; Second=Oatmal+Chocolate; 350 FirstCookie=Chocolate+Chip; 351 352 353 354 355 356

3574.3 Remediation 358Remediation is the recommended action to close the vulnerability. It includes an identifier for the 359remedy, a description, and the vendor responsible for creating the remedy. The action code is 360vendor specific to the vendor specified by the Vendor field. In addition, it includes an open block 361that allows for machine-readable code. This may include code for the remediation software to 362download the patch to fix the vulnerability. 363 364- 365- 367 Microsoft has released a patch which eliminates this 368vulnerability. 369 370 373 381 382 383 384 129AVDL Working Draft Standard 1 January 2004 130Copyright © OASIS Open 2004. All Rights Reserved. Page 17 of 22 131 132 133 134 135 136 385 386

137AVDL Working Draft Standard 1 January 2004 138Copyright © OASIS Open 2004. All Rights Reserved. Page 18 of 22 139 140 141 142 143 144 3875 AVDL Life Cycle Example

Assessment Scanner

1

App Servers 4 6 Security 2 Gateway

5 3

Reporting And Remediation Management System

388 389The illustration shows an example of how AVDL enabled world would look like. The example 390shows how AVDL automation creates an integrated security environment for a typical web 391application deployment. 392 3931. First, a scan maps the application structure and detects any security holes recording 394 AVDL probes. 3952. The AVDL probes can be placed in a file for user-initiated off-line batch processing (or 396 not shown) can be used for real-time communications. 3973. A remediation system reads this AVDL file and uses information from its “vulnerability 398 probes” to automate the application of appropriate patches and hot fixes. 3994. An application security gateway uses this vulnerability probes to configure secure 400 perimeter that protects from attacks and uses traversal probes to automate the 401 enforcement of site’s legitimate access policies.

145AVDL Working Draft Standard 1 January 2004 146Copyright © OASIS Open 2004. All Rights Reserved. Page 19 of 22 147 148 149 150 151 152 4025. AVDL data is presented to the user in the form of security audit reports and through 403 other management tools. 4046. AVDL data can also be supplied from other sources (not pictured) such as security 405 policy managers, security alerts and bulletins, application development platforms or 406 host-based security analyzers. 407

153AVDL Working Draft Standard 1 January 2004 154Copyright © OASIS Open 2004. All Rights Reserved. Page 20 of 22 155 156 157 158 159 160 408 Revision History

Rev Date By Whom What

wd-01 2004-03-22 Srinivas Version 1.0 Mantripragada wd-02 2004-03-22 Srinivas Review comments added Mantripragada

409

161AVDL Working Draft Standard 1 January 2004 162Copyright © OASIS Open 2004. All Rights Reserved. Page 21 of 22 163 164 165 166 167 168 410Appendix A. Notices

411OASIS takes no position regarding the validity or scope of any intellectual property or other rights 412that might be claimed to pertain to the implementation or use of the technology described in this 413document or the extent to which any license under such rights might or might not be available; 414neither does it represent that it has made any effort to identify any such rights. Information on 415OASIS's procedures with respect to rights in OASIS specifications can be found at the OASIS 416website. Copies of claims of rights made available for publication and any assurances of licenses 417to be made available, or the result of an attempt made to obtain a general license or permission 418for the use of such proprietary rights by implementers or users of this specification, can be 419obtained from the OASIS Executive Director. 420 421OASIS invites any interested party to bring to its attention any copyrights, patents or patent 422applications, or other proprietary rights that may cover technology that may be required to 423implement this specification. Please address the information to the OASIS Executive Director. 424 425Copyright © OASIS Open 2002. All Rights Reserved. 426 427This document and translations of it may be copied and furnished to others, and derivative works 428that comment on or otherwise explain it or assist in its implementation may be prepared, copied, 429published and distributed, in whole or in part, without restriction of any kind, provided that the 430above copyright notice and this paragraph are included on all such copies and derivative works. 431However, this document itself does not be modified in any way, such as by removing the 432copyright notice or references to OASIS, except as needed for the purpose of developing OASIS 433specifications, in which case the procedures for copyrights defined in the OASIS Intellectual 434Property Rights document must be followed, or as required to translate it into languages other 435than English. 436 437The limited permissions granted above are perpetual and will not be revoked by OASIS or its 438successors or assigns. 439 440This document and the information contained herein is provided on an “AS IS” basis and OASIS 441DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO 442ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE 443ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A 444PARTICULAR PURPOSE.

169AVDL Working Draft Standard 1 January 2004 170Copyright © OASIS Open 2004. All Rights Reserved. Page 22 of 22 171 172 173 174 175 176