There are no new excuses
There are a lot of reasons to do Static Source Code Analysis, and not many not to do it. Often there is no real understanding within organisations as to why Static Source Code Analysis is important, and a number of possible excuses come to the fore. We have heard most of these before, and most of them don’t actually stack up once there is an understanding of the reality of the situation. Have you heard…?
But the ops team look after that
Do you KNOW that they appropriately take care of security, or do you just BELIEVE that? Unfortunately in today’s environment, blind faith doesn’t cut it. At the end of the day, Management and the Board have overall accountability for security, and need to have an understanding of real risks.
But its not in the scope
Hackers don’t care that it is not in the scope. Attacks will come, irrespective of whether security is scoped in or not, so scope it in! With the increased scrutiny on business to take “reasonable care” in developing secure systems, there is no excuse for not “scoping” security in.
But a third party looks after that
Prove it. Most third parties, while they have a high degree of interest in customer satisfaction, are also revenue and profit driven. If they are not accountable, they may have different views on what is “acceptable risk”. Check your contracts.
But a third party developed that
They may be responsible for implementing security, but YOU are ultimately accountable. Outsourcing to third parties for development is an effective way of managing cost and development, however there is still an onus to account for the levels of security they either have or have not implemented.
But it’s a legacy system
The biggest issue being that it may not be supportable. Unfortunately bad guys don’t care about that. Legacy systems are often the main vector of successful attacks, as the security of the legacy systems are not maintained during transition to new systems. Vulnerabilities and exploits are always being developed, while your legacy systems are sitting still.
But it was secure when we deployed it
And your point is? New exploits and vulnerabilities are being discovered daily. Security of web systems is a dynamic process, not a “one off” exercise performed when the system is first deployed.
But it’s too critical to patch
If it’s that critical, it should be patched! The more critical a system is, the higher the value and hence the risk of the system being affected by malicious activity. All systems need to be kept up to date as much as possible against attack.
But if we patch, we break warranty
A sticky one. We have seen systems where the warranty would be broken by applying security fixes / patches, in which case the contract / vendor needs to be critically reviewed. If you can’t fix the system, complementary controls can however be applied.
But there’s no budget
Is there a budget for reputational damage, loss of customers, loss of revenue, contingent liability, etc? Whether you like it or not, an insecure system, deployed on the Internet, will be attacked and compromised to some extent. The cost of recovery is a lot more than the cost of doing it right up front.
But we’ve got a firewall
Firewalls are a part of a defence in depth strategy, but are not a panacea for poor security in other areas, and are an example of reactive security vs proactive security. Firewalls should be part of your first line of defence, not your only line of defence. If your systems are secure in the first instance, your firewall becomes a bastion in the overall defence in depth strategy, and become a lot more useful in managing and controlling traffic.
But our developers know how to code securely
Prove it. Show me the certifications in secure programming. There is a high degree of “faith” in the ability of programmers to develop secure systems. You already perform (or should perform) other forms of testing for audit, performance, reliability, business logic, why not test security as well?
Also, does every developer have the same level of quality in coding? Automation of source code analysis for security issues is a great method for improving the overall team development quality.
But we have to go live
Understand that, but bad guys need to make a living too. Deploying systems for expediency is a great way to be attacked and hacked. If you are going to go live anyway, deploy as many complementary controls as you can to reduce the impact of being hacked. The attacks are going to come anyway, irrespective of your go live strategy…
But our customers don’t ask for it
And? Contracting out of liability on the basis that customers don’t ask for security is not a great approach. There is an (unspoken) expectation of customers that their sites will be secure, whether they ask for it or not. Failure to do so is a great way to lose future business, not to mention potential liability for failing to take “adequate precautions” and “reasonable practice” when building stuff for customers.
But it’s only a proof of concept
Yeah, it’s also only stage 1 of a 4 year project, and we will bolt in security in stage 3. If we have any budget left for this, as the business plan had all the benefits identified in stages 1 and 2.
There seems to be an “accepted” business model called “prototype into production”. Whether this happens by stealth or by design, we have lost track of the number of times we have seen Proof of Concept systems deployed without regard to supportability, support, operational maintainability, security, etc, etc…
But nobody knows about it
Are you sure about that? Systems don’t need to be advertised in order to be attacked. Current attack tools use advanced randomization, fuzzing techniques, or block scanning to find systems. You do not need to be a “known” target in order to be attacked. If it is out there, it will be found.
But we’ve hidden it
From who? To what level? You may have hidden it from the average script kiddie attacker, but what about full scale automated attacks, and determined attackers? What level of assurance testing has been undertaken to Prove that it is hidden?
But it’s really hard to change
And your point is? The bad guys don’t care if this is an issue for you or not. If you REALLY can’t change it, at least put in place as many mitigating or complementary controls as possible, until such time as you can change it.
But it’s on the way out
It’s always a bit difficult to justify spend on systems that are reaching end of life. However, if there is a vulnerability, and it is exposed, it will eventually be attacked. The world will change, and new attacks will occur, while you are diligently moving to a new solution and avoiding addressing the “right now” state.
But it’s an interim system / solution
This is a common one. How many of us have deployed interim systems, only to find that they tend to be there for years, due to the benefits apparently outweighing the justification for replacing it with an engineered solution over time? Interim solutions need security care and love as much as fully engineered solutions. Sometimes more, due to the rapid deployment often not addressing the security concerns.
But it’s standards compliant
Compliance is not security, although it can be a useful precursor. Just because it is standards compliant, doesn’t actually mean that it is secure, or that your obligations stop at that point. Compliance standards are useful in establishing a “minimal level” of capability, however often the emphasis is on the audit “check list” rather than actually addressing the real state of security.
But the cost benefit is not there
Have you considered the reputational damage if you are hit? The potential litigation issues around class action for failing to take reasonable care? The REAL cost of recovery if you are hit? Most cost benefit analysis around web applications is light weight, and do not adequately address the real world costs if things go bad.
But we don’t think hackers could find that
They can. They do.
But we can’t explain the risk to the bosses
Get a security consultant or a CISO to help with the articulation. A lot of bosses don’t understand the technical issues or technical discussions, and it does need someone that can translate the technical issues into real business risk. Business people understand business risk. Translate it into those terms, and it is more likely that they will “get it”.
But we have other priorities
If you do get hacked, what would that do to your priorities then? Really, the addressing security BEFORE the fact is the most cost effective way to do business. This has been proven in a number of studies, most of which indicate that it is 30 times more expensive to address when you get hit, than doing it right up front. Do you need to reassess your priorities?
But it’s an internal system only
Internal systems get hacked too. Malicious employees anecdotally cause more problems than external hackers, and secondly, once an attacker gets into the environment, an insecure system is one of the best ways to continue the assault.
But we contracted out the risk
You can contract out responsibility but not accountability. If you get hit, you still get hit, irrespective of whether and what you contracted out to another third party. Secondly, if legal action is taken, it will be against you first, and for you to tackle the third party contract. Do you really want that? Expect the best, and assume the worst, don’t take “contracted” security at face value as you have the overall accountability. Hold the third parties to account, and measure what they actually deliver.
But we did a risk assessment
What methods? What standards? To what extent did the people performing the risk assessment have the expertise to understand all threat and attack vectors? This is a fast moving field, and “checking the experts” is prudent to ensure that the Risk Assessment was performed adequately.
Secondly, check for a disconnect between the Risk Assessment and Risk Management plan. It is often the implementation of risk controls (technical, people, and process) that fails to adequately or appropriately address the risk.
But it’s in the cloud, they will look after it
Cloud computing is an emerging field, and as such, the risks are emerging and evolving as well. Add to this the lack of appropriate standards across all the players, and assuming that “putting it in the cloud” becomes a potentially risky situation. Accountability unfortunately can’t be sent into the “cloud”, so address security yourself.
But there’s no business justification
This is pretty common. IF, after a structured and accurate risk assessment has been carried out, AND you have clearly identified the value of your information assets (and your customers assets), AND the potential impacts have been ratified and identified as not business affecting, AND you are prepared to carry the risk of not only being hacked yourself, but becoming a contingent liability partner in your systems attacking others, AND you have a massive hedge fund to deal with any claims / investigations, THEN by all means accept the risk.
But we just expect our outsourcers to put in security
Expect security, assume nothing. Outsourcers are also driven by returning value to shareholders, while maintaining healthy relationships with their customers. However don’t assume that they will “just put in security”. It doesn’t happen. Unless you specifically ask for it, measure it, and pay for it.
But it’s not in the contract
“we disavow any warranty or liability around the fitness for purpose, being free from any malicious code, or being secure against attack”. Check your contracts for software, services, outsourcing, etc. Hold your suppliers liable, and don’t blithely accept “check and forget” contract terms. You are accountable at the end of the day, ensure that you pass on some of the risk to your own suppliers.
But we did some encryption
AES is secure. Most implementations are not. 90% of all implementations can be bypassed, intercepted, or generally broken by attackers, including taking advantages of other vulnerabilities to access keys, in which case the quality of the encryption algorithm is somewhat irrelevant. If your system is vulnerable, the likelihood that your encryption is compromised is high.
But we don’t think it’s a risk
We do. Not “thinking” it is a risk does not make it so. If you don’t do a reasonable level of “due diligence” around a risk, and it happens, there may be consequences. Don’t “think” it’s not a risk, prove it first.
But we think we can live with it
I am sure that there are a number of companies (no longer in business) that also thought that. Prove it, and get a signature from your CEO that says he will live with it. Don’t be surprised if he / she decides not to put his signature on the risk acceptance.
But I don’t want to lift that rock
This is no longer a viable defence; under most legislation and company law, companies are obligated to understand their issues to a “reasonable” level. “What I don’t know can’t hurt me” is likely to hurt you. With more focus on liability starting to come through the industry, liability is there, irrespective of whether you lift the rock or not. If you at least lift the rock, the opportunity for surprises
But we aren’t liable
Actually, you are. Under various legislation, company law, contractual law and contracts, the degree of liability ranges from financial penalties, through to class action, through to jail time.
But someone else has tested it
Do you trust the people that tested it? To what level? Was the value of the system and risk sufficiently defined to qualify the level of testing undertaken? Remember that every system on the internet is attackable to more or less the same degree. The extent to which these succeed is due to the complexity of the system, the focus of the attack, and the level of assurance that the systems have adequate levels of security.
But we had accountants audit it
Ok, hard to argue against that one, isn’t it? </facetious>
But it meets PCI requirements
See Standards Compliant
But there’s no money to fix it
Is there money to recover from a successful attack? The cost to resolve issues BEFORE they become a real problem has been proven to be at least an order of magnitude cheaper. Do you actually KNOW the real value of what you are protecting, and the costs of not fixing it to the point that it becomes a problem?
But we have a development methodology
Does Security have a specific fit in the development methodology? Do you start with a security risk assessment at the same time as you do the business risk assessment? Are you following emerging methodologies such as Microsoft SDL? If you don’t specifically address security somewhere in your methodology (including design, development, testing and assurance), then you don’t have a complete methodology.
But it’s never been a problem in the past
It will be in the future. Probably sooner rather than later. In Internet terms, yesterday is history, and tomorrow is an unknown and emerging future. What worked yesterday is now irrelevant with the constantly emerging threats and attacks.
But we don’t believe it will happen here
It probably already has to a greater or lesser extent. We are no longer surprised at the number of customers who couldn’t detect that an attack had taken place, or that their systems were compromised. Most detection has actually been through the hacker accidentally causing some form of unexpected system behavior, which is then noticed.
Add to this the lack of standardized reporting of attacks, and there are a heck of a lot more successful attacks that take place than are publicized, and the costs of these are way under reported
But it’s not cost competitive to do it
Accepted that release cycles, speed to market, price sensitivity, etc. are significant issues that need to be overcome. However the cost of being caught and publicized as having an insecure system or release can be either a deal breaker, open yourself to liability, or be the end of your company in its current form. This happens.
But it’s not worth spending the money on protecting it
Maybe not on protecting “it”, but have you considered ALL the areas that could cost you money if it all goes wrong? “it” may be not worth protecting, but your systems, reputation, and protection against litigation / liability certainly may be.
But we have antivirus tools on the server
<facetious comment> yeah right, that’s all you need </facetious comment>.
As a PART of your overall defense in depth strategy, fine. But don’t rely on these tools as the “be all and end all” of security. A proactive stance towards security of ensuring your systems are all secure is better than a solely reactive stance of hoping your defensive systems (AV / Firewall, etc) are going to be 100% effective.
But we don’t understand the risk
So find out! There is an absolute wealth of information out there, some by vendors, some by professionals, some by the industry. Everyone (except the really bad guys) wants to help you get secure, and to help you understand the risk. The plethora of information out there is more than sufficient to understand the risk to whatever level you are prepared to go to.
Got one we haven’t heard?
Then tell us! We’d love to respond. The best excuse between now and May 30 2010 (just over a month from now) will win a free CodeScan License in the language of your choice. Either comment below, or tweet us – @CodeScanDev