liveBook · Manning

Vulnerability

As explained in Think Like a CTO

A security vulnerability is a weakness in software or a system that can be exploited to compromise confidentiality, integrity, availability, or otherwise cause unauthorized harm.

A vulnerability is a weakness in software or a system that unintended use can exploit to cause unauthorized harm. It commonly arises from poorly developed code, inadequate testing, or well-intentioned features whose complexity creates unforeseen security holes. section 12.1 section 12.7.1

Manage vulnerabilities as an ongoing organizational responsibility:

  • Keep third-party software and libraries on a regular patch schedule, and test and schedule updates rather than treating patching as a single action. section 12.1 section 12.10
  • Use recent penetration testing, developer education, code review, logging, alerts, and kill switches to reduce exposure and contain breaches. section 12.10 section 12.11
  • Treat user input as untrusted and recognize that language design, such as manual memory management, can change the kinds of weaknesses developers must control. section 12.7.1

SQL injection through an ordinary lookup

A name-search feature concatenates user input into a database statement. An attacker submits crafted input that turns one intended query into multiple statements, potentially emptying a table without special network or database privileges. section 12.7.1

stmt = “SELECT id, email FROM table X WHERE name='” + inputFromUser + “'“;

Inspect the vulnerable statement pattern that places user input directly inside a database query. section 12.7.1

How Think Like a CTO covers it

How deep it goes
Explains common causes and a worked SQL-injection scenario, then connects weaknesses to patching, testing, education, and review.
Examples
Uses poorly tested software, Apache Log4j, manual memory risks, and a crafted SQL-injection input as concrete examples.
What you can do after
Diagnose/debug with it by recognizing exploitable coding weaknesses and evaluating patching, testing, monitoring, and containment practices.
How it connects
Connects vulnerabilities to secure coding, SQL injection, patching, penetration testing, social engineering, logging, alerts, and incident containment.

Also explained in

Compare how 16 books explain vulnerability →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Think Like a CTO. The section links point to the parts of the book it draws on.