Governance: Training (T)

The overall goals for the Training practice are the creation of a knowledgeable workforce and correcting errors in processes. The workforce must have role-based knowledge that specifically includes the skills required to adequately perform their SSDL activities. Training must include specific information on root causes of errors discovered in process activities and outputs.

  Objective Activity Level
T1.1 promote culture of security throughout the organization provide awareness training 1
T1.5 build capabilities beyond awareness deliver role-specific advanced curriculum (tools, technology stacks, bug parade)
T1.6 see yourself in the problem create and use material specific to company history
T1.7 reduce impact on training targets and build delivery staff deliver on-demand individual training
T2.5 educate/strengthen social network enhance satellite through training 2
T2.6 ensure new hires enhance culture include security resources in onboarding
T2.7 create social network tied into dev identify satellite through training
T3.1 align security culture with career path reward progression through curriculum (certification or HR) 3
T3.2 spread security culture to providers provide training for vendors or outsource workers
T3.3 market security culture as differentiator host external software security events
T3.4 keep staff up-to-date and address turnover require annual refresher
T3.5 act as informal resource to leverage teachable moments establish SSG office hours

T Level 1: Make customized, role-based training available on demand. The SSG must build interest in software security throughout the organization and provide role-specific training material, including computer-based training, that incorporates lessons from actual internal events.


Provide awareness training. The SSG provides awareness training in order to promote a culture of software security throughout the organization. Training might be delivered by members of the SSG, by an outside firm, by the internal training organization, or through a computer-based training system. Course content is not necessarily tailored for a specific audience. For example, all programmers, quality assurance engineers, and project managers could attend the same Introduction to Software Security course. This common activity can be enhanced with a tailored approach to an introductory course that addresses a firm's culture explicitly. Generic introductory courses covering basic IT security and high level software security concepts do not generate satisfactory results. Likewise, providing awareness training only to developers and not to other roles is also insufficient.


Deliver role-specific advanced curriculum (tools, technology stacks, bug parade). Software security training goes beyond building awareness and enables trainees to incorporate security practices into their work. The training is tailored to the role of trainees; trainees get information on the tools, technology stacks, or kinds of bugs that are most relevant to them. An organization might offer four tracks for engineers: one for architects, one for Java developers, one for .NET. developers, and a fourth for testers. Tool-specific training is also commonly observed in a curriculum. Don't forget that training will be useful for many different roles in an organization, including QA, product management, executives, and others.


Create and use material specific to company history. In order to make a strong and lasting change in behavior, training includes material specific to the company's history. When participants can see themselves in the problem, they are more likely to understand how the material is relevant to their work and to know when and how to apply what they have learned. One way to do this is to use noteworthy attacks on the company as examples in the training curriculum. Be wary of training that covers platforms not used by developers (Windows developers don't care about old Unix problems) or examples of problems only relevant to languages no longer in common use (Java developers don't need to understand buffer overflows in C). Stories from company history can help steer training in the right direction only if the stories are still relevant.


Deliver on-demand individual training. The organization lowers the burden on trainees and reduces the cost of delivering training by offering on-demand training for individuals. Computer-based training (CBT) is the most obvious choice and can be kept up to date through a subscription model. CBT courses must be engaging and relevant to achieve their intended purpose. For developers, it is also possible to provide training directly through IDEs right at the time it's needed. Remember that in some cases, building a new skill (such as code review) may be better suited for instructor-led training.


T Level 2: Create the software security satellite. The SSG must build and enhance a satellite through social activities, including training and related events. The SSG and managers must ensure that new hires are exposed to the corporate security culture during onboard activities.


Enhance satellite through training and events. The SSG strengthens its social network by holding special events for the satellite. The satellite learns about advanced topics or hears from guest speakers. Offering pizza and beer doesn't hurt. A standing conference call meeting does not address this activity, which is as much about building camaraderie as it is about sharing knowledge or organizational efficiency. There is no substitute for face-to-face meetings, even if they happen only once or twice a year.


Include security resources in onboarding. The process for bringing new hires into the engineering organization requires a module on software security. The generic new hire process covers things like picking a good password and making sure people don't tail you into the building, but this is enhanced further to cover topics such as secure coding, the SSDL, and internal security resources. The objective is to ensure that new hires enhance the security culture. Turnover in engineering organizations is generally high. Though a generic onboarding module is useful, it does not take the place of a timely and more complete introductory software security course.


Identify satellite through training. The satellite begins as a collection of people scattered across the organization who show an above-average level of security interest or skill. Identifying this group is a step towards creating a social network that speeds the adoption of security into software development. One way to begin is to track the people who stand out during training courses. (See [SM2.3 Create or grow a satellite].) In general, a volunteer army may be easier to lead than one that is drafted.


T Level 3: Provide recognition for skills and career path progression. Also build morale. Management and the SSG must ensure that all staff members receive appropriate recognition for advancement through the training curriculum. Managers, application owners, and the SSG must provide training to vendors and outsource workers as a method of spreading the security culture. Managers and the SSG must continue to bolster satellite momentum by marketing the security culture externally. The SSG must be available, at least periodically, for those seeking software security guidance. Managers must ensure that all staff members receive this training at least annually.


Reward progression through curriculum (certification or HR). Knowledge is its own reward, but progression through the security curriculum brings other benefits too. Developers and testers see a career advantage in learning about security. The reward system can be formal and lead to a certification or official mark in the HR system, or it can be less formal and make use of motivators such as praise letters for the satellite written just before annual review time. Involving a corporate training department and/or HR can make security's impact on career progression more obvious, but the SSG should continue to monitor security knowledge in the firm and not cede complete control or oversight.


Provide training for vendors or outsourced workers. The organization delivers security training for vendors and outsource providers. Spending time and effort helping suppliers get security right is easier than trying to figure out what they screwed up later on. In the best case, outsourced workers receive the same training given to employees. Training individual contractors is much more natural than training entire outsource firms and is a reasonable way to start. Of course, it is important to train everyone who works on your software regardless of their employment status.


Host external software security events. The organization highlights its security culture as a differentiator by hosting external security events. Microsoft's BlueHat is such an event, as is Intel's Security Conference. Employees benefit from hearing outside perspectives. The organization as a whole benefits from putting its security cred on display. (See [SM3.2 Run an external marketing program].)


Require an annual refresher. Everyone involved in making software is required to take an annual software security refresher course. The refresher keeps the staff up-to-date on security and ensures the organization doesn't lose focus due to turnover. The SSG might use half a day to give an update on the security landscape and explain changes to policies and standards. A refresher can be rolled out as part of a firm-wide security day or in concert with an internal security conference.


Establish SSG office hours. The SSG offers help to any and all comers during an advertised lab period or regularly scheduled office hours. By acting as an informal resource for people who want to solve security problems, the SSG leverages teachable moments and emphasizes the carrot over the stick. Office hours might be held one afternoon per week in the office of a senior SSG member. Mobile office hours are also a possibility, with visits to particular product or application groups slated by request.