Secure Software Assessor

Analyzes the security of new or existing computer applications, software, or specialized utility programs and provides actionable results.

Below are the Knowledge, Skills, Abilities and Tasks identified as being required to perform this work role.

Knowledge of computer networking concepts and protocols, and network security methodologies.
Knowledge of risk management processes (e.g., methods for assessing and mitigating risk).
K0003Knowledge of laws, regulations, policies, and ethics as they relate to cybersecurity and privacy.
K0004Knowledge of cybersecurity and privacy principles.
K0005Knowledge of cyber threats and vulnerabilities.
K0006Knowledge of specific operational impacts of cybersecurity lapses.
K0014Knowledge of complex data structures.
K0016Knowledge of computer programming principles
K0027Knowledge of organization’s enterprise information security architecture.
K0028Knowledge of organization’s evaluation and validation requirements.
K0039Knowledge of cybersecurity and privacy principles and methods that apply to software development.
K0044Knowledge of cybersecurity and privacy principles and organizational requirements (relevant to confidentiality, integrity, availability, authentication, non-repudiation).
K0050Knowledge of local area and wide area networking principles and concepts including bandwidth management.
K0051Knowledge of low-level computer languages (e.g., assembly languages).
K0060Knowledge of operating systems.
K0066Knowledge of Privacy Impact Assessments.
K0068Knowledge of programming language structures and logic.
K0070Knowledge of system and application security threats and vulnerabilities (e.g., buffer overflow, mobile code, cross-site scripting, Procedural Language/Structured Query Language [PL/SQL] and injections, race conditions, covert channel, replay, return-oriented attacks, malicious code).
K0073Knowledge of secure configuration management techniques. (e.g., Security Technical Implementation Guides (STIGs), cybersecurity best practices on
K0079Knowledge of software debugging principles.
K0080Knowledge of software design tools, methods, and techniques.
K0081Knowledge of software development models (e.g., Waterfall Model, Spiral Model).
K0082Knowledge of software engineering.
K0084Knowledge of structured analysis principles and methods.
K0086Knowledge of system design tools, methods, and techniques, including automated systems analysis and design tools.
K0105Knowledge of web services (e.g., service-oriented architecture, Simple Object Access Protocol, and web service description language).
K0139Knowledge of interpreted and compiled computer languages.
K0140Knowledge of secure coding techniques.
K0152Knowledge of software related information technology (IT) security principles and methods (e.g., modularization, layering, abstraction, data hiding, simplicity/minimization).
K0153Knowledge of software quality assurance process.
K0154Knowledge of supply chain risk management standards, processes, and practices.
K0170Knowledge of critical infrastructure systems with information communication technology that were designed without system security considerations.
K0178Knowledge of secure software deployment methodologies, tools, and practices.
K0179Knowledge of network security architecture concepts including topology, protocols, components, and principles (e.g., application of defense-in-depth).
K0199Knowledge of security architecture concepts and enterprise architecture reference models (e.g., Zachman, Federal Enterprise Architecture [FEA]).
K0202Knowledge of the application firewall concepts and functions (e.g., Single point of authentication/audit/policy enforcement, message scanning for malicious content, data anonymization for PCI and PII compliance, data loss protection scanning, accelerated cryptographic operations, SSL security, REST/JSON processing).
K0260Knowledge of Personally Identifiable Information (PII) data security standards.
K0261Knowledge of Payment Card Industry (PCI) data security standards.
K0262Knowledge of Personal Health Information (PHI) data security standards.
K0263Knowledge of information technology (IT) risk management policies, requirements, and procedures.
K0322Knowledge of embedded systems.
K0342Knowledge of penetration testing principles, tools, and techniques.
K0343Knowledge of root cause analysis techniques.
K0624Knowledge of Application Security Risks (e.g. Open Web Application Security Project Top 10 list)
S0001Skill in conducting vulnerability scans and recognizing vulnerabilities in security systems.
S0022Skill in designing countermeasures to identified security risks.
S0031Skill in developing and applying security system access controls.
S0034Skill in discerning the protection needs (i.e., security controls) of information systems and networks.
S0083Skill in integrating black box security testing tools into quality assurance process of software releases.
S0135Skill in secure test plan design (e. g. unit, integration, system, acceptance).
S0138Skill in using Public-Key Infrastructure (PKI) encryption and digital signature capabilities into applications (e.g., S/MIME email, SSL traffic).
S0174Skill in using code analysis tools.
S0175Skill in performing root cause analysis.
S0367Skill to apply cybersecurity and privacy principles to organizational requirements (relevant to confidentiality, integrity, availability, authentication, non-repudiation).
A0021Ability to use and understand complex mathematical concepts (e.g., discrete math).
A0123Ability to apply cybersecurity and privacy principles to organizational requirements (relevant to confidentiality, integrity, availability, authentication, non-repudiation).
A0170Ability to identify critical infrastructure systems with information communication technology that were designed without system security considerations.
T0013Apply coding and testing standards, apply security testing tools including “‘fuzzing” static-analysis code scanning tools, and conduct code reviews.
T0014Apply secure code documentation.
T0022Capture security controls used during the requirements phase to integrate security within the process, to identify key security objectives, and to maximize software security while minimizing disruption to plans and schedules.
T0038Develop threat model based on customer interviews and requirements.
T0040Consult with engineering staff to evaluate interface between hardware and software.
T0100Evaluate factors such as reporting formats required, cost constraints, and need for security restrictions to determine hardware configuration.
T0111Identify basic common coding flaws at a high level.
T0117Identify security implications and apply methodologies within centralized and decentralized environments across the enterprise¡¯s computer systems in software development.
T0118Identify security issues around steady state operation and management of software and incorporate security measures that must be taken when a product reaches its end of life.
T0171Perform integrated quality assurance testing for security functionality and resiliency attack.
T0181Perform risk analysis (e.g., threat, vulnerability, and probability of occurrence) whenever an application or system undergoes a major change.
T0217Address security implications in the software acceptance phase including completion criteria, risk acceptance and documentation, common criteria, and methods of independent testing.
T0228Store, retrieve, and manipulate data for analysis of system capabilities and requirements.
T0236Translate security requirements into application design elements including documenting the elements of the software attack surfaces, conducting threat modeling, and defining any specific security criteria.
T0266Perform penetration testing as required for new or updated applications.
T0311Consult with customers about software system design and maintenance.
T0324Direct software programming and development of documentation.
T0337Supervise and assign work to programmers, designers, technologists and technicians, and other engineering and scientific personnel.
T0424Analyze and provide information to stakeholders that will support the development of security application or modification of an existing security application.
T0428Analyze security needs and software requirements to determine feasibility of design within time and cost constraints and security mandates.
T0436Conduct trial runs of programs and software applications to ensure that the desired information is produced and instructions and security levels are correct.
T0456Develop secure software testing and validation procedures.
T0457Develop system testing and validation procedures, programming, and documentation.
T0516Perform secure program testing, review, and/or assessment to identify potential flaws in codes and mitigate vulnerabilities.
T0554Determine and document software patches or the extent of releases that would leave software vulnerable.