Become a fan of Slashdot on Facebook

 



Forgot your password?
typodupeerror
×

Third Party Code Review? 89

An Anonymous Coward asks: "It looks like our sale-person is about to land a big contract with a very large US Bank, however there is a large catch in that the bank is demanding that we let them do a full audit on the source code of the software application we are selling them. After the recent rash of identity thefts of credit card and other personal info, they now mandate that all internet facing applications that store potentially private information have to have a full source code audit. This includes software from 3rd party vendors such as my company. They want to run our Java code through some software called Fortify (we looked up the price -- around $80,000) and also do a manual analysis of the code. This software is our company's life-blood. We would be ruined if it fell into a competitor's hands. We aren't storing private information about their customer's; all of the information can be found from government county auditor web sites. I understand their point of view, but it is a very scary step for us to take. Has anyone else done this and how did it work out?"
This discussion has been archived. No new comments can be posted.

Third Party Code Review?

Comments Filter:
  • Give them the code (Score:5, Interesting)

    by BadAnalogyGuy ( 945258 ) <BadAnalogyGuy@gmail.com> on Wednesday February 22, 2006 @12:40AM (#14774111)
    This is why your company has lawyers.

    Handing over the source code should be part and parcel of any non-retail software package. Like Free Software, but without all the philosophical bullshit.
  • by dtfinch ( 661405 ) * on Wednesday February 22, 2006 @12:43AM (#14774128) Journal
    You'll sue. You'll win. You'll be fine. Your competitor will be ruined. The person who leaked the code will be ruined.

    As for the use of a $80k code audit tool. If the bank's paying for it, that's how it's going to happen. BTW, expensive niche software companies don't always like it when their quotes become public knowledge. Companies like that often try to guess what each customer is willing to pay, within reason.
  • Re:NDA (Score:4, Interesting)

    by (H)elix1 ( 231155 ) <slashdot.helix@nOSPaM.gmail.com> on Wednesday February 22, 2006 @12:50AM (#14774172) Homepage Journal
    Non Disclosure Agreements and Really Good Lawyers, that's what it's all about.

    Spot on. With that in place, no real reason to worry about the source code. The Java decompilers out there (try JAD for instance) are good enough I stopped bringing source with me and would just decompile the class files if I needed to look at something. If you think a Java class file will keep code out of your competitor's hands - you are in for a real shock.
  • Single you out? (Score:3, Interesting)

    by bondsbw ( 888959 ) on Wednesday February 22, 2006 @12:51AM (#14774178)
    I'm assuming the bank and its software is running on a closed operating system, like Windows. Does this bank require source code from Microsoft?

    The system will fail security at its weakest link, whether it be your banking software or the operating system it runs on.
  • by deek ( 22697 ) on Wednesday February 22, 2006 @01:23AM (#14774329) Homepage Journal
    • Closed source is proven to be far more secure in the real world than source that has been picked through by numerous people.


      OK, this is flamebait, but what the hell. It annoys me when people claim something is proven, without actually supplying any proof.

      As a thought experiment, try this out. Start off with a software project that forks into two branches. One branch is developed with an open source model. The other branch becomes closed source. Assume that the original software project had a certain number of bugs. Now I ask you, as time goes on, which branch would contain less bugs? The closed source, or the open source?

      It seems obvious to me that the open source project would quickly have its bugs fixed, because of two reasons. The coders on the project would have ego on the line, and would therefore be much more careful with publicly available code. Due to the immense availability of peer review, issues are discovered and reported much more quickly and thoroughly.

      It also seems obvious that the closed source project would have many more bugs, for many different reasons. Programmers are more likely to ignore issues, because "nobody can see it". The pressure of getting a release out means that things are quickly cobbled together without much thought for security. If there is a review of code, it is not likely to be as thorough as what is available to open source.

      If the code is hidden, a program is not more secure. Otherwise, how do you explain the numerous security issues found in closed source software every year?! Whoever found the bugs, didn't have access to the source, yet they were still found. And once it is found, how can you fix it? I'd say that closed source software is far more insecure than open source, because not many have access to the source.
  • Banking MO (Score:4, Interesting)

    by ScrappyLaptop ( 733753 ) on Wednesday February 22, 2006 @02:00AM (#14774544)
    That's how the mainframe COBOL guys used to work; they put the source up on the really big bank's mainframe and work with the banks systems people to compile it and customize it. I've worked for two companies that followed that model and let me tell you, it is really really lucrative. It is ingrained in some really big banks' cultures, be it a holdover from the true "big iron" days, but so are the wonderful amounts that you are expected to charge them. Now, you and I realize that times have changed a bit, but many banks still call it DP, not IT and consider this; once you are in, they begin to build systems and protocols around your software. Before it even goes live, they will have their technical writers creating binders just for interoperation with your system. Your software becomes part of the machine. Do you have any idea how expensive it is after a couple of years to rip all of that out and start over? Like others have said, get a good non-disclosure written by pit bull lawyers and laugh all the way to the bank. Just take care of them (the banks decision makers) by doing a good job and catering to their whims (and charging them for it) and they will take care of you.
  • by scottsevertson ( 25582 ) on Wednesday February 22, 2006 @04:11AM (#14774939) Homepage
    I contracted with an electronic voting systems company last summer; one task was preparing code for an audit as mandated by the FEC. This was to be a manual audit (versus an automated audit like Fortify), conducted by a 3rd party government contractor.

    Notes from the experience:
    * We requested examples of code that met specific auditing criteria, and received back several somewhat-anonymized methods, apparently taken from competitor's products. You should verify that the bank has appropriate "handling procedures" for protecting 3rd party source code.

    * Our audit criteria was spelled out in an FEC ruling in decent detail. We found that 50% of the rules could be easily expressed as existing Checkstyle "checks" [http://checkstyle.sourceforge.net/ [sourceforge.net] ]; it was pretty easy to build custom "checks" to catch another 30%. We then used an Eclipse plugin [http://eclipse-cs.sourceforge.net/ [sourceforge.net] ] to get real-time highlighting of detected issues (plus Ant scripts for command-line checking).

    In your case, Fortify "rulepacks" appear quite proprietary/complex, so using their product is probably your only option for pre-audit auditing. If licensing is out of the question, and you can't strike a cross-promotional bargain (i.e. you market with "Secured by Fortify", they use you as a case study, you get a discount), try and get access to the tool through the bank before the official audit, or negotiate an appropriately flexible window of time in which to address any discovered issues.

    * You're not "innocent until proven guilty" in an audit. In *many* situations, we had to argue against rules that were nonsensical in Java, or false-positive issues discovered by the audit. Some we won, most we lost; we faced an uphill battle on all.

    * Our auditor was apparently not fluent in Java, and flagged several issues regarding the method names on classes in java.lang.*. Be thankful for automated auditing :)

    Good luck!

Intel CPUs are not defective, they just act that way. -- Henry Spencer

Working...