throbber
UNITED STATES PATENT AND TRADEMARK OFFICE
`_____________________________
`
`BEFORE THE PATENT TRIAL AND APPEAL BOARD
`_____________________________
`
`BLUE COAT SYSTEMS, INC.,
`Petitioner,
`
`v.
`
`FINJAN, INC.,
`Patent Owner.
`_____________________________
`
`Patent No. 8,225,408
`_____________________________
`
`
`
`DECLARATION OF AZER BESTAVROS, PH.D.
`
`FireEye - Exhibit 1002 Page 1
`
`

`
`TABLE OF CONTENTS
`
`I.QUALIFICATIONS ................................................................................................. 3
`
`II.SCOPE OF WORK ................................................................................................. 8
`
`III.OVERVIEW OF THE ’408 PATENT ................................................................... 9
`
`IV.LEGAL STANDARD .......................................................................................... 11
`
`V.OVERVIEW OF THE PRIOR ART ..................................................................... 13
`
`Chandnani ............................................................................................. 13
`A.
`Kolawa ................................................................................................. 16
`B.
`Knuth .................................................................................................... 17
`C.
`D. Huang ................................................................................................... 18
`E. Walls .................................................................................................... 19
`F.
`Chandnani, Kolawa, Knuth, Huang, and Walls Are All Analogous
`Art ........................................................................................................ 19
`
`VI.LEVEL OF ORDINARY SKILL AND RELEVANT TIME ............................... 25
`
`VII.CLAIM CONSTRUCTION ................................................................................ 26
`
`VIII.GROUND 1: Claims 2, 11, 24-28, and 30-34 are rendered obvious by
`Chandnani in view of Kolawa and Knuth ........................................................ 28
`
`IX.GROUND 2: Claim 8 is rendered obvious by Chandnani in view of Kolawa
`and Huang ....................................................................................................... 89
`
`X.GROUNDS 3 and 4: Claims 2, 8, 11, 24-28, and 30-34 are rendered obvious
`by the above-identified grounds further in view of Walls ................................ 96
`
`XI.CONCLUDING STATEMENTS........................................................................106
`
`XII.Appendix – List of Exhibits ...............................................................................108
`
`
`
`
`
`
`
`FireEye - Exhibit 1002 Page 2
`
`

`
`I, Azer Bestavros, declare as follows:
`
`I.
`
`QUALIFICATIONS
`1.
`
`I am a Professor of Computer Science at Boston University, whose
`
`faculty I joined in 1991. I chaired the Computer Science Department from 2000 to
`
`2007, overseeing a period of significant growth, culminating in the Chronicle of
`
`Higher Education’s ranking of the Department as seventh in the U.S. in terms of
`
`scholarly productivity.
`
`2.
`
`I am the Founding Director of the BU Hariri Institute for Computing at
`
`Boston University, which was set up in 2010 to “create and sustain a community of
`
`scholars who believe in the transformative potential of computational perspectives in
`
`research and education.” I am also the co-Chair of the Council on Educational
`
`Technology & Learning Innovation, which was set up in 2012 to develop Boston
`
`University’s strategy as it relates to leveraging on-line technology in on-campus,
`
`residential programs.
`
`3.
`
`In addition to my academic responsibilities at Boston University, over the
`
`years I have taken significant regional and national research leadership
`
`responsibilities. This includes: serving since 2010 as co-chair for Research, Education,
`
`and Outreach of the Massachusetts Green High-Performance Computing Center – a
`
`consortium of the five major research institutions in the Commonwealth of
`
`
`
`
`
`-3-
`
`FireEye - Exhibit 1002 Page 3
`
`

`
`Massachusetts (Boston University, Harvard University, MIT, Northeastern University,
`
`and the University of Massachusetts); serving since 2013 as board member of the
`
`Cloud Computing Caucus, a non-profit, non-partisan coalition of industry and key
`
`government stakeholders, focused on raising awareness and educating lawmakers and
`
`the public on issues associated with cloud computing; and serving from 2007 to 2012
`
`as the elected chair of the IEEE Computer Society Technical Committee on the
`
`Internet.
`
`4.
`
`I also organized Computer Science leadership workshops at the
`
`Computing Research Association (CRA) Snowbird conferences on models for
`
`university-led technology transfer and incubation in 2000, and on models for
`
`publications in CS in 2006. In addition, I organized a number of meetings to develop
`
`research agendas and recommendations to government agencies, including the PI
`
`meeting of the CRI program at NSF, and the HCCS committee of the National
`
`Coordination Office for Networking and Information Technology. Most recently, I
`
`served as chair of the 2014 Committee of Visitors tasked to review the performance of
`
`the CNS Division of the CISE Directorate of the National Science Foundation.
`
`5.
`
`I am a senior member of the Association for Computer Machinery
`
`(ACM) and a senior member of the Computer Society of the Institute of Electrical and
`
`Electronics Engineers (IEEE), among other professional societies and organizations.
`
`
`
`
`
`-4-
`
`FireEye - Exhibit 1002 Page 4
`
`

`
`Within these organizations, I served as general chair, PC chair or PC member of most
`
`flagship technical conferences in networking, real-time systems, and databases,
`
`including ACM Sigmetrics, IEEE Infocom, ACM PODC, IEEE ICNP, ACM MMSys,
`
`IEEE HotWeb, IEEE RTSS, IEEE RTAS, ICDCS, ACM LCTES, IEEE ICDE, ACM
`
`Sigmod, and VLDB. I co-organized formative workshops that led to ACM SIGPLAN
`
`LCTES and ACM SIGCOMM IMC. I have also served on the editorial board of major
`
`journals and periodicals, currently including IEEE Internet Computing and
`
`Communications of the ACM.
`
`6.
`
`Prior to joining the faculty at Boston University, from June 1988 to
`
`September 1991, I was a Research Fellow, Teaching Fellow, and Research Assistant
`
`at Harvard University. From September 1985 to June 1987, I was a Research
`
`Assistant, Teaching Assistant, and Instructor at Alexandria University (Egypt).
`
`7.
`
`I obtained my Ph.D. in Computer Science in 1992 from Harvard
`
`University under Thomas E. Cheatham, one of the “roots” of the academic genealogy
`
`of applied computer scientists. I also hold a Master of Science degree in Computer
`
`Science from Harvard University, which I obtained in 1988; a Master of Science
`
`degree in Computer Science and Automatic Control from Alexandria University,
`
`which I obtained in 1987; and a Bachelor of Science degree in Computer Engineering
`
`from Alexandria University, which I obtained in 1984.
`
`
`
`
`
`-5-
`
`FireEye - Exhibit 1002 Page 5
`
`

`
`8.
`
`I have studied, taught, practiced, and conducted research in Computer
`
`Science and Computer Engineering for more than 30 years. My expertise is in the
`
`broad fields of computer networking, distributed systems, and real-time computing,
`
`with significant experience in Web content caching and distribution systems, scalable
`
`Internet services, cloud computing, Internet architecture and networking protocols,
`
`among others.
`
`9.
`
`I have extensive consulting and industrial research experience, including
`
`past and current engagements with a number of technology firms, including BBN
`
`Technologies, Sycamore Networks, NetApp, Microsoft, Verizon Labs, Macromedia,
`
`Allaire, Bowne, SUTI Technologies, and AT&T Bell Labs. I have consulted and
`
`served on the technical advisory board of many companies, and I have been retained
`
`by a number of law firms as a consultant on intellectual property issues related to
`
`Internet technologies and applications.
`
`10. My curricular development efforts include my CS-350 course, which I
`
`developed and have taught since 1998. Through a rigorous treatment of the invariant
`
`concepts underlying computing systems design, CS-350 familiarizes students with
`
`canonical problems that reoccur in software systems, including operating systems,
`
`networks, databases, and distributed systems, and provides students with a set of
`
`classical algorithms and basic performance evaluation techniques for tackling such
`
`
`
`
`
`-6-
`
`FireEye - Exhibit 1002 Page 6
`
`

`
`problems. More recently, I have spearheaded a team effort to develop a set of courses
`
`for non-majors that can be used to introduce elements of mathematical abstraction,
`
`quantitative and methodical thinking, as utilized in mathematics, statistics, and
`
`computer science, with an emphasis on their relevance in our daily lives as reflected in
`
`widely used Internet and Web technologies and applications. In addition to these
`
`courses, I have taught undergraduate courses and graduate seminars on large-scale
`
`Internet systems, sensor networks, computer architecture, and real-time systems, and
`
`have guest-lectured in Sociology on issues related to Technology, Society and Public
`
`Policy.
`
`11. Over the years, my contributions in research, teaching, and service have
`
`been recognized by a number of awards, including multiple best-paper awards from
`
`IEEE and ACM conferences, multiple distinguished ACM and IEEE service awards,
`
`and being selected multiple times as a distinguished speaker of the IEEE Computer
`
`Society (last time in 2010). In 2010, I received the United Methodist Scholar Teacher
`
`Award in recognition of “outstanding dedication and contributions t3o the learning
`
`arts and to the institution” at Boston University, and the ACM Sigmetrics Inaugural
`
`Test of Time Award for research results “whose impact is still felt 10-15 years after its
`
`initial publication.”
`
`
`
`
`
`-7-
`
`FireEye - Exhibit 1002 Page 7
`
`

`
`12. A copy of my Curriculum Vitae, attached as EX10XX, contains further
`
`details on my education, experience, publications, patents, and other qualifications to
`
`render an expert opinion in this matter.
`
`II.
`
`SCOPE OF WORK
`13.
`
`I understand that a petition is being filed with the United States Patent
`
`and Trademark Office for Inter Partes Review of U.S. Patent No. 8,225,408 to Rubin
`
`et al. (“the ’408 Patent,” attached as EX1001), entitled “Method and System for
`
`Adaptive Rule-Based Content Scanners.”
`
`14.
`
`I have been retained by Blue Coat Systems, Inc. (“Blue Coat”) to offer an
`
`expert opinion on the patentability of the claims of the ’408 patent, as well as several
`
`other patents assigned to Finjan. I receive $550 per hour for my services. No part of
`
`my compensation is dependent on my opinions or on the outcome of this proceeding. I
`
`have previously testified for Blue Coat as an expert on the issue of noninfringement in
`
`case 13-cv-03999-BLF, which involved different patents. I do not have any other
`
`current or past affiliation as an expert witness or consultant with Blue Coat.
`
`15.
`
`I have been specifically asked to provide my opinions on claims 2, 8, 11,
`
`24-29, and 31-34 of the ’408 patent. In connection with this analysis, I have reviewed
`
`the ’408 patent and its file history. I have also reviewed and considered various other
`
`documents in arriving at my opinions, and may cite to them in this declaration. For
`
`
`
`
`
`-8-
`
`FireEye - Exhibit 1002 Page 8
`
`

`
`convenience, the information considered in arriving at my opinions is listed in
`
`Appendix A.
`
`III. OVERVIEW OF THE ’408 PATENT
`16.
`
`
`
`The ’408 patent is directed to protecting computers against
`
`potentially malicious programs using programming language-specific sets of rules and
`
`a “parse tree” data structure. EX1001 at Title, Abstract.
`
`17. The ’408 patent describes scanning an incoming stream of computer code
`
`by creating tokens, generating a parse tree using patterns in those tokens, and
`
`identifying patterns of tokens in the parse tree as potential exploits. See id. Patterns are
`
`identified using “parser rules” and “analyzer rules” specific to one of multiple
`
`programming languages. Accordingly, the challenged claims recite “multi-lingual”
`
`methods that determine a specific computer language from a plurality of languages
`
`and use a “scanner” specific to that language to scan the incoming stream of computer
`
`code.
`
`18. The ’408 patent was filed in August 2004 and was subject to a first office
`
`action rejecting and/or objecting to all claims in July 2008. Over the next four years,
`
`the applicant amended the claims in response to eight separate rejections. In 2012, the
`
`applicant substantially re-wrote the claims, adding additional limitations to the
`
`independent claims, including (1) multi-language processing capability and
`
`
`
`
`
`-9-
`
`FireEye - Exhibit 1002 Page 9
`
`

`
`(2) temporal restrictions regarding when the claimed system receives a data stream,
`
`builds a parse tree, and detects viruses within the parse tree. See EX1004 at 40-53.
`
`The claims were allowed following those additions. See EX1004 at 69-71.
`
`19.
`
`I understand that the priority date for a particular claim is based in part on
`
`when in a chain of related patents the written description that supports that claim first
`
`appeared. The ’408 patent was filed on August 30, 2004, as a continuation-in-part of
`
`Application No. 09/539,667 (now U.S. Patent No.6,804,780), filed on March 30,
`
`2000, which is itself a continuation of Application No. 08/964,388 (now U.S. Patent
`
`No. 6,092,194), filed on November 6, 1997.
`
`20. Although filed as a continuation-in-part, the ’408 patent shares almost
`
`nothing with the earlier-filed applications. For example, the ’667 and ’388
`
`applications do not mention “tokens” or “parse trees,” elements that appear throughout
`
`all claims of the ’408 patent. See EX1005, EX1006. The earliest specification that a
`
`person of skill in the art would recognize as providing a description of the subject
`
`matter of those claims was the application filed August 30, 2004, that later issued as
`
`the ’408 patent. See EX1001. As such, the challenged claims are entitled to a priority
`
`date no earlier than August 30, 2004, the ’408 patent’s own filing date.
`
`
`
`
`
`-10-
`
`FireEye - Exhibit 1002 Page 10
`
`

`
`IV. LEGAL STANDARD
`21.
`
`I understand that a claimed invention is not patentable under 35 U.S.C.
`
`§ 103, for obviousness if the differences between the invention and the prior art are
`
`such that the subject matter as a whole would have been obvious at the time the
`
`invention was made to a person having ordinary skill in the art to which the subject
`
`matter pertains.
`
`22.
`
`It is further my understanding that a determination of obviousness
`
`requires inquiries into: (1) the scope and contents of the art when the invention was
`
`made; (2) the differences between the art and the claims at issue; (3) the level of
`
`ordinary skill in the pertinent art when the invention was made; and, to the extent they
`
`exist, (4) secondary indicia of obviousness.
`
`23.
`
`I understand that a claim can be found to be obvious if all the claimed
`
`elements were known in the prior art and one skilled in the art could have combined
`
`the elements as claimed by known methods with no change in their respective
`
`functions, and the combination would have yielded nothing more than predictable
`
`results to one of ordinary skill in the art.
`
`24.
`
`I understand that hindsight must not be used when comparing the prior
`
`art to the invention for obviousness. Thus, a conclusion of obviousness must be firmly
`
`based on knowledge and skill of a person of ordinary skill in the art at the time the
`
`invention was made without the use of post-filing knowledge.
`
`-11-
`
`
`
`FireEye - Exhibit 1002 Page 11
`
`

`
`25.
`
`I understand that in order for a claimed invention to be considered
`
`obvious, there must be some rational underpinning for combining cited references as
`
`proposed.
`
`26.
`
`I understand that obviousness may also be shown by demonstrating that it
`
`would have been obvious to modify what is taught in a single piece of prior art to
`
`create the patented invention. Obviousness may be shown by showing that it would
`
`have been obvious to combine the teachings of more than one item of prior art. In
`
`determining whether a piece of prior art could have been combined with other prior art
`
`or with other information within the knowledge of one of ordinary skill in the art, the
`
`following are examples of approaches and rationales that may be considered:
`
`(a) Combining prior art elements according to known methods to yield
`
`predictable results;
`
`(b)
`
`Simple substitution of one known element for another to obtain
`
`predictable results;
`
`(c) Use of a known technique to improve similar devices (methods, or
`
`products) in the same way;
`
`(d) Applying a known technique to a known device (method, or product)
`
`ready for improvement to yield predictable results;
`
`
`
`
`
`-12-
`
`FireEye - Exhibit 1002 Page 12
`
`

`
`(e) Applying a technique or approach that would have been “obvious to try”
`
`(choosing from a finite number of identified, predictable solutions, with a
`
`reasonable expectation of success);
`
`(f) Known work in one field of endeavor may prompt variations of it for use
`
`in either the same field or a different one based on design incentives or other
`
`market forces if the variations would have been predictable to one of ordinary
`
`skill in the art; or
`
`(g)
`
`Some teaching, suggestion, or motivation in the prior art that would have
`
`led one of ordinary skill to modify the prior art reference or to combine prior art
`
`reference teachings to arrive at the claimed invention.
`
`V. OVERVIEW OF THE PRIOR ART
`27.
`
`In my opinion, and as explained in further detail below, claims 2, 8, 11,
`
`and 24-28, and 30-34 of the ’408 patent fail to identify anything new or significantly
`
`different from what was already known to individuals of skill in the field prior to the
`
`filing of the application that led to the ’408 patent, including prior to August 30, 2004.
`
`28. Below is an overview of certain of the main prior art references that I rely
`
`on for my opinion that claims 2, 8, 11, and 24-28, and 30-34 of the ’408 are
`
`unpatentable: Chandnani, Kolawa, Knuth, Huang, and Walls.
`
`A. Chandnani
`29. U.S. Patent Appl. Pub. No. 2002/0073330 (“Chandnani,” EX1007), titled
`
`“Detection of Polymorphic Script Language Viruses by Data Driven Lexical
`
`
`
`
`
`-13-
`
`FireEye - Exhibit 1002 Page 13
`
`

`
`Analysis,” was filed on July 14, 2001. I understand that Chandnani is prior art under
`
`35 U.S.C. § 102(b) because it was published on June 13, 2002, more than one year
`
`before the filing date of the ’408 patent.
`
`30. Chandnani teaches detecting polymorphic script language viruses using
`
`data-driven lexical analysis. EX1007 at [0002]. Like the ’408 patent, Chandnani scans
`
`for polymorphic viruses—those that have slightly different code but the same
`
`malicious functionality—by converting a data stream into a stream of tokens and then
`
`searching for patterns that indicate the presence of potentially malicious programs. Id.
`
`at [0014]-[0020], [0056]-[0065]. Also like the ’408 patent, Chandnani scans a
`
`continuous stream of data, and continues to receive upstream data while analyzing
`
`downstream data. See, e.g., id. at [0057] (describing the data stream as a series of
`
`characters), [0060] (describing a two-stage detection process), Fig. 2.
`
`31. Although Chandnani may not expressly describe how tokens are parsed
`
`and analyzed, Chandnani’s disclosure of parsing a stream into tokens and then storing
`
`those tokens suggests and implicitly teaches using a parse tree because a person of
`
`ordinary skill in the art understood that the obvious place to store those tokens was in
`
`a parse tree. See EX1007 at [0040]-[0046]; below ¶¶ 102-109.
`
`32.
`
`In addition, using a parse tree to store portions of an incoming data
`
`stream was obvious, as illustrated by prior art such as Kolawa. Use of a parse tree data
`
`
`
`
`
`-14-
`
`FireEye - Exhibit 1002 Page 14
`
`

`
`structure to represent and analyze computer code was well-known by 2004. Numerous
`
`prior art references describe the use of parse trees for these purposes, including the
`
`following:
`
`• EX1008 (Kolawa) at 3:8-12 (“The parse tree is searched for a match
`
`between such a node in the parse tree having a node type that matches
`
`such a node type in the set of node types for the selected quality rule.”),
`
`5:62-64 (“The quality of the source code 10 is checked on an individual
`
`parse tree basis.”)
`
`• EX1012 at 5:19-22 (“[I]nterceptor determines if the data retrieval request
`
`corresponds to at least one of the rules of the security policy, and
`
`identifies, via a parse tree, selectivity operators indicative of the
`
`allowable data items to be retrieved.”)
`
`• EX1013 at 5 (“The parser output is a full parse tree (a collection of
`
`nodes, each representing a piece of the SQL such as an operator,
`
`function, or value), which reflects all the SQL grammar.”) (“[T]he
`
`firewall compares this parse tree with the rules you’ve devised.”)
`
`• EX1014 at 5:3-5 (“[P]arser 20 processes the suspect string 26 and suspect
`
`filed [sic] 27 on a line-by-line basis and generates a hierarchical parse
`
`tree, as is known in the art.”)
`
`-15-
`
`
`
`
`
`FireEye - Exhibit 1002 Page 15
`
`

`
`• EX1015 at 14:25-28 (“Parser 296 identifies non-terminals and valid
`
`strings and creates a parse tree.”)
`
`• EX1016 at 13:34-36 (“[S]erver 102 converts the source-code instructions
`
`of the submitted query into a parse tree.”)
`
`B. Kolawa
`33. U.S. Patent No. 5,860,011 (“Kolawa,” EX1008), titled “Method and
`
`System for Automatically Checking Computer Source Code Quality Based on Rules,”
`
`was filed on February 19, 1996. I understand that Kolawa is prior art under 35 U.S.C.
`
`§ 102(b) because it issued on January 12, 1999, more than one year before the August
`
`30, 2004 filing date of the ’408 patent.
`
`34. Kolawa teaches a method and system for rule-based evaluation of source
`
`code quality. EX1008 at 1:19-22. In particular, Kolawa discloses using a
`
`“conventional” lexical analyzer that scans code, groups it into tokens, and organizes
`
`the tokens using a parse tree:
`
`The source code 10 is read as input to a lexical analyzer/parser 11 which
`
`is conventional in the art. The lexical analyzer scans the source code 10
`
`and groups the instructions into tokens. The parser performs the
`
`hierarchical analysis which groups the tokens into grammatical phrases
`
`that are represented by a parse tree 12.
`
`
`
`
`
`-16-
`
`FireEye - Exhibit 1002 Page 16
`
`

`
`Id. at 3:66-4:4; see also id. at Fig. 1. Kolawa then searches the parse tree to identify
`
`problematic code based on a set of rules. See id. at 4:48-59. Kolawa reports rule
`
`violations as error messages that describe the corresponding quality concern. Id. at
`
`4:59-60. Kolawa discloses an embodiment that supports two different programming
`
`languages and notes that support for additional languages is also possible. Id. at 3:53-
`
`56.
`
`C. Knuth
`35.
`
`“On the Translation of Languages from Left to Right” (“Knuth,”
`
`EX1009) was published in Information and Control in 1965. I understand that Knuth
`
`is prior art under 35 U.S.C. § 102(b) because it was published more than one year
`
`before the August 30, 2004 filing date of the ’408 patent.
`
`36. Knuth is a foundational paper describing the parsing of programming
`
`languages from left-to-right. EX1009 at Abstract. Knuth provides examples of
`
`parsing code and building parse trees using a shift-and-reduce process. EX1009 at
`
`618-625, Tables I and II. In one example, detailed in Table I, Knuth describes the
`
`shift and reduce process: “’Shift’ means ‘perform the shift left operation’ mentioned
`
`in step 2; ‘reduce p’ means ‘perform the transformation (21) with production p.’”
`
`EX1009 at 620. Knuth also describes the basic parsing steps of recursively matching
`
`
`
`
`
`-17-
`
`FireEye - Exhibit 1002 Page 17
`
`

`
`patterns in strings and generating parent nodes attached to those patterns, thereby
`
`generating a parse tree. EX1009 at 609-610.
`
`D. Huang
`37. U.S. Patent No. 6,968,539 (“Huang,” EX1010), titled “Methods and
`
`Apparatus for a Web Application Processing System,” was filed on August 4, 2000. I
`
`understand that Huang is prior art under 35 U.S.C. § 102(e) because it was filed before
`
`the August 30, 2004 filing date of the ’408 patent.
`
`38. Huang teaches a method and system for installing and processing web
`
`applications written as web pages that have access to the full range of operating
`
`system resource, including resources not typically accessible through a web browser.
`
`EX1010 at Abstract, 5:7-20. Huang teaches that scripting languages such as
`
`JavaScript are commonly used in web content such as HTML documents, and that
`
`they can be provided as program code embedded in an HTML document. EX1010 at
`
`8:57-64
`
`39. Huang further teaches a method and system for parsing, for example, the
`
`HTML code of the web applications to determine whether it contains references to
`
`Uniform Resource Locators (URLs) of web objects that may not be allowed by the
`
`web application’s security setting. Id. at 10:25-36. Huang teaches that if a violation is
`
`
`
`
`
`-18-
`
`FireEye - Exhibit 1002 Page 18
`
`

`
`detected, for example, if the HTML code includes a link to an URL that is not allowed
`
`by the security setting, an exception is generated. EX1010 at 10:31-40.:
`
`E. Walls
`40. U.S. Patent No. 7,284,274 (“Walls,” EX1011), titled “System and
`
`Method for Identifying and Eliminating Vulnerabilities in Computer Software
`
`Applications,” was filed on January 18, 2002. I understand that Walls is prior art
`
`under 35 U.S.C. § 102(e) because it was filed before the August 30, 2004 filing date
`
`of the ’408 patent.
`
`41. Walls, like Kolawa, teaches a methodology for identifying potential
`
`source code vulnerabilities. EX1011 at Abstract. Walls, like Kolawa, generates a parse
`
`tree of the code being analyzed and then searches the parse tree for matches that
`
`indicate potential vulnerabilities. Id. at 7:25-31, 8:31-36. Walls uses a “pipelined”
`
`approach to analyze code in stages, such that different parts of a single code stream
`
`can be parsed and analyzed at the same time. Id. at 7:3-6. One advantage of this
`
`technique is “the advantage of pipelining the process where multiple components can
`
`be analyzed simultaneously.” Id. at 7:7-11.
`
`F.
`Art
`42.
`
`Chandnani, Kolawa, Knuth, Huang, and Walls Are All Analogous
`
`I understand that to combine prior art references when evaluating
`
`validity, those references must generally be “analogous.” To be analogous, the art
`
`
`
`
`
`-19-
`
`FireEye - Exhibit 1002 Page 19
`
`

`
`must be in the same field of endeavor as the ’408 patent and/or must be pertinent to
`
`the problems to which the ’408 patent is directed.
`
`43. This requirement is met by each of the references that are used in
`
`combination in this declaration. Each reference is in the same field of endeavor as the
`
`’408 patent—a field that includes rule-driven “content scanners” for analyzing
`
`program code. See EX1001 at Title, Abstract.
`
`44. Although the ’408 patent focuses on detecting potentially malicious code,
`
`a POSA would have understood that scanning for malicious code involves the same or
`
`similar techniques as scanning for related code quality and security issues. Most of the
`
`written description in the ’408 patent focuses on the structure and function of the
`
`patent’s rule-based scanner, rather than on what the scanner is trying to detect. See,
`
`e.g., EX1001 at 6:14-16, Figs. 1-4.
`
`45. The rule-based nature of the ’408 patent’s scanner means that the
`
`underlying structure of the purported invention would not change based on what type
`
`of code is being scanned. Instead, because rules can be established to search for
`
`arbitrary patterns, the only change necessary to convert from scanning for exploits to
`
`scanning for code vulnerabilities (or other code quality issues) would be the inclusion
`
`of rules designed specifically to search for tokens and patterns of tokens indicative of
`
`code quality problems. See EX1001 at 6:17-20 (“An ARB scanner system is
`
`
`
`
`
`-20-
`
`FireEye - Exhibit 1002 Page 20
`
`

`
`preferably designed as a generic architecture that is language independent, and is
`
`customized for a specific language through use of a set of language-specific rules.”);
`
`6:35-37 (“It may thus be appreciated that the present invention provides a flexible
`
`content scanning method and system, which can be adapted to any language syntax.”).
`
`46. Detection of exploits is closely intertwined with detection of code
`
`weaknesses because malware often takes advantage of and attacks vulnerabilities and
`
`other weaknesses in software code:
`
`For an experienced hacker or rogue insider, manipulating software to this
`
`end is made especially easy due to the variety of information and tools
`
`available on-line. An attacker’s biggest challenge is simply finding the
`
`vulnerabilities in the context of a large business application.
`
`EX1017 at 1:43-48.
`47.
`
`In some respects, the only difference between a code quality problem and
`
`a vulnerability to a malicious virus is the intent of the person who creates or exploits
`
`the problem. A quality problem, such as a pattern of code that creates a security hole,
`
`might be innocently created by one programmer. That same security hole might also
`
`be used by a hacker to propagate a virus.
`
`48. Prior art references confirm the link between code quality and malicious
`
`software attacks. For example, the ARCHER reference shows that coding errors “can
`
`be exploited by malicious attackers to compromise a system.” EX1018 at 1. Similarly,
`
`
`
`
`
`-21-
`
`FireEye - Exhibit 1002 Page 21
`
`

`
`the Chess patent notes that “security vulnerabilities are subtle, logical errors that can
`
`span thousands of lines of code” and that an “attacker’s biggest challenge is simply
`
`finding the vulnerabilities in the context of a large business application.” EX1017 at
`
`2:25-28, 1:46-48.
`
`49. As discussed in more detail below, each reference combined in this
`
`declaration is directed to scanning and analyzing programming code and to scanning
`
`for potential exploits and/or other security concerns. For example, Chandnani is
`
`directed to analyzing code to detect potential viruses. See id.; EX1007. Kolawa
`
`discloses rule-based systems for detecting potential problems in source code. See
`
`EX1008 at 2:34-36 (“automatically checking source code quality based on rules”).
`
`Knuth is a foundational paper describing the parsing of programming languages from
`
`left-to-right. EX1009 at Abstract. Huang is directed to analyzing the code of web
`
`application to ensure, among other things, that no security rules are violated. See
`
`EX1010. Walls scans for security vulnerabilities in programming code. See EX1011.
`
`50. Chandnani is directed to rule-driven code scanning. Chandnani uses the
`
`term “data driven” in its title and through its specification. See EX1007. A person of
`
`ordinary skill in the art would have understood “data driven” to be synonymous with
`
`“rule-based,” not least because Chandnani equates the two. Id. at [0069] (“a rule-
`
`based approach may be used for script language detection”). Like the ’408 patent,
`
`
`
`
`
`-22-
`
`FireEye - Exhibit 1002 Page 22
`
`

`
`Chandnani can search for different patterns by modifying the data that defines those
`
`patterns. Id. at [0055]. Also like the ’408 patent, Chandnani parses suspect code into
`
`tokens and can detect token patterns that correspond to potential exploits even if the
`
`byte-for-byte coding of those tokens differs from one iteration to another.
`
`51. Kolawa is also directed to rule-driven code scanning. Kolawa’s
`
`disclosure focuses on rule-based systems for analyzing code to identify potential
`
`problems in the code. EX1008 at 2:34-37 (“automatically checking source code
`
`quality based on rules”), Title (“Method and System for Automatically Checking
`
`Computer Source Code Quality Based on Rules”). Kolawa also describes its systems
`
`as a scanner. Id. at 3:66-4:2. Although Kolawa’s rule-based scanner is intended to
`
`detect “program errors and bugs of all kinds” (as opposed to the “potential exploits”
`
`described in the ’408 patent), both references detect potentially harmful patterns in
`
`code, notwithstanding the intent of the code’s author. Id. at 1:26-29.
`
`52. A person of ordinary skill in the art would understand that Kolawa is
`
`directed to the same general

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