<?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: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-3870331142125873951</id><updated>2011-07-07T15:29:55.310-07:00</updated><category term='SANS'/><category term='InfoSec'/><category term='ECU'/><category term='IT Security'/><category term='Hacking'/><category term='OWASP'/><category term='SSO'/><category term='Information Security'/><category term='linkedin'/><category term='Top 25 Programming errors'/><category term='Hack'/><category term='East Carolina Univerity'/><title type='text'>Information Security Knowledge Sharing</title><subtitle type='html'></subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>22</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-4643237519651287254</id><published>2011-02-13T05:28:00.000-08:00</published><updated>2011-02-13T05:35:31.814-08:00</updated><title type='text'></title><content type='html'>&lt;div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;div&gt;Title: Apply predictive modeling techniques to information security.&lt;br /&gt;&lt;br /&gt;A few months ago, I presented an article on the Island titled: "Using Analytics and Modeling to Predict attacks" (https://www.infosecisland.com/blogview/6924-Using-Analytics-and-Modeling-to-Predict-Attacks.html). In that article I wondered if analytics could assist security professionals in predicting future computer attacks. After writing a research paper on the subject for my last semester in graduate school, in a nutshell, my simple answer is Yes...and as Dr. Chuvakin commented on my previous article: "The devil's in the details!". The focus of my paper was on the details.&lt;br /&gt;&lt;br /&gt;Basically, analytics can be used in any type of industry that produces and consumes data. Of course that includes security.&lt;br /&gt;&lt;br /&gt;Predictive analytics and data mining at first may seem to mean the same thing but there are differences. Data mining defines the process of exploring large amounts of data for relationships that can be exploited for proactive decision making. Data mining can produce decisions through normal reports that explain what happened. Alerts can be created to define the times when reactions are necessary. To me, predictive modeling goes a few steps above data mining and therefore adds the most value to a business. Predictive modeling starts with statistical analysis and moves on from standard reporting and alerts to forecasting and optimizations. Instead of focusing on what happened, predictive modeling allows us to look at what will happen next, what trends will continue and how we can do better.&lt;br /&gt;&lt;br /&gt;There are considerable barriers to this field. For one, analytics involves the use of advanced statistics. My limited statistical training was certainly a big hurdle for me as I began to put analytics into practice. I dusted off my grad school business statistics book and began to reread the sections on measures of central tendency, probability theories and Bayesian statistics. At the same time, I was learning what exactly was meant by "business analytics" and "predictive modeling". Luckily for me, I work at one of the largest software companies in the world whose focus on business analytics has provided me with a wealth of material and software tools to put this into hands-on practice.&lt;br /&gt;&lt;br /&gt;The complex nature of the field leads to the next barrier: you need highly paid, highly skilled modeling professionals. Which leads to the next barrier: you need people who know how to use modeling software. Since analytics is complicated, the software to use it is complicated. But even if you know statistics and learn how to use the tools, you may not be able interpret the results you get. Matter of fact, there is a trend in the industry to combat the complex nature of the field. There are companies that are planning to release tools that bring analytics to the novice end user. For my paper I evaluated two open source packages: R (the stats package) with the Rattle data mining plugin and Weka (a data mining package). I compared the open source offerings to SAS Enterprise Miner - an enterprise strength data mining package with descriptive and predictive modeling capabilities.&lt;br /&gt;&lt;br /&gt;In order to apply the techniques to information security I needed datasets. I used a commonly applied dataset in information security research: The network intrusion dataset from the KDD archive popularly referred to as the KDD 99 Cup set. The KDD 99 Cup consists of 41 attributes and 345,814 observations gathered from 9 weeks of raw TCP data from simulated United States Air Force network traffic. The intrusion dataset is quite different from a raw TCP dump. First of all, the KDD99 Cup dataset has a number of attributes that are not found in raw TCP data. Secondly, two features are missing from the dataset that would actually improve intrusion detection models. Those two features are timestamp and source IP address. Web log analysis is based upon these two useful features and they provide valuable insights on access patterns. The data set creators simulated 24 attack types in this data set broken down into 4 classes: Denial of service, Root to Local, probing and User to Root attack types. This dataset was downloaded in two forms: (1) the raw dataset in CSV format for loading into SAS Enterprise Miner and (2) the dataset in ARFF format as required by Weka software. Immediately I realized a major problem in using R and Weka - while I could load 400,000 records in R and Weka - when I chose to build models, both packages frequently hung whereas SAS Enterprise Miner ran like a champ.&lt;br /&gt;&lt;br /&gt;Next in my paper, I proposed a basic modeling framework. By using a modeling framework, modelers can apply techniques in an iterative fashion similar to software engineering. This enables the modelers to share models, evaluate models for effectiveness and determine if model results are accurate. My framework start with data exploration, then move onto modeling envisioning, followed by iterative modeling and finally ending with modeling testing and deployment. This framework is loosely based upon the Predictive Model Markup Language (PMML) that was designed by the Data Mining Group.&lt;br /&gt;&lt;br /&gt;By starting with data exploration you can use the software to display measures of central tendency. For example, when I imported the KDD 99 Cup dataset into the software, it showed several interesting things. &lt;a href="http://2.bp.blogspot.com/-TAK-72QGVhI/TVfdDea3U0I/AAAAAAAAAD4/K15MRGHGnJo/s1600/summarystats.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 200px; FLOAT: left; HEIGHT: 184px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5573166115669365570" border="0" alt="" src="http://2.bp.blogspot.com/-TAK-72QGVhI/TVfdDea3U0I/AAAAAAAAAD4/K15MRGHGnJo/s200/summarystats.jpg" /&gt;&lt;/a&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&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;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;For one, the summary detected that 57% of all observations involved Smurf DDoS attacks and that 100% of the Smurf attacks involved the ICMP protocol. In addition, 22% of all Neptune attacks involved TCP traffic types. This identifies that Smurf attacks involved a flood of ICMP packets whereas the Neptune attacks are variants of the TCP 3-way handshaking process. Overall the summary statistics showed very irregular data distributions on the KDD99 Cup data set. For example, the DDOS records always come in large clusters whereas the U2R attacks are always represented by isolated records. This does represent a common technique among hackers: Attackers will launch a massive attack against a target in a DDOS attack that overwhelms the server. Hidden in this tremendous amount of data, the attackers will launch more lucrative u2r and l2r attacks. The idea is that the security analysts will be so busy mitigating the DDOS attacks that they don’t even detect the attack trying to gain access through backdoor attacks or password guess attacks.&lt;br /&gt;&lt;br /&gt;When moving to model envisioning, you use agile software techniques to document candidate models to aid in predictive modeling. A common model is the decision tree. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;a href="http://4.bp.blogspot.com/-9eWCU-8OuJM/TVfdwWUtFYI/AAAAAAAAAEI/LcSNCG-EjFY/s1600/decision%2Btree.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 320px; FLOAT: left; HEIGHT: 251px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5573166886590158210" border="0" alt="" src="http://4.bp.blogspot.com/-9eWCU-8OuJM/TVfdwWUtFYI/AAAAAAAAAEI/LcSNCG-EjFY/s320/decision%2Btree.jpg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;br /&gt;&lt;div&gt;When using a decision tree, you identify a target variable from your dataset and the software uses a series of IF - ELSE rules to divide the data into logical segments. Improvements to the predictive models occur during subsequent iterations where model effectiveness is measured. In my paper, I started further dividing the decision tree built in previous iterations by various attributes until I was relatively sure that results that I see could be accurate and useful. The final phase, model testing and deployment, involve determining whether the predictive models constructed in earlier phases perform effectively. Cumulative lift charts are excellent ways to visually show the performance of a model. The lift, a measure of effectiveness of a predictive model, is calculated as the ratio between the results obtained with and without the predictive model.&lt;br /&gt;&lt;br /&gt;Lift = confidence / expected confidence&lt;br /&gt;&lt;br /&gt;Basically, the greater the area between the lift curve and the baseline, the better the model will be at predicting outcomes. &lt;/div&gt;&lt;div&gt; &lt;/div&gt;&lt;div&gt;There has been an increasing amount of work in the information technology field concerning predictive techniques and the need to uncover patterns in data.&lt;br /&gt;Al-Shayea used artificial neural networks in order to predict student’s academic performance with the goal of improving student scores using preplanned strategic programs.&lt;br /&gt;Fouad, Abdel-Aziz, and Nazmy conducted research on using artificial neural networks in IDSs in order to detect unknown signature patterns in network traffic.&lt;br /&gt;Predictive modeling has proven to be extremely effective in solving a wide array of important business problems. There are several hurdles to overcome before this process can be effectively used by a wider audience. One problem is that a trained data analyst who is experienced in modeling techniques and is knowledgeable about the data sources needs to be involved. A highly automated technology solution that incorporates the framework features presented in this paper exposed as a web service would enable developers and database analysts all over the world to build customizable solutions for their company. &lt;/div&gt;&lt;/div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-4643237519651287254?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/4643237519651287254/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2011/02/title-apply-predictive-modeling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4643237519651287254'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4643237519651287254'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2011/02/title-apply-predictive-modeling.html' title=''/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://2.bp.blogspot.com/-TAK-72QGVhI/TVfdDea3U0I/AAAAAAAAAD4/K15MRGHGnJo/s72-c/summarystats.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-8083097219101281021</id><published>2010-06-14T05:53:00.000-07:00</published><updated>2010-06-14T05:57:35.679-07:00</updated><title type='text'>First new entry in awhile.</title><content type='html'>Last semester in grad school - Ethics - was a &lt;em&gt;reading - studying - intensive &lt;/em&gt;semester.  We blew through the material: copyrights, trade secrets, morals in information security, patents.  You name it - we went through it.  My research paper - &lt;em&gt;Liability Issues surrounding Cloud Computing - &lt;/em&gt;has been edited by Liz and I am in the process of going through and applying the edits.&lt;br /&gt;&lt;br /&gt;Still not sure if I will put it out there but you never know. &lt;br /&gt;&lt;br /&gt;OWASP has not been meeting lately so no news to report.&lt;br /&gt;&lt;br /&gt;I'm getting familiar with Grails - BlazeDS - Flex stack right now.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-8083097219101281021?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/8083097219101281021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2010/06/first-new-entry-in-awhile.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/8083097219101281021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/8083097219101281021'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2010/06/first-new-entry-in-awhile.html' title='First new entry in awhile.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-5758136756821664750</id><published>2010-01-04T11:51:00.000-08:00</published><updated>2010-01-04T11:53:00.856-08:00</updated><title type='text'>Phishing stats.</title><content type='html'>What are Phishing kits?&lt;br /&gt;&lt;br /&gt;Phishing kits are usually downloadable from dark sites and underground IRC forums in the form of an archive – tar, zip, etc. and contain all of the files necessary to build a phishing site.  The kit users are not technically adept but the kit authors usually are and they drive much of the phishing sites used today.&lt;br /&gt;&lt;br /&gt;Nearly 400 different phishing kits were discovered by computer scientists at UC Santa Barbara - &lt;a href="http://www.scmagazineus.com/backdoor-scams-emerge-on-phishing-kits/article/113240/"&gt;http://www.scmagazineus.com/backdoor-scams-emerge-on-phishing-kits/article/113240/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Out of almost 400 kits, 129 had backdoors that phished the phishers.&lt;br /&gt;&lt;br /&gt;RockPhish.&lt;br /&gt;MrBrain – although use is diminishing due to MrBrain’s stealing of the stealer’s data which led to distrust in the underground community.&lt;br /&gt;Google Kit - &lt;a href="http://securitylabs.websense.com/content/Blogs/3512.aspx"&gt;http://securitylabs.websense.com/content/Blogs/3512.aspx&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Stolen cards are used for....&lt;br /&gt;&lt;br /&gt;Used to purchase nonsensical domains and webhosting services.  The hosting service providers that have longer take down times are usually preferred.  Over the past few years, the main stream hosting services like Yahoo are declining in use due to the fast takedown times.  Other hosting services like by.ru and 100webspace.net&lt;br /&gt;&lt;br /&gt;Top webhosters by phishers:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://toolbar.netcraft.com/stats/hosters"&gt;http://toolbar.netcraft.com/stats/hosters&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Phishiest countries:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://toolbar.netcraft.com/stats/countries"&gt;http://toolbar.netcraft.com/stats/countries&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-5758136756821664750?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/5758136756821664750/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2010/01/phishing-stats.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/5758136756821664750'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/5758136756821664750'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2010/01/phishing-stats.html' title='Phishing stats.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-8116251328764409721</id><published>2009-12-29T12:44:00.000-08:00</published><updated>2009-12-30T06:26:39.795-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='East Carolina Univerity'/><category scheme='http://www.blogger.com/atom/ns#' term='linkedin'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacking'/><title type='text'>So, you wanna network online,too?</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SzpqdgPCTnI/AAAAAAAAACU/VXGElmZe7Mk/s1600-h/9780596154578_s.gif"&gt;&lt;img style="MARGIN: 0pt 10px 10px 0pt; WIDTH: 145px; FLOAT: left; HEIGHT: 190px; CURSOR: pointer" id="BLOGGER_PHOTO_ID_5420762156595564146" border="0" alt="" src="http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SzpqdgPCTnI/AAAAAAAAACU/VXGElmZe7Mk/s200/9780596154578_s.gif" /&gt;&lt;/a&gt;&lt;br /&gt;Dhanjani, Rios and Hardin can be ordered from many sites but I get mine free through my company's Safari online account. I get 60 free tokens per month that I can use for downloading into PDF formats. 1 entire book like Pro Spring 2.5 cost 30 tokens but you can spend like 10 tokens for a chapter. Of course, you don't have to spend a single token while reading online.&lt;br /&gt;&lt;br /&gt;A good service which I am appreciable for.&lt;br /&gt;&lt;br /&gt;Anyway, back to the book and the chapter "Intelligence gathering on your attack targets.". I previously listed ways to gain valuable information on hacking targets using little work and no dumpster diving. The previous post was geared towards attacks computer systems but not human targets.&lt;br /&gt;&lt;br /&gt;What is a little more interesting is attacking specific people. This is one of the key issues behind Facebook' recent privacy issues. Never mind a user setting a "privacy filter" on their profile, they show it to friends. Is it easy to become a friend?&lt;br /&gt;&lt;br /&gt;For my example I select a particular target which was a former CIO of mine in the past. (I never act upon this information, merely as a proof of concept.) It was pretty easy.&lt;br /&gt;&lt;br /&gt;1) &lt;span style="FONT-WEIGHT: bold"&gt;First of all, &lt;a href="http://services.wakegov.com/realestate/"&gt;Wake County Real estate listings &lt;/a&gt;&lt;/span&gt;will give you the person's home address, a picture of the place (for god's sake) and what the dude payed for it among other things.&lt;br /&gt;&lt;br /&gt;2) &lt;span style="FONT-WEIGHT: bold"&gt;Second, &lt;/span&gt;&lt;a href="http://www.linkedin.com/"&gt;Linked - In&lt;/a&gt;: The professional's information database. Oh man, this site is a treasure trove of information.&lt;br /&gt;&lt;br /&gt;Linked in..... with the bad recession and job losses many people are looking for ways to network with others to find that next job. Hackers can also use it to build a dossier of an attack target. I went to Linked in and created a fake account. You have to have an account to be able to get more information on a target.&lt;br /&gt;&lt;br /&gt;I searched and found my former CIO. What do I see? I see his complete work history, education history and other nuggets of valuable personal information. Combine that with the fact that most people choose passwords based upon their personal information, it wouldn't be hard to plug this into a brute force password cracker.&lt;br /&gt;&lt;br /&gt;What else on Linked in? Well, this guy listed his personal website on his profile. I visited this site and, my-oh-my, it's a family photo website. Now, I have pictures of his wife, kids, grandparents and friends. I also get the names of his family so I can match the picture with the name.&lt;br /&gt;&lt;br /&gt;With those two sites, I now have almost a complete history of this guy with pictures! The fun a real hacker could have with this information.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-8116251328764409721?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/8116251328764409721/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/12/dhanjani-rios-and-hardin-can-be-ordered.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/8116251328764409721'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/8116251328764409721'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/12/dhanjani-rios-and-hardin-can-be-ordered.html' title='So, you wanna network online,too?'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SzpqdgPCTnI/AAAAAAAAACU/VXGElmZe7Mk/s72-c/9780596154578_s.gif' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-2886490114387112193</id><published>2009-12-26T06:27:00.000-08:00</published><updated>2009-12-26T07:03:40.731-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Hack'/><category scheme='http://www.blogger.com/atom/ns#' term='East Carolina Univerity'/><category scheme='http://www.blogger.com/atom/ns#' term='InfoSec'/><category scheme='http://www.blogger.com/atom/ns#' term='Hacking'/><category scheme='http://www.blogger.com/atom/ns#' term='Information Security'/><category scheme='http://www.blogger.com/atom/ns#' term='IT Security'/><category scheme='http://www.blogger.com/atom/ns#' term='SSO'/><title type='text'>So, you wanna social network?</title><content type='html'>Hey everyone, Merry Christmas!  I'm off from grad school for the semester and need to study for my Master's comp exams in March but I'm doing some research in a few different areas and thought I would post a few thoughts. &lt;br /&gt;&lt;br /&gt;I've been reading the book &lt;span style="font-weight: bold;"&gt;Hacking the Next Generation &lt;/span&gt;by Dhanjani, Rios and Hardin and that got me to thinking....  The authors explain in the chapter "Intelligence gathering" that in order to execute a successful attack against a target, the attacker must gain as much intelligence about the target as possible.&lt;br /&gt;&lt;br /&gt;What are some of the ways the authors suggest to gather intelligence?  The Internet of course.  I used my former company as an example target.  What if I was a disgruntled former employee bent on vengeance against either the company as a whole or just the former CIO?  Both are ripe for the plucking.&lt;br /&gt;&lt;br /&gt;1)  Gathering information on company technical infrastructure - an attacker needs to know as much about the target's computer systems and infrastructure.  One way to do this is to use a search engine and look for keywords such as the company's domain address.  The reason I chose this was that, as a programmer, I am always searching forums and other source of information on problems that I may be having.  So, I search for my former company's email address on Google.&lt;br /&gt;&lt;br /&gt;I see some very interesting information.  I come across some postings from software developers on the SpringSource developer forums.  I know they are from my former company since the posters are using the company's email address in their profiles.  From these postings I gather the team is using Spring framework for their MVC layer.  If I wanted to attack some of the systems, I can find vulnerabilities in the Spring framework that I can utilize.  I also see that one of the developers posted a URL of one of the development servers where others can test his theories.  I can also use this URL as the attack target since it is accessible to the outside world.  And since this was a development server, it is possible the perimeter defenses aren't as formidable as those on the production servers.&lt;br /&gt;&lt;br /&gt;2)  Using Google hacking as an intelligence source - Google is a well known vehicle for intelligence gathering.  JohnnyIHackStuff has a great Google hacking database on his site.  I first try a few searches using "filetype:doc companyname" as a start.  Hello!  in the first 10 hits I find the online resume of a former developer.  The "Skills" and "Projects" section of this resume gives me some very critical information.&lt;br /&gt;&lt;br /&gt;First of all, I see Websphere server experience.  I now know that this company is using IBM's Websphere as a webserver.  I make a note of this.  In the experience section, I also see that this developer worked on a Single Sign On application for this company.  If I can find a user id and password for the SSO application, it is possible that I can get access to many of the company's critical web applications.  I also find it interesting the SSO is a homegrown SSO type of application.  Very good news for me since commercial brand SSO's traditionally have had security holes.  What kind of holes does a homegrown SSO have?  Lot's, I'm sure.&lt;br /&gt;&lt;br /&gt;The developer mentioned that he/she built a JAAS authentication model that users of the SSO use.  The developer also put in that he/she built an developer SSO hack so developers can bypass SSO on developer machines.  I wonder if the hack made it into production? Probably so.  I also wonder if this developer (whom so nicely put contact information in the resume for me) is as disgruntled as I am?  It may be worth a few beers to talk with this developer about his experience at the former company.  Maybe $1000 would interest him for some details about his SSO experience?&lt;br /&gt;&lt;br /&gt;That's it for now.  It literally took me 15 minutes to get this amount of information. &lt;br /&gt;&lt;br /&gt;Next up will be a post on intelligence gathering targeting the former CIO of this former company.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-2886490114387112193?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/2886490114387112193/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/12/so-you-wanna-social-network.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2886490114387112193'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2886490114387112193'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/12/so-you-wanna-social-network.html' title='So, you wanna social network?'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-4153078690353774026</id><published>2009-11-21T06:31:00.000-08:00</published><updated>2009-12-08T10:18:11.278-08:00</updated><title type='text'>Packet fragmentation vs the Intrusion Detection System</title><content type='html'>How well does Snort IDS handle packet fragments when the fragments could contain a potentially malicious software attack? Let's read on.... I found a really great article written in 2007 on how an author setup a lab environment to test this theory. Here is the URL: &lt;a href="http://www.windowsecurity.com/articles/Packet-fragmentation-versus-Intrusion-Detection-System-IDS-Part1.html"&gt;http://www.windowsecurity.com/articles/Packet-fragmentation-versus-Intrusion-Detection-System-IDS-Part1.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Before we get into the article let's explore some background information on packet fragmentation. Let's find out what exactly is packet fragmentation and how packets are fragmented.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is packet fragmentation?&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;If IP packets are coming into your network and one or more packets are larger than the network's defined Maximum Transmission Unit (MTU), the packet(s) must be broken up into smaller pieces in order to allow the packets to traverse the network. These smaller packets are called fragments. For more information on the protocols involved with packet fragmentation and reassembly, you can visit the RFC's at &lt;a href="http://tools.ietf.org/html/"&gt;http://tools.ietf.org/html/&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What is the MTU?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;I just mentioned the MTU. What is an MTU? The MTU is defined as the largest datagram that can be sent over the network. The network admin has some default sizes to work with. For example, on Ethernet networks the default MTU is 1,500 bytes.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;What fields are involved in packet fragmentation?&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;Answer: look to the IP header. Every IP packet has an IP header that stores information about the packet. Some of the fields on the IP header are the IP version (ipv4, ipv6), the identification field, source and destination IP addresses and total length. Three fields involved in packet fragmentation are (1) identification (2) fragbits or flags and (3) fragment offset.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Let's look at these 3 fields in more depth..... For more information, you can peruse the RFCs at this address: &lt;a href="http://www.faqs.org/rfcs/rfc791.html"&gt;http://www.faqs.org/rfcs/rfc791.html&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;li&gt;&lt;span style="COLOR: rgb(51,51,255)"&gt;IP header identification field: &lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;The identification field is a 16 bit field provided by the sender that aids in packet reassembly. &lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="COLOR: rgb(51,51,255)"&gt;Fragbits: &lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;The fragbits field is a 3 bit field that contains 3 control flags. Bit 0 is reserved and must always be 0. Bit 1 is the DF fragbit that stands for "Don't fragment". This bit can have 2 values: 0 (may fragment) or 1 (don't fragment). Bit 2 is the MF fragbit that stands for "More fragments". This bit can also have 2 values: 0 (last fragment) or 1 (more fragments to come)&lt;/span&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;&lt;span style="COLOR: rgb(51,51,255)"&gt;Fragment offset: &lt;/span&gt;&lt;span style="COLOR: rgb(0,0,0)"&gt;This is a 13 bit field that indicates where in the datagram this fragment belongs. The first fragment will always have an offset = 0&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;br /&gt;&lt;p&gt;&lt;strong&gt;IP Packet fragmentation example&lt;/strong&gt;&lt;/p&gt;&lt;p&gt;Given the information from above let's take a look at a simple example of how a packet is fragmented. Say we have a 2366 byte packet coming into our Ethernet network. You may remember that Ethernet networks MTU is 1500 bytes so our packet will need to be divided into 2 fragments.&lt;/p&gt;&lt;ol&gt;&lt;li&gt;Fragment 1: The first packet will be 1500 bytes in length. The first packet's DF fragbit will be set to 0 that means "&lt;span style="FONT-STYLE: italic"&gt;may fragment&lt;/span&gt;" and the MF fragbit will be set to 1 which means &lt;span style="FONT-STYLE: italic"&gt;More fragments to come.&lt;/span&gt; Since this is the first fragment, the fragment offset will be 0 &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Fragment 2: The second packet's DF flag will still be set to 0 to mean "&lt;span style="FONT-STYLE: italic"&gt;May fragment&lt;/span&gt;" but the MF flag will be set to 0 that means this will be the last fragment. The fragment offset of this packet will be somewhere around 910 or so. This is calculated based upon the data portion of previous packets and doesn't include the 20 or 40 bytes for the packet header lengths.&lt;br /&gt;&lt;/li&gt;&lt;/ol&gt;&lt;span style="FONT-WEIGHT: bold"&gt;How does packet fragmentation lead to attacks?&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;Let's take our 2 packet example from earlier and see what an attacker may be able to with it.&lt;br /&gt;What if an attacker wanted to telnet into our remote computer using TCP port 23 for whatever reason and what if that port is blocked by packet filtering firewall. The attacker would probably do a port scan and see which ports are open on our remote computer and what if he sees that the SMTP port 25 is open? Most likely he decides to craft a packet fragmentation attack where the first packet has the following: the fragment offset of 0 (since its the first packet), the DF flag = 0 (may fragment), the MF flag = 1 (more fragments) and the destination port = 25.&lt;br /&gt;&lt;br /&gt;The second packet the attacker will force the fragment offset to be 1 - the reason is that offset 1 will be so low that instead of appending it to the first packet it will overwrite everything in the first packet except the first 8 bits. The attacker will also set the second packet's TCP destination port to port 23 - which normally would be blocked but not in this case since the attacker has set a fragmented packet. The packet filter sees that the offset of this second packet is greater than 0 so it will think that this is a fragment of another packet and won't put it through the ruleset.&lt;br /&gt;&lt;br /&gt;When the 2 packets arrive at the target host, it will be reassembled and most of the first packet will be overwritten by the second and the combined packet will be allowed to go to port 23.&lt;br /&gt;&lt;br /&gt;&lt;span style="FONT-WEIGHT: bold"&gt;The article.&lt;br /&gt;&lt;br /&gt;&lt;/span&gt;Now, we finally get to the actual article. In the article the author states that intrusion detection systems have traditionally had problems with packet reassembly and that they still have issues today. Even though IDS's have gotten a lot smarter in how it reassembles packets, the author wanted to see how well Snort IDS performs when it comes to detecting some simple packet fragmentation attacks. The article's goals are to (1) Show how well Snort can detect simple packet fragmentation attacks and (2) use Metasploit and fragrouter to fragment packets sent to a victim computer running Snort IDS.&lt;span style="FONT-WEIGHT: bold"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;The author sets up a lab environment to launch and measure the attacks. The author sets up 3 computers - the attack computer will have Metasploit installed. The middle computer will have fragrouter installed and the victim computer will have the packet sniffer and Snort installed. &lt;span style="FONT-WEIGHT: bold"&gt;&lt;br /&gt;&lt;/span&gt;&lt;br /&gt;&lt;strong&gt;What is fragrouter?&lt;br /&gt;&lt;/strong&gt;&lt;br /&gt;We have all seen and used Metasploit and a packet sniffer (Wireshark) so I won't explain those two software tools but I"ll briefly describe fragrouter. According to insecure.org, fragrouter is one of the top 100 security tools of all time. It is used mainly as a "Network Intrusion detection evasion toolkit". Packets are sent to fragrouter which transforms them into fragments and forwarded to the victim. The author started fragrouter with the F1 option which means to send the fragmented packets in order. Other options, like F2, F3, etc are meant to allow the attacker to send packets in any order they wish.&lt;br /&gt;&lt;br /&gt;You can see all of fragrouter's options by listing with the fragrouter -help option. You can see all of the options to run fragrouter with different combinations.&lt;br /&gt;&lt;br /&gt;Once the author has his lab environment setup, he is ready to launch the attack.  In a nutshell, the author wants to launch a Metasploit MS03-026 attack that is routed through a middle computer running fragrouter.  Fragrouter will break up the attack in multiple fragments and send them on to a victim computer.  The victim computer is running Snort IDS and the author wishes to see how well Snort detects the attack through fragmented packets.  So, Snort has to reassemble the packets, detect the attack, and list any fragmented packets it finds.&lt;br /&gt;&lt;br /&gt;The Metasploit MS03-026 attack targets a buffer overflow vulnerability in Microsoft XP. The author then used the win32-reverse payload to actually try to get a remote shell access on the victim computer. Once the author gains shell access on the victim computer, he stops the attack and views Snort's statistics. Since the route was setup to forward all packets from the attack computer to the victim computer through the middle computer running fragrouter, the victim computer should see fragmented packets. I actually tried this exploit on my VMWare setup and attacking the XP VM.  Metasploit told me that this VM was not susecpible to this vulnerability so I would imagine that it could be a service pack issue.&lt;br /&gt;&lt;br /&gt;Fragrouter does produce output information to the console.  It will list the fragments as well as the offset as it is doing the fragmentation.&lt;br /&gt;&lt;br /&gt;What did Snort detect?   Snort logged 7 items and 2 alerts.  The interesting thing was that Snort detected 271 fragmented IP packets during the attack session.  Without using fragrouter, the author performed the same attack with the same payload and Snort detected 0 fragmented packets.&lt;br /&gt;&lt;br /&gt;Snort foiled our attempts at being stealthy by using packet fragmentation. It detected the exploit use as well as detecting the fragmented packets.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Conclusion:&lt;/strong&gt; We can conclude from the experiment that indeed Snort is effective at detecting some simple packet fragmentation attacks. We have been shown how to use Metasploit to launch an attack going through a middle computer that fragments the attack into fragments and sent on to the victim computer with Snort running on it.  There are certainly more scenarios at using fragrouter and Metasploit and that can be a future point of experimentation and is left up to the reader.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-4153078690353774026?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/4153078690353774026/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/11/packet-fragmentation-vs-intrusion.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4153078690353774026'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4153078690353774026'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/11/packet-fragmentation-vs-intrusion.html' title='Packet fragmentation vs the Intrusion Detection System'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-6487351864292738501</id><published>2009-09-04T17:41:00.000-07:00</published><updated>2009-09-04T17:42:32.394-07:00</updated><title type='text'>Stephen Northcutt of SANS Institute - "I think organizations should avoid Adobe if possible. Adobe security appears to be out of control".</title><content type='html'>Stephen Northcutt of SANS Institute - "I think organizations should avoid Adobe if possible. Adobe security appears to be out of control".&lt;br /&gt;This is unfortunate news in my opinion.  Bad publicity for Adobe and all of the good things and software that they provide and bad news for the developers out there creating slick applications using the Adobe Flex platform.&lt;br /&gt;&lt;br /&gt;Northcutt is a bigwig tech guy from SANS.  SANS Institute (&lt;a href="http://www.sans.org/"&gt;http://www.sans.org/&lt;/a&gt;) is a highly respected organization and you can't take their statements lightly as say, a back page editorial on Inforworld.  I believe alot of the flack comes from the slow and unresponsive update protocol that Adobe seems to be famous for.  Microsoft usually releases updates monthly and I think I have read that Adobe recently announced a new updating strategy where they are planning to release updates quarterly.  In my opinion, that is too infrequent.&lt;br /&gt;&lt;br /&gt;Most of my experience in webappsec has been in the traditional browser based HTML based applications where you worry about vulnerabilities like improper input validation or not escaping output leaving yourself open to XSS.  I have no idea how applications living inside of the flash player are exposed to attacks other than the reported problems with vulnerabilities within the Flash player itself.  At a recent OWASP meeting, we had a guy from HP who demo'ed a slick, expensive offering from them that scans corporate software and reports leaks.  I asked about if this software could flag Flex developed applications and I was told it could but I can't put a finger on why they were confident that it could.  Maybe I don't remember or understood their explanation!  Anyway, it involved something that was not of the traditional model.&lt;br /&gt;&lt;br /&gt;It would seem logical that a Flex based application would take a little more skill to do a phishing style attack.  The bogus site would have to be also developed in Flex, which I could see as doable.  This is worth keeping on the radar especially as Flex is used in sensitive software such as online banking.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-6487351864292738501?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/6487351864292738501/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/09/stephen-northcutt-of-sans-institute-i.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6487351864292738501'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6487351864292738501'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/09/stephen-northcutt-of-sans-institute-i.html' title='Stephen Northcutt of SANS Institute - &quot;I think organizations should avoid Adobe if possible. Adobe security appears to be out of control&quot;.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-2935348586681570663</id><published>2009-08-19T13:24:00.000-07:00</published><updated>2009-08-19T13:27:18.180-07:00</updated><title type='text'>Hacking without going to jail.</title><content type='html'>I asked this question of the experts at the last OWASP group....if I want to get more familiar with tools such as Burp and Paros Proxy, how can I test against websites without getting myself into trouble?&lt;br /&gt;&lt;br /&gt;The answer is &lt;a href="http://ha.ckers.org/blog/20090406/hacking-without-all-the-jailtime/"&gt;here &lt;/a&gt;at hackers.org...  this list is a list of sites that you can point your tools towards without going to prison.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-2935348586681570663?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/2935348586681570663/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/08/hacking-without-going-to-jail.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2935348586681570663'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2935348586681570663'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/08/hacking-without-going-to-jail.html' title='Hacking without going to jail.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-453540405487183867</id><published>2009-08-06T17:29:00.000-07:00</published><updated>2009-08-06T18:01:13.128-07:00</updated><title type='text'>Notes from Raleigh OWASP meeting held on August 2009.</title><content type='html'>Hey all,&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'll take a break from web application security tools assessments from a beginner's perspective and talk about what I observed from the &lt;a href="http://www.meetup.com/owaspnc/calendar/10846069/"&gt;Raleigh OWASP &lt;/a&gt;meeting held on August 06, 2009. I say take a break but what we discussed at that meeting is relevant to the recent blog posts on this very site.&lt;br /&gt;&lt;br /&gt;We spent most of the time comparing web application security assessment tools - one that is commercial and has a decent price tag of $30,000 per seat - and a few that are freely downloadable and open source. Hans from HP presented WebInspect (&lt;a href="https://h10078.www1.hp.com/cda/hpms/display/main/hpms_content.jsp?zn=bto&amp;amp;cp=1-11-201-200^9570_4000_100__"&gt;click here&lt;/a&gt;, Hans mentioned that you can download a free to use 15 day trial). This one is the commercial offering and I must say, $30,000 is too cheap. Once you play around with the free ones, Paros (discussed in last post) and/or Burp , you realize what WebInspect can do. Hans did a great job presenting this tool and explaining all it can offer. It is totally customizable with respect to what it submits in form fields in tests - therefore better equipped to handle wizard style forms that are often found in login types of applications. The complex vulnerability scans can take hours or days and sometimes could go to the limits of what the target server can handle. It can create thousands of postings on forums, look for sql injection and XSS problems, browse for directory listings. The reporting that WebInspect offers is very extensive. The idea is that the security experts can run the scans, create the reports with the nice graphics and send them to the executives.&lt;br /&gt;&lt;br /&gt;The other tools demonstrated by Steve were Paros, W3AF and Burp. What I found suprising was that the professional pen testers still use the free tools in their day to day duties. Steve mentioned that Paros's crawler (and I assume he means spidering) is very fast compared with WebInspect or Burp. It is a good thing to run a quick scan to find the most common problems quickly - a better-than nothing proposal.&lt;br /&gt;&lt;br /&gt;Steve mentioned that development is dead on Paros with the last release in 2004 and he still likes it. I didn't take notes but I thought he said that he is part of the JRuby team that is writing a new edition in JRuby.&lt;br /&gt;&lt;br /&gt;Try Googling: Paros Proxy, Burp or WebScarab (an OWASP project) to find links to download these free tools. Or download WebInspect from the link above to get a 15 day trial and let me know how it works.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-453540405487183867?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/453540405487183867/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/08/raleigh-owasp-meeting-thoughts-from.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/453540405487183867'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/453540405487183867'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/08/raleigh-owasp-meeting-thoughts-from.html' title='Notes from Raleigh OWASP meeting held on August 2009.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-4071348644349872169</id><published>2009-08-01T05:47:00.000-07:00</published><updated>2009-08-01T06:36:54.637-07:00</updated><title type='text'>Paros Proxy and Mapping a Web application</title><content type='html'>&lt;div&gt;I mentioned in my last blog post that we will be looking at 3 common web application hacker tools but lets draw back that ambitious statement and start with one. I've already downloaded and installed Paros, so I'll start with that one. You can find this sweet tool at &lt;a href="http://www.parosproxy.org/index.shtml"&gt;http://www.parosproxy.org/index.shtml&lt;/a&gt;. The version that I am using is version 3.2.0 released on November 2004.&lt;/div&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;For Windows installation it was easy, as I just let the Windows installer install itself but you must also download the latest Java JRE to get it to run correctly. Downloading and installing Java will be beyond the scope of this posting.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;To set up Paros as an HTTP proxy you will use port 8080 for proxy connections and 8443 for SSL handling. Browse my last blog posting on HTTP proxies and how to set those up in your Internet Explorer, Firefox or Opera web browsers.&lt;/div&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;&lt;a href="http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SnQ8Z6xvhtI/AAAAAAAAACE/k1fqrpf-kO4/s1600-h/ParosHome.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 200px; FLOAT: left; HEIGHT: 150px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5364979472077391570" border="0" alt="" src="http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SnQ8Z6xvhtI/AAAAAAAAACE/k1fqrpf-kO4/s200/ParosHome.jpg" /&gt;&lt;/a&gt; Once you have installed Paros, click on the launcher and you should see the Paros home page like this.&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;We will illustrate the value of a tool like Paros by practicing the first approach of a hacking session by what is called "mapping the target application." Mapping the application will give a hacker a better understanding of what the application is about and what the hacker is up against. According to the Web Applications Hacker's handbook, begin mapping by enumerating the applications' content and functionality in order to see what the application actually does. Some of the content will be easy to find and some will be hidden away and requires a little sleuthing to uncover. This is where the toolsets shine.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;In the typical application, the majority of content can be discovered by manually browsing. The basic approach is to start at the home page and navigating through all the links and menu options until you have created a 'site map'. If the application already has a site map, that makes it easier - start there. As you can see, manually mapping and creating a rigorous inspection is a daunting task.&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;&lt;strong&gt;Web Spidering&lt;/strong&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/div&gt;&lt;div&gt;Paros includes a tool called a web spider. This tool works by requesting a web page, parsing it for links and other content, then requesting those, continuously recursively until no new content is discovered. &lt;/div&gt;&lt;div&gt;&lt;br /&gt; &lt;/div&gt;&lt;div&gt;Spiders attempt to acheive a high level of coverage by even submitting random and preset variables in parsed HTML forms. The spider can then analyze the response for even more valuable information. This allows spiders to walk through wizards and other mulit stage functionalities. Some other spiders can also parse Javascript to extract even more URLs and content. &lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;To use Paros' Spider, you must first browse a site in a proxy session. Here is a screen shot once I've visited NFL.com:&lt;/div&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;a href="http://4.bp.blogspot.com/_TxRmi_-Zx_Y/SnRAUNwBTXI/AAAAAAAAACM/NE7cspZiSUo/s1600-h/ParosBrowse.jpg"&gt;&lt;img style="MARGIN: 0px 10px 10px 0px; WIDTH: 200px; FLOAT: left; HEIGHT: 150px; CURSOR: hand" id="BLOGGER_PHOTO_ID_5364983772137737586" border="0" alt="" src="http://4.bp.blogspot.com/_TxRmi_-Zx_Y/SnRAUNwBTXI/AAAAAAAAACM/NE7cspZiSUo/s200/ParosBrowse.jpg" /&gt;&lt;/a&gt; To spider using Paros, you have to first browse the site and it will start adding the history to the left hand tree view. Notice all of the click thru URLs that it captures!&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div&gt;Select one of the sites in the tree view, I'll select NFL.com and choose Analyse -&gt; Spider. Paros will bring up a dialog and start crawling...&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;You can tell Paros where to spider by directing the spider. The next steps that you can take is to manually and auto spider. See what the tool discovers and you don't. Then you can see if you can figure out why you couldn't discover some of the content that Paros does. Use Paros to discover valuable hidden content. Examine any error messages that are generated to see if you can figure out the technology behind the application. Hackers use this information to launch more sophisticated attacks.&lt;br /&gt;&lt;/div&gt;&lt;div&gt;That's it for this blog posting.  The next posting will continue with Paros spidering and examine more advanced features and usefulness of application spidering.  Now create those site maps and examine what you discover and what Paros discovers.&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;br /&gt;&lt;div&gt;&lt;/div&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-4071348644349872169?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/4071348644349872169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/08/paros-proxy-and-mapping-web-application.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4071348644349872169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4071348644349872169'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/08/paros-proxy-and-mapping-web-application.html' title='Paros Proxy and Mapping a Web application'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SnQ8Z6xvhtI/AAAAAAAAACE/k1fqrpf-kO4/s72-c/ParosHome.jpg' height='72' width='72'/><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-2855852080278660877</id><published>2009-07-03T05:57:00.000-07:00</published><updated>2009-07-03T06:31:56.899-07:00</updated><title type='text'>Hacking tools - HTTP Proxies</title><content type='html'>Finally, we get to the good stuff!  This post is another in the series of how to use freely available tools to hack web applications.  (White hat style!) &lt;br /&gt;&lt;br /&gt;The most useful tool in your hacking or pen testing arsenal will be the HTTP proxy server.  A proxy server is a server that mediates requests between  your browser and the destination web server.  When attacking web applications, the proxy server will allow you to intercept and modify all requests and responses.  HTTPS?  Even through https. &lt;br /&gt;&lt;br /&gt;The intercepting proxy lies at the heart of your tool suite.  To use it, you must configure your browser to use the proxy server to listen to a port on your machine.  The proxy tool is configured to listen to that port and receive all incoming and outgoing requests.  The coolest thing is that the proxy can 'stall' each message for review and modification by the user, along with other useful functions. &lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Configuring your browser to use a proxy server....&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;First, establish the port that your listening proxy will use for communications.  This is usually 8080.  Depending on which browser you use, the next steps will detail how you do this:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Internet Explorer - go to Tools -&gt; Internet options -&gt; Connections -&gt; Lan settings.  UNCHECK: "Automatically detect settings" and "Use Automatic configuration Script" boxes.  CHECK: "Use a Proxy Server for your LAN" box.  In the "Address" field, type in localhost.  In the Port field: enter the port number (usually 8080 as mentioned above).    Click the advanced button.  Make sure the applications you are targeting are not listed in the "Do not use proxy server for addresses beginning with...." box.  Click OK and you are done with configuration of the browser.&lt;/li&gt;&lt;li&gt;Firefox - go to Tools-&gt; Options -&gt; Connection settings.  Check the "Manual proxy configuration" option.  In the HTTP proxy field, enter localhost.  Also, enter 8080 in the port field.  Check "Use this proxy server for all protocols." box.  Make sure the applications you are targeting are not listed in the "No proxy for..." box.  Click OK and you are done with configuration of the browser.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;In addition to the core functionality that proxy servers provide as listed above, the proxy tool suites contain a wealth of other features to assist you in attacks.  &lt;/p&gt;&lt;ol&gt;&lt;li&gt;&lt;strong&gt;Configurable interception rules&lt;/strong&gt; - In a typical application, many of the request and responses are of little interest.  This funtion allows you to configure the proxy to show only messages that are of interest to  you.  You can configure such things as the target host, URL, method, resource type, and many more.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Web application spiders&lt;/strong&gt; - This funtion will allow you to specify a target host and then the spider will recursively request links, then follow those links until all of the site's content has been discovered.  Spiders are useful to map the target application.  We will get into more of application mapping in a future post.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Application scanners&lt;/strong&gt; - To be a great hacker, you must use automation to launch successful attacks.    Scanners can be used to scan target hosts checking for common vulnerabilities by sending a set of attack strings and analyzing the responses to identify signatures.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Manual requests&lt;/strong&gt; - sometimes it can be useful to send a single request and examine the response.  Especially if you probing a specific vulnerability and want to issue the same request over and over again.&lt;/li&gt;&lt;li&gt;&lt;strong&gt;Many other features!&lt;/strong&gt;&lt;/li&gt;&lt;/ol&gt;&lt;p&gt;That's it for this post.  My next post will examine the 3 top common tool suites that contain the features listed in this post. We will look at Paros, Burp and WebScarab.&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-2855852080278660877?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/2855852080278660877/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/07/hacking-tools-http-proxies.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2855852080278660877'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2855852080278660877'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/07/hacking-tools-http-proxies.html' title='Hacking tools - HTTP Proxies'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-3088162317594459495</id><published>2009-07-01T05:47:00.000-07:00</published><updated>2009-07-01T06:28:09.361-07:00</updated><title type='text'>A quick post about web application encoding schemes</title><content type='html'>Before we get into tools discussions, lets talk a little bit about character encoding schemes.  You may remember from my last post that as far as input into a web application goes, assume that all input is malicious and a developer must solidify the defenses to reject known bad content.  So, you, as a developer craft together a pretty good regex expression that you pass all of your input through.  As long as it's human readable character data, you should be OK, right?  Wrong. Attackers can manipulate a character encoding scheme used by an application to cause behavior that the developers did not intend.&lt;br /&gt;&lt;br /&gt;Let's look at the common character encodings:&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;URL Encoding&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;According to the Web Hacker's Handbook, URLs are permitted to contain only the printable characters in the US-ASCII character set.  Therefore, a encoding scheme for URLs was created in order to safely transmit any problematic characters within the extended ASCII character set.   For example, the ? and &amp;amp; characters in a URL has a special meanings related to request parameters.  If  you wanted to inject these characters as &lt;em&gt;data &lt;/em&gt;you will need to pass the encoding equivalent.&lt;br /&gt;&lt;br /&gt;Here are some common characters in URL encoding:&lt;br /&gt;&lt;br /&gt;%3d - =&lt;br /&gt;%20 - space&lt;br /&gt;%0a - new line&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Unicode Encoding&lt;/strong&gt;&lt;br /&gt;&lt;strong&gt;&lt;/strong&gt;&lt;br /&gt;This character encoding scheme is designed to support the writing systems all around the world.  It can support unusual characters in web applications.  16 bit Unicode encoding and UTF-8 are common unicode encodings. &lt;br /&gt;&lt;br /&gt;For example, in UTF-8 , each representation of a characters is a hexidecimal and preceded by a %.&lt;br /&gt;&lt;br /&gt;%c2%a9 - copyright&lt;br /&gt;&lt;br /&gt;When attacking web applications, unicode encoding can sometimes be used to bypass input validation mechanisms.  If an input filter blocks certain expressions, but the component that immediately is invoked after bypassing the filters understand unicode, then it could be possible to launch an attack.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;HTML Encoding&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This scheme is used to display problematic characters in HTML pages.  Some characters have special meanings that are used to define the structure of the document rather than content. &lt;br /&gt;&lt;br /&gt;For example, to use these characters as part of the document content, you must HTML encode them:&lt;br /&gt;&lt;br /&gt;&amp;quot;  -  "&lt;br /&gt;&amp;apos; - '&lt;br /&gt;&amp;amp;   -  &amp;amp;&lt;br /&gt;&lt;br /&gt;On top of this, any character can be HTML encoding using its ASCII code in decimal form:&lt;br /&gt;&lt;br /&gt;&amp;#34;   -   "&lt;br /&gt;&amp;#39;   -   '&lt;br /&gt;&lt;br /&gt;HTML encoding is used mainly in checking for XSS vulerabilities in web applications.  If an application does not HTML encode its responses, then the application could be vulnerable to XSS attacks.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;Base64 Encoding.&lt;/strong&gt;&lt;br /&gt;&lt;br /&gt;This encoding is used primarily for transferring binary information represented as printable ASCII characters.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-3088162317594459495?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/3088162317594459495/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/07/quick-post-about-web-application.html#comment-form' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/3088162317594459495'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/3088162317594459495'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/07/quick-post-about-web-application.html' title='A quick post about web application encoding schemes'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-1895691809339482862</id><published>2009-06-28T07:10:00.000-07:00</published><updated>2009-06-28T07:39:41.973-07:00</updated><title type='text'>Where do you start when hacking a web application?</title><content type='html'>Many of the web applications out there today explain that they are secure.  According to the Web Hacker's Handbook, many sites tout their SSL as their claim to be secure.  Of course, SSL is good - it prevents eavesdropping and keeps your content safe between browser and server over the Internet. &lt;br /&gt;&lt;br /&gt;The fundamental security problem with most web applications is that the input is not under direct control of the application.  Users all over the world can submit any arbitrary inputs to the application.  The developers of the target application must therefore assume that each piece of input is malicious.  The list of the &lt;a href="http://www.sans.org/top25errors/?cat=top25"&gt;Top 25 Most Dangerous Programming Errors &lt;/a&gt;compiled by the SANS institute and the MITRE organization in January 2009 describe the top 2 errors that revolve around malicious input and improper escaping of outputs.&lt;br /&gt;&lt;br /&gt;The simple fact is that any user anywhere in the world can craft a special string to any publically accessible application that can wreak havoc for the organization.  Couple that with the fact that the user doesn't have to use a web browser to interact with the application.  There are numerous tools out there that are freely downloadable that can interact with web applications, even trapping the request from the client before it gets to the server and provides the attacker the ability to modify certain parameters that can totally bypass any validations.&lt;br /&gt;&lt;br /&gt;Next post will get into the beginnings of how to use tools to completely map a target application.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-1895691809339482862?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/1895691809339482862/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/06/where-do-you-start-when-hacking-web.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/1895691809339482862'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/1895691809339482862'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/06/where-do-you-start-when-hacking-web.html' title='Where do you start when hacking a web application?'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-4749799399956402045</id><published>2009-06-16T18:16:00.000-07:00</published><updated>2009-06-16T18:49:48.923-07:00</updated><title type='text'>Changing direction....</title><content type='html'>I decided that I needed to stop the Metasploit experimentation and go back to the basics of web application security.  The Raleigh &lt;a href="http://www.owasp.org/index.php/Main_Page"&gt;OWASP&lt;/a&gt; chapter got together this June to talk about how to use certain software that is useful in performing network penetration testing and I thought that would be a great place to start.  I am going to start a blog series on using these tools and techniques to try and break your or someone else's web application defenses.&lt;br /&gt;&lt;br /&gt;On our OWASP listserv someone mentioned a book that I looked into and as a newbie I think it is pretty awesome.  It is called &lt;span style="font-style: italic;"&gt;The Web Application Hacker's Handbook.  &lt;/span&gt;Here is the information from Amazon:&lt;br /&gt;&lt;br /&gt;&lt;iframe src="http://rcm.amazon.com/e/cm?t=rtpsecser-20&amp;amp;o=1&amp;amp;p=8&amp;amp;l=as1&amp;amp;asins=0470170778&amp;amp;fc1=000000&amp;amp;IS2=1&amp;amp;lt1=_blank&amp;amp;m=amazon&amp;amp;lc1=0000FF&amp;amp;bc1=000000&amp;amp;bg1=FFFFFF&amp;amp;f=ifr" style="width: 120px; height: 240px;" marginwidth="0" marginheight="0" scrolling="no" frameborder="0"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;br /&gt;I didn't buy it from Amazon but I was able to utilize my Safari Books online account to start reading the book.  According to the book's introduction, this book is a practical guide to discovering and exploiting security flaws within web applications.&lt;br /&gt;&lt;br /&gt;What I like about this book is the way the authors describe the process of hacking into logical steps.  They start out by telling you why mapping your target application is important.  Then they tell you in detailed steps how to do it.  In addition, they list the tools that assist you in performing the tasks.  The more experienced members of the OWASP group  have told me about these same tools as listed in the book so they seem to be up to date and topical. &lt;br /&gt;&lt;br /&gt;In more postings, I will get into how I started using this book and which tools that I have downloaded and installed.  Hopefully, Metasploit will make more sense to me once I have a chance to get through this book!&lt;br /&gt;&lt;br /&gt;In a related note, I thought it would be a good idea to spend the summer before school starts this semester studying for the CISSP certification exam.  It costs around $500 to sit and the next test is for November.  I would have to take the associate exam since I don't have the required professional security experience but it would be good for my career to pass it.  Stay tuned.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-4749799399956402045?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/4749799399956402045/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/06/changing-direction.html#comment-form' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4749799399956402045'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/4749799399956402045'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/06/changing-direction.html' title='Changing direction....'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-1411287246888892884</id><published>2009-04-21T07:24:00.000-07:00</published><updated>2009-04-21T07:36:16.191-07:00</updated><title type='text'>My first published paper!</title><content type='html'>The good people at &lt;a href="http://www.infosecwriters.com/"&gt;InfosecWriters.com &lt;/a&gt;have announced that they will publish my research paper on the SANS/CWE Top 25 Most Dangerous Programming Errors.  Click &lt;a href="http://www.sans.org/top25errors/"&gt;here &lt;/a&gt;for more information on this list from the SANS Website.&lt;br /&gt;&lt;br /&gt;I wrote this paper for my Spring 2009 grad school class at ECU as we do pretty much every semester especially for Dr. Lunsford's class.  He always asks us to submit for publishing and this time they latched onto mine.&lt;br /&gt;&lt;br /&gt;Here is a link to my entry: &lt;a href="http://www.infosecwriters.com/texts.php?op=display&amp;amp;id=646"&gt;http://www.infosecwriters.com/texts.php?op=display&amp;amp;id=646&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-1411287246888892884?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/1411287246888892884/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/04/my-first-published-paper.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/1411287246888892884'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/1411287246888892884'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/04/my-first-published-paper.html' title='My first published paper!'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-6428929174514983824</id><published>2009-04-09T18:05:00.001-07:00</published><updated>2009-04-10T06:18:21.748-07:00</updated><title type='text'>Metasploit - downloading and installing Metasploit framework for a newbie.</title><content type='html'>&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://3.bp.blogspot.com/_TxRmi_-Zx_Y/Sd6b2sf8oyI/AAAAAAAAAB8/FeJlBtf1Qws/s1600-h/MetasploitImage.png"&gt;&lt;img id="BLOGGER_PHOTO_ID_5322863173558903586" style="FLOAT: left; MARGIN: 0pt 10px 10px 0pt; WIDTH: 200px; CURSOR: pointer; HEIGHT: 45px" alt="" src="http://3.bp.blogspot.com/_TxRmi_-Zx_Y/Sd6b2sf8oyI/AAAAAAAAAB8/FeJlBtf1Qws/s200/MetasploitImage.png" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;I'm doing a small presentation on the Metasploit framework for my Advanced Network Security course at ECU and I thought I'd put my experiences down here.&lt;br /&gt;&lt;br /&gt;Getting started, I went to the &lt;a href="http://www.metasploit.com/framework/support"&gt;Metasploit's framework site on the support side &lt;/a&gt;and downloaded the user guide (PDF format). This is a pretty good user's guide, about 30 pages long, and easy to read. It tells me that since I am a Windows user, I need to download the last stable Windows version. I see that the current version is an EXE file that lists it at 3.2. I had read that version 3.2 came out in March and in Macworld, they say that two people worked really hard to move the best of the Windows exploits to the Mac. It seems that the Windows version is a little better (probably since there are so many exploits on that platform!)&lt;br /&gt;&lt;br /&gt;First problem! Avast, my anti virus software, flags the downloading file as containing a few Trojans. I immediately stopped downloading and went to Google to see if I could find some information. I saw a bunch of hits for Avast and Metasploit. I selected and read a few and basically it sums up to &lt;strong&gt;:&lt;/strong&gt;there aren't any trojans in metasploit.&lt;br /&gt;&lt;br /&gt;I stopped Avast and redownloaded the file trepidly! I finished the download and clicked the installer file to install the framework. By that time, I had re-enabled the Avast software. During installation of Metasploit, Avast agained complained a few times about Trojans and I dismissed them (about 5 or so alerts in total).&lt;br /&gt;&lt;br /&gt;Start Metasploit launched a DOS Window that scrolled a lot of files, for what seemed 3 minutes. Finally I got the splash screen and Metasploit Framework GUI v3.2.&lt;br /&gt;&lt;br /&gt;More information next as I play around and see how it works. I'll also report if I ever find any Trojans. I will run Spybot and Adaware also.&lt;br /&gt;&lt;br /&gt;I tried to list a few books from Amazon on using Metasploit but the links failed this morning when I looked at it.  Deleting now....&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-6428929174514983824?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/6428929174514983824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/04/metasploit-downloading-and-installing.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6428929174514983824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6428929174514983824'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/04/metasploit-downloading-and-installing.html' title='Metasploit - downloading and installing Metasploit framework for a newbie.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://3.bp.blogspot.com/_TxRmi_-Zx_Y/Sd6b2sf8oyI/AAAAAAAAAB8/FeJlBtf1Qws/s72-c/MetasploitImage.png' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-735737254072691366</id><published>2009-04-07T06:39:00.000-07:00</published><updated>2009-04-07T06:46:15.278-07:00</updated><title type='text'>New OWASP Cheetsheets.</title><content type='html'>The Open Web Application Security Project has released two cheatsheets aimed at helping development teams thwart XSS and SQL injection attacks.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;XSS : &lt;a href="http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet"&gt;http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet&lt;/a&gt;&lt;a href="http://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;SQL Injection: &lt;a href="http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet"&gt;http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet&lt;/a&gt;&lt;br /&gt;&lt;a href="http://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet"&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The cheatsheets explain how proper output encoding goes a long way to mitigating these types of attacks. And SQL injection is up to about 30% of all malicious attacks on web applications so any protection against these attacks will be worth it to your project.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-735737254072691366?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/735737254072691366/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/04/new-owasp-cheetsheets.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/735737254072691366'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/735737254072691366'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/04/new-owasp-cheetsheets.html' title='New OWASP Cheetsheets.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-413519908634990135</id><published>2009-03-20T06:47:00.000-07:00</published><updated>2009-03-20T06:56:58.036-07:00</updated><title type='text'>The best defense is information.</title><content type='html'>While researching the new version of &lt;a href="http://www.metasploit.com"&gt;Metasploit&lt;/a&gt; I came across a good blog post there that kind of sums up my term paper for school this semester - &lt;strong&gt;The best defense is information.&lt;/strong&gt;  Matter of fact, that is one of my best lessons or goals from my paper on the SANS / CWE Top 25 most dangerous programming errors.  Keep up , with podcasts, &lt;a href="http://www.slashdot.org"&gt;SlashDot&lt;/a&gt;, blogs, etc.  &lt;br /&gt;&lt;br /&gt;This blog posting on Metasploit's site talks about the recent Adobe 0 day exploits last February.  The poster says that security providers by and large depend alot on public information to keep users safe.  &lt;br /&gt;&lt;br /&gt;&lt;a href="http://metasploit.com/blog/#blog-0"&gt;http://metasploit.com/blog/#blog-0&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-413519908634990135?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/413519908634990135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/03/best-defense-is-information.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/413519908634990135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/413519908634990135'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/03/best-defense-is-information.html' title='The best defense is information.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-6348795832163454886</id><published>2009-03-14T06:51:00.000-07:00</published><updated>2009-03-14T06:54:05.955-07:00</updated><title type='text'>Securing your email.</title><content type='html'>Encrypting your email.&lt;br /&gt;&lt;br /&gt;Here is a good article on how to encrypt your emails:&lt;br /&gt;&lt;a href="http://www.wi-fiplanet.com/tutorials/article.php/3786446"&gt;http://www.wi-fiplanet.com/tutorials/article.php/3786446&lt;/a&gt;.  Here is a link to one of my favorite podcast transcripts where they also talk about email security: &lt;a href="http://www.grc.com/sn/sn-182.htm"&gt;http://www.grc.com/sn/sn-182.htm&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;Make sure if you use Gmail, make sure to use https rather than http.  I have found that if you go to &lt;a href="http://www.gmail.com/"&gt;www.gmail.com&lt;/a&gt;, it will put you in SSL for logon only.  Once, you log in, you go back to plain old http.&lt;br /&gt;&lt;br /&gt;If you go to &lt;a href="https://www.gmail.com/"&gt;https://www.gmail.com&lt;/a&gt; after you log in, you stay in https.  I don't know why that's not the default.  Also, I am looking forward to the day where all email systems, including Outlook, doesn't have PGP built in tranparentlly.  If I sign up for an email system, the first things that should be done is to have me sign up for a certificate.&lt;br /&gt;&lt;br /&gt;Lastly, if the contents of the email is really sensitive, encrypt the attachments with a tool such as TrueCrypt, send the email and then call your recipient and give them the key to decrypt.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-6348795832163454886?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/6348795832163454886/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/03/securing-your-email.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6348795832163454886'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6348795832163454886'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/03/securing-your-email.html' title='Securing your email.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-2540989333664611304</id><published>2009-02-13T06:57:00.000-08:00</published><updated>2009-03-18T11:02:46.617-07:00</updated><title type='text'>Notes on first 9 CWE/Sans errors.</title><content type='html'>Note from Fred:  Please forgive the formatting on this post...I copied and pasted from a Word doc to share with a friend of mine and the formatting didn't translate very well.  I don't want to delete the post and too lazy to reformat everything so I'm leaving as-is. &lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1) CWE20- Improper input validation.&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – Low&lt;br /&gt;iii. Frequency - often&lt;br /&gt;b. The number 1 killer of healthy software&lt;br /&gt;c. SSL does not protect you from some injection attacks&lt;br /&gt;d. Validate your input. Use an “accept known good” strategy – reject all input that doesn’t conform and assume all input is malicious&lt;br /&gt;e. For example:&lt;br /&gt;i. if you have a numeric identifier and you shouldn’t allow alphanumeric&lt;br /&gt;ii. Entering a negative number instead positives and a bank balance is credited instead of deducted&lt;br /&gt;iii. Passing in a size into a method that creates an array. If the size = 0, an array of length 0 would be created and if any items are attempted to be added to the array, an exception would occur.&lt;br /&gt;f. Input can arrive via Form fields or input parameters on web service clients&lt;br /&gt;g. Many common vulnerabilities can be thwarted using proper validations&lt;br /&gt;h. Applicable to all computer languages&lt;br /&gt;i. Likelihood of occurrence – High&lt;br /&gt;j. XSS (CWE-79) or SQL Injection (CWE-89) are 2 consequences in a failed input mechanism.&lt;br /&gt;k. Solution? Validation framework (Spring) combined with client side UI validation frameworks such as you get from a JS library like Dojo or GWT or Flex.&lt;br /&gt;i. Apache Commons Validator (&lt;a href="http://commons.apache.org/validator/"&gt;http://commons.apache.org/validator/&lt;/a&gt;) – which is what I think Struts used&lt;br /&gt;ii. Try to check client side as much as possible to reduce server processing&lt;br /&gt;iii. Ajax libraries – should look at these calls also and provide server side checks since these can open an application up to DOM based XSS attacks. A lot of times, Ajax libraries gather data and replace a DIV tag with data. If an attacker can inject some javascript in there or similar code, then XSS will be a problem.&lt;br /&gt;l. Validate entries as separate entities and then validate combined. Sometimes individual entities pass but when combined it can transform into something else that doesn’t pass.&lt;br /&gt;m. Code examples:&lt;br /&gt;i. Check on client via regular expression, javascript, Flex properties, JSTL&lt;br /&gt;ii. Check on server side via validation frameworks like Spring, PHP framework&lt;br /&gt;iii. You have a form field that is SSN: make sure it has 3 digits, 2 digits and 3 digits: \d{3}-\d{2}-\d{4}&lt;br /&gt;iv. Only allow alphanumeric characters with 40 characters in length.&lt;br /&gt;n. Ff&lt;br /&gt;o. Ff&lt;br /&gt;p.&lt;br /&gt;2) CWE-116 - &lt;a href="http://cwe.mitre.org/top25/#CWE-116"&gt;http://cwe.mitre.org/top25/#CWE-116&lt;/a&gt; – Improper encoding or escaping of output&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – high&lt;br /&gt;ii. Remedy Cost – low&lt;br /&gt;iii. Frequency – often&lt;br /&gt;b. Likelihood of exploit – Very high&lt;br /&gt;c. Root of most injection attacks. This is due to the fact that the nature of injection involves the violation of structured messages.&lt;br /&gt;d. Attack: Attacker modifies commands sent to other components inserting malicious commands&lt;br /&gt;e. Solution: When program generates output to other components in the form of messages such as queries or requests, it needs to separate control information from metadata.&lt;br /&gt;f. Caution: be care in Web applications of this type of attacks where encoding can come into play for a variety of inputs: URIs, CSS attributes or HTML body.&lt;br /&gt;g. Examples:&lt;br /&gt;i. Getting a variable from the request and display on a webpage without properly escaping. String email = request.getParamter(‘email’); Email = email;&lt;br /&gt;ii. Replacing characters with %7c (looking for and ; characters can help prevent chain-of-command attacks since OS’s can separate commands by these characters.)&lt;br /&gt;iii. Replacing &amp;lt; or looking for these types of characters in inputs.&lt;br /&gt;iv. Wikis can be especially vulnerable since they allow a subset of HTML characters as input for formatting. Use strict whitelists for this type of checking.&lt;br /&gt;v. Input validation is not always sufficient. In the case of SQL injection, the last name O’Reilly would pass initial validation since it is a common last name. However, the “’” character would be stripped since it is a common SQL injection character but if this is done, the last name is altered and that may not be sufficient.&lt;br /&gt;h. ??? – Look at Java encoding and escaping. For example, when inserting text into XML or HTML code, the HTML must be preserved so you would put in &amp;lt; instead of &lt; href="http://cwe.mitre.org/top25/#CWE-89"&gt;http://cwe.mitre.org/top25/#CWE-89&lt;/a&gt; – SQL Injection&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – high&lt;br /&gt;ii. Remedy Cost - low&lt;br /&gt;iii. Frequency – often&lt;br /&gt;b. Likelihood of exploit – Very high&lt;br /&gt;c. Targets data rich applications that store and retrieve data from a database.&lt;br /&gt;d. This attack results in the 3 classic security characteristics:&lt;br /&gt;i. Confidentiality – if an attacker can read your sensitive DB information&lt;br /&gt;ii. Authentication – an attacker can use these attacks to assume the role of a user, even more devastating if user has admin privs&lt;br /&gt;iii. Integrity – If attacker can modify data as well as read, then the data can be changed resulting in low integrity.&lt;br /&gt;e. Solutions: ORMs such as Hibernate that build SQL based upon the HQL that you build.&lt;br /&gt;f. Solution: use parameterized queries&lt;br /&gt;g. Solution: use stored procs.&lt;br /&gt;h. Solution: replace ‘ with “&lt;br /&gt;i. Solution:reduce dynamic generations of SQL query strings. If you do make sure to scrub parameters supplied to DAO classes to reduce injection attacks. Since the DAOs execute on the server side, you don’t have to worry about CWE 602&lt;br /&gt;j. Proper output encoding is best defense for SQL injection&lt;br /&gt;k. Examples:&lt;br /&gt;i. Take for example the following SQL: SELECT * FROM ITEMS WHERE OWNER= ? AND ITEMNAME = ?&lt;br /&gt;ii. If the user enters: name’ or ‘a’=’a for itemname then the query becomes: SELECT * FROM ITEMS WHERE OWNER=’wiley’ AND ITEMNAME = ‘name’ or ‘a’=’a’&lt;br /&gt;l. Java’s security traps have SQL injection at the top of the list. Researchers are using the Findbugs Eclipse plug in to scan for vulnerabilities&lt;br /&gt;&lt;br /&gt;Think java is not SQL injection resistant?&lt;br /&gt;&lt;br /&gt;rs = stmt.executeQuery(“select * from users where uname = ‘” + uName+ “’”);&lt;br /&gt;&lt;br /&gt;4) CWE-79 - &lt;a href="http://cwe.mitre.org/top25/#CWE-79"&gt;http://cwe.mitre.org/top25/#CWE-79&lt;/a&gt; – Failure to preserve web page structure (XSS)&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – high&lt;br /&gt;ii. Remedy Cost - low&lt;br /&gt;iii. Frequency - often&lt;br /&gt;b. Duplicating of client side validations on the server side seems to be a common remedy.&lt;br /&gt;c. Most prevalent and dangerous vulnerabilities&lt;br /&gt;d. Software developer discipline is very important to thwart XSS attacks&lt;br /&gt;e. Attackers can inject JS and other code directly into the webpages that you generate&lt;br /&gt;f. CWE116 – using proper output encoding can aid in XSS attacks. Most effective solution&lt;br /&gt;g. Solution: set UTF-8 for your browser encoding so the browser doesn’t have to guess which encoding to use and allow yourself open to XSS&lt;br /&gt;h. Solution/Example: (stored XSS) we have a web app that contains text areas that take free-form comments, etc. I can enter the following text: “&lt;script&gt; alert(“hello”);&lt;/script&gt;&lt;br /&gt;” and save. Once I bring up that record again, it brings the text into the web page and an alert box will pop up that says “Hello”.&lt;br /&gt;i. Solution: (Reflected XSS) – attacker emails or posts a link to a site that contains malicious commands in the URL. When the user visits the link, the offending code can cause cookie or other private information to transfer to the attacker.&lt;br /&gt;j. Solution: Practice the least privileges for users. If a superuser is subjected to a stored XSS attack, the dynamic content could provide very sensitive data from the superuser to the attacker.&lt;br /&gt;k. Solution: scrub HTTP request parameters against white lists to detect common XSS exploits coming in from a URL. For example, if a web page accepts a user id from request parameters, if it contains standard text, that’s OK. However, if an attacker adds in source code or Javascript, the web page will not display the text, but execute the script.&lt;br /&gt;l. Research: this blog: &lt;a href="http://raibledesigns.com/rd/entry/java_web_frameworks_and_xss"&gt;http://raibledesigns.com/rd/entry/java_web_frameworks_and_xss&lt;/a&gt; details research on Java frameworks to see how they do in preventing XSS attacks.&lt;br /&gt;i. Solution: instead of using JSP EL (expression language) use JSTL such as c:out. Also see: note: still if a developer scrubs outkput for HTML, javascript, this can be prevented. &lt;a href="http://www.owasp.org/index.php/J2EE_Bad_Practices:_JSP_Expressions"&gt;http://www.owasp.org/index.php/J2EE_Bad_Practices:_JSP_Expressions&lt;/a&gt;&lt;br /&gt;ii. Problems reported with Spring MVC (form:input / form:error) appears to be fixed&lt;br /&gt;try { firstname = request.getParameter("firstname"); }&lt;br /&gt;catch (Exception e) { e.printStackTrace(); }&lt;br /&gt;userName = firstname;&lt;br /&gt;...&lt;br /&gt;pw.print(" Thanks for your feedback, " + userName + "! ");&lt;br /&gt;This code allows an attacker to spit back code to the browser. For example:&lt;script&gt;sendDataToMotherShip()&lt;/script&gt;&lt;br /&gt;&lt;br /&gt;5) CWE 78 - &lt;a href="http://cwe.mitre.org/top25/#CWE-78"&gt;http://cwe.mitre.org/top25/#CWE-78&lt;/a&gt; Failure to preserve OS command structure (OS Command injection)&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – Medium&lt;br /&gt;iii. Frequency - often&lt;br /&gt;b. Allows attackers to execute unexpected, dangerous commands directly to the OS.&lt;br /&gt;c. Leads to vulnerabilities in which the attacker does not direct access to the OS&lt;br /&gt;d. Exacerbated if rule of least privilege is not followed&lt;br /&gt;e. Proper encoding that supports OS commands can lessen damages&lt;br /&gt;f. Java example: use the runtime.exec command to run OS commands:&lt;br /&gt;initCmd = System.getProperty(“init_cmd”);&lt;br /&gt;runtime.exec(initCmd);&lt;br /&gt;6) CWE 319 - &lt;a href="http://cwe.mitre.org/top25/#CWE-319"&gt;http://cwe.mitre.org/top25/#CWE-319&lt;/a&gt; Cleartext transmission of sensitive information&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – Medium&lt;br /&gt;iii. Frequency - Sometimes&lt;br /&gt;b. Susceptible to sniffers when you send sensitive information across a network&lt;br /&gt;c. Solution: encrypt&lt;br /&gt;d. Solution: Use SSL from beginning to end, not just the initial login page&lt;br /&gt;e. More info: Security Now podcasts on cryptography&lt;br /&gt;f. Tools – TrueCrypt&lt;br /&gt;g. From OWASP:&lt;br /&gt;i. Applications frequently fail to encrypt network traffic when it is necessary to protect sensitive communications. Encryption (usually SSL) must be used for all authenticated connections, especially Internet-accessible web pages, but backend connections as well. Otherwise, the application will expose an authentication or session token. In addition, encryption should be used whenever sensitive data, such as credit card or health information is transmitted. Applications that fall back or can be forced out of an encrypting mode can be abused by attackers.&lt;br /&gt;ii. Common errors include the use of weak or deprecated SSL ciphers which can be broken and subject to man in the middle attacks. Most web servers, by default, allow insecure SSL ciphers such as SSLv2&lt;br /&gt;h.&lt;br /&gt;7) CWE 352 - &lt;a href="http://cwe.mitre.org/data/definitions/352.html"&gt;http://cwe.mitre.org/data/definitions/352.html&lt;/a&gt; Cross - site Request Forgery&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – High&lt;br /&gt;iii. Frequency - Often&lt;br /&gt;b. Attacker tricks a user into activating a request that goes to another site. It looks like the user is the one who initiated the request when in reality it was the attacker. If there is no way to authenticate a request was intentionally sent by a user, it will be possible for an attacker to trick the client into submitting a request to the web server.&lt;br /&gt;c. May not seem like a big deal but the attacker can assume all authority on a particular site that the user has&lt;br /&gt;d. Especially handy if the user has admin privs – Employ rule of least privilege&lt;br /&gt;e. XSS worms that stampede through very large websites in minutes is CSRF combined with XSS&lt;br /&gt;f. CSRF – can be done with image loads, via a URL, or XMLHttpRequest&lt;br /&gt;g. Results? – data disclosures, unintentional code execution.&lt;br /&gt;h. Solution: ensure your defenses are up to date to thwart XSS attacks CWE79&lt;br /&gt;i. Example: Fusion News (&lt;a href="http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-1703"&gt;http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2004-1703&lt;/a&gt;) example allows attackers to add user accounts. If an admin is logged in, a comment in an img tag calls index.php tag that creates a new account each time the admin goes to the page with the img tag&lt;br /&gt;j. Solution: Do not use GET requests for any request that changes state&lt;br /&gt;8) CWE 362 – Race Conditions &lt;a href="http://cwe.mitre.org/data/definitions/362.html"&gt;http://cwe.mitre.org/data/definitions/362.html&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – Med to High&lt;br /&gt;iii. Frequency - Sometimes&lt;br /&gt;b. Occurs in multi threaded applications&lt;br /&gt;c. Denial of service and data corruption are normal attacks&lt;br /&gt;d. Use thread safe capabilities&lt;br /&gt;e. Avoid shared resources across threads&lt;br /&gt;f. Solution: avoid threading for other multitasking solutions like queues.&lt;br /&gt;9) CWE 209 – Error message information leak - &lt;a href="http://cwe.mitre.org/data/definitions/209.html"&gt;http://cwe.mitre.org/data/definitions/209.html&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – Low&lt;br /&gt;iii. Frequency - Often&lt;br /&gt;b. Using chatty error messages could disclose secrets to attackers&lt;br /&gt;c. Solution: ensure error messages only contain the minimal amount of information&lt;br /&gt;d. Solution: log more detailed information in log files. Be careful that log files cannot be read by attackers. Don’t log passwords in log files&lt;br /&gt;e. Avoid messaging that may tip off attackers such as “password is invalid”. That could tip the attacker that the userid is valid and give them more information.&lt;br /&gt;f. A SQL injection attack may not succeed but error information displayed as a result could give the attacker more information to launch a more focused attack&lt;br /&gt;g. Example: Java – try catch blocks that System.out.println the actual message that goes back to the screen in an error message. Handle exceptions internally&lt;br /&gt;Risky Resource Management.&lt;br /&gt;10) Failure to constrain operations with the bounds of a memory buffer - &lt;a href="http://cwe.mitre.org/top25/index.html#CWE-119"&gt;http://cwe.mitre.org/top25/index.html#CWE-119&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – Low&lt;br /&gt;iii. Frequency – Often&lt;br /&gt;b. Buffer overflows&lt;br /&gt;c. Java is supposedly note susceptible to BO but applets and other attached technologies like Java Web start and more importantly the Java runtime environment are.&lt;br /&gt;i. Java simply does not provide any way to store data into memory that has not been properly allocated.&lt;br /&gt;d. Problems when software written in C/C++ are more susceptible&lt;br /&gt;11) CWE-642 – External control of critical state data &lt;a href="http://cwe.mitre.org/top25/#CWE-642"&gt;http://cwe.mitre.org/top25/#CWE-642&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – Medium&lt;br /&gt;iii. Frequency – Often&lt;br /&gt;b. Revolves around the persisting of data not saved into a database but in other stores:&lt;br /&gt;i. Cookies&lt;br /&gt;ii. Hidden form fields&lt;br /&gt;iii. Profiles&lt;br /&gt;iv. Configuration files&lt;br /&gt;v. Registry keys&lt;br /&gt;vi. Input parameters on the URL&lt;br /&gt;c. Apache Tomcat servers if not configured correctly can suffer from this attack.&lt;br /&gt;i. Disable shutdown port&lt;br /&gt;ii. Remove example applications that ship with Tomcat installation&lt;br /&gt;iii. Force Tomcat to not cache content requiring authentication&lt;br /&gt;d. Stateless protocol such as HTTP, if you want to persistent stateful information across pages, the data must be stored somewhere. Therefore, it exposes it to a malicious attacker.&lt;br /&gt;e. Solution: do not store information on the client without encryption and integrity checking.&lt;br /&gt;f. Solution: store state information only on the server side&lt;br /&gt;g. Solution: use a framework that maintains state information for you&lt;br /&gt;h. Potential attacks:&lt;br /&gt;i. Shopping cart is affected when price modification occurs to a hidden form field&lt;br /&gt;i. Solution implementation: Use Spring Web Flow / MVC coupled with Acegi Security to implement remember-me authentication&lt;br /&gt;12) CWE 73 – External Control of File Name or Path &lt;a href="http://cwe.mitre.org/top25/#CWE-73"&gt;http://cwe.mitre.org/top25/#CWE-73&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – Medium&lt;br /&gt;iii. Frequency – Often&lt;br /&gt;b. When using outside or user supplied input to construct file names, an attacker can use combinations of “../” to make the system navigate outside of the intended directory.&lt;br /&gt;c. If you let a user specify an external URL from which your application will download code, this sets up for worms and Trojans.&lt;br /&gt;d. Solution: run only as lowest level privileged user.&lt;br /&gt;e. Use whitelists to that limit characters such as “../”&lt;br /&gt;f. Example:&lt;br /&gt;g. Af&lt;br /&gt;h.&lt;br /&gt;13) CWE 426 – Untrusted search path &lt;a href="http://cwe.mitre.org/top25/#CWE-426"&gt;http://cwe.mitre.org/top25/#CWE-426&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Low&lt;br /&gt;ii. Remedy Cost – Medium&lt;br /&gt;iii. Frequency – Rarely&lt;br /&gt;b. When locating critical system resources when running applications, for example properties files or code libraries, an attacker tries to modify the path to point to their versions. This could lead to malicious activities.&lt;br /&gt;c. Solution: when running another program or accessing a file, use a fully qualified path name.&lt;br /&gt;d. Solution: be careful to avoid system PATH variables when executing external programs or config files&lt;br /&gt;e. Sanitize directory or folder paths when doing these activities&lt;br /&gt;f. Example: if you run a program to access $PATH/file/program.sh and the attacker modifies PATH, then they could point to their application and run it with raised privileges.&lt;br /&gt;14) CWE 94 – Failure to control generation of code (code injection) –&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – High&lt;br /&gt;iii. Frequency – Sometimes&lt;br /&gt;b. If you have any code that dynamically generates code, an attacker can inject their own to alter the intended control flow of the software.&lt;br /&gt;c. If you have an application that accepts as input actual source code, then you set yourself up for this attack.&lt;br /&gt;d. Important to note that all injections differs from buffer overflows since buffer overflows require some other further issue to gain execution.&lt;br /&gt;e. Example – by using encoding characters, an attacker could inject code where a programmer would only expect a string.&lt;br /&gt;15) CWE 494 – Download of code without integrity check &lt;a href="http://cwe.mitre.org/top25/#CWE-494"&gt;http://cwe.mitre.org/top25/#CWE-494&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – Medium to High&lt;br /&gt;iii. Frequency – Rarely&lt;br /&gt;b. When downloading code to execute from a remote location, make sure to verify the origin and integrity of code&lt;br /&gt;c. Attacker can use DNS spoofing, compromise the host server, or modify the code in transit.&lt;br /&gt;d. Solution: use encrypted channels when accessing remote code, for example thru the Java URL objects.&lt;br /&gt;e. If your software provides a solution to download code, make sure to digitally sign your code. I think even in Vista, you can do this to prevent the nasty Unauthorized message that makes people not trust your software.&lt;br /&gt;f. Could this become more important of have higher rates of frequency for SaaS or Mobile computing?&lt;br /&gt;16) CWE 404 – Improper resource release or shutdown &lt;a href="http://cwe.mitre.org/top25/#CWE-404"&gt;http://cwe.mitre.org/top25/#CWE-404&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – Medium&lt;br /&gt;iii. Frequency – Rarely&lt;br /&gt;b. Likelihood of exploit – Low to medium&lt;br /&gt;c. Solution: use technologies that automatically garbage collect.&lt;br /&gt;d. Solution: be sure to clean up unneeded cookie data. Is it possible to delete cookies?&lt;br /&gt;e. Solution: be sure to clean up yourself by deleting unneeded records in databases, freeing unneeded resources, setting objects to null.&lt;br /&gt;i. In Java, in DAO’s, make sure to use Spring JDBC to clean up for you or make sure to free DB connections from the pools. Otherwise, users can be denied access due to exhausted connections.&lt;br /&gt;f. This is a common problem in general system performance but an attacker could get a resource leak to intentionally happen, then they could launch a DoS attack.&lt;br /&gt;g. Apache Tomcat is vulnerable here – If you don’t configure your tomcat logging appropriately via logging.properties, then you could fill up catalina.out and degregade performance.&lt;br /&gt;17) CWE 665 – Improper Initialization - &lt;a href="http://cwe.mitre.org/top25/#CWE-665"&gt;http://cwe.mitre.org/top25/#CWE-665&lt;/a&gt;&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – Medium&lt;br /&gt;ii. Remedy Cost – Low&lt;br /&gt;iii. Frequency – Sometimes&lt;br /&gt;b. Likelihood of exploit – medium&lt;br /&gt;c. Problem: software the fails to properly initialize variables that lead to garbage or unintended values in variables when first using them.&lt;br /&gt;d. Solution: use languages that must provide initializers like Java.&lt;br /&gt;e. Solution: Use Eclipse IDE or similar when coding. The code assist tools contained within these modern IDEs alert programmers to conditions such as these. The compiler will not allow you to move forward until variables are properly initialized.&lt;br /&gt;f. Solution: follow good programming practices about declaring and initializing variables just before first use. Don’t declare all variables at the top of the code block.&lt;br /&gt;18) CWE 682 – Incorrect calculations&lt;br /&gt;a. Summary&lt;br /&gt;i. Prevalence – High&lt;br /&gt;ii. Remedy Cost – Low&lt;br /&gt;iii. Frequency – Often&lt;br /&gt;b. Likelihood of exploit – high&lt;br /&gt;c.&lt;br /&gt;19)&lt;br /&gt;20)&lt;br /&gt;21) Action items:&lt;br /&gt;a. Maybe talk about last 3 as a group&lt;br /&gt;b. Mike to come up with examples for the last 3&lt;br /&gt;c. Code snippets&lt;br /&gt;d. Config files files examples&lt;br /&gt;e. Cookie setting examples&lt;br /&gt;f. Send me some branding stamps for OWASP. Powerpoint branding&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-2540989333664611304?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/2540989333664611304/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/02/notes-on-first-9-cwesans-errors.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2540989333664611304'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2540989333664611304'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/02/notes-on-first-9-cwesans-errors.html' title='Notes on first 9 CWE/Sans errors.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-2574402882749472077</id><published>2009-02-03T07:55:00.001-08:00</published><updated>2009-02-03T08:03:08.869-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top 25 Programming errors'/><category scheme='http://www.blogger.com/atom/ns#' term='SANS'/><category scheme='http://www.blogger.com/atom/ns#' term='IT Security'/><title type='text'>Mysterious testing tools revolving around Sans Top 25 error list</title><content type='html'>I missed this blurb on the SANS website earlier but while I was re-reading it caught my eye. &lt;br /&gt;&lt;br /&gt;According to &lt;a href="http://www.sans.org/top25errors/#s2"&gt;http://www.sans.org/top25errors/#s2&lt;/a&gt; , "one of the leading software testing vendors is announcing that its software will be able to test for and report on the presence of a large fraction of the Top 25 Errors."&lt;br /&gt;&lt;br /&gt;Mike Fratto from Information Week says here: &lt;a href="http://www.informationweek.com/blog/main/archives/2009/01/cwesans_top_25.html"&gt;http://www.informationweek.com/blog/main/archives/2009/01/cwesans_top_25.html&lt;/a&gt; that even if such tools exist, a programmer will not run them due to the complexity of running such tools.&lt;br /&gt;&lt;br /&gt;I for one applaud any extra testing tools, as I mentioned in my first post.  All they need to do to make it easier is to develop an Eclipse plug in that a developer could right click on and say "Run".  Or build it into CodePro.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-2574402882749472077?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/2574402882749472077/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/02/mysterious-testing-tools-revolving.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2574402882749472077'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/2574402882749472077'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/02/mysterious-testing-tools-revolving.html' title='Mysterious testing tools revolving around Sans Top 25 error list'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-3870331142125873951.post-6670082610794116841</id><published>2009-01-30T11:14:00.001-08:00</published><updated>2009-02-02T08:46:44.271-08:00</updated><category scheme='http://www.blogger.com/atom/ns#' term='Top 25 Programming errors'/><category scheme='http://www.blogger.com/atom/ns#' term='ECU'/><category scheme='http://www.blogger.com/atom/ns#' term='OWASP'/><category scheme='http://www.blogger.com/atom/ns#' term='East Carolina Univerity'/><category scheme='http://www.blogger.com/atom/ns#' term='IT Security'/><title type='text'>Top 25 Programming list Thoughts and Notes.</title><content type='html'>Welcome everyone from East Carolina and OWASP - NC! I am putting together something for a joint meeting between OWASP and ISSA in Raleigh that revolves around the recent SANS Top 25 Programming errors that came out in early January 2009 : &lt;a href="http://www.sans.org/top25errors/"&gt;http://www.sans.org/top25errors/&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;SANS worked with the &lt;a href="http://cwe.mitre.org/top25/"&gt;MITRE&lt;/a&gt; organization whose Common Weakness Enumeration (CWE) details over 700 additional programming and architecture errors and recommendations on how to avoid and mitigate them.&lt;br /&gt;&lt;br /&gt;The main goal of the Top 25 list is to "Stop vulnerabilities at the source by educating programmers on how to eliminate all-too-common mistakes before software is even shipped. The list will be a tool for education and awareness that will help programmers to prevent the kinds of vulnerabilities that plague the software industry. Software consumers could use the same list to help them to ask for more secure software. Finally, software managers and CIOs can use the Top 25 list as a measuring stick of progress in their efforts to secure their software."&lt;br /&gt;&lt;br /&gt;Here are some notes:&lt;br /&gt;&lt;br /&gt;1. Programming errors in this list relate mostly to security&lt;br /&gt;&lt;br /&gt;2. Could also be renamed to Top 25 Web Programming errors since many of the items on the list are not applicable to non web programmers. However at least all but 2 of the 25 relates to any software if not all of them.&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Web applications are starting to dominate mainstream computing.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Web applications are accessible from anywhere in the world whereas desktop applications mostly require physical presence to interact.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;3. How does this list compare, duplicate, enhance other similar type lists?&lt;/p&gt;&lt;a href="http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SYciv1qkilI/AAAAAAAAAB0/mgeBumJXjsc/s1600-h/5181a5YKxcL__SL160_.jpg"&gt;&lt;img id="BLOGGER_PHOTO_ID_5298241691879508562" style="FLOAT: left; MARGIN: 0px 10px 10px 0px; WIDTH: 129px; CURSOR: hand; HEIGHT: 160px" alt="" src="http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SYciv1qkilI/AAAAAAAAAB0/mgeBumJXjsc/s200/5181a5YKxcL__SL160_.jpg" border="0" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Michael Howard’s “19 Deadly sins of software security” - &lt;a href="http://www.amazon.com/gp/product/0072260858?ie=UTF8&amp;amp;tag=rtpsecser-20&amp;amp;linkCode=as2&amp;amp;camp=1789&amp;amp;creative=9325&amp;amp;creativeASIN=0072260858"&gt;19 Deadly Sins of Software Security (Security One-off)&lt;/a&gt;&lt;img style="BORDER-RIGHT: medium none; BORDER-TOP: medium none; MARGIN: 0px; BORDER-LEFT: medium none; BORDER-BOTTOM: medium none" height="1" alt="" src="http://www.assoc-amazon.com/e/ir?t=rtpsecser-20&amp;amp;l=as2&amp;amp;o=1&amp;amp;a=0072260858" width="1" border="0" /&gt;&lt;br /&gt;&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Steve McConnell’s – Classic Development Process mistakes - &lt;a href="http://www.stevemcconnell.com/rdenum.htm"&gt;http://www.stevemcconnell.com/rdenum.htm&lt;/a&gt; and accompanying case study - &lt;a href="http://www.stevemcconnell.com/rdmistak.htm"&gt;http://www.stevemcconnell.com/rdmistak.htm&lt;/a&gt;&lt;br /&gt;&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;4. Old software proverb: “The first 90 % of the work takes 10% of the time and the other 10% takes 90% of the time”.&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Security sadly is not at the forefront of development cycle and therefore is relegated to the last 10% of the time. Therefore, a lot of the times, security is not gotten around to implement.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Succeeding in software is more of getting EVERYTHING right and less of not doing a few things wrong. One bug especially those found by the customer can fail a project.&lt;/li&gt;&lt;br /&gt;&lt;li&gt;You can help your project success along the way by simply recognizing what errors you can make and that is where lists like these can help your project success rate.&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;5. Can these 25 items be reduced to 12?&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Improper Input Validation ... path , user input, download without integrity check&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Untrusted Source ... similar data validation, but checks on more "human" level, untrusted seach path&lt;br /&gt;&lt;/li&gt;&lt;li&gt;Failure to Fullfil Constrains ... buffer overflow&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Improper Initialization or Relase of Resource .... unitialized data, &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Failure to Preserve Proper Structure ... encoding or escaping of textual data, SQL, html, control generation of code&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Client-Side Enforcement of Server Side Security&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Revealing Potentially Misused Infromation .... os calls in text file, cleartext transmission of sensitive data - hard coded passwords, error message information leak&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Giving Privilegies to Access Potentially Misused Information (&amp;amp; their executing)... data critical to keep valid state of program, external file names,&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Race Condition&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Incorrect Calculation&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Insufficent Random Values&lt;/li&gt;&lt;br /&gt;&lt;li&gt;Use of Weak Cryptographic Algorightms&lt;/li&gt;&lt;/ul&gt;&lt;p&gt;6. Or maybe the list can be boiled down into 3 categories?:&lt;/p&gt;&lt;ul&gt;&lt;li&gt;Insecure Interaction Between Components (9 errors) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Risky Resource Management (9 errors) &lt;/li&gt;&lt;br /&gt;&lt;li&gt;Porous Defenses (7 errors) &lt;/li&gt;&lt;/ul&gt;&lt;p&gt;7. A good idea for a hands on project would be to build a website that demonstrates a use and example for each error in the list for reference.&lt;/p&gt;&lt;p&gt;8. What is a “Race condition”? – a race condition is merely a synch issue where properly timed inputs and program execution can lead to unexpected state of the program.&lt;/p&gt;&lt;p&gt;9. Can a tool like Codepro be modified to check against this list? It would be much better to have a best practice of “I ran my code against this tool and it came back clean” rather than nothing at all.&lt;/p&gt;&lt;p&gt;10.Amazing thing is that people are noticing and reacting to this list where these issues have been around and noted for awhile. &lt;/p&gt;&lt;p&gt;11.Will some kind of regulations or government action result in this list? Think Sarbanes Oxley.&lt;/p&gt;&lt;p&gt;12.A lot of the items on the list are programming “errors” per se. They could be considered exploitable loopholes. The fact is that software will work fine in a world without hackers&lt;/p&gt;&lt;p&gt;13.Website with 25 errors categorized: &lt;a href="http://naveedslote.blogspot.com/2009/01/top-25-most-dangerous-programming_13.html"&gt;http://naveedslote.blogspot.com/2009/01/top-25-most-dangerous-programming_13.html&lt;/a&gt;&lt;/p&gt;&lt;p&gt;More to come later - Fred&lt;/p&gt;&lt;p&gt;&lt;/p&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/3870331142125873951-6670082610794116841?l=rtpsecurity.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://rtpsecurity.blogspot.com/feeds/6670082610794116841/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://rtpsecurity.blogspot.com/2009/01/top-25-programming-list-thoughts-and.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6670082610794116841'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/3870331142125873951/posts/default/6670082610794116841'/><link rel='alternate' type='text/html' href='http://rtpsecurity.blogspot.com/2009/01/top-25-programming-list-thoughts-and.html' title='Top 25 Programming list Thoughts and Notes.'/><author><name>Fred Williams</name><uri>http://www.blogger.com/profile/07372860850850445367</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='32' height='24' src='http://4.bp.blogspot.com/-53bkHUDPqVs/TVfbg2a3TdI/AAAAAAAAADY/RzVtTP2fQ7o/s220/IMG_0168.JPG'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://1.bp.blogspot.com/_TxRmi_-Zx_Y/SYciv1qkilI/AAAAAAAAAB0/mgeBumJXjsc/s72-c/5181a5YKxcL__SL160_.jpg' height='72' width='72'/><thr:total>0</thr:total></entry></feed>
