<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
		>
<channel>
	<title>Comments on: Secure Software &#8211; A New Term Coined !</title>
	<atom:link href="http://securitymasala.wordpress.com/2008/01/27/secure-software-a-new-term-coined/feed/" rel="self" type="application/rss+xml" />
	<link>http://securitymasala.wordpress.com/2008/01/27/secure-software-a-new-term-coined/</link>
	<description>Different Flavors of Information Security by Mano Paul</description>
	<lastBuildDate>Fri, 21 Nov 2008 16:33:55 +0000</lastBuildDate>
	<generator>http://wordpress.com/</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: Mano Paul</title>
		<link>http://securitymasala.wordpress.com/2008/01/27/secure-software-a-new-term-coined/#comment-152</link>
		<dc:creator>Mano Paul</dc:creator>
		<pubDate>Mon, 28 Jan 2008 19:49:49 +0000</pubDate>
		<guid isPermaLink="false">http://securitymasala.wordpress.com/?p=40#comment-152</guid>
		<description>Dre,
Thank you for you comments. Glad you like the term - SD3LC - wish you started using it instead of sticking to &quot;Secure SDLC&quot; :-) Just kidding, you are welcome to use any term, that works best for you. 
The main reason for coining SD3LC, was to demonstrate the fact that through every phase of the life cycle of software (commonly referred to as applications when developed internally) development, security should be factored in its design, by default and in deployment (whether managed as an operational item or not). Secure Software, IMO  is a by-product of security aware PEOPLE (Developers/Testers/PMs/Management...) following secure and standard PROCESSES and using secure TECHNOLOGIES (Tools being a subset of it) as mandated/recommended by secure GOVERNANCE (Policies, Standards, PnPs, Procedures, GASSP...). Reality Check - Easy to say, but hard to do! 
I welcome more thoughts on this ...</description>
		<content:encoded><![CDATA[<p>Dre,<br />
Thank you for you comments. Glad you like the term &#8211; SD3LC &#8211; wish you started using it instead of sticking to &#8220;Secure SDLC&#8221; <img src='http://s.wordpress.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' />  Just kidding, you are welcome to use any term, that works best for you.<br />
The main reason for coining SD3LC, was to demonstrate the fact that through every phase of the life cycle of software (commonly referred to as applications when developed internally) development, security should be factored in its design, by default and in deployment (whether managed as an operational item or not). Secure Software, IMO  is a by-product of security aware PEOPLE (Developers/Testers/PMs/Management&#8230;) following secure and standard PROCESSES and using secure TECHNOLOGIES (Tools being a subset of it) as mandated/recommended by secure GOVERNANCE (Policies, Standards, PnPs, Procedures, GASSP&#8230;). Reality Check &#8211; Easy to say, but hard to do!<br />
I welcome more thoughts on this &#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: dre</title>
		<link>http://securitymasala.wordpress.com/2008/01/27/secure-software-a-new-term-coined/#comment-150</link>
		<dc:creator>dre</dc:creator>
		<pubDate>Mon, 28 Jan 2008 13:12:48 +0000</pubDate>
		<guid isPermaLink="false">http://securitymasala.wordpress.com/?p=40#comment-150</guid>
		<description>I really like it.

However, I am going to use &quot;Secure SDLC&quot; as the popular description, SwA (Software Assurance) as the description for what is actually is, and &quot;secure inspection&quot; to refer to the ten parts necessary to complete a proper life cycle:

(1) Secure requirements inspection (using Fagan inspection)
(2) HLD&#039;s with secure software/information system architecture inspection (using Fagan inspection on formal specifications, semi-formal specifications, or informal specifications such as using an ADL e.g. UML 2.0)
(3) DLD&#039;s with secure design inspection (using Fagan inspection along with DFD&#039;s, attack-trees, attack-modeling, and threat-modeling after architectural risk analysis)
(4) Secure code inspection during programming (using Fagan inspection along with unit testing and code metrics)
(5) Secure code inspection during integration (using Fagan inspection along with a test harness)
(6) Secure system test planning (using Fagan inspection)
(7) Secure integration test planning (using Fagan inspection)
(8) Secure functional test planning (using Fagan inspection)
(9) Secure acceptance test planning (using Fagan inspection)
(10) Secure operations/maintenance test planning (using Fagan inspection)

I see operations as a different organization and with a different methodology (i.e. systems life cycle instead of software life cycle).  According to the above, quality testing or security testing can be integrated in the life cycle or remain separate, but all concerns should be covered.

This doesn&#039;t take into account &quot;Secure by Deployment&quot;, which I feel is not part of the SDLC, but instead part of the operations methodology (The Art of Software Security Assessment&#039;s Chapter 3 - Operational Review).

I dislike using the word &quot;application&quot; or the words &quot;application security&quot; because those words denote a deployed application (as opposed to software which is made up of components to be built during system integration).  A deployed application should have known vulnerabilities and be under a vulnerability management program.  This is an operations issue - not a development one.

When performing secure software/information system architecture inspection (my #2 above), this practice is much different than the Operational Review.  Many note that ERD (entity-relationship diagrams) should be used, but many modern languages preclude ERD&#039;s because they utilize annotations/attributes/pragmas/metadata in order to describe schemas that are then optimized by the language on the fly.

There is a lot of confusion about which tools to use where in this process.  Requirements inspection can be done with NASA SATC ARM 2.1 (free, open-source) and IBM Rational RequisitePro (commercial).  High-level design inspection can be done with Klocwork K7 (commercial), IBM Rational Rose (commercial) or later with Fujaba (UML and Java open-source) or any UML tool.  Detailed-level designs can be done using Microsoft TAM/TAM-E or Octotrike.  I suggest Trike or OCTAVE for the architectural risk-analysis instead of STRIDE or a rating system (e.g. DREAD, CVSS2, CWE Scoring, et al).  All of the design portion should only take up about ten percent of the total time and budget alloted to any specific project.

Programming tools can be used inside of the IDE during programming if the IDE supports this sort of feature, or available before build(s) in the revision control system.  Examples are too numerous to include for every language but probably should include at least one form of binary or bytecode inspection (e.g. FxCop, FindBugs, Veracode SecurityReview), one form of source code inspection (e.g. PMD or Presharp), one way of unit testing (e.g. CT-Eclipse, Crap4j), and one method of gathering code metrics (e.g. Java metrics, NDepend).  These tools don&#039;t have to be security specific, but some are (e.g. Veracode, Ounce, Armorize, Fortify SCA) while others come close to a mixed bag (e.g. Klocwork, Grammatech, Coverity).  The programming phase usually takes up most of the budget for all the wrong reasons, so be sure to fire/force-lateral-move all of the programmers either during or right after the project.

During integration (i.e. the build, especially any continuous integration or nightly/daily build process), the tools should be security-specific if at all possible.  The test harness often comprises itself of unit tests, component tests, mock objects, spies, and code metrics.  It could also include structural (usually static analysis), system (working environment whether staged or production), and functional testing (usually dynamic/runtime analysis) depending on the specific application being built.  Integration testing for security should take up most of the budget of the security portion of any project, but never does.  I would spend eighty percent of the budget on automated tools and processes that work exactly like a Continuous Integration program, but with added software assurance in and risk-management out.</description>
		<content:encoded><![CDATA[<p>I really like it.</p>
<p>However, I am going to use &#8220;Secure SDLC&#8221; as the popular description, SwA (Software Assurance) as the description for what is actually is, and &#8220;secure inspection&#8221; to refer to the ten parts necessary to complete a proper life cycle:</p>
<p>(1) Secure requirements inspection (using Fagan inspection)<br />
(2) HLD&#8217;s with secure software/information system architecture inspection (using Fagan inspection on formal specifications, semi-formal specifications, or informal specifications such as using an ADL e.g. UML 2.0)<br />
(3) DLD&#8217;s with secure design inspection (using Fagan inspection along with DFD&#8217;s, attack-trees, attack-modeling, and threat-modeling after architectural risk analysis)<br />
(4) Secure code inspection during programming (using Fagan inspection along with unit testing and code metrics)<br />
(5) Secure code inspection during integration (using Fagan inspection along with a test harness)<br />
(6) Secure system test planning (using Fagan inspection)<br />
(7) Secure integration test planning (using Fagan inspection)<br />
(8) Secure functional test planning (using Fagan inspection)<br />
(9) Secure acceptance test planning (using Fagan inspection)<br />
(10) Secure operations/maintenance test planning (using Fagan inspection)</p>
<p>I see operations as a different organization and with a different methodology (i.e. systems life cycle instead of software life cycle).  According to the above, quality testing or security testing can be integrated in the life cycle or remain separate, but all concerns should be covered.</p>
<p>This doesn&#8217;t take into account &#8220;Secure by Deployment&#8221;, which I feel is not part of the SDLC, but instead part of the operations methodology (The Art of Software Security Assessment&#8217;s Chapter 3 &#8211; Operational Review).</p>
<p>I dislike using the word &#8220;application&#8221; or the words &#8220;application security&#8221; because those words denote a deployed application (as opposed to software which is made up of components to be built during system integration).  A deployed application should have known vulnerabilities and be under a vulnerability management program.  This is an operations issue &#8211; not a development one.</p>
<p>When performing secure software/information system architecture inspection (my #2 above), this practice is much different than the Operational Review.  Many note that ERD (entity-relationship diagrams) should be used, but many modern languages preclude ERD&#8217;s because they utilize annotations/attributes/pragmas/metadata in order to describe schemas that are then optimized by the language on the fly.</p>
<p>There is a lot of confusion about which tools to use where in this process.  Requirements inspection can be done with NASA SATC ARM 2.1 (free, open-source) and IBM Rational RequisitePro (commercial).  High-level design inspection can be done with Klocwork K7 (commercial), IBM Rational Rose (commercial) or later with Fujaba (UML and Java open-source) or any UML tool.  Detailed-level designs can be done using Microsoft TAM/TAM-E or Octotrike.  I suggest Trike or OCTAVE for the architectural risk-analysis instead of STRIDE or a rating system (e.g. DREAD, CVSS2, CWE Scoring, et al).  All of the design portion should only take up about ten percent of the total time and budget alloted to any specific project.</p>
<p>Programming tools can be used inside of the IDE during programming if the IDE supports this sort of feature, or available before build(s) in the revision control system.  Examples are too numerous to include for every language but probably should include at least one form of binary or bytecode inspection (e.g. FxCop, FindBugs, Veracode SecurityReview), one form of source code inspection (e.g. PMD or Presharp), one way of unit testing (e.g. CT-Eclipse, Crap4j), and one method of gathering code metrics (e.g. Java metrics, NDepend).  These tools don&#8217;t have to be security specific, but some are (e.g. Veracode, Ounce, Armorize, Fortify SCA) while others come close to a mixed bag (e.g. Klocwork, Grammatech, Coverity).  The programming phase usually takes up most of the budget for all the wrong reasons, so be sure to fire/force-lateral-move all of the programmers either during or right after the project.</p>
<p>During integration (i.e. the build, especially any continuous integration or nightly/daily build process), the tools should be security-specific if at all possible.  The test harness often comprises itself of unit tests, component tests, mock objects, spies, and code metrics.  It could also include structural (usually static analysis), system (working environment whether staged or production), and functional testing (usually dynamic/runtime analysis) depending on the specific application being built.  Integration testing for security should take up most of the budget of the security portion of any project, but never does.  I would spend eighty percent of the budget on automated tools and processes that work exactly like a Continuous Integration program, but with added software assurance in and risk-management out.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
