Summary
In this chapter, you explored various aspects of software development. Understanding the different levels of programming languages helps in analyzing the foundational principles of how code interacts with computer systems. Earlier-generation languages, which are closer to machine language and pure binary, provide more direct access to system resources, while later-generation languages are easier to read and more portable. The differing characteristics of these programming languages lead to different security concerns when considering secure coding practices. Additionally, you examined how the compilation process and runtime environments can introduce new security challenges.
You saw CI/CD security controls focus on integrating security checks into each stage of the software development life cycle. This includes using SAST tools to scan code for vulnerabilities, and DAST tools to scan running applications for weaknesses. Security analysts also use penetration testing to identify...