In order to demonstrate the MaxPatrol advantage, we would like to use
two different approaches in assessing
vulnerability detection quality.
First, we will list the three main types of
vulnerabilities, classified by source:
Second, we will analyze the entire process
of vulnerability detection by breaking it
down into individual stages:
Types of Vulnerabilities
All the vulnerabilities discussed in this
section have been published on specialized
news channels. Sources of information are
software developers, independent experts,
and ambitious hackers.
We would like to assume that any
self-respecting security scanner includes a
complete database of published
vulnerabilities, with regular updates. This
is a necessary feature, but it is not
enough, for one simple reason: there are two
other sources of vulnerabilities presenting
a threat to information security that is
every bit as serious.
Another issue to consider is the way
vulnerabilities in the database are
verified, which leads to two questions: 1)
How do we know for sure which software
version is referred to in the database, and
2) How can we find out without a doubt
whether a particular vulnerability has been
corrected using a patch? Regarding these
questions, we cannot rely on the banners the
different services use to provide
information about themselves. We need a more
reliable mechanism for detecting software
versions. This is what MaxPatrol can do for
you. Wherever possible, it also conducts a
direct vulnerability check by simulating an
attack and analyzing system response. This
is the most reliable method, but because it
is not entirely safe, you may wish to
disable this feature using program settings.
We should also mention that any
vulnerabilities database is incomplete by
definition. As long as we continue to
discover new vulnerabilities regularly in
existing software, we cannot be confident
that we are protected from outside attacks
that may utilize as yet unpublished
vulnerabilities. For this reason, it is a
very good thing to have the capability of
detecting "unknown" vulnerabilities at one's
disposal. MaxPatrol has the intellectual
ability to model probable attacks
"on-the-fly," based on the configuration of
the system being scanned. It is often
successful (see
EXAMPLE #3).
No one can predict these vulnerabilities.
They appear when software deviates from its
ideal configuration. This can occur due to
error, lack of activities coordination,
insufficient personnel training, and so on.
The more "exhaustive" and "cunning" the
scanner's software-configuration check, the
more reliable its diagnosis of
vulnerabilities.
MaxPatrol accomplishes this task as
thoroughly as possible, and within
reasonable periods of time (certain modes
may require additional time, but provide
more depth of reporting).
EXAMPLE #4 offers a simple, yet topical
scenario.
As you may have guessed, there is a great
deal of variation among vulnerabilities.
Fortunately, many of them (including those
used most frequently by ill-wishers) fit
certain classifications. Attacks are usually
carried out through scripts hosted at web
servers. MaxPatrol searches for several
types of vulnerabilities, among which the
most widespread are SQL-injections and
code-injections. It should be noted that in
each specific case, MaxPatrol models and
analyzes only those attacks that apply to
the node being tested. Statistics show that
MaxPatrol detects injections of one kind or
another in half the online databases
currently published on the Internet.
MaxPatrol's ability to analyze Internet
sites thoroughly enables its widespread use
in automated express-penetration tests. On a
price/value basis, this alternative makes
much greater economic sense than contracting
out to a consultant.
Scanning Stages

This is the simplest stage in scanning, and
there would seem to be nothing to discuss.
But that is not the case.
Suffice it to say that the possible range of
port numbers is 65,000 for TCP ports, and
the same number for UDP's. Of course,
MaxPatrol does include a mode that tests all
ports, without exception, but that requires
a lot of time, and cannot be used in every
situation. The problem is to determine an
optimal list of ports that should be tested
every time. MaxPatrol offers two
possibilities for resolving it:
- First, it can configure a list of ports
employed by the user
- 2. Second, MaxPatrol offers a default
port list painstakingly designed by experts,
and based on many years of practical
experience. Of course, if you set a service
to use port 26872, it will not be found
automatically (if this is the case, you
should use the preceding alternative, or
scan the entire range). Still, MaxPatrol
almost always succeeds in detecting all open
ports, not just those used by known
services. Examples
#1 and
#2 give some idea of this feature. The
default list of ports to be tested is
updated whenever MaxPatrol experts receive
new information.

In
this stage of scanning, the program detects
which services are operating at which ports.
Accuracy in this stage is of utmost
importance because the vulnerabilities
diagnostics performed in the next stage are
based on this information. Detection of port
number 110 does not mean that the program
should immediately start checking for
vulnerabilities in POP3 service (even if the
service responds with a banner stating the
presence of a POP3 service). To ensure
overall accuracy in scanning results, it is
crucial to detect not just the service type,
but its version, as well. In addition,
detection should not be based on direct
responses from services because service
banners are often falsified for security
purposes in an attempt to foil hackers.
This problem turns out to be rather complex.
In fact, it has yet to be resolved with 100%
accuracy. MaxPatrol approaches an optimal
solution through the use of a series of
special mechanisms:
- First, it permits services to be
assigned to non-standard ports
- Second, it scans services in a certain
order based on specially designed
correlation matrices. This allows a high
level of reliability while ensuring good
scanning speed
- Third, MaxPatrol uses a carefully
constructed process for detecting services
that frequently duplicates tests to confirm
information
- Fourth, MaxPatrol's developers have
created heuristic algorithms designed to
confirm different versions for many
services: HTTP, FTP, SMTP, POP3, DNS, SSH. A
positive result obtained using these
algorithms is 100% reliable. If heuristic
confirmation is not successful, the program
gives a clear warning. On the average, these
methods are 95% effective
- " Fifth, developers have composed
specific algorithms for RPC services.
MaxPatrol can detect over 30 Windows
services and about 200 Unix services at
random ports with accuracy down to a
specific service. This process required an
original algorithm. For example, detection
quality in Unix systems is not related to
the availability of port mapping data.

The last scanning stage generates the
scanner's final result. The quality of the
report depends both on the preceding stages'
work, and on the methods of vulnerability
detection employed.
Because we have already had some discussion
of vulnerability detection (section 1) and
to avoid getting lost in the details, let's
just have a short review of the basic
methods used in vulnerability detection and
of the types of vulnerabilities found, which
is important in this stage of MaxPatrol's
operation:
- An original database of incorrect
queries and network packets for more
reliable detection of vulnerabilities that
includes unregistered services
- Direct testing capability for
vulnerability to many known DoS-attacks (can
be disabled if necessary)
- Ability to model new DoS-attacks
"on-the-fly"
- Multiple brute-dictionaries specifically
compiled for various service and
vulnerability types (including unauthorized
folder access)
- Detection of vulnerabilities arising
from configuration errors including cases of
unprotected authorization, revealing of
information by services, etc.
- " Deep, intelligent website analysis for
vulnerability to SQL- and code-injections,
XSS, and receiving files. Investigation of
original scripts developed for particular
web applications take place at this step.