throbber
Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 1 of 8
`Case 4:18-cv-07229—YGR Document 195-15 Filed 05/10/21 Page 1 of 8
`
`
`
`
`
`
`
`
`
`
`
`
`
`EXHIBIT 10
`
`EXHIBIT 10
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 2 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`
`
`UNITED STATES DISTRICT COURT
`FOR THE NORTHERN DISTRICT OF CALIFORNIA
`
`OAKLAND DIVISION
`
`FINJAN LLC., a Delaware Limited Liability
`
`Case No. 4:18-cv-07229-YGR (TSH)
`
`Company,
`
`Plaintiff,
`
`v.
`
`Hon. Yvonne Gonzalez Rogers
`
`
`
`EXPERT REPORT OF MICHAEL
`
`QUALYS INC., a Delaware Corporation,
`
`GOODRICH, PH.D.
`
`Defendant.
`
`
`
`
`
`GOODRICH EXPERT REPORT
`
`Case No. 4:18-cv-07229-YGR (TSH)
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`28
`
`
`
`
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 3 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`via a communications system or network.”4 Likewise, a POSITA would understand the term
`
`“receiver” to be a term of art. This understanding is supported, for example, by the Microsoft
`
`Computer Dictionary, as I cite above and in the footnotes. Thus, a POSITA would understand that
`
`in the context of distributed computing, a plain-and-ordinary meaning of “receiver” is a
`
`component that accepts data from another component via a communications system or network.
`
`
`
`This understanding is further supported by the textbook, Computer Networks, by
`
`Tanenbaum,5 which is a widely adopted textbook used in many undergraduate computer science
`
`curricula. Tanenbaum uses the term “receiver” without needing to provide to the reader further
`
`structural definition for the concepts he is discussing, confirming that the terms are sufficient to
`
`convey structure to a POSITA.
`
`
`
`For example, Tanenbaum writes in the introductory chapter describing networking,
`
`“Point-to-point transmission with exactly one sender and exactly one receiver is sometimes called
`
`unicasting.” Tanenbaum at 17 [bold-italics added, bold as in the original] (see also Tanenbaum
`
`4/e at 20). Tanenbaum also writes, “An allocation problem that occurs at every level is how to
`
`keep a fast sender from swamping a slow receiver with data.” Tanenbaum at 34 [emphasis added]
`
`(see also Tanenbaum 3/e at 21). Further, Tanenbaum writes, “The essential aspect of a connection
`
`is that it acts like a tube: the sender pushes objects (bits) in at one end, and the receiver takes them
`
`out at the other end.” Tanenbaum at 35 [emphasis added] (see also Tanenbaum 3/e at 23). In
`
`addition, Tanenbaum writes, “Another issue that arises in the data link layer (and most of the
`
`higher layers as well) is how to keep a fast transmitter from drowning a slow receiver in data.”
`
`Tanenbaum at 43 (see also Tanenbaum 3/e at 30). Moreover, in this same introductory chapter,
`
`Tanenbaum writes, “The most practical approach [to connect office and laptop computers to the
`
`Internet] is to equip both the office and laptop computers with short-range radio transmitters and
`
`receivers to allow them to talk.” Tanenbaum at 70 [emphasis added] (see also Tanenbaum 4/e at
`
`58). Tanenbaum illustrates this idea, along with a concept known as “multipath fading” that can
`
`occur in such scenarios, in a figure, which I excerpt below:
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`4 See, e.g., Microsoft Computer Dictionary, 5/e, 2002. (“receive vb. To accept data from an
`
`25
`
`26
`
`27
`
`28
`
`
`
`external communications system, such as a local area network (LAN) or a telephone line, and
`
`store the data as a file.”) This definition is unchanged from the third edition (1997).
`
`5 Tanenbaum, Computer Networks, 5/e, Prentice Hall, 2011, 2003 (4/e), 1996 (3/e), 1989 (2/e),
`
`1981 (1/e).
`
`
`
`
`
`17
`
`GOODRICH EXPERT REPORT
`Case No. 4:18-cv-07229-YGR (TSH)
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 4 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`medium and executed by the computer, for receiving an incoming stream of program code.” For
`
`example, the ’408 Patent shows an exemplary architecture in Fig. 2:
`
`
`
`
`
`A POSITA would understand that this figure shows a “byte source” being received
`
`by the tokenizer 210, which a POSITA would understand is disclosing a tokenizer as an
`
`embodiment of a “receiver,” e.g., a component that “accept[s] data from an external
`
`communications system, such as a local area network (LAN).”6 For example, the ’408 Patent
`
`states, “The function of tokenizer 210 is to recognize and identify constructs, referred to as tokens,
`
`within a byte source, such as JavaScript Source code.” ’408 Patent at 6:51-54. The ’408 Patent
`
`also states, “Preferably, tokenizer 210 reads bytes sequentially from a content source, and builds
`
`up the bytes until it identifies a complete token.” ’408 Patent at 6:60-62.
`
`
`
`Further, the ’408 also discloses a normalizer 240 as an embodiment that a POSITA
`
`would understand to be a “receiver.” For instance, the ’408 Patent states, “In accordance with a
`
`preferred embodiment of the present invention, normalizer 240 translates a raw input stream into a
`
`
`
`6 See, e.g., See, e.g., Microsoft Computer Dictionary, 5/e, 2002. (“receive vb. To accept data from
`
`an external communications system, such as a local area network (LAN) or a telephone line, and
`
`store the data as a file.”) This definition is unchanged from the third edition (1997).
`
`
`
`
`
`
`
`19
`
`GOODRICH EXPERT REPORT
`Case No. 4:18-cv-07229-YGR (TSH)
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`28
`
`
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 5 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`and identifying a scripting virus and reasonably identifiable polymorphs of the scripting virus by
`
`representing the scripting virus in a language independent form.” Li at 5:45-49 (emphasis added).
`
`Further, Li describes its solutions as “resulting in a very flexible virus signature.” Li at 8:6-7.
`
` A POSITA would recognize that the systems respectively described in Li and
`
`Zurko are incompatible, and that there would be no expectation of success in an alleged
`
`combination of their teachings. For example, a POSITA would understand that the approach of Li
`
`teaches away from the use of a hierarchical structure, such as a DOM tree, which is an essential
`
`component in the system of Zurko, given Zurko’s reliance on comparing DOM trees for its
`
`functionality (see, e.g., Zurko at Fig. 4, 0027, 0033, 0038, 0040). Li instead relies on a “flattened”
`
`linearized form. As noted above, the Parties agree that “parse tree” should be construed as “a
`
`hierarchical structure of interconnected nodes built from scanned content.” The tokenized source
`
`code in Li is input to the threadizor which eliminates “noise” from the tokenized source code 204’
`
`based on a dictionary of key actions, it converts the tokens to a language-independent
`
`representation, and it “flattens” the function-calling representation of key actions into a linearized
`
`form, or executing thread. Li at 6:41-49. A POSITA would understand that this step does not
`
`produce a parse tree, due to the “flattening” and linearization actions,8 and instead is incompatible
`
`with a hierarchical approach, as taught in Zurko. A POSITA would understand that the linear
`
`nature of this from is an essential feature in Li, as it allows for the patterns of key actions to be
`
`identified and matched. See, e.g., Li at 5:42-61, 6:13-61, 8:46-56, 9:12-27, 10:46-56, Figs. 7 and
`
`17
`
`11.
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`28
`
`
`
` Further, the flattened linearized form used in Li discards as “noise” tokens that are
`
`not key actions; that is, Li discards tokens corresponding to punctuation, variables, and user-
`
`defined functions. See, e.g., Li at Figs. 5A, 5B, 6, 7, 9A, 9B, 10, 11, and at 6:50-61, 7:52-59, 8:40-
`
`56, 9:4-11 (“leaving only a tokenized skeleton of the original scripting source code”), 10:41-45.
`
`
`
`8 See, e.g., Microsoft Computer Dictionary, Fifth Edition (2002) (FINJAN-QUALYS 770349-
`354). (“linear structure n. A structure in which items are organized according to strict rules of
`precedence. In a linear structure, two conditions apply: if X precedes Y and Y precedes Z, then X
`precedes Z; and if X precedes Y and X precedes Z, then either Y precedes Z or Z precedes Y.”)
`Contrast: (“hierarchy n. A type of organization that, like a tree, branches into more specific units,
`each of which is “owned” by the higher-level unit immediately above. Hierarchies are
`characteristic of several aspects of computing because they provide organizational frameworks
`that can reflect logical links, or relationships, between separate records, files, or pieces of
`equipment. For example, hierarchies are used in organizing related files on a disk, related records
`in a database, and related (interconnected) devices on a network. In applications such as
`spreadsheets, hierarchies of a sort are used to establish the order of precedence in which arithmetic
`operations are to be performed by the computer. See also hierarchical file system.”)
`
`GOODRICH EXPERT REPORT
`26
`Case No. 4:18-cv-07229-YGR (TSH)
`
`
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 6 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`233. Similar to Li, Zurko also discloses tokens that are in accordance with
`parser rules in a data structure. Thus, it would have been obvious to a POSITA to
`combine Li's parser that produces parsed results for computer exploit scanning,
`with Zurko's parser functionality that builds a parse tree.
`
`234. To the extent it may be found that this element is not disclosed by this
`reference explicitly, implicitly, or inherently, Li and Zurko would render this
`limitation obvious when combined with the knowledge of a POSITA. For
`example, it would have been obvious to construct a parse tree dynamically while
`the incoming stream is being received by the local computing system.
`Constructing a parse tree while receiving data on the computer constituted nothing
`more than combining prior art elements according to known methods to yield a
`predictable result that parse trees are generated for downloaded data.
`
`Rubin Report at ¶¶ 227-234.
`
`
`
`I disagree with Dr. Rubin’s opinion. As a preliminary matter, as explained above
`
`and included by reference here, a POSITA would not have been motivated to combine Li and
`
`Zurko and as explained further below, any purported combination would not remedy the
`
`deficiencies in Li. Further, neither Li nor Zurko disclose “parser rules … for the specific
`
`programming language” as required by the claim; hence, any alleged combination of Li and Zurko
`
`would necessarily not disclose or render obvious “a parse tree whose nodes represent tokens and
`
`patterns in accordance with the parser rules.” I include by reference my analysis for Claim 1(d).
`
`Further, Zurko is also silent as to “tokens;” hence, adding Zurko’s teaching to Li does not disclose
`
`or render obvious “a parse tree whose nodes represent tokens and patterns in accordance with the
`
`parser rules.”
`
` Dr. Rubin points to Li’s “building a data structure for tokens in accordance with
`
`parser rules.” Rubin Report at ¶ 228. I disagree with his description and that any such portion of
`
`Li teaches or renders obvious this claim element. Indeed, Dr. Rubin admits, “Li does not
`
`specifically disclose a parse tree that stores nodes and patterns as parsing results.” Rubin Report at
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`¶ 229. Further, as described above for Claim 1(d), and included by reference here, Li does not
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`28
`
`
`
`disclose “parser rules … for the specific programming language.” Moreover, it would not have
`
`been obvious to a POSITA to build a parse tree based on the purported teachings of Li. As noted
`
`above, the Parties agree that “parse tree” should be construed as “a hierarchical structure of
`
`interconnected nodes built from scanned content.” Li teaches away from the use of a “hierarchical
`
`structure,” such as a parse tree, and instead relies on a “flattened” linearized form. The tokenized
`
`source code in Li is input to the threadizor which eliminates “noise” from the tokenized source
`
`code 204’ based on a dictionary of key actions, it converts the tokens to a language-independent
`
`representation, and it “flattens” the function-calling representation of key actions into a linearized
`
`
`
`
`
`50
`
`GOODRICH EXPERT REPORT
`Case No. 4:18-cv-07229-YGR (TSH)
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 7 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`form, or executing thread. Li at 6:41-49. A POSITA would understand that this step does not
`
`produce a parse tree, due to the “flattening” and linearization actions.12 A POSITA would
`
`understand that the linear nature of this is an essential ingredient in Li, as it allows for the patterns
`
`of key actions to be identified and matched. See, e.g., Li at 5:42-61, 6:13-61, 8:46-56, 9:12-27,
`
`10:46-56, Figs. 7 and 11.
`
` Further, for the requirement of “parser rules,” Dr. Rubin is pointing to a teaching in
`
`Li that he has already mapped to “analyzer rules.” See, e.g., Rubin Report at ¶ 228 (“Li’s
`
`invention chains token nodes together in either a serial or a parallel chain.”). For example, Dr.
`
`Rubin is mapping the serial or parallel chaining taught in Li as stored in a master pattern file to the
`
`alleged “analyzer rules.” since the serial or parallel chaining is information that may be added to
`
`the master pattern file by a human virus analyst. See, e.g., Li at 7:22-8:7. More specifically, a
`
`POSITA would understand that the teaching in Li regarding chaining token patterns in serial or
`
`parallel chains as applying only to the elements in a master pattern file, as they allow a given input
`
`pattern to match a pattern expression from the master pattern file that is defined in terms of
`
`“AND” and “OR” combinations. Id. Thus, even if one accepts Dr. Rubin’s mapping of the master
`
`pattern file to the “analyzer rules” of the claim (which I disagree with), he cannot now call the
`
`same information the “parser rules.” I incorporate by reference my analysis for Claim 1(d). See,
`
`also, Li at 9:28-42. This is further evidence of Dr. Rubin apparently using the ’408 Patent as a
`
`guide in hindsight, since any alleged motivation to extend the serial or parallel chaining taught in
`
`Li to a parse tree would apply to what Dr. Rubin identifies as “analyzer rules” rather than “parser
`
`rules.”
`
` Zurko does not remedy these deficiencies. Dr. Rubin points to the building of a
`
`DOM tree in Zurko. Rubin Report ¶¶ 230-232. Dr. Rubin does not identify specifically where
`
`
`
`12 See, e.g., Microsoft Computer Dictionary, Fifth Edition (2002) (FINJAN-QUALYS 770349-
`354). (“linear structure n. A structure in which items are organized according to strict rules of
`precedence. In a linear structure, two conditions apply: if X precedes Y and Y precedes Z, then X
`precedes Z; and if X precedes Y and X precedes Z, then either Y precedes Z or Z precedes Y.”)
`Contrast: (“hierarchy n. A type of organization that, like a tree, branches into more specific units,
`each of which is “owned” by the higher-level unit immediately above. Hierarchies are
`characteristic of several aspects of computing because they provide organizational frameworks
`that can reflect logical links, or relationships, between separate records, files, or pieces of
`equipment. For example, hierarchies are used in organizing related files on a disk, related records
`in a database, and related (interconnected) devices on a network. In applications such as
`spreadsheets, hierarchies of a sort are used to establish the order of precedence in which arithmetic
`operations are to be performed by the computer. See also hierarchical file system.”)
`
`GOODRICH EXPERT REPORT
`51
`Case No. 4:18-cv-07229-YGR (TSH)
`
`
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`28
`
`
`
`

`

`Case 4:18-cv-07229-YGR Document 195-15 Filed 05/10/21 Page 8 of 8
`
`HIGHLY CONFIDENTIAL – ATTORNEY’S EYES ONLY
`
`any version of VM and/or the Scanner Appliance with respect to any claim of the ’408 Patent.
`
`Thus, Dr. Rubin has failed to establish that any of the Asserted Claims of the ’408 Patent are
`
`invalid in light of VM and/or the Scanner Appliance. Further, Dr. Rubin has failed to specify or
`
`establish any version of VM or Scanner Appliance as prior art or a non-infringing alternative to
`
`the ’408 Patent.
`
`
`
`DEMONSTRATIVES
`
`
`
`I anticipate that I may create or cause to be created demonstratives that I will use at
`
`trial to help explain to the jury various issues, such as background technology of the Asserted
`
`Patents, computer and network security generally, and the references and technologies asserted by
`
`Defendant as prior art. I reserve the right to create demonstratives to show and explain any of the
`
`concepts that I include in my Report below.
`
`
`
`In order to aid the Court and jury in understanding my opinion, I intend to create
`
`demonstrative exhibits for trial. These demonstrative exhibits will include non-graphical
`
`illustrations (such as documents, charts, tables, etc.) and graphical illustrations (such as figures,
`
`drawings, animations, pictures, videos, etc.). My demonstratives may include summaries of my
`
`background and findings in this case, the claim language, excerpts and/or annotations of cited
`
`evidence, and one or more timelines of important events. While these demonstratives have not yet
`
`been created, they will be completed and demonstrated at trial. I also will respond to and
`
`comment on any demonstratives created by Dr. Rubin.
`
` I
`
`
`
` declare under the penalty of perjury under the laws of the United States that the foregoing
`
`is true and correct. Executed on this 12th day of January, 2021 in Irvine, CA.
`
`
`
`
`
`
`
`__________________________________
`
` Michael T. Goodrich
`
`
`
` 148
`
`GOODRICH EXPERT REPORT
`Case No. 4:18-cv-07229-YGR (TSH)
`
`1
`
`2
`
`3
`
`4
`
`5
`
`6
`
`7
`
`8
`
`9
`
`10
`
`11
`
`12
`
`13
`
`14
`
`15
`
`16
`
`17
`
`18
`
`19
`
`20
`
`21
`
`22
`
`23
`
`24
`
`25
`
`26
`
`27
`
`28
`
`
`
`

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket