Why Free?

J

JT

JT wrote:
<snip>

Vast Majority? On OS flaws? I don't really see that. I'd say, recently
less than 20, not including the variants, of course (.a, .b, .c, etc).
What number do you have in mind?

Name one recent virus that didn't exploit an OS flaw? If you see less than
20 that do, then naming a few that don't use an flaw as part of the
propagation or replication phase should be a piece of cake.
The complexity of the problem when the software is not so easily

Well, you and I will have to disagree, I guess. I think if we were
talking about *firewalls*, I would be more inclined to say you and I are
on the same page.

If an OS didn't leave ports open at random, and applied permissions to
network ports like it does to files and memory protection, then firewalls
would be unnecessary. Ever wonder why all current firewalls are software
based? Even the highend Ciscos are custom software on top of a special
purpose hardened OS. The current need for Firewalls in Windows exists
largely because the security model and network layer of Windows is too
weak to perform that function without outside assistance.
While I disagree with your estimate of the percentage of malware that
would disappear with a more secure OS, thus eliminating the need for AV,
I do agree you could kill the market for AV if you eliminated 99% of
those who have access to computers <bg>. Malware is really a people
problem; people write it, people let it have access to their systems and
people have have to deal with it. The most secure OS you can come up
with is going to have someone administering it and someone using it.
That's sort of where things tend to break-down.

Malware is indeed a people problem, both on the producer side, and the
victim side. Some virus hoaxes have been as bad as virus' in the results.
No OS can prevent a user from making errors or doing the wrong, stupid
things. A properly designed OS with good security and few flaws, like
antilock brakes, seat belts, airbags and a good frame/passenger compartment
design on cars, can make a wreck much less likely to cause major harm to
the user.
 
K

Kelsey Bjarnason

[snips]

Virus are just programs that someone has written.

No, they're more than that. They are programs that rely on security
holes in the OS that allow them to propagate and do damage. They are an
indication that the OS is, from a security standpoint, swiss cheese.
I suppose if someone
opens a dos prompt and types without the quotes "format c: /u" that
Microsoft should have to pay to replace the data?

Actually, yes, frankly - depending on the circumstances. I'll give you
an example. My Linux box, when I set it up, asked me for an
administrator password. It also asked for a user account and password
for general use... along with a recommendation that you really, really
want to do this. When it comes time to log in, there's this nifty
little GUI thing that lets you select which user to log in as... and it
does *not* include the root account. Should you manage to log in as
root anyhow, when the GUI fires up, the background goes red and, IIRC,
there's even a message that pops up saying, in effect, "This is really,
really dangerous. Don't do it."

Now, if I ignore all of that and manage to format my drive, one of two
things can be concluded: either I'm really, truly, exceptionally stupid,
or I actually want to format the drive.

Compare that to Windows. XP for example. It does go out of its way to
ensure you create a proper (non-admin) user account, right? Nope. It
does go out of its way to ensure that you're not running as admin, so
you can't accidentally screw things up, right? Nope. It pops up
messages when you log in as admin saying "this is really dangerous", or,
at the very least, gives some sort of visual indication of the danger,
such as the desktop going red, right? Nope.

Ah. So there's *absolutely zero* reason for the inexperienced or non-
computer-literate user to ever question the effects of running in the
user context they're running in, is there? Nope, not a one. Not a
shred of a hint of a reason. Now, should the user - perhaps because of
a prank e-mail, say - actually try that format, what happens? Actually,
probably not a hell of a lot; I don't think you can format the drive the
system is on, at least. But there are 97 other kinds of mischief one
can do - deltree, del *.*, and so on, which will work - and which
*wouldn't* work, at least for the system files, etc, if the user weren't
merrily pretending he was God and being blissfully unaware of the risks
of this.

I guess to a certain
extent you could call just about all virus/worm/malware an abuse of a
functionality,

No, abuse of non-functionality. The non-functional security model, to
be specific.
like what Microsoft said about my newsbug code which when the
web page is opened or if used as stationary in OE (with certain security)
starts creating bunches of bogus news groups in OE until OE crashes and then
the user has to manually delete each and every account.

Feel free to send me this "newsbug code"; I'll open it up in, say, KNode
in Linux and we'll see how much damage is done. Feel free to send *any*
code you can think of - viruses, trojans, HTML posts with embedded
javascript, whatever - and I'll merrily open the lot. You know what
happens? Not a thing. Why? Because nobody else in the universe seems
to suffer the sheer scope of unbelievable prowess Microsoft brings to
the table when it comes to making software fragile, unsafe and
unreliable. They are the gods of risk; no other software can come close
top the sheer danger factor theirs offers.
 
K

kurt wismer

JT wrote:
[snip]
The reality is that most virus DO exist because of flaws in MS code or MS
lack of security in the OS model. Without the ActiveX flaws, 99% of all
virus would not exist.

i don't know what you've been smoking but it's not been doing you any
good... viruses predate activex, and relatively few viruses make use of
activex... there are tens of thousands of viruses that operate under
*dos* - how on earth can they be dependent on activex flaws?

viruses do not owe their existence to flaws or security holes, they are
a consequence of the flexibility afforded us by general purpose
computers (read: the potential for viruses is inherent in all general
purpose computing platforms regardless of operating system and
obviously regardless of programming flaws and security holes)... at
best, viruses owe their feature-richness to flaws and security holes
and nothing more...
 
J

JT

There are more ways for a virus to get on your system than using a browser
or mail program, which is what you are talking about. How about purchasing
commercial software at a store?
I bought 2 digital photo CD's that had the diehard virus on them.
Here are some other examples that don't rely on a software exploit to get on
your system, just you installing a program you normally would not even think
about having a virus:
http://www.sophos.com/virusinfo/articles/dreamcast.html
http://www.techweb.com/wire/story/TWB19980827S0011
http://gamesdomain.yahoo.com/pc/warner_bros_the_powerpuff_girls_meet_the_beatalls

A proper security and system integrity model will help here even. On the 2
CDs with the CIH variants, the BIOS can be protected by an OS that prevents
direct access to the hardware by user programs. Proper motherboard setup,
which write protects the BIOS, helps here as well. Proper limiting of
writing to executables will prevent the spread.

Diehard exploited the weak memory protection to infect the system, and gain
control of IRQs and system resources. It used the lack of protection on
direct disk access to do the infecting. OS security model would prevent
spreading.

Funlove needed weak file protection of .exe files to functiton. An OS that
protected executable files properly would not have a problem with funlove.

The infection of these disks is also an indicater that good OS security
models need to be the norm, rather than the exception they are today.

In each one of those cases, the virus has to exploit a weakness of the OS
and/or its security model to spread once it is on a machine. They would be
just another file if they couldn't use those weaknesses.


JT
 
K

kurt wismer

JT wrote:
[snip]
Virus have always depended on the vulnerabilities of the software and the
security of the systems they are attacking with very few exceptions.

an assertion for which you have no support...
Go to
any virus database or security advisory.

i've been to many, what i've seen does not support your contention...
They are exploiting a weakness.

some do, but few depend on it for their ability to spread...
If not activex, then unchecked buffers or insecure automation features.

grasping at straws...
Started that way in the early MSDOS and AppleII days when virus were young.
The exploits that have happened recently against other OS such as Linux and
Apples OS/X have been exploits of software or security configuration
errors.

the only thing viruses depend on is the ability it write executable or
interpretable code to disk...
As an exercise, find a Virus or worm (not a phishing/human
engineering exploit that tricks a user into running a program that erases
his hard disk thinking it was a free game) that does not exploit such a
weakness in all the online virus information. Just get me a couple out of
the thousands that are out there. Something recent would be nice, but I am
not picky

stoned.empire.monkey (or rather, most boot infectors)... cascade (or
rather, most file infectors)...
 
J

JT

JT wrote:
[snip]
Virus have always depended on the vulnerabilities of the software and the
security of the systems they are attacking with very few exceptions.

an assertion for which you have no support...
Go to
any virus database or security advisory.

i've been to many, what i've seen does not support your contention...
They are exploiting a weakness.

some do, but few depend on it for their ability to spread...
If not activex, then unchecked buffers or insecure automation features.

grasping at straws...
Started that way in the early MSDOS and AppleII days when virus were young.
The exploits that have happened recently against other OS such as Linux and
Apples OS/X have been exploits of software or security configuration
errors.

the only thing viruses depend on is the ability it write executable or
interpretable code to disk...

That is a weakness of the security model. It should not be easy for just
any program to write an executable. It doesn't need to be that way. It is a
design flaw.
stoned.empire.monkey (or rather, most boot infectors)... cascade (or
rather, most file infectors)...

Weakness in that the OS lets code directly talk to hardware. Shouldn't do
that except is special cases. OS should not let executable files be
written to that easily either. It is a flaw in the design concept there.

In Linux (and most Unix like OS's such as Apples OS/X) executable files
are not kept in the users home directory with a few exceptions. All system
executables, and most regular application executables are in directorys
where the average user can't write. The disk is also protected from direct
disk writes by all but a few privileged programs. The virus's you mentioned
exploit flaws in the DESIGN of most MS operating systems. Ones that are
not there in other OS's.
 
F

FromTheRafters

JT said:
Trojans are programs that are disguised as something else.

Good enough I suppose.
Don't have to replicate themself, although trojans are often virus.

Yep, I'm agreeable.
Backdoors don't even have to be a separate program.

Absolutely, backdoors (or trapdoors) allow access in some
way not usually obvious to the end user. It could be a "flaw"
in the coding itself (exploitable buffer) or an intentional easter
egg function left in by a programmer.
They are a way to bypass normal security restrictions.

True, but I haven't heard too many people refer to backdoors
(or trapdoors) this correctly for some time. Today, they usually
mean some sort of remote access or remote administration tool's
server software.
Could be a hidden password such as is coded into many BIOS,
and was left in some systems for "maintenance" access.

I suppose so, since it circumvents the security (such as it is) at that
level. You might also consider a certain assembler routine designed
to set the CMOS back to default (and clear the password) to be a
trapdoor or backdoor into the system.
Some virus install backdoors.

....and some worms use preexisting yet newly discovered backdoors
to gain resources.
The virus part of the program used a weakness to infect and
replicate itself.

While this may be true in some cases, it is not *always* true. The
virus part of the program used available legitimate resources and
functions offered by the environment to replicate - it may have also
used software flaws to escalate privilege, but it can be a successful
virus without the need for software flaws.

[snip]
 
F

FromTheRafters

JT said:
A proper security model doesn't let a program access outside of a limited
set of areas. A proper security model may no keep the virus from being part
of another program, but can make difficult, if not eliminate the
replication part of the process.

....which is far from adequate considering that the virus' payload
might activate. The operation was a complete success. :blush:D

....but the patient died. :blush:(
Most people are so accustomed the wide
open model of windows, that concepts like executables needing to be in
certain places to run, files execution being determined by security
permissions instead of just names, etc. are overlooked.

A virus can find itself in the proper place and with the proper
permissions set as easily as any legitimate program precisely
*because* it is an otherwise legitimate program that the user
wants to execute. It will execute with the permissions set of the
user executing it - or worse if it uses some flaw to escalate. A
sufficiently crippled machine won't be able to provide a virus
with a chance to replicate - but how many sufficiently crippled
machines are there.
Access control
lists, etc. are just becoming available for the masses.
[snip]

Your last sentences contradicts, not supports your initial point. Just
what is your point?

The post I replied to said

Viruses don't depend on software flaws. Even if MS's code
were flawless - viruses could still exist and create a desire
for anti-virus measures.


My point is that the vast majority of virus DO in fact depend on software
flaws.

Could you explain? Are you using the term "virus" to include all
self-replicating malware? If so, this is yet another reason to draw
a distinction between the two terms "worm" and "virus". A "virus"
is not something that depends on a flaw in software - it depends
on the same things that the user depends on to get work done.
If you remove access to the methods it uses, you no longer have
a useful machine for the user either.
Not true. Useful machines with proper security models have been available
for years. They are still doing useful work. A word processor doesn't need
to create executable files. Games don't need to write to files not part of
the game or in the game directory tree.

Oh, I thought we were talking about general purpose computers.
Nevermind then - I agree that special purpose computers can be
utterly secure.
A general purpose computer means a machine that can be programed for
virtualy unlimited purposes. That doesn't mean that every program on the
machine should have unlimited access to that capability.

True, but it only takes one with enough access to do the deed, and
then the rest of the world desires to be able to detect it before it runs
- and AV is not driven to extinction.

I agree that stronger security models exist, and that they make
it much more difficult for viruses, but viruses can exist without
using software flaws.
Most programs
should be limited in what they can access and the functions they perform.
Having system files read only or execute only doesn't reduce their
usability. Memory protection, which limits the memory a program can use, is
necessary for multiprogramming systems. Making parts of the file system off
limits to average programs does not reduce the ability of a machine to be
useful. Limiting the capability of generating an executable to a very
limited set of programs and circumstances doesn't limit the ability of user
to run programs.

Yes, that all makes sense. However, not all viruses need to infect
or create executables either I think.

Anyway, I think you are mostly right about the better security models
making things nearly impossible (in a perfect world), but "nearly" isn't
enough to say that AV would no longer be desired. A "perfect" model
would probably require that the virus use a flaw in software - and there
goes the "perfect" security model out the window. I'm sure that users
will supply all the flaws in security that the software doesn't.
 
K

kurt wismer

JT said:
A general purpose computer means a machine that can be programed for
virtualy unlimited purposes. That doesn't mean that every program on the
machine should have unlimited access to that capability.

no, but it does mean that if the virus is acting in the context of a
user who has that capability it should...
Most programs
should be limited in what they can access and the functions they perform.

most security treats programs as agents of a user or principle and so
those limits are based on the limits of what that user can do...

if we decide to additionally treat the programs themselves as
principles then there will still be some programs that have the
authority required by a virus to do it's dirty deed... and we'll have
increased the complexity of maintaining the security of the system
tremendously since each and every program will need to be assigned the
kinds of permissions we would normally only have to worry about for
users...
Having system files read only or execute only doesn't reduce their
usability. Memory protection, which limits the memory a program can use, is
necessary for multiprogramming systems. Making parts of the file system off
limits to average programs does not reduce the ability of a machine to be
useful. Limiting the capability of generating an executable to a very
limited set of programs and circumstances doesn't limit the ability of user
to run programs.

so are you saying that there should be a crack-down "ren xzy.dat xyz.exe"?

and what about file types that are outside the system's preconceived
notions of what an executable is but are no less executable in some
manner (say interpreted scripts, for example)?...
 
K

kurt wismer

Kelsey said:
Really. So why is it that when I run Linux, I don't worry about
viruses?

there are a number of possibilities - maybe you understand that using a
niche market OS makes you a less palatable target to virus writers - or
maybe you're just one of those morons who thinks *nix is immune...
Let's compare something as simple as an e-mail. The default
Windows tool _automatically executes code_ in the email. Behind the
scenes. Without so much as asking. Or warning. Or telling you how
mind-numbingly stupid it is to do this.

microsoft's operating system was the major target long before windows
existed...
[snip]
So, right there, we've got one boneheaded design.

can you read? just because there are flaws doesn't mean that disprove
the assertion that their absence would translate into an absence of
viruses... your microsoft bashing, accurate though it may be, is a red
herring here...

[snip]
Know what happens when someone sends me an executable attachment in
Linux? I save it, I double click it and... hmm; there it is, loaded up
in my text editor. Why? Because the default action for unknown file
types is to run the editor... and since the file, despite being a .out
or a .bin or a .sh or whatever, *is not an executable* - the execute bit
has not been set locally.

well, apparently you haven't been paying attention to the virus news...
there are currently worms doing the rounds that do not auto-execute,
they are in fact in password protected zip files that the user has to
go to some lengths (reading the password from an image file also
attached to the message in some cases) to extract and then execute the
worm...

you think you're safe in linux because of linux but you're wrong -
you're safe because of *you*... because you're not dumb enough to do
some very dumb things... linux, however, is not immune to dumb users...

[snip huge rant about things that do not relate to viruses]
So no, if Microsoft wrote "flawless code", these problems simply would
not exist, or at least, not in the form they do now. Linux, for
example, has had a few viruses. Despite the relative ease of finding
Linux machines to attack, though, they never get very far. Why?

because linux machines are not nearly as numerous in comparison to
windows boxes... because the *nix user base hasn't reached the critical
mass necessary to sustain naturally occurring infections...
 
K

kurt wismer

JT said:
JT wrote: [snip]
Started that way in the early MSDOS and AppleII days when virus were young.
The exploits that have happened recently against other OS such as Linux and
Apples OS/X have been exploits of software or security configuration
errors.

the only thing viruses depend on is the ability it write executable or
interpretable code to disk...


That is a weakness of the security model. It should not be easy for just
any program to write an executable. It doesn't need to be that way. It is a
design flaw.

that is inherent in general purpose computing...
Weakness in that the OS lets code directly talk to hardware.

i'm guessing you don't really understand viruses here... boot infectors
execute before the operating system has even has a chance to load...
the operating system can't do bugger all about viruses like
stoned.empire.monkey...
Shouldn't do
that except is special cases. OS should not let executable files be
written to that easily either. It is a flaw in the design concept there.

that easily? the same thing is possible in any OS...
In Linux (and most Unix like OS's such as Apples OS/X) executable files
are not kept in the users home directory with a few exceptions.

the standard system executables aren't, but there are plenty of
executables that aren't standard system executables...
All system
executables, and most regular application executables are in directorys
where the average user can't write.

that depends entirely on who installed the application...

and it totally ignores the possibility of script viruses...
The disk is also protected from direct
disk writes by all but a few privileged programs.

only while the OS is running...
The virus's you mentioned
exploit flaws in the DESIGN of most MS operating systems. Ones that are
not there in other OS's.

then why can stoned.empire.monkey (and most other boot infectors)
infect linux boxes?
 
K

kurt wismer

Kelsey said:
[snips]

Virus are just programs that someone has written.


No, they're more than that. They are programs that rely on security
holes in the OS that allow them to propagate and do damage.

false... please refer to the mountains of academic work on the nature
of computer viruses... i suggest starting at the beginning, with fred
cohen's work... (in part because his initial virus experiments were on
a 'properly' administrated *nix system)
They are an
indication that the OS is, from a security standpoint, swiss cheese.

cum hoc ergo propter hoc - you're mistaking correlation for
causation... it's a logical fallacy...
 
K

kurt wismer

BoB wrote:
[snip]
From that additional info it is obvious you should experience no
real problems in the virus arena. Same here, I'm enjoying Firebird
and looking forward to Firefox when it becomes relatively bug free.

firefox is just the new name for what used to be firebird...
theoretically all versions of firefox should be better than firebird...
 
F

FromTheRafters

Kelsey Bjarnason said:
Really. So why is it that when I run Linux, I don't worry about
viruses?

Because you don't know any better? ;o)

(Just kidding about that, I suspect that you know they are
not non-existant for Linux)

Maybe because there are less of them about, and you like the
odds?

All I am saying is that it is not impossible. It would have to be
impossible *everywhere* for a virus to replicate, in order to
reduce them to the status of (non-replicating) trojan horse
and eliminate the desire for AV scanners.
Let's compare something as simple as an e-mail. The default
Windows tool _automatically executes code_ in the email.

That was intended to be a "user friendly" feature imo. It is not
a flaw in code, but may well be an error in judgement in the
design of the client. I saw that a Linux e-mail client is available
with this nice "preview pane" feature too, but I don't know if
its default is to render HTML or not ~ but you can imagine
that some will have it set that way if it is possible.

That incorrect MIME type exploit was a flaw in design, but
was not the sort of thing that a virus needs to exist.

[snip]
Well, fine, okay... as long as that code is well and truly sandboxed off
from the rest of the system, that's okay. It is, right? Umm... I'm not
aware of any assurances of that.

I'm not going to defend Microsoft. I am only defending my
statement that viruses don't depend on software flaws.
So, right there, we've got one boneheaded design. Here's another. I'll
send you a file, it shows up as "file.jpg". The mail says "look at the
pretty picture". If you've been on the web any length of time, you
probably realize a .jpg is an image file - should be safe, right?

Assuming that a file is safe because of its name is ludicrous.
"Don't judge a book by its cover" they say. This is neither
a software code flaw or a design flaw - it is a human flaw.
Wrong. First, it's not file.jpg, it's file.jpg.exe - but MS, in their
infinite stupidity, chose to hide file extensions.

Yeah, that seems pretty stupid, but it is still just a filename.
Well, hell, that's
okay, not like it matters. See, as long as they don't compound their
stupidity by doing anything so unbelievably risky as executing code
simply because its filename says to execute it, that wouldn't matter.

....or because its filename's extension (or lack of) wasn't registered.

[snip continued listing of Microsofts security shortcomings]
Now note... not *one single item* of this entire list applies to Linux.
Or Unix. Or the various BSDs. Or VMS. Or... well, you get the point.
The virus, attacking such systems, has *none* of these points of entry,

A viruses "point of entry" is its being invited in by the user, and
executed. None of that list (a good list I might add) affects that.
Sure, Windows (default) is unsafe...no argument, but the usefulness
of AV software would still exist even if "flaws" ceased to exist.

[snip]
So no, if Microsoft wrote "flawless code", these problems simply would
not exist, or at least, not in the form they do now.

Those problems (mostly) don't apply to viruses. Sure, if you
execute a virus and present it with nowhere to place a replicant
it can't infect anything - but you have executed hostile code
already by that time - and so an AV would still be desired. If
*everyone* ran a tight ship, we wouldn't have this problem
even with Windows' faults.

[snip]
Oh, and fourth, because on those systems, serious security risks are
almost invariably fixed within hours, or at most days, of becoming
known. MS has been known to let *critical* vulnerabilities exist for 90
days and more after being identified. Not a good record for a company
that supposedly cares about security.

True, but beside the point.
Nope, any way you slice it, the entire mess that is today's internet,
with all the viruses, worms, spam zombies, trojans and the like, is
*directly* and *totally* a result of Microsoft's either not caring about
security, or being incompetent to actually provide security. Or both.

I agree with all except the "totally" part. I would even agree with
almost totally.

[snip]
 
K

kurt wismer

kurt said:
can you read? just because there are flaws doesn't mean that disprove
the assertion that their absence would translate into an absence of
viruses...

grrr... their absence *wouldn't* translate into an absence of viruses...
 
F

FromTheRafters

kurt wismer said:
the only thing viruses depend on is the ability it write executable or
interpretable code to disk...

....or where it could otherwise be executed as part of another
program.
 
J

JT

no, but it does mean that if the virus is acting in the context of a
user who has that capability it should...

Even there it can be restricted by program as much as by user.
most security treats programs as agents of a user or principle and so
those limits are based on the limits of what that user can do...

if we decide to additionally treat the programs themselves as
principles then there will still be some programs that have the
authority required by a virus to do it's dirty deed... and we'll have
increased the complexity of maintaining the security of the system
tremendously since each and every program will need to be assigned the
kinds of permissions we would normally only have to worry about for
users...

the "user" in many security models is not assumed to be a human. Take the
user running a webserver or mail server on a Unix like machine.
so are you saying that there should be a crack-down "ren xzy.dat xyz.exe"?

I am saying that the extension alone should not be enough to make a program
executable. One way to do that is by having a separate execute permission,
as well as read, write, etc. as you have in Linux. Copy it all you want.
rename it to anything you want. If it wasn't executable before, it won't be
because of the act of renaming it. As an added precaution, you can set
permissions on a directory such that no file in the directory can be
executed. You can extend the concepts by adding different attribute types.
and what about file types that are outside the system's preconceived
notions of what an executable is but are no less executable in some
manner (say interpreted scripts, for example)?...

Look at different OS's that have been developed. Forget extensions for a
second. For a step in the right direction, but not a full solution, look at
how Linux treats interpreted scripting languages like perl. A script
language that part of an office package should be limited in what it can
access and change in the system, just like the rest of the office package
software. Using a part of the file name (like the extension) to determine
if a file is executable was replaced on many OS's years ago. Look at Unix,
VMS, Apples OS's, etc.. In most of them, the extension is there to help
the human recognize the file, and to aid exchange of files with other OS's.
Critical attributes, such as whether the program is executable is protected
from simple program or human error or malace. Gross human error, or major
malace is probably not possible to protect against.

JT
 
J

JT

JT said:
JT wrote: [snip]
Started that way in the early MSDOS and AppleII days when virus were young.
The exploits that have happened recently against other OS such as Linux and
Apples OS/X have been exploits of software or security configuration
errors.

the only thing viruses depend on is the ability it write executable or
interpretable code to disk...


That is a weakness of the security model. It should not be easy for just
any program to write an executable. It doesn't need to be that way. It is a
design flaw.

that is inherent in general purpose computing...

General purpose computing platforms exist without that requirement. It is
common in the most popular one on the market right now, but it is not a
universal requirement.
i'm guessing you don't really understand viruses here... boot infectors
execute before the operating system has even has a chance to load...
the operating system can't do bugger all about viruses like
stoned.empire.monkey...

Boot infectors on modern machines/os's infect the boot record because of a
weakness in the os that let them infect the bootsector in the first place.
In very early days of home computers, when you had to boot off of floppy
disks, then an infected disk could boot up and hide a program in memory.
Bios protection against boot infectors has been out there for about 12
years. Turning off floppy boot also eliminates that threat. Much of stoned
and its siblings success depended on propogation through an OS with
inadequate design in the first place. Kids ran an infected program off of a
disk they shared with friends. Used to clean up a lot of machines infected
with them.
that easily? the same thing is possible in any OS...

Writing to a file and giving it some name with special qualities, like the
extension in MS os's is not enough to make a program executable in many
OS's. In Unix or Linux, for example, a program isn't an executable unless a
special permission bit is set, no matter what the name is. Other OS's do it
with extended attributes that are, again, not part of the name and easily
set by just righting a file and giving it a magic name ;)
the standard system executables aren't, but there are plenty of
executables that aren't standard system executables...
By default, the current directory and the users home directory are not in
the execution path. In a properly configured Unix or Linux system, for
example, program files are separate from data files, and write permission
is turned off to the program areas. Even if you execute a program in your
current directory by typing ./program or execute a script file by typing
sh test the program will still be limited in where it can write and the
damage it can do.
that depends entirely on who installed the application...

On a non-windows system like linux, it normally depends on the installer
used. It takes special efforts to install a Linux app where the average
user can write.
and it totally ignores the possibility of script viruses...

Actually, no it doesn't. A script program in linux is no different than any
other program in that it needs to go through the permissions process. If
it is going to be a straight executable, such as a batch file in MSDOS
would be, it needs to have the execute bit set. Huge amounts of bash and
perl scripts do this. If it is interpreted by something like perl or python
or open office, it still is limited by the permissions of the user account,
so it is still limited. Just putting a perl script file in a directory and
naming it something like myprogram.pl doesn't make it "executable".
only while the OS is running...

Virus replication still requires the os to replicate. There are ways for an
OS to do internal integrity checks to reduce the odds of a pre startup
program running. You could make a case for boot sector virus making use
of a legacy flaw in the bios, and proper BIOS setup can pretty much
eliminate that as a threat. There is a reason there are so few boot sector
virus still propagating in the wild.
then why can stoned.empire.monkey (and most other boot infectors)
infect linux boxes?

If you boot up off of a floppy (or cdrom) that is infected, and your bios
doesn't block it, then a stoned virus could infect a linux box. it might
crash or at least interfere with the boot process. It wouldn't propagate.
Without the flaws in MS OS, they can't propogate. Stoned, and similar virus
require the MS os's to spread.

JT
 
K

Kelsey Bjarnason

[snips]

there are a number of possibilities - maybe you understand that using a
niche market OS makes you a less palatable target to virus writers - or
maybe you're just one of those morons who thinks *nix is immune...

Or maybe I understand *why* viruses propagate. Hint: it requires a
brain-dead security model. Such as that in Windows.
can you read? just because there are flaws doesn't mean that disprove
the assertion that their absence would translate into an absence of
viruses... your microsoft bashing, accurate though it may be, is a red
herring here...

No, it's not.

If a piece of code cannot be executed _at all_ unless manual steps are
taken by the user of the machine, then a virus *dies* almost instantly;
by definition, a virus has to execute in order to do its thing.

In Windows-land, this is often accomplished by trickery: pretending to
be an image, for example. That sort of thing simply _does not work_ in
other OSen. If the file _is_ an image, it will display. If not, it
will simply be treated harmlessly, such as loading it in a text editor.
Neither of these actions results in anything useful from the virus's
point of view. It requires the "everything is executable" or some
equivalent which renders the process of getting executed equally simple
in order to act.
well, apparently you haven't been paying attention to the virus news...

Actually, I have. Virus after virus, worm after worm... and virtually
all for Windows machines. Not BSD boxes or Linux boxes or Macs. Hell,
IIS has been attacked repeatedly and done extensive damage despite being
*less* popular than Apache for internet web serving. Not that Apache
hasn't had its share of attacks; it has... they just die out quickly.
you think you're safe in linux because of linux but you're wrong -
you're safe because of *you*

That's partly true. However, the fact is I simply do not *need* to
worry that simply reading an email might be enough to infect my machine.
I don't *need* to worry that browsing a web page may infect my machine.
Such things are virtually impossible to do in *nix, BSD, etc... yet are
comparatively trivial to do in Windows. It's not the user base, either.
The smartest Windows user, replete with AV tools and the like, is still
at moderately high risk - all that needs happen is a new strain come out
before his AV software is updated to protect the machine and voila;
instant infection. On the other hand, as noted, *nix users as a rule
don't even *use* AV software... because there's absolutely no need to.
The security model used by *nix makes viruses so helllishly difficult to
design that it simply is not a real threat.
because linux machines are not nearly as numerous in comparison to
windows boxes... because the *nix user base hasn't reached the critical
mass necessary to sustain naturally occurring infections...

This kind of twaddle is exactly what's wrong with the whole Windows user
mindset. Apache is *more* popular than IIS... yet it's IIS, not Apache,
that has caused endless damage. Based on the popularity argument, the
opposite should be true. Yet it's not. Poof goes that little bit of
tripe.
 
K

Kelsey Bjarnason

[snips]

Because you don't know any better? ;o)

(Just kidding about that, I suspect that you know they are
not non-existant for Linux)

Maybe because there are less of them about, and you like the
odds?

No, that's not it. Let's try a simple experiment. We'll post two files
on a web site somewhere: virus.exe, a windows "virus", and virus, a
linux "virus". Both are intended to be executed on the "victim"
machine, though, for testing purposes, a simple display of "Haha, I
ran!" would suffice, rather than actual virus code.

Now, how do we get this on to the victim machine and get it executed?

The first is to simply put up a web page that says, oh, "Download and
run the program to clean the MyDoom virus from your machine." We can e-
mail the link, submit it to search engines, whatever. From a user
perspective, though, here's what happens:

Windows: download file. Download complete. "Do you want to open the
file?" Ummm yes. *zot* you're "infected".

Linux: download file. Download complete. "Do you want to open the
file?" Ummm yes. Oh, look, it's a text file, opened in my text editor.
Harmless. What? I want to execute it? Bugger. Okay... browse to
where I saved it and run it. Nope, opened in the text editor again.
Crap. Umm... oh, right, it's supposed to be an executable. How do I do
that? Ah, yeah, attributes... set mode +x. Now run it. *zot*.

Not much of a risk there, is there? Anyone who knows enough to be
_able_ to get the thing to run is very likely going to know enough not
to do it. So we need other means.

Maybe... maybe we can use a javascript on the web page or the e-mail to
do the trick? Certainly not in the e-mail; I've yet to see a Linux mail
client stupid enough to support active scripting. Maybe on the web
page, then? Possibly... though I've yet to hear of any instance of this
occuring.

ActiveX controls, then? Nope; they're a nifty way to infect Windows
machines... but don't work in Linux. Nor is there any equivalent I'm
aware of, except perhaps Java... which has mechanisms built right in to
prevent this sort of thing.

Well, bugger. Okay, so simply getting it to _run_ is a PITA. But what
happens after we get it to run? One of the key aspects of a virus is
replication - getting itself to spread to other systems. How's it going
to do this? Remember, it has to automatically overcome those obstacles
on the secondary target machine.

Meanwhile... the virus faces another problem in Linux-land that Windows
viruses don't face: disparate platforms. In Windows, a virus can be a
pre-packaged bit of executable code in intel x86 format - basically, a
exe file, ready to run. If one can somehow trick the system into
executing the code, that's all she wrote.

That first step is already considerably more difficult in Linux-land
than in Windows-land... but faces another problem - the system may not
be running an X86 chip. Attempting to execute x86 code on, say, a MIPS
box is likely to create some interesting results, but not very likely to
cause an infection of the machine. It will, however, call attention to
itself as being probable malicious code, to be reported to and examined
by the relevant folks - say the distro's updaters. So the virus, to be
successful, can't simply probe around the net looking for Linux boxes...
it has to look for _specific_ Linux boxes, without attempting to execute
on any incompatible ones, for fear of making itself known.

Long and short of all this is that in Linux, it is extremely difficult
to infect the machine in the first place, and, if you do manage to do
this, it's just as hard to infect the next machine without calling
attention to yourself. You're also faced with, among other things, a
whole battery of tools such as FAM and tripwire and the like, whose
purpose is to monitor files for alteration - you'll need to figure out
how to circumvent the lot of them to avoid calling attention to
yourself, if only because a virus that causes the system to start
spewing forth "File modified - possible security breach" messages is
going to get killed, not live on with users blissfully unaware of it.
All I am saying is that it is not impossible. It would have to be
impossible *everywhere* for a virus to replicate, in order to
reduce them to the status of (non-replicating) trojan horse
and eliminate the desire for AV scanners.

Of course it's *possible* to write Linux viruses; a few have been
written. Problem is, they're very short-lived and very narrowly
distributed; because it's so damnably difficult to infect _a_ Linux
machine, trying to replicate to other machines, coping with different
kernel versions, different browsers and mail clients, different security
tools, different permissions models and different chipsets is just that
much more difficult. Enough so that, despite some rather interesting
articles on how one might approach such things (see the website at
http://www.lwfug.org/~abartoli/virus-writing-HOWTO/_html/
#FTN.note.rick.rant.virus for example) they simply don't work.
That was intended to be a "user friendly" feature imo.

Executing un-trusted third-party code without so much as a warning is
"user friendly"? Sure, if the users are virus writers. To anyone else,
it is nothing more than another completely unnecessary security risk.
design of the client. I saw that a Linux e-mail client is available
with this nice "preview pane" feature too, but I don't know if
its default is to render HTML or not ~ but you can imagine
that some will have it set that way if it is possible.

KMail, when encountering an HTML mail, renders it as text - i.e. you see
the HTML code. It also adds a little note at the top to the effect that
"Look, rendering this as HTML is stupid and dangerous, but if you
really, really feel you must, click here." It also, IIRC, allows you to
define folders to automatically render the HTML in the messages in them
- useful for mailing lists who persist in sending HTML postings. One
might assume you've got a rule that moves things coming from the
listserv into that mailbox, so it's reasonably unlikely you're going to
get malicious mails in there... but it is a risk.
Assuming that a file is safe because of its name is ludicrous.

Actually, you're letting your WIndows conditioning come through here. A
file *is* safe, period, unless made to be unsafe. A .jpg file will be
loaded in the image viewer. A .html file will be loaded in the web
browser. A .jpg.exe file will be loaded in the text editor. You see,
there *is no* "executable file type" in Linux; as a result, it is
virtually impossible to have an "unsafe file" unless you, yourself, take
steps to *make* it unsafe.

It's only in Windows-land that one has to worry about the file name. To
use the "don't judge a book by its cover" notion, in Windows, the cover
*does* define the book - if the cover says it's an executable, run it.
In Linux, the cover is just a piece of paper; the contents of the file
will be _read_, not executed, unless and until the system is explicitly
told to catalog the file as an executable.

...or because its filename's extension (or lack of) wasn't registered.

Figured out how to unregister .exe files? No? Until you do, simply
tacking ".exe" onto a file instantly renders it something the system
_will_ attempt to execute when clicked.
A viruses "point of entry" is its being invited in by the user, and
executed. None of that list (a good list I might add) affects that.

Umm... no. Viruses aren't invited; they invite themselves. When I get
an e-mail from my friend sending the latest pictures of their dog,
that's what I invited. The virus that happens to be riding along with
the message is an *uninvited* parasite. And that's just the point...
even if you can figure out _how_ to get it to me (easy enough; I get
hundreds every day) you still need to figure out how to get it to
_activate_, which is the key difference. Scripting in the mail body
won't do it. Attaching it as an "executable" won't do it. You need
something else, something that will either convince me to to through the
steps of converting it to an executable, or to do so automatically. The
former is difficult, if only because those who are likely to know how to
do it are also likely to know better than to risk it, and the latter is
damnably difficult.
Sure, Windows (default) is unsafe...no argument, but the usefulness
of AV software would still exist even if "flaws" ceased to exist.

Again, how so? Tell you what. You drop any file you want on a web page,
or e-mail it to me, etc, etc, etc. I'll load the page in a Linux
browser, or read the mail in a Linux mail client. Before you do this,
though, try to figure out exactly how you're going to get the file to
execute.

Not too long ago, in one of the Linux discussion fora, someone claimed
he could use a known vulnerability to perform a local root exploit.
That is, if he could get the user to run the app locally, it would,
thanks to a flaw in the system, be able to gain root privileges.

What's nifty about this is two things. First, of the dozen or so people
who actually ran his exploit code, even *with* the proviso of not having
custom kernels, file-alteration monitoring tools, etc, etc, etc, only
one got "rooted". Note that this explicitly required, though, the
complete lack of any additional security items whatsoever, as well as a
specific kernel version, and still only managed a 1 in 12 success rate.
The second point of interest is that in order to get the exploit to
work, he had to figure out how to get the code onto the victim machine
and have it run... a problem he never solved other than to ask for
volunteers willing to risk the potential damage.

1 in 12, *despite* being hand-held to the point of having *no* security
whatsoever *and* having a specific kernel version. Even required a
specific (x86) CPU, as I recall.

Why did it fail? Simple: it relied on a known configuration - a known
toolset. Problem is, the toolsets varied. Some had this mailer, some
used that. Some had Perl scripting support, some didn't. Whatever.
Even when the target vulnerability is known, even when you have the
active and willing participation of the "victim", it *still* proves
difficult to pull off a successful exploit... and a virus doesn't have
that willing and active participation of the victim.
I agree with all except the "totally" part. I would even agree with
almost totally.

Again, totally. The simple addition of the executable attribute, a la
*nix systems, would significantly reduce virus propagation. Not running
scripts where they shouldn't run would reduce it more. Not getting
"cute" - relying on file extensions or other such things, and then
hiding them from the user - would help some more. Not enabling
unnecessary services would help more. Encouraging the use of non-admin
accounts - and ensuring that non-admin users can't muck with *anything*
but their documents and their registry settings, etc - would help still
more. Doing all of these would, I believe, reduce the virus problem to
a fraction of what it is. MS even had a roadmap to follow - existing
multi-user systems where security actually mattered - and they *still*
couldn't manage to get even these basic items right.

NT4 is apparently so bad it can't be fixed. Shatter apparently can't be
fixed. Known serious or critical IE holes have existed in some cases
for months without being fixed. They can't even deploy update
notifications for their own applications... so users running Windows
and, say, Outlook may well have the latest *Windows* fixes... but do
they have the fixes for any *Outlook* vulnerabilities? Or are they led
into a false sense of security because MS can't even get *that* right?

Who is to blame for all this, if not MS? Viruses rely on these
vulnerabilities to propagate and infect... if those vulnerabilities were
actually fixed, or, in many cases, if they never existed at all apart
from some seriously boneheaded design decisions... the virus problem
might not be completely eradicated... but it would be manageable.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top