WO2003101069A1 - Firewalls for securing networks and http applications - Google Patents

Firewalls for securing networks and http applications Download PDF

Info

Publication number
WO2003101069A1
WO2003101069A1 PCT/ES2002/000254 ES0200254W WO03101069A1 WO 2003101069 A1 WO2003101069 A1 WO 2003101069A1 ES 0200254 W ES0200254 W ES 0200254W WO 03101069 A1 WO03101069 A1 WO 03101069A1
Authority
WO
WIPO (PCT)
Prior art keywords
communication
signature
entity
parameters
user
Prior art date
Application number
PCT/ES2002/000254
Other languages
Spanish (es)
French (fr)
Inventor
Luis Mora Hidalgo
Xabier Panadero Lleonart
Original Assignee
Grupo S21Sec Gestión, S.A.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Grupo S21Sec Gestión, S.A. filed Critical Grupo S21Sec Gestión, S.A.
Priority to AU2002310775A priority Critical patent/AU2002310775A1/en
Priority to PCT/ES2002/000254 priority patent/WO2003101069A1/en
Publication of WO2003101069A1 publication Critical patent/WO2003101069A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0227Filtering policies
    • H04L63/0245Filtering by information in the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • H04L63/123Applying verification of the received information received data contents, e.g. message integrity
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/16Implementing security features at a particular protocol layer
    • H04L63/168Implementing security features at a particular protocol layer above the transport layer

Definitions

  • the invention generally relates to systems and methods for providing security in a network and, more particularly, to systems and methods for providing security in networks and applications of the Hyper-Text Transfer Protocol (HTTP), such as from Internet.
  • HTTP Hyper-Text Transfer Protocol
  • Computers include conventional desktop and laptop models, as well as Personal Digital Assistants (PDA) and other handheld devices, such as the Palm Pilot PocketPC and the Viewer.
  • PDA Personal Digital Assistants
  • Other types of devices are also used to transmit and receive data.
  • some mobile radio and two-way pagers not only provide voice communication capabilities, but also allow the transfer and reception of text messages, and can be used to surf the Internet.
  • enhanced television, WebTV and other interactive television devices provide data capabilities in addition to viewing television programs. These devices are just a few examples of devices that are currently available, and that can communicate with other devices.
  • a protocol that defines how the two devices can communicate.
  • multiple protocols can be used in several layers within the network. These layers include the physical layer, the data link layer, the network layer, the transport layer, the session layer, the presentation layer and the application layer.
  • the protocol can govern the transmission of bits, control transmission errors, define the routing of messages within a network, ensure the reliability of transmissions or define the message format.
  • HTTP Hyper Text Transfer Protocol
  • WWW World Wide Web
  • content provider to offer information to end users through a Web site at the
  • WWW HTTP is not language specific, although most content providers use hypertext markup language (Hyper Text Markup Language - HTML). In this way, HTTP also covers the browsers and servers of the Wireless Application Protocol (WAP).
  • WAP Wireless Application Protocol
  • WAP Wireless Markup Language
  • HTML Wireless Markup Language
  • HTTP is a transactional protocol, which means that it is based on requests from a client, such as a web browser, and responses from a server, such as a web server.
  • a client sends a request to a server, this request identifying a method and a universal resource locator (URL).
  • the server receives the request and processes the URL, obtaining, for example, the information associated with the URL.
  • For each request of a client there is a response from the server.
  • Requests include reading a web page, sending a form, etc.
  • HTTP is very well defined, has a very simple syntax and provides a basis on which applications can be built to provide services.
  • the servers can have several HTTP applications. Often, content providers need to offer services through their content servers, either a simple application that will collect reactions from visitors, or a more complex one such as a shopping cart, or an e-commerce application. All these applications They share a common HTTP-based interface that allows a remote client to interact with the underlying resources, such as files, databases, etc., through a web browser. These applications are called HTTP applications, and are often referred to as Web Applications or WWW Applications. The information is passed to the HTTP applications in the request, usually setting parameters or decoys with the information provided by the user when filling out a form.
  • Figure 2 shows an example of a web page and its corresponding HTML.
  • the background of this figure shows a form, a questionnaire, available on a server that hosts the domain with the URL http: //www.s21 sec.com/caste/cuestionario/cuestionario.htm.
  • the request is routed to the server, the server extracts the content associated with that URL and possibly performs some additional actions, and then routes a response back to the client.
  • This answer includes the html displayed in the notebook.
  • the client browser interprets the html and resolves the interface shown in the background.
  • HTTP application receives the parameters and processes them, sending a response back to the client with the result of the processing.
  • HTTP applications do not depend on programming languages, but only on the interface (HTTP).
  • An HTTP application therefore, can be encoded in any language, such as C, C ++, Visual Basic, Perl, or Java, without being limited to them.
  • There are well-known mechanisms for interacting with HTTP such as the Common Gateway Interface (CGI), Active Server Pages -
  • a network environment is beneficial in that the devices can communicate with each other, but exposes the devices and systems connected to the network to security risks.
  • Network security is often conceived as the protection of access to network resources, in order to ultimately avoid incursions into enterprise systems.
  • a firewall is usually located between the network and an enterprise system, in order to avoid such incursions. When installing a firewall, a primary concern is to filter ports that could be vulnerable to outside attacks.
  • HTTP applications allow devices to access resources from a server.
  • HTTP applications may include some kind of interaction between the end user and the company's background system, be it a database server, access to files on the server, or simply access to a server of e-mail.
  • HTTP applications therefore, need privileges over these resources to allow them to pass through the firewall, access the database, interact with the underlying operating system, etc., because HTTP applications can provide access to sensitive areas In a business system, a malicious user can subvert a vulnerable HTTP application and break into company resources, and compromise their entire business.
  • FIG. 3 shows a diagram of a typical firewall 10 installed within a network.
  • the firewall 10 is located between a server 12 and the clients 8.
  • the firewall 10 provides security to the server 12 in the Telnet and HTTP layers, but offers no protection to an HTTP application 14.
  • a traditional approach to application security has been the review and audit of the source code. Part of the code review takes place after an application has been completed, and involves having someone, often a third party, review all the code and fix any security issues that are discovered. This procedure is a never-ending task, since the auditor may miss security errors that will end up in the revised application, so it is not a guarantee of total safety. As more and more complex applications are developed, and the time to market is shrinking in order to be the first to offer a service to customers, the revision of the source code is no longer a option, since freezing the deployment of an application for days or weeks means loss of business and income. There is, therefore, a need for systems and methods to provide security in a network, especially with HTTP applications.
  • the present invention addresses the problems described above by providing systems and methods that offer security in a network.
  • the systems and methods include the signature of transmissions sent from a system, and then the verification of transmissions back in order to ensure that a signature associated with those transmissions matches the content in the transmissions.
  • the systems and methods according to the invention generate a signature, unique to the transmission, based on important characteristics of that transmission. For example, the signature can be based on fields within the transmission, values of those fields, acceptable lengths of variables, etc.
  • the invention is well endowed for use on the Internet, on servers that provide content to users. In this environment, the responses sent from the server are analyzed, summarized and then signed before sending them to users.
  • the requests received from the users include the signature, and these requests are intercepted before sending them to the server.
  • the signature on these requests is decrypted and then compared with the effective content within the request. If the signature corresponds to the request itself, the request is sent to the server. On the contrary, if the content of the request does not match the signature, the access of the request to the server is blocked.
  • the systems and methods according to the invention can, therefore, provide security to IP networks, such as the Internet.
  • the invention can be used to block attacks on vulnerable application samples, content server deployment problems, decoy poisoning, entry validation, hidden field manipulation, warehouse overflow, government by commands between headquarters and attacks by the false door.
  • the invention does not depend on user sessions, whereby the invention does not require significant resources from a server and can easily be added to any server.
  • the invention is not limited to a single server, but can used in a multi-server environment with other network elements, such as load balancers.
  • the invention can also be used with other security measures, such as the Secure Socket Layer - SSL port layer.
  • the system can be configured according to the wishes of its end user.
  • the user can designate certain pages as initial pages, which means that no signature is required to access them.
  • the user can also designate certain pages as Exception pages, which is especially beneficial in an ISP environment, where multiple domains are hosted on a server and where users need to modify those pages.
  • the system preferably logs all errors and locks, and provides this log in a user interface.
  • Figure 1 is a diagram illustrating the communications between a client and a server
  • Figure 2 illustrates an example web page form, along with its underlying HTML code
  • Figure 3 is a diagram of a typical firewall installation
  • Figure 4 is a diagram with a security system according to a preferred embodiment of the invention
  • Figures 5 (A) and 5 (B) are flowcharts of methods for processing responses to clients and requests to servers, respectively;
  • FIGS. 6 (A) and 6 (B) are more detailed block diagrams of response processing and request processing, respectively;
  • Figures 7 (A) and 7 (B) are process flow diagrams for a response and a request, respectively;
  • Figure 8 is a flow chart of a review section of an application
  • Figure 9 is an example of an interface supplied to a user that obtains details from a client
  • Figure 10 is an example of an interface supplied to a user from blocking an attack that looks for details of a client
  • Figure 11 is an example of an interface supplied to a user as a result of blocking an attack that seeks an arbitrary recording of a file
  • Figure 12 is an example of a connection interface
  • Figure 13 is an example of a configuration selection interface
  • Figure 14 is an example of an administrator settings selection page
  • Figure 15 is an example of a general configuration page
  • Figure 16 is an example of an edit page for general options
  • Figure 17 is an example of a client error page
  • Figure 18 is an example of a key options interface
  • Figure 19 is an example of the key size in a drop-down menu in the key options interface
  • Figure 20 is an example of the key duration in the drop-down menu in the key options interface
  • Figure 21 is an example of a node configuration interface
  • Figure 22 is an example of a node configuration editing interface
  • Figure 23 is an example of the interface of the main page of a domain
  • Figure 24 is an example of the domain edit page
  • Figure 25 is an example of the home page of the initial pages
  • Figure 26 is an example of the editing page of the initial pages
  • Figure 27 is an example of an exception page interface
  • Figure 28 is an example of an edit page of an exception page
  • Figure 29 is an example of a default homepage interface
  • Figure 30 is an example of an email page interface from the administrator
  • Figure 31 is an example of a user page of a new configuration
  • Figure 32 is an example of a user home page
  • Figure 33 is an example of an interface of the user editing page
  • Figure 34 is an example of configuration control buttons
  • Figure 35 is an example of a heading provided in a registry interface
  • Figure 36 is an example of an interface of the registration page
  • Figure 37 is an example of a drop-down menu with the records page interface
  • Figure 38 is an example of a reset page interface.
  • the invention generally relates to systems and methods for providing security in a network with applications.
  • the systems and methods intercept at least some of the client requests to a server, and also intercept at least some of the responses from the server to the clients.
  • the systems and methods generate communications signatures from the server to the client, and then verify the client's requests against those signatures. If the client's requests match the signature, then the requests are sent to the server. On the contrary, when the responses do not match the signatures, the access of the responses to the server is blocked.
  • the invention will be described with reference to systems and methods that provide an HTTP application firewall.
  • systems provide security to applications hosted on a server, and with interfaces to a network through HTTP.
  • systems and methods provide security to servers and applications in the World Wide Web (WWW).
  • WWW World Wide Web
  • the invention is not limited to strictly HTTP applications, or to servers connected to the Internet.
  • the invention encompasses systems and methods in other types of networks, the use of non-HTTP protocols and other types of applications.
  • the invention encompasses the Wireless Application Protocol (WAP), Intranets, XML applications and HDML applications.
  • WAP Wireless Application Protocol
  • Intranets XML applications
  • HDML applications HyperText Transfer Protocol
  • systems and methods By intercepting responses and requests, systems and methods impose the HTTP protocol as defined in Internet standards, disallowing anyone who tries to break into protected applications, falsifying requests, for example, or modifying legitimate requests.
  • Preferred systems are placed between the client and the server and intercept both HTTP requests and responses, and verify that the content of the request is not malicious. This verification is based on information derived from the content, such as HTML, derived from FORM fields, etc., Networks and applications can be potentially vulnerable to multiple and varied attacks.
  • the systems and methods according to the invention prevent and provide assistance to prevent many such attacks.
  • systems and methods can protect vulnerable sample applications.
  • Default installations of a WWW server often include sample pages and applications intended to show the server's capabilities to a new user. These applications are sometimes vulnerable to attacks and are actively exploited by pirates.
  • the systems and methods stop access to those pages not directly mentioned in the Web site, such as sample applications or files not intended to be published, such as database files, Web site log files, private documents, etc. ., found too frequently on publicly available servers.
  • the invention can address the problems of implementing content servers.
  • WWW servers may have deployment problems, such as the US Unicode error recently found, or the overflow of the shmtl store of Iplanet 4.0. These and other problems may, as will become apparent to those versed in technology, be addressed by the systems and methods of the invention.
  • the invention can be used to prevent decoy poisoning. Applications often rely on decoys to keep track of user sessions, or to store transient information, such as connection identifiers or passwords. Modifying these values can lead to security problems, which can be prevented by systems and methods using content signature.
  • Ticket validation is another example of an application of the invention. Often, an application has to validate all the input it receives from a client.
  • an application accepts an email address in a field, but that an attacker sends commands that will be executed on the content server.
  • the application must filter any invalid character by identifying any individual point of entry into the application, and then verifying the client's values.
  • the systems and methods of the invention make this task easy and safer by embedding information about the expected values in the content of the page, and automatically verifying the values upon receipt of the client's request.
  • HTML content can force a client's browser to allow only a limited number of characters to be entered in a form field. This limitation is imposed by the customer, but can easily be mocked. Applications that depend on content length limits often have storage and memory overflow problems cluster, which ultimately allow remote access to the server. Systems and methods detect and impose the maximum length of a field and preferably record and block every attack.
  • Command-to-site governance is another example of an advantage of the invention.
  • the government for commands between headquarters is a problem of the client that consists in deceiving a client so that he thinks he is accessing a headquarters, when in fact he is accessing a malicious headquarters.
  • This malicious site can be used to collect user connection information, credit card data, or simply to attack the company name.
  • the systems and methods of the invention can address the problem of governance by commands between headquarters.
  • the above examples include a limited set of attacks or acts of piracy that the use of the invention can prevent, or at least discourage. As those versed in technology will appreciate, there are today additional attacks or acts of piracy, and further attacks and acts of piracy that pose a danger to the systems will develop.
  • the invention therefore, is not limited to the above examples, but may instead be adapted to these other types of attacks and acts of piracy.
  • the systems according to the invention can be located in various places between the client and the server.
  • the systems are inserted between the HTTP protocol and the layers of the HTTP application, and have the ability to • intercept any message between both layers, so that they are able to impose the interface between HTTP and the application.
  • a security system 20 may be physically separated from a server 26 and clients 24.
  • System 20 receives requests from clients 24 through a network 22, and also receives any response from server 26 before being delivered through network 22 to clients 24.
  • the invention is not limited by the types of customers, but instead covers any type of device or system, including, but not limited to, digital television, enhanced television, WebTV or other types of interactive television 24a; the computers 24b; 24c laptops; the Palm Pilot, the PocketPC, the Viewer or other Personal Digital Assistants and 24d data devices; and mobile radiotelephones, interactive pagers or other communication devices 24e.
  • the system 20 is intended for use with a server 26.
  • the invention is not limited to a client-server environment, but instead encompasses part-time communications, distributed computing. or other network environments.
  • FIG. 4 illustrates system 20 as a stand-alone system, separate from server 26 and network 22.
  • System 20 can be implemented as a network artifact that is placed precisely in front of Web server 26, and functions as a server. proxy '.
  • This autonomous version of the system 20 is recommended where the benefits are crucial or where there are a large number of Web domains or servers 26.
  • the configuration of the autonomous version requires changes in the network topology, since it must be configured as a 'proxy' of HTTP servers 26.
  • System 20 is not limited to functioning as a stand-alone system, but instead can be located anywhere in the network where system 20 can intercept requests and responses.
  • system 20 can be located anywhere where system 20 can intercept transmissions between clients and servers, verify transmissions by any malicious request that could result in legal access and take appropriate action. .
  • the system 20 can be co-resident with the same server 26, as a modular version of a content server.
  • system 20 can be implemented as an extension to an HTTP server, such as US, Netscape / lplanet and Apache.
  • System 20 is installed on the same machine than the HTTP server and does not need any special network configuration to work. This configuration of the system 20 is recommended where there are a limited number of domains and servers, or where maximum performance or throughput is not required. In addition, this configuration is easier to establish, since it does not require any changes to the network topology.
  • the system 20 can be implemented as part of the network 20 and / or as part of the devices 24.
  • FIG. 5 A flow chart according to a preferred method 30 of intercepting responses is described in Figure 5 (A).
  • the system 20 receives the content sent to a client 24.
  • the server 26 delivers the content in response to a previous request received from the client 24.
  • the invention is not limited to servers 26 that only respond when they are requested, but can also be used with servers 26 that automatically deliver the content without any previous request.
  • the system 20 analyzes the content that is being sent to the client 24. Then, the system summarizes the content and generates an encrypted signature in 35, based on that summary. This signature is specific to a particular piece of content, or set of content, such as a page with certain fields and default values.
  • the system 20 encrypts the signature at 35 to prevent the client 24 from modifying the signature, thereby distorting the security measures. Once the signature is encrypted, in 36 the system 20 sends the content with the encrypted signature to the client 24.
  • All method 30 and system 20 are preferably transparent to both server 26 and client 24.
  • server 26 operates in the same manner as it does without executing method 30, and without interposing system 20 between server 26 and clients 24, so that, preferably, no modification is necessary to the server 25 or any of its applications.
  • Method 30 and system 20 are also transparent to customers 24, so customers 24 do not see any difference in operation.
  • Method 40 begins at 41 when server 26 receives a client request. As will become more evident with the description below, at least some of the requests, but not necessarily all, will trigger method 40.
  • system 20 will intercept the request, decrypt the request, and derive the signature
  • system 20 compares the signature encrypted in the request with the content of the same request. During normal operation, without any alteration of the request, the signature will correspond to the content of the request. In that case, in 44, the system 20 determines that the request is valid and in 46 it sends the request to the server 26 for processing. If, otherwise, the request has been manipulated, then in 44 the system 20 finds that the signature and the request do not correspond, and will block the request in 45.
  • method 30 comprises receiving content that is being delivered to the client. Analyzing the content, the system 20 determines if a subsequent request from a client 24 is valid. The system 20, however, does not need to analyze all the content that is being delivered to the clients 24 and, in fact, preferably omit some answers.
  • system 20 preferably does not sign responses from server 26 where clients 24 can initiate communications with server 26.
  • these responses could be associated with a root page or other pages than clients.
  • 24 should be able to visit freely, and that offer a low risk of attack.
  • the system 20 allows an administrator to configure certain URL resources as "Home Pages", which means that no signature is required to access the resource.
  • the start pages should be configured to be those pages in the structure of the Web site that can be accessed directly by a client 24, by typing them, for example, in the browser's URL bar, through links available on other sites or Well using bookmark features. These pages include the main welcome page or root page, the main page for departments, etc. Because access to Start pages is not restricted, an application should not be designated as a Start page, as it will not benefit from content signature protection.
  • the administrator may designate some content as Exception Pages.
  • the configuration of URL resources as "Exception Pages" will cause system 20 to deliver these pages to clients 24 without any content signature.
  • An Exception page is well equipped for those configurations where some content is beyond the control of the organization, such as in an ISP provision, where users can modify their own Web pages. In these types of situations, the signature of those pages could compromise security, since a malicious user could publish a Web page with links to falsified requests that could lead to application security problems.
  • System 20 preferably prevents access to pages not directly referred from within the content server, or configured as home pages. Thus, if a content server 26 installs applications and sample content that the administrator does not know, system 20 automatically blocks access to such sample content. A malicious user, therefore, is blocked to access "sample” pages or applications installed during the configuration of the content server, which, if found vulnerable, is the most widely used type of attack against content servers 26 .
  • system 20 intercepts the response from server 26 to a client request, analyze the response and summarize the response. Analyzing and summarizing, system 20 can generate a signature for that response and determine later if a request from a customer is valid. The summary covers the identification of important parts of the content from which the signature can be generated. This signature describes fields and values present on the page.
  • System 20 can perform this analysis and summary in various ways.
  • the system 20 analyzes the entry points in the content, such as forms, input fields, etc., and signs them creating a unique signature that is inserted into the response on the fly. It is guaranteed that this signature is unique and unmodifiable by encrypting it before the system 20 inserts it into the content.
  • the system 20 then retransmits the page to the client 24 in a completely transparent procedure for the content designer and for the end user.
  • the content designer does not need to alter its design in order to allow the system 20 to work, nor will the end user see a change in the appearance of the page.
  • system 20 can determine that other portions or aspects of the response are important, and use those other portions or aspects to generate a signature.
  • system 20 uses encryption in the signature procedure.
  • system 20 decrypts the request to obtain a plain text version of the signature.
  • This signature is then compared to the content of the same request when validating said request.
  • System 20, for example, can compare the signature with the type, value, length and cardinality of the request.
  • System 20 offers 128, 192 or 256 bit encryption, providing different levels of security in exchange for some loss of efficiency linked to encryption processing. The user can choose a life period for the key, resulting in time frames reduced for a possible large-scale piracy effort against encrypted text.
  • Each system configuration 20 has its own key, which avoids security problems linked to the shared keys. System 20 allows an administrator to generate keys or enter them manually from within the configuration interface. Since AES was developed outside the US, it is not restricted by US encryption export laws.
  • Comparison System 20 generates the signature of the response at 35 and delivers the response with the signature encrypted at 36. Later, when a request is received from a customer 24, system 20 compares a signature associated with the request with the request. petition. For example, once a user processes a page and accesses an HTTP application on server 26, for example, by dispatching a form, following a link, etc., client 24 sends a request that includes the signature to the content server . Before the request is delivered to the server 26, the system 20 intercepts the request and makes the comparison.
  • the request is validated based on the expected variables and values and the effective content of the request. If the input matches the expected values, system 20 supplies the request transparently to the HTTP application that will process it. Otherwise, if for any reason the entry in the request does not match the expected values, the system 20 blocks the request at 45. By blocking the request, the system 20 can generate a configurable information error and send this error to the user. System 20 can also enter the event in a registry of illegal access entries and optionally provide real-time alerts to an administrator.
  • System 20 validates the entry based on the original content information in order to detect malicious or invalid responses.
  • One way in which the system 20 validates the input is by examining totals of variables and names to ensure that an application receives exactly the number of variables it is waiting for, and stopping all access to unknown application functionalities, such as debugging functions or false doors.
  • System 20 also verifies the value of the content. If values are imposed on the page, using, for example, "hidden" fields, options for configuration, etc., then the system 20 checks if they are present in the client's request. System 20 validates the length of the content value in the request. If the content designer imposed a content length, the system 20 validates that the input conforms to that maximum length.
  • system 20 imposes a default configured length to prevent attacks based on store overflows or cluster memories.
  • System 20 monitors the destination URL and allows a client 24 to access only a designated set of URLs. System 20 only checks for these designated URLs, so a user cannot jump from one URL to another without the proper permissions.
  • the system 20 does not use decoys in order to keep track of the users; All necessary information is embedded in the page sent to the client. As a result, no special configuration is needed, in the user’s load balancers or browsers, in order to operate with the system 20. In addition, any privacy concerns that may have arisen due to the use of decoys, because the system 20 itself does not use decoys.
  • system 20 does not use decoys in the content signature, the system 20, however, is operable with the servers 26 and with the applications that use decoys.
  • System 20 can perform the signing and validation of decoys.
  • an HTTP application places a decoy in the end-user browser
  • system 20 intercepts the corresponding HTTP header and signature, allowing integrity checks over the decoy once it is sent back to the server in future requests.
  • By signing these decoys system 20 prevents a user from modifying the contents of a decoy and, thus, stops attacks based on decoy poisoning.
  • the system 20 is not limited by the types of devices 24 or the types of systems 26.
  • the environment is a client-server environment, the devices being 24 clients and being the system 26 a server.
  • System 20 is not limited to a single server 26, but instead supports multiple servers When signing the content of the page, the system 20 does not require any special configuration to support redundant fault-tolerant systems, where more than one system 20 is present or where load balancers are located. In fact, multiple systems 20 can be deployed in the same domain if all systems 20 share the master key.
  • System 20 does not have a limit for sessions or requests from concurrent users. System 20 also does not require an excessive amount of memory in order to accommodate user details, as it distributes authentication information between servers and clients. The system, therefore, can run on a network without any additional requirements, be it a low-end PC or a built-in system where resources are expensive and limited. This feature, and the fact that the system 20 does not use decoys or any other special function on the client side, makes the system 20 a "plug and use" technology, for use in any network device that has the ability to intercept traffic, be it a traditional firewall, a load balancer, an HTTP proxy / accelerator, etc.
  • System 20 supports additional security measures, such as the Secure Socket Layer (SSL) Layer, both in the server module and in autonomous versions.
  • SSL Secure Socket Layer
  • System 20 transparently controls SSL connections by hooking between SSL and application layers, so no special configuration is required to operate in SSL environments.
  • system 20 decrypts SSL messages while it is between server 26 and client 24.
  • System 20 automatically controls this conversion using the SSL certificate of the secure Web server in order to decrypt the traffic between client 24 and server 26.
  • client-side applications such as Javascript, VBScript, Java and Flash
  • client-side applications such as Javascript, VBScript, Java and Flash
  • HTTP applications located on server 26.
  • These applications often manipulate form URLs or values after server 26 has sent them.
  • the system 20 detects the manipulation in the request and refuses to pass the request to the application.
  • the system 20 can be configured to offer two levels of security for client side applications. At a low level, system 20 accepts requests where the content of variables has been modified, provided that the modifications do not exceed the maximum predefined length. At a high level, the system refuses to accept any request that has been modified on the client side, except those variables and values defined in the configuration or marked on the page with labels.
  • system 20 is transparently integrated into a client network, taking advantage of the resources that are already located.
  • System 20 can be used with load balancing or high availability, without any need for reconfiguration.
  • no step is required in order to synchronize the status information with other systems 20 operating in a 'cluster' configuration, since the information is automatically distributed between servers and clients during normal operation. In this way, no request will be lost or affected by the latency due to synchronization, even if the system 20 goes offline.
  • system 20 recovers, system 20 will automatically receive the most recent configuration from the other nodes and will start operating safely as from the first request.
  • System 20 preferably maintains a record of events, such as a record of all invalid requests received from customers.
  • System 20 preferably records all requests for illegal access in a human-readable register, accessible through the Web. Additionally, system 20 can issue alerts or warnings. These alerts can be issued in a variety of ways, such as via email, a pager or other text message system or voice. Real-time alerts can warn administrators when illegal attempts are being made, so the administrator can take appropriate action to counter such attempts. Any attempt at illegal access blocked by system 20 can be a real attempt, since the modification of requests requires an operation on the side of the malicious user. System 20, therefore, does not issue false positive messages in the registry, but simply attacks on applications blocked by system 20.
  • the system 20 can be implemented according to the wishes of a client. In other words, the system 20 can preferably be customized for a particular environment according to the wishes of a customer.
  • System 20 supports a large number of customizations and security settings.
  • the system 20 also offers a "plug and use” configuration option, which allows a user without any security knowledge to provide security to the applications hosted at their headquarters, without any need to configure any value.
  • This "plug and use” configuration is designed for systems 20 that protect multiple domains, such as in a host company, where the task of updating and protecting the content is outside the scope of the administrator, leaving that task to the end user, a user who does not necessarily have the knowledge to configure the system 20.
  • system 20 only signs objects that will access an application, including forms and links where parameters are passed.
  • System 20 does not protect pages or verify signatures where no arguments are involved.
  • This configuration allows a server to protect its applications without having to configure start pages.
  • System 20 does not protect decoys; To protect decoys, the decoy section of the configuration must be defined.
  • the security settings for client-side procedures will be set to "LOW", allowing most Javascript applications to work while server-side applications are protected.
  • the "plug and use” configuration is desirable in such situations as the host environment, but not ideal for many other situations. For example, system 20 should not be in a "plug and play” configuration when maximum security is required.
  • the "plug and use” setting defines a set of security settings, but does not replace a properly customized server.
  • Server-side tags allow an intermediate application, which is examining the content of a Web page, to take actions based on the content of the tags. These tags are embedded in the content of the Web page by the author of the document, and are not interpreted by the Web browser, but are detected and interpreted by an intermediate application such as system 20. System 20 uses side-side labels. server in order to "mark" the elements of the content that could be modified by client-side applications, maximizing the security of the application.
  • a response intercept unit 62 receives a response from the Web server 26.
  • the response intercept unit 62 passes the response first to a syntactic analyzer, such as the syntactic analysis unit HTML code 63.
  • the parser 63 performs the Analysis and summary of the response to derive important fields. These fields are passed to a signature creation unit 64, which creates a signature for that response.
  • An encryption unit 65 encrypts the signature together with the response, and the response and the encrypted signature, together, are passed to the Web 24 client, via the Internet, for example.
  • a request intercept unit 66 receives the request and sends it to a signature verification unit 67.
  • the signature verification unit 67 uses a decryption unit 68 to derive the version in plain text of the firm.
  • the signature verification unit 67 compares the signature with the content of the petition itself. If the signature verification unit 67 validates the request, then the signature verification unit 67 sends the request to the Web server 26. If the signature verification unit 67 invalidates the request, then the signature verification unit 67 sends the error to an error unit 69.
  • the error unit 69 maintains a log file of all errors, and can also generate alerts based on the error received. Error unit 69 may refer these errors to an administrator or other appropriate personnel, through email or pager, for example.
  • System 20 receives a response from the Web server and determines if it is an exception page. If it is, then the processing ends. If the page is not an exception page, then the parser uses the signature creation unit 64 and the encryption unit 65. The processing shown in Figure 7 (A) also includes determining whether the response is signable and of if it is a home page.
  • the processing of a request comprises receiving the request from a Web client in the request interception unit 66, and then sending the request to the signature verification unit 67
  • the signature verification unit 67 verifies whether the request comprises a home page and, otherwise, then starts the decryption unit 68 to derive the signature.
  • the signature verification unit 67 then checks the values, variables, strings and lengths of the request with respect to the signature. In case of an error, the signature verification unit 67 refers the error to the error unit 69. IX. Examples
  • the values enclosed in “@” represent the effective values of each variable.
  • the application receives a request with the “action” parameter set to "2" and a list of items to be charged to the user, in the variables “yam”, “count” and “price” .
  • the application records a receipt on disk, emails the receipt to the merchant and displays a confirmation message.
  • the application still being that simple, presents several security vulnerabilities that could be used by a malicious user.
  • a malicious user can obtain customer details, record arbitrary files on the Web server, execute commands on the Web server and make fake order invoices.
  • the following examples of system 20 explain how such security vulnerabilities are addressed.
  • the application records each transaction in a log file, including the client's personal details, etc.
  • the name of this log file is included in the form sent to the user and, thus, is visible to a malicious user simply by reading the source code of the HTML page.
  • Access to customer details is as simple as prefixing the name of the log file, which is "bill.txt", to the name of the server, with following, for example:
  • Figure 9 illustrates how an attack on a server not protected by system 20 can be used to obtain client details. Instead, the system 20 stops this kind of attacks requiring a signature in order to access any Web page, except the initial pages. Therefore, a malicious user is not allowed to access an arbitrary Web page on the server, such as order files, hidden data files, vulnerable samples, etc., without proper signature.
  • An example of an interface returned to a user as a result of the attack is shown in Figure 10. As explained in this interface, the resource requested by the user cannot be accessed without proper signature.
  • Arbitrary recording of files System 20 can also prevent arbitrary recording of files, which occurs when an application records each transaction in a log file.
  • the name of the file in which data is recorded is embedded in the form sent to the client and passed as a parameter of the user's request to the application.
  • a malicious user could modify this parameter in order to point to a different file, effectively recording the order details in any file in the file system.
  • a particularly telling illustration of the severity of this kind of attack is that the application could potentially be directed to overwrite the server's root page. The user could request that the data be recorded in the file
  • the form includes a signature that describes the FORM data and the summary of the values.
  • the form may include the HIVEDATA variable that has an ABCD value, as shown in:
  • system 20 When system 20 decrypts the signature, system 20 will detect that the parameters associated with the request do not match those of the signature. As a result, system 20 will invalidate the request due to its manipulation and prevent the request from reaching the application.
  • An example of an interface supplied to the user in case of such manipulation is shown in Figure
  • the System 20 stops these and other types of attacks requiring a signature in order to access any Web page, except the home pages.
  • the signature includes information about the number and acceptable values of the parameters of the user's request and, upon receiving a request, the system 20 verifies the signature with respect to the actual values. If the system 20 finds that an attempt has been made to manipulate the parameters, the system 20 sends an error message to the user, records the attempt of illegal access and, optionally, relays the error to the administrator.
  • Some applications may execute remote commands. For example, an application can send an electronic message to the merchant once the review is complete.
  • the application calls, without security, the "sendmail" program to send an electronic message to the email address electronic "DESTINATION" supplied by the user.
  • a malicious user could set the DESTINATION user parameter in a way that allows arbitrary commands to be executed on the server.
  • Table 1 below provides two examples of commands that can be executed on the server.
  • a malicious user could delete all files on the server, install a Trojan horse, download company databases, break into the internal network, etc.
  • the form will include a signature that will describe the FORM data and the summary of values.
  • the form may appear as follows:
  • VEDATA XYZO System 20 determines that the signature does not correspond to the parameters in the request. System 20 will deduce that a parameter manipulation has occurred and will prevent the request from reaching the application.
  • System 20 can also be used to prevent billing of fake orders.
  • a ttp application associated with billing uses the HTML page to store the number, name and price of items in the shopping cart just before the review. This information is sent back to the application, once the user disconnects, as parameters of the user request. The application receives the parameters and creates a receipt based on the values supplied by the user.
  • An example of a normal request is as follows:
  • the form includes a signature that describes the FORM data and the summary of values.
  • the request with system 20 can appear as follows:
  • This request includes the HIVEDATA signature of DEFG. If a user tries modify the request parameters, changing, for example, the price with the following request:
  • system 20 decrypts the signature and discovers that the parameters do not match the signature.
  • System 20 deduces that a parameter manipulation has occurred and prevents the request from reaching the application.
  • System 20 needs a client signature in order to access any non-home page. This allows the system 20 to control the flow of the site, since only the URLs mentioned can be accessed from pages on the server 26, preventing access to pages not intended for public consumption, samples and applications that are not intended as access direct.
  • the system 20 parses the request and finds that the request is not for a "Start Page", which means that a signature is needed.
  • System 20 searches for a signature in the request and, since there is no such signature, it displays an error message. System 20 will return control, preventing any further processing of the request.
  • system 20 can be configured to "plug and use". In this configuration, the system 20 allows a server to begin to process requests safely, without having to configure any homepage information, or any other values. System 20 accepts requests for unsigned pages, even if they are not listed under the "Home Pages" configuration tag, as long as the request does not pass parameters to the application.
  • the system 20 verifies that the effective values of the parameters of the user's request coincide with the expected values embedded in the signature. If there is a discrepancy, system 20 displays an error message and returns control.
  • the arbitrary recording of files involves a malicious user who modifies one of the parameters of a form sent by the server, "file", which is the name of a file that receives user information.
  • file which is the name of a file that receives user information.
  • the system 20 intercepts the response of the server 26 and adds its own signature to it, thus allowing it to detect and prevent attacks.
  • the form once analyzed syntactically by system 20, looks like this:
  • VALUE "dASas2342SDFSdfsf324234FSsf>
  • This form differs from the original form, the form generated by the Web server, in that a hidden HIVEDATA field has been added.
  • This field is the "signature" of the entire form, encrypted with a key known only to the server, which makes the signature tamper-proof. If a user modifies the signature once it is encrypted, the system 20 will detect this modification and block any request linked to the manipulated signature.
  • the signature is a summary of the content of the form.
  • the summary can include the URL where the request came from, or the page where the form is.
  • the URL is http://www.example.com/order.html.
  • the summary can also include the URL to which the request is intended, or the page where the form is sent.
  • the "action" field in a form tag in this example is http://www.example.com/application/cart.cgi.
  • the summary can also include a description of each argument, including the name, value, size, and whether the field is optional or forced.
  • Table 2 The analysis and summary of the form for this example is shown below in Table 2.
  • VALUE "dASas2342SDFSdfsf324234FSsf">
  • the system 20 sends the form to the client, which finds no difference in the appearance of the Web page, since "HIVEDATA" is a hidden field.
  • the system 20 verifies the signature sent by the client with respect to the parameters sent by the client. If the user had sent the request:
  • System 20 detects that the request is not for a "Start Page", so it looks for a signature in the request. Once the system 20 has the encrypted signature, the system 20 decrypts it using the symmetric key that it used to encrypt the message in the previous request.
  • the system 20 proceeds to compare the content of the signature "side by side" with the actual content sent in the petition.
  • System 20 first ensures that the signature matches the source and destination URLs, so that a signature created for a URL does not can be used to access a different URL. Once the URLs have been verified to be correct, system 20 compares the signature content with the effective parameters. If the system 20 finds any discrepancy, the system 20 emits an error signal and returns control, preventing the attack on the application.
  • system 20 finds a discrepancy in verifying the "file" parameter, since the signature tells system 20 that it should wait:
  • the system 20 denies the request.
  • the checks performed by system 20 include, but are not limited to, the name of the variable, the content of the variable, the length of the variable and the mandatory nature of the variable.
  • the system 20 can be configured according to the wishes of a client.
  • This configuration preferably, can take place through a web-based interface.
  • the interface authenticates the user by its username and password, before allowing an administrator to create, modify or delete configurations, or assign user names and passwords to delegated configurations, in case the owner or administrator of a domain you need / want to manage the security settings of your domain.
  • This interface allows an administrator to assign access rights in a configuration where domain names are controlled by multiple entities, such as a host company, or create default configurations that will be automatically set to delegated configurations.
  • System 20 stores the configuration in a plain, human-readable text file, which allows Administrators automate tasks such as adding domains or wholesale users to the system 20.
  • system 20 is called an HIVE TM firewall.
  • the system 20 provides many menus, which allow users to easily configure the system 20.
  • the interfaces preferably, are very intuitive for most people, and should not cause problems to edit configurations, display information, etc.
  • Configs a user can go to a Settings Page, where the user can edit a configuration.
  • a link to “Logs” provides access to a page where you can see incidents, errors, etc.
  • a “Restart” link allows the user to restart the server to apply the last saved changes, and a “Logout” link returns the user to the login page.
  • the “About” link shows a page with help information about the developers, the project manager, etc.
  • Figure 12 is an example of a connection page and is the first place you see when you want to configure your HIVE firewall.
  • the user To access this page, the user only needs to enter through port 81 of the machine where the HIVE firewall is installed. To log in, the user enters his Login ID and Password and, if the user is an administrator, has access to all settings. If the login ID and password are from a delegated administrator user, then the user can only access their settings.
  • the Connection Identifier and Password are needed only at the beginning of a session, and are required every time a new session is started.
  • the system 20 provides the user with the interface shown in Figure 13, and the user is ready to edit the desired configuration.
  • the user can have more than one configuration available to choose which one to edit.
  • the administrator is offered all configurations.
  • the desired configuration is chosen and then the user can proceed to edit it by pressing the Edit button.
  • System 20 allows the administrator to edit, delete and create configurations, by choosing the Edit, Delete, or New buttons. In this way, to edit a configuration, the user selects a configuration and clicks on the Edit button. If the user wants to delete a configuration, select that configuration and press the Delete button. To create a new configuration, the user presses the New button.
  • the user can change the general configuration options.
  • the EZ Hive parameters are such that the system 20 will only sign objects that will access an application, including the forms and links where parameters are passed. System 20 will not protect pages, nor verify signatures, where arguments do not intervene. This allows a server to protect its applications without having to configure startup pages. System 20 will not protect decoys; In order to protect decoys, the decoy section of the configuration must be defined. The parameters of Client-side procedures security are set to "LOW", thus allowing most Javascript applications to work, while protecting server-side applications. EZ Hive should not be used if maximum security is required. EZ Hive defines a set of security parameters, but it is not a substitute for a properly customized server.
  • EZ Hive should not be used if the content of the pages is outside the scope of the organization, such as with an ISP that is offered as a Web host to its users. In this configuration, the Exception Pages are recommended, since a malicious user could use the Web access to create pages that, once signed, will allow you to subvert the security of the application. With the Save, Reset and Cancel buttons, the user can save the new general settings, restore the initial values or cancel the operation.
  • the user is presented with the interface shown in Figure 17.
  • This interface provides a menu of options to redirect a request to another page when an error occurs.
  • the redirected page informs the user of what kind of error has occurred.
  • a URL Error should inform the user that an incorrect URL has been entered
  • a Signature Not Found Error informs the user that an attempt has been made to access a page that requires a signature, but no signature existed
  • a Signature Discrepancy Error informs the user that the signature is valid, but does not correspond to the URL
  • a Manipulation Error informs the user that the signature is invalid because it has been modified, or has expired.
  • D. Key Configuration By selecting the "Key” tag, the user receives the interface shown in Figure 18. This interface is dedicated to configuring the key parameters, such as length and lifetime, as display information about the current and old password.
  • the Current Key shows information about the current key, this key being used by the system 20 to sign the parameters to be signed, and to decipher signatures
  • the Old Password shows the same information as the Current Password, but about the password that was used before the current password. The old code was used to decipher signatures that were signed with it, but the life of this code has expired and a new code has been generated.
  • the user can generate a new password and can select its length and its life period.
  • To generate a new key the user selects the Key key, and a new key is generated immediately, and the data of the current key is copied onto the data of the old key. If a new key is generated two or more times in a short period of time, the old key could possibly be useless. It is possible that data has been encrypted with this key, but those data signed with the "old-old key" cannot be decrypted.
  • a first key must be generated and saved.
  • the user can alter key properties. For example, as shown in Figure 19, the user can adjust the Key Size, or, as shown in Figure 20, the user can adjust the Life Time, which determine the level of protection of their configuration. More security can be provided to a server 26 by increasing the size of the key. The default value is 128. The opposite is true for the life of the code; the decrease in the life of the key effectively increases the security of the server 26. The default value is 1 hour.
  • Node Configuration Figure 21 provides an example of a node configuration interface.
  • Figure 22 illustrates the edition of a node 1.2.3.4, and describes the buttons that offer the user the options of Save, Restart or Cancel the changes.
  • Figure 21 describes an example of an interface to the main page of a domain, where a user can set the domain and the IP address to which it is mapped.
  • a configuration can cover more than one domain, and all are displayed in the Available Domains fields. Available)
  • a configuration requires at least one domain, and the system 20 will prevent a user from saving a configuration unless at least one domain is specified.
  • a user can choose between the http: // or https: // protocols.
  • the Host bar the user enters the host name, and specifies the port in the Port bar.
  • the IP bar the user enters the IP address to be mapped with the domain and port.
  • To edit a domain the user clicks the Edit button in the configuration, and receives a domain editing page interface shown in Figure 24, where the user can change the configuration as desired.
  • a user can define URL resources as "Start Pages", which means that no signature is required to access the resource. After selecting "Configs" in the menu bar and then the Start Pages tab
  • Start Pages the user receives the main Home Page menu, as shown in Figure 25.
  • the user must define at least one domain and, if one is not specified, system 20 will block access to the tag Start Pages.
  • the start pages should be configured to be those pages in the structure of the Web site that a user can directly access, by typing them, for example, in a browser's URL bar, and which should include the welcome home page and possibly the main page for departments, etc. Since access to Start pages is not restricted by the system, an application should not be placed as a Start page, as it will be vulnerable to attacks.
  • a user can configure URL resources such as "Exception Pages", for those pages that will not be signed before being sent to the client.
  • Exception pages are designed to be used in those configurations where part of the content is beyond the control of the organization, such as in an ISP configuration where users can modify their own Web pages, and where the signature of those pages could compromise the security, since a malicious user could publish a Web page with links to counterfeit requests, which could lead to application security problems.
  • FIG. 29 An example of a default interface is shown in Figure 29. Through this interface, an administrator can set the size of a bar, or a text box, for protection.
  • System 20 allows the user to configure the administrator's email, where alerts and other announcements are delivered.
  • the administrator's email for example, is the email address where all of them are sent the incidents recorded in the configuration such as URL errors, signature discrepancy errors, etc.
  • the Admin Mail interface is specific to a configuration and the user, preferably, cannot specify multiple email addresses by mistake.
  • Figure 30 is an example of an Admin Mail interface.
  • the user receives the interface shown in Figure 31, which is for a new configuration. Through this interface, the user can change the password that gives access to configure the system 20. If the configuration is new, the user first defines the connection identifier and the password, before saving the configuration. Preferably, only the administrator can change the connection identifier of a configuration, but other users can access the User tag to change their own passwords, as shown in the interface in Figure 32. To change the password, the user click on the Edit button on the User tab. As shown in Figure 33, the user enters the password in the bar
  • the user can save or cancel the configuration changes by selecting the Save Config or Cancel buttons presented at the bottom end of the interface.
  • system 20 keeps a record of all errors and other incidents.
  • System 20 preferably allows users to view the incidents that occur in their configuration through the Logs page.
  • Figure 35 illustrates a partial view of this interface, showing a main header and Figure
  • the logging interface preferably lists the date on which the event occurred, an IP address, the name of the server, the requested URL, the error class and a description of the message.
  • system 20 indicates the success associated with the event.
  • a yellow triangular sign with an exclamation mark alerts the user that a customization error has occurred.
  • a red circle with an X in it alerts the user about a possible bad system configuration, such as a domain that has no configuration associated with it.
  • An information bubble with an "i" in it informs the user of normal events in system 20, such as a key that has expired, a node configuration that has been reread, or an initialization of the master node that has been completed.
  • Figure 37 describes a drop-down menu, which is part of the interface of Figure 36, which allows a user to select the number of records to be displayed. To view all records, the user selects the All item in the drop-down menu. To view only the most recent events, the user can select the Last 10 item. When displaying events, system 20 places the most recent records at the bottom of the page and the oldest ones at the beginning. A Reload button reads the log files again, so that a possible new log appears and the Clear Logs button clears the log file.
  • the invention has been described with reference to a client-server environment, in which transmission from the server is a response, and transmission from the client is a request.
  • the invention is not limited to a client-server environment, where a transmission takes place only after a request.
  • the system 20 receives the response from the server 26 before receiving the request from the client 24. The request in this context, therefore, does not precede the response.
  • the invention is not limited to HTTP applications, but can be extended to other protocols. Additionally, even if HTTP is primarily associated with WWW, HTTP and, therefore, the invention, it can be used in other environments as a content server, such as XML documents. While XML has been used to provide examples throughout this document, the invention can be applied to other languages, and to new languages, by inserting, for example, new libraries of content parsers.

Abstract

The invention relates to systems and methods of securing HTTP applications. According to the invention, responses sent from a server, such as a Web server, are analysed and a signature is generated for each HTML object on said page. The signature is encrypted and sent to a client together with the contents of the page. When a client sends a subsequent request, the system compares the signature associated with said request with the contents of the actual request. If the values, variables, lengths and cardinality of the request are valid, the petition is then transferred to the Web server. However, if the request is invalid, it is blocked from reaching the Web server, thereby protecting said Web server from malicious attacks. The inventive systems and methods provide security without being restricted to one session or one user.

Description

CORTAFUEGOS PARA PROVEER SEGURIDAD EN REDES Y FIREWORKS TO PROVIDE SECURITY IN NETWORKS AND
APLICACIONES HTTPHTTP APPLICATIONS
ÁMBITO DE LA INVENCIÓNSCOPE OF THE INVENTION
La invención se refiere generalmente a sistemas y métodos para proveer seguridad en una red y, más particularmente, a sistemas y métodos para proveer seguridad en redes y aplicaciones del protocolo de transferencia de hipertexto (Hyper-Text Transfer Protocol - HTTP), tales como las de Internet.The invention generally relates to systems and methods for providing security in a network and, more particularly, to systems and methods for providing security in networks and applications of the Hyper-Text Transfer Protocol (HTTP), such as from Internet.
ANTECEDENTES DE LA INVENCIÓNBACKGROUND OF THE INVENTION
Existe una gran variedad de dispositivos que proveen datos y/o capacidades de comunicación. Uno de los dispositivos más comunes para transmitir y recibir datos es un ordenador. Los ordenadores incluyen los convencionales modelos de sobremesa y portátiles, así como los Asistentes Digitales Personales (Personal Digital Assistants - PDA) y otros dispositivos de mano, tales como el Palm Pilot PocketPC y el Visor. Otros tipos de dispositivos también se usan para transmitir y recibir datos. Por ejemplo, algunos radioteléfonos móviles y buscapersonas de doble vía no sólo proveen capacidades de comunicación por voz, sino que también permiten la transferencia y recepción de mensajes de texto, y pueden usarse para navegar por Internet. Además de los radioteléfonos móviles y los buscapersonas, la televisión mejorada, la WebTV y otros dispositivos de televisión interactiva proveen capacidades de datos además de la visualización de programas de televisión. Estos dispositivos sólo son algunos ejemplos de dispositivos que están actualmente disponibles, y que pueden comunicarse con otros dispositivos.There is a wide variety of devices that provide data and / or communication capabilities. One of the most common devices for transmitting and receiving data is a computer. Computers include conventional desktop and laptop models, as well as Personal Digital Assistants (PDA) and other handheld devices, such as the Palm Pilot PocketPC and the Viewer. Other types of devices are also used to transmit and receive data. For example, some mobile radio and two-way pagers not only provide voice communication capabilities, but also allow the transfer and reception of text messages, and can be used to surf the Internet. In addition to mobile radiotelephones and pagers, enhanced television, WebTV and other interactive television devices provide data capabilities in addition to viewing television programs. These devices are just a few examples of devices that are currently available, and that can communicate with other devices.
Para habilitar las comunicaciones entres dos dispositivos cualesquiera, se emplea un protocolo que define la forma en que los dos dispositivos pueden comunicarse. En verdad, en una red de dispositivos, pueden emplearse múltiples protocolos en varias capas dentro de la red. Estas capas incluyen la capa física, la capa de enlace de datos, la capa de red, la capa de transporte, la capa de sesión, la capa de presentación y la capa de aplicación. Por ejemplo, según las capas particulares, el protocolo puede gobernar la transmisión de bits, controlar los errores de transmisión, definir el encaminamiento de mensajes dentro de una red, asegurar la fiabilidad de las transmisiones o definir el formato del mensaje.To enable communications between any two devices, a protocol is used that defines how the two devices can communicate. In truth, in a network of devices, multiple protocols can be used in several layers within the network. These layers include the physical layer, the data link layer, the network layer, the transport layer, the session layer, the presentation layer and the application layer. For example, depending on the particular layers, the protocol can govern the transmission of bits, control transmission errors, define the routing of messages within a network, ensure the reliability of transmissions or define the message format.
Un protocolo usual asociado con Internet es el Protocolo de Transferencia de HiperTexto (Hyper Text Transfer Protocol - HTTP). HTTP es un protocolo de la capa de aplicación que permite que los dispositivos transfieran información por Internet. Por ejemplo, los exploradores y servidores de la red operan el HTTP y permiten que un usuario acceda a la Malla Mundial Máxima (World Wide Web - WWW) y que un proveedor de contenidos ofrezca información a los usuarios finales por medio de una sede Web en laA usual protocol associated with the Internet is the Hyper Text Transfer Protocol (HTTP). HTTP is an application layer protocol that allows devices to transfer information over the Internet. For example, network browsers and servers operate HTTP and allow a user to access the World Wide Web (WWW) and a content provider to offer information to end users through a Web site at the
WWW. El HTTP no es específico de ningún lenguaje, aunque la mayoría de los proveedores de contenidos usan el lenguaje de marcado de hipertexto (Hyper Text Markup Language - HTML). De esta manera, el HTTP también abarca los exploradores y servidores del Protocolo de Aplicaciones Inalámbricas (Wireless Application Protocol - WAP). Para los dispositivosWWW HTTP is not language specific, although most content providers use hypertext markup language (Hyper Text Markup Language - HTML). In this way, HTTP also covers the browsers and servers of the Wireless Application Protocol (WAP). For devices
WAP, sin embargo, los dispositivos utilizan el lenguaje de marcado inalámbrico (Wireless Markup Language - WML) en lugar de HTML.WAP, however, devices use the Wireless Markup Language (WML) instead of HTML.
El HTTP es un protocolo transaccional, lo que significa que se basa en peticiones de un cliente, tal como un explorador del web, y en respuestas de un servidor, tal como un servidor de web. Con referencia a la Figura 1 , un cliente envía una petición a un servidor, identificando esta petición un método y un localizador universal de recursos (Universal Resource Locator - URL). El servidor recibe la petición y procesa el URL, obteniendo, por ejemplo, la información asociada con el URL. Para cada petición de un cliente, hay una respuesta del servidor. Así, si la petición era una petición de datos asociados con un URL, el servidor respondería obteniendo esos datos y enviándolos al cliente. Las peticiones incluyen la lectura de una página del web, el envío de un formulario, etc. Como puede verse en la Figura 1 , el HTTP está muy bien definido, tiene una sintaxis muy sencilla y provee una base sobre la cual pueden construirse aplicaciones para proveer servicios.HTTP is a transactional protocol, which means that it is based on requests from a client, such as a web browser, and responses from a server, such as a web server. With reference to Figure 1, a client sends a request to a server, this request identifying a method and a universal resource locator (URL). The server receives the request and processes the URL, obtaining, for example, the information associated with the URL. For each request of a client, there is a response from the server. Thus, if the request was a request for data associated with a URL, the server would respond by obtaining that data and sending it to the client. Requests include reading a web page, sending a form, etc. As can be seen in Figure 1, HTTP is very well defined, has a very simple syntax and provides a basis on which applications can be built to provide services.
Los servidores pueden tener varias aplicaciones HTTP. A menudo, los proveedores de contenidos necesitan ofrecer servicios por medio de sus servidores de contenidos, ya sea una aplicación sencilla que recogerá reacciones de los visitantes, o una más compleja como un carro de la compra, o una aplicación de comercio electrónico. Todas estas aplicaciones comparten una interfaz común basada en HTTP que permite que un cliente remoto interactúe con los recursos subyacentes, tales como ficheros, bases de datos, etc., por medio de un explorador del web. Estas aplicaciones se llaman aplicaciones HTTP, y a menudo se las menciona como Aplicaciones Web o Aplicaciones WWW. La información se pasa a las aplicaciones HTTP en la petición, usualmente fijando parámetros o señuelos con la información provista por el usuario al llenar un formulario.The servers can have several HTTP applications. Often, content providers need to offer services through their content servers, either a simple application that will collect reactions from visitors, or a more complex one such as a shopping cart, or an e-commerce application. All these applications They share a common HTTP-based interface that allows a remote client to interact with the underlying resources, such as files, databases, etc., through a web browser. These applications are called HTTP applications, and are often referred to as Web Applications or WWW Applications. The information is passed to the HTTP applications in the request, usually setting parameters or decoys with the information provided by the user when filling out a form.
La Figura 2 muestra un ejemplo de página web y su correspondiente HTML. El fondo de esta figura exhibe un formulario, un cuestionario, disponible en un servidor que alberga el dominio con el URL http://www.s21 sec.com/caste/cuestionario/cuestionario.htm. Cuando un cliente ingresa este URL o selecciona un enlace asociado con el URL, la petición se encamina al servidor, el servidor extrae el contenido asociado con ese URL y posiblemente realiza algunas acciones adicionales, y luego encamina una respuesta de vuelta al cliente. Esta respuesta incluye el html exhibido en el bloc de notas. El explorador del cliente interpreta el html y resuelve la interfaz mostrada en el fondo.Figure 2 shows an example of a web page and its corresponding HTML. The background of this figure shows a form, a questionnaire, available on a server that hosts the domain with the URL http: //www.s21 sec.com/caste/cuestionario/cuestionario.htm. When a client enters this URL or selects a link associated with the URL, the request is routed to the server, the server extracts the content associated with that URL and possibly performs some additional actions, and then routes a response back to the client. This answer includes the html displayed in the notebook. The client browser interprets the html and resolves the interface shown in the background.
La aplicación HTTP recibe los parámetros y los procesa, enviando una respuesta de vuelta al cliente con el resultado del procesamiento. Las aplicaciones HTTP no dependen de los lenguajes de programación, sino sólo de la interfaz (HTTP). Una aplicación HTTP, por lo tanto, puede codificarse en cualquier lenguaje, tal como C, C++, Visual Basic, Perl, o Java, sin limitarse a ellos. Hay mecanismos bien conocidos de interacción con HTTP, tales como la Interfaz Común de Pasarela (Common Gateway Interface - CGI), las Páginas de Servidor Activo (Active Server Pages -The HTTP application receives the parameters and processes them, sending a response back to the client with the result of the processing. HTTP applications do not depend on programming languages, but only on the interface (HTTP). An HTTP application, therefore, can be encoded in any language, such as C, C ++, Visual Basic, Perl, or Java, without being limited to them. There are well-known mechanisms for interacting with HTTP, such as the Common Gateway Interface (CGI), Active Server Pages -
ASP), Servlets, PHP, etc., pero todos ellos dependen de HTTP para la comunicación entre el cliente y la aplicación.ASP), Servlets, PHP, etc., but all of them depend on HTTP for communication between the client and the application.
Un entorno de red es beneficioso en cuanto a que los dispositivos pueden comunicarse entre sí, pero expone a los dispositivos y a los sistemas conectados a la red a riesgos de seguridad. La seguridad de red se concibe a menudo como la protección del acceso a recursos de red, a fin de evitar, en última instancia, incursiones en los sistemas de empresa. Un cortafuegos se ubica usualmente entre la red y un sistema de empresa, a fin de evitar tales incursiones. Al instalar un cortafuegos, una preocupación principal es filtrar puertos que podrían ser vulnerables a ataques del exterior. Como se ha mencionado más arriba, las aplicaciones HTTP permiten a los dispositivos obtener acceso a los recursos de un servidor. Por ejemplo, las aplicaciones HTTP pueden incluir alguna clase de interacción entre el usuario final y el sistema de segundo plano de la empresa, ya sea un servidor de bases de datos, el acceso a ficheros en el servidor, o simplemente el acceso a un servidor de correo electrónico. Estas aplicaciones HTTP, por consiguiente, necesitan privilegios sobre estos recursos para que puedan pasar a través del cortafuegos, acceder a la base de datos, interactuar con el sistema operativo subyacente, etc., Debido a que las aplicaciones HTTP pueden proveer acceso a áreas sensibles de un sistema de empresa, un usuario malicioso puede subvertir una aplicación HTTP vulnerable e irrumpir en los recursos de la empresa, y comprometer todo su negocio.A network environment is beneficial in that the devices can communicate with each other, but exposes the devices and systems connected to the network to security risks. Network security is often conceived as the protection of access to network resources, in order to ultimately avoid incursions into enterprise systems. A firewall is usually located between the network and an enterprise system, in order to avoid such incursions. When installing a firewall, a primary concern is to filter ports that could be vulnerable to outside attacks. As mentioned above, HTTP applications allow devices to access resources from a server. For example, HTTP applications may include some kind of interaction between the end user and the company's background system, be it a database server, access to files on the server, or simply access to a server of e-mail. These HTTP applications, therefore, need privileges over these resources to allow them to pass through the firewall, access the database, interact with the underlying operating system, etc., because HTTP applications can provide access to sensitive areas In a business system, a malicious user can subvert a vulnerable HTTP application and break into company resources, and compromise their entire business.
Un cortafuegos puede no ser efectivo para detener tales ataques. Las aplicaciones HTTP usan los mismos recursos de red utilizados por los servidores de contenidos; de hecho, delegan en el servidor de web el control de transacciones de red. Mientras se necesite ofrecer acceso HTTP a cualquier servidor, ningún cortafuegos actual puede detener un ataque al nivel de la aplicación HTTP. Un cortafuegos tradicional opera en los niveles de red y de transporte, pero no ofrece ninguna clase de protección de aplicaciones. Por ejemplo, la Figura 3 muestra un diagrama de un cortafuegos típico 10 instalado dentro de una red. El cortafuegos 10 se ubica entre un servidor 12 y los clientes 8. El cortafuegos 10 provee seguridad al servidor 12 en las capas Telnet y HTTP, pero no ofrece ninguna protección a una aplicación HTTP 14.A firewall may not be effective in stopping such attacks. HTTP applications use the same network resources used by content servers; in fact, they delegate control of network transactions to the web server. While it is necessary to offer HTTP access to any server, no current firewall can stop an attack at the HTTP application level. A traditional firewall operates at the network and transport levels, but does not offer any kind of application protection. For example, Figure 3 shows a diagram of a typical firewall 10 installed within a network. The firewall 10 is located between a server 12 and the clients 8. The firewall 10 provides security to the server 12 in the Telnet and HTTP layers, but offers no protection to an HTTP application 14.
Un enfoque tradicional de la seguridad de aplicaciones ha sido la revisión y auditoría del código fuente. Parte de la revisión de código tiene lugar después de que se ha terminado una aplicación, e implica hacer que alguien, a menudo un tercero, revise todo el código y arregle cualquier problema de seguridad que se descubra. Este procedimiento es una tarea de nunca acabar, ya que al auditor se le pueden escapar errores de seguridad que acabarán en la aplicación revisada, por lo que no es una garantía de seguridad total. Según se desarrollan aplicaciones más y más complejas, y el plazo de puesta en el mercado se encoge a fin de ser el primero en ofrecer un servicio a los clientes, la revisión del código fuente ya no es una opción, dado que el congelamiento del despliegue de una aplicación durante días o semanas significa pérdida de negocios e ingresos. Existe, por lo tanto, una necesidad de sistemas y métodos para proveer seguridad en una red, especialmente con aplicaciones HTTP.A traditional approach to application security has been the review and audit of the source code. Part of the code review takes place after an application has been completed, and involves having someone, often a third party, review all the code and fix any security issues that are discovered. This procedure is a never-ending task, since the auditor may miss security errors that will end up in the revised application, so it is not a guarantee of total safety. As more and more complex applications are developed, and the time to market is shrinking in order to be the first to offer a service to customers, the revision of the source code is no longer a option, since freezing the deployment of an application for days or weeks means loss of business and income. There is, therefore, a need for systems and methods to provide security in a network, especially with HTTP applications.
RESUMEN DE LA INVENCIÓNSUMMARY OF THE INVENTION
La presente invención afronta los problemas descritos más arriba suministrando sistemas y métodos que ofrecen seguridad en una red. Los sistemas y métodos incluyen la firma de transmisiones enviadas desde un sistema, y luego la verificación de transmisiones de regreso a fin de asegurar que una firma asociada con esas transmisiones coincide con el contenido en las transmisiones. Los sistemas y métodos según la invención generan una firma, única para la transmisión, basada en características importantes de esa transmisión. Por ejemplo, la firma puede basarse en campos dentro de la transmisión, valores de esos campos, longitudes aceptables de variables, etc. La invención está bien dotada para su uso en Internet, en servidores que provean contenidos a los usuarios. En este entorno, las respuestas enviadas desde el servidor se analizan, se resumen y se firman luego antes de enviarlas a los usuarios. Las peticiones recibidas de los usuarios incluyen la firma, y estas peticiones se interceptan antes de enviarlas al servidor. La firma en estas peticiones es descifrada y comparada luego con el contenido efectivo dentro de la petición. Si la firma corresponde a la petición en sí, la petición se remite al servidor. Por el contrario, si el contenido de la petición no coincide con la firma, el acceso de la petición al servidor es bloqueado.The present invention addresses the problems described above by providing systems and methods that offer security in a network. The systems and methods include the signature of transmissions sent from a system, and then the verification of transmissions back in order to ensure that a signature associated with those transmissions matches the content in the transmissions. The systems and methods according to the invention generate a signature, unique to the transmission, based on important characteristics of that transmission. For example, the signature can be based on fields within the transmission, values of those fields, acceptable lengths of variables, etc. The invention is well endowed for use on the Internet, on servers that provide content to users. In this environment, the responses sent from the server are analyzed, summarized and then signed before sending them to users. The requests received from the users include the signature, and these requests are intercepted before sending them to the server. The signature on these requests is decrypted and then compared with the effective content within the request. If the signature corresponds to the request itself, the request is sent to the server. On the contrary, if the content of the request does not match the signature, the access of the request to the server is blocked.
Los sistemas y métodos según la invención pueden, por lo tanto, proveer seguridad a redes IP, tales como Internet. Entre otras cosas, la invención puede usarse para bloquear los ataques a muestras de aplicaciones vulnerables, los problemas de implantación de servidores de contenido, el envenenamiento de señuelos, la validación de entrada, la manipulación de campos ocultos, el desborde de almacenes, el gobierno por comandos entre sedes y los ataques por la puerta falsa. La invención no depende de sesiones de usuario, por lo cual la invención no requiere recursos significativos de un servidor y puede añadirse fácilmente a cualquier servidor. La invención no está limitada a un único servidor, sino que puede emplearse en un entorno de múltiples servidores con otros elementos de red, tales como equilibradores de carga. La invención también puede usarse con otras medidas de seguridad, tales como la capa de puertos seguros (Secure Socket Layer - SSL). En la realización preferida, el sistema puede configurarse según los deseos de su usuario final. El usuario puede designar ciertas páginas como páginas iniciales, lo que significa que no se requiere ninguna firma para acceder a ellas. El usuario también puede designar ciertas páginas como páginas de Excepción, lo que es especialmente beneficioso en un entorno ISP, donde múltiples dominios se albergan en un servidor y donde los usuarios necesitan modificar esas páginas. El sistema, preferiblemente, registra todos los errores y bloqueos, y provee este registro en una interfaz del usuario.The systems and methods according to the invention can, therefore, provide security to IP networks, such as the Internet. Among other things, the invention can be used to block attacks on vulnerable application samples, content server deployment problems, decoy poisoning, entry validation, hidden field manipulation, warehouse overflow, government by commands between headquarters and attacks by the false door. The invention does not depend on user sessions, whereby the invention does not require significant resources from a server and can easily be added to any server. The invention is not limited to a single server, but can used in a multi-server environment with other network elements, such as load balancers. The invention can also be used with other security measures, such as the Secure Socket Layer - SSL port layer. In the preferred embodiment, the system can be configured according to the wishes of its end user. The user can designate certain pages as initial pages, which means that no signature is required to access them. The user can also designate certain pages as Exception pages, which is especially beneficial in an ISP environment, where multiple domains are hosted on a server and where users need to modify those pages. The system preferably logs all errors and locks, and provides this log in a user interface.
BREVE DESCRIPCIÓN DE LOS DIBUJOSBRIEF DESCRIPTION OF THE DRAWINGS
Los dibujos adjuntos, que se incorporan y forman parte de la especificación, ilustran las realizaciones preferidas de la presente invención y, junto con la descripción, revelan los principios de la invención. En los dibujos: La Figura 1 es un diagrama que ilustra las comunicaciones entre un cliente y un servidor;The accompanying drawings, which are incorporated and form part of the specification, illustrate the preferred embodiments of the present invention and, together with the description, reveal the principles of the invention. In the drawings: Figure 1 is a diagram illustrating the communications between a client and a server;
La Figura 2 ilustra un ejemplo de formulario de página web, junto con su código HTML subyacente;Figure 2 illustrates an example web page form, along with its underlying HTML code;
La Figura 3 es un diagrama de una típica instalación de cortafuegos; La Figura 4 es un diagrama con un sistema de seguridad de acuerdo con una realización preferida de la invención;Figure 3 is a diagram of a typical firewall installation; Figure 4 is a diagram with a security system according to a preferred embodiment of the invention;
Las Figuras 5(A) y 5(B) son diagramas de flujo de métodos para procesar respuestas a clientes y peticiones a servidores, respectivamente;Figures 5 (A) and 5 (B) are flowcharts of methods for processing responses to clients and requests to servers, respectively;
Las Figuras 6(A) y 6(B) son diagramas en bloque más detallados del procesamiento de respuestas y el procesamiento de peticiones, respectivamente;Figures 6 (A) and 6 (B) are more detailed block diagrams of response processing and request processing, respectively;
Las Figuras 7(A) y 7(B) son diagramas de flujo de procesos para una respuesta y una petición, respectivamente;Figures 7 (A) and 7 (B) are process flow diagrams for a response and a request, respectively;
La Figura 8 es un diagrama de flujo de una sección de revisión de una aplicación; La Figura 9 es un ejemplo de una interfaz suministrada a un usuario que obtiene detalles de un cliente;Figure 8 is a flow chart of a review section of an application; Figure 9 is an example of an interface supplied to a user that obtains details from a client;
La Figura 10 es un ejemplo de una interfaz suministrada a un usuario a partir del bloqueo de un ataque que busca detalles de un cliente; La Figura 11 es un ejemplo de una interfaz suministrada a un usuario como resultado del bloqueo de un ataque que busca una grabación arbitraria de un fichero;Figure 10 is an example of an interface supplied to a user from blocking an attack that looks for details of a client; Figure 11 is an example of an interface supplied to a user as a result of blocking an attack that seeks an arbitrary recording of a file;
La Figura 12 es un ejemplo de una interfaz de conexión;Figure 12 is an example of a connection interface;
La Figura 13 es un ejemplo de una interfaz de selección de configuración; La Figura 14 es un ejemplo de una página de selección de configuraciones del administrador;Figure 13 is an example of a configuration selection interface; Figure 14 is an example of an administrator settings selection page;
La Figura 15 es un ejemplo de una página de configuración general;Figure 15 is an example of a general configuration page;
La Figura 16 es un ejemplo de una página de edición para opciones generales; La Figura 17 es un ejemplo de una página de error del cliente;Figure 16 is an example of an edit page for general options; Figure 17 is an example of a client error page;
La Figura 18 es un ejemplo de una interfaz de opciones de clave;Figure 18 is an example of a key options interface;
La Figura 19 es un ejemplo del tamaño de la clave en un menú desplegable en la interfaz de opciones de clave;Figure 19 is an example of the key size in a drop-down menu in the key options interface;
La Figura 20 es un ejemplo de la duración de la clave en el menú desplegable en la ¡nterfaz de opciones de clave;Figure 20 is an example of the key duration in the drop-down menu in the key options interface;
La Figura 21 es un ejemplo de una interfaz de configuración de nodo;Figure 21 is an example of a node configuration interface;
La Figura 22 es un ejemplo de una ¡nterfaz de edición de configuración de nodoFigure 22 is an example of a node configuration editing interface
La Figura 23 es un ejemplo de la interfaz de la página principal de un dominio;Figure 23 is an example of the interface of the main page of a domain;
La Figura 24 es un ejemplo de la página de edición de un dominio;Figure 24 is an example of the domain edit page;
La Figura 25 es un ejemplo de la página principal de las páginas iniciales;Figure 25 is an example of the home page of the initial pages;
La Figura 26 es un ejemplo de la página de edición de las páginas iniciales; La Figura 27 es un ejemplo de una interfaz de una página de excepción;Figure 26 is an example of the editing page of the initial pages; Figure 27 is an example of an exception page interface;
La Figura 28 es un ejemplo de una página de edición de una página de excepción;Figure 28 is an example of an edit page of an exception page;
La Figura 29 es un ejemplo de una interfaz de la página principal por omisión; La Figura 30 es un ejemplo de una interfaz de la página del correo del administrador;Figure 29 is an example of a default homepage interface; Figure 30 is an example of an email page interface from the administrator;
La Figura 31 es un ejemplo de una página de usuario de una nueva configuración;Figure 31 is an example of a user page of a new configuration;
La Figura 32 es un ejemplo de una página principal de usuario; La Figura 33 es un ejemplo de una interfaz de la página de edición de usuario;Figure 32 is an example of a user home page; Figure 33 is an example of an interface of the user editing page;
La Figura 34 es un ejemplo de botones de control de configuración;Figure 34 is an example of configuration control buttons;
La Figura 35 es un ejemplo de un epígrafe provisto en una interfaz del registro; La Figura 36 es un ejemplo de una interfaz de la página de registro;Figure 35 is an example of a heading provided in a registry interface; Figure 36 is an example of an interface of the registration page;
La Figura 37 es un ejemplo de un menú desplegable con la interfaz de la página de registros; yFigure 37 is an example of a drop-down menu with the records page interface; Y
La Figura 38 es un ejemplo de una interfaz de página de reinicio.Figure 38 is an example of a reset page interface.
DESCRIPCIÓN DETALLADADETAILED DESCRIPTION
Se hará ahora referencia en detalle a las realizaciones preferidas de la invención, ejemplos no exhaustivos de la cual se ilustran en los dibujos adjuntos.Reference will now be made in detail to the preferred embodiments of the invention, non-exhaustive examples of which are illustrated in the accompanying drawings.
I. Visión generalI. Overview
La invención se refiere generalmente a sistemas y métodos para suministrar seguridad en una red con aplicaciones. Los sistemas y métodos interceptan al menos algunas de las peticiones de clientes a un servidor, y también interceptan al menos algunas de las respuestas desde el servidor a los clientes. En general, los sistemas y métodos generan firmas de comunicaciones desde el servidor al cliente, y luego verifican las peticiones del cliente contra esas firmas. Si las peticiones del cliente coinciden con la firma, entonces las peticiones se remiten al servidor. Por lo contrario, cuando las respuestas no coinciden con las firmas, se bloquea el acceso de las respuestas al servidor.The invention generally relates to systems and methods for providing security in a network with applications. The systems and methods intercept at least some of the client requests to a server, and also intercept at least some of the responses from the server to the clients. In general, the systems and methods generate communications signatures from the server to the client, and then verify the client's requests against those signatures. If the client's requests match the signature, then the requests are sent to the server. On the contrary, when the responses do not match the signatures, the access of the responses to the server is blocked.
Para los fines de esta descripción, la invención se describirá con referencia a sistemas y métodos que proveen un cortafuegos de aplicaciones HTTP. Por ejemplo, los sistemas proveen seguridad a aplicaciones albergadas en un servidor, y con interfaces a una red por medio de HTTP. De esta manera, los sistemas y métodos proveen seguridad a los servidores y aplicaciones en la Malla Mundial Máxima (World Wide Web — WWW). La invención, sin embargo, no está limitada a aplicaciones HTTP estrictamente, ni a servidores conectados a Internet. La invención abarca sistemas y métodos en otros tipos de redes, el uso de protocolos que no sean HTTP y otros tipos de aplicaciones. Como otros ejemplos, la invención abarca el Protocolo de Aplicaciones Inalámbricas (Wireless Application Protocoi - WAP), Intranets, aplicaciones XML y aplicaciones HDML. Interceptando las respuestas y las peticiones, los sistemas y los métodos imponen el protocolo HTTP según se define en los estándares de Internet, desautorizando a cualquiera que intente irrumpir en aplicaciones protegidas, falsificando peticiones, por ejemplo, o modificando peticiones legítimas. Los sistemas preferidos se colocan entre el cliente y el servidor e interceptan tanto las peticiones HTTP como las respuestas, y verifican que el contenido de la petición no sea malicioso. Esta verificación se basa en información derivada del contenido, como, por ejemplo, en HTML, derivado de campos FORM, etc., Las redes y las aplicaciones pueden ser potencialmente vulnerables a múltiples y variados ataques. Los sistemas y métodos según la invención previenen y proveen asistencia para impedir muchos de tales ataques.For the purposes of this description, the invention will be described with reference to systems and methods that provide an HTTP application firewall. For example, systems provide security to applications hosted on a server, and with interfaces to a network through HTTP. In this way, systems and methods provide security to servers and applications in the World Wide Web (WWW). The invention, however, is not limited to strictly HTTP applications, or to servers connected to the Internet. The invention encompasses systems and methods in other types of networks, the use of non-HTTP protocols and other types of applications. Like other examples, the invention encompasses the Wireless Application Protocol (WAP), Intranets, XML applications and HDML applications. By intercepting responses and requests, systems and methods impose the HTTP protocol as defined in Internet standards, disallowing anyone who tries to break into protected applications, falsifying requests, for example, or modifying legitimate requests. Preferred systems are placed between the client and the server and intercept both HTTP requests and responses, and verify that the content of the request is not malicious. This verification is based on information derived from the content, such as HTML, derived from FORM fields, etc., Networks and applications can be potentially vulnerable to multiple and varied attacks. The systems and methods according to the invention prevent and provide assistance to prevent many such attacks.
Por ejemplo, los sistemas y métodos pueden proteger aplicaciones de muestra vulnerables. Las instalaciones por omisión de un servidor de WWW a menudo incluyen páginas y aplicaciones de muestra destinadas a mostrar las capacidades del servidor a un usuario nuevo. Estas aplicaciones son a veces vulnerables a los ataques y son activamente explotadas por los piratas. Los sistemas y métodos detienen el acceso a aquellas páginas no directamente mencionadas en la sede Web, tales como aplicaciones de muestra o ficheros no destinados a ser publicados, tales como ficheros de bases de datos, ficheros de registro de sedes Web, documentos privados, etc., hallados con demasiada frecuencia en servidores disponibles públicamente.For example, systems and methods can protect vulnerable sample applications. Default installations of a WWW server often include sample pages and applications intended to show the server's capabilities to a new user. These applications are sometimes vulnerable to attacks and are actively exploited by pirates. The systems and methods stop access to those pages not directly mentioned in the Web site, such as sample applications or files not intended to be published, such as database files, Web site log files, private documents, etc. ., found too frequently on publicly available servers.
Como otro ejemplo, la invención puede afrontar los problemas de implantación de servidores de contenidos. Los servidores de WWW pueden tener problemas de implantación, tales como el error US Unicode recientemente hallado, o el desborde del almacén shmtl de Iplanet 4.0. Estos y otros problemas pueden, según se hará evidente a aquellos versados en la tecnología, ser afrontados por los sistemas y métodos de la invención. La invención puede usarse para evitar el envenenamiento de señuelos. Las aplicaciones a menudo se apoyan en los señuelos para mantener el rastro de las sesiones de usuarios, o para almacenar información transitoria, tales como identificadores de conexión o contraseñas. La modificación de estos valores puede llevar a problemas de seguridad, que pueden ser impedidos por los sistemas y métodos usando la firma de contenidos. La validación de entradas es otro ejemplo de una aplicación de la invención. A menudo, una aplicación tiene que validar toda la entrada que recibe de un cliente. Por ejemplo, digamos que una aplicación acepta una dirección de correo electrónico en un campo, pero que un atacante envía comandos que se ejecutarán en el servidor de contenidos. La aplicación debe filtrar todo carácter inválido identificando todo punto individual de entrada a la aplicación, y verificando luego los valores del cliente. Los sistemas y métodos de la invención hacen que esta tarea sea fácil y más segura incrustando información sobre los valores esperados en el contenido de la página, y verificando automáticamente los valores al recibir la petición del cliente.As another example, the invention can address the problems of implementing content servers. WWW servers may have deployment problems, such as the US Unicode error recently found, or the overflow of the shmtl store of Iplanet 4.0. These and other problems may, as will become apparent to those versed in technology, be addressed by the systems and methods of the invention. The invention can be used to prevent decoy poisoning. Applications often rely on decoys to keep track of user sessions, or to store transient information, such as connection identifiers or passwords. Modifying these values can lead to security problems, which can be prevented by systems and methods using content signature. Ticket validation is another example of an application of the invention. Often, an application has to validate all the input it receives from a client. For example, let's say an application accepts an email address in a field, but that an attacker sends commands that will be executed on the content server. The application must filter any invalid character by identifying any individual point of entry into the application, and then verifying the client's values. The systems and methods of the invention make this task easy and safer by embedding information about the expected values in the content of the page, and automatically verifying the values upon receipt of the client's request.
La manipulación de campos ocultos es otro ejemplo más de una aplicación de la invención. Las aplicaciones almacenan información de sesiones en campos de formulario "ocultos". Estos campos no se exhiben a un usuario final, pero son accesibles en el código fuente de la página HTML, o en la barra del URL del explorador, por lo que son fácilmente modificados por un usuario malicioso. Los sistemas y métodos protegen la modificación de estos campos usando las firmas del contenido, a fin de que no puedan modificarse y, si son modificados, se registra un mensaje de alerta y se bloquea el ataque. Otra aplicación de la invención es en los desbordes de almacenes. El contenido HTML puede forzar que el explorador de un cliente permita que se ingrese sólo un número limitado de caracteres en un campo de formulario. Esta limitación es impuesta por el cliente, pero puede ser burlada fácilmente. Las aplicaciones que dependen de límites de longitud de contenido a menudo presentan problemas de desbordes de almacén y de memoria cúmulo, que permiten, en última instancia, el acceso remoto al servidor. Los sistemas y métodos detectan e imponen la longitud máxima de un campo y preferiblemente registran y bloquean todo ataque.The manipulation of hidden fields is another example of an application of the invention. Applications store session information in "hidden" form fields. These fields are not displayed to an end user, but are accessible in the source code of the HTML page, or in the browser's URL bar, so they are easily modified by a malicious user. The systems and methods protect the modification of these fields using the content signatures, so that they cannot be modified and, if modified, an alert message is recorded and the attack is blocked. Another application of the invention is in store overflows. HTML content can force a client's browser to allow only a limited number of characters to be entered in a form field. This limitation is imposed by the customer, but can easily be mocked. Applications that depend on content length limits often have storage and memory overflow problems cluster, which ultimately allow remote access to the server. Systems and methods detect and impose the maximum length of a field and preferably record and block every attack.
El gobierno por comandos entre sedes es otro ejemplo de una ventaja de la invención. El gobierno por comandos entre sedes es un problema del cliente que consiste en engañar a un cliente para que crea que está accediendo a una sede, cuando en realidad está accediendo a una sede maliciosa. Esta sede maliciosa puede utilizarse para recoger información de conexión del usuario, datos de tarjetas de crédito, o simplemente para atacar el nombre de la empresa. Los sistemas y métodos de la invención pueden afrontar el problema de gobierno por comandos entre sedes.Command-to-site governance is another example of an advantage of the invention. The government for commands between headquarters is a problem of the client that consists in deceiving a client so that he thinks he is accessing a headquarters, when in fact he is accessing a malicious headquarters. This malicious site can be used to collect user connection information, credit card data, or simply to attack the company name. The systems and methods of the invention can address the problem of governance by commands between headquarters.
Al habilitar parámetros específicos cuando se accede a una aplicación, podría accederse a una puerta falsa, o dispararse una función de depuración que muestra demasiada información, lo que podría permitir a un cliente remoto irrumpir en el servidor. Los sistemas y métodos inhabilitan parámetros extra pasados a las aplicaciones, venciendo de esa manera el problema de la puerta falsa.By enabling specific parameters when accessing an application, a false door could be accessed, or a debugging function that shows too much information could be triggered, which could allow a remote client to break into the server. The systems and methods disable extra parameters passed to the applications, thereby overcoming the problem of the false door.
Los ejemplos anteriores incluyen un conjunto limitado de ataques o actos de piratería que el empleo de la invención puede evitar, o al menos desalentar. Como apreciarán los versados en la tecnología, existen hoy ataques o actos de piratería adicionales, y se desarrollarán en el futuro ataques y actos de piratería adicionales que representan un peligro para los sistemas. La invención, por lo tanto, no está limitada a los ejemplos anteriores, sino que puede, en cambio, adaptarse a estos otros tipos de ataques y actos de piratería.The above examples include a limited set of attacks or acts of piracy that the use of the invention can prevent, or at least discourage. As those versed in technology will appreciate, there are today additional attacks or acts of piracy, and further attacks and acts of piracy that pose a danger to the systems will develop. The invention, therefore, is not limited to the above examples, but may instead be adapted to these other types of attacks and acts of piracy.
II. Diagrama del SistemaII. System Diagram
Los sistemas según la invención pueden ubicarse en diversos lugares entre el cliente y el servidor. Los sistemas se insertan entre el protocolo HTTP y las capas de la aplicación HTTP, y tienen la capacidad • de interceptar cualquier mensaje entre ambas capas, por lo que son capaces de imponer la interfaz entre HTTP y la aplicación. Por ejemplo, como se muestra en la Figura 4, un sistema de seguridad 20 según una realización de la invención puede estar físicamente separado de un servidor 26 y clientes 24. El sistema 20 recibe peticiones de los clientes 24 a través de una red 22, y también recibe cualquier respuesta del servidor 26 antes de ser entregada a través de la red 22 a los clientes 24.The systems according to the invention can be located in various places between the client and the server. The systems are inserted between the HTTP protocol and the layers of the HTTP application, and have the ability to • intercept any message between both layers, so that they are able to impose the interface between HTTP and the application. For example, as shown in Figure 4, a security system 20 according to an embodiment of the invention may be physically separated from a server 26 and clients 24. System 20 receives requests from clients 24 through a network 22, and also receives any response from server 26 before being delivered through network 22 to clients 24.
Como es evidente en la figura, la invención no está limitada por los tipos de clientes, sino que, en cambio, abarca cualquier tipo de dispositivo o sistema, incluyendo, pero no limitándose a, la televisión digital, la televisión mejorada, la WebTV u otros tipos de televisión interactiva 24a; los ordenadores 24b; los ordenadores portátiles 24c; el Palm Pilot, el PocketPC, el Visor u otros Asistentes Digitales Personales y dispositivos de datos 24d; y los radioteléfonos móviles, los buscapersonas interactivos u otros dispositivos de comunicaciones 24e.As is evident in the figure, the invention is not limited by the types of customers, but instead covers any type of device or system, including, but not limited to, digital television, enhanced television, WebTV or other types of interactive television 24a; the computers 24b; 24c laptops; the Palm Pilot, the PocketPC, the Viewer or other Personal Digital Assistants and 24d data devices; and mobile radiotelephones, interactive pagers or other communication devices 24e.
La invención tampoco está limitada por los tipos de sistemas o dispositivos para los cuales el sistema 20 provee seguridad o protección. En una aplicación usual de la invención, el sistema 20 está concebido para usarse con un servidor 26. La invención, sin embargo, no está limitada a un entorno cliente-servidor, sino que, en cambio, abarca comunicaciones par-apar, computación distribuida u otros entornos de red.Nor is the invention limited by the types of systems or devices for which the system 20 provides security or protection. In a usual application of the invention, the system 20 is intended for use with a server 26. The invention, however, is not limited to a client-server environment, but instead encompasses part-time communications, distributed computing. or other network environments.
La Figura 4 ilustra el sistema 20 como un sistema autónomo, separado del servidor 26 y de la red 22. El sistema 20 puede implantarse como un artefacto de red que se coloca precisamente enfrente del servidor de Web 26, y que funciona como un servidor 'proxy'. Esta versión autónoma del sistema 20 se recomienda allí donde las prestaciones sean cruciales o donde hay un gran número de dominios o servidores de Web 26. La configuración de la versión autónoma requiere cambios en la topología de red, ya que debe configurarse como 'proxy' de los servidores HTTP 26. El sistema 20 no está limitado a funcionar como sistema autónomo, sino que, en cambio, puede ubicarse en cualquier parte de la red donde el sistema 20 pueda interceptar peticiones y respuestas. En el entorno cliente- servidor, el sistema 20 puede ubicarse en cualquier parte donde el sistema 20 pueda interceptar las transmisiones entre los clientes y los servidores, verificar las transmisiones por cualquier petición maliciosa que pudiese resultar en un acceso ¡legal y tomar la acción apropiada. Como otra opción, el sistema 20 puede ser co-residente con el mismo servidor 26, como versión modular de un servidor de contenidos. En este ejemplo, el sistema 20 puede implantarse como una extensión a un servidor HTTP, tal como US, Netscape/lplanet y Apache. El sistema 20 se instala en la misma máquina que el servidor HTTP y no necesita ninguna configuración especial de red para funcionar. Esta configuración del sistema 20 se recomienda allí donde hay un número limitado de dominios y servidores, o donde no se necesitan prestaciones ni caudal máximos. Además, esta configuración es más fácil de establecer, ya que no requiere ningún cambio de la topología de red. Como una opción adicional, el sistema 20 puede implantarse como parte de la red 20 y/o como parte de los dispositivos 24.Figure 4 illustrates system 20 as a stand-alone system, separate from server 26 and network 22. System 20 can be implemented as a network artifact that is placed precisely in front of Web server 26, and functions as a server. proxy '. This autonomous version of the system 20 is recommended where the benefits are crucial or where there are a large number of Web domains or servers 26. The configuration of the autonomous version requires changes in the network topology, since it must be configured as a 'proxy' of HTTP servers 26. System 20 is not limited to functioning as a stand-alone system, but instead can be located anywhere in the network where system 20 can intercept requests and responses. In the client-server environment, system 20 can be located anywhere where system 20 can intercept transmissions between clients and servers, verify transmissions by any malicious request that could result in legal access and take appropriate action. . As another option, the system 20 can be co-resident with the same server 26, as a modular version of a content server. In this example, system 20 can be implemented as an extension to an HTTP server, such as US, Netscape / lplanet and Apache. System 20 is installed on the same machine than the HTTP server and does not need any special network configuration to work. This configuration of the system 20 is recommended where there are a limited number of domains and servers, or where maximum performance or throughput is not required. In addition, this configuration is easier to establish, since it does not require any changes to the network topology. As an additional option, the system 20 can be implemented as part of the network 20 and / or as part of the devices 24.
III. Firma de Contenido Como se ha mencionado más arriba, los sistemas según la invención toman respuestas de los servidores y peticiones de clientes, y generan una firma. Esta firma se utiliza luego para decidir si una petición posterior de un cliente es segura. Los métodos preferidos para procesar las respuestas y peticiones se describirán ahora con referencia a las Figuras 5(A) y 5(B).III. Content Signature As mentioned above, the systems according to the invention take responses from servers and client requests, and generate a signature. This signature is then used to decide if a subsequent request from a customer is secure. Preferred methods for processing responses and requests will now be described with reference to Figures 5 (A) and 5 (B).
A. Procesamiento de RespuestasA. Response Processing
Un diagrama de flujo según un método preferido 30 de interceptar respuestas se describe en la Figura 5(A). En 32, el sistema 20 recibe el contenido enviado a un cliente 24. Típicamente, el servidor 26 entrega el contenido en respuesta a una petición previa recibida del cliente 24. La invención, sin embargo, no está limitado a servidores 26 que sólo responden cuando se les solicita, sino que puede también usarse con servidores 26 que entregan automáticamente el contenido sin ninguna petición precedente. En 33, el sistema 20 analiza el contenido que se está enviando al cliente 24. Luego, el sistema resume el contenido y genera una firma cifrada en 35, basada en ese resumen. Esta firma es específica para un trozo particular del contenido, o conjunto de contenidos, tal como una página con ciertos campos y valores predeterminados. El sistema 20 cifra la firma en 35 para impedir que el cliente 24 modifique la firma, desvirtuando de esa manera las medidas de seguridad. Una vez que la firma está cifrada, en 36 el sistema 20 envía el contenido con la firma cifrada al cliente 24.A flow chart according to a preferred method 30 of intercepting responses is described in Figure 5 (A). At 32, the system 20 receives the content sent to a client 24. Typically, the server 26 delivers the content in response to a previous request received from the client 24. The invention, however, is not limited to servers 26 that only respond when they are requested, but can also be used with servers 26 that automatically deliver the content without any previous request. In 33, the system 20 analyzes the content that is being sent to the client 24. Then, the system summarizes the content and generates an encrypted signature in 35, based on that summary. This signature is specific to a particular piece of content, or set of content, such as a page with certain fields and default values. The system 20 encrypts the signature at 35 to prevent the client 24 from modifying the signature, thereby distorting the security measures. Once the signature is encrypted, in 36 the system 20 sends the content with the encrypted signature to the client 24.
Todo el método 30 y el sistema 20 son preferiblemente transparentes tanto para el servidor 26 como para el cliente 24. En otras palabras, el servidor 26 opera de la misma manera que lo hace sin ejecutar el método 30, y sin interponer el sistema 20 entre el servidor 26 y los clientes 24, por lo que, preferiblemente, no se necesitar efectuar ninguna modificación al servidor 25 ni a ninguna de sus aplicaciones. El método 30 y el sistema 20 también son transparentes a los clientes 24, por lo que los clientes 24 no ven ninguna diferencia en la operación.All method 30 and system 20 are preferably transparent to both server 26 and client 24. In other words, server 26 operates in the same manner as it does without executing method 30, and without interposing system 20 between server 26 and clients 24, so that, preferably, no modification is necessary to the server 25 or any of its applications. Method 30 and system 20 are also transparent to customers 24, so customers 24 do not see any difference in operation.
B. Procesamiento de PeticionesB. Petition Processing
Un método preferido 40 de procesar las peticiones de los clientes 24 se describirá ahora con referencia a la Figura 5(B). El método 40 comienza en 41 cuando el servidor 26 recibe una petición de cliente. Como se hará más evidente con la descripción más abajo, al menos algunas de las peticiones, pero no necesariamente todas, dispararán el método 40. Cuando el método 40 se dispara, en 42 el sistema 20 interceptará la petición, descifrará la petición, y derivará la firma. En 43, el sistema 20 compara la firma cifrada en la petición con el contenido de la misma petición. Durante la operación normal, sin ninguna alteración de la petición, la firma se corresponderá con el contenido de la petición. En tal caso, en 44, el sistema 20 determina que la petición es válida y en 46 remite la petición al servidor 26 para su procesamiento. Si, en caso contrario, la petición ha sido manipulada, entonces en 44 el sistema 20 halla que la firma y la petición no se corresponden, y bloqueará la petición en 45.A preferred method 40 of processing customer requests 24 will now be described with reference to Figure 5 (B). Method 40 begins at 41 when server 26 receives a client request. As will become more evident with the description below, at least some of the requests, but not necessarily all, will trigger method 40. When method 40 is triggered, in 42 system 20 will intercept the request, decrypt the request, and derive the signature In 43, system 20 compares the signature encrypted in the request with the content of the same request. During normal operation, without any alteration of the request, the signature will correspond to the content of the request. In that case, in 44, the system 20 determines that the request is valid and in 46 it sends the request to the server 26 for processing. If, otherwise, the request has been manipulated, then in 44 the system 20 finds that the signature and the request do not correspond, and will block the request in 45.
C. ContenidoC. Content
Como se ha mencionado más arriba, en 32 el método 30 comprende la recepción de contenido que está siendo entregado al cliente. Analizando el contenido, el sistema 20 determina si una petición posterior de un cliente 24 es válida. El sistema 20, sin embargo, no necesita analizar todo el contenido que se está entregando a los clientes 24 y, de hecho, preferiblemente omite algunas respuestas.As mentioned above, in 32 method 30 comprises receiving content that is being delivered to the client. Analyzing the content, the system 20 determines if a subsequent request from a client 24 is valid. The system 20, however, does not need to analyze all the content that is being delivered to the clients 24 and, in fact, preferably omit some answers.
Por ejemplo, el sistema 20, preferiblemente, no firma las respuestas del servidor 26 donde los clientes 24 pueden iniciar las comunicaciones con el servidor 26. En un servidor WWW 26, estas respuestas podrían estar asociadas con una página raíz u otras páginas que los clientes 24 deberían poder visitar libremente, y que ofrecen un bajo riesgo de ataque. En la realización preferida, como se describirá en mayor detalle más abajo, el sistema 20 permite a un administrador configurar ciertos recursos URL como "Páginas de Inicio", lo que significa que para acceder al recurso no se necesita ninguna firma. Las páginas de inicio deberían configurarse para que sean aquellas páginas en la estructura del sitio Web a las que un cliente 24 puede acceder directamente, tecleándolas, por ejemplo, en la barra del URL de un explorador, a través de enlaces disponibles en otros sitios o bien usando características de marcadores. Estas páginas incluyen la página de bienvenida principal o página raíz, la página principal para los departamentos, etc. Debido a que el acceso a las páginas de Inicio no está restringido, una aplicación no debería ser designada como una página de Inicio, ya que no se beneficiará de la protección de la firma de contenidos.For example, system 20 preferably does not sign responses from server 26 where clients 24 can initiate communications with server 26. On a WWW server 26, these responses could be associated with a root page or other pages than clients. 24 should be able to visit freely, and that offer a low risk of attack. In the preferred embodiment, as will be described in greater detail below, the system 20 allows an administrator to configure certain URL resources as "Home Pages", which means that no signature is required to access the resource. The start pages should be configured to be those pages in the structure of the Web site that can be accessed directly by a client 24, by typing them, for example, in the browser's URL bar, through links available on other sites or Well using bookmark features. These pages include the main welcome page or root page, the main page for departments, etc. Because access to Start pages is not restricted, an application should not be designated as a Start page, as it will not benefit from content signature protection.
Como otro ejemplo, en la realización preferida el administrador puede designar algunos contenidos como Páginas de Excepción. Igual que con las páginas de inicio, la configuración de recursos URL como "Páginas de Excepción" causará que el sistema 20 entregue estas páginas a los clientes 24 sin ninguna firma de contenidos. Una página de Excepción está bien dotada para aquellas configuraciones donde algunos contenidos están fuera del control de la organización, como por ejemplo en una disposición ISP, donde los usuarios pueden modificar sus propias páginas Web. En estos tipos de situaciones, la firma de esas páginas podría comprometer la seguridad, ya que un usuario malicioso podría publicar una página Web con enlaces a peticiones falsificadas que podrían conducir a problemas de seguridad de la aplicación.As another example, in the preferred embodiment the administrator may designate some content as Exception Pages. As with the home pages, the configuration of URL resources as "Exception Pages" will cause system 20 to deliver these pages to clients 24 without any content signature. An Exception page is well equipped for those configurations where some content is beyond the control of the organization, such as in an ISP provision, where users can modify their own Web pages. In these types of situations, the signature of those pages could compromise security, since a malicious user could publish a Web page with links to falsified requests that could lead to application security problems.
El sistema 20, preferiblemente, impide el acceso a páginas no directamente referidas desde dentro del servidor de contenido, o configuradas como páginas de inicio. De esta manera, si un servidor de contenido 26 instala aplicaciones y contenido de muestra que el administrador desconoce, el sistema 20 automáticamente bloquea el acceso a tal contenido de muestra. Un usuario malicioso, por lo tanto, queda bloqueado para acceder a páginas "de muestra" o aplicaciones instaladas durante la configuración del servidor de contenido, que, si se demuestra vulnerable, es el tipo de ataque más ampliamente usado contra los servidores de contenido 26.System 20 preferably prevents access to pages not directly referred from within the content server, or configured as home pages. Thus, if a content server 26 installs applications and sample content that the administrator does not know, system 20 automatically blocks access to such sample content. A malicious user, therefore, is blocked to access "sample" pages or applications installed during the configuration of the content server, which, if found vulnerable, is the most widely used type of attack against content servers 26 .
D. Análisis y Resumen Como se ha mencionado más arriba, el sistema 20 intercepta la respuesta del servidor 26 a una petición del cliente, analiza la respuesta y resume la respuesta. Analizando y resumiendo, el sistema 20 puede generar una firma para esa respuesta y determinar más tarde si una petición de un cliente es válida. El resumen abarca la identificación de partes importantes del contenido a partir de los cuales puede generarse la firma. Esta firma describe campos y valores presentes en la página.D. Analysis and Summary As mentioned above, system 20 intercepts the response from server 26 to a client request, analyze the response and summarize the response. Analyzing and summarizing, system 20 can generate a signature for that response and determine later if a request from a customer is valid. The summary covers the identification of important parts of the content from which the signature can be generated. This signature describes fields and values present on the page.
El sistema 20 puede realizar este análisis y resumen de diversas maneras. En la realización preferida, el sistema 20 analiza los puntos de entrada en el contenido, tales como formularios, campos de entrada, etc., y los firma creando una firma única que se inserta en la respuesta sobre la marcha. Se garantiza que esta firma es única y inmodificable cifrándola antes que el sistema 20 la inserte en el contenido. El sistema 20 retransmite entonces la página al cliente 24 en un procedimiento totalmente transparente para el diseñador del contenido y para el usuario final. El diseñador del contenido no necesita alterar su diseño a fin de permitir que el sistema 20 funcione, ni verá el usuario final un cambio en la apariencia de la página. Debería entenderse que el sistema 20 puede determinar que otras porciones o aspectos de la respuesta son importantes, y usar esas otras porciones o aspectos para generar una firma.System 20 can perform this analysis and summary in various ways. In the preferred embodiment, the system 20 analyzes the entry points in the content, such as forms, input fields, etc., and signs them creating a unique signature that is inserted into the response on the fly. It is guaranteed that this signature is unique and unmodifiable by encrypting it before the system 20 inserts it into the content. The system 20 then retransmits the page to the client 24 in a completely transparent procedure for the content designer and for the end user. The content designer does not need to alter its design in order to allow the system 20 to work, nor will the end user see a change in the appearance of the page. It should be understood that system 20 can determine that other portions or aspects of the response are important, and use those other portions or aspects to generate a signature.
E. CifradoE. Encryption
A fin de impedir la manipulación de firmas por parte de un usuario malicioso, el sistema 20 utiliza el cifrado en el procedimiento de firma. Cuando una petición se recibe más tarde, el sistema 20 descifra la petición para obtener una versión en texto llano de la firma. Esta firma se compara luego con el contenido de la misma petición al validar dicha petición. El sistema 20, por ejemplo, puede comparar la firma con el tipo, valor, longitud y cardinalidad de la petición.In order to prevent the manipulation of signatures by a malicious user, the system 20 uses encryption in the signature procedure. When a request is received later, system 20 decrypts the request to obtain a plain text version of the signature. This signature is then compared to the content of the same request when validating said request. System 20, for example, can compare the signature with the type, value, length and cardinality of the request.
Si bien la invención puede usar cualquier tipo adecuado de cifrado, el algoritmo preferido es el bien conocido Estándar de Cifrado AmericanoWhile the invention can use any suitable type of encryption, the preferred algorithm is the well-known American Encryption Standard
(American Encryption Standard - AES), adoptado por la NSA como el nivel actual de cifrado seguro. El sistema 20 ofrece cifrado de 128, 192 o 256 bits, suministrando distintos niveles de seguridad a cambio de cierta pérdida de eficiencia vinculada al procesamiento de cifrado. El usuario puede escoger un periodo de vida para la clave, lo que resulta en marcos temporales reducidos para un posible esfuerzo de piratería en gran escala contra un texto cifrado. Cada configuración del sistema 20 tiene su propia clave, lo que evita problemas de seguridad vinculados a las claves compartidas. El sistema 20 permite que un administrador genere claves o las ingrese manualmente desde dentro de la interfaz de configuración . Dado que AES fue desarrollado fuera de los EE.UU., no está restringido por las leyes de exportación de cifrado de los EE.UU.(American Encryption Standard - AES), adopted by the NSA as the current level of secure encryption. System 20 offers 128, 192 or 256 bit encryption, providing different levels of security in exchange for some loss of efficiency linked to encryption processing. The user can choose a life period for the key, resulting in time frames reduced for a possible large-scale piracy effort against encrypted text. Each system configuration 20 has its own key, which avoids security problems linked to the shared keys. System 20 allows an administrator to generate keys or enter them manually from within the configuration interface. Since AES was developed outside the US, it is not restricted by US encryption export laws.
F. Comparación El sistema 20 genera la firma de la respuesta en 35 y entrega la respuesta con la firma cifrada en 36. Más tarde, cuando se recibe una petición de un cliente 24, el sistema 20 compara una firma asociada a la petición con la petición. Por ejemplo, una vez que un usuario procesa una página y accede a una aplicación HTTP en el servidor 26, por ejemplo, despachando un formulario, siguiendo un enlace, etc., el cliente 24 envía una petición que incluye la firma al servidor de contenido. Antes que la petición se entregue al servidor 26, el sistema 20 intercepta la petición y realiza la comparación.F. Comparison System 20 generates the signature of the response at 35 and delivers the response with the signature encrypted at 36. Later, when a request is received from a customer 24, system 20 compares a signature associated with the request with the request. petition. For example, once a user processes a page and accesses an HTTP application on server 26, for example, by dispatching a form, following a link, etc., client 24 sends a request that includes the signature to the content server . Before the request is delivered to the server 26, the system 20 intercepts the request and makes the comparison.
En general, la petición se valida basándose en las variables y valores esperados y en el contenido efectivo de la petición. Si la entrada coincide con los valores esperados, el sistema 20 suministra la petición transparentemente a la aplicación HTTP que la procesará. En caso contrario, si por cualquier razón la entrada en la petición no coincide con los valores esperados, el sistema 20 bloquea la petición en 45. Al bloquear la petición, el sistema 20 puede generar un error informativo configurable y enviar este error al usuario. El sistema 20 puede también ingresar el evento en un registro de entradas de acceso ilegal y proveer, optativamente, alertas en tiempo real a un administrador.In general, the request is validated based on the expected variables and values and the effective content of the request. If the input matches the expected values, system 20 supplies the request transparently to the HTTP application that will process it. Otherwise, if for any reason the entry in the request does not match the expected values, the system 20 blocks the request at 45. By blocking the request, the system 20 can generate a configurable information error and send this error to the user. System 20 can also enter the event in a registry of illegal access entries and optionally provide real-time alerts to an administrator.
El sistema 20 valida la entrada basándose en la información del contenido original a fin de detectar respuestas maliciosas o inválidas. Una manera en que el sistema 20 valida la entrada es examinando totales de variables y nombres para asegurar que una aplicación recibe exactamente el número de variables que está esperando, y deteniendo todo acceso a funcionalidades desconocidas de aplicación, como funciones de depuración o puertas falsas. El sistema 20 también verifica el valor del contenido. Si se imponen valores en la página, usando, por ejemplo, campos "ocultos", opciones de configuración, etc., entonces el sistema 20 comprueba si están presentes en la petición del cliente. El sistema 20 valida la longitud del valor del contenido en la petición. Si el diseñador del contenido impuso una longitud de contenido, el sistema 20 valida que la entrada sea conforme a esa longitud máxima. Si la longitud no fue especificada, el sistema 20 impone una longitud configurada por omisión para impedir ataques basados en desbordes de almacenes o memorias cúmulo. El sistema 20 monitoriza el URL de destino y permite a un cliente 24 que acceda sólo a un conjunto designado de los URL. El sistema 20 sólo verifica para estos URL designados, por lo que un usuario no puede saltar desde un URL a otro sin los permisos debidos.System 20 validates the entry based on the original content information in order to detect malicious or invalid responses. One way in which the system 20 validates the input is by examining totals of variables and names to ensure that an application receives exactly the number of variables it is waiting for, and stopping all access to unknown application functionalities, such as debugging functions or false doors. System 20 also verifies the value of the content. If values are imposed on the page, using, for example, "hidden" fields, options for configuration, etc., then the system 20 checks if they are present in the client's request. System 20 validates the length of the content value in the request. If the content designer imposed a content length, the system 20 validates that the input conforms to that maximum length. If the length was not specified, system 20 imposes a default configured length to prevent attacks based on store overflows or cluster memories. System 20 monitors the destination URL and allows a client 24 to access only a designated set of URLs. System 20 only checks for these designated URLs, so a user cannot jump from one URL to another without the proper permissions.
Convenientemente, el sistema 20 no utiliza señuelos a fin de mantener el rastro de los usuarios; toda la información necesaria está incrustada en la página enviada al cliente. Como resultado de esto, no se necesita ninguna configuración especial, en los equilibradores de carga o exploradores del usuario, a fin de operar con el sistema 20. Además, se evita cualquier preocupación en cuanto a la privacidad que pudiese haberse suscitado debido al uso de señuelos, porque el sistema 20 en sí no utiliza señuelos.Conveniently, the system 20 does not use decoys in order to keep track of the users; All necessary information is embedded in the page sent to the client. As a result, no special configuration is needed, in the user’s load balancers or browsers, in order to operate with the system 20. In addition, any privacy concerns that may have arisen due to the use of decoys, because the system 20 itself does not use decoys.
Si bien el sistema 20 no emplea señuelos en la firma de contenidos, el sistema 20, no obstante, es operable con los servidores 26 y con las aplicaciones que sí utilizan señuelos. El sistema 20 puede realizar la firma y validación de señuelos. Cuando una aplicación HTTP coloca un señuelo en el explorador del usuario final, el sistema 20 intercepta la cabecera HTTP correspondiente y la firma, permitiendo las comprobaciones de integridad sobre el señuelo una vez que se envía de vuelta al servidor en peticiones futuras. Al firmar estos señuelos, el sistema 20 impide que un usuario modifique el contenido de un señuelo y, de esta manera, detiene los ataques basados en el envenenamiento de señuelos.Although the system 20 does not use decoys in the content signature, the system 20, however, is operable with the servers 26 and with the applications that use decoys. System 20 can perform the signing and validation of decoys. When an HTTP application places a decoy in the end-user browser, system 20 intercepts the corresponding HTTP header and signature, allowing integrity checks over the decoy once it is sent back to the server in future requests. By signing these decoys, system 20 prevents a user from modifying the contents of a decoy and, thus, stops attacks based on decoy poisoning.
IV. Entornos OperativosIV. Operating Environments
Como se ha mencionado más arriba, el sistema 20 no está limitado por los tipos de dispositivos 24 ni por los tipos de sistemas 26. En la exposición de este documento, el entorno es un entorno cliente-servidor, siendo los dispositivos 24 clientes y siendo el sistema 26 un servidor. El sistema 20 no está limitado a un único servidor 26, sino que, en cambio, soporta múltiples servidores. Al firmar el contenido de la página, el sistema 20 no requiere ninguna configuración especial para admitir sistemas redundantes tolerantes a fallos, allí donde está presente más de un sistema 20 o donde están emplazados equilibradores de carga. De hecho, pueden desplegarse múltiples sistemas 20 en el mismo dominio si todos los sistemas 20 comparten la clave maestra.As mentioned above, the system 20 is not limited by the types of devices 24 or the types of systems 26. In the presentation of this document, the environment is a client-server environment, the devices being 24 clients and being the system 26 a server. System 20 is not limited to a single server 26, but instead supports multiple servers When signing the content of the page, the system 20 does not require any special configuration to support redundant fault-tolerant systems, where more than one system 20 is present or where load balancers are located. In fact, multiple systems 20 can be deployed in the same domain if all systems 20 share the master key.
El sistema 20 no tiene un límite para las sesiones o peticiones de usuarios concurrentes. El sistema 20 tampoco requiere una cantidad excesiva de memoria a fin de alojar los detalles de usuario, ya que distribuye información de autenticación entre los servidores y clientes. El sistema, por lo tanto, puede ejecutarse en una red sin ningún requisito añadido, ya sea un PC de la gama baja o un sistema empotrado donde los recursos son caros y limitados. Esta característica, y el hecho de que el sistema 20 no utiliza señuelos ni ninguna otra función especial en el lado del cliente, convierte al sistema 20 en una tecnología de "enchufar y usar", para su utilización en cualquier dispositivo de red que tenga la capacidad de interceptar tráfico, ya sea un Cortafuegos tradicional, un equilibrador de carga, un 'proxy'/acelerador HTTP, etc.System 20 does not have a limit for sessions or requests from concurrent users. System 20 also does not require an excessive amount of memory in order to accommodate user details, as it distributes authentication information between servers and clients. The system, therefore, can run on a network without any additional requirements, be it a low-end PC or a built-in system where resources are expensive and limited. This feature, and the fact that the system 20 does not use decoys or any other special function on the client side, makes the system 20 a "plug and use" technology, for use in any network device that has the ability to intercept traffic, be it a traditional firewall, a load balancer, an HTTP proxy / accelerator, etc.
El sistema 20 soporta medidas adicionales de seguridad, tales como la Capa de Puertos Seguros (Secure Socket Layer - SSL), tanto en el módulo servidor como en versiones autónomas. El sistema 20 controla transparentemente las conexiones SSL enganchándose entre la SSL y las capas de aplicación, por lo que no se requiere ninguna configuración especial para operar en entornos SSL. En la versión autónoma, el sistema 20 descifra mensajes SSL mientras está entre el servidor 26 y el cliente 24.System 20 supports additional security measures, such as the Secure Socket Layer (SSL) Layer, both in the server module and in autonomous versions. System 20 transparently controls SSL connections by hooking between SSL and application layers, so no special configuration is required to operate in SSL environments. In the standalone version, system 20 decrypts SSL messages while it is between server 26 and client 24.
El sistema 20 controla automáticamente esta conversión utilizando el certificado SSL de servidor de Web seguro a fin de descifrar el tráfico entre el cliente 24 y el servidor 26.System 20 automatically controls this conversion using the SSL certificate of the secure Web server in order to decrypt the traffic between client 24 and server 26.
Algunas veces, las aplicaciones del lado del cliente, tales como Javascript, VBScript, Java y Flash, interactúan con las aplicaciones HTTP ubicadas en el servidor 26. Estas aplicaciones a menudo manipulan los URL o valores de formularios después que el servidor 26 los ha enviado al cliente 24. Cuando el cliente 24 envía esta petición, el sistema 20 detecta la manipulación en la petición y se niega a pasar la petición a la aplicación. A fin de admitir tales aplicaciones, el sistema 20 puede configurarse para ofrecer dos niveles de seguridad para las aplicaciones del lado del cliente. En un nivel bajo, el sistema 20 acepta peticiones donde se ha modificado el contenido de variables, siempre que las modificaciones no excedan la longitud máxima predefinida. En un nivel alto, el sistema se niega a aceptar ninguna petición que haya sido modificada en el lado del cliente, excepto aquellas variables y valores definidos en la configuración o marcados en la página con etiquetas. Debido a la naturaleza de las aplicaciones del lado del cliente, a menudo es imposible saber de antemano cuándo se crea la firma, cómo interactuará el usuario con la aplicación y qué valores se enviarán. El sistema 20, por lo tanto, altera la manera en que provee seguridad a las páginas que incrustan aplicaciones del lado del cliente que no pueden verificarse de la manera usual.Sometimes, client-side applications, such as Javascript, VBScript, Java and Flash, interact with HTTP applications located on server 26. These applications often manipulate form URLs or values after server 26 has sent them. to the client 24. When the client 24 sends this request, the system 20 detects the manipulation in the request and refuses to pass the request to the application. In order to support such applications, the system 20 can be configured to offer two levels of security for client side applications. At a low level, system 20 accepts requests where the content of variables has been modified, provided that the modifications do not exceed the maximum predefined length. At a high level, the system refuses to accept any request that has been modified on the client side, except those variables and values defined in the configuration or marked on the page with labels. Due to the nature of client-side applications, it is often impossible to know in advance when the signature is created, how the user will interact with the application and what values will be sent. System 20, therefore, alters the way in which it provides security to pages that embed client-side applications that cannot be verified in the usual manner.
Por diseño, el sistema 20 se integra transparentemente en una red del cliente, aprovechándose de los recursos que ya están emplazados. El sistema 20 puede usarse con equilibrio de carga o alta disponibilidad, sin ninguna necesidad de reconfiguración. En caso de que el sistema 20 o un servidor HTTP asociado quedaran fuera de línea, no se requiere ningún paso a fin de sincronizar la información de estado con otros sistemas 20 operando en una configuración de 'cluster', ya que la información se distribuye automáticamente entre los servidores y clientes durante la operación normal. De esta manera, ninguna petición se perderá ni será afectada por la latencia debida a la sincronización, incluso en caso de que el sistema 20 quede fuera de línea. Cuando el sistema 20 se recupere, el sistema 20 recibirá automáticamente la configuración más reciente de los otros nodos y comenzará a operar con seguridad como desde la primera petición.By design, the system 20 is transparently integrated into a client network, taking advantage of the resources that are already located. System 20 can be used with load balancing or high availability, without any need for reconfiguration. In the event that the system 20 or an associated HTTP server is offline, no step is required in order to synchronize the status information with other systems 20 operating in a 'cluster' configuration, since the information is automatically distributed between servers and clients during normal operation. In this way, no request will be lost or affected by the latency due to synchronization, even if the system 20 goes offline. When system 20 recovers, system 20 will automatically receive the most recent configuration from the other nodes and will start operating safely as from the first request.
V. Registros y AlertasV. Logs and Alerts
El sistema 20, preferiblemente, mantiene un registro de eventos, tales como un registro de todas las peticiones inválidas recibidas de los clientes.System 20 preferably maintains a record of events, such as a record of all invalid requests received from customers.
El sistema 20, preferiblemente, registra todas las peticiones de acceso ilegal en un registro legible por humanos, accesible a través del Web. Adicionalmente, el sistema 20 puede emitir alertas o advertencias. Estas alertas pueden emitirse de diversas maneras, tales como por medio del correo electrónico, un buscapersonas u otro sistema de mensajes de texto o de voz. Las alertas en tiempo real pueden advertir a los administradores cuando se están realizando intentos ilegales, por lo cual el administrador puede tomar la acción apropiada a fin de contrarrestar dichos intentos. Todo intento de acceso ilegal bloqueado por el sistema 20 puede ser un intento real, ya que la modificación de peticiones requiere una operación en el lado del usuario malicioso. El sistema 20, por consiguiente, no emite falsos mensajes positivos en el registro, sino simplemente ataques a aplicaciones bloqueados por el sistema 20.System 20 preferably records all requests for illegal access in a human-readable register, accessible through the Web. Additionally, system 20 can issue alerts or warnings. These alerts can be issued in a variety of ways, such as via email, a pager or other text message system or voice. Real-time alerts can warn administrators when illegal attempts are being made, so the administrator can take appropriate action to counter such attempts. Any attempt at illegal access blocked by system 20 can be a real attempt, since the modification of requests requires an operation on the side of the malicious user. System 20, therefore, does not issue false positive messages in the registry, but simply attacks on applications blocked by system 20.
VI. PersonalizaciónSAW. Personalization
El sistema 20 puede implantarse según los deseos de un cliente. En otras palabras, el sistema 20, preferiblemente, puede personalizarse para un entorno particular según los deseos de un cliente. El sistema 20 admite un gran número de personalizaciones y configuraciones de seguridad. El sistema 20 también ofrece una opción de configuración "enchufar y usar", que permite que un usuario sin ningún conocimiento de seguridad provea seguridad a las aplicaciones albergadas en su sede, sin ninguna necesidad de configurar ningún valor. Esta configuración de "enchufar y usar" está concebida para sistemas 20 que protegen dominios múltiples, como por ejemplo en una empresa anfitriona, donde la tarea de actualizar y proteger el contenido está fuera del ámbito del administrador, dejando esa tarea al usuario final, un usuario que no necesariamente tiene el conocimiento para configurar el sistema 20.The system 20 can be implemented according to the wishes of a client. In other words, the system 20 can preferably be customized for a particular environment according to the wishes of a customer. System 20 supports a large number of customizations and security settings. The system 20 also offers a "plug and use" configuration option, which allows a user without any security knowledge to provide security to the applications hosted at their headquarters, without any need to configure any value. This "plug and use" configuration is designed for systems 20 that protect multiple domains, such as in a host company, where the task of updating and protecting the content is outside the scope of the administrator, leaving that task to the end user, a user who does not necessarily have the knowledge to configure the system 20.
Según un conjunto preferido de valores de configuración de seguridad de "enchufar y usar", el sistema 20 sólo firma objetos que accederán a una aplicación, lo que incluye los formularios y los enlaces donde se pasan parámetros. El sistema 20 no protege páginas ni verifica firmas donde no interviene ningún argumento. Esta configuración permite que un servidor proteja sus aplicaciones sin tener que configurar páginas de inicio. El sistema 20 no protege señuelos; para proteger señuelos debe definirse la sección de señuelos de la configuración. Los valores de seguridad de procedimientos en el lado del cliente se fijarán como "LOW" (Bajo), permitiendo que la mayoría de las aplicaciones Javascript funcionen mientras se protegen las aplicaciones del lado del servidor. La configuración de "enchufar y usar" es deseable en situaciones tales como el entorno anfitrión, pero no es ideal para muchas otras situaciones. Por ejemplo, el sistema 20 no debería estar en una configuración de "enchufar y usar" cuando se requiera la máxima seguridad. La configuración de "enchufar y usar" define un conjunto de valores de seguridad, pero no sustituye a un servidor debidamente personalizado. La configuración deAccording to a preferred set of "plug and use" security settings, system 20 only signs objects that will access an application, including forms and links where parameters are passed. System 20 does not protect pages or verify signatures where no arguments are involved. This configuration allows a server to protect its applications without having to configure start pages. System 20 does not protect decoys; To protect decoys, the decoy section of the configuration must be defined. The security settings for client-side procedures will be set to "LOW", allowing most Javascript applications to work while server-side applications are protected. The "plug and use" configuration is desirable in such situations as the host environment, but not ideal for many other situations. For example, system 20 should not be in a "plug and play" configuration when maximum security is required. The "plug and use" setting defines a set of security settings, but does not replace a properly customized server. The configuration of
"enchufar y usar" tampoco se recomienda cuando el contenido de la página está fuera del ámbito de la organización, tal como en un ISP que ofrece alojamiento en Web a sus usuarios. En esta configuración, se recomiendan las Páginas de Excepción, ya que un usuario malicioso podría usar el acceso al Web para crear páginas que, una vez firmadas, le permitirán subvertir la seguridad de la aplicación."Plug and use" is also not recommended when the content of the page is outside the scope of the organization, such as in an ISP that offers Web hosting to its users. In this configuration, the Exception Pages are recommended, since a malicious user could use the Web access to create pages that, once signed, will allow you to subvert the security of the application.
Vil. Etiquetas del Lado del ServidorVile. Server Side Labels
Las etiquetas del lado del servidor permiten a una aplicación intermedia, que está examinando el contenido de una página Web, tomar acciones basándose en el contenido de las etiquetas. Estas etiquetas son incrustadas en el contenido de la página Web por el autor del documento, y no son interpretadas por el explorador del Web, pero son detectadas e interpretadas por una aplicación intermedia tal como el sistema 20. El sistema 20 utiliza etiquetas del lado del servidor a fin de "marcar" los elementos del contenido que podrían ser modificados por aplicaciones del lado del cliente, maxímizando la seguridad de la aplicación.Server-side tags allow an intermediate application, which is examining the content of a Web page, to take actions based on the content of the tags. These tags are embedded in the content of the Web page by the author of the document, and are not interpreted by the Web browser, but are detected and interpreted by an intermediate application such as system 20. System 20 uses side-side labels. server in order to "mark" the elements of the content that could be modified by client-side applications, maximizing the security of the application.
Un ejemplo de etiqueta del lado del cliente podría ser: <INPUT TYPE="texto" NAME="dirección" CLASS="hive_email"> Esta etiqueta no será interpretada por el explorador del cliente, sino por el mismo sistema 20, que realizará su procesamiento basándose en el valor de la etiqueta.An example of a client-side tag could be: <INPUT TYPE = "text" NAME = "address" CLASS = "hive_email"> This tag will not be interpreted by the client's browser, but by the same system 20, which will perform its processing based on the tag value.
VIII. Arquitectura del Sistema Una arquitectura de sistema preferida para el sistema 20 se describirá ahora con referencia a las Figuras 6(A) y 6(B). Con referencia a la Figura 6(A), una unidad de intercepción de respuesta 62 recibe una respuesta desde el servidor de Web 26. La unidad de intercepción de respuesta 62 pasa la respuesta primero a un analizador sintáctico, tal como la unidad de análisis sintáctico de código HTML 63. El analizador sintáctico 63 realiza el análisis y resumen de la respuesta para derivar campos importantes. Estos campos se pasan a una unidad de creación de firma 64, que crea una firma para esa respuesta. Una unidad de cifrado 65 cifra la firma junto con la respuesta, y la respuesta y la firma cifrada, juntas, se pasan al cliente de Web 24, a través de Internet, por ejemplo.VIII. System Architecture A preferred system architecture for system 20 will now be described with reference to Figures 6 (A) and 6 (B). With reference to Figure 6 (A), a response intercept unit 62 receives a response from the Web server 26. The response intercept unit 62 passes the response first to a syntactic analyzer, such as the syntactic analysis unit HTML code 63. The parser 63 performs the Analysis and summary of the response to derive important fields. These fields are passed to a signature creation unit 64, which creates a signature for that response. An encryption unit 65 encrypts the signature together with the response, and the response and the encrypted signature, together, are passed to the Web 24 client, via the Internet, for example.
Cuando se recibe una petición del cliente de Web 24, una unidad de intercepción de petición 66 recibe la petición y la envía a una unidad de verificación de firma 67. La unidad de verificación de firma 67 emplea una unidad de descifrado 68 para derivar la versión en texto llano de la firma. La unidad de verificación de firma 67 compara luego la firma con el contenido de la petición en sí. Si la unidad de verificación de firma 67 valida la petición, luego la unidad de verificación de firma 67 remite la petición al servidor de Web 26. Si la unidad de verificación de firma 67 invalida la petición, entonces la unidad de verificación de firma 67 envía el error a una unidad de error 69. La unidad de error 69 mantiene un fichero de registro de todos los errores, y también puede generar alertas basándose en el error recibido. La unidad de error 69 puede remitir estos errores a un administrador o a otro personal adecuado, a través del correo electrónico o del buscapersonas, por ejemplo.When a request is received from the Web 24 client, a request intercept unit 66 receives the request and sends it to a signature verification unit 67. The signature verification unit 67 uses a decryption unit 68 to derive the version in plain text of the firm. The signature verification unit 67 then compares the signature with the content of the petition itself. If the signature verification unit 67 validates the request, then the signature verification unit 67 sends the request to the Web server 26. If the signature verification unit 67 invalidates the request, then the signature verification unit 67 sends the error to an error unit 69. The error unit 69 maintains a log file of all errors, and can also generate alerts based on the error received. Error unit 69 may refer these errors to an administrator or other appropriate personnel, through email or pager, for example.
Un diagrama de flujo más detallado del procesamiento de respuestas se muestra en la Figura 7(A). El sistema 20 recibe una respuesta del servidor de Web y determina si es una página de excepción. Si lo es, entonces el procesamiento termina. Si la página no es una página de excepción, entonces el analizador sintáctico usa la unidad de creación de firma 64 y la unidad de cifrado 65. El procesamiento mostrado en la Figura 7(A) también comprende la determinación de si la respuesta es firmable y de si es una página de inicio.A more detailed flowchart of response processing is shown in Figure 7 (A). System 20 receives a response from the Web server and determines if it is an exception page. If it is, then the processing ends. If the page is not an exception page, then the parser uses the signature creation unit 64 and the encryption unit 65. The processing shown in Figure 7 (A) also includes determining whether the response is signable and of if it is a home page.
Con referencia a la Figura 7(B), el procesamiento de una petición comprende la recepción de la petición desde un cliente del Web en la unidad de intercepción de petición 66, y luego el envío de la petición a la unidad de verificación de firma 67. La unidad de verificación de firma 67 verifica si la petición comprende una página de inicio y, en caso contrario, empíea luego la unidad de descifrado 68 para derivar la firma. La unidad de verificación de firma 67 comprueba luego los valores, variables, cadenas y longitudes de la petición con respecto a la firma. En caso de un error, la unidad de verificación de firma 67 remite el error a la unidad de error 69. IX. EjemplosWith reference to Figure 7 (B), the processing of a request comprises receiving the request from a Web client in the request interception unit 66, and then sending the request to the signature verification unit 67 The signature verification unit 67 verifies whether the request comprises a home page and, otherwise, then starts the decryption unit 68 to derive the signature. The signature verification unit 67 then checks the values, variables, strings and lengths of the request with respect to the signature. In case of an error, the signature verification unit 67 refers the error to the error unit 69. IX. Examples
Se suministrarán ahora algunos ejemplos en cuando a cómo el sistema 20 puede usarse para proveer seguridad a aplicaciones HTTP. La ejecución de una aplicación de carro de la compra que permite a un usuario comprar cosas a través del Web se utilizará en estos ejemplos. La aplicación de carro de la compra se encuentra en http://www.example.com/applications/cart.cgi.Some examples will now be provided as to how the system 20 can be used to provide security to HTTP applications. The execution of a shopping cart application that allows a user to buy things through the Web will be used in these examples. The shopping cart application is located at http://www.example.com/applications/cart.cgi.
Esta aplicación es bastante sencilla y sólo examinaremos la sección de revisión. La aplicación sigue un diagrama de flujo mostrado en la Figura 8. Cuando el usuario hace una petición con el parámetro "action" fijado en "1", la aplicación exhibe un formulario con el número, nombre y precio de los artículos en su carro de la compra, así como un botón de "Revisión" que permitirá que se le cobre.This application is quite simple and we will only examine the review section. The application follows a flowchart shown in Figure 8. When the user makes a request with the "action" parameter set to "1", the application displays a form with the number, name, and price of the items in its shopping cart. the purchase, as well as a "Review" button that will allow you to be charged.
Un ejemplo de html asociado con la aplicación es el siguiente:An example of html associated with the application is as follows:
Ud. está encargando @COUNT@ de @NAME@ al precio de @PRICE@.You are ordering @ COUNT @ from @ NAME @ at the price of @ PRICE @.
<FORM ACTION=7cgi-bin/cart.cgi"><FORM ACTION = 7cgi-bin / cart.cgi ">
<INPUT TYPE="hidden" NAME="name" VALUE="@NAME@"><INPUT TYPE = "hidden" NAME = "name" VALUE = "@ NAME @">
<INPUT TYPE="hidden" NAME="count" VALUE="@COUNT@"> <INPUT TYPE="hidden" NAME="price" VALUE="@PRICE@"><INPUT TYPE = "hidden" NAME = "count" VALUE = "@ COUNT @"> <INPUT TYPE = "hidden" NAME = "price" VALUE = "@ PRICE @">
<INPUT TYPE="hidden" NAME="name" VALUE="@NAME@"><INPUT TYPE = "hidden" NAME = "name" VALUE = "@ NAME @">
<INPUT TYPE="hidden" NAME="file" VALUE="bill.txt"><INPUT TYPE = "hidden" NAME = "file" VALUE = "bill.txt">
<INPUT TYPE="text" NAME="destination" VALUE=""><INPUT TYPE = "text" NAME = "destination" VALUE = "">
<INPUT TYPE="submit" NAME="Checkout"> </FORM><INPUT TYPE = "submit" NAME = "Checkout"> </FORM>
Los valores encerrados entre "@" representan los valores efectivos de cada variable. Cuando el usuario pincha el botón "Revisión", la aplicación recibe una petición con el parámetro "action" fijado en "2" y una lista de artículos a cobrar al usuario, en las variables "ñame", "count" y "price". La aplicación graba un recibo en disco, envía por correo electrónico el recibo al comerciante y exhibe un mensaje de confirmación.The values enclosed in "@" represent the effective values of each variable. When the user clicks the "Review" button, the application receives a request with the "action" parameter set to "2" and a list of items to be charged to the user, in the variables "yam", "count" and "price" . The application records a receipt on disk, emails the receipt to the merchant and displays a confirmation message.
Lo siguiente describe una función WriteReceiptToDisk, que toma las variables enviadas por el cliente en el formulario anterior (fichero, nombre, cantidad y precio) y las graba en disco, y una función EmailConfirmation, que toma las variables enviadas por el cliente en el formulario anterior (destino, nombre, cantidad y precio) y las envía por correo electrónico a la dirección especificada en el parámetro "destination":The following describes a WriteReceiptToDisk function, which takes the variables sent by the client in the previous form (file, name, quantity and price) and records them to disk, and an EmailConfirmation function, which Take the variables sent by the customer in the previous form (destination, name, quantity and price) and send them by email to the address specified in the "destination" parameter:
WriteReceiptToDisk:WriteReceiptToDisk:
open (FILE,"> @FILE@");open (FILE, "> @ FILE @");
print FILE "@NAME@"; print FILE "@COUNT@"; print FILE "@PRICE@";print FILE "@ NAME @"; print FILE "@ COUNT @"; print FILE "@ PRICE @";
EmailConfirmation:EmailConfirmation:
open (MAIL, " | sendmail @DESTINATION@");open (MAIL, "| sendmail @ DESTINATION @");
print MAIL "@NAME@"; print MAIL "@COUNT@"; print MAIL "@PRlCE@";print MAIL "@ NAME @"; print MAIL "@ COUNT @"; print MAIL "@ PRlCE @";
La aplicación, aún siendo así de sencilla, presenta varias vulnerabilidades de seguridad que podrían ser utilizadas por un usuario malicioso. Por ejemplo, por medio de esta aplicación, un usuario malicioso puede obtener detalles del cliente, grabar ficheros arbitrarios en el servidor de Web, ejecutar comandos en el servidor de Web y efectuar facturas de pedido falsas. Los siguientes ejemplos del sistema 20 explican cómo se afrontan tales vulnerabilidades de seguridad.The application, still being that simple, presents several security vulnerabilities that could be used by a malicious user. For example, through this application, a malicious user can obtain customer details, record arbitrary files on the Web server, execute commands on the Web server and make fake order invoices. The following examples of system 20 explain how such security vulnerabilities are addressed.
A. Cómo obtener detalles del cliente La aplicación graba en un fichero de registro cada transacción, incluyendo los detalles personales del cliente, etc. El nombre de este fichero de registro está incluido en el formulario enviado al usuario y, de esta manera, es visible a un usuario malicioso simplemente leyendo el código fuente de la página HTML. El acceso a los detalles del cliente es tan sencillo como prefijar el nombre del fichero de registro, que es "bill.txt", al nombre del servidor, con lo siguiente, por ejemplo:A. How to obtain customer details The application records each transaction in a log file, including the client's personal details, etc. The name of this log file is included in the form sent to the user and, thus, is visible to a malicious user simply by reading the source code of the HTML page. Access to customer details is as simple as prefixing the name of the log file, which is "bill.txt", to the name of the server, with following, for example:
http://www.example.com/application/bill.txthttp://www.example.com/application/bill.txt
Incluso si el nombre del fichero no se mostrara en la página Web, un usuario malicioso podría aprovecharse de problemas en el servidor a fin de hallar el nombre del fichero, o simplemente adivinarlo. La Figura 9 ilustra cómo un ataque a un servidor no protegido por el sistema 20 puede usarse para obtener detalles del cliente. En cambio, el sistema 20 detiene esta clase de ataques requiriendo una firma a fin de acceder a cualquier página Web, excepto las páginas iniciales. Por consiguiente, a un usuario malicioso no se le permite acceder una página Web arbitraria en el servidor, tales como los ficheros de pedido, los ficheros de datos ocultos, las muestras vulnerables, etc., sin la debida firma. Un ejemplo de una interfaz devuelta a un usuario como resultado del ataque se muestra en la Figura 10. Según se explica en esta interfaz, no puede accederse al recurso solicitado por el usuario sin la debida firma.Even if the name of the file is not displayed on the Web page, a malicious user could take advantage of problems on the server in order to find the name of the file, or simply guess it. Figure 9 illustrates how an attack on a server not protected by system 20 can be used to obtain client details. Instead, the system 20 stops this kind of attacks requiring a signature in order to access any Web page, except the initial pages. Therefore, a malicious user is not allowed to access an arbitrary Web page on the server, such as order files, hidden data files, vulnerable samples, etc., without proper signature. An example of an interface returned to a user as a result of the attack is shown in Figure 10. As explained in this interface, the resource requested by the user cannot be accessed without proper signature.
B. Grabación arbitraria de ficheros El sistema 20 también puede impedir la grabación arbitraria de ficheros, lo que ocurre cuando una aplicación graba en un fichero de registro cada transacción. El nombre del fichero en el cual se graban datos está incrustado en el formulario enviado al cliente y se pasa como un parámetro de la petición del usuario a la aplicación. Un usuario malicioso podría modificar este parámetro a fin de apuntar a un fichero distinto, grabando efectivamente los detalles del pedido en cualquier fichero en el sistema de ficheros. Una ilustración particularmente reveladora de la severidad de esta clase de ataque es que la aplicación podría, potencialmente, ser dirigida para sobreescribir la página raíz del servidor. El usuario podría solicitar que los datos se graben en el ficheroB. Arbitrary recording of files System 20 can also prevent arbitrary recording of files, which occurs when an application records each transaction in a log file. The name of the file in which data is recorded is embedded in the form sent to the client and passed as a parameter of the user's request to the application. A malicious user could modify this parameter in order to point to a different file, effectively recording the order details in any file in the file system. A particularly telling illustration of the severity of this kind of attack is that the application could potentially be directed to overwrite the server's root page. The user could request that the data be recorded in the file
"/home/httpd/htdocs/index.html", solicitando un URL como:"/home/httpd/htdocs/index.html", requesting a URL like:
http://www.example.com/application/cart.cgi?option=2&file=/home/httpd/htdo cs/index.html Si se está usando el sistema 20, el formulario incluye una firma que describe los datos FORM y el resumen de los valores. Por ejemplo, el formulario puede incluir la variable HIVEDATA que tenga un valor de ABCD, según se muestra en:http://www.example.com/application/cart.cgi?option=2&file=/home/httpd/htdo cs / index.html If system 20 is being used, the form includes a signature that describes the FORM data and the summary of the values. For example, the form may include the HIVEDATA variable that has an ABCD value, as shown in:
http://www.example.com/application/cart.cgi?option=2&file=bill.txt&HIVEDAT A=abcdhttp://www.example.com/application/cart.cgi?option=2&file=bill.txt&HIVEDAT A = abcd
Si un usuario intenta modificar los parámetros de la petición, reemplazando, por ejemplo, "bill.txt" con "/home/httpd/htdocs/index.html", la petición sería la siguiente:If a user tries to modify the request parameters, replacing, for example, "bill.txt" with "/home/httpd/htdocs/index.html", the request would be as follows:
http://www.example.com/application/ca rt.cqi?option=2&file=/home/httpd/htdo cs/index.html&HIVEDATA=ABCDhttp://www.example.com/application/ca rt.cqi? option = 2 & file = / home / httpd / htdo cs / index.html & HIVEDATA = ABCD
Cuando el sistema 20 descifra la firma, el sistema 20 detectará que los parámetros asociados con la petición no coinciden con los de la firma. Como resultado, el sistema 20 invalidará la petición debido a su manipulación e impedirá que la petición llegue a la aplicación. Un ejemplo de una interfaz suministrada al usuario en caso de tal manipulación se muestra en la FiguraWhen system 20 decrypts the signature, system 20 will detect that the parameters associated with the request do not match those of the signature. As a result, system 20 will invalidate the request due to its manipulation and prevent the request from reaching the application. An example of an interface supplied to the user in case of such manipulation is shown in Figure
11.eleven.
El sistema 20 detiene estos y otros tipos de ataques requiriendo una firma a fin de acceder a cualquier página Web, excepto las páginas de inicio. La firma incluye información acerca del número y valores aceptables de los parámetros de la petición del usuario y, al recibir una petición, el sistema 20 verifica la firma con respecto a los valores efectivos. Si el sistema 20 halla que ha ocurrido un intento de manipular los parámetros, el sistema 20 envía un mensaje de error al usuario, registra el intento de acceso ilegal y, optativamente, retransmite el error al administrador.System 20 stops these and other types of attacks requiring a signature in order to access any Web page, except the home pages. The signature includes information about the number and acceptable values of the parameters of the user's request and, upon receiving a request, the system 20 verifies the signature with respect to the actual values. If the system 20 finds that an attempt has been made to manipulate the parameters, the system 20 sends an error message to the user, records the attempt of illegal access and, optionally, relays the error to the administrator.
C. Ejecución de comando remotoC. Remote command execution
Algunas aplicaciones pueden ejecutar comandos remotos. Por ejemplo, una aplicación puede enviar un mensaje electrónico al comerciante una vez que la revisión ha terminado. La aplicación llama, sin seguridad, al programa "sendmail" a fin de enviar un mensaje electrónico a la dirección de correo electrónico "DESTINATION" suministrada por el usuario.Some applications may execute remote commands. For example, an application can send an electronic message to the merchant once the review is complete. The application calls, without security, the "sendmail" program to send an electronic message to the email address electronic "DESTINATION" supplied by the user.
open (MAIL, "| sendmail @DESTINATION@");open (MAIL, "| sendmail @ DESTINATION @");
Un usuario malicioso podría fijar el parámetro del usuario DESTINATION de manera tal que permita que se ejecuten comandos arbitrarios en el servidor. Por ejemplo, la Tabla 1 más abajo provee dos ejemplos de comandos que pueden ejecutarse en el servidor.A malicious user could set the DESTINATION user parameter in a way that allows arbitrary commands to be executed on the server. For example, Table 1 below provides two examples of commands that can be executed on the server.
Figure imgf000030_0001
Figure imgf000030_0001
De esta manera, con un URL sencillo como:In this way, with a simple URL like:
http://www.example.co m/application/cart.cgi?option=2&destination=&rm%20- rf%20/&,http://www.example.co m / application / cart.cgi? option = 2 & destination = & rm% 20- rf% 20 / &,
un usuario malicioso podría borrar todos los ficheros en el servidor, instalar un caballo de Troya, descargar bases de datos de la empresa, irrumpir en la red interna, etc.a malicious user could delete all files on the server, install a Trojan horse, download company databases, break into the internal network, etc.
Si se ha usado el sistema 20, el formulario incluirá una firma que describirá los datos FORM y el resumen de valores. Por ejemplo, el formulario puede aparecer de la siguiente manera:If System 20 has been used, the form will include a signature that will describe the FORM data and the summary of values. For example, the form may appear as follows:
http://www.example.com/applicat¡on/cart.cgi?option=2&destination=storefα)e xample.com&HIVEDATA=XYZOhttp://www.example.com/applicat¡on/cart.cgi?option=2&destination=storefα ) and xample.com & HIVEDATA = XYZO
Si un usuario intenta modificar los parámetros de la petición, como en:If a user tries to modify the request parameters, as in:
http://www.example.co m/application/cart.cgi?option=2&destination=;rm%20- rf&H!VEDATA=XYZO El sistema 20 determina que la firma no se corresponde con los parámetros en la petición. El sistema 20 deducirá que ha ocurrido una manipulación de parámetros e impedirá que la petición llegue a la aplicación.http://www.example.co m / application / cart.cgi? option = 2 & destination =; rm% 20- rf & H! VEDATA = XYZO System 20 determines that the signature does not correspond to the parameters in the request. System 20 will deduce that a parameter manipulation has occurred and will prevent the request from reaching the application.
D. Detalles de facturación de pedido falsoD. Fake order billing details
El sistema 20 también puede usarse para impedir la facturación de pedidos falsos. Una aplicación ttp asociada con la facturación utiliza la página HTML para almacenar el número, nombre y precio de artículos en el carro de la compra justo antes de la revisión. Esta información se envía de vuelta a la aplicación, una vez que el usuario se desconecta, como parámetros de la petición de usuario. La aplicación recibe los parámetros y crea un recibo basándose en los valores suministrados por el usuario. Un ejemplo de una petición normal es la siguiente:System 20 can also be used to prevent billing of fake orders. A ttp application associated with billing uses the HTML page to store the number, name and price of items in the shopping cart just before the review. This information is sent back to the application, once the user disconnects, as parameters of the user request. The application receives the parameters and creates a receipt based on the values supplied by the user. An example of a normal request is as follows:
http://www.example.com/application/cart.cgi?option=2&item=Apples&count= 10&price=100http://www.example.com/application/cart.cgi?option=2&item=Apples&count= 10 & price = 100
Obviamente, un usuario malicioso podría modificar estos parámetros, como el precio, a fin de modificar la cuenta, para que se le cobre menos de lo que valen los artículos, intentando lo siguiente:Obviously, a malicious user could modify these parameters, such as the price, in order to modify the account, so that it is charged less than the items are worth, trying the following:
http://www.example.com/appiication/cart.cgi?option=2&item=Apples&count= 10&price=1http://www.example.com/appiication/cart.cgi?option=2&item=Apples&count= 10 & price = 1
lo que resultaría en un cargo por un total de "1" en lugar de "100".which would result in a charge for a total of "1" instead of "100".
Utilizando el sistema 20, el formulario incluye una firma que describe los datos FORM y el resumen de valores. Usando el mismo ejemplo, la petición con el sistema 20 puede aparecer de la siguiente manera:Using system 20, the form includes a signature that describes the FORM data and the summary of values. Using the same example, the request with system 20 can appear as follows:
http://www.example.com/application/cart.cqi?option=2&item=Apples&count= 10&price=100&HIVEPATA=DEFGhttp://www.example.com/application/cart.cqi?option=2&item=Apples&count= 10 & price = 100 & HIVEPATA = DEFG
Esta petición incluye la firma HIVEDATA de DEFG. Si un usuario intenta modificar los parámetros de la petición, cambiando, por ejemplo, el precio con la siguiente petición:This request includes the HIVEDATA signature of DEFG. If a user tries modify the request parameters, changing, for example, the price with the following request:
http://www.example.com/application/cart.cqi?option=2&item=Apples&count= 10&price=1 &HIVEDATA=DEFGhttp://www.example.com/application/cart.cqi?option=2&item=Apples&count= 10 & price = 1 & HIVEDATA = DEFG
entonces el sistema 20 descifra la firma y descubre que los parámetros no coinciden con la firma. El sistema 20 deduce que ha ocurrido una manipulación de parámetros e impide que la petición llegue a la aplicación.then the system 20 decrypts the signature and discovers that the parameters do not match the signature. System 20 deduces that a parameter manipulation has occurred and prevents the request from reaching the application.
E. Ejemplo de Procesamiento InternoE. Internal Processing Example
Una descripción del procesamiento interno asociado con la operación del sistema 20 se expondrá con referencia a la obtención de detalles del cliente. El sistema 20 necesita una firma del cliente a fin de acceder a cualquier página que no sea de inicio. Esto permite que el sistema 20 controle el flujo del sitio, ya que sólo se puede acceder a los URL mencionados desde páginas en el servidor 26, impidiendo el acceso a páginas no destinadas al consumo público, muestras y aplicaciones que no están concebidas como de acceso directo. En caso de un ataque para acceder a una página arbitraria no directamente mencionada en el sitio Web, el sistema 20 analiza sintácticamente la petición y halla que la petición no es para una "Página de Inicio", lo que significa que se necesita una firma. El sistema 20 busca una firma en la petición y, como no hay tal firma, exhibe un mensaje de error. El sistema 20 devolverá el control, impidiendo todo procesamiento posterior de la petición.A description of the internal processing associated with the operation of the system 20 will be set forth with reference to obtaining customer details. System 20 needs a client signature in order to access any non-home page. This allows the system 20 to control the flow of the site, since only the URLs mentioned can be accessed from pages on the server 26, preventing access to pages not intended for public consumption, samples and applications that are not intended as access direct. In case of an attack to access an arbitrary page not directly mentioned on the website, the system 20 parses the request and finds that the request is not for a "Start Page", which means that a signature is needed. System 20 searches for a signature in the request and, since there is no such signature, it displays an error message. System 20 will return control, preventing any further processing of the request.
Como se ha mencionado más arriba, el sistema 20 puede configurarse para "enchufar y usar". En esta configuración, el sistema 20 permite que un servidor comience a procesar con seguridad las peticiones, sin tener que configurar información de ninguna página de inicio, u otros valores cualesquiera. El sistema 20 acepta peticiones para páginas sin firma, incluso si no están enumeradas bajo la etiqueta de configuración de "Páginas de Inicio", mientras la petición no pase parámetros a la aplicación. El sistema 20, por ejemplo, permitirá el acceso a los siguientes URL sin requerir una firma: http://www.example.com/ http://www.example.com/departments http://www.example.com/departments/page1.html http://www.example.com/application/ http://www.example.com/appIication/bill.txt http://www.example.com/application/cart.cgiAs mentioned above, system 20 can be configured to "plug and use". In this configuration, the system 20 allows a server to begin to process requests safely, without having to configure any homepage information, or any other values. System 20 accepts requests for unsigned pages, even if they are not listed under the "Home Pages" configuration tag, as long as the request does not pass parameters to the application. System 20, for example, will allow access to the following URLs without requiring a signature: http://www.example.com/ http://www.example.com/departments http://www.example.com/departments/page1.html http://www.example.com/application/ http: //www.example.com/appIication/bill.txt http://www.example.com/application/cart.cgi
pero a los siguientes no se les admitirá sin la debida firma:but the following will not be admitted without proper signature:
http://www.example.com/application/cart.cgi?a=b http://www.example.com/application/cart.cgi7ahttp://www.example.com/application/cart.cgi?a=b http://www.example.com/application/cart.cgi7a
De esta manera, los ficheros "ocultos" o de datos accesibles desde el sitio Web estarán disponibles para un cliente remoto, incluso si no son mencionados desde dentro del sitio Web. La configuración de "enchufar y usar", por lo tanto, no debería usarse cuando se desea la máxima seguridad.In this way, "hidden" or data files accessible from the Web site will be available to a remote client, even if they are not mentioned from within the Web site. The "plug and use" setting, therefore, should not be used when maximum security is desired.
Para la grabación arbitraria de ficheros, el sistema 20 verifica que los valores efectivos de los parámetros de la petición del usuario coinciden con los valores esperados incrustados en la firma. Si hay una discrepancia, el sistema 20 exhibe un mensaje de error y devuelve el control. La grabación arbitraria de ficheros involucra a un usuario malicioso que modifica uno de los parámetros de un formulario enviado por el servidor, "file", que es el nombre de un fichero que recibe la información del usuario. Cuando el sistema 20 detecta que se está enviando un formulario al usuario remoto, el sistema 20 intercepta la respuesta del servidor 26 y añade a ella su propia firma, permitiendo así detectar y evitar ataques. El formulario, una vez analizado sintácticamente por el sistema 20, tiene el siguiente aspecto:For the arbitrary recording of files, the system 20 verifies that the effective values of the parameters of the user's request coincide with the expected values embedded in the signature. If there is a discrepancy, system 20 displays an error message and returns control. The arbitrary recording of files involves a malicious user who modifies one of the parameters of a form sent by the server, "file", which is the name of a file that receives user information. When the system 20 detects that a form is being sent to the remote user, the system 20 intercepts the response of the server 26 and adds its own signature to it, thus allowing it to detect and prevent attacks. The form, once analyzed syntactically by system 20, looks like this:
Ud. está encargando @COUNT@ de @NAME@ al precio de @PRICE@.You are ordering @ COUNT @ from @ NAME @ at the price of @ PRICE @.
<FORM ACTION="/application/cart.cgi"> <INPUT TYPE="hidden" NAME="name" VALUE="Apples"> <INPUT TYPE="hidden" NAME="count" VALUE="10"><FORM ACTION = "/ application / cart.cgi"><INPUT TYPE = "hidden" NAME = "name" VALUE = "Apples"> <INPUT TYPE = "hidden" NAME = "count" VALUE = "10">
<INPUT TYPE="hidden" NAME="price" VALUE="100"><INPUT TYPE = "hidden" NAME = "price" VALUE = "100">
<INPUT TYPE="hidden" NAME="action" VALUE="2"><INPUT TYPE = "hidden" NAME = "action" VALUE = "2">
<INPUT TYPE="hidden" NAME="file" VALUE="bill.txt"><INPUT TYPE = "hidden" NAME = "file" VALUE = "bill.txt">
<INPUT TYPE="hidden" NAME="destination" value=store@example.com><INPUT TYPE = "hidden" NAME = "destination" value=store@example.com>
<INPUT TYPE="hidden" NAME="HIVEDATA"<INPUT TYPE = "hidden" NAME = "HIVEDATA"
VALUE="dASas2342SDFSdfsf324234FSsf>VALUE = "dASas2342SDFSdfsf324234FSsf>
<INPUT TYPE="submit" NAME="Checkout"><INPUT TYPE = "submit" NAME = "Checkout">
</FORM></FORM>
Este formulario difiere del formulario original, el formulario generado por el servidor Web, en que se ha añadido un campo oculto HIVEDATA. Este campo es la "firma" de todo el formulario, cifrado con una clave conocida sólo por el servidor, que hace que la firma sea a prueba de manipulaciones. Si un usuario modifica la firma una vez que está cifrada, el sistema 20 detectará esta modificación y bloqueará toda petición vinculada a la firma manipulada.This form differs from the original form, the form generated by the Web server, in that a hidden HIVEDATA field has been added. This field is the "signature" of the entire form, encrypted with a key known only to the server, which makes the signature tamper-proof. If a user modifies the signature once it is encrypted, the system 20 will detect this modification and block any request linked to the manipulated signature.
La firma es un resumen del contenido del formulario. El resumen, por lo tanto, puede incluir el URL de donde llegó la petición, o la página donde está el formulario. En este ejemplo, el URL es http://www.example.com/order.html. El resumen también puede incluir el URL al cual está destinada la petición, o la página a donde se envía el formulario. El campo "action" en una etiqueta de formulario en este ejemplo es http://www.example.com/application/cart.cgi. El resumen también puede incluir una descripción de cada argumento, incluyendo el nombre, el valor, el tamaño, y si el campo es optativo o forzado. El análisis y el resumen del formulario para este ejemplo se muestra más abajo en la Tabla 2.The signature is a summary of the content of the form. The summary, therefore, can include the URL where the request came from, or the page where the form is. In this example, the URL is http://www.example.com/order.html. The summary can also include the URL to which the request is intended, or the page where the form is sent. The "action" field in a form tag in this example is http://www.example.com/application/cart.cgi. The summary can also include a description of each argument, including the name, value, size, and whether the field is optional or forced. The analysis and summary of the form for this example is shown below in Table 2.
Figure imgf000034_0001
Figure imgf000035_0001
Figure imgf000034_0001
Figure imgf000035_0001
Este resumen es serializado y cifrado, preferiblemente utilizando un algoritmo simétrico como el de Rijndael. El cifrado debería permitir al servidor recuperar el contenido de la firma una vez que el cliente devuelve el contenido del formulario. El resultado del cifrado se codifica y se incrusta dentro del formulario, en la forma de una etiqueta oculta "HIVEDATA". Un ejemplo de la etiqueta HIVEDATA es el siguiente:This summary is serialized and encrypted, preferably using a symmetric algorithm like Rijndael's. Encryption should allow the server to retrieve the content of the signature once the client returns the content of the form. The result of the encryption is encoded and embedded within the form, in the form of a hidden "HIVEDATA" tag. An example of the HIVEDATA tag is as follows:
<INPUT TYPE="hidden" NAME="HIVEDATA"<INPUT TYPE = "hidden" NAME = "HIVEDATA"
VALUE="dASas2342SDFSdfsf324234FSsf">VALUE = "dASas2342SDFSdfsf324234FSsf">
Una vez que el sistema 20 procesa el formulario, el sistema 20 envía el formulario al cliente, el cual no halla diferencia en el aspecto de la página Web, ya que "HIVEDATA" es un campo oculto.Once the system 20 processes the form, the system 20 sends the form to the client, which finds no difference in the appearance of the Web page, since "HIVEDATA" is a hidden field.
Cuando el cliente rellena el formulario y lo devuelve, el sistema 20 verifica la firma enviada por el cliente con respecto a los parámetros enviados por el cliente. Si el usuario hubiese enviado la petición:When the client completes the form and returns it, the system 20 verifies the signature sent by the client with respect to the parameters sent by the client. If the user had sent the request:
http://www.example.com/application/cart.cgi?name=Apples&count=10&pricehttp://www.example.com/application/cart.cgi?name=Apples&count=10&price
=100&action=2&destination=store@example.com&file=/home/httpd/htdocs/in dex.html&HIVEDATA=dASas2342SDFSdfsf324234FSsf=100&action=2&destination=store@example.com&file=/home/httpd/htdocs/in dex.html & HIVEDATA = dASas2342SDFSdfsf324234FSsf
el sistema 20 detecta que la petición no es para una "Página de Inicio", por lo cual busca una firma en la petición. Una vez que el sistema 20 tiene la firma cifrada, el sistema 20 la descifra usando la clave simétrica que utilizó para cifrar el mensaje en la petición previa.System 20 detects that the request is not for a "Start Page", so it looks for a signature in the request. Once the system 20 has the encrypted signature, the system 20 decrypts it using the symmetric key that it used to encrypt the message in the previous request.
Si la firma no ha sido manipulada, el sistema 20 procede a comparar "lado a lado" el contenido de la firma con el contenido efectivo enviado en la petición. El sistema 20 primero se asegura de que la firma coincide con los URL de fuente y de destino, para que una firma creada para un URL no pueda ser usada para acceder a un URL distinto. Una vez que se ha verificado que los URL son correctos, el sistema 20 compara el contenido de la firma con los parámetros efectivos. Si el sistema 20 halla cualquier discrepancia, el sistema 20 emite una señal de error y devuelve el control, impidiendo el ataque a la aplicación.If the signature has not been manipulated, the system 20 proceeds to compare the content of the signature "side by side" with the actual content sent in the petition. System 20 first ensures that the signature matches the source and destination URLs, so that a signature created for a URL does not can be used to access a different URL. Once the URLs have been verified to be correct, system 20 compares the signature content with the effective parameters. If the system 20 finds any discrepancy, the system 20 emits an error signal and returns control, preventing the attack on the application.
En este ejemplo, el sistema 20 halla una discrepancia al verificar el parámetro "file", ya que la firma le dice al sistema 20 que debe esperar:In this example, system 20 finds a discrepancy in verifying the "file" parameter, since the signature tells system 20 that it should wait:
File "bill.txt" 8File "bill.txt" 8
pero, en cambio, el sistema 20 halla:but, instead, system 20 finds:
file "/home/httpd/htdocs/index.html"file "/home/httpd/htdocs/index.html"
En esta petición, dado que el contenido de la variable difiere del contenido esperado y localizado en la firma, el sistema 20 deniega la petición. Las verificaciones realizadas por el sistema 20 incluyen, pero no se limitan a, el nombre de la variable, el contenido de la variable, la longitud de la variable y la obligatoriedad de la variable.In this request, since the content of the variable differs from the expected content and located in the signature, the system 20 denies the request. The checks performed by system 20 include, but are not limited to, the name of the variable, the content of the variable, the length of the variable and the mandatory nature of the variable.
X. Interfaz del UsuarioX. User Interface
Como se ha mencionado más arriba, el sistema 20 puede configurarse según los deseos de un cliente. Esta configuración, preferiblemente, puede tener lugar a través de una interfaz basada en el Web. Por razones de seguridad, la interfaz autentica al usuario por su nombre de usuario y contraseña, antes de permitir a un administrador crear, modificar o borrar configuraciones, o asignar nombres de usuario y contraseñas a configuraciones delegadas, en caso de que el dueño o administrador de un dominio necesite/quiera gestionar los valores de seguridad de su dominio. Esta interfaz permite a un administrador asignar derechos de acceso en una configuración donde los nombres de dominio están controlados por múltiples entidades, como es el caso de una compañía anfitriona, o crear configuraciones por omisión que se fijarán automáticamente en las configuraciones delegadas. El sistema 20 almacena la configuración en un fichero de texto llano, legible por humanos, que permite a los administradores automatizar tareas tales como añadir dominios o usuarios al por mayor al sistema 20.As mentioned above, the system 20 can be configured according to the wishes of a client. This configuration, preferably, can take place through a web-based interface. For security reasons, the interface authenticates the user by its username and password, before allowing an administrator to create, modify or delete configurations, or assign user names and passwords to delegated configurations, in case the owner or administrator of a domain you need / want to manage the security settings of your domain. This interface allows an administrator to assign access rights in a configuration where domain names are controlled by multiple entities, such as a host company, or create default configurations that will be automatically set to delegated configurations. System 20 stores the configuration in a plain, human-readable text file, which allows Administrators automate tasks such as adding domains or wholesale users to the system 20.
Algunas interfaces de ejemplo se describirán más abajo a fin de explicar cómo puede configurarse el sistema 20. En estas interfaces, el sistema 20 se llama un cortafuegos HIVE™. El sistema 20 provee muchos menús, que permiten a los usuarios configurar fácilmente el sistema 20. Las interfaces, preferiblemente, son muy intuitivas para la mayoría de la gente, y no deberían causar problemas para editar configuraciones, visualizar información, etc.Some example interfaces will be described below in order to explain how system 20 can be configured. In these interfaces, system 20 is called an HIVE ™ firewall. The system 20 provides many menus, which allow users to easily configure the system 20. The interfaces, preferably, are very intuitive for most people, and should not cause problems to edit configurations, display information, etc.
A. Conexión, Selección y Borrado de una Configuración Una barra del menú principal, que está presente en todo momento durante la configuración, se muestra en la Figura 12. Esta barra de menú incluye enlaces a "Configs" (Configuraciones), "Logs" (Registros), "Restart" (Reinicio), "Logout" (Desconexión) y "About" (Acerca de). A través del enlaceA. Connecting, Selecting and Deleting a Configuration A main menu bar, which is present at all times during configuration, is shown in Figure 12. This menu bar includes links to "Configs" (Settings), "Logs" (Registers), "Restart", "Logout" and "About". Through the link
"Configs", un usuario puede ir a una Página de Configuraciones, donde el usuario puede editar una configuración. Un enlace a "Logs" provee acceso a una página donde se pueden ver incidencias, errores, etc. Un enlace "Restart" permite al usuario reiniciar el servidor para aplicar los últimos cambios guardados, y un enlace "Logout" devuelve al usuario a la página de conexión. El enlace "About" muestra una página con información de ayuda sobre los desarrolladores, el gestor del proyecto, etc."Configs", a user can go to a Settings Page, where the user can edit a configuration. A link to "Logs" provides access to a page where you can see incidents, errors, etc. A "Restart" link allows the user to restart the server to apply the last saved changes, and a "Logout" link returns the user to the login page. The "About" link shows a page with help information about the developers, the project manager, etc.
La Figura 12 es un ejemplo de una página de conexión y es el primer lugar que se ve cuando Ud. desea configurar su cortafuegos HIVE. Para acceder a esta página, el usuario sólo necesita entrar por el puerto 81 de la máquina donde está instalado el cortafuegos HIVE. Para conectarse, el usuario ingresa su Identificador de Conexión y Contraseña y, si el usuario es un administrador, tiene acceso a todas las configuraciones. Si el identificador de conexión y la contraseña son de un usuario administrador delegado, entonces el usuario sólo puede acceder a su configuración. El Identificador de Conexión y la Contraseña se necesitan sólo al principio de una sesión, y se requieren toda vez que se comienza una nueva sesión.Figure 12 is an example of a connection page and is the first place you see when you want to configure your HIVE firewall. To access this page, the user only needs to enter through port 81 of the machine where the HIVE firewall is installed. To log in, the user enters his Login ID and Password and, if the user is an administrator, has access to all settings. If the login ID and password are from a delegated administrator user, then the user can only access their settings. The Connection Identifier and Password are needed only at the beginning of a session, and are required every time a new session is started.
Una vez que el identificador de conexión y la contraseña se han ingresado correctamente, el sistema 20 suministra al usuario la interfaz mostrada en la Figura 13, y el usuario está preparado para editar la configuración deseada. El usuario puede tener más de una configuración disponible para elegir cuál editar. Según se muestra en la Figura 14, al administrador se le ofrecen todas las configuraciones. Se escoge la configuración deseada y luego el usuario puede proceder a editarla pulsando el botón Edit. El sistema 20 permite al administrador editar, borrar y crear configuraciones, escogiendo los botones Edit (Editar), Delete (Borrar), o New (Nueva). De esta manera, para editar una configuración, el usuario selecciona una configuración y pincha en el botón Edit. Si el usuario quiere borrar una configuración, selecciona esa configuración y pulsa el botón Delete. Para crear una nueva configuración, el usuario pulsa el botón New.Once the connection identifier and password have been entered correctly, the system 20 provides the user with the interface shown in Figure 13, and the user is ready to edit the desired configuration. The user can have more than one configuration available to choose which one to edit. As shown in Figure 14, the administrator is offered all configurations. The desired configuration is chosen and then the user can proceed to edit it by pressing the Edit button. System 20 allows the administrator to edit, delete and create configurations, by choosing the Edit, Delete, or New buttons. In this way, to edit a configuration, the user selects a configuration and clicks on the Edit button. If the user wants to delete a configuration, select that configuration and press the Delete button. To create a new configuration, the user presses the New button.
B. Configuración GeneralB. General Settings
Seleccionando el enlace "Configs" desde la barra de menú, el usuario puede cambiar las opciones generales de la configuración. Para visualizar la configuración general efectiva, el usuario pincha la etiqueta General y recibe una interfaz como la mostrada en la Figura 15. Si la configuración es nueva, el nombre por omisión es NoNameXX, donde 'XX' es el número de la configuración.By selecting the "Configs" link from the menu bar, the user can change the general configuration options. To visualize the effective general configuration, the user clicks the General label and receives an interface like the one shown in Figure 15. If the configuration is new, the default name is NoNameXX, where 'XX' is the configuration number.
Para editar la configuración efectiva, el usuario pincha el botón Edit y recibe la interfaz mostrada en la Figura 16. A través de esta interfaz, el usuario puede seleccionar Config Ñame para cambiar el nombre de la configuración, Config Settings para seleccionar la configuración de "enchufar y usar" denominada EZ Hive. Aún cuando EZ HIVE es de "enchufar y usar", esta configuración aún permite en buena medida la personalización y la determinación de parámetros de seguridad. Está definida una configuración pura de "enchufar y usar", que permite que un usuario sin conocimientos de seguridad suministre seguridad a las aplicaciones albergadas en su sede, sin necesidad de configurar ningún parámetro. El valor por omisión es NO.To edit the effective configuration, the user clicks the Edit button and receives the interface shown in Figure 16. Through this interface, the user can select Config Ñame to change the configuration name, Config Settings to select the configuration of " plug and use "called EZ Hive. Even when EZ HIVE is "plug and play", this configuration still allows customization and the determination of safety parameters. A pure "plug and use" configuration is defined, which allows a user without security knowledge to provide security to the applications hosted at their headquarters, without the need to configure any parameters. The default value is NO.
Los parámetros de EZ Hive son tales que el sistema 20 sólo firmará objetos que accederán a una aplicación, incluyendo los formularios y enlaces donde se pasan parámetros. El sistema 20 no protegerá páginas, ni verificará firmas, allí donde no intervengan argumentos. Esto permite a un servidor proteger sus aplicaciones sin tener que configurar páginas de inicio. El sistema 20 no protegerá señuelos; a fin de proteger señuelos, debe definirse la sección de señuelos de la configuración. Los parámetros de seguridad de procedimientos del lado del cliente se fijan como "LOW", permitiendo así que funcionen la mayoría de las aplicaciones Javascript, protegiendo a la vez las aplicaciones del lado del servidor. EZ Hive no debería usarse si se requiere la máxima seguridad. EZ Hive define un conjunto de parámetros de seguridad, pero no es un sustituto de un servidor debidamente personalizado. Además, EZ Hive no debería usarse si el contenido de las páginas está fuera del ámbito de la organización, como, por ejemplo, con un ISP que se ofrece como anfitrión de Web a sus usuarios. En esta configuración, se recomiendan las Páginas de Excepción, ya que un usuario malicioso podría usar el acceso al Web para crear páginas que, una vez firmadas, le permitirán subvertir la seguridad de la aplicación. Con los botones Save (Guardar) , Reset (Reiniciar) y Cancel (Cancelar), el usuario puede guardar la nueva configuración general, restaurar los valores iniciales o cancelar la operación.The EZ Hive parameters are such that the system 20 will only sign objects that will access an application, including the forms and links where parameters are passed. System 20 will not protect pages, nor verify signatures, where arguments do not intervene. This allows a server to protect its applications without having to configure startup pages. System 20 will not protect decoys; In order to protect decoys, the decoy section of the configuration must be defined. The parameters of Client-side procedures security are set to "LOW", thus allowing most Javascript applications to work, while protecting server-side applications. EZ Hive should not be used if maximum security is required. EZ Hive defines a set of security parameters, but it is not a substitute for a properly customized server. In addition, EZ Hive should not be used if the content of the pages is outside the scope of the organization, such as with an ISP that is offered as a Web host to its users. In this configuration, the Exception Pages are recommended, since a malicious user could use the Web access to create pages that, once signed, will allow you to subvert the security of the application. With the Save, Reset and Cancel buttons, the user can save the new general settings, restore the initial values or cancel the operation.
C. Configuración de Error PersonalizadoC. Custom Error Settings
Seleccionando la etiqueta Custom Error (Error Personalizado), al usuario se le presenta la interfaz mostrada en la Figura 17. Esta interfaz provee un menú de opciones para redirigir una petición a otra página cuando ocurre un error. Preferiblemente, la página redirigida informa al usuario de qué clase de error ha ocurrido. Por ejemplo, un Error de URL debería informar al usuario que se ha ingresado un URL incorrecto, un Error de Firma No Hallada informa al usuario que se ha hecho un intento de acceder a una página que requiere una firma, pero no existía ninguna firma, un Error de Discrepancia de Firma informa al usuario que la firma es válida, pero que no se corresponde con el URL, y un Error de Manipulación informa al usuario que la firma no es válida porque ha sido modificada, o ha caducado.By selecting the Custom Error tag, the user is presented with the interface shown in Figure 17. This interface provides a menu of options to redirect a request to another page when an error occurs. Preferably, the redirected page informs the user of what kind of error has occurred. For example, a URL Error should inform the user that an incorrect URL has been entered, a Signature Not Found Error informs the user that an attempt has been made to access a page that requires a signature, but no signature existed, a Signature Discrepancy Error informs the user that the signature is valid, but does not correspond to the URL, and a Manipulation Error informs the user that the signature is invalid because it has been modified, or has expired.
D. Configuración de Clave Seleccionando la etiqueta "Key" (Clave), el usuario recibe la ¡nterfaz mostrada en la Figura 18. Esta interfaz está dedicada a configurar los parámetros de la clave, tales como la longitud y el tiempo de vida, y a exhibir información acerca de la clave actual y la vieja. La Clave Actual muestra información acerca de la clave actual, siendo esta clave utilizada por el sistema 20 para firmar los parámetros que deben ser firmados, y para descifrar firmas. La Clave Vieja muestra la misma información que Clave Actual, pero acerca de la clave que fue utilizada antes de la clave actual. La vieja clave fue usada para descifrar firmas que fueron firmadas con ella, pero el periodo de vida de esta clave ha caducado y se ha generado una nueva clave.D. Key Configuration By selecting the "Key" tag, the user receives the interface shown in Figure 18. This interface is dedicated to configuring the key parameters, such as length and lifetime, as display information about the current and old password. The Current Key shows information about the current key, this key being used by the system 20 to sign the parameters to be signed, and to decipher signatures The Old Password shows the same information as the Current Password, but about the password that was used before the current password. The old code was used to decipher signatures that were signed with it, but the life of this code has expired and a new code has been generated.
El usuario puede generar una nueva clave y puede seleccionar su longitud y su periodo de vida. Para generar una nueva clave, el usuario selecciona la tecla Key (Clave), y una nueva clave se genera inmediatamente, y los datos de la clave actual se copian sobre los datos de la vieja clave. Si una nueva clave se genera dos o más veces en un breve periodo de tiempo, la vieja clave, posiblemente, podría ser inútil. Es posible que se hayan cifrado datos con esta clave, pero aquellos datos firmados con la "vieja-vieja clave" no puedan descifrarse. Al editar una nueva configuración, debe generarse y guardarse una primera clave. El usuario puede alterar propiedades de las claves. Por ejemplo, según se muestra en la Figura 19, el usuario puede ajusfar el Tamaño de clave, o, como se muestra en la Figura 20, el usuario puede ajusfar el Tiempo de Vida, los cuales determinan el nivel de protección de su configuración. Puede proveerse más seguridad a un servidor 26 aumentando el tamaño de la clave. El valor por omisión es 128. Con el periodo de vida de la clave ocurre lo contrario; la disminución del periodo de vida de la clave aumenta efectivamente la seguridad del servidor 26. El valor por omisión es 1 hora.The user can generate a new password and can select its length and its life period. To generate a new key, the user selects the Key key, and a new key is generated immediately, and the data of the current key is copied onto the data of the old key. If a new key is generated two or more times in a short period of time, the old key could possibly be useless. It is possible that data has been encrypted with this key, but those data signed with the "old-old key" cannot be decrypted. When editing a new configuration, a first key must be generated and saved. The user can alter key properties. For example, as shown in Figure 19, the user can adjust the Key Size, or, as shown in Figure 20, the user can adjust the Life Time, which determine the level of protection of their configuration. More security can be provided to a server 26 by increasing the size of the key. The default value is 128. The opposite is true for the life of the code; the decrease in the life of the key effectively increases the security of the server 26. The default value is 1 hour.
E. Configuración de Nodo La Figura 21 provee un ejemplo de una interfaz de configuración de nodo.E. Node Configuration Figure 21 provides an example of a node configuration interface.
A través de esta ¡nterfaz, un usuario puede especificar la dirección de un nuevo nodo, editar un nodo existente o borrar un nodo. La Figura 22 ilustra la edición de un nodo 1.2.3.4, y describe los botones que ofrecen al usuario las opciones de Guardar, Reiniciar o Cancelar los cambios.Through this interface, a user can specify the address of a new node, edit an existing node or delete a node. Figure 22 illustrates the edition of a node 1.2.3.4, and describes the buttons that offer the user the options of Save, Restart or Cancel the changes.
F. Configuración de DominiosF. Domain Configuration
La Figura 21 describe un ejemplo de una interfaz a la página principal de un dominio, donde un usuario puede fijar el dominio y la dirección IP a la cual está mapeado. Una configuración puede abarcar más de un dominio, y todos se muestran en los campos Available Domains (Dominios Disponibles). Una configuración necesita al menos un dominio, y el sistema 20 impedirá a un usuario guardar una configuración a menos que se especifique por lo menos un dominio. En el menú desplegable Protocol (Protocolo), un usuario puede escoger entre los protocolos http:// o https://. En la barra Host (Anfitrión), el usuario ingresa el nombre del anfitrión, y especifica el puerto en la barra Port (Puerto). En la barra IP, el usuario ingresa la dirección IP a mapear con el dominio y el puerto. Para editar un dominio, el usuario pincha el botón Edit (Editar) de la configuración, y recibe una interfaz de página de edición de dominios mostrada en la Figura 24, donde el usuario puede cambiar la configuración según desee.Figure 21 describes an example of an interface to the main page of a domain, where a user can set the domain and the IP address to which it is mapped. A configuration can cover more than one domain, and all are displayed in the Available Domains fields. Available) A configuration requires at least one domain, and the system 20 will prevent a user from saving a configuration unless at least one domain is specified. In the Protocol drop-down menu, a user can choose between the http: // or https: // protocols. In the Host bar, the user enters the host name, and specifies the port in the Port bar. In the IP bar, the user enters the IP address to be mapped with the domain and port. To edit a domain, the user clicks the Edit button in the configuration, and receives a domain editing page interface shown in Figure 24, where the user can change the configuration as desired.
G. Configuración de Páginas de InicioG. Home Page Settings
Un usuario puede definir recursos URL como "Páginas de Inicio", lo que significa que para acceder al recurso no se necesita ninguna firma. Después de seleccionar "Configs" en la barra de menú y luego la etiqueta Start PagesA user can define URL resources as "Start Pages", which means that no signature is required to access the resource. After selecting "Configs" in the menu bar and then the Start Pages tab
(Páginas de Inicio), el usuario recibe el menú principal de Página de Inicio, como el mostrado en la Figura 25. El usuario debe definir al menos un dominio y, si no se especifica uno, el sistema 20 bloqueará el acceso a la etiqueta Start Pages (Páginas de Inicio). Las páginas de inicio deberían configurarse para que sean aquellas páginas en la estructura del sitio Web a las que un usuario puede acceder directamente, tecleándolas, por ejemplo, en la barra de URL de un explorador, y que deberían incluir la página principal de bienvenida y posiblemente la página principal para departamentos, etc. Dado que el acceso a las páginas de Inicio no está restringido por el sistema, una aplicación no debería colocarse como página de Inicio, ya que será vulnerable a los ataques.(Home Pages), the user receives the main Home Page menu, as shown in Figure 25. The user must define at least one domain and, if one is not specified, system 20 will block access to the tag Start Pages. The start pages should be configured to be those pages in the structure of the Web site that a user can directly access, by typing them, for example, in a browser's URL bar, and which should include the welcome home page and possibly the main page for departments, etc. Since access to Start pages is not restricted by the system, an application should not be placed as a Start page, as it will be vulnerable to attacks.
Para añadir una nueva página de inicio, el usuario selecciona el dominio, teclea la nueva página de inicio en la barra a la derecha del dominio, y luego pincha el botón Add (Añadir). Para borrar una página de inicio, el usuario pincha en el botón Delete (Borrar) a la derecha de la página de inicio que debe borrarse. Para editar una página de inicio, el usuario pincha en el botón Edit (Editar) de la página de inicio que debe editarse. Un ejemplo de una página de edición se muestra en la Figura 26, donde al usuario se le presentan los botones para Guardar, Reiniciar o Cancelar los cambios. Al editar una nueva configuración, el usuario debe definir el menos una página de inicio, después que la configuración se ha guardado.To add a new home page, the user selects the domain, type the new home page in the bar to the right of the domain, and then click the Add button. To delete a home page, the user clicks on the Delete button to the right of the home page to be deleted. To edit a home page, the user clicks on the Edit button on the home page to be edited. An example of an edit page is shown in Figure 26, where the user is presented with the buttons to Save, Restart or Cancel the changes. When editing a new configuration, the user must define at least one page Startup, after the configuration has been saved.
H. Configuración de Páginas de ExcepciónH. Configuration of Exception Pages
Un usuario puede configurar recursos URL como "Páginas de Excepción", para aquellas páginas que no se firmarán antes de ser enviadas al cliente.A user can configure URL resources such as "Exception Pages", for those pages that will not be signed before being sent to the client.
Después de seleccionar el ítem del menú "Configs", y luego la etiquetaAfter selecting the "Configs" menu item, and then the label
Except Pages (Páginas de Excepción), al usuario se le presenta la interfaz mostrada en la Figura 27. El usuario debe definir al menos un dominio y, si no se especifica uno, el sistema 20 bloqueará el acceso a la etiqueta Except Pages (Páginas de Excepción). Las páginas de Excepción están concebidas para usarse en aquellas configuraciones donde parte del contenido está fuera del control de la organización, como en una configuración de ISP donde los usuarios pueden modificar sus propias páginas del Web, y donde la firma de esas páginas podría comprometer la seguridad, ya que un usuario malicioso podría publicar una página Web con enlaces a peticiones falsificadas, que podrían conducir a problemas de seguridad de aplicaciones.Except Pages, the user is presented with the interface shown in Figure 27. The user must define at least one domain and, if one is not specified, system 20 will block access to the Except Pages tag. of Exception). The Exception pages are designed to be used in those configurations where part of the content is beyond the control of the organization, such as in an ISP configuration where users can modify their own Web pages, and where the signature of those pages could compromise the security, since a malicious user could publish a Web page with links to counterfeit requests, which could lead to application security problems.
Para añadir una nueva página de excepción, el usuario selecciona el dominio, teclea la nueva página de Excepción en la barra a la derecha del dominio, y luego pincha el botón Add (Añadir). Para borrar una página de Excepción, el usuario pincha el botón Delete (Borrar) a la derecha de la página de excepción que debe borrarse. Para editar una página deTo add a new exception page, the user selects the domain, type the new Exception page in the bar to the right of the domain, and then click the Add button. To delete an Exception page, the user clicks the Delete button to the right of the exception page to be deleted. To edit a page of
Excepción, el usuario pincha el botón Edit (Editar) de la página de Excepción que debe editarse. Un ejemplo de una ¡nterfaz de edición de páginas deException, the user clicks the Edit button on the Exception page to be edited. An example of a page editing interface of
Excepción se muestra en la Figura 28, donde al usuario se le presentan los botones para Guardar, Reiniciar o Cancelar los cambios.Exception is shown in Figure 28, where the user is presented with the buttons to Save, Restart or Cancel the changes.
I. Configuración por OmisiónI. Default Configuration
Un ejemplo de una interfaz por omisión se muestra en la Figura 29. A través de esta interfaz, un administrador puede establecer el tamaño de una barra, o una caja de texto, para su protección.An example of a default interface is shown in Figure 29. Through this interface, an administrator can set the size of a bar, or a text box, for protection.
J. Configuración del Correo del AdministradorJ. Administrator Mail Settings
El sistema 20 permite al usuario configurar el correo del administrador, a donde se entregan las alertas y otros anuncios. El correo del administrador, por ejemplo, es la dirección de correo electrónico a donde se envían todas las incidencias registradas en la configuración como errores de URL, errores de discrepancia de firmas, etc. La interfaz Admin Mail (Correo del Administrador) es específica para una configuración y el usuario, preferiblemente, no puede especificar múltiples direcciones de correo por error. La Figura 30 es un ejemplo de una interfaz Admin Mail (Correo delSystem 20 allows the user to configure the administrator's email, where alerts and other announcements are delivered. The administrator's email, for example, is the email address where all of them are sent the incidents recorded in the configuration such as URL errors, signature discrepancy errors, etc. The Admin Mail interface is specific to a configuration and the user, preferably, cannot specify multiple email addresses by mistake. Figure 30 is an example of an Admin Mail interface.
Administrador), donde al usuario se le presentan botones para Guardar, Reiniciar o Cancelar los cambios.Administrator), where the user is presented with buttons to Save, Restart or Cancel the changes.
K. Configuración del Usuario Seleccionando la etiqueta User (Usuario), el usuario recibe la interfaz mostrada en la Figura 31 , que es para una nueva configuración. A través de esta interfaz, el usuario puede cambiar la contraseña que da acceso para configurar el sistema 20. Si la configuración es nueva, el usuario primero define el identificador de conexión y la contraseña, antes de guardar la configuración. Preferiblemente, sólo el administrador puede cambiar el identificador de conexión de una configuración, pero otros usuarios pueden acceder a la etiqueta User (Usuario) para cambiar sus propias contraseñas, como se muestra en la interfaz de la Figura 32. Para cambiar la contraseña, el usuario pincha el botón Edit (Editar) en la etiqueta User (Usuario). Según se muestra en la Figura 33, el usuario ingresa la contraseña en la barraK. User Configuration By selecting the User tag, the user receives the interface shown in Figure 31, which is for a new configuration. Through this interface, the user can change the password that gives access to configure the system 20. If the configuration is new, the user first defines the connection identifier and the password, before saving the configuration. Preferably, only the administrator can change the connection identifier of a configuration, but other users can access the User tag to change their own passwords, as shown in the interface in Figure 32. To change the password, the user click on the Edit button on the User tab. As shown in Figure 33, the user enters the password in the bar
Password (Contraseña) y la reescribe en la barra Confirm Password (Confirmar Contraseña). Luego el usuario selecciona uno de los botones Save (Guardar), Reset (Reiniciar) o Cancel (Cancelar).Password and rewrite it in the Confirm Password bar. Then the user selects one of the Save, Reset or Cancel buttons.
L. Cómo Guardar la ConfiguraciónL. How to Save the Configuration
El usuario puede guardar o cancelar los cambios en la configuración seleccionando los botones Save Config (Guardar Configuración) o Cancel (Cancelar) presentados en el extremo inferior de la interfaz. De esta manera, para guardar los cambios, el usuario pincha el botón Save Config (Guardar Configuración), y para cancelar la operación de edición, el usuario pulsa el botón Cancel (Cancelar). Después de seleccionar cualquiera de estos botones, el usuario vuelve a la página de selección de configuraciones mostrada en la Figura 13.The user can save or cancel the configuration changes by selecting the Save Config or Cancel buttons presented at the bottom end of the interface. In this way, to save the changes, the user clicks the Save Config button, and to cancel the editing operation, the user presses the Cancel button. After selecting any of these buttons, the user returns to the configuration selection page shown in Figure 13.
M. Visualización de Registros Como se ha mencionado más arriba, el sistema 20 mantiene un registro de todos los errores y otras incidencias. El sistema 20, preferiblemente, permite a los usuarios visualizar las incidencias que se producen en su configuración a través de la página Logs (Registros). La Figura 35 ilustra una vista parcial de esta interfaz, mostrando una cabecera principal y la FiguraM. Record Display As mentioned above, system 20 keeps a record of all errors and other incidents. System 20 preferably allows users to view the incidents that occur in their configuration through the Logs page. Figure 35 illustrates a partial view of this interface, showing a main header and Figure
36 es un ejemplo de una interfaz de registros. La interfaz de registros, preferiblemente, enumera la fecha en que se produjo el evento, una dirección IP, el nombre del servidor, el URL solicitado, la clase de error y una descripción del mensaje. Como se muestra en la Figura 36, dentro del registro en sí, el sistema 20 indica el éxito asociado con el evento. Un signo triangular amarillo con un signo de admiración alerta al usuario de que ha ocurrido un error de personalización. Un círculo rojo con una X en él alerta al usuario acerca de una posible mala configuración del sistema, como, por ejemplo, un dominio que no tiene ninguna configuración asociada a él. Una burbuja informativa con una "i" en ella informa al usuario de sucesos normales en el sistema 20, tales como una clave que ha caducado, una configuración de nodo que ha sido releída, o una inicialización del nodo maestro que ha sido completada.36 is an example of a record interface. The logging interface preferably lists the date on which the event occurred, an IP address, the name of the server, the requested URL, the error class and a description of the message. As shown in Figure 36, within the record itself, system 20 indicates the success associated with the event. A yellow triangular sign with an exclamation mark alerts the user that a customization error has occurred. A red circle with an X in it alerts the user about a possible bad system configuration, such as a domain that has no configuration associated with it. An information bubble with an "i" in it informs the user of normal events in system 20, such as a key that has expired, a node configuration that has been reread, or an initialization of the master node that has been completed.
La Figura 37 describe un menú desplegable, que forma parte de la interfaz de la Figura 36, que permite a un usuario seleccionar el número de registros por visualizar. Para ver todos los registros, el usuario selecciona el ítem All (Todos) en el menú desplegable. Para ver sólo los eventos más recientes, el usuario puede seleccionar el ítem Last 10 (Últimos 10). Al exhibir los eventos, el sistema 20 coloca los registros más recientes al final de la página y los más viejos al principio. Un botón Reload (Recargar) lee nuevamente los ficheros de registro, para que aparezca un posible nuevo registro y el botón Clear Logs (Limpiar Registros) borra el fichero de registros.Figure 37 describes a drop-down menu, which is part of the interface of Figure 36, which allows a user to select the number of records to be displayed. To view all records, the user selects the All item in the drop-down menu. To view only the most recent events, the user can select the Last 10 item. When displaying events, system 20 places the most recent records at the bottom of the page and the oldest ones at the beginning. A Reload button reads the log files again, so that a possible new log appears and the Clear Logs button clears the log file.
N. Cómo Reiniciar el Servidor Finalmente, antes de que los cambios puedan tener efecto, el usuario debería reiniciar el sistema 20. Después de que el usuario ha guardado la configuración, pincha el icono Restart (Reiniciar) sobre la barra de menú. Si no se han encontrado problemas, el sistema 20 presenta al usuario la interfaz mostrada en la Figura 38, informando al usuario que el servidor ha sido exitosamente reiniciado. Esta interfaz desaparece después de que el servidor ha sido completamente reiniciado.N. How to Restart the Server Finally, before the changes can take effect, the user should restart the system 20. After the user has saved the configuration, click on the Restart icon on the menu bar. If no problems have been found, system 20 presents the user with the interface shown in Figure 38, informing the user that the server has been successfully restarted. This interface disappears after the Server has been completely restarted.
La descripción precedente de las realizaciones preferidas de la invención ha sido presentada sólo con el fin de ilustrar, y la descripción no está concebida para ser exhaustiva o para limitar la invención a las estrictas formas reveladas. Muchas modificaciones y variaciones son posibles, a la luz de lo instruido más arriba.The foregoing description of the preferred embodiments of the invention has been presented for the purpose of illustration only, and the description is not intended to be exhaustive or to limit the invention to the strict disclosed forms. Many modifications and variations are possible, in the light of what was instructed above.
Por ejemplo, la invención ha sido descrita con referencia a un entorno cliente-servidor, en el cual la transmisión desde el servidor es una respuesta, y la transmisión desde el cliente es una petición. Como se ha explicado más arriba, la invención no está limitada a un entorno cliente-servidor, donde una transmisión tiene lugar sólo después de una petición. Además, como debería ser evidente a partir de la descripción, el sistema 20 recibe la respuesta del servidor 26 antes de recibir la petición del cliente 24. La petición en este contexto, por lo tanto, no precede a la respuesta.For example, the invention has been described with reference to a client-server environment, in which transmission from the server is a response, and transmission from the client is a request. As explained above, the invention is not limited to a client-server environment, where a transmission takes place only after a request. In addition, as should be evident from the description, the system 20 receives the response from the server 26 before receiving the request from the client 24. The request in this context, therefore, does not precede the response.
Además, como se ha explicado más arriba, la invención no está limitada a aplicaciones HTTP, sino que puede extenderse a otros protocolos. Adicionalmente, aún si HTTP está principalmente asociado al WWW, el HTTP y, por lo tanto, la invención, puede usarse en otros entornos como servidor de contenido, tal como documentos XML. Si bien XML ha sido usado para proveer ejemplos a lo largo de este documento, la invención puede aplicarse a otros lenguajes, y a lenguajes nuevos, insertando, por ejemplo, nuevas bibliotecas de analizadores sintácticos de contenidos.In addition, as explained above, the invention is not limited to HTTP applications, but can be extended to other protocols. Additionally, even if HTTP is primarily associated with WWW, HTTP and, therefore, the invention, it can be used in other environments as a content server, such as XML documents. While XML has been used to provide examples throughout this document, the invention can be applied to other languages, and to new languages, by inserting, for example, new libraries of content parsers.
Además, si bien los ejemplos de la invención describen el suministro de una única firma para un trozo de contenido, tal como una página, debería entenderse que pueden incrustarse múltiples firmas dentro de una única página. Por ejemplo, una página que contenga formularios múltiples puede asociarse a una firma para cada uno de los formularios. La petición del cliente que tiene un único formulario enviaría entonces sólo una de las firmas de vuelta al servidor.In addition, while the examples of the invention describe the provision of a single signature for a piece of content, such as a page, it should be understood that multiple signatures can be embedded within a single page. For example, a page containing multiple forms can be associated with a signature for each of the forms. The client request that has a single form would then send only one of the signatures back to the server.
Las realizaciones han sido escogidas y descritas a fin de explicar los principios de la invención y su aplicación práctica, para permitir que otros versados en la tecnología utilicen la invención y las diversas realizaciones, y con sus diversas modificaciones, como sea apropiado para el uso particular considerado. The embodiments have been chosen and described in order to explain the principles of the invention and its practical application, to allow others skilled in the technology to use the invention and the various embodiments, and with their various modifications, as appropriate for the particular use. considered.

Claims

REIVINDICACIONESReivindicamos: CLAIMS We claim:
1. Un método de firmar comunicaciones transmitidas sobre una red, comprendiendo:1. A method of signing communications transmitted over a network, comprising:
la intercepción de una comunicación remitida a una primera entidad desde una segunda entidad sobre la red; el análisis de la comunicación; el resumen de la comunicación a fin de derivar parámetros para la comunicación; la generación de una firma asociada a la comunicación, basándose en los parámetros de la comunicación; el cifrado de la firma para generar una firma cifrada; la combinación de la firma cifrada con la comunicación; la autorización de que la comunicación con la firma cifrada sea remitida a la primera entidad sobre la red; en lo cual la firma cifrada permite que una respuesta a la comunicación desde la primera entidad sea validada por la segunda entidad.the interception of a communication sent to a first entity from a second entity on the network; communication analysis; the summary of the communication in order to derive parameters for the communication; the generation of a signature associated with the communication, based on the parameters of the communication; signature encryption to generate an encrypted signature; the combination of the encrypted signature with the communication; the authorization that the communication with the encrypted signature be sent to the first entity on the network; in which the encrypted signature allows a response to the communication from the first entity to be validated by the second entity.
2. El método según lo expuesto en la reivindicación 1 , en la cual la combinación de la firma cifrada con la comunicación es transparente para la primera entidad.2. The method as set forth in claim 1, wherein the combination of the encrypted signature with the communication is transparent to the first entity.
3. El método según lo expuesto en la reivindicación 1 , comprendiendo adicionalmente la verificación de si la comunicación es una página de inicio, y en la cual la intercepción no comprende la intercepción de la página de inicio.3. The method as set forth in claim 1, further comprising verifying whether the communication is a home page, and in which the interception does not include the interception of the home page.
4. El método según lo expuesto en la reivindicación 1 , comprendiendo adicionalmente la verificación de si la comunicación es una página de excepción, y en la cual la intercepción no comprende la intercepción de la página de excepción. 4. The method as set forth in claim 1, further comprising verifying whether the communication is an exception page, and in which the interception does not include the interception of the exception page.
5. El método según lo expuesto en la reivindicación 1 , en la cual el resumen comprende la determinación de valores aceptables para los parámetros.5. The method as set forth in claim 1, wherein the summary comprises the determination of acceptable values for the parameters.
6. El método según lo expuesto en la reivindicación 1 , en la cual el resumen comprende la determinación de longitudes aceptables para los parámetros.6. The method as set forth in claim 1, wherein the summary comprises the determination of acceptable lengths for the parameters.
7. El método según lo expuesto en la reivindicación 1 , en la cual el resumen comprende la determinación de tipos aceptables para los parámetros.7. The method as set forth in claim 1, wherein the summary comprises the determination of acceptable types for the parameters.
8. El método según lo expuesto en la reivindicación 1 , en la cual el resumen comprende la determinación de la cardinalidad para los parámetros.8. The method as set forth in claim 1, wherein the summary comprises the determination of cardinality for the parameters.
9. El método según lo expuesto en la reivindicación 1 , comprendiendo adicionalmente el añadido de una etiqueta a la comunicación, siendo usada la etiqueta para especificar una acción a realizar sobre la comunicación.9. The method as set forth in claim 1, further comprising adding a tag to the communication, the tag being used to specify an action to be performed on the communication.
10. El método según lo expuesto en la reivindicación 1 , comprendiendo adicionalmente:10. The method as set forth in claim 1, further comprising:
¡a intercepción de una segunda comunicación remitida por la primera entidad a la segunda entidad; el descifrado de una segunda firma asociada a la segunda comunicación; la comparación de la segunda firma con el contenido de la segunda comunicación; la remisión de la segunda comunicación a la segunda entidad sólo si la segunda firma se corresponde con el contenido de la segunda comunicación; y el bloqueo de la segunda comunicación en su intento de llegar a la segunda entidad si la segunda firma no se corresponde con el contenido de la segunda comunicación.At the interception of a second communication sent by the first entity to the second entity; decryption of a second signature associated with the second communication; the comparison of the second signature with the content of the second communication; the referral of the second communication to the second entity only if the second signature corresponds to the content of the second communication; and blocking the second communication in its attempt to reach the second entity if the second signature does not correspond to the content of the second communication.
11. Un método para validar comunicaciones recibidas sobre una red, que comprende: la intercepción de una comunicación remitida por una primera entidad a una segunda entidad; el descifrado de una firma asociada a la comunicación a fin de generar una firma descifrada; la indagación de parámetros en la comunicación basándose en la firma descifrada; la comparación de la firma descifrada y de los parámetros con el contenido efectivo de la comunicación; la remisión de la segunda comunicación a la segunda entidad si los parámetros en la firma se corresponden con el contenido efectivo de la comunicación; y el bloqueo de la comunicación en su intento de llegar a la segunda entidad si los parámetros en la firma descifrada no se corresponden con el contenido de la comunicación.11. A method to validate communications received over a network, which includes: the interception of a communication sent by a first entity to a second entity; decryption of a signature associated with the communication in order to generate a decrypted signature; the inquiry of parameters in the communication based on the decrypted signature; the comparison of the deciphered signature and the parameters with the effective content of the communication; the referral of the second communication to the second entity if the parameters in the signature correspond to the effective content of the communication; and blocking the communication in its attempt to reach the second entity if the parameters in the decrypted signature do not correspond to the content of the communication.
12. El método según lo expuesto en la reivindicación 1 , en la cual la comparación de los parámetros con el contenido efectivo comprende la verificación de los valores de los parámetros.12. The method as set forth in claim 1, wherein the comparison of the parameters with the effective content comprises the verification of the parameter values.
13. El método según lo expuesto en la reivindicación 1 , en la cual la comparación de los parámetros con el contenido efectivo comprende la verificación de las longitudes de los parámetros.13. The method as set forth in claim 1, wherein the comparison of the parameters with the effective content comprises the verification of the parameter lengths.
14. El método según lo expuesto en la reivindicación 1 , en la cual la comparación de los parámetros con el contenido efectivo comprende la verificación de la cardinalidad de los parámetros.14. The method as set forth in claim 1, wherein the comparison of the parameters with the effective content comprises the verification of the cardinality of the parameters.
15. El método según lo expuesto en la reivindicación 1 , en la cual la comparación de los parámetros con el contenido efectivo comprende la verificación de los tipos de los parámetros.15. The method as set forth in claim 1, wherein the comparison of the parameters with the effective content comprises the verification of the types of the parameters.
16. Un sistema para proveer seguridad a las comunicaciones sobre una red, comprendiendo: una unidad de intercepción de respuestas para interceptar una comunicación remitida a una primera entidad desde una segunda entidad sobre la red; una unidad de análisis sintáctico para derivar parámetros en la comunicación; una unidad de creación de firmas para generar una firma asociada a la comunicación, basándose en los parámetros de la comunicación; una unidad de cifrado para cifrar la firma a fin de generar una firma cifrada; el análisis sintáctico que combina la firma cifrada con la comunicación y que permite que la comunicación con la firma cifrada sea remitida a la primera entidad sobre la red; en lo cual la firma cifrada permite que una respuesta a la comunicación desde la primera entidad sea validada por la segunda entidad.16. A system to provide security for communications over a network, comprising: a response interception unit to intercept a communication referred to a first entity from a second entity on the network; a syntactic analysis unit to derive parameters in the communication; a signature creation unit to generate a signature associated with the communication, based on the parameters of the communication; an encryption unit to encrypt the signature to generate an encrypted signature; the syntactic analysis that combines the encrypted signature with the communication and that allows the communication with the encrypted signature to be sent to the first entity on the network; in which the encrypted signature allows a response to the communication from the first entity to be validated by the second entity.
17. El sistema según lo expuesto en la reivindicación 16, comprendiendo además: una unidad de intercepción de peticiones para interceptar una segunda comunicación remitida por la primera entidad a la segunda entidad; una unidad de descifrado para descifrar una segunda firma asociada a la segunda comunicación, a fin de generar una segunda firma descifrada y de indagar un segundo conjunto de parámetros en la segunda comunicación; una unidad de verificación de firmas para comparar el segundo conjunto de parámetros definidos por la firma descifrada con el contenido efectivo de la segunda comunicación; la remisión de la segunda comunicación a la segunda entidad si el segundo conjunto de parámetros en la firma descifrada se corresponde con el contenido efectivo de la comunicación; y el bloqueo de la segunda comunicación en su intento de llegar a la segunda entidad si el segundo conjunto de parámetros en la firma descifrada no se corresponde con el contenido de la segunda comunicación.17. The system as set forth in claim 16, further comprising: a request interception unit for intercepting a second communication sent by the first entity to the second entity; a decryption unit for deciphering a second signature associated with the second communication, in order to generate a second decrypted signature and to investigate a second set of parameters in the second communication; a signature verification unit to compare the second set of parameters defined by the decrypted signature with the effective content of the second communication; the referral of the second communication to the second entity if the second set of parameters in the decrypted signature corresponds to the effective content of the communication; and blocking the second communication in its attempt to reach the second entity if the second set of parameters in the decrypted signature does not correspond to the content of the second communication.
18. El sistema según lo expuesto en la reivindicación 16, comprendiendo además una unidad de errores para generar errores cuando el segundo conjunto de parámetros en la firma descifrada no se corresponde con el contenido efectivo de la segunda comunicación.18. The system as set forth in claim 16, further comprising an error unit for generating errors when the second set of parameters in the decrypted signature does not correspond to the effective content of the second communication.
19. Un medio legible por ordenador a fin de almacenar software para su uso en la validación de comunicaciones recibidas sobre una red, comprendiendo el software para realizar un método: la intercepción de una comunicación remitida a una primera entidad desde una segunda entidad sobre la red; el análisis de la comunicación; el resumen de la comunicación a fin de derivar parámetros para la comunicación; la generación de una firma asociada con la comunicación, basándose en los parámetros de la comunicación; el cifrado de la firma a fin de generar una firma cifrada; la combinación de la firma cifrada con la comunicación; la autorización para que la comunicación con la firma cifrada sea remitida a la primera entidad sobre la red; en lo cual la firma cifrada permite que una respuesta a la comunicación desde la primera entidad sea validada por la segunda entidad.19. A computer-readable medium to store software for your use in the validation of communications received over a network, the software comprising performing a method: the interception of a communication sent to a first entity from a second entity on the network; communication analysis; the summary of the communication in order to derive parameters for the communication; the generation of a signature associated with the communication, based on the parameters of the communication; signature encryption to generate an encrypted signature; the combination of the encrypted signature with the communication; the authorization for the communication with the encrypted signature to be sent to the first entity on the network; in which the encrypted signature allows a response to the communication from the first entity to be validated by the second entity.
20. Un medio legible por ordenador a fin de almacenar software para su uso en la validación de comunicaciones recibidas sobre una red, comprendiendo el software para realizar un método: la intercepción de una comunicación remitida por una primera entidad a una segunda entidad; el descifrado de una firma asociada a la comunicación a fin de generar una firma descifrada; la indagación de parámetros en la comunicación basándose en la firma descifrada; la comparación de la firma descifrada y de los parámetros con el contenido efectivo de la comunicación; la remisión de la segunda comunicación a la segunda entidad si los parámetros en la firma se corresponden con el contenido efectivo de la comunicación; y el bloqueo de la comunicación en su intento de llegar a la segunda entidad si el segundo conjunto de parámetros en la firma descifrada no se corresponden con el contenido de la comunicación. 20. A computer-readable medium for storing software for use in the validation of communications received over a network, the software comprising performing a method: the interception of a communication sent by a first entity to a second entity; decryption of a signature associated with the communication in order to generate a decrypted signature; the inquiry of parameters in the communication based on the decrypted signature; the comparison of the deciphered signature and the parameters with the effective content of the communication; the referral of the second communication to the second entity if the parameters in the signature correspond to the effective content of the communication; and blocking the communication in its attempt to reach the second entity if the second set of parameters in the decrypted signature does not correspond to the content of the communication.
PCT/ES2002/000254 2002-05-28 2002-05-28 Firewalls for securing networks and http applications WO2003101069A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
AU2002310775A AU2002310775A1 (en) 2002-05-28 2002-05-28 Firewalls for securing networks and http applications
PCT/ES2002/000254 WO2003101069A1 (en) 2002-05-28 2002-05-28 Firewalls for securing networks and http applications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/ES2002/000254 WO2003101069A1 (en) 2002-05-28 2002-05-28 Firewalls for securing networks and http applications

Publications (1)

Publication Number Publication Date
WO2003101069A1 true WO2003101069A1 (en) 2003-12-04

Family

ID=29558504

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/ES2002/000254 WO2003101069A1 (en) 2002-05-28 2002-05-28 Firewalls for securing networks and http applications

Country Status (2)

Country Link
AU (1) AU2002310775A1 (en)
WO (1) WO2003101069A1 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2415874A (en) * 2004-07-02 2006-01-04 Vodafone Ireland Ltd Mobile phone offer tamper prevention by hiding encrypted, encoded user/offer data in offer page and checking its integrity in received reply
US7712137B2 (en) 2006-02-27 2010-05-04 Microsoft Corporation Configuring and organizing server security information
US7818788B2 (en) 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US7890315B2 (en) 2005-12-29 2011-02-15 Microsoft Corporation Performance engineering and the application life cycle

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0909072A2 (en) * 1997-09-12 1999-04-14 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with stateful packet filtering
WO2001007979A2 (en) * 1999-07-21 2001-02-01 Sun Microsystems, Inc. Application firewall

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0909072A2 (en) * 1997-09-12 1999-04-14 Lucent Technologies Inc. Methods and apparatus for a computer network firewall with stateful packet filtering
WO2001007979A2 (en) * 1999-07-21 2001-02-01 Sun Microsystems, Inc. Application firewall

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"Technical overview and Technology behind HIVE", HIVE, 10 December 2001 (2001-12-10), Retrieved from the Internet <URL:http://www.s21sec.com/en/html/menu.html?to=hive> *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2415874A (en) * 2004-07-02 2006-01-04 Vodafone Ireland Ltd Mobile phone offer tamper prevention by hiding encrypted, encoded user/offer data in offer page and checking its integrity in received reply
GB2415874B (en) * 2004-07-02 2007-03-07 Vodafone Ireland Ltd Securing distributed data
US7890315B2 (en) 2005-12-29 2011-02-15 Microsoft Corporation Performance engineering and the application life cycle
US7818788B2 (en) 2006-02-14 2010-10-19 Microsoft Corporation Web application security frame
US7712137B2 (en) 2006-02-27 2010-05-04 Microsoft Corporation Configuring and organizing server security information

Also Published As

Publication number Publication date
AU2002310775A1 (en) 2003-12-12

Similar Documents

Publication Publication Date Title
US8689295B2 (en) Firewalls for providing security in HTTP networks and applications
CN111226429B (en) System and method for intercepting and enhancing SAAS application calls via an embedded browser
US20120216133A1 (en) Secure cloud computing system and method
EP2144420B1 (en) Web application security filtering
CN113196724A (en) System and method for application pre-launch
CN112313919A (en) System and method for watermarking using an embedded browser
US20070220599A1 (en) Client-side extensions for use in connection with HTTP proxy policy enforcement
CN112913213A (en) System and method for presenting additional content for a web application accessed via an embedded browser of a client application
US20120054842A1 (en) Secure access control system
Ristic Apache security
WO2005125087A1 (en) Distributed hierarchical identity management system authentication mechanisms
CN113228007A (en) System and method for secure SAAS redirection from native applications
JP7076641B2 (en) Systems and methods for push delivery notification services for SAAS applications
CN112997180A (en) System and method for integrating HTML-based applications with an embedded browser
CN112805982B (en) Application scripts for cross-domain applications
CN113168350A (en) System and method for a bridging protocol between various applications
CN112292669A (en) System and method for embedded browser
CN112868212A (en) System and method for improved remote display protocol for HTML applications
JP6994607B1 (en) Systems and methods for intellisense for SAAS applications
WO2003101069A1 (en) Firewalls for securing networks and http applications
CN113039769A (en) System and method for deep linking of SAAS applications via embedded browser
CN113260980B (en) System and method for real-time SAAS objects
JP2022504499A (en) Systems and methods for system-on-chip traffic optimization of intermediate devices
CN113272788A (en) System and method for real-time tiles for SAAS
Heasley Securing XML data

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP