Getting Rid of the Man-in-the-Middle A Critique of “Man-in-the-Middle Attacks on Auto-Updating Software” Abby Slattery Student Research Paper CPSC 5157G – Computer Networks – Summer 2010 University of Columbus, Columbus, GA abby@slattery.us Abstract—Automatic software updates, in the form of executable files, are vulnerable to man-in-the-middle (MITM) attacks during the update process. These attacks place the user’s system at risk and can affect the performance of the software as well. These MITM attacks occur primarily on unprotected LAN environments. As people continue to use their computers in more and more public, unsecure environments, they are often exposed to MITM attacks if their software chooses that time to attempt an update. This paper critiques the 2007 Bell Labs Technical Journal article, “Man-in-the-Middle Attacks on Auto-Updating Software”, by Bjoern Luettmann and Adam Bender. Luettmann and Bender’s solution to man-in-the-middle attacks is discussed and an alternative solution is proposed. A comprehensive approach is needed to combat and prevent MITM attacks on automatic software updates. Keywords-security, automtic update, man-in-the-middle attack, proxy attack, injection attack I. INTRODUCTION Many of today’s computer users are constantly on-the-go and want immediate access to the newest programs and the most current versions of existing software. Much of the software available today is auto-updating; that is, the software automatically performs periodic checks to determine whether new versions of the software or any patches are available. If the software finds that an update or patch is available, it automatically begins the process of downloading executable files to be installed and run on the user’s computer. In their 2007 Bell Labs Technical Journal article, “Man-inthe-Middle Attacks on Auto-Updating Software”, Bjoern Luettmann and Adam Bender considered two possible types of man-in-the-middle (MITM) attacks on auto-updating software and examined code signing, specifically Microsoft’s Authenticode, as a solution to MITM attacks on the software updating process. Luettmann and Bender explained how four software applications available at the time the article was written were susceptible to MITM attacks during automatic updates. The two types of attack attempted with these applications were proxy attacks and injection attacks. The authors disclosed that these types of attacks were usually limited by the need for the attacker to reside, or at least have access via a proxy, to the victim’s local area network (LAN). Luettmann and Bender offered code signing, “the process of digitally signing executables or source code before distribution” [1], as a means of preventing MITM attacks and ensuring security and authenticity of downloaded code. This however, verifies only the source of the code and does not guarantee the integrity and correctness of the code. The authors specifically discussed Microsoft’s Authenticode as a suitable code signing implementation. Microsoft’s Authenticode works only on Windows-based systems and would require non-Microsoft applications to purchase and utilize a competing company’s security protocol. Although Luettmann and Bender offered an alternative to completely unsecured automatic updates, they failed to offer any sufficient solutions to MITM attacks or provide any guidelines for possible industry standards. The purpose of this paper is to offer a set of mutually supporting procedures that will prevent successful MITM attacks. Further study may allow this proposed set of procedures to become the basis for industry standards for secure automatic updates of application software. Related works are considered in Section II. Section III further develops the problem, details this paper’s proposed solution, and contrasts the proposed solution to that of Luettmann and Bender. The paper is concluded in Section IV and implications for further study are discussed. II. RELATED WORKS Several other authors have also examined the risks of automatic software updates. Dunn [2] explained a range of exploitation methods possible with automatic updates, and he identified three main areas of vulnerability: source identification, source authentication, and data integrity. Dunn suggested that those three areas of vulnerability be addressed in order to secure the automatic update process. However, unlike Luettmann and Bender, Dunn did not provide a specific protocol or process to accomplish any of the above. Automatic software updates were also tested for susceptibility to man-in-the-middle attacks by Bellissimo, Burgess, and Fu [3]. Similarly to Luettmann and Bender, Bellissimo, Burgess, and Fu analyzed a variety of software packages in order to determine the level of weakness of each. They concluded that there were technical, economic, and even social challenges that left automatic software updates unsecure. The authors suggested an open design principal and the development of a set of industry-wide standards to ensure update security. Ruissen and Vloothuis [4] undertook a similar study of update security and found a similar need for a variety of secure protocols to be implemented. They emphasized that just one unsecure application update can compromise the entire system. They suggested a combination of security efforts be made by both developers and users in order to prevent man-in-themiddle attacks on software updates. III. PROBLEM STATEMENT AND SOLUTION A. Problem Statement Automatic software updates, available for a wide variety of software applications and packages, are vulnerable to man-inthe-middle attacks during the update process. Regardless of the availability of features and protocols that could help protect users from these attacks, software developers are not implementing these features and protocols and users are usually not aware of the dangers at all. These MITM attacks occur primarily on unprotected LAN environments. As people continue to use their computers in more and more public, unsecure environments, they are often exposed to MITM attacks if their software chooses that time to attempt an update. Is it the responsibility of the developer or the user to ensure the software and system remain secure throughout the update process? Luettmann and Bender detailed two possible attacks on shareware utility Cam2PC. First, a proxy attack involves the victim computer connecting accidently to a proxy server controlled by the attacker. Incoming packets are monitored by the proxy server until a specific update packet is found. The proxy server can then edit the information included in the package and trick the victim into believing an update is available. The victim computer accepts as an update whatever malicious executable packet the proxy server chooses to send. The Cam2PC software then executes the malicious packet believing it to be a needed update to the Cam2PC software. Instead, the packet unleashes an attack on the victim’s system. Another type of attack described by Luettmann and Bender is the packet injection attack. Using only a simple packet sniffer and packet-writing program, this attack creates additional packets and injects them into the communication traffic between the victim and a valid server. As the victim system waits for responses from the valid server, the attacker’s packets may be received by the victim before those of the valid server. The victim will then accept the attacker’s packets as the response packets and reject as duplicates any future packets arriving from the valid server. The attacker’s packets are therefore readily accepted and executed by the victim system without any further effort on the part of the attacker. Luettmann and Bender suggested code signing as a means of preventing MITM attacks and ensuring security and authenticity of downloaded code. However, their narrow consideration of MITM attacks addresses only the source of the code and does not guarantee the integrity or authenticity of the update. Even if code signing is implemented, automatic updates are still vulnerable to other types of attack if a comprehensive approach is not taken to ensure update security. B. Proposed Solution A comprehensive approach is undoubtedly needed to combat and prevent MITM attacks on automatic software updates. A combination of the solutions proposed by Dunn and Bellissimo, Burgess, and Fu will best protect users from MITM attacks and allow for secure software updates. As recognized by Ruissen and Vloothuis, both developers and users are responsible for ensuring that the software and user system remain secure throughout the update process. A threefold set of security measures should be implemented by developers to provide for source authentication, encryption, and data integrity. Source authentication would allow a user to verify the identity and security of the update server and would permit the user to refuse the connection if the update server was not satisfactorily verified. Encryption is necessary in order to safeguard an end-to-end communication protocol that cannot be imitated by an attacker. Third, data integrity must be ensured so that the user is fully confident that no changes have been made to the update code en route. Finally, the above security measures should be combined to form a set of industry-wide standards. This set of standards must be implemented to compel developers to employ the above security measures when developing software. Currently, software developers are under no obligation to include any of these security measures in their software updates. The responsibility to ensure a safe system falls solely on the often unaware user. With a set of well-known security standards in place, developers would be induced to comply with these standards to avoid being considered subpar. Users have their own responsibilities in ensuring secure software updates. They must educate themselves concerning security risks via software updates and should restrict autoupdating software. Users are ultimately responsible for their own systems and must ensure that they do not allow updates to automatically occur when connected to unsecure networks. IV. CONCLUSION This paper has examined the man-in-the-middle security concerns related to automatic software updates as proposed by Luettmann and Bender. Examples of a variety of man-in-themiddle attacks have been considered and a comprehensive solution including a set of software security standards and user responsibility has been proposed. Implementing this proposed comprehensive solution will allow for secure software updates, fewer overall man-in-themiddle attacks, and reliable and effective software use. Users’ systems will be protected from MITM attacks and will therefore provide a better overall experience for the user. The limitations of this paper include a lack of testing of the proposed security measures. This paper addresses only specific man-in-the-middle attacks as discussed by Luettmann and Bender, and does not consider other types of attacks that may not be thwarted by the proposed security measures. Further research is needed to test the proposed security measures and to develop feedback from industry developers about the implementation of a set of security standards for automatic software updates. Further work is also required concerning other types of security attacks not discussed in this paper. [2] [3] REFERENCES [1] B. M. Luettmann and A. C. Bender, “Man-in-the-middle attacks on auto-updating software,” Bell Labs Technical Journal, vol. 12(3), pp. 131-138, September 2007. [4] K. Dunn “Automatic update risks: Can patching let a hacker in?,” Network Security, vol. 2004(7), pp. 5-8, July 2004. A. Bellissimo, J. Burgess, and K. Fu, “Secure software updates: Disappointments and New Challenges,” Proceedings of the 1st USENIX Workshop on Hot Topics in Security, Vancouver, B.C., Canada, 2006. P. Ruissen and R. Vloothuis, “Insecurities within automatic update systems v1.16: Can patching let a cracker in?,” Bell Labs Technical Journal, vol. 12(3), pp. 131-138, http://staff.science.uva.nl/~delaat/sne2006-2007/p32/report.pdf , July 2007.