The present invention relates in general to discovering sensitive information on computer networks.
A network is a collection of links and nodes (e.g., multiple computers and/or other devices connected together) arranged so that information may be passed from one part of the network to another over multiple links and through various nodes. Examples of networks include the Internet, the public switched telephone network, the global Telex network, computer networks (e.g., an intranet, an extranet, a local-area network, or a wide-area network), wired networks, and wireless networks.
The Internet is a worldwide network of computers and computer networks arranged to allow the easy and robust exchange of information between computer users. Hundreds of millions of people around the world have access to computers connected to the Internet via Internet Service Providers (ISPs). Content providers place multimedia information (e.g., text, graphics, audio, video, animation, and other forms of data) at specific locations on the Internet referred to as webpages. Websites comprise a collection of connected, or otherwise related, webpages. The combination of all the websites and their corresponding webpages on the Internet is generally known as the World Wide Web (WWW) or simply the Web.
For Internet users and businesses alike, the Internet continues to be more and more valuable. People are increasingly using the Web for everyday tasks such as social networking, shopping, banking, paying bills, and consuming media and entertainment. E-commerce is growing, with businesses delivering more services and content across the Internet, communicating and collaborating online, and inventing new ways to connect with each other.
Some Internet users, typically those that are larger and more sophisticated, may provide their own hardware, software, and connections to the Internet. But many Internet users either do not have the resources available or do not want to create and maintain the infrastructure necessary to host their own websites. To assist such individuals (or entities), hosting companies exist that offer website hosting services. These hosting providers typically provide the hardware, software, and electronic communication means necessary to connect multiple websites to the Internet. A single hosting provider may literally host thousands of websites on one or more hosting servers.
Websites may be created using HyperText Markup Language (HTML) to generate a standard set of tags that define how the webpages for the website are to be displayed. Users of the Internet may access content providers' websites using software known as an Internet browser, such as MICROSOFT INTERNET EXPLORER, MOZILLA FIREFOX, or GOOGLE CHROME. After the browser has located the desired webpage, it requests and receives information from the webpage, typically in the form of an HTML document, and then displays the webpage content for the user. The user then may view other webpages at the same website or move to an entirely different website using the browser.
Browsers are able to locate specific websites because each computer on the Internet has a unique Internet Protocol (IP) address. Presently, there are two standards for IP addresses. The older IP address standard, often called IP Version 4 (IPv4), is a 32-bit binary number, which is typically shown in dotted decimal notation, where four 8-bit bytes are separated by a dot from each other (e.g., 64.202.167.32). The notation is used to improve human readability. The newer IP address standard, often called IP Version 6 (IPv6) or Next Generation Internet Protocol (IPng), is a 128-bit binary number. The standard human readable notation for IPv6 addresses presents the address as eight 16-bit hexadecimal words, each separated by a colon (e.g., 2EDC:BA98:0332:0000:CF8A:000C:2154:7313).
IP addresses, however, even in human readable notation, are difficult for people to remember and use. A Uniform Resource Locator (URL) is much easier to remember and may be used to point to any computer, directory, or file on the Internet. A browser is able to access a website on the Internet through the use of a URL. The URL may include a Hypertext Transfer Protocol (HTTP) request combined with the website's Internet address, also known as the website's domain name. An example of a URL with a HTTP request and domain name is: http://www.companyname.com. In this example, the “http” identifies the URL as a HTTP request and the “companyname.com” is the domain name.
Domain names are much easier to remember and use than their corresponding IP addresses. The Internet Corporation for Assigned Names and Numbers (ICANN) approves some Generic Top-Level Domains (gTLD) and delegates the responsibility to a particular organization (a “registry”) for maintaining an authoritative source for the registered domain names within a TLD and their corresponding IP addresses. For certain TLDs (e.g., .biz, .info, .name, and .org) the registry is also the authoritative source for contact information related to the domain name and is referred to as a “thick” registry. For other TLDs (e.g., .com and .net) only the domain name, registrar identification, and name server information is stored within the registry, and a registrar is the authoritative source for the contact information related to the domain name. Such registries are referred to as “thin” registries. Most gTLDs are organized through a central domain name Shared Registration System (SRS) based on their TLD.
The process for registering a domain name with .com, .net, .org, and some other TLDs allows an Internet user to use an ICANN-accredited registrar to register their domain name. For example, if an Internet user, John Doe, wishes to register the domain name “mycompany.com,” John Doe may initially determine whether the desired domain name is available by contacting a domain name registrar. The Internet user may make this contact using the registrar's webpage and typing the desired domain name into a field on the registrar's webpage created for this purpose. Upon receiving the request from the Internet user, the registrar may ascertain whether “mycompany.com” has already been registered by checking the SRS database associated with the TLD of the domain name. The results of the search then may be displayed on the webpage to thereby notify the Internet user of the availability of the domain name. If the domain name is available, the Internet user may proceed with the registration process. Otherwise, the Internet user may keep selecting alternative domain names until an available domain name is found. Domain names are typically registered for a period of one to ten years with first rights to continually re-register the domain name.
An individual or entity's domain name is increasingly the anchor around which their online presence is maintained. For example, a company's website (www.companyname.com) and email system (john.doe@companyname.com) utilize the company's domain name as an integral part of their architecture. Similarly, many Internet users use their email address, and therefore their domain name, as a means of identification on social websites, which have proliferated in recent years. Social websites are social networking services that focus on building and verifying online social networks for communities of people who share interests and activities, or who are interested in exploring the interests and activities of others, and which necessitates the use of software. Most social websites are Internet based and provide a collection of various ways for users to interact, such as chat, messaging, email, video, voice chat, personal information sharing, image sharing, video sharing, file sharing, status updates, blogging, discussion groups, commentary, etc. The main types of social networking services are those which contain directories of some categories (such as former classmates), means to connect with friends (usually with self-description pages), and/or recommendation systems linked to trust. Popular methods now combine many of these, with FACEBOOK, TWITTER, YOUTUBE, LINKEDIN, MYSPACE, BEBO, PHOTOBUCKET, SNAPFISH, WINDOWS LIVE PHOTOS, WEBSHOTS, and FLICKR being but a few examples.
Such social websites often post their members' public webpages for all Internet users to view, without authentication or login. Conversely, members' private webpages may only be accessed and viewed by the member. The private webpages generally require member authentication and provide the member with tools to manage his public webpage, communicate with other members, and/or otherwise manage his social website membership.
Many social websites, typically those that receive or share sensitive information (as well as websites associated with banks, credit card companies, and online businesses), may require Internet users to login to the website with a secure username and password before accessing the website's content.
The username/password system is a common form of secret authentication data used to control website access. The username/password is kept secret from those not allowed access. Those wishing to gain access are tested on whether or not they have a valid (recognized) username and whether they know the associated password. Internet users are granted or denied access to websites accordingly.
Many social websites have different rules governing the creation of usernames and passwords. Some require passwords that include a complex combination of letters, numbers, and other characters. Others have no restrictions whatsoever. With the proliferation of login-access websites, Internet users often must remember dozens (or more) different username/password combinations, one for each secure website they wish to access. This has resulted in what has come to be known as “password fatigue.”
Partly in response to these issues, the concept of the “digital identity” has evolved. A digital identity is a set of characteristics by which a person or thing is recognizable or distinguished in the digital realm. Digital identity allows for the electronic recognition of an individual or thing without confusing it for someone or something else.
There are many applications for an Internet user's digital identity, including authenticating the user before permitting access to a website. One method for such authentication includes the use of a URL. URL-based digital identity systems (such as OPENID) utilize a framework based on the concept that any individual or entity can identify themselves on the Internet with a URL provided by a Digital Identity Provider (e.g., johndoe.openid.com). The Digital Identity Provider maintains an Identity Server on which a Digital Identity Database (a database of provided digital identity URLs and the corresponding authentication passwords) is stored.
Once obtained, the Internet user may utilize their digital identity URL to access various websites. For example, to login to an OpenID-enabled website, the user enters their OpenID (e.g., johndoe.openid.com) in the username box. The user is then momentarily redirected to the user's Digital Identity Provider's website (or an authentication window appears) to login using whatever password they have set up with their Digital Identity Provider. Once authenticated, the Digital Identity Provider sends the participating website an encrypted message (a token) confirming the identity of the person logging in. There are currently numerous Digital Identity Providers offering URL-based (OpenID) digital identity services, meaning they offer digital identity URLs and servers to authenticate them.
One of the problems facing companies is properly securing customer records and companies' own records. Applicant hereby proposes novel systems and methods for discovering sensitive information on computer networks.
a-2b contain a computer code demonstrating the best mode implementation of the present invention.
a-3c contain a computer code demonstrating the best mode implementation of the present invention.
a-4c contain a computer code demonstrating the best mode implementation of the present invention.
a-5j contain a computer code demonstrating the best mode implementation of the present invention.
The present invention will now be discussed in detail with regard to the attached drawing figures which were briefly described above. In the following description, numerous specific details are set forth illustrating the Applicant's best mode for practicing the invention and enabling one of ordinary skill in the art of making and using the invention. It will be obvious, however, to one skilled in the art that the present invention may be practiced without many of these specific details. In other instances, well-known machines and method steps have not been described in particular detail in order to avoid unnecessarily obscuring the present invention. Unless otherwise indicated, like parts and method steps are referred to with like reference numerals.
Often the news reports that some company got hacked and thousands of SSN or credit card numbers were stolen. Some of these data leaks are due to abandoned database servers. The database servers may get abandoned in a rapidly growing company, when project get scrapped or upgraded, when employee resigns, or when the database server inventory is poorly managed. Sometimes the abandoned databases hold some critical, private, sensitive, or propriety information like login credentials, credit card numbers, or Personal Information (PI). When a server is not actively managed, it may get behind with security patches and updates. When a poorly managed server falls in the hacker's hands, the company may loose its reputation and competitive advantage.
The approach used in the present invention envisions crawling the network from a central point and finding the list of computers running a database instance. After the database types and versions are identified for each computer, a custom code is run to determine if there is any sensitive information in the database. If any sensitive information is found, then it gets reported back to the central database. The custom code may differ depending on the database type and/or version.
The database servers to be checked for critical information are either coming from a predetermined list or by using a network crawler or prober to identify computers containing a database instance. Using a network crawler may identify more computers containing a database instance than a predetermined list.
The inventors anticipate that the invention will help (1) to identify the unaccounted servers that are running on the network holding sensitive data, (2) to identify no longer used servers on the network, (3) to determine if the sensitive data is in plain text or encrypted (and level of encryption), (4) to spot any computers running a database server without authorization (potential insider's threat), (5) to secure sensitive data, (6) to save money in the power consumption by retiring unused servers, (7) to save money in the software licensing costs by retiring unused servers, etc.
The system implementing the present invention may contain a network crawler (prober) and a database parser.
The network crawler (prober, mapper) is a device or a computer readable code executed on a device that goes through the selected or entire range of IP addresses used by the organization, e.g., 171.16.0.0/19 or 10.0.0.0/8, etc. It may employ ICMP pings and/or TCP connection requests. If a server responds, then it may gather a partial or the entire list of port numbers that are open on the server. The information about the network servers and/or ports may be saved into one or more electronic storage devices. Open port 1433 may indicate that a MSSQL database is running on the server, open port 1521 may indicate that an ORACLE database is running on the server, open port 3306 may indicate that a MySQL database is running on the server, etc.
The database parser runs a code or query on the found database server to determine the presence of the sensitive information on the server.
A sample computer code for implementing the present invention is shown
An exemplary embodiment of a method of the present invention is shown in
The network crawler loops through a set range of network addresses and identifies servers with databases. The electronic storage devices may include any database or a file storage configured to store the data created or utilized by the methods or systems of the present invention. The pattern for the database data discovery may include keywords and key-phrases, e.g., “email”, “credit card”, “user”, “login” or wildcard or standardized patterns (such as regular expressions), e.g., “% email %”, “*e*mail*”, “̂4[0-9]{12}(?:[0-9]{3})?$” (for Visa credit cards, all Visa card numbers start with a 4, new cards have 16 digits, old cards have 13), “̂5[1-5][0-9]{14}$” (for MasterCard), “̂3[47][0-9]{13}$” (for American Express), “̂3(?:0[0-5]|[68][0-9])[0-9]{11}$” (for Diners Club), “̂6(?:011|5[0-9]{2})[0-9]{12}$” (for Discover), “̂(?:2131|1800|35\d{3})\d{11}$” (for JCB), “\b[A-Z0-9._%-]+@[A-Z0-9.-]+\.[A-Z]{2,4}\b” (for email), etc.
The electronic notification sent to the database administrator may be an email message, a text message, a telephone call, a pager call, a facsimile, etc. The database administrator managing a particular database may be determined from the database or server permissions or from a precompiled list.
A sample embodiment of the web-based graphical user interface with the summary of the qualifying records is shown in
The selector for assigning the status to the qualifying records may be implemented as a list, a drop-down, a radio-button choice, a link list, etc. The selector may contain a variety of values, such as, “false positive” (the records were marked in error), “vendor” (the qualifying records are in a third-party database), “replication column” (the qualifying records are part of a replication column), “compliant” (the qualifying records are compliant with the company policies), “required” (the qualifying records may not be compliant, but are required to be present at the database at this time), “dropped” (the qualifying records or related columns were deleted or dropped), “dev” (the qualifying records are needed for development purposes), etc.
The web-based graphical user interface may contain additional fields (e.g., text field) for the database administrator to provide additional explanations for the qualifying records.
After the database administrator sets the status, the system may further determine if the selection choice provided by the database administrator passes automated validation. E.g., if the database administrator sets the status to “dropped”, the system may check if the qualifying records or related columns were actually dropped, etc.
The system may further determine whether the record values in the qualifying records are encrypted and/or what level of encryption is used. Encrypted records may be compliant with the company data storage policies.
The invention may be implemented on a variety of computer networks. This may include a LAN (Local Area Network), WLAN (Wireless Local Area Network), WAN (Wide Area Network), MAN (Metropolitan Area Network), a global network, etc. The Internet is a widely-used global computer network. The computer networks may support a variety of a network layer protocols, such as, DHCP (Dynamic Host Configuration Protocol), DVMRP (Distance Vector Multicast Routing Protocol), ICMP/ICMPv6 (Internet Control Message Protocol), IGMP (Internet Group Management Protocol), IP (Internet Protocol version 4), IPv6 (Internet Protocol version 6), MARS (Multicast Address Resolution Server), PIM and PIM-SM (Protocol Independent Multicast-Sparse Mode), RIP2 (Routing Information Protocol), RIPng for IPv6 (Routing Information Protocol for IPv6), RSVP (Resource ReSerVation setup Protocol), VRRP (Virtual Router Redundancy Protocol), etc. Further, the computer networks may support a variety of a transport layer protocols, such as, ISTP (Internet Signaling Transport Protocol), Mobile IP (Mobile IP Protocol), RUDP (Reliable UDP), TALI (Transport Adapter Layer Interface), TCP (Transmission Control Protocol), UDP (User Datagram Protocol), Van Jacobson (compressed TCP), XOT (X.25 over TCP), etc. In addition, the computer network may support a variety of an application layer protocols, such as, COPS (Common Open Policy Service), FANP (Flow Attribute Notification Protocol), Finger (User Information Protocol), FTP (File Transfer Protocol), HTTP (Hypertext Transfer Protocol), IMAP and IMAP4 (Internet Message Access Protocol, rev 4), IMPPpre (Instant Messaging Presence Protocol), IMPPmes (Instant Messaging Protocol), IPDC (IP Device Control), IRC (Internet Relay Chat Protocol), ISAKMP (Internet Message Access Protocol version 4rev1), ISP, NTP (Network Time Protocol), POP and POP3 (Post Office Protocol, version 3), Radius (Remote Authentication Dial In User Service), RLOGIN (Remote Login), RTSP (Real-time Streaming Protocol), SCTP (Stream Control Transmission Protocol), S-HTTP or HTTPS (Secure Hypertext Transfer Protocol), SLP (Service Location Protocol), SMTP (Simple Mail Transfer Protocol), SNMP (Simple Network Management Protocol), SOCKS (Socket Secure Server), TACACS+ (Terminal Access Controller Access Control System), TELNET (TCP/IP Terminal Emulation Protocol), TFTP (Trivial File Transfer Protocol), WCCP (Web Cache Coordination Protocol), X-Window (X Window), etc.
The communication links between the computers on the network may include telephone line, copper twisted pair, power-line, fiber-optic, cellular, satellite, dial-up, Ethernet, DSL, ISDN, T-1, DS-1, Wi-Fi, etc.
A variety of programming languages and scripts may be used to implement the present invention, such as, Java, JavaScript, Perl, PHP, ASP, ASP.NET, Visual J++, J#, C, C++, C#, Visual Basic, VB.Net, VBScript, SQL, etc.
The computers utilized in the present invention may run a variety of operating systems, such as, MICROSOFT WINDOWS, APPLE MAC OS X, UNIX, LINUX, GNU, BSD, FreeBSD, SUN SOLARIS, NOVELL NETWARE, OS/2, TPF, eCS (eComStation), VMS, Digital VMS, OpenVMS, AIX, z/OS, HP-UX, OS-400, etc. The computers utilized in the present invention can be based on a variety of hardware platforms, such as, x86, x64, INTEL, ITANIUM, IA64, AMD, SUN SPARC, IBM, HP, etc.
The databases discovered on the network or used on electronic storage devices in the present invention may include: CLARION, DBASE, ENTERPRISEDB, EXTREMEDB, FILEMAKER PRO, FIREBIRD, FRONTBASE, HELIX, SQLDB, IBM DB2, INFORMIX, INGRES, INTERBASE, MICROSOFT ACCESS, MICROSOFT SQL SERVER, MICROSOFT VISUAL FOXPRO, MSQL, MYSQL, OPENBASE, OPENOFFICE.ORG BASE, ORACLE, PANORAMA, PERVASIVE, POSTGRESQL, SQLBASE, SQLITE, SYBASE, TERADATA, UNISYS, and many others.
An alternative embodiment of a method of the present invention is shown in
Referring to
Referring to
The means of the embodiments disclosed in the present specification can be substituted with machines, apparatuses, and devices described or listed in this specification or equivalents thereof. As a non-limiting example, the means of the embodiments may be substituted with a computing device, a computer-readable code, a computer-executable code, or any combination thereof.
All embodiments of the present invention may further be limited and implemented with any and all limitations disclosed in this specification or in the documents incorporated in this patent application by reference.
Applicant does not consider any step, element, or limitation being required or essential. The methods and systems of the present invention may be implemented without some of the disclosed steps, elements, or limitations.
Other embodiments and uses of this invention will be apparent to those having ordinary skill in the art upon consideration of the specification and practice of the invention disclosed herein. The specification and examples given should be considered exemplary only, and it is contemplated that the appended claims will cover any other such embodiments or modifications as fall within the true scope of the invention.
The Abstract accompanying this specification is provided to enable the United States Patent and Trademark Office and the public generally to determine quickly from a cursory inspection the nature and gist of the technical disclosure and is in no way intended for defining, determining, or limiting the present invention or any of its embodiments.
This patent application is related to U.S. patent application Ser. No. ______ (Docket 0275) entitled “Systems for Discovering Sensitive Information on Computer Networks” concurrently filed herewith and also assigned to Go Daddy Operating Company, LLC.