<?xml version="1.0" encoding="UTF-8"?>
<TEI xml:space="preserve" xmlns="http://www.tei-c.org/ns/1.0" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
xsi:schemaLocation="http://www.tei-c.org/ns/1.0 https://raw.githubusercontent.com/kermitt2/grobid/master/grobid-home/schemas/xsd/Grobid.xsd"
 xmlns:xlink="http://www.w3.org/1999/xlink">
	<teiHeader xml:lang="en">
		<fileDesc>
			<titleStmt>
				<title level="a" type="main">SD Elements: A Tool for Secure Application Development Management</title>
			</titleStmt>
			<publicationStmt>
				<publisher/>
				<availability status="unknown"><licence/></availability>
			</publicationStmt>
			<sourceDesc>
				<biblStruct>
					<analytic>
						<author>
							<persName><forename type="first">Golnaz</forename><surname>Elahi</surname></persName>
							<email>gelahi@cs.toronto.edu</email>
							<affiliation key="aff0">
								<orgName type="department">Department of Computer Science</orgName>
								<orgName type="institution">University of Toronto</orgName>
								<address>
									<postCode>M5S 1A4</postCode>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Tom</forename><surname>Aratyn</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">SD Elements</orgName>
								<address>
									<settlement>Toronto</settlement>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Ramanan</forename><surname>Sivaranjan</surname></persName>
							<email>ramanan@sdelements.com</email>
							<affiliation key="aff1">
								<orgName type="department">SD Elements</orgName>
								<address>
									<settlement>Toronto</settlement>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Rohit</forename><surname>Sethi</surname></persName>
							<affiliation key="aff1">
								<orgName type="department">SD Elements</orgName>
								<address>
									<settlement>Toronto</settlement>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<author>
							<persName><forename type="first">Eric</forename><surname>Yu</surname></persName>
							<email>eric.yu@utoronto.ca</email>
							<affiliation key="aff2">
								<orgName type="department">Faculty of Information</orgName>
								<orgName type="institution">University of Toronto</orgName>
								<address>
									<postCode>M5S 3G6</postCode>
									<country key="CA">Canada</country>
								</address>
							</affiliation>
						</author>
						<title level="a" type="main">SD Elements: A Tool for Secure Application Development Management</title>
					</analytic>
					<monogr>
						<imprint>
							<date/>
						</imprint>
					</monogr>
					<idno type="MD5">61C1639D605C089786959FF687DF0BB1</idno>
				</biblStruct>
			</sourceDesc>
		</fileDesc>
		<encodingDesc>
			<appInfo>
				<application version="0.7.2" ident="GROBID" when="2023-03-25T03:23+0000">
					<desc>GROBID - A machine learning software for extracting information from scholarly documents</desc>
					<ref target="https://github.com/kermitt2/grobid"/>
				</application>
			</appInfo>
		</encodingDesc>
		<profileDesc>
			<textClass>
				<keywords>
					<term>Application security</term>
					<term>security requirements</term>
					<term>development guidelines</term>
					<term>security knowledge</term>
					<term>test case</term>
				</keywords>
			</textClass>
			<abstract>
<div xmlns="http://www.tei-c.org/ns/1.0"><p>A major problem in achieving security goals in application development is the overwhelming amount of security-related information, variety of tools, and numerous security risks and vulnerabilities. Software analysts, developers, and testers are not often able to identify relevant security knowledge. Many security tools focus only on detecting vulnerabilities, but the embedded available security guidelines are usually not directly auditable. To fill these gaps, we introduce a new tool, called SD Elements, which focuses on prevention of vulnerabilities as opposed to detection. SD Elements is a centralized security knowledge base that covers different development life cycle phases, so security is built into the application from the early phases of the life cycle. Users are able to specify technologies, platforms, requirements, and programming languages, and SD Elements tailor security guidelines for different projects according to the user specifications. It enables businesses to provide tangible security audit evidence and trace compliance with security standards. The tool is currently being beta tested in varieties of firms, by different roles, and in different development phases.</p></div>
			</abstract>
		</profileDesc>
	</teiHeader>
	<text xml:lang="en">
		<body>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1">Introduction</head><p>The software engineering community is slowly beginning to realize that information security is also important for software whose primary function is not related to security <ref type="bibr" target="#b0">[1]</ref>. Since prevention is often more economical than remediation, empirical security knowledge such as common attacks and vulnerabilities are made public and available for practitioners through web-based portals such as NVD <ref type="bibr" target="#b1">[2]</ref>, CWE <ref type="bibr" target="#b2">[3]</ref>, OWASP <ref type="bibr" target="#b3">[4]</ref>. Security standards, such as PCI DSS <ref type="bibr" target="#b4">[5]</ref> or ISO <ref type="bibr" target="#b5">[6]</ref> provide high level guidelines and impose several compliance requirements to application developers.</p><p>In reality, software analysts, developers, and testers are overwhelmed with the amount of available information and variety of tools they can employ. Analysts are given massive lists of security requirements, guidelines, and standards, and they need to provide tangible and audit-able evidence that the products comply with security guidelines. Employing tools can help application testers. However, security testing tools are usually intimidating and their adoption rate is low, specially because application developers and testers are not often security experts. Testers also need to tailor the testing scripts for the platforms and technologies that they use.</p><p>The bottom line for practitioners is finding the relevant body of information to their projects. However, there is a significant gap between the existing body of empirical knowledge collected in (web-based) knowledge portals and actual development demands.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="1.1">Contributions</head><p>To fill the current gaps, we introduce a secure application development management tool, called SD Elements, which provides a set of core values to application developers, system analysts, and quality assurance teams.</p><p>SD Elements is a web-based knowledge repository of security guidelines, empowered by a retrieval tool. SD Elements surveys users to learn about the nature of the project, platform, language, and technologies, and then it tailors security knowledge:</p><p>-Generates relevant security requirements.</p><p>-Provides tailored guidelines on secure architecture design. SD Elements focuses on vulnerability prevention instead of detection. It integrates security knowledge into the development life cycle, thus, security is built into the application from the early phases. SD Elements provides a compliance mechanism, i.e., users can trace which guidelines are employed, implemented, and tested. This provides businesses with tangible and traceable evidence for audit purposes. Finally, it provides requirements, implementation, and testing guidelines, in situations that compliance with PCI DSS and HIPPA is needed.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2">SD Elements Architecture</head><p>SD Elements users will be software developers such as requirements analysts, programmers, testers, project leaders, and security analysts. For each project, SD Elements surveys the developers about the nature of the project, security features and users of the application, types information being handled by the application, business drivers and policies, platforms, technologies, programming languages, and application interfaces. By collecting these information about the project, SD Elements retrieves a customized set of guidelines and requirements, appropriate for specific projects.</p><p>For example, application general questions (Figure <ref type="figure" target="#fig_0">1</ref>) uncover the type of application, type of web server, programming languages, platforms, third party technologies and libraries. The survey also enables users to provide more details about the features and functions of the project. For example, developers can specify whether the application being developed involves interactions with operating system, file-upload function, authentication of end users, etc. The answer to the questions enable the tool to refine the rest of questions as well as retrieve relevant security guidelines and requirements. These guidelines in the SD elements knowledge base are developed according to:</p><p>-Current vulnerabilities for different technologies, platforms, and languages.</p><p>Each guideline or requirement corresponds to a vulnerability in Common Weakness Enumeration list of vulnerabilities <ref type="bibr" target="#b2">[3]</ref>.</p><p>-Best practices and existing standards such as OWASP <ref type="bibr" target="#b3">[4]</ref>, WASC threat classification <ref type="bibr" target="#b6">[7]</ref>; empirical data about commonly-exploitable applications in web applications based on years of penetration testing; threat models, and source code review; and regulatory compliance including PCI DSS, HIPPA HITECH, GLBA, NERC CIP, and international privacy laws.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.1">Knowledge Retrieval Engine</head><p>SD Elements' knowledge storage and retrieval is based on Boolean logic. The knowledge retrieval engine provides security guidelines, based on what users has specified. For example, if users select a J2EE project, then SD Elements concludes the user will be developing a web application that is probably multitiered, etc. Thus it does not require overwhelming efforts for users and project owners to describe the nature of project for receiving useful information. Project managers can get security guidelines as well, without knowing much of technical details.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="2.2">SD Elements Knowledge Base Architecture</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.1">Requirements Generation</head></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head>SD Elements supports application security requirements analysis:</head><p>-Surveys analysts about the project settings.</p><p>-Generates a list of relevant security requirements (in different categories) which are tailored with respect to the project settings. -Links generated requirements to relevant vulnerabilities.</p><p>-Links the generated requirements to a design/implementation guidelines and test cases. -Lists the requirements criteria of acceptance. These criteria are actually the test cases. Thus, analysts will know from the early stages, how the requirements will be tested.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.2">Design and Development Guidelines</head><p>SD Elements provides project-specific implementation guidelines. Suggested guidelines correspond to the list of security requirements and settings of the project. Sample (and tested) code, whenever applicable, is provided as part of the content. For example, for the HTML encoding for JSPs, SD Elements provide a sample code as depicted in Figure <ref type="figure" target="#fig_3">3</ref>. Figure <ref type="figure" target="#fig_4">4</ref> shows an example list of development guidelines in the authentication category. Test cases are linked to security requirements, and user can specify a test is passed. Then, the requirements status is changed (to satisfied) as well. Figure <ref type="figure" target="#fig_6">5</ref> shows a screen shot of a sample test case. </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="3.4">Umbrella Processes</head><p>Incremental survey: The survey section of the tool can be answered gradually and incrementally, i.e., the more questions answered by the user, the more specific and accurate guidelines are retrieved by SD Elements.</p><p>A Traceability System: Users can trace which guidelines they have applied, which ones are not applicable, and which guidelines are outstanding. Applicable guidelines and implementation standards can be added to bug tracking systems and generated requirements can be imported to general requirements documents such as PDF and doc files.</p><p>4 Beta Test Plan SD Elements will be in beta test in a variety of sectors, such as energy, independent software vendors, healthcare, and financial services. It will be mostly championed by application security managers and development team leaders. The beta tests will help us investigate various aspects of real world application of SD Elements. By the end of the beta test phase, we will have concrete data to evaluate usefulness and usability of SD Elements in real world practice.  </p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="5">Related Work</head><p>Various web-based software vulnerability knowledge bases provide a shared and standard way for identifying, specifying, and measuring software weaknesses and vulnerabilities. Common Weakness Enumeration (CWE) <ref type="bibr" target="#b2">[3]</ref> provides a unified, measurable set of software weaknesses for enabling effective discussion, description, selection, and use of software security tools and services that can find these weaknesses in source code and operational systems. National Vulnerability Database (NVD) portal provides a search engine over the Common Vulnerability and Exposure (CVE) and Common Configuration Enumeration (CCE)</p><p>databases. However, these knowledge portals usually lack specific guidelines to prevent the introduction of vulnerabilities. The burden of identifying relevant vulnerabilities in the massive lists of these portals is on developers. SD Elements solves these issues by providing customized guidelines for preventing CWE vulnerabilities.</p><p>The need for security guideline customization has been addressed in another tool called TeamMentor <ref type="bibr" target="#b7">[8]</ref>. TeamMentor only provides two layers of guidelines filtering: 1) technology and 2) role of the user. Thus, still a massive list of guidelines without specific categorization is provided to the user. A link between the suggested guidelines for different phases of life cycle is not considered, thus traceability is not possible. Project specific features and functionalities are not used to generate the list of guidelines, and still software developers can become overwhelmed with the large list of guidelines.</p></div>
<div xmlns="http://www.tei-c.org/ns/1.0"><head n="6">Conclusions and Future Work</head><p>SD Elements is a web-based security knowledge base that provides security guidelines for different development life cycle phases. The main goals of SD Elements is to build security into the application, from the early phases of the life cycle. The outstanding contribution of SD Elements is tailoring the guidelines according to project description. SD Elements helps businesses provide tangible security audit evidence and trace compliance with security standards.</p><p>The results of the beta tests will help us investigate whether by applying SD Elements, more vulnerabilities are actually prevented. In future releases, SD Elements will be customizable to different domains and businesses. End user administrators will be able to add their own questions, answers, and content items so that they can support any technology stack. Also, we will continuously add more content, thus SD Elements will work as a subscription service rather than a single tool.</p></div><figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_0"><head>Fig. 1 .</head><label>1</label><figDesc>Fig. 1. SD Elements Survey (application general questions)</figDesc><graphic coords="3,147.00,284.00,318.20,178.34" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_1"><head>Figure 2</head><label>2</label><figDesc>Figure 2 depicts a high level overview of the SD Elements' knowledge base architecture. The contents of the knowledge base are vulnerabilities, security standards, and implementation of the standards. By answering the survey questions, a set of properties about the project are gathered. Each property entails a set of content. The tool is implemented in Django which allows creating models to generate the data base schemas.</figDesc><graphic coords="4,171.48,347.79,269.20,159.07" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_2"><head>Fig. 2 .</head><label>2</label><figDesc>Fig. 2. High level architecture of SD Elements knowledge base</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_3"><head>Fig. 3 .</head><label>3</label><figDesc>Fig. 3. Standard encoding format, sample code</figDesc><graphic coords="5,153.96,331.91,304.20,196.31" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_4"><head>Fig. 4 .</head><label>4</label><figDesc>Fig. 4. A sample development guideline generated by SD Elements tool for a banking application</figDesc><graphic coords="6,135.60,117.01,344.10,238.17" type="bitmap" /></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_5"><head>1 .</head><label>1</label><figDesc>How and in what logical path users browse the standards. 2. How the standards and requirements are applied in different phases of development and by what roles.</figDesc></figure>
<figure xmlns="http://www.tei-c.org/ns/1.0" xml:id="fig_6"><head>Fig. 5 .</head><label>5</label><figDesc>Fig. 5. A sample SD Elements test case 3. Whether users treat guidelines only as an after the fact check list or developers use guidelines in daily development tasks. 4. Whether SD Elements help developers actually prevent the introduction of potential vulnerabilities into the code. 5. Whether users find SD Elements intuitive and usable. 6. Whether users need additional security knowledge sources in addition to SD Elements.</figDesc><graphic coords="7,142.08,116.91,328.00,310.51" type="bitmap" /></figure>
		</body>
		<back>
			<div type="references">

				<listBibl>

<biblStruct xml:id="b0">
	<analytic>
		<title level="a" type="main">Security requirements for the rest of us: A survey</title>
		<author>
			<persName><forename type="first">I</forename><forename type="middle">A</forename><surname>Tondel</surname></persName>
		</author>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">G</forename><surname>Jaatun</surname></persName>
		</author>
		<author>
			<persName><forename type="first">P</forename><forename type="middle">H</forename><surname>Meland</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">IEEE Software</title>
		<imprint>
			<biblScope unit="volume">25</biblScope>
			<biblScope unit="page" from="20" to="27" />
			<date type="published" when="2008">2008</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b1">
	<monogr>
		<ptr target="http://nvd.nist.gov/" />
		<title level="m">National Vulnerability Database</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b2">
	<monogr>
		<ptr target="http://cwe.mitre.org/" />
		<title level="m">Common Weakness Enumeration</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b3">
	<monogr>
		<title/>
		<author>
			<persName><surname>Owasp</surname></persName>
		</author>
		<ptr target="http://www.owasp.org/" />
		<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b4">
	<monogr>
		<ptr target="https://www.pcisecuritystandards.org/" />
		<title level="m">PCI Secutity Standard Council, Data Security Standards (PCI DSS</title>
				<imprint/>
	</monogr>
</biblStruct>

<biblStruct xml:id="b5">
	<analytic>
		<title level="a" type="main">Security management standard -iso 17799/bs 7799</title>
		<author>
			<persName><forename type="first">M</forename><forename type="middle">J</forename><surname>Kenning</surname></persName>
		</author>
	</analytic>
	<monogr>
		<title level="j">BT Technology Journal</title>
		<imprint>
			<biblScope unit="volume">19</biblScope>
			<biblScope unit="issue">3</biblScope>
			<biblScope unit="page" from="132" to="136" />
			<date type="published" when="2001">2001</date>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b6">
	<monogr>
		<ptr target="http://projects.webappsec.org" />
		<title level="m">Web Application Security Consortuim Threat Classification</title>
				<imprint>
			<biblScope unit="volume">0</biblScope>
		</imprint>
	</monogr>
</biblStruct>

<biblStruct xml:id="b7">
	<monogr>
		<ptr target="http://securityinnovation.com/products/team-mentor/" />
		<title level="m">Secure Development Standards</title>
				<imprint/>
	</monogr>
</biblStruct>

				</listBibl>
			</div>
		</back>
	</text>
</TEI>
