Published Sep 3, 2019

SE-Radio Episode 330: Natalie Silvanovich on Attack Surface Reduction

Kim Carter and Natalie Silvanovich delve into the nuances of software security, addressing the challenges of using third-party code, managing branching complexities, and strategies for reducing attack surfaces by integrating security from design to implementation.
Episode Highlights
Software Engineering Radio - the podcast for professional software developers logo

Popular Clips

Episode Highlights

  • Attack Surface

    Natalie Silvanovich explains that understanding the attack surface is crucial for software security. She emphasizes the importance of identifying every feature and its accessibility to potential attackers. Measuring the attack surface is complex, as not all features pose equal risks, and reducing code doesn't always equate to increased security.

    Every feature that software has is useful for something to users, hopefully, and then it has a risk to users and it's kind of important that those are in line.

    ---

    Natalie highlights that some features, despite being high-risk, are essential, while others can be removed to enhance security 1 2.

       

    Design Security

    Incorporating security considerations during the design phase is vital. Natalie suggests involving security experts early to influence decisions like component separation and language choice, which can impact security. She also warns against blindly reusing code, as it can introduce vulnerabilities, citing an example with a Samsung image decoder.

    If you start early and, you know, think about your features, they could have prevented a lot of bugs.

    ---

    By simplifying features and reducing privileges of high-risk components, developers can significantly mitigate potential threats 3 4.

       

    Defect Impact

    Natalie discusses the challenges of measuring the security impact of software defects. She notes that simply reducing code doesn't guarantee fewer problems, as some features are inherently riskier. The trade-off between feature utility and security risk is a constant consideration.

    Just removing 10% of your code, there's no guarantee that that's going to remove 10% of your problems.

    ---

    Natalie advises basing features on user needs and being prepared to disable those that pose unnecessary risks, even if it means losing some users 2 5.

Related Episodes