Finding Vulnerabilities with Data Flow Diagrams