public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Willy Tarreau <w@1wt.eu>
To: Greg KH <greg@kroah.com>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: kernel.org status: hints on how to check your machine for intrusion
Date: Sat, 1 Oct 2011 09:35:33 +0200	[thread overview]
Message-ID: <20111001073533.GA18690@1wt.eu> (raw)
In-Reply-To: <20110930235924.GA25176@kroah.com>

Hi Greg,

On Fri, Sep 30, 2011 at 04:59:24PM -0700, Greg KH wrote:
> The compromise of kernel.org and related machines has made it clear that
> some developers, at least, have had their systems penetrated.  As we
> seek to secure our infrastructure, it is imperative that nobody falls
> victim to the belief that it cannot happen to them.  We all need to
> check our systems for intrusions.  Here are some helpful hints as
> proposed by a number of developers on how to check to see if your Linux
> machine might be infected with something:

I would like to add here a few controls I ran on firewall and system logs,
that are easy to perform and which report few false positives :

  - check that communications between your local machines are expected ;
    for instance if you have an SSH bouncing machine, it probably receives
    tens of thousands of SSH connection attempts from outside every day,
    but it should never ever attempt to connect to another machine unless
    it's you who are doing it. So checking the firewall logs for SSH
    connections on port 22 from local machines should only report your
    activity (and nothing should happen when you sleep).

  - no SSH log should report failed connection attempts between your
    local machines (you do have your keys and remember your password).
    And if it happens from time to time (eg: user mismatch between
    machines), it should look normal to you. You should never observe
    a connection attempt for a user you're not familiar with (eg: admin).

     $ grep sshd /var/log/messages
     $ grep sshd /var/log/messages | grep 'Invalid user'

  - outgoing connections from your laptop, desktop or anything should
    never happen when you're not there, unless there is a well known
    reason (package updates, browser left open and refreshing ads). All
    unexpected activity should be analysed (eg: connections to port 80
    not coming from a browser should only match one distro mirror).
    This is particularly true for cheap appliances which become more
    and more common and are rarely secured. A NAS or media server, a
    switch, a WiFi router, etc... has no reason to ever connect anywhere
    without you being aware of it (eg: download a firmware update).

  - check for suspicious DNS requests from machines that are normally
    not accessed. A number of services perform DNS requests when
    connected to, in order to log a resolved address. If the machine
    was penetrated and the logs wiped, the DNS requests will probably
    still lie in the firewall logs. While there's nothing suspect from
    a machine that does tens of thousands DNS requests a day, one that
    does 10 might be suspect.

  - check for outgoing SMTP connections. Most machines probably never
    send any mail outside or route them through a specific relay. If
    one machine suddenly tries to send mails directly to the outside,
    it might be someone trying to steal some data (eg: mail ssh keys).

  - check for long holes in logs various service logs. The idea is that
    if a system was penetrated and the guy notices he left a number of
    traces, he will probably have wiped some logs. A simple way to check
    for this is to count the number of events per hour and observe huge
    variations. Eg:

       $ cut -c1-9 < /var/log/syslog |uniq -c
       8490 Oct  1 00
       7712 Oct  1 01
       8316 Oct  1 02
       6743 Oct  1 03
       7428 Oct  1 04
       7041 Oct  1 05
       7762 Oct  1 06
       6562 Oct  1 07
       7137 Oct  1 08
        160 Oct  1 09

    Activity looks normal here. Something like this however would be
    extremely suspect :

       8490 Oct  1 00
        712 Oct  1 01
       6743 Oct  1 03

  - check that you never observe in logs a local address that you
    don't know. For instance, if your reverse proxy is on a DMZ which
    is provided by the same physical switch as your LAN and your switch
    becomes ill and loses all its VLAN configuration, it them becomes
    easy to add an alias to the reverse-proxy to connect directly to
    LAN machines and bypass a firewall (and its logs).

  - it's always a good exercise to check for setuids on all your machines.
    You'll generally discover a number of things you did not even suspect
    existed and will likely want to remove them. For instance, my file
    server had dbus-daemon-launch-helper setuid root. I removed this crap
    as dbus has nothing to do on such a machine. Similarly I don't need
    fdmount to mount floppies. I might not use floppies often, and if I do,
    I know how to use sudo.

       $ find / -user root -perm -4000 -ls

  - last considerations to keep in mind is that machines which receive
    incoming connections from outside should never be able to go out, and
    should be isolated in their own LAN. It's not hard to do at all, and
    it massively limits the ability to bounce between systems and to steal
    information. It also makes firewall logs much more meaningful, provided
    they are stored on a support with limited access, of course :-)

Regards,
Willy


  parent reply	other threads:[~2011-10-01  7:35 UTC|newest]

Thread overview: 188+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-30 23:50 kernel.org status: establishing a PGP web of trust H. Peter Anvin
2011-09-30 23:59 ` kernel.org status: hints on how to check your machine for intrusion Greg KH
2011-10-01  1:15   ` David Miller
2011-10-01  4:54     ` Greg KH
2011-10-01  7:35   ` Willy Tarreau [this message]
2011-10-01 14:07     ` Greg KH
2011-10-01 18:06     ` Steven Rostedt
2011-10-01 18:13       ` David Miller
2011-10-01 18:29         ` Steven Rostedt
2011-10-01 18:34           ` Willy Tarreau
2011-10-01 21:23             ` Henrique de Moraes Holschuh
2011-10-01 21:30               ` Henrique de Moraes Holschuh
2011-10-03  9:28                 ` Maarten Lankhorst
2011-10-01 18:40         ` Steven Rostedt
2011-10-01 18:45         ` Steven Rostedt
2011-10-03  9:47           ` gmack
2011-10-01 22:06       ` Frank A. Kingswood
2011-10-03  9:49         ` gmack
2011-10-01 14:17   ` akwatts
2011-10-01 14:28     ` Greg KH
2011-10-01 16:29       ` Andy
2011-10-01 16:56       ` Willy Tarreau
2011-10-01 17:19         ` Andy
2011-10-01 17:54           ` Andreas Schwab
2011-10-01 22:32             ` H. Peter Anvin
2011-10-01 17:54           ` Willy Tarreau
2011-10-01 18:40             ` Andy
2011-10-01 19:06               ` Willy Tarreau
2011-10-01 19:24                 ` Greg KH
2011-10-01 20:07                   ` Willy Tarreau
2011-10-01 20:29                     ` Andreas Schwab
2011-10-01 20:32                       ` Willy Tarreau
2011-10-01 20:24                 ` Andy
2011-10-01 22:43               ` Willy Tarreau
2011-10-02  0:10                 ` H. Peter Anvin
2011-10-02  5:35                   ` Willy Tarreau
2011-10-02  1:58                 ` tmhikaru
2011-10-02  2:26                   ` Greg KH
2011-10-02  3:30                     ` Andy
2011-10-02  4:39                       ` Greg KH
2011-10-02  6:59                         ` Willy Tarreau
2011-10-02 12:03                         ` Andy
2011-10-02 18:27                           ` Willy Tarreau
2011-10-11  1:16                           ` Andrew Watts
2011-10-02  3:31                     ` tmhikaru
2011-10-07  9:28   ` Andrea Arcangeli
2011-10-13  2:34   ` Re " Matthew W.S. Bell
2011-10-13 10:59   ` Matthew W.S. Bell
2011-10-18 15:13   ` Jean Delvare
2011-10-18 15:21     ` Greg KH
2011-10-18 16:08       ` Jean Delvare
2011-10-01 14:05 ` kernel.org status: establishing a PGP web of trust Greg KH
2011-10-01 22:07   ` Rafael J. Wysocki
2011-10-01 22:26     ` Greg KH
2011-10-02 23:02   ` Nobuhiro Iwamatsu
2011-10-02 23:09     ` Greg KH
2011-10-03  9:14   ` Steven Rostedt
2011-10-03 14:13     ` Greg KH
2011-10-03 15:09       ` Steven Rostedt
2011-10-01 21:33 ` Rafael J. Wysocki
2011-10-01 22:27   ` H. Peter Anvin
2011-10-01 22:36     ` Randy Dunlap
2011-10-01 22:52       ` Ted Ts'o
2011-10-02  1:04     ` Rafael J. Wysocki
2011-10-02  1:04       ` H. Peter Anvin
2011-10-02 11:54         ` Rafael J. Wysocki
2011-10-02 17:53           ` H. Peter Anvin
2011-10-02 18:14             ` Rafael J. Wysocki
2011-10-02 18:19               ` H. Peter Anvin
2011-10-02 18:39                 ` Willy Tarreau
2011-10-02 19:02                   ` H. Peter Anvin
2011-10-02 19:24                     ` Willy Tarreau
2011-10-02 19:29                     ` Rafael J. Wysocki
2011-10-02 18:24               ` Henrique de Moraes Holschuh
2011-10-02 18:31               ` H. Peter Anvin
2011-10-02 19:31                 ` Rafael J. Wysocki
2011-10-02 20:42                   ` Henrique de Moraes Holschuh
2011-10-03  9:32             ` Adrian Bunk
2011-10-03 16:28               ` Frank Ch. Eigler
2011-10-03 18:04                 ` Adrian Bunk
2011-10-04 20:29                   ` Valdis.Kletnieks
2011-10-04 22:39                     ` Adrian Bunk
2011-10-04 23:17                       ` Frank Ch. Eigler
2011-10-05  4:37                         ` Valdis.Kletnieks
2011-10-05  7:54                         ` Adrian Bunk
2011-10-05 17:06                           ` Ted Ts'o
2011-10-05 19:23                             ` Adrian Bunk
2011-10-05 19:50                               ` Adrian Bunk
2011-10-05 20:09                                 ` Greg KH
2011-10-05 21:25                                   ` Adrian Bunk
2011-10-05 23:47                                     ` Ted Ts'o
2011-10-06  7:16                                       ` Adrian Bunk
2011-10-05 23:57                               ` Thomas Gleixner
2011-10-06  0:07                                 ` Jeremy Fitzhardinge
2011-10-06  0:18                                 ` Chris Friesen
2011-10-06  7:30                                   ` Thomas Gleixner
2011-10-06 17:19                                     ` Valdis.Kletnieks
2011-10-06  8:04                                 ` Adrian Bunk
2011-10-06 10:22                                   ` Thomas Gleixner
2011-10-06 11:10                                     ` Adrian Bunk
2011-10-06 11:05                                   ` Josh Boyer
2011-10-06 11:19                                     ` Adrian Bunk
2011-10-05  4:23                       ` Valdis.Kletnieks
2011-10-05 20:00                       ` Arnaud Lacombe
2011-10-05 20:19                         ` Adrian Bunk
2011-10-05 20:36                           ` Arnaud Lacombe
2011-10-05 23:55                             ` Greg KH
2011-10-06  0:23                               ` Arnaud Lacombe
2011-10-06  0:50                                 ` Arnaud Lacombe
2011-10-06  5:25                                   ` Greg KH
2011-10-06 13:44                                   ` Valdis.Kletnieks
2011-10-06 14:43                                     ` Arnaud Lacombe
2011-10-06 10:05                           ` Alan Cox
2011-10-06 17:05                       ` Krzysztof Halasa
2011-10-06 15:58                     ` Jon Masters
2011-10-06 17:39                       ` Mark Brown
2011-10-06 17:45                         ` Krzysztof Halasa
2011-10-06 17:52                           ` Mark Brown
2011-10-06 17:48                         ` Greg KH
2011-10-06 18:08                           ` H. Peter Anvin
2011-10-06 18:14                             ` H. Peter Anvin
2011-10-06 19:50                       ` Valdis.Kletnieks
2011-10-06 22:16                         ` Krzysztof Halasa
2011-10-07 16:29                           ` Valdis.Kletnieks
2011-10-07 16:59                             ` Greg KH
2011-10-07 16:59                             ` Arnaud Lacombe
2011-10-07 18:22                               ` Valdis.Kletnieks
2011-10-08  5:02                             ` Jon Masters
2011-10-08 14:36                               ` Valdis.Kletnieks
2011-10-08 15:28                                 ` Geert Uytterhoeven
2011-10-08 15:48                                 ` Krzysztof Halasa
2011-10-08 17:59                                 ` Jon Masters
2011-10-08 21:06                                   ` Krzysztof Halasa
2011-10-08 21:09                                   ` H. Peter Anvin
2011-10-09  3:01                                     ` Jon Masters
2011-10-08 15:44                               ` Krzysztof Halasa
2011-10-08 15:16                             ` Krzysztof Halasa
2011-10-05 19:43               ` Arnaud Lacombe
2011-10-02 18:36           ` Randy Dunlap
2011-10-02 22:46             ` Valdis.Kletnieks
2011-10-02 23:16               ` Josh Boyer
2011-10-03  0:24               ` H. Peter Anvin
2011-10-02 22:54             ` Guenter Roeck
2011-10-02 22:58               ` H. Peter Anvin
2011-10-02 23:23                 ` Olof Johansson
2011-10-02 23:27                   ` H. Peter Anvin
2011-10-03  0:44                     ` Jeremy Fitzhardinge
2011-10-03  1:00                       ` Dmitry Torokhov
2011-10-03  1:00                       ` Guenter Roeck
2011-10-03  1:09                       ` Ted Ts'o
2011-10-03  1:21                         ` Jeremy Fitzhardinge
2011-10-03  1:22                         ` H. Peter Anvin
2011-10-03  1:42                           ` Andrew Morton
2011-10-03  1:43                             ` H. Peter Anvin
2011-10-03  3:15                               ` Geoff Levand
2011-10-03  3:29                                 ` Ted Ts'o
2011-10-03  3:38                                   ` Dmitry Torokhov
2011-10-03  3:54                                     ` Ted Ts'o
2011-10-03  4:02                                       ` Andrew Morton
2011-10-03  4:33                                         ` Ted Ts'o
2011-10-03  0:43               ` Lee Mathers
2011-10-03  9:53               ` Jonathan Cameron
2011-10-04 22:34                 ` Ralf Baechle
2011-10-05 19:12                   ` Maciej W. Rozycki
2011-10-06 13:27                     ` Cambridge, UK key signing meeting. Thursday 13th Oct Jonathan Cameron
2011-10-11 16:33                       ` Jonathan Cameron
2011-10-02 18:20     ` kernel.org status: establishing a PGP web of trust Henrique de Moraes Holschuh
2011-10-03  1:18 ` Ben Pfaff
2011-10-03  1:49   ` H. Peter Anvin
2011-10-03 11:19 ` Jiri Kosina
2011-10-03 22:56   ` Josh Triplett
2011-10-04  4:49     ` Ted Ts'o
2011-10-04  4:52       ` H. Peter Anvin
2011-10-04  5:11         ` Ted Ts'o
2011-10-04 16:37           ` H. Peter Anvin
2011-10-04  7:15         ` Jiri Kosina
2011-10-04 19:23         ` Rafael J. Wysocki
2011-10-06  3:14         ` John Johansen
2011-10-06  4:49           ` hpanvin@gmail.com
2011-10-04 12:51   ` Heiko Carstens
2011-10-04 22:02     ` Jiri Kosina
2011-10-04 22:04       ` H. Peter Anvin
2011-10-05  0:27     ` Henrique de Moraes Holschuh
2011-10-03 17:50 ` Adrian Bunk
2011-10-06 18:22 ` Krzysztof Halasa
2011-10-06 18:31   ` Rafael J. Wysocki
2011-10-06 21:19     ` [Warsaw Poland] " Krzysztof Halasa
2011-10-06 21:37       ` Rafael J. Wysocki

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20111001073533.GA18690@1wt.eu \
    --to=w@1wt.eu \
    --cc=greg@kroah.com \
    --cc=linux-kernel@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox