RE: "Selling" a code-audit.

"Alexandre Sieira" <[email protected]> Wed, 1 Sep 2004 18:11:51 -0300
Newsgroups gmane.comp.security.programming
Organization Cipher - Segurança da Informação
Message-ID <[email protected]>
	Good afternoon, Yvan.

	In my experience, there is a very important piece of advice for code
auditors:

	During the auditing, fact gathering and interviews, make sure you DO
NOT raise your concerns. Keep your conclusions to yourself, be very
professional and resist the temptation to comment immediately on what you
find. Be very discreet.

	If you fail to do that, people will cease to be responsive after you
point out the first two or three issues. And then you will have the hardest
time finding the rest of them, because the developers will naturally try to
hide the problems from you.

	Programmers are naturally very suspicious of code auditors, always
believing they will try to look good by badmouthing them. Don't be one of
those, and let them know you won't do that. When you talk to a developer for
the first time, try to create some empathy with him and reassure him that
you are not a witch hunter. Tell him you have a job to do, and you need his
help to do it properly. If all goes well, your observations added with his
comments and suggestions will help create a better development model. No
programmer likes to be called to fix a bug in his code that caused a client
to lose money, his boss to lose his temper and him to lose his job. :-) Sell
him the idea that he has a chance to help prevent this from happenning, and
make sure you get his input on what's wrong or not.

	When you present your findings, be understanding and try not to make
any conclusions regarding the professionalism and quality of the developers.
People are not trained to code with quality and security in mind, and most
managers do not make that a priority when allocating resources. Developers
usually work under very tight deadlines, chase fast-moving targets and pray
to god their code works at all as a consequence.

	Make sure you mention in your presentation/report how helpful and
professional the developers were in helping your audit, and point out that
the budget and deadlines are probably not taking quality and security into
consideration appropriately. Don't restrict yourself to saying what's wrong.
Be positive and point out solutions and highlight any positive intiatives or
characteristics you find.

	This approach has been very successful with me in the past, and I
managed to keep on friendly terms with developers doing several audits of
their work, finding and reporting serious problems, and helping improve the
quality of the systems and development processes I worked on.

	I hope this answers your question. :-)

--
Alexandre Sieira, CISSP
Cipher - Segurança da Informação
+55-21-2529-2629
www.ciphersec.com.br
 
Esta mensagem eletrônica pode conter informações privilegiadas e/ou
confidenciais, portanto fica o seu receptor notificado de que qualquer
disseminação, distribuição ou cópia não autorizada é estritamente proibida.
Se você recebeu esta mensagem indevidamente ou por engano, por favor,
informe este fato ao remetente e a apague de seu computador imediatamente.
 
This e-mail message may contain legally privileged and/or confidential
information, therefore, the recipient is hereby notified that any
unauthorized dissemination, distribution or copying is strictly prohibited.
If you have received this e-mail message inappropriately or accidentally,
please notify the sender and delete it from your computer immediately.


-----Original Message-----
From: Yvan Boily [mailto:[email protected]] 
Sent: segunda-feira, 30 de agosto de 2004 14:45
To: [email protected]
Subject: "Selling" a code-audit.


One of my primary responsibilities with my employer is performing code
audits; so far I have been fairly effective in a technical capacity, however
on almost every single code audit I have participated in I have received
hostile responses from the development team.  I have tried a variety of
approaches to develop a stronger rapport with the development team, however
in spite of my best efforts I find that going into a code audit I am already
fighting against preconceptions about why the code audit is being performed.


I understand that many people feel threatened when work they have done is
criticized; what I need to know is how I can minimize this and coax the
development teams into being more interactive than defensive.  Any pointers?

Yvan Boily