Cyberspace Capability Developer

Cyberspace Capability Developer Work Role ID: 341 (NIST: N/A) Workforce Element: Cyberspace Effects

Provides software and hardware capabilities that produce cyberspace effects in and throughout cyberspace operations through vulnerability analysis, and software research and development.


Items denoted by a * are CORE KSATs for every Work Role, while other CORE KSATs vary by Work Role.

Core KSATs

KSAT ID Description KSAT
22

* Knowledge of computer networking concepts and protocols, and network security methodologies.

Knowledge
108

* Knowledge of risk management processes (e.g., methods for assessing and mitigating risk).

Knowledge
1157

* Knowledge of national and international laws, regulations, policies, and ethics as they relate to cybersecurity.

Knowledge
1158

* Knowledge of cybersecurity principles.

Knowledge
1159

* Knowledge of cyber threats and vulnerabilities.

Knowledge
6900

* Knowledge of specific operational impacts of cybersecurity lapses.

Knowledge
6935

* Knowledge of cloud computing service models Software as a Service (SaaS), Infrastructure as a Service (IaaS), and Platform as a Service (PaaS).

Knowledge
6938

* Knowledge of cloud computing deployment models in private, public, and hybrid environment and the difference between on-premises and off-premises environments.

Knowledge

Additional KSATs

KSAT ID Description KSAT
23

Knowledge of computer programming principles such as object-oriented design.

Knowledge
27

Knowledge of cryptography and cryptographic key management concepts.

Knowledge
40

Knowledge of organization’s evaluation and validation requirements.

Knowledge
56

Knowledge of cybersecurity principles and methods that apply to software development.

Knowledge
63

Knowledge of cybersecurity principles and organizational requirements (relevant to confidentiality, integrity, availability, authentication, non-repudiation).

Knowledge
74

Knowledge of low-level computer languages (e.g., assembly languages).

Knowledge
95A

Knowledge of penetration testing principles, tools, and techniques.

Knowledge
102

Knowledge of programming language structures and logic.

Knowledge
116

Knowledge of software debugging principles.

Knowledge
118

Knowledge of software development models (e.g., Waterfall Model, Spiral Model).

Knowledge
119

Knowledge of software engineering.

Knowledge
168

Skill in conducting software debugging.

Skill
185A

Skill in developing applications that can log and handle errors, exceptions, and application faults and logging.

Skill
278

Knowledge of different types of network communication (e.g., LAN, WAN, MAN, WLAN, WWAN).

Knowledge
320A

Knowledge of external organizations and academic institutions with cyber focus (e.g., cyber curriculum/training and Research & Development).

Knowledge
408

Analyze information to determine, recommend, and plan the development of a new application or modification of an existing application.

Task
414

Analyze user needs and software requirements to determine feasibility of design within time and cost constraints.

Task
417

Apply coding and testing standards, apply security testing tools including “‘fuzzing” static-analysis code scanning tools, and conduct code reviews.

Task
506

Design, develop, and modify software systems, using scientific analysis and mathematical models to predict and measure outcome and consequences of design.

Task
515A

Develop software system testing and validation procedures, programming, and documentation.

Task
538

Develop new or identify existing awareness and training materials that are appropriate for intended audiences.

Task
543

Develop secure code and error handling.

Task
630

Identify and direct the remediation of technical problems encountered during testing and implementation of new systems (e.g., identify and find work-arounds for communication protocols that are not interoperable).

Task
645

Identify 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.

Task
709A

Modify and maintain existing software to correct errors, to adapt it to new hardware, or to upgrade interfaces and improve performance.

Task
756

Perform integrated quality assurance testing for security functionality and resiliency attack.

Task
764

Perform secure programming and identify potential flaws in codes to mitigate vulnerabilities.

Task
770

Perform risk analysis (e.g., threat, vulnerability, and probability of occurrence) whenever an application or system undergoes a major change.

Task
785

Prepare detailed workflow charts and diagrams that describe input, output, and logical operation, and convert them into a series of instructions coded in a computer language.

Task
826

Address security implications in the software acceptance phase including completion criteria, risk acceptance and documentation, common criteria, and methods of independent testing.

Task
865

Translate security requirements into application design elements including documenting the elements of the software attack surfaces, conducting threat modeling, and defining any specific security criteria.

Task
904

Knowledge of interpreted and compiled computer languages.

Knowledge
905

Knowledge of secure coding techniques.

Knowledge
970A

Apply cybersecurity functions (e.g., encryption, access control, and identity management) to reduce exploitation opportunities.

Task
971

Design countermeasures and mitigations against potential exploitations of programming language weaknesses and vulnerabilities in system and elements.

Task
973A

Skill in using code analysis tools.

Skill
978A

Knowledge of root cause analysis techniques.

Knowledge
979

Knowledge of supply chain risk management standards, processes, and practices.

Knowledge
980A

Skill in performing root cause analysis.

Skill
1020A

Skill in secure test plan design (e. g. unit, integration, system, acceptance).

Skill
1036

Knowledge of applicable laws (e.g., Electronic Communications Privacy Act, Foreign Intelligence Surveillance Act, Protect America Act, search and seizure laws, civil liberties and privacy laws), statutes (e.g., in Titles 10, 18, 32, 50 in U.S. Code), Presidential Directives, executive branch guidelines, and/or administrative/criminal legal guidelines and procedures relevant to work performed.

Knowledge
1056

Knowledge of operations security.

Knowledge
1062

Knowledge of software reverse engineering techniques.

Knowledge
1071A

Ability to develop secure software according to secure software deployment methodologies, tools, and practices.

Ability
1076

Collaborate with stakeholders to identify and/or develop appropriate solutions technology.

Task
1140A

Skill in using Public-Key Infrastructure (PKI) encryption and digital signature capabilities into applications (e.g., S/MIME email, SSL traffic).

Skill
1149A

Enable applications with public keying by leveraging existing public key infrastructure (PKI) libraries and incorporating certificate management and encryption functionalities when appropriate.

Task
1151

Identify and leverage the enterprise-wide version control system while designing and developing secure applications.

Task
2335

Direct software programming and development of documentation.

Task
2417

Facilitate the sharing of ā€œbest practicesā€ and ā€œlessons learnedā€ throughout the cyber operations community.

Task
2561

Maintain situational awareness of cyber-related intelligence requirements and associated tasking.

Task
3022

Ability to communicate complex information, concepts, or ideas in a confident and well-organized manner through verbal, written, and/or visual means.

Ability
3140

Knowledge of basic programming concepts (e.g., levels, structures, compiled vs. interpreted languages).

Knowledge
3146

Knowledge of both internal and external customers and partner organizations, including information needs, objectives, structure, capabilities, etc.

Knowledge
3441

Knowledge of physical and logical network devices and infrastructure to include hubs, switches, routers, firewalls, etc.

Knowledge
3622

Knowledge of organizational and partner authorities, responsibilities, and contributions to achieving objectives.

Knowledge
4333

Ability to program in at least one assembly languages.

Ability
4366

Ability to use common networking protocols.

Ability
4368

Ability to use data structures.

Ability
4372

Ability to use reference documentation for C, Python, assembly, and other international technical standards and specifications (IEEE, ISO, IETF, etc.).

Ability
4382

Ability to analyze, modify, develop, debug and document software and applications in C programming language.

Ability
4383

Ability to analyze, modify, develop, debug and document software and applications in Python programming language.

Ability
4384

Ability to analyze, modify, develop, debug and document software and applications utilizing standard, non-standard, specialized, serialization and/or unique network communication protocols.

Ability
4385

Ability to interpret customer requirements and evaluate resource and system constraints to create solution design specifications.

Ability
4424

Knowledge of cyber adversary threat tier taxonomy (2014 National Intelligence Estimate [NIE]), DIA/NSA Standard Cyber Threat Model, etc.).

Knowledge
4426

Knowledge of cyber mission force equipment taxonomy (Platform-Access-Payloads/Toolset), capability development process and repository.

Knowledge
4433

Knowledge of data serialization formats (e.g. XML, JSON, etc.).

Knowledge
4441

Knowledge of embedded systems

Knowledge
4497

Knowledge of modern software development methodologies (e.g. Continuous Integration (CI), Continuous Delivery (CD), Test Driven Development (TDD), etc.).

Knowledge
4517

Knowledge of principles, methodologies, and tools used to improve quality of software (e.g. regression testing, test coverage, code review, pair programming, etc.).

Knowledge
4527

Knowledge of relevant mission processes including version control processes, release processes, documentation requirements, and testing requirements.

Knowledge
4534

Knowledge of sources and locations (public and classified) of capability development TTPs and tradecraft information/intelligence used by the US Gov and others.

Knowledge
4535

Knowledge of sources and locations of cyber capability registries and repositories (e.g. Joint Cyber Tactics Manual (JCTM), Cyber Capability Registry (CCR), Agency and service repositories, etc.).

Knowledge
4546

Knowledge of task and project management tools used for software development (e.g. Jira, Confluence, Trac, MediaWiki, etc.).

Knowledge
4548

Knowledge of terms and concepts of operating system fundamentals (e.g. virtualization, paging, file systems, I/O, memory management, process abstraction, etc.).

Knowledge of terms and concepts of operating system fundamentals (e.g. virtualization, paging, file systems, I/O, memory management, process abstraction, etc.).
4554

Knowledge of the concepts and terminology of datastructures and associated algorithms (e.g., search, sort, traverse, insert, delete).

Knowledge
4580

Knowledge of the supported organizationā€™s approval process for operational use of a capability.

Knowledge
4584

Knowledge of the use and application of static and dynamic program analysis.

Knowledge
4598

Knowledge of your organizations project management, timeline estimation, and software engineering philosophy (e.g. CI/CD, TDD, etc.).

Knowledge
4611

Skill in conducting ā€œopen sourceā€ research.

Skill
4684

Knowledge of techniques to harden capabilities to prevent attacks and forensics.

KSA
6780

Utilize different programming languages to write code, open files, read files, and write output to different files.

Task
8002

Analyze and document applications using assembly languages.

Task
8003

Analyze countermeasures and mitigations against potential exploitations of programming language weaknesses and vulnerabilities in system and elements.

Task
8006

Analyze, modify, develop, debug, and document software and applications using assembly languages.

Task
8007

Analyze, modify, develop, debug, and document software and applications utilizing standard, non-standard, specialized, and/or unique communication protocols.

Task
8008

Analyze, modify, develop, debug, and document software and applications which run in kernel space.

Task
8009

Analyze, modify, develop, debug, and document software and applications which run in user space.

Task
8012

Apply cryptography primitives to protect the confidentiality and integrity of sensitive data.

Task
8014

Apply software engineering best practices to enable sustainability and extensibility (Agile, TDD, CI/CD, etc.) to include containerization and virtualization technologies.

Task
8016

Architect design documents that describe input, output, and logical operation.

Task
8032

Conduct hardware and/or software static and dynamic analysis to reverse engineer malicious or benign systems.

Task
8049

Create or enhance cyberspace capabilities to compromise, deny, degrade, disrupt, destroy, or manipulate automated information systems.

Task
8050

Create or enhance cyberspace solutions to enable surveillance and reconnaissance of automated information systems.

Task
8054

Describe the most likely cause of an error and recommend a list of possible solutions given the description of error or system crash.

Task
8055

Design and develop data storage requirements, database structure, process flow, systematic procedures, algorithms, data analysis, and file structures.

Task
8056

Design and develop user interfaces (e.g. web pages, GUIs, CLIs, Console Interfaces)

Task
8057

Design and direct software development efforts to detect and disrupt nation-state cyber threat actors.

Task
8068

Develop content for cyber capabilities.

Task
8076

Develop, modify, and utilize automation technologies to enable employment of capabilities as efficiently as possible (e.g. TDD, CI/CD, etc.)

Task
8080

Document and communicate tradecraft, best practices, TTPs, training, briefings, presentations, papers, studies, lessons learned, etc. to both technical and non-technical audiences.

Task
8092

Enhance capability design strategies and tactics by synthesizing information, processes, and techniques in the areas of malicious software, vulnerabilities, reverse engineering, secure software engineering, and exploitation.

Task
8095

Enter work into Task and project management tools used for software development (e.g. Jira, Confluence, Trac, MediaWiki, etc.)

Task
8106

Generate proper supporting documentation of cyber capability.

Task
8118

Implement project management, software engineering philosophies, modern capability development methodologies (Agile, TDD, CI/CD, etc), at the team level.

Task
8129

Locate and utilize technical specifications and industry standards (e.g. Internet Engineering Task Force (IETF), IEEE, IEC, International Standards Organization (ISO)).

Task
8135

Make use of compiler attributes and platform-specific features.

Task
8144

Perform code review and analysis to inform OPSEC analysis and application (attribution, sanitization, etc.)

Task
8150

Perform requirements analysis to identify workable tasks needed to organize collaborative software and documentation development.

Task
8152

Perform static and dynamic analysis in order to find errors and flaws.

Task
8156

Produce artifacts to inform risk analysis, acceptance testing, and legal review.

Task
8186

Reference capability repositories and other sources to identify existing capabilities which fully/partially meet customer requirements (with or without modification).

Task
8207

Utilize data structures to organize, sort, and manipulate elements of information

Task
8210

Utilize secure coding techniques during development of software and applications

Task
8211

Utilize tools to decompile, disassembe, analzye, and reverse engineer compiled binaries.

Task