This series of blogs is intended to give Information
Security professionals some ideas on building quality relationships within
their enterprise. Successful relationship building is sometimes defined as the
ability to move your strategic goals forward in the organization. However, I
believe that success expands beyond your strategic goals; to me real success
achieves your goals and helps others achieve theirs.
Information Security and Software Development haven’t always
been well aligned in establishing complementary goals. For Information
Security, the Software Development team is the source of coding errors,
vulnerabilities and potential weaknesses which necessitate identification,
triage and remediation – preferably prior to implementation or ASAP in post-go
live situations. Software Development perceives Information Security as a
department solely focused on finding fault with their work. When Information
Security gets involves, software developers have to take time to
go through manual and automated code reviews, to justify against inaccurate or
erroneous findings, and to develop and test code fixes while trying to meet already
tight delivery dates. Transforming this potentially adversarial relationship into
something collaborative and mutually beneficial can be done – but it may take some effort.
- Clearly state
your expectations – Have you provided the relevant sections of the
information security policy to the team? Developers may not have a clear
understanding or even access to the information security policy. Visit a staff
meeting, talk with developers and explain the overall objectives of InfoSec at
your organization. In most cases people want to play by the rules, they just need
to know what they are. Pay special attention to giving them your authentication
rules, password requirements and session timeout policies. Developers
understand that it’s much cheaper to abide by the requirements in advance
rather than make the changes after the code has already gone through QA.
- Training –
It’s possible that your developers never received training in secure code
development. Work with the management team to include secure code development as
part of the training and education plan. If your budget can support it, fund a
portion of the training class, or offer the classes in-house with a member of
your staff as a “train the trainer” program.
- Create reference
materials – Developing in-house guides and instruction books: it pays off
in quality code. Describe buffer overflow conditions, the rationale between
using PUT and GET commands, or explain cross-site scripting (XSS) attacks. Even
providing them with a list of known bad characters to filter out of input can
transform the Information Security team from a tattle-tale into a problem solver.
- Be prepared to
listen – Most development teams have an evangelist; someone who’s
passionate about their coding knowledge and loves to share it. Work with that
developer – get his or her input into how to improve policy. Learn about existing
work papers and ways you can work together to improve their content. Consider
increasing the scope to include company best practices.
- Reward the
champions – The QA team knows which developers routinely submit the best
code. Find out who they are and send a note to their boss with that information.
If they are using custom developed routines, logic statements or other parts of
the code library, share them – but be sure to credit the developer who did the
work. Even remind the coding manager at performance review time.
- Share the wealth
– When you get content that will benefit the developer team, don’t silo it. Make
sure it gets back to them. Bring info sheets and presentation notes from
security conferences. Share articles and publications that will be of interest
to the team. Don’t be afraid to invite them to attend security conferences,
multimedia briefings, lunch and learn sessions, or anything else you believe
might improve their knowledge in the area of coding for information security.
In order to remain competitive in their field, developers know
they must continually invest in their skills, and most are aware that hiring
managers want to bring on experienced coders with a robust skill set. Helping them
improve and market their skills will quickly pay off. By noticing and reporting
on the quality of the developer team, InfoSec switches from an affliction to an
ally. Most importantly you can convert your relationship with the developer
team from a policing role to a mutually supportive relationship. Perhaps you’ll
see the day when you’ll be getting calls from the developer team when they need
help – and they refer to you as a key partner.