Discussing security with emphasis on privacy, cloud, social media, NIST 800 reports, .Net Security, Secure Coding.
Saturday, November 2, 2013
Secure SDLC Processes
The terms SDLC and mentoring are used often in conversations but like strongly typed or weakly typed languages both terms do not have a precise definitions, worse is the definitions between organizations both commercial and academia can differ vastly.
Mentoring is more than just answering occasional questions or providing ad hoc help. It is about an ongoing relationship of learning, dialogue, and challenge. Often it is the senior person given the responsibility to mentor the junior person. To begin this conversation lets settle on a broad definition of mentoring…. A relationship in which a more experienced person helps to guide a less experienced. However, true mentoring is more than just answering occasional questions or providing ad hoc help. It is about an ongoing relationship of learning, dialogue, and challenge.
How do we mentor secure coding/development to an organization? Who do we need to mentor? Upper management to add development time and cost to make sure the delivered product is secure for the organization, users both internal and external. With upper management we certainty need to use formal and informal transmission of knowledge and social capital. But we are hardly in a true mentoring relationship.
Peers, Peers have their eyes set on the goal of getting their projects into production. Most project incentives are based of development cost, meeting timelines, getting thru QA and getting user acceptance, not on being secure. Add all those pressures together and trying to throw secure coding into the mix except a few points about sql injections usually falls of to the floor while more pressing issues to ship the product take front stage.
Let’s move off mentoring for a moment and move to SDLC. With SDLC, we have XP, Agile, JAD, RAD to mention a few. But now with Secure Software Development Life Cycle we can add OWASP’s OpenSAMM, Microsofts SDL, CIGITAL BSIMM just to name a few. To make matters worse every organization I have every been associated with takes various pieces of each SDLC and uses the methods they like best and even within those methods they not fully use the entire method as it was defined. To further muddy the waters most development organizations add their own brand of project management to their SDLC processes.
So how do we have a meaningful conversation on these? Maybe we don’t. Do we have each party give out a fully disclosed document on their definitions? Are our definitions only related to each other past experience or a combination of experience and professional research and training? Or at best muddle thru hoping each person understands the other.
I know I really don’t have an answer but the conversations are always fun. Maybe that is part of the answer instead of looking for the right answers lets talk about what strategies have work for us and what in the past did not work and where we want to go.
What strategies do you use in your organization? Do mentoring and SDLC and security come together or is each item separate? Can you write down what your organization definition of the SDLC is? The steps it follows and where it defers from the published guidelines for that SDLC? If not is your organization using an ingrown ad-hoc SDLC that is documented and does your organization follow that document to the tee or a partial implementation? Remember seat of the pants is not really the way to go. No matter what S-SDLC you use, a plan is better than no plan at all.
Tim Rains of Microsoft just release a blog post on developers using secure SDLC. Microsoft’s survey showed “security wasn’t considered a “top priority” when building software by 42% of developers worldwide.” His blog post goes on to say “While security development processes have been shown to reduce the number and severity of vulnerabilities found in software, almost half of all developers (44%) don’t use a secure application program/process today.”
http://blogs.technet.com/b/security/archive/2013/07/12/trust-in-computing-survey-part-2-less-than-half-of-developers-use-a-security-development-process.aspx
I am speaking at APPSECUSA 2013. Nov 18-2013. http://appsecusa.org/2013/
Sunday, October 6, 2013
Sql Injection, OWASP AppSec 2013, Free Training, Published Bad Code
The Verizon Business Data Breach Investigations Report 2013, SQL Injection was identified as the single largest attack vector responsible for data theft. The Verizon Business Data Breach reported, “60% of SQL injection attacks in the 2011 dataset were single-event incidents, meaning they exfiltrated data (or otherwise caused an incident) in the initial compromise and didn’t continue beyond that. Single-event incidents are often over and done in a matter of seconds or even milliseconds.”
Yet remarkable SQL injection is one of the low hanging fruits that can be resolved without much effort by any organization. So how is it that we still have SQL injection as a top ten vulnerability after 14 years; developer training, need to evangelize IT management, IT tools, code reviews? All of these can help in reducing the SQL injection. This blog I am going over some great resources for developer training.
Invest in your developers training. The payback is worth it.
**APPSEC USA 2013** is a great place for developers to get together to learn how to defend their applications. This year APPSEC USA 2013 is in New York, November 18-21.
http://appsecusa.org/2013/
**Safecode.org**
Jim Manico , VP of Security Architecture at WhiteHat Security and Board member of OWASP, gave a shout out to SafeCode.org. SafeCode is a very well funded non-profit secure coding organization. They are in the process of releasing a large inventory of secure coding training that is fairly high quality.
Check it out. https://training.safecode.org/
**Published example demo code**
But please be aware not everything out there is of the quality that it should be. Code Magazine – A leading independent developer publication that has a good emphasis on .Net development had two articles in its May/June 2013 issue, which showed examples of how SQL injection creeps into applications. Both authors should know better even for a demo article not to use dynamic SQL.
The first article “Creating Collections of Entity Objects” show sql statement.
1: da = New SqlDataAdapter(“SELECT * FROM Product”, _
2: “Server=Localhost;Database=Sandbox; Integrated Security=Yes”)
Not good at all. I can just see someone reading this article downloading the code and making it work for his or her needs and adding a software vulnerability that a cyber criminal can exploit. The average data breach cost any organization about $300.00 per record. TJ Max’s data breach cost exceeded over $250 million in 2007.
A quick fix,
1: SqlDataAdapter myCommand = new SqlDataAdapter("GetProductsStoredProcedure”,
2: myConnection);
The next article “Creating a Robust Web Application with PHP and CodeIgniter” in this example we read things like…
1: strQuery = “INSERT INTO logs “& _
2: “(custername, cevent, computer) “ _
3: Values (‘” & strUserName & “’,’” _
4: & strEvent & “’, ‘” & _
5: strComputerName & “’)”
However we should have read code like this from the author.
1: $name = $_GET['username'];
2: $event = $_GET['event'];
3: $computerName = $_GET['ComputerName'];
4:
5:
6: if ($stmt = $mysqli->prepare("INSERT INTO logs (custername,cevent,computer) VALUES (?, ?,?)")) {
7: $stmt->bind_param("ss", $name, $event, $computerName); // Bind the variables to the parameter as strings.
8: $stmt->execute(); // Execute the statement.
9: $stmt->close(); // Close the prepared statement.}
Don’t forget about another great resource OWASP has Cheat Sheets.
https://www.owasp.org/index.php/SQL_Injection_Prevention_Cheat_Sheet
SQL-injection Infographic
References:
* http://www.verizonenterprise.com/resources/reports/rp_data-breach-investigations-report-2012-ebk_en_xg.pdf
* https://www.owasp.org/index.php/Top_10_2013
* http://appsecusa.org/2013/
* http://msdn.microsoft.com/en-us/library/ff648339.aspx
* http://www.code-magazine.com
* https://www.owasp.org/index.php/Main_Page
Saturday, August 3, 2013
How unique are you? Your Zip code knows.
When I am out shopping and ready to checkout the clerk asks me for my Zip code. My family readily gives out such information and often apologizes to the clerk when I refuse to give out my Zip code. When I respond with that is personal information my reply is just eyes rolling with your just being grumpy. Of couse there is some truth in that. But still we have the question is how much information can they(retail store) get by knowing my Zip code? The answer is a lot.
Famed Harvard Professor Latanya Sweeney who has done pioneering work on data privacy has a web site where you can now test your uniqueness. Her site asks for your gender, birthdate and Zip Code. Remember the retail store has an advantage because they have your name and Zip code. Give it a try. You might find that you not as unique as you think you are and using your Zip code really can help identify you and in most cases with 100% accuracy.
Dr. Sweeney explains that “365 days in a year x 100 years x 2 genders = 73,000 unique combinations, and because most postal code have fewer people, the surprise fades”.
74012 (pop. 57526) Male Birthdate 12/13/1987 Easily identifiable by birthdate (about 1) Birth Year 1987 Lots with your birth year (about 378) Range 1987 to 1991 Wow! There are lots of people in your age range (about 1894)
A lot of retailers today use services like GeoCapture. This service produced by Harte-Hanks (http://www.harte-hanks.com) simply captures your name from your credit card and with the clerk entering your Zip code into the POS during the transaction. Using the GeoCapture service your store matches the collected information to a comprehensive consumer database to return an address.
Beside your address GeoCapture can…
- Identify customers, understand purchase behavior, and follow up with dynamic, personalized marketing.
- Provides customer contact information and purchase history.
- Extensive, proprietary matching logic and nickname tables identify customers easily with accuracy rates close to 100%.
- Can be used in conjunction with Reverse E-mail Append for customer identification.
Here is the PDF from Harte-Hanks that describes services offered to retail stores.
Of course if you shop in your own Zip code and the clerk enters the store Zip code. They got you.
http://www.hartehanks.com/pdf/Data%20Services%20and%20Solution%20brochure%20100108.pdf
Ok here are some simple proven ways to help protect your privacy.
- 1. Sign out of online accounts when not using them, Hotmail, Facebook, etc. (This is becoming more difficult with always on mobile apps).
- 2. Don’t give out personal information when shopping.
- 3. Encrypt your hard drive on your computer.
- 4. Turn on 2-step authencation for all app that provide this. Gmail does.
- 5. Pay cash for embarrassing things.
- 6. Change your Facebook settings to Friends Only.
- 7. Clear your browser history and cookies on a regular basis.
- 8. Use an IP masker. www.hidemyass.com
- 9. Set and use your passcode on all of your wireless devices.
- 10. Remember everyone now carries a phone with a camera. If you do some something stupid it is very likely someone took a picture of it and posted it on the Internet.
I thought this was a cool site and I wanted to share it with you. Smile your on camera, maybe. http://360gigapixels.com/petrin-prague-photo/
Sunday, July 28, 2013
Cost of a Data Breach and Information collected about you on the Internet.
Ok, now about all that data that we make freely available so we don't have to pay for services like google, youtube, hotmail, etc. Remember when your mom and dad said there was no such thing like a free lunch? They weren't wrong.
- Google Street View has collected over 5,000,000 miles of images
- 58% of people are unaware of how data is gathered and shared online by advertisers
- Facebook collects over 500 terabytes of data from its users each day
- 50% of iOS apps track your location
- Free apps are more than 4x as likely to access contact lists
- 87% of US adults can be tracked via their mobile device
Monday, June 17, 2013
Eric Snowden and OWASP Hashing & Salt
- Work. They pay the bills.
- OWASP Code Review Guide. I am the co-leader and project support of this project. It is one of OWASP Flag Ship products.
- Tulsa .Net Users Group. This year we are doing a coding contest every quarter sponsor by Inceed (http://www.inceed.com/index_sm.html) see (http://codeshootout.com). I am the contest master who comes up with the contest objectives, rules, etc. with some help from friends.
