Linux Server Security (2nd Edition( [Electronic resources] نسخه متنی

اینجــــا یک کتابخانه دیجیتالی است

با بیش از 100000 منبع الکترونیکی رایگان به زبان فارسی ، عربی و انگلیسی

Linux Server Security (2nd Edition( [Electronic resources] - نسخه متنی

Michael D. Bauer

| نمايش فراداده ، افزودن یک نقد و بررسی
افزودن به کتابخانه شخصی
ارسال به دوستان
جستجو در متن کتاب
بیشتر
تنظیمات قلم

فونت

اندازه قلم

+ - پیش فرض

حالت نمایش

روز نیمروز شب
جستجو در لغت نامه
بیشتر
لیست موضوعات
توضیحات
افزودن یادداشت جدید







13.1. Principles of Intrusion Detection Systems


In practical
terms, there are two main categories of IDS: host-based and network-
based. A host-based IDS, obviously enough, resides on and protects a
single host. In contrast, a network-based IDS resides on one or more
hosts (any of which may be a dedicated "network
probe") and protects all the hosts connected to its
network.


13.1.1. Host-Based IDSes: Integrity Checkers


Dedicated host-based IDSes tend overwhelmingly to rely on integrity
checking. In theory, host-based IDSes should use a much broader
category of tools. Commercial IDS products, such as
ISS
RealSecure and Marcus Ranum's
Network Flight Recorder, both of which
I categorize as Network IDSes, can use sophisticated methods (such as
traffic analysis) on a single host, if desired.

Integrity checking involves the creation
and maintenance of a protected database of
checksums,
cryptographic
hashes, and other attributes of a host's critical
system files (and anything else you don't expect to
change on that system). The integrity checker periodically checks
those files against the database: if a file has changed, an error or
alert is logged. Ideally this database should be stored on a
read-only volume, or off the system altogether, to prevent its being
tampered with.

The assumption here is that unexpected changes may be the result of
some sort of attack. For example, after
"rooting" a system, a system
cracker will often replace common system utilities such as
ls, ps, and
netstat with
"rootkit" versions, which appear to
work normally but conveniently neglect to list files, processes, and
network connections (respectively) that might betray the
cracker's presence. (See http://www.chkrootkit.org/ for a script that
can be used to detect installed rootkits
and for links to many other related sites and articles.) By regularly checking system utilities and other important files
against the integrity checker's database, we can
minimize the chances of our system being compromised without our ever
knowing it. The less time between a system's
compromise and its administrators' learning that
it's been compromised, the greater the chance its
administrators can catch or at least evict the intruders before too
much damage is done.

Integrity checking has a beautiful simplicity: we
don't necessarily care how a
monitored file has been changed; we mainly care that it
has. To be effective, an integrity checker
doesn't need to be smart enough to know
that /bin/ls no longer shows files belonging to
the user evild00d; it only needs to know
that /bin/ls has been altered since the last
legitimate system update. Having said that, a good integrity checker
will also tell us which external characteristics
of /bin/ls have changed: its size, modification
date, physical location (inode), etc.


Any integrity checker with an untrustworthy database is worthless.
It's imperative to create this database as soon as
possible after installing the host's operating
system from trusted media. I repeat: installing, configuring, and
maintaining an integrity checker is not worth the effort unless its
database is initialized on a clean system.

Also keep in mind with integrity checkers is that they are
not proactive. (Unless one or more of your
perimeter systems is a
honeypota
"sacrificial lamb" that sets off
alerts when compromised so you can prevent other systems from being
compromised, too. However, I wouldn't count on
attackers obliging you by attacking the honeypot system first!) In
most cases, by the time your integrity checker registers an alert,
you only have a small chance of intervening before a serious
compromise occurs. Furthermore, the attacker may tamper with or
altogether suppress the alert before it reaches you.

This does not mean that integrity checking is
futile! On the contrary, the first step in incident response is
learning that something has occurred in the first place, and if you
install an integrity checker properly, you do
have a better chance of learning about attacks soon enough to take
meaningful action. If the worst happens, data from your integrity
checker can be invaluable in figuring out what happened and in
rebuilding your system if need be.

However, if you wish to do everything possible to detect attacks
before they succeed, you'll also need to deploy
something more sophisticatedi.e., something in
addition to integrity checking systems, which truly are
your last line of defense.

13.1.2. NIDS: Scanning for Signatures Versus Anomalies


Whereas host-based IDSes tend to be of a
single type (integrity checkers), Network IDSes come in two main
flavors: those that rely on
attack
signatures (network traffic patterns characteristic of
specific attacks) and those intelligent enough to detect potential
attacks based on variances from some concept of normal
network state. Commonly used NIDSes rely most heavily
on signature
scanning, but many also possess some degree of anomaly detection
functionality as well.

There are other types of network-based systems besides
signature
scanners and anomaly detectors. Most of these other
types fall into what Marcus Ranum calls the
"audit-based" category, in which as
much data as possible is logged but is not analyzed until well
after the events in question have transpired. In
a holistic sense, this is a very powerful method, as it implies the
ability to construct highly locale-specific signatures for very
subtle and complicated attacks.


The payoff of an audit-based IDS, however, comes only after
the system has witnessed complete attacks, which, in most settings,
is too late. Audit-based systems are thus beyond the scope of this
chapter due to these practical limitations: we're
most concerned with detecting (and perhaps even preventing) attacks,
and much less with studying them after the fact.

13.1.2.1 Signature-based systems


Signature-based systems are the most
common type of network-based IDS, for several reasons. First,
they're the simplest: they compare network
transactions to known attack signatures, and if a given transaction
sufficiently resembles a known attack, the IDS logs an alert (and
possibly sends it to someone's pager, too). Second,
they're low maintenance: all you generally need to
do is keep the signature database current. Third, they tend to
register a relatively small percentage of false
positives, an attribute highly prized by system
administrators (who usually receive plenty of email and pager alerts
as it is!).

Signature-based systems, which are also called
"misuse detectors" in
Ranum's lexicon, are a successful and practical
approach to network-based intrusion detection. However, they have one
important limitation: by relying on signatures of known attacks,
they're of little use against new attacks and
variations on known attacks that are sufficiently different so as to
not match existing signatures. It's worth
considering that most attack signatures are written after someone
has already fallen victim to that attack.

13.1.2.2 Anomaly-detection systems


Anomaly-detection
systems, which I also sometimes call
state-based
systems, are much less widely used. First, they
tend to be complex: determining what constitutes
"normal" traffic on a given network
is a nontrivial task for humans, so it follows that a high degree of
artificial intelligence (AI) is required for any automated system
that does this. (Maybe your experience is different from mine, but
savvy human network engineers are rare enough; why would robotic ones
be any less so?) Second, they're high maintenance: even when coded
with good AI and sophisticated statistical modeling mechanisms,
state-based IDSes typically require a lengthy and sometimes difficult
"initialization" period, during
which they collect enough network data to create a statistically
meaningful profile of normal network states. The system requires
frequent (and endless) fine-tuning afterwards.

Third, even after all this work, anomaly-detection systems tend to
register many more false positives than
signature-based systems do (though
presumably, this problem diminishes over time). This can result in a
great deal of inconvenience.

In many people's opinions, including Marcus
Ranum's, anomaly-detection systems are the most
promising approach for future IDS technologies. As noted earlier,
signature-based systems are limited to known
attacks, specifically those for which your IDS
has signatures. State-based anomaly detection is the only approach
with the potential to detect both known and new types of attacks.


What About False Negatives?


In discussing false positives (alerts that
aren't really caused by attacks) as an undesirable
trait of IDSes, I'm making an important assumption:
that false negatives (attacks that trigger
no alert) aren't even an issue.
This is an important assumption.

We don't like false positives because
they're annoying, inconvenient, and have the
potential to distract our attention from alerts triggered by real
attacks. But in configuring and fine-tuning any IDS, you must
always err on the side of false positives and reduce false
negatives when given the choice. You
don't want to miss the real thing when it comes
along.


/ 94