PDA

Bekijk Volledige Versie : "Local" and "Remote" considered insufficient



Steven M. Christey
22/10/03, 23:00
In a recent post, Florian Weimer said:

>> PACKAGE : ircd
>> SUMMARY : Local denial of service vulnerability
>
>Actually it's *remote* in the usual terminology on this list.
>
>[snip]
>
>When IRC server developers talk about "local vulnerabilities"
>vs. "remote vulnerabilities", they mean the distinction given above
>(exploit over local connection vs. exploit over the IRC network). In
>the terminology with which most readers of this list are familiar,
>both attack vectors are "remote". "Local" attacks come from
>authenticated users or users with shell access.

These types of discrepancies in terminology happen fairly often.

The basic problem is that the terms "local" and "remote" are
insufficient to identify the nature of the path (and required access)
through which a vulnerability may be exploited. It's also important
to include the amount of "authentication" required, the configurations
under which the issue exists, whether the attack requires any
involvement by the user, and the set of entities that can launch an
attack (one system, many systems, trusted systems, same physical wire,
anybody who can send a packet, one user, many users, trusted users,
etc.), and so on.

In CVE, we've generally had to deal with the "impreciseness" of local
vs. remote terminology for a while.

For the CVE description style, we have "local" (user is authenticated
to system), "remote" (non-authenticated attacker across the network),
"remote authenticated" (traffic goes across the network, but
authentication is involved), and "physical access." Older CVE's
sometimes used "local" to refer to "remote authenticated," but we've
been better about making the distinction in the past couple years.

There are still some complexities, however.

When authentication comes into play, one must consider: authentication
to *what* ? If a bulletin board requires someone to "authenticate" as
an administrator for that board, but the access is restricted to the
bulletin board itself (i.e. not the rest of the system), is that a
"local" vulnerability or a "remote" vulnerability? (It's "local" to
the application but "remote" across the network.) What if the
bulletin board administrator, by design, can execute operating system
level commands as some "user" on the operating system?

When an FTP bug is exploitable by "authenticated" users, but the FTP
server allows guest/anonymous login, then is there really
"authenticated" access required? What if the affected protocol allows
man-in-the-middle attacks?

The scope of a bug can also be restricted to a smaller set of
"trusted" machines or accounts. Think of the GUIs of routers and
firewalls, which (in a perfect world) are generally only accessible to
a small number of trusted hosts. Think of bugs in domain controllers
that can only be exploited by other domain controllers. Are those
vulnerabilities really "remote?"

And how about bugs in software that's used to package files for
transport such as tar, zip, etc.? The bug is "local" in the sense
that the packaged file has to reside on the local system in some way,
and only an authenticated user can run it to install it on the system,
but these formats are commonly used for transferring files from
machine to machine, so they're "remote."

Then you have bugs in non-setuid programs that are only exploitable
from a local user, but those programs are often called from remotely
accessible processes (e.g. a recent buffer overflow in a "whois"
client that's commonly called by CGI programs). As another example,
consider a database bug that's only exploitable by "local" database
users, but the database also has a default password and is remotely
accessible (in this case, I view it as the interaction of two separate
issues).

So, to echo Florian's comments, "local" and "remote" is not sufficient
in fully evaluating the severity of a vulnerability in a particular
environment.

- Steve

P.S. Credits to Adam Shostack and Scott Blake for initially educating
me about the role of authentication in "local" vs. "remote"
terminology.

Ejovi Nuwere
23/10/03, 19:00
Steve,

To summarize a vurnerability in one line is always difficult, more so
when you are writting in a language other then your native tongue. Your
ideas might help eleviate some of those troubles but not the core, in
addition to language issues, most security researchers are simply poor
writers. All of the complexities you detailed are very real, that is why
there needs to be a simplified terminology.

While Local and Remote alone are clearly not enough, Local, Remote,
Remote Level 1, Remote Beta and Remote Delta will not help either.

The idea of Local, Remote, and Remote Authenticated sounds nice and I
would love to see more researchers adhere to this phrasing or something
similar to the risk catagories vurnerability scanners use. Low, Medium
and High, three classifications, then let the end user sort them out.

Now only if we knew someone at MITRE that could make this happen...

ejovi

> So, to echo Florian's comments, "local" and "remote" is not sufficient
> in fully evaluating the severity of a vulnerability in a particular
> environment.
>
> - Steve
>
> P.S. Credits to Adam Shostack and Scott Blake for initially educating
> me about the role of authentication in "local" vs. "remote"
> terminology.
>

Eric Knight
23/10/03, 20:30
Dear Mr. Christey (and Community):

This problem was addressed on Bugtraq almost 4 years ago in quite a bit of
detail, lets recap however:

> The basic problem is that the terms "local" and "remote" are
> insufficient to identify the nature of the path (and required access)
> through which a vulnerability may be exploited. It's also important
> to include the amount of "authentication" required, the configurations
> under which the issue exists, whether the attack requires any
> involvement by the user, and the set of entities that can launch an
> attack (one system, many systems, trusted systems, same physical wire,
> anybody who can send a packet, one user, many users, trusted users,
> etc.), and so on.

> For the CVE description style, we have "local" (user is authenticated
> to system), "remote" (non-authenticated attacker across the network),
> "remote authenticated" (traffic goes across the network, but
> authentication is involved), and "physical access." Older CVE's
> sometimes used "local" to refer to "remote authenticated," but we've
> been better about making the distinction in the past couple years.

Remote Authenticated
Remote Unauthenticated
Local Authenticated
Local Unauthenticated.

This is the beginning of the taxnomy matrix. Years ago I released a
publication to BugTraq to expand (significantly) the concept of computer
vulnerabilities, the publication has been remarkably successful (well over
100,000 downloads) and is still available either through my web link at
http://www.swordsoft.com/publications.htm or by search engine, I know its
been hosted at a number of different locations.

I'll just recap a little more:

The "underlying nature" to all Vulnerabilities is a question of "Human
Interaction" and "Time Required". In essence, you'll see this behavior
everywhere in the security industry and they are the foundation of the
execution of vulnerabilities in the "real world". Remember, computers have
a totally different perception of what's "fast" and "slow" or even what the
result of an attack is. The result of any vulnerability depends on the
attacker -- so YES, Social Engineering, Policy Oversight, and even Security
through Obscurity (or Security with Inherent Weakness as I like to describe
it) are all vulnerabilities. They are obvious in their arrangement in
conjunction with everyone's favorite "Logic Errors" that allow fast access
with limited or no human interaction. The blurred boarders are just -part-
of the conceptualization process.

The other factors (the next level of details of the vulnerability):

Fault -- Why the problem exists (as documented by Aslam, Krsul, and
Spafford) in their pioneering efforts, revised a little in my publication.

Consequence -- the coding and actions required from the point of execution
of the vulnerability to achieve the most desirable result (E.g., if the bug
allows full interactive Administrator access, how?)

Tactic -- How the attack is executed, which is either Physical Access, Local
(Internal Access), Client to Server, Server to Client, or
Man-In-the-Middle -- or in many cases, a combination of these.

Severity -- My preferred definition is "Administrator, Read Restricted,
Local User Access, Spoofing, Non-Detectability, and Denial-of-Service".

Authentication Required -- Does the attacker need to have a successful
authentication to execute the attack.

Consequence confuses people, its just a simple step-by-step logic flow. If
you get the password file, you try to crack it, extract user names, and any
other useful information, to move toward the next cause. So when you see
"Potential Administrator Access", they usually mean the vulnerability has a
path toward getting the higher access level.

The rest of the details -- platform, medium, application, filenames,
versions, etc. also need to be documented (I did so rigorously with the
2,500 or so vulnerabilities I had to collect into a database in the past) I
wrote my database for software automation, so I couldn't leave the details
to chance.

There are plenty of examples in the "Computer Vulnerabilities" publication,
I provided examples for everything that I was able to. I suggest that if
you are proposing a new industry standard taxonomy, you should begin there.

Take care,

Eric Knight
Friendly Neighborhood <broke and poor> Security Researcher

Florian Weimer
23/10/03, 20:45
Ejovi Nuwere wrote:

> To summarize a vurnerability in one line is always difficult, more so
> when you are writting in a language other then your native tongue. Your
> ideas might help eleviate some of those troubles but not the core, in
> addition to language issues, most security researchers are simply poor
> writers. All of the complexities you detailed are very real, that is why
> there needs to be a simplified terminology.

In this case, I'd assume it's the responsiblity of the vendors to hire
people who improve the quality of security advisories.

> While Local and Remote alone are clearly not enough, Local, Remote,
> Remote Level 1, Remote Beta and Remote Delta will not help either.

You need not restrict yourself to these signal words. While it's common
to write just three lines about a vulnerability, nobody (well, except
your legal department) forces you to be so terse.

> The idea of Local, Remote, and Remote Authenticated sounds nice and I
> would love to see more researchers adhere to this phrasing or something
> similar to the risk catagories vurnerability scanners use. Low, Medium
> and High, three classifications, then let the end user sort them out.

Risk assessment is something that has to be done locally because it is
greatly affected by local implementation decisions and the threats you
face.

Frank Knobbe
25/01/05, 19:55
--=-MVsP/XYlesw3u79zRFZz
Content-Type: text/plain
Content-Transfer-Encoding: quoted-printable

On Thu, 2003-10-23 at 11:42 -0600, Eric Knight wrote:
> Remote Authenticated
> Remote Unauthenticated
> Local Authenticated
> Local Unauthenticated.
>=20
> This is the beginning of the taxnomy matrix. =20


Greetings!

I'm currently catching up with emails and came across this (slightly
aged) thread. The matrix above categorizes on the "locality" of the
attack executor (being remote, exploiting a buffer overflow through the
network, or local, exploiting a suid vulnerability). It also categorizes
on the "condition of the executor" itself (anonymous/unauthenticated or
credentialed/authenticated).

However, I think there is another factor to consider when classifying
vulnerabilities -- that of the "timeliness" of the attack. I believe the
matrix should be enhanced to include:

Immediate: An attack performed will have an immediate impact on the
target. An example is the remote buffer overflow.

Delayed: An attack is initiated now, but executed later. Examples
include most email-borne viruses, trojans, malware, etc.

Including the timeliness of the attack is important, especially when
considering the adverse effects on surrounding infrastructure. An email
virus doesn't spread quite as fast as a worm like SQL slammer.


Given these three criteria, we could classify as follows:

Timeliness / User Level / Locality

Daemon buffer overflow: Immediate anonymous remote
Setuid exploitation: Immediate anonymous local
Emailing a setuid exploit[1]: Delayed anonymous local
Emailing a rm -rf / script[1]: Delayed authenticated local
Backdoor script on web page: Delayed authenticated local
Emailing overflow to virus gateway: Delayed anonymous remote


[1] The emailed setuid exploit script will elevate privileges by itself
while the rm -rf / requires privileges in order to be effective. This
point is probably debatable :)=20


I apologies for bringing this topic up again, but I think it is
important that we find consensus on these classifications.
So I respectfully submit: Immediate/delayed

Regards,
Frank


--=-MVsP/XYlesw3u79zRFZz
Content-Type: application/pgp-signature; name=signature.asc
Content-Description: This is a digitally signed message part

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.0 (FreeBSD)

iD8DBQBB8+NIwBQKb2zelzoRAnqmAKDytJSeEUkElMgrlnyFnY a9MVISpgCgj3UX
OTO/DaaToWK9ZsTWJcKDMkM=
=Ud8U
-----END PGP SIGNATURE-----

--=-MVsP/XYlesw3u79zRFZz--