Palo Alto Networks, Inc. v. Finjan, Inc.

CourtCourt of Appeals for the Federal Circuit
DecidedSeptember 19, 2018
Docket17-2059
StatusUnpublished

This text of Palo Alto Networks, Inc. v. Finjan, Inc. (Palo Alto Networks, Inc. v. Finjan, Inc.) is published on Counsel Stack Legal Research, covering Court of Appeals for the Federal Circuit primary law. Counsel Stack provides free access to over 12 million legal documents including statutes, case law, regulations, and constitutions.

Bluebook
Palo Alto Networks, Inc. v. Finjan, Inc., (Fed. Cir. 2018).

Opinion

NOTE: This disposition is nonprecedential.

United States Court of Appeals for the Federal Circuit ______________________

PALO ALTO NETWORKS, INC., Appellant

v.

FINJAN, INC., Appellee ______________________

2017-2059 ______________________

Appeal from the United States Patent and Trademark Office, Patent Trial and Appeal Board in Nos. IPR2015- 02001, IPR2016-00157, IPR2016-00955, IPR2016-00956. ______________________

Decided: September 19, 2018 ______________________

ORION ARMON, Cooley LLP, Broomfield, CO, argued for appellant.

PAUL J. ANDRE, Kramer Levin Naftalis & Frankel LLP, Menlo Park, CA, argued for appellee. Also repre- sented by JAMES R. HANNAH. ______________________ 2 PALO ALTO NETWORKS, INC. v. FINJAN, INC.

Before REYNA, SCHALL, and STOLL, Circuit Judges. STOLL, Circuit Judge. Appellant Palo Alto Networks, Inc. petitioned for two inter partes reviews of Appellee Finjan, Inc.’s U.S. Patent No. 8,225,408, alleging that certain claims were un- patentable as obvious. The Patent Trial and Appeal Board of the U.S. Patent and Trademark Office (“Board”) found that there was insufficient evidence that Palo Alto Networks’s proposed prior art combinations would have taught the “dynamically building” claim limitation. Palo Alto Networks, Inc., No. IPR2015-02001, 2017 WL 1052502, at *4–10 (P.T.A.B. Mar. 17, 2017) (“Board Decision”). Therefore, the Board found that Palo Alto Networks failed to carry its burden of demonstrating, by a preponderance of the evidence, that any of the challenged claims would have been obvious. Id. Palo Alto Networks appeals. We affirm. I Finjan’s ’408 patent relates to methods and systems for detecting malware in data streamed from a network onto a computer. The patent relates to network security, including scanning code to determine whether there are potential viruses in the code. The patent describes a scanner system that preferably uses generic architecture, is language-independent, and is customized for a specific language by using a set of language-specific rules. The ’408 patent explains that this adaptive rule-based scanner has three components (illustrated in Figure 2, below). Tokenizer 210 recognizes and identifies constructs (i.e., “tokens”) within a byte source code. For example, code between { } or [ ] would become a token. Parser 220 controls the process of scanning incoming content, prefer- ably by building a parse tree data structure that repre- sents the incoming content. Finally, analyzer 230 checks for malware by searching for specific patterns of content that indicate malware. PALO ALTO NETWORKS, INC. v. FINJAN, INC. 3

’408 patent, Fig. 2. Claims 1, 3–7, 9, 12–16, 18–23, 29, and 35 are at issue in this appeal, and independent claim 1 is illustrative: 1. A computer processor-based multi-lingual method for scanning incoming program code, comprising: receiving, by a computer, an incoming stream of program code; determining, by the computer, any specific one of a plurality of programming languages in which the incoming stream is written; instantiating, by the computer, a scanner for the specific programming language, in response to said determining, the scanner comprising parser rules and analyzer rules for the specific program- ming language, wherein the parser rules define certain patterns in terms of tokens, tokens being lexical constructs for the specific programming language, and wherein the analyzer rules identify 4 PALO ALTO NETWORKS, INC. v. FINJAN, INC.

certain combinations of tokens and patterns as be- ing indicators of potential exploits, exploits being portions of program code that are malicious; identifying, by the computer, individual tokens within the incoming stream; dynamically building, by the computer while said receiving receives the incoming stream, a parse tree whose nodes represent tokens and patterns in accordance with the parser rules; dynamically detecting, by the computer while said dynamically building builds the parse tree, com- binations of nodes in the parse tree which are in- dicators of potential exploits, based on the analyzer rules; and indicating, by the computer, the presence of po- tential exploits within the incoming stream, based on said dynamically detecting. Id. claim 1 (emphasis added to highlight the disputed claim limitation). We focus on the claim limitation requir- ing “dynamically building” a parse tree, which is common to all the challenged claims. The Board construed “dy- namically building” to mean: “requires that a time period for dynamically building overlap with a time period during which the incoming stream is being received.” Board Decision, 2017 WL 1052502, at *3. This unopposed claim construction was proposed by Palo Alto Networks based on the plain claim language, which requires “dy- namically building, by the computer while said receiving receives the incoming stream.” ’408 patent, claim 1. II Palo Alto Networks asserted that claims 1, 3–5, 9, 12– 16, 18, 19, 22, 23, 29, and 35 of the ’408 patent would have been obvious over U.S. Patent No. 7,636,945 (“Chandnani”) and U.S. Patent No. 5,860,011 (“Kolawa”) PALO ALTO NETWORKS, INC. v. FINJAN, INC. 5

under 35 U.S.C. § 103. Palo Alto Networks also asserted that the same claims would have been obvious over Chandnani, Kolawa, and U.S. Patent No. 7,284,274 (“Walls”). Chandnani teaches a method of detecting malware in a data stream, including determining the programming language of the data stream and detecting viral code. Figure 2 from Chandnani (duplicated below) illustrates Chandnani’s script language virus detection apparatus, including detection engine 53, one of the focal points of Chandnani’s method:

Chandnani, Fig. 2, col. 8 ll. 5–7. Detection engine 53 tokenizes the incoming data stream by breaking it into smaller pieces known as tokens. As part of that process, it receives the language check data from the language description module 55, as indicated in step 31 of Figure 6: 6 PALO ALTO NETWORKS, INC. v. FINJAN, INC.

Id. at Fig. 6, col. 7 ll. 61–63. The language check data is used to lexically analyze the data stream at step 33 to determine the appropriate script language. Id. at col. 7 ll. 63–65. At step 35, the language definition data for the script language determined in step 33 is retrieved from language description module 55. Id. at col. 7 ll. 65–67. Using the language definition data retrieved at step 35, the data stream is lexically analyzed for a second time to generate the stream of tokens at step 37. Id. at col. 7 l. 67–col. 8 l. 3 (“the data stream is again lexically ana- lyzed to generate a stream of tokens” (emphasis added)). PALO ALTO NETWORKS, INC. v. FINJAN, INC. 7

Chandnani provides the following summary of the to- kenizing procedure, explaining the function of its “lexical analyzer”: To tokenize the data stream, a script language used in the data stream is determined using the language check data. The data stream is analyzed using the language check data to select the lan- guage definition data to use for the detection pro- cess. Next, the selected language definition data and the data stream are supplied to the lexical analyzer. The data stream is lexically analyzed again, this time using the language definition da- ta, to generate a stream of tokens. As mentioned above, each generated token corresponds to a spe- cific language construct, and may be a correspond- ing unique number or character. Id. at col. 8 ll. 7–17 (emphases added). The Board determined that the dispositive issue was whether Palo Alto Networks demonstrated, by a prepon- derance of the evidence, that the prior art teaches or suggests “dynamically building” a parse tree “while” receiving an incoming stream of program code.

Free access — add to your briefcase to read the full text and ask questions with AI

Related

In Re Applied Materials, Inc.
692 F.3d 1289 (Federal Circuit, 2012)
Harmonic, Inc. v. Avid Technology, Inc.
815 F.3d 1356 (Federal Circuit, 2016)
In Re: Nuvasive, Inc.
842 F.3d 1376 (Federal Circuit, 2016)
Google Inc. v. Intellectual Ventures II LLC
701 F. App'x 946 (Federal Circuit, 2017)
PGS GEOPHYSICAL AS v. IANCU
891 F.3d 1354 (Federal Circuit, 2018)

Cite This Page — Counsel Stack

Bluebook (online)
Palo Alto Networks, Inc. v. Finjan, Inc., Counsel Stack Legal Research, https://law.counselstack.com/opinion/palo-alto-networks-inc-v-finjan-inc-cafc-2018.