Microsoft Internet Security and Acceleration Server 2000 Application Layer
Filtering Kit
Chapter 8
Prevent Attackers from Gathering
Valuable Internal Network Information by using the ISA Server 2000 Link

Dr. Thomas W Shinder
Martin Grasdal
December
2003
Table of Contents
The
Problem: Attackers Can Obtain Valuable Networking Information from Web Site Generated
Links
The
Solution: The ISA Server 2000 Link Translator
Security
Implications of Non-Translated Links
How
the ISA Server 2000 Link Translator Works
Determining
Custom Dictionary Entries
Network attackers use a variety of methods to gain access to information on your corporate network. Different attackers have different motivations; some want to destroy information or disable the network, either “just for fun” or for political or economic reasons (business competitors). Others do not wish to do damage, but instead want to steal information. This is often done for profit (corporate espionage). The latter care more about stealing private information than destroying or disabling network services.
Some Web sites return the names of private internal network
servers. Attackers can use this information to help them steal private and
proprietary information from your network. The ISA Server 2000 Link
This article includes information on how to configure the
ISA Server 2000 link
More sophisticated attacks who seek to gain specific information about network services and applications on the corporate network will attempt to determine the location of private or proprietary information so they can steal your corporate information. Vulnerable data includes financial information, business strategy documents, trade secrets and information about your clients and employees.
There are several ways the intruder can obtain information about your network:
One way network attackers can find out information about your private network is from links that are returned to users when they connect to publicly accessible Web sites. Many Web applications are coded in a way that allows them to be used primarily on an intranet and not with remote access users in mind. These Web applications return links with single-label computer names in them instead of public names in hierarchical domain format. The attacker can use these single label names and get information about the names of the servers on your internal network.
For example, you have published a Web server on the internal network using an ISA Server 2000 Web Publishing rule. External users access the sites using the URL http://www.external.net. The published Web server responds to the user’s request with a Web page containing several links. Each of these links contains URLs that point to http://hrdatabase1. If the attacker is interested in stealing information about employees, he can safely infer that this server might contain the information he desires. Other Web pages on the site may contain names of other servers on the internal network that store private information not meant for public consumption.
You might have thought, when reading the example above, that the external user would not be able to access any content using single label links such as http://hrdatabase1 because this is not an Internet resolvable name. For a name to be Internet resolvable, you have to have the host name and the domain name. In order to connect to http://hrdatabase1, you would have to have some mechanism to append a domain name to hrdatabase1, so that it looks something like hrdatabase1.external.net.
Organizations hosting Web sites that contain single label links can solve the problem if they have control over the external clients that access the site. These external clients can be configured with a primary domain name that is used when fully qualifying single label names. For example, if an external client is configured to use external.net as its primary domain name, then the link to http://hrdatabase1.external.net will actually go to http://hrdatabase1.external.net. If there is a public DNS entry hrdatabase1.external.net, then the external client will be able to access a Web site published to the IP address mapping to hrdatabase1.external.net.
Note:
This method only works for external clients over which you have some
control, because the clients must be explicitly configured
with the proper domain name used to fully qualify the single label name.
A network attacker who is reconnoitering your network will be able to access the first page of the site, but will not be able to connect to the links. However, this doesn’t pose a significant problem for the attacker because he can manually enter the same domain name that he used for the initial connection to the single label name and access other pages in the site, which might reveal even more private server names.
Outside the security risk issues related to returning single label names in links returned to the users, this situation creates a large amount of administrative overhead if you need to configure each remote client to use a specific domain name to qualify unqualified requests. A better solution is to re-write the Web application so that it does not use hard-coded links to internal server names. Unfortunately, this can become a very expensive proposition and in many circumstances isn’t possible at all.
The ISA Server 2000 Link
SharePoint Portal Server 2003 provides an ideal example of
how the ISA Server 2000 link
Another important issue that you may encounter when publishing Web sites involves the use of SSL and links included in response to external client requests. In many cases, the URLs returned to external clients use an http:// instead of https://. This breaks the connection because the server requires an SSL connection. The connection attempt fails when the external user clicks a link using http:// instead of https://
The figure below demonstrates this problem:

The figure above shows an external user connected to https://extranet.external.net/, which is the FQDN in the Destination Set used in the Web Publishing Rule to provide access to the internal Web site. Notice that links returned to the external user point to http://sps/, which is the internal name of the SharePoint server.
The request will fail when an external user clicks any of these links. There is no Web Publishing rule allowing users to connect to http://sps. Even if there were a Web Publishing rule that included sps in its Destination Set, http://sps is a name used to access the site from an internal network client. The external client is unlikely to be able to correctly resolve the name sps to the IP address on the external interface of the ISA Server 2000 firewall that is being used by the Incoming Web Requests listener. In addition, if the Web Publishing rule has been configured to require an SSL connection, a connection request using http:// will fail.
While these are serious problems in terms of accessibility, perhaps an even more troubling issue is that the page returned to the external user contains links to internal network server names that are used inside the organization. This is a security risk.
It is considered best practice in the security community to never reveal internal server names used on the internal network to external users. This helps to prevent hackers, competitors, and others from discovering information about the network and inferring the function of various network servers based on their names. Because servers are often named with informative labels that help internal users and administrators identify their roles on the network, a significant amount of information can be gleaned by an interested third party whose motives may be suspect.
Link
Note:
Some Web servers allow you to
customize the URLs returned to users who access the sites from a remote
location, but others do not. For example, SharePoint Portal Server 2003 allows
you to customize the URL returned on search result pages using a feature called
Alternate Portal Access Settings. A
similar feature is not available in Outlook Web Access, so the link
Link
The default link
For more complex publishing scenarios or when complex ASP code is involved (for example, SharePoint Portal Server 2003 publishing) it is necessary to configure dictionary definitions that map to the names returned by the internal Web site. The dictionary name mappings are configured on a per-Web publishing rule basis on the ISA Server 2000 firewall.
The link
When link
Tech
Note:
The link
The link
· The filter searches for the longest strings, then shorter strings, and finally the default strings
·
If the filter finds a match to a text string, it
will then look at the next character to the right to see if it is a terminating character. The following are
considered terminating characters:
|
\t |
\r |
\n |
; |
~ |
< |
! |
" |
& |
' |
) |
$ |
) |
* |
|
+ |
, |
- |
/ |
> |
= |
? |
[ |
\ |
] |
^ |
{ |
| |
} |
·
If the filter finds a terminating character
immediately to the right of the string, it will perform
For example, consider a scenario where the link
Needless to say, a good understanding of the results of link
The ISA Server 2000 link
If simply enabling the filter solves the problems external clients are experiencing, no other configuration is necessary. If a custom dictionary is necessary, then you will have to do some analysis to determine what entries to put in the dictionary and then add these entries to the dictionary. Dictionary entries are dependent on the underlying code of the returned pages and vary according to how your Web sites and Web services work.
Determining the appropriate strings to replace is something
of an art and may require the assistance of a developer who understands the
client-side scripts that are returned to the external
client. Working with the Web site developer can allow you to cut the time it
takes to create the appropriate link
The steps for configuring the ISA Server 2000 link
Figure 1 Enabling Link

The only content group the link
Figure 2 Selecting Content Groups for
Link

The next step is to enable link
Figure 3 Enabling Link

You should test the default behavior of the link
For example, suppose you publish a SharePoint Portal Server
2003 site. You will need to create custom dictionary entries to publish
SharePoint Portal Server 2000 Web sites.
As discussed earlier in this article, even though the link
In addition, after adding link
For example, after adding two dictionary entries to replace “http://” with “https://” (as per the Feature Pack 1 help files) and to replace “sps” with “extranet.external.net”, the returned source code included the following strings in the client-side JavaScript code:
f.action='http:\/\/extranet.external.net\/Search.aspx', and
http:\\\/\\\/extranet.external.net\\\/Search.aspx
To fix this problem, it was necessary to map the shorter string “http:” to “https:” Importantly, it is necessary to include the colon “:” in the dictionary entry mapping. Simply mapping “http” to “https” (without the colon) causes the entire site to be inaccessible.
Creating optimal custom dictionary entries may involve
extensive and repetitive testing. Incorrect link
To add a custom dictionary entry, click the Add button on the Link
Figure 4 Adding a Dictionary Item

Keep in mind that this string will be too long to prevent all problems with incorrect links being returned by the published SharePoint site and that you may have to conduct some trial-and-error experimentation in a test lab to determine string mappings for your environment.
The Feature Pack 1 help files recommend that you also add mappings that include the port number for the Web site, for example, http://sps:80. Also, you should not include terminating characters at the end of the mappings you create.
For SharePoint Portal Server 2003, the minimum configuration seen in the figure below appeared to provide an optimal solution. This configuration allows the proper links to be returned for search results returned by the SharePoint Web site.
Figure 5 Custom

After configuring dictionary entries, the results returned to external network clients from the search function were correct and accessible. Keep in mind that the entries in the figure above appear to be contrary to recommendations in the Feature Pack 1 help files. However, they do provide the desired functionality. The figure below shows the search results.
Figure 6 Link

Network attackers use a variety of methods to gain access to information on your corporate network. More sophisticated attacks who seek to gain specific information about network services and applications on the corporate network will attempt to determine the location of private or proprietary information. These attackers care more about stealing private information than destroying or disabling network services.
Some Web sites return the names of private internal network
servers. Attackers can use this information to help them steal private and
proprietary information from your network. The ISA Server 2000 Link
This article includes information on how to configure the
ISA Server 2000 link