Claims for Reverse Engineering are Based on Contractual Rights
As digital technologies continue to advance and encompass many aspects of everyday life, the development and use of “software” increases in direct proportion. Whether embedded system software (e.g., in mobile devices, appliances and IoT products), cloud hosted services, platform/infrastructure services, enterprise software or downloadable programs and apps, it is software that runs our computers and devices, allows for worldwide connectivity and communications, and provides for content and entertainment delivery. Software development is a major component of the global economy, and businesses, large and small, need to undertake significant efforts to protect, enforce and defend their proprietary code.
Comprising a “literary work,” the source code of a software application is protectable as a copyrightable work. Copyright Office Circular 61 states that:
A computer program is a set of statements or instructions to be used directly or indirectly in a computer to bring about a certain result. Copyright protection for a computer program extends to all of the copyrightable expression embodied in the program. The copyright law does not protect the functional aspects of a computer program, such as the program’s algorithms, formatting, functions, logic, or system design.
And, software companies have not hesitated to pursue claims of copyright infringement of their code. See, e.g., Antonick v. Electronic Arts, Inc., No. 14-15298, 841 F.3d 1062 (9th Cir. 2016) cert. denied __S. Ct. __ (November 6, 2017); Adobe Sys., Inc. v. Christenson, No. 12-1737, 809 F.3d 1071 (9th Cir 2015); Oracle America, Inc. v. Google, Inc., 750 F.3d 1339 (Fed. Cir. 2014) cert. denied 135 S. Ct. 2887 (2015).
Oracle v. Google is one of the more memorable software copyright infringement cases. In that litigation, Oracle pursued software copyright and patent infringement claims against Google and its Android operating system. Oracle alleged several distinct claims of infringement: a nine-line rangeCheck function, several test files, the structure, sequence and organization of Oracle’s Java application programing interface (API), and the API documentation. Oracle’s copyright infringement claims were primarily directed to its Java APIs, of which Oracle alleged 37 separate acts of infringement. While the jury found that the APIs were infringed, the jury deadlocked on Google’s fair use defense. The trial judge, however, ultimately ruled that the structure of Oracle’s Java APIs used by Google was not copyrightable. The Federal Circuit partially reversed the district court, ruling in Oracle’s favor on the copyrightability issue, and remanding the issue of fair use to the district court. After a second trial, the jury sided in favor of Google, ruling its actions to constitute fair use – a defense to infringement.
Although Oracle failed on its copyright infringement claims, could it have nonetheless pursued claims of “reverse engineering” against Google (setting aside the issue of whether Google legitimately acquired the API source code from Oracle predecessor, Sun Microsystems, in the first instance)? In short, the answer is “no.” While many developers and software companies are of the opinion that software code is protected against “reverse engineering” as a matter of copyright protection, absent an express contractual limitation or prohibition against reverse engineering, there is no right – under copyright law or otherwise.
While the Copyright Act is a powerful statutory tool for pursuing claims of copyright infringement – including the ability to obtain statutory damages provided the statute’s prerequisites are established – not all “copying” of software is tantamount to copyright infringement. Where there has been copying but not infringement under the Copyright Act, contractual prohibitions against reverse engineering may well prove to vindicate the software owner’s rights.
The issue of whether copyright infringement claims – provided for in the Copyright Act – preempt reverse engineering claims has been rejected by the courts. In Bowers v. Baystate Technologies, Inc., 370 F.3d 1317 (Fed. Cir. 2003), plaintiff Harold Bowers (“Bowers”) brought claims of copyright infringement and reverse engineering against Baystate Technologies, Inc. (“Baystate”) under the terms of a “shrink wrap” license agreement. Baystate defended the reverse engineering claim on the basis that the U.S. Copyright Act preempts the reverse engineering prohibition in the license agreement. The lower court agreed, finding that Bowers’ contract and copyright claims “coextensive.” As such, the district court instructed the jury that “reverse engineering violates the license agreement only if Baystate’s product that resulted from reverse engineering infringes Bowers’ copyright because it copies protectable expression.” The Federal Circuit reversed the district court, ruling that the Copyright Act does not preempt or narrow the scope of a contract claim prohibiting reverse engineering. 370 F.3d at 1327. As such, the Federal Circuit held that there exists a separate and distinct cause of action for the wrongful “copying” of Bowers’ software under the contractual prohibition of reverse engineering, which the trial jury found breached by Baystate.
So what is reverse engineering? The Federal Circuit’s opinion in Bowers v. Baystate is instructive. According to the Court:
In this case, the contract unambiguously prohibits “reverse engineering.” That term means ordinarily “to study or analyze (a device, as a microchip for computers) in order to learn details of design, construction, and operation, perhaps to produce a copy or an improved version.” [Bowers, 370 F3d at 1326, citing Random House Unabridged Dictionary (1993)].
The evidence presented in Bowers v. Baystate in support of the reverse engineering claim is also informative. For example, Baystate scheduled two weeks in the development schedule of its competing product to specifically analyze Bowers’ software. In fact, Baystate’s president and CEO testified that Baystate generally analyzed competitor’s products to duplicate their functionality. In addition, the record also contained evidence of extensive and unusual similarities between the original and accused products – further evidence of reverse engineering to support the jury’s finding. An expert on behalf of Bowers testified that he examined the relevant software programs to determine the overall structure of the programs, such as how the programs actually executed the task of walking a user through certain processes. That expert concluded that in the larger process of taking a relevant standard “and breaking it down into its component parts to actually create a step-by-step process for a user using the software,” both the original and accused programs use “almost the identical process of breaking down that task into its individual pieces,” and that the programs are “organized essentially identically.” Id. at 1326-1327.
In addition, a fact witness – an individual who licensed to Bowers certain software components and features that comprised Bowers’ software program – testified that he had compared the original and accused programs. When asked to describe the accused program’s interface, the witness responded: “It looked like I was looking at my own program . . .” As such, both the expert and fact witnesses for Bowers explained in detail the similarities between the original and accused programs – similarities that included the interrelationships between program screens, the manner in which parameter selection causes program branching, and the manner in which licensed symbols are drawn. Id. at 1327.
Even more compelling, both witnesses also testified that those similarities extended beyond structure and design to include many idiosyncratic design choices and inadvertent design flaws. The expert concluded that based on his “summary analysis of how the programs function, their errors from the standard and their similar nomenclatures reflecting nonstandard items,” the accused program is a “derivative copy” of the original program. Id.
The court noted that both Bowers’ “copyright and contract claims both rest on Baystate’s copying of Mr. Bowers’ software.” Id. As concluded by the Federal Circuit: “The shrink-wrap license agreement prohibited, inter alia, all reverse engineering of Mr. Bowers’ software, protection encompassing but more extensive than copyright protection, which prohibits only certain copying.” Id. As such, Bowers’ could pursue both copyright infringement and reverse engineering claims – separate and distinct causes of action that were both premised on the copying of Bowers’ software under the facts and circumstances of the case.
Contracts covering software, such as license agreements, SaaS service agreements, website services agreements, etc., should all include a prohibition against reverse engineering. While the Copyright Act is a powerful statutory tool for pursuing claims of copyright infringement – including the ability to obtain statutory damages provided the statute’s prerequisites are established – not all “copying” of software is tantamount to copyright infringement. Developers often develop functionality through different code in as much as two persons would likely use different words to tell a story. In such cases – where there has been copying but not infringement under the Copyright Act – contractual prohibitions against reverse engineering may well prove to vindicate the software owner’s rights.