Source Code Review
Total Page:16
File Type:pdf, Size:1020Kb
Source Code Review ES&S Voting System v 5.2.1.0 Report Date: 2017-08-28 Version: 1.1 Status: Released Classification: Public atsec information security corporation 9130 Jollyville Road, Suite 260 Austin, TX 78759 Tel: +1 512 615 7300 Fax: +1 512 615 7301 www.atsec.com Last update: 2017-08-28 Classification: Public Status: Released Version: 1.1 ©2017 atsec information security corporation Page 1 of 31 Revision history Version Change date Author(s) Changes to previous version 1.1 2017-08-28 Ryan Hill Final Trademarks atsec and the atsec logo are registered trademarks of atsec information security corporation. AutoMARK, DS200, DS850, ES&S, Electionware and ExpressVote are registered trademarks of Election Systems & Software (ES&S). FCMG and the FCMG Logo are registered trademarks of the Freeman, Craft, McGregor Group. CERT is a registered trademark of Carnegie Mellon University. Microsoft, Windows, .NET, and SQL Server are registered trademarks of Microsoft Corporation. Symantec is a registered trademark of Symantec Corporation. Adobe Acrobat is a registered trademark of Adobe Systems Incorporated. MITRE is a registered trademark of The MITRE Corporation. Oracle and Java are registered trademarks of Oracle Corporation. Last update: 2017-08-28 Classification: Public Status: Released Version: 1.1 ©2017 atsec information security corporation Page 2 of 31 Ta b le o f C o n te n ts 1 Executive Summary ............................................................................................................... 5 2 Introduction ........................................................................................................................... 6 2.1 Scope and Basis ........................................................................................................... 6 2.2 Inputs ........................................................................................................................... 7 2.3 Threat Model ................................................................................................................ 7 2.4 Methodology ................................................................................................................. 8 2.4.1 Potential vulnerabilities ....................................................................................... 9 2.4.2 Code quality ........................................................................................................ 9 2.4.3 Design ................................................................................................................. 9 2.4.4 Cryptography .................................................................................................... 10 2.4.5 Back doors ........................................................................................................ 10 2.4.6 Measurement of findings ................................................................................... 10 2.4.7 Depth of analysis .............................................................................................. 11 3 Description of the ES&S Voting System ............................................................................... 12 3.1 Voting System Functions ............................................................................................ 12 3.2 Physical Components ................................................................................................. 12 3.3 Logical Components ................................................................................................... 12 3.3.1 Election Management System software ............................................................ 12 3.3.2 Supporting software .......................................................................................... 13 3.4 Interfaces ................................................................................................................... 13 3.4.1 Network interfaces ............................................................................................ 13 3.4.2 Peripheral devices ............................................................................................. 13 4 Findings ............................................................................................................................... 15 4.1 Public Vulnerability Search ......................................................................................... 15 4.2 Static Code Analysis & Documentation Review .......................................................... 20 Glossary .................................................................................................................................. 27 References .............................................................................................................................. 29 Last update: 2017-08-28 Classification: Public Status: Released Version: 1.1 ©2017 atsec information security corporation Page 3 of 31 List of tables Table 1: EVS Device Media ..................................................................................................... 14 Table 2: Assessment of VSS 2005 Guidelines ......................................................................... 14 Table 3: EVS Algorithms .......................................................................................................... 14 Table 4: Summary of software design documentation ............................................................ 14 Table 5: CVEs identified during the public vulnerability search .............................................. 20 Table 6: Summary of issues discovered during the static code analysis ................................ 26 Last update: 2017-08-28 Classification: Public Status: Released Version: 1.1 ©2017 atsec information security corporation Page 4 of 31 1 Executive Summary This report was prepared by atsec information security corporation to review aspects of the security and integrity of the ES&S Voting System v. 5.2.1.0. atsec is an independent, third- party company providing information-security assurance related services. This report identifies security weaknesses and vulnerabilities found through static code review and by searches of public vulnerability sources. The search focused particularly on those that could be exploited to alter vote recording, vote results, critical election data such as audit logs, or to conduct a denial of service attack on the voting system. It should be noted that the public vulnerability search is most likely to identify vulnerabilities that have been reported in commonly used commercial off the shelf system components. The static code analysis revealed 19 issues, the public vulnerability search identified 35 vulnerabilities that could potentially be used for an attack on the voting system. Of the 19 issues found by static code analysis, 3 were assessed to be of high severity, 10 were assessed to be of medium severity. At a high level, weaknesses and vulnerabilities were identified that can be attributed to difficulties resulting from an aging and repeatedly maintained system. These include • Failure to keep documentation up to date. • Failure to upgrade cryptography as cryptographic algorithms become more susceptible to attacks over time. For example, the use of SHA-1 and other hashing algorithms, some key lengths and some random number generators are now widely recognized as being deprecated as is the use of CRC-32 for integrity checking of files. • Inclusion of old code that may contain backdoors, and that is no longer used. • Inconsistent design such as variable standards for password strength, the use of hard- coded passwords, and using common initialization vectors (IV)s for cryptographic functions. In addition, numerous less severe but still noteworthy vulnerabilities were found related to code quality and non-conformance to the 2005 Voluntary Voting System Guidelines. See section 4 for all findings. Last update: 2017-08-28 Classification: Public Status: Released Version: 1.1 ©2017 atsec information security corporation Page 5 of 31 2 Introduction This report was prepared by atsec information security corporation to review aspects of the security and integrity of the ES&S Voting System v 5.2.1.0. It has been prepared in support of a contract awarded to Freeman, Craft, McGregor Group, Inc. This project has a goal to provide voting system test support services to assist the California Secretary of State (SOS) with the evaluation of the ES&S Voting System v 5.2.1.0 (EAC Certification Number: ESSEVS5210) Voting System for its suitability for use in the State of California in accordance with Elections Code sections 19001 et seq. The source code review was performed by the following atsec information security corporation consultants. • Fiona Pattinson (Project Manager) • King Ables (Lead Reviewer) • Jason Gorgeoulis (Reviewer) • Quentin Gouchet (Reviewer) • Brandon Harvey (Reviewer) • David Rumley (Reviewer) • Swapneela Unkule (Reviewer) • Brian Zhang (Reviewer) • Ryan Hill (Documentation Specialist) This document identifies the security vulnerabilities found through static code review and by searches of public vulnerability sources that could be exploited to alter vote recording, vote results, critical election data, such as audit logs, or to conduct a denial of service attack on the voting system. 2.1 Scope and Basis The ES&S Voting System (EVS) v 5.2.1.0 (hereafter referred to as the “voting system” or simply as the “system”) is a paper-based voting system made up of the Election Management System (EMS), precinct