Dunstan et al v. comScore, Inc.
Filing
156
DECLARATION of Jay Edelson regarding memorandum in support of motion 154 (Attachments: # 1 Exhibit A, # 2 Exhibit B, # 3 Exhibit C, # 4 Exhibit D, # 5 Exhibit E, # 6 Exhibit F, # 7 Exhibit G, # 8 Exhibit H, # 9 Exhibit I, # 10 Exhibit J, # 11 Exhibit K, # 12 Exhibit L, # 13 Exhibit M, # 14 Exhibit N, # 15 Exhibit O, # 16 Exhibit P, # 17 Exhibit Q, # 18 Exhibit R, # 19 Exhibit s, # 20 Exhibit t)(Thomassen, Benjamin)
EXHIBIT C
IN THE UNITED STATES DISTRICT COURT
FOR THE NORTHERN DISTRICT OF ILLINOIS
EASTERN DIVISION
MIKE HARRIS and JEFF DUNSTAN,
individually and on behalf of a class of
similarly situated individuals,
Plaintiffs,
v.
COMSCORE, INC., a Delaware corporation,
Defendant.
)
)
)
)
)
)
)
)
)
)
)
)
Case No. 1:11-5807
Hon. James F. Holderman
Expert Witness Report of Don Waldhalm
Prepared Pursuant to Fed. R. Civ. P. 26(a)(2)(B)
I have prepared this Expert Witness Report (“Report”) pursuant to Rule 26(a)(2)(B) of
the Federal Rules of Civil Procedure for the purpose of summarizing my forthcoming expert
opinion testimony to be offered in the above-captioned case.
A.
Qualifications
I am currently the Director of Software Development for The Sylint Group, Inc., a
company specializing in cyber security, digital forensics, and eDiscovery. I graduated in 2001
with an industrial engineering degree from Mississippi State University and have been employed
as a professional computer programmer for over a decade. For the past seven (7) years I have
worked extensively in the fields of digital forensics and source code analysis. A copy of my
Curriculum Vitae, which further describes my educational and professional background, is
attached as Exhibit A.
B.
Statement of Opinions to be Expressed at Trial and the Bases or Reasons for Those
Opinions.
The bases for my opinions summarized below, which I expect to provide further
testimony about in this matter, are the result of an extensive, eight (8) month review of
Defendant comScore, Inc.’s (“comScore”) source code that was provided to me by Plaintiffs’
counsel. In addition, I was provided with three (3) Exhibits that were produced by comScore
during discovery in this lawsuit, two of which describe the types of data that its software was
designed to collect from individual computers, and the other shows a variety of dialog boxes that
may be displayed to a user during the software’s installation process.
In January 2012, I was provided with two (2) sets of comScore’s source code. The first
relates to comScore’s software designed for use with Microsoft Windows (“Windows”)
operating systems; the other is designed for use with computers running the Macintosh operating
system (“MacOS”). Subsequently, in April 2012, I was provided with eight additional sets of
source code related to various builds of the MacOS software. In addition to the below, I intend to
testify that while certain differences exist amongst the MacOS and Windows versions of the
source code, both are designed to function in a substantially similar fashion. Accordingly, this
Report collectively refers to the source code comprising comScore’s software, unless otherwise
specified. Following are the six main topics that I intend to testify about.
1.
RKVerify, the software component that was designed to validate user consent
when installing comScore’s software, confirms that certain textual elements
contained in the dialog box displayed to users during installation are present, but
does not verify the existence of a functioning hyperlink to comScore’s full EULA.
comScore developed a software module titled “RKVerify,” which is designed to confirm
that certain information is displayed in a “dialog box” to users during its software’s installation
process. I intend to testify that RKVerify is designed to confirm that certain textual elements are
2
contained in that dialog box, such that every user who installs the software views the same, or
substantially similar Terms of Service language. In addition, based upon my review of its source
code, I do not believe that RKVerify was designed to confirm that a functioning hyperlink to
comScore’s full End User License Agreement (“EULA”) is contained within the dialog box.
2.
comScore’s software captures the contents of webpages viewed by a user, as well
as information that he or she inputs into a webpage.
A significant portion of my testimony will involve explaining the manner in which
comScore’s software is designed to capture and transmit back to its servers data that a user inputs
into a web browser, as well as the content displayed on websites viewed by the user. This data
collection occurs during secure and unsecure web browsing sessions. Additionally, during
HTTPS POST operations—where the user is most likely to input certain sensitive information
(such as credit card numbers, social security numbers, or passwords) into his or her web
browser—the software intentionally captures and hashes fields in that data and sends it to
comScore’s servers. A rudimentary explanation of the technology underlying the act of web
browsing, as well as the collection and hashing method used by comScore’s software are helpful
in illustrating how this works.
The “language” used to facilitate communications between web browsers and websites is
called Hypertext Transfer Protocol (“HTTP”). When a user requests information—through his or
her web browser—from a website, the browser makes an HTTP “request,” and the website’s
server sends back an HTTP “response.” Traditional HTTP communications are unencrypted, and
thus are susceptible to interception and exploitation. To avoid these dangers, a secure version of
the HTTP service was created—HTTP Secure (“HTTPS”). Using the HTTPS protocol,
communications sent and received from a user’s web browser are encrypted. To inform users
when a connection with a website is “secure,” web browsers generally display a graphical image
3
of a padlock in the upper left corner of the URL toolbar.
By design, comScore’s software captures both HTTP and HTTPS traffic. For practical
purposes, this means that information inputted into a web browser by a user—including names,
addresses, phone numbers, social security numbers, usernames, passwords, bank account
numbers, and credit card numbers—is collected and transmitted to comScore’s servers. The
software hashes sensitive data before sending it to comScore’s servers.
In this context, a hash function is a cryptographic method used to convert an arbitrary
block of data into a fixed-size bit string. The particular hash method used by comScore’s
software is known as the MD5 hash. To illustrate how the method works, when a MD5 hash is
applied to the password “12345,” the algorithm would output the following hash value:
827ccb0eea8a706c4c34a16891f84e7b. Thus, with respect to comScore’s software, when a user
inputs the password “12345” into his or her web browser, the hash value, as well as the
corresponding password field’s name, are transmitted to comScore’s servers.
Input boxes on websites are assigned “field names” in the webpage’s code. For example,
an input box that allows a user to provide a password may be titled “password_1” within that
webpage’s code. Depending on the type of sensitive information to be collected, comScore’s
software will identify such field names, hash the data inputted into that field, and then send both
the field name and its now transformed contents back to comScore’s servers. Thus, by way of
example, if John Doe enters his password into a website, that password will be manipulated and
transmitted to comScore’s servers, along with the underlying name of the field (i.e.,
“password_1”).
In addition to the foregoing data collection practices, comScore’s software also captures
certain text contained in PDF files viewed by a user. To accomplish this, the software converts
4
the text of PDF files into HTML format, and then transmits the converted data to its servers.
Another function of the software is that it identifies certain predetermined keywords on a
webpage and then captures “snippets”—a set number of characters—immediately proceeding
and following that keyword.
With the above forming the bases of my opinion, I intend to testify that comScore takes
deliberate steps to gather and transmit sensitive information that a user inputs into a web
browser. I also intend to testify that comScore does not take steps to “filter” or refrain from
collecting such data. Furthermore, I intend on testifying that comScore’s methods for attempting
to protect users’ sensitive information (i.e., hashing) do not meet commercially viable standards.
3.
comScore’s software scans every directory on a user’s computer and collects
information about certain files.
I also intend to testify about comScore’s software’s methods for searching through the
“directory tree” on a user’s computer and for gathering information about the existence of certain
files. During such searches, comScore’s software is designed to capture, among other
information, file names and directory paths. comScore’s software packages this information into
a compressed file and transmits it back to comScore’s servers.
In order to complete the installation process, comScore’s software requires administrator
privileges. Once installation is complete, the software retains such privileges. Thus, while
operating on a user’s computer, the software is able to access or manipulate any file, regardless
of user security settings that may protect such files. When the software does access a file,
comScore’s software is designed to modify the file’s “last accessed date” metadata field, such
that it would appear that the file was not accessed by the software even though it has been.
Based on my review, I also understand that only certain types of files or file names will
be sent back to comScore’s servers, as defined by rules enumerated by comScore. comScore’s
5
software does appear to categorically collect and transmit full directory path names to
comScore’s servers.
4.
comScore designed its MacOS software to scan and inventory all network
drives.
As introduced above, both the MacOS and Windows versions of comScore’s software are
designed to function in substantially similar fashion. One difference I intend to testify about,
however, is that certain MacOS software was designed to scan files and file directories (as
described in Section 3) located not only on local hard drives but also on networked drives
mapped to the user’s computer.
5.
comScore captures a user’s web browsing history from the time period prior to
installation on his or her computer.
My review of the source code also revealed, and I expect to testify, that comScore’s
software was designed to access the Internet Explorer web browser’s cache—a temporary file
containing the user’s web viewing history—and collect the previous 25 websites visited by the
user prior to the installation of comScore’s software. The software then sends an HTTP request
to those 25 websites, in order to initialize the top URLs per process metric in the comScore
software—as if the software had been installed during the last 25 web requests.
6.
comScore targets iPhone, iPad, iPod, and Blackberry backup files for data
collection.
My review also shows that comScore’s software is designed to access data contained in a
user’s iPhone, iPad, iPod, and BlackBerry backup files.
Examples of information that the source code is designed to collect from the user’s
smartphone’s backup files are the device’s unique ID, web browsing history, and information
about mobile applications used on the device.
6
C.
Exhibits
In my testimony, I may use as exhibits certain illustrative diagrams to help explain how
comScore’s software works. I may also use relevant portions of comScore’s source code and
certain other documents produced by comScore during discovery in this lawsuit as exhibits to
assist in that explanation.
D.
Compensation
I am compensated at a rate of $165.00 per hour for my work on this case, including for
any appearances at deposition or trial.
E.
Testimony
I have not testified at any trial or during a deposition within the past four (4) years.
Dated: September 17, 2012
______________________
DON WALDHALM
7
EXHIBIT A
The Sylint Group, Inc.
240 N Washington Blvd
Suite 600
Sarasota FL, 34202
Don Waldhalm
Software Development Work Experience
Director of Software Development
Sylint Group
February 2005-Present
Projects
Source code analysis for international intellectual property infringement case:
Organized the review process for neutral third party arbitrator
o Negotiated neutral third-party selection process
o Reviewed neutral third-party qualifications and applications
o Determined neutral third-party preference
Outlined source code comparison goals and techniques
o Reviewed source code to validate third-party opinion
o Identified relevant portions of source code to be compared
o Identified relevant properties to be sought
o Identified terms and conditions to be considered infringing
Relevant Technologies:
o C++
o Delphi
o Windows API
o IE add-on
E-discovery development for internal Sylint Use:
Designed and developed the “DRIL ®” application (Document Review and Inspection for
Litigation).
DRIL provides the mechanism by which Sylint accelerates communication between technical
analysts and the litigation teams that they support.
Provides an intuitive interface which is accessible from anywhere, so our clients and their clients
can collaborate in their e-discovery efforts with ease.
Software is used extensively by several national law firms.
Forensic development for internal Sylint Use:
Designed and developed “Disk Mapper ®” – which helps Sylint detect and describe intentional
spoliation of electronic evidence.
1
The Sylint Group, Inc.
240 N Washington Blvd
Suite 600
Sarasota FL, 34202
Automatically identifies discrepancies between actual data and the MFT on an evidence drive.
Has passed Daubert challenge in Federal Court
Cyber security development and support for multiple fortune 1000 companies
Developed “Sylint Stalker”-- a series of applications and windows services that help Sylint detect
and defeat state-of-the-art viruses, malware, and cyber warfare attacks.
Scalable to very large networks (over 35,000 computers).
Prevents command and control communication without alerting virus handlers.
Line-of-business migration for a Large National Nonprofit Organization:
Replaced an underperforming and high-maintenance business application.
Led a team of developers comprised of both internal and client staff.
Architected an entire enterprise solution for streamlining the line-of-business operations and
performance monitoring.
Designed and built a SQL database to replace three different Access databases and oversaw the
data-migration effort.
Designed and built all the middleware business classes.
Oversaw and participated in the building of the Windows UI.
Architected the integration of existing ASP web pages with new ASPX pages.
Designed ASP.net web services for partners and vendors to use for automatic integration with
the new application.
Integrated the existing website with new business classes.
Technologies used:
o SQL server 2005
o C# and VB.net (Dot Net framework 2.0 and 1.1)
o ASP.net
o ASP classic
o CSS style sheets
o Authorize.net shopping card
o SOAP web services
o CSLA business object framework
o DevExpress UI controls
o Code Smith code generator
Line-of-business application for a Multi-Lawyer Immigration Law Firm:
Built a custom business application
o Tracks the progress of cases and the legal status of both clients and potential clients.
o Provides an interface for daily operations, as well as client retention and generation
activities.
o Serves as a digital archive for a large collection of historical records.
2
The Sylint Group, Inc.
240 N Washington Blvd
Suite 600
Sarasota FL, 34202
Designed and built a SQL database and Windows client for digital archiving.
Built a custom scanning and PDF-generating module for archiving cases as they are processed.
Integrated government forms so they are filled out, processed, and archived in one step instead
of three.
Implemented various performance-monitoring reports.
Technologies used:
o SOAP web services
o VB.NET (Dot net Framework 1.1)
o SQL server 2000
o VS TWAIN
o PDF
o Crystal Reports
Line-of-business application for a Genetic Forensic Analysis Company:
Designed and built a line-of-business application for the company which had recently made
several corporate acquisitions.
Used SQL 2005 and C#.net to build a Windows application which is used in all processing
information and accounting interfaces.
Provided interfaces for existing shopping carts from several existing web sites—each using its
own form of online payment.
Integrated the new system with an existing oracle-based application that drives some of the
DNA analysis machines.
Re-engineered existing Java application for statistical analysis of DNA data.
Designed and installed a processing system utilizing barcode scanners and label printers that
helped to streamline the interactions with clients as well as internal operations.
Technologies used:
o C#.net
o SQL server 2005
o Oracle
o SQL-CE
o Java
o Pay-Pal integration
Source code and development process analysis for a large power utility company:
Analyzed an existing application, development team and development process. Reported to top
management with technical and staffing recommendations.
Identified technical weaknesses and strengths.
Identified business process weaknesses and strengths.
3
The Sylint Group, Inc.
240 N Washington Blvd
Suite 600
Sarasota FL, 34202
Identified staff members and management personnel who were in positions for which they are
not qualified, and who were underperforming.
Identified staff members who were in positions beneath their qualifications and skill level.
Produced a project development plan to:
o Reduced development staff from 43 to less than 10
o Establish and meet reliability and performance goals
o Properly implement n-tier distributed application design and SQL server best practices
(especially security related)
o Improve application scalability
Application development for Internal Sylint Use:
Created a console login application that retains admin credentials for a list of severs and
automatically opens a remote console session to the selected server.
Created an event log file gatherer that sweeps the network and gathers previously identified log
files from client PCs.
Integrated phone systems with existing and new databases.
Designed and set-up a printing system for voice-mail messages for an Altigen phone system.
Built a utility to detect indicators of potential forensic tampering.
Technologies used:
o C++
o Windows API
o Regular Expressions
o Extensive use of the Dot Net framework
Director of Logistics and Support
Glenroe Technologies (mid-sized orthodontic manufacturing company)
March 2002-February 2005
Reported directly to the president
Upper-management position with the following employees reporting to me:
o Shipping department manager
o Customer service department manager
o Marketing Manager
o IT Manager
o Quality Control department manager
o Warehouse Manager
o Two Industrial Engineers (I served as the IE department manager)
4
The Sylint Group, Inc.
240 N Washington Blvd
Suite 600
Sarasota FL, 34202
Projects
Warehouse Partner:
VB.net, SQL 2000, RF barcode scanners, Zebra label printers.
Production modeling with Extend:
Custom API
ISO 9000 content management:
MS Access
Website Management:
Front page and Dreamweaver
Great Plains Dynamics:
Daily monitoring and SQL backups
Application configuration
Custom processing application production departments:
VB 6, MS Access, SQL 2000, MS Excel
Streamline solutions for Shipping, Sales, and Customer service:
MS Word, mail merge, MS Excel, MS Access, SQL 2000, VB6, VBA
IT support for 30 users:
MS Exchange server, MS CRM, Great Plains Dynamics (now also MS)
Ladder logic controllers for custom machines:
Heaters, robot arms, scales, printers, lights, bells, etc…
Sylint Software Development Methodology
Sylint develops software for its clients using the experience gained by John Jorgensen, President of
Sylint, as both a Program Manager for the National Security Agency and Director of Program
Management for Loral Data Systems Division in their execution of government contracts. Government
software development standards and methodology are used by Sylint to ensure: 1) comprehensive
development documentation; 2) testability and verification; 3) reliability; 4) non-problematic
upgradability; 5) ease of implementation; and 6) longevity of base software.
Although we are always willing to adapt to existing frameworks whenever it is advantageous to the
client or project at hand (for example, MS Project , AxoSoft On Time Bug Tracker, Microsoft Source
5
The Sylint Group, Inc.
240 N Washington Blvd
Suite 600
Sarasota FL, 34202
Control, Mercurial, CVS, Java Netbeans ) we currently prefer to work with Microsoft's suite of tools and
languages. Specifically, we use Microsoft Team Foundation to manage software development projects
and the related source control. Also, we build most of our applications on top of the Dot Net
framework. C# is our preferred language.
Education
Bachelor of Science
Industrial Engineering
Mississippi State University, 2001
6
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?