12.1.1. Debian は X より安全ですか?
システムは管理者がシステムを安全にする能力と同じくらい安全です。 Debian はデフォルトで安全な方法でサービスをインストールしようと して、すべてのサービスをデフォルトで停止された状態でインストールする 他のオペレーティングシステムのようにパラノイアであろうとはしないかも しれません。しかし、システム管理者はローカルのセキュリティポリシーに システムのセキュリティを適応される必要があります。
For a collection of data regarding security vulnerabilities for many operating systems, see the
http://www.cert.org/stats/cert_stats.html or generate stats using the
http://nvd.nist.gov/statistics.cfm (formerly ICAT) Is this data useful? There are several factors to consider when interpreting the data, and it is worth noticing that the data cannot be used to compare the vulnerabilities of one operating system versus another.
Also, keep in mind that some reported vulnerabilities regarding Debian apply only to the
unstable (i.e. unreleased) branch.
12.1.1.1. Is Debian more secure than other Linux distributions (such as Red Hat, SuSE...)?
There are not really many differences between Linux distributions, with exceptions to the base installation and package management system. Most distributions share many of the same applications, with differences mainly in the versions of these applications that are shipped with the distribution's stable release. For example, the kernel, Bind, Apache, OpenSSH, Xorg, gcc, zlib, etc. are all common across Linux distributions.
For example, Red Hat was unlucky and shipped when foo 1.2.3 was current, which was then later found to have a security hole. Debian, on the other hand, was lucky enough to ship foo 1.2.4, which incorporated the bug fix. That was the case in the big
http://www.cert.org/advisories/CA-2000-17.html problem from a couple years ago.
There is a lot of collaboration between the respective security teams for the major Linux distributions. Known security updates are rarely, if ever, left unfixed by a distribution vendor. Knowledge of a security vulnerability is never kept from another distribution vendor, as fixes are usually coordinated upstream, or by
http://www.cert.org. As a result, necessary security updates are usually released at the same time, and the relative security of the different distributions is very similar.
One of Debian's main advantages with regards to security is the ease of system updates through the use of
apt
. Here are some other aspects of security in Debian to consider:
12.1.1.2. bugtraq には多くの Debian のバグがありますが、これは Debian がとても 脆弱ということですか?
The Debian distribution boasts a large and growing number of software packages, probably more than provided by many proprietary operating systems. The more packages installed, the greater the potential for security issues in any given system.
しかし、Debian を含む大手ソフトウェアコンポーネントに対してなされた ソースコード監査に関連する多くの勧告があります。このようなソースコード監査で 大きな欠陥が見つかるたびに、それは修正され、勧告が bugtraq などのメーリング リストに送られます。
Bugs that are present in the Debian distribution usually affect other vendors and distributions as well. Check the "Debian specific: yes/no" section at the top of each advisory (DSA).
12.1.1.3. Does Debian have any certification related to security?
Short answer: no.
Long answer: certification costs money (specially a
serious security certification), nobody has dedicated the resources in order to certify Debian GNU/Linux to any level of, for example, the
http://niap.nist.gov/cc-scheme/st/. If you are interested in having a security-certified GNU/Linux distribution, try to provide the resources needed to make it possible.
12.1.1.4. Debian に強化用プログラムはありますか?
Yes.
http://bastille-linux.sourceforge.net/, originally oriented toward other Linux distributions (Red Hat and Mandrake), it currently works also for Debian. Steps are being taken to integrate the changes made to the upstream version into the Debian package, named
bastille.
しかし、強化ツールを使ってもよい管理の必要性がなくなるわけではないと信じる 人もいます。
12.1.1.5. I want to run XYZ service, which one should I choose?
One of Debian's great strengths is the wide variety of choice available between packages that provide the same functionality (DNS servers, mail servers, ftp servers, web servers, etc.). This can be confusing to the novice administrator when trying to determine which package is right for you. The best match for a given situation depends on a balance between your feature and security needs. Here are some questions to ask yourself when deciding between similar packages:
Is the software maintained upstream? When was the last release?
Is the package mature? The version number really does not tell you about its maturity. Try to trace the software's history.
Is the software bug-ridden? Have there been security advisories related to it?
Does the software provide all the functionality you need? Does it provide more than you really need?
12.1.1.6. どうすれば XYZ サービスをより安全にできますか?
いくつかのサービス (FTP、Bind) を Debian GNU/Linux でより安全にするための 情報がこの文書中にあります。しかし、ここで扱われていないサービスについては、 そのプログラムの文書か Linux 一般の文書を見ましょう。Unix システムへの セキュリティ関連のガイドラインのほとんどは Debian にもあてはまります。よって、 Debian のサービス X を安全にするのは、ほとんどの場合、ほかの Linux ディストリビューション (または、それを言うなら Unix) でそのサービスを 安全にするのと同様です。
12.1.1.7. How can I remove all the banners for services?
If you do not like users connecting to your POP3 daemon, for example, and retrieving information about your system, you might want to remove (or change) the banner the service shows to users.
Doing so depends on the software you are running for a given service. For example, in
postfix
, you can set your SMTP banner in
/etc/postfix/main.cf
:
smtpd_banner = $myhostname ESMTP $mail_name (Debian/GNU)
Other software is not as easy to change. ssh will need to be recompiled in order to change the version that it prints. Take care not to remove the first part (SSH-2.0
) of the banner, which clients use to identify which protocol(s) is supported by your package.
12.1.1.8. Debian のすべてのパッケージは安全ですか?
The Debian security team cannot possibly analyze all the packages included in Debian for potential security vulnerabilities, since there are just not enough resources to source code audit the whole project. However, Debian does benefit from the source code audits made by upstream developers.
実際、Debian 開発者がパッケージ中にトロイの木馬を含めて配布する可能性は ありますし、それを調べるための可能な方法もありません。そのような調査が Debian に導入されるとしてもトロイの木馬が実行されるすべての考えられる状況を 扱うことは不可能でしょう。
これは無保証ライセンス条項に頼ることになります。いずれにせよ、 Debian ユーザは安定版のコードには多くのユーザがいて問題の大部分は使用中に 発見されると確信することができます。どんな場合でも (必要なソースコード監査を 提供できないならば) 価値あるシステムにテストされていないソフトを インストールすることは推奨されていません。そして、いずれにせよ、 ディストリビューションに仕組まれたセキュリティ上の脆弱性があるとすれば、 それを含めるために使われた過程 (電子署名を使うこと) は問題が究極的には 特定の開発者までたどれることを保証します。そして Debian プロジェクトが この問題を軽く見たことはありません。
12.1.1.9. Why are some log files/configuration files world-readable, isn't this insecure?
Of course, you can change the default Debian permissions on your system. The current policy regarding log files and configuration files is that they are world readable unless they provide sensitive information.
Be careful if you do make changes since:
Processes might not be able to write to log files if you restrict their permissions.
Some applications may not work if the configuration file they depend on cannot be read. For example, if you remove the world-readable permission from /etc/samba/smb.conf
, the smbclient
program will not work when run by a normal user.
FIXME: Check if this is written in the Policy. Some packages (i.e. ftp daemons) seem to enforce different permissions.
12.1.1.10. Why does /root/ (or UserX) have 755 permissions?
As a matter of fact, the same questions stand for any other user. Since Debian's installation does not place
any file under that directory, there's no sensitive information to protect there. If you feel these permissions are too broad for your system, consider tightening them to 750. For users, read
「Limiting access to other user's information」.
12.1.1.11. After installing a grsec/firewall, I started receiving many console messages! How do I remove them?
If you are receiving console messages, and have configured /etc/syslog.conf
to redirect them to either files or a special TTY, you might be seeing messages sent directly to the console.
The default console log level for any given kernel is 7, which means that any message with lower priority will appear in the console. Usually, firewalls (the LOG rule) and some other security tools log lower that this priority, and thus, are sent directly to the console.
To reduce messages sent to the console, you can use
dmesg
(
-n
option, see
dmseg(8)), which examines and
controls the kernel ring buffer. To fix this after the next reboot, change
/etc/init.d/klogd
from:
KLOGD=""
Use a lower number for
-c
if you are still seeing them. A description of the different log levels can be found in
/usr/include/sys/syslog.h
:
#define LOG_EMERG 0 /* system is unusable */
#define LOG_ALERT 1 /* action must be taken immediately */
#define LOG_CRIT 2 /* critical conditions */
#define LOG_ERR 3 /* error conditions */
#define LOG_WARNING 4 /* warning conditions */
#define LOG_NOTICE 5 /* normal but significant condition */
#define LOG_INFO 6 /* informational */
#define LOG_DEBUG 7 /* debug-level messages */
12.1.1.12. オペレーティングシステムのユーザやグループ
12.1.1.12.1. システムユーザはすべて必要ですか?
Yes and no. Debian comes with some predefined users (user id (UID) < 99 as described in
http://www.debian.org/doc/debian-policy/ or
/usr/share/doc/base-passwd/README
) to ease the installation of some services that require that they run under an appropriate user/UID. If you do not intend to install new services, you can safely remove those users who do not own any files in your system and do not run any services. In any case, the default behavior is that UID's from 0 to 99 are reserved in Debian, and UID's from 100 to 999 are created by packages on install (and deleted when the package is purged).
To easily find users who don't own any files, execute the following command
(run it as root, since a common user might not have enough permissions to go through some sensitive directories):
cut -f 1 -d : /etc/passwd | \
while read i; do find / -user "$i" | grep -q . || echo "$i"; done
These users are provided by
base-passwd. Look in its documentation for more information on how these users are handled in Debian. The list of default users (with a corresponding group) follows:
root: Root は (典型的には) スーパユーザです。
daemon: ディスク上のあるファイルに書きこむことができる必要がある非特権デーモンの 中には daemon.daemon として動くものがあります (portmap、atd そして他にも あるでしょう)。どのファイルも所有する必要がないデーモンはかわりに nobody.nogroup として動かすことができます。そしてより複雑かまたはより セキュリティに気をつけるべきデーモンは専用のユーザで動きます。 daemon ユーザはたぶんローカルでインストールしたデーモンにも便利でしょう。
bin: 歴史的な理由から維持されています。
sys: bin と同様です。しかし、/dev/vcs* と /var/spool/cups は sys グループに よって所有されています。
sync: sync ユーザのシェルは /bin/sync です。したがって、もしそのパスワードが 推測しやすいもの (「」とか) に設定されていれば、だれでもたとえその システムにアカウントを持っていなくてもコンソールでシステムの同期を 取ることができます。
games: ゲームの多くはハイスコアファイルに書きこむことができるように games に sgid されています。これはポリシーで説明されています。
man: man プログラムは (ときどき) cat ページを /var/cache/man
に 書きこめるように man ユーザとして動きます。
lp: プリンタデーモンによって利用されます。
mail: /var/mail
の中のメールボックスはポリシーで説明されているように mail グループによって所有されています。このユーザやグループはさまざまな MTA で他の目的にも利用されています。
news: さまざまなニュースサーバや (suck のような) その他の関連するプログラムは news ユーザおよびグループをさまざまな方法で使います。ニューススプールの 中のファイルはしばしば news ユーザおよび グループによって所有されます。 ニュースに投稿するのに使える inews などのプログラムは典型的には news に sgid されます。
uucp: uucp ユーザおよびグループは UUCP サブシステムで使われます。uucp は スプールおよび設定ファイルを所有しています。uucp グループのユーザは uucico を実行できます。
proxy: daemon と同様に、このユーザおよびグループは専用のユーザ id がなくて ファイルを所有する必要のあるいくつかのデーモン (特に、プロキシデーモン) に 利用されます。たとえば、proxy グループは pdnsd に利用されていますし、 squid は proxy ユーザとして動きます。
majordom: Majordomo は歴史的な理由から Debian システムで静的な uid を割りあてられて います。これは新しいシステムにはインストールされません。
postgres: Postgresql データベースはこのユーザおよびグループに所有されています。 /var/lib/postgresql
の中のすべてのファイルは適切な セキュリティを実施するためにこのユーザによって所有されています。
www-data: ウェブブラウザの中には www-data として動くものがあります。ウェブの内容は このユーザに所有されるべきでは「ありません」。そうでないと破られた ウェブサーバがウェブサイトを書きかえることができてしまうでしょう。 ウェブサーバによって書かれたデータはログファイルも含めて www-data に 所有されます。
backup: バックアップや修復の責任を完全な root 権限を持たない人にローカルで まかせられるように。
operator: Operator is historically (and practically) the only 'user' account that can login remotely, and doesn't depend on NIS/NFS.
list: メーリングリストのアーカイブとデータはこのユーザおよびグループによって 所有されます。いくつかのメーリングリストプログラムもこのユーザで動きます。
irc: irc デーモンに利用されます。静的に割りあてられたユーザが必要なのは 単に ircd のバグのせいです -- ircd は起動時に与えられた UID に自分自身を setuid() します。
gnats。
nobody, nogroup: どのファイルも所有する必要がないデーモンはユーザ nobody、グループ nogroup として動きます。したがって、システムのどのファイルもこのユーザ またはグループに所有されるべきではありません。
対応するユーザを持たない他のグループ:
adm: adm グループはシステム監視の仕事に使われます。このグループのメンバーは /var/log の中の多くのログを読むことができますし、xconsole を使うことが できます。歴史的には、/var/log は /usr/adm でした (そのあと /var/adm に なりました)。これがこのグループの名前の由来です。
tty: Tty デバイスがこのグループに所有されています。これは他の人の tty に 書きこめるようにするために write や wall に使われています。
disk: ディスクへの生アクセスです。root アクセスとほぼ等価です。
kmem: /dev/kmem および同様のファイルをこのグループは読むことができます。 これはだいたい BSD の歴史の遺物ですが、システムメモリを直接読みこむ 必要があるプログラムは kmem に sgid することができます。
dialout: シリアルポートへの直接かつ完全なアクセスです。このグループのメンバーは モデムを再設定したりすきな場所に電話したりといったことができます。
dip: このグループの名前は「Dialup IP」を表します。このグループに所属していると ダイヤルアップ接続のために ppp
、dip
、 wvdial
などの道具を使うことができます。このグループのユーザは モデムを設定することはできません。モデムを利用するプログラムを実行できる だけです。
fax: メンバーがファックスを送ったり受けとったりするためのソフトウェアを 使えるようにします。
voice: Voicemail です。モデムを留守番電話として利用するシステムにとって 便利です。
cdrom: このグループは何人かのユーザに cdrom ドライブへアクセスさせるのに ローカルで使えます。
floppy: このグループは何人かのユーザにフロッピードライブへアクセスさせるのに ローカルで使えます。
tape: このグループは何人かのユーザにテープドライブへアクセスさせるのに ローカルで使えます。
sudo: このグループのメンバーは sudo を使うときにパスワードを入力する必要が ありません。/usr/share/doc/sudo/OPTIONS
をごらんください。
audio: このグループは何人かのユーザにオーディオデバイスへアクセスさせるのに ローカルで使えます。
src: このグループは /usr/src
の中のファイルを含むソースコードを 所有しています。src はユーザにシステムのソースコードを管理する能力を 与えるのにローカルで使えます。
shadow: このグループは /etc/shadow
を読むことができます。この ファイルにアクセスできる必要があるプログラムは shadow に set gid されて います。
utmp: このグループは /var/run/utmp
および同様のファイルに書きこむ ことができます。これに書きこめる必要があるプログラムは utmp に sgid されています。
video: このグループは何人かのユーザにビデオデバイスへアクセスさせるのに ローカルで使えます。
staff: ユーザがシステムに root の特権なしでローカルの変更を加えることが できるようにします。これをより監視やセキュリティに関連した「adm」 グループと比較してください。
users: Debian システムはユーザグループシステム (それぞれのユーザが自分のグループを 持つ) をデフォルトで使いますが、より伝統的なグループシステムを使いたい人が いるかもしれません。そのようなシステムでは、各ユーザは「users」グループの メンバーです。
12.1.1.12.2. I removed a system user! How can I recover?
If you have removed a system user and have not made a backup of your password
and group
files you can try recovering from this issue using update-passwd
(see update-passwd(8)).
12.1.1.12.3. adm グループと staff グループのちがいは何ですか?
The 'adm' group are usually administrators, and this group permission allows them to read log files without having to su
. The 'staff' group are usually help-desk/junior sysadmins, allowing them to work in /usr/local
and create directories in /home
.
12.1.1.13. Why is there a new group when I add a new user? (or Why does Debian give each user one group?)
The default behavior in Debian is that each user has its own, private group. The traditional UN*X scheme assigned all users to the users group. Additional groups were created and used to restrict access to shared files associated with different project directories. Managing files became difficult when a single user worked on multiple projects because when someone created a file, it was associated with the primary group to which they belong (e.g. 'users').
Debian's scheme solves this problem by assigning each user to their own group; so that with a proper umask (0002) and the SETGID bit set on a given project directory, the correct group is automatically assigned to files created in that directory. This makes it easier for people who work on multiple projects, because they will not have to change groups or umasks when working on shared files.
You can, however, change this behavior by modifying /etc/adduser.conf
. Change the USERGROUPS variable to 'no', so that a new group is not created when a new user is created. Also, set USERS_GID to the GID of the users group which all users will belong to.
12.1.1.14. サービスおよび開いているポートに関する質問
12.1.1.14.1. なぜすべてのサービスがインストール時に起動されるのですか
これは一方ではセキュリティに気をつけること、他方ではユーザにやさしいことという 問題に対する取り組み方のひとつにすぎません。管理者によって起動されるまで すべてのサービスを停止する OpenBSD とは異なり、Debian GNU/Linux は停止されない かぎりすべてのインストールずみのサービスを起動します (くわしくは
「デーモンサービスを停止する」 をごらんください)。結局、そのサービスをインストール したのはあなたでしょう?
There has been much discussion on Debian mailing lists (both at debian-devel and at debian-security) regarding which is the better approach for a standard installation. However, as of this writing (March 2002), there still isn't a consensus.
12.1.1.14.2. Can I remove inetd
?
Inetd を削除することは簡単ではありません。なぜなら
netbase がそれを提供するパッケージ (
netkit-inetd) に依存するからです。inetd を削除したいなら それを停止することもできますし (
「デーモンサービスを停止する」 をごらんください)、
equivs パッケージを使ってそのパッケージを削除する こともできます。
12.1.1.14.3. なぜ 111 番ポートは開いていますか?
111 番ポートは sunrpc の portmapper です。これは Debian システムのすべての base インストールでデフォルトでインストールされます。なぜならユーザの プログラムが正しく動くのにいつ RPC が必要か知る必要はないからです。 いずれにせよ、こえは主に NFS に使われます。もし必要ないのなら、
「Securing RPC services」 で説明されているようにそれを削除してください。
In versions of the portmap package later than 5-5 you can actually have the portmapper installed but listening only on localhost (by modifying /etc/default/portmap
)
12.1.1.14.4. What use is identd
(port 113) for?
Identd service is an authentication service that identifies the owner of a specific TCP/IP connection to the remote server accepting the connection. Typically, when a user connects to a remote host, inetd
on the remote host sends back a query to port 113 to find the owner information. It is often used by mail, FTP and IRC servers, and can also be used to track down which user in your local system is attacking a remote system.
There has been extensive discussion on the security of
identd
(See
http://lists.debian.org/debian-security/2001/08/msg00297.html). In general,
identd
is more helpful on a multi-user system than on a single user workstation. If you don't have a use for it, disable it, so that you are not leaving a service open to the outside world. If you decide to firewall the identd port,
please use a reject policy and not a deny policy, otherwise a connection to a server utilizing
identd
will hang until a timeout expires (see
http://logi.cc/linux/reject_or_deny.php3).
12.1.1.14.5. I have services using port 1 and 6, what are they and how can I remove them?
If you have run the command
netstat -an
and receive:
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State
PID/Program name
raw 0 0 0.0.0.0:1 0.0.0.0:* 7
-
raw 0 0 0.0.0.0:6 0.0.0.0:* 7
-
You are not seeing processes listening on TCP/UDP port 1 and 6. In fact, you are seeing a process listening on a raw socket for protocols 1 (ICMP) and 6 (TCP). Such behavior is common to both legitimate software like intrustion detection systems, such as iplogger and portsentry, but some trojans have also been known yo use them. If you have the mentioned packages simply remove them to close the port. If you do not, try netstat's -p
(process) option to see which process is running these listeners.
12.1.1.14.6. I found the port XYZ open, can I close it?
もちろん閉じていいです。開いたままのポートは他のシステムが利用可能な 公開サービスに関するあなたのサイトのポリシーに沿ったものであるべきです。 それが inetd (
「Disabling inetd
or its services」 をごらんください) によって開いているのか、 他のインストールされているパッケージによって開いているのかを調べて、 適切な手段 (inetd を設定するとか、パッケージを削除するとか、ブート時に 起動するのを避けるとか) を取ってください。
12.1.1.14.7. Will removing services from /etc/services
help secure my box?
いいえ、
/etc/services
は仮想名から特定のポート番号への 写像を提供するだけです。そこから名前を削除しても (ふつうは) サービスが 起動するのを防ぐことはできません。デーモンには
/etc/services
が 変更されていると動かないものもあるかもしれませんが、これは基準では ありませんし、推奨されている方法でもありません。
「デーモンサービスを停止する」 を ごらんください。
12.1.1.15. Common security issues
12.1.1.15.1. パスワードがわからなくなって、システムにアクセスできません!
ここから回復するために必要な手段は Lilo や BIOS を制限するためにここで 提案された手続きを適用したかどうかに依存します。
もし両方を制限したなら、先に進む前に BIOS の機能 (ハードディスクだけから ブートできるようにする) を停止する必要があります。もし BIOS のパスワードも 忘れたなら、システムの箱を開いて BIOS のバッテリーを手作業で取りはずす 必要があるでしょう。
Once you have enabled booting from a CD-ROM or diskette enable, try the following:
This will remove the forgotten root password, contained in the first colon separated field after the user name. Save the file, reboot the system and login with root using an empty password. Remember to reset the password. This will work unless you have configured the system more tightly, i.e. if you have not allowed users to have null passwords or not allowed root to login from the console.
もしこの機能も導入していたならばシングルモードに入る必要があります。LILO が 制限されていない必要があります。もしこれも行っていたならば上記の root の リセットの直後に lilo
を再実行する必要があります。 実物のハードディスクではなく ramdisk である / ファイルシステムのせいで /etc/lilo.conf
をいじる必要があるのでこれはとても複雑です。
Once LILO is unrestricted, try the following:
システムの BIOS が終わる直前に Alt キー、シフトキーまたは コントロールキーを押す。LILO プロンプトが出るはずです。
Type linux single
, linux init=/bin/sh
or linux 1
at the prompt.
シングルユーザモードでシェルプロンプトが出るはずです (パスワードを聞かれますが、すでにそれを知っているはずです)
Re-mount read/write the root (/) partition, using the mount command.
# mount -o remount,rw /
スーパユーザのパスワードを passwd
で変更します (あなたはスーパユーザなので以前のパスワードは聞かれません)
12.1.1.16. How do I accomplish setting up a service for my users without giving out shell accounts?
For example, if you want to set up a POP service, you don't need to set up a user account for each user accessing it. It's best to set up directory-based authentication through an external service (like Radius, LDAP or an SQL database). Just install the appropriate PAM library (
libpam-radius-auth,
libpam-ldap,
libpam-pgsql or
libpam-mysql), read the documentation (for starters, see
「ユーザ認証: PAM」) and configure the PAM-enabled service to use the back end you have chosen. This is done by editing the files under
/etc/pam.d/
for your service and modifying the
auth required pam_unix_auth.so shadow nullok use_first_pass
to, for example, ldap:
auth required pam_ldap.so
In the case of LDAP directories, some services provide LDAP schemas to be included in your directory that are required in order to use LDAP authentication. If you are using a relational database, a useful trick is to use the
where clause when configuring the PAM modules. For example, if you have a database with the following table attributes:
(user_id, user_name, realname, shell, password, UID, GID, homedir, sys, pop, imap, ftp)
By making the services attributes boolean fields, you can use them to enable or disable access to the different services just by inserting the appropriate lines in the following files:
/etc/pam.d/imap
:where=imap=1
.
/etc/pam.d/qpopper
:where=pop=1
.
/etc/nss-mysql*.conf
:users.where_clause = user.sys = 1;
.
/etc/proftpd.conf
: SQLWhereClause "ftp=1"
.
12.1.2. My system is vulnerable! (Are you sure?)
12.1.2.1. Vulnerability assessment scanner X says my Debian system is vulnerable!
Many vulnerability assessment scanners give false positives when used on Debian systems, since they only use version checks to determine if a given software package is vulnerable, but do not really test the security vulnerability itself. Since Debian does not change software versions when fixing a package (many times the fix made for newer releases is back ported), some tools tend to think that an updated Debian system is vulnerable when it is not.
If you think your system is up to date with security patches, you might want to use the cross references to security vulnerability databases published with the DSAs (see
「Debian Security Advisories」) to weed out false positives, if the tool you are using includes CVE references.
12.1.2.2. I've seen an attack in my system's logs. Is my system compromised?
A trace of an attack does not always mean that your system has been compromised, and you should take the usual steps to determine if the system is indeed compromised (see
11章After the compromise (incident response)). Even if your system was not vulnerable to the attack that was logged, a determined attacker might have used some other vulnerability besides the ones you have detected.
12.1.2.3. I have found strange 'MARK' lines in my logs: Am I compromised?
You might find the following lines in your system logs:
Dec 30 07:33:36 debian -- MARK --
Dec 30 07:53:36 debian -- MARK --
Dec 30 08:13:36 debian -- MARK --
This does not indicate any kind of compromise, and users changing between Debian releases might find it strange. If your system does not have high loads (or many active services), these lines might appear throughout your logs. This is an indication that your
syslogd
daemon is running properly. From
syslogd(8):
-m interval
The syslogd logs a mark timestamp regularly. The
default interval between two -- MARK -- lines is 20
minutes. This can be changed with this option.
Setting the interval to zero turns it off entirely.
12.1.2.4. I found users using 'su' in my logs: Am I compromised?
ログの中にこのような行があるかもしれません:
Apr 1 09:25:01 server su[30315]: + ??? root-nobody
Apr 1 09:25:01 server PAM_unix[30315]: (su) session opened for user nobody by (UID=0)
あまり気にしないでください。これが cron 経由で実行されるジョブ (ふつうは
/etc/cron.daily/find
か
logrotate
です) によるものか 確かめてください:
$ grep 25 /etc/crontab
25 9 * * * root test -e /usr/sbin/anacron || run-parts --report
/etc/cron.daily
$ grep nobody /etc/cron.daily/*
find:cd / && updatedb --localuser=nobody 2>/dev/null
12.1.2.5. I have found 'possible SYN flooding' in my logs: Am I under attack?
If you see entries like these in your logs:
May 1 12:35:25 linux kernel: possible SYN flooding on port X. Sending cookies.
May 1 12:36:25 linux kernel: possible SYN flooding on port X. Sending cookies.
May 1 12:37:25 linux kernel: possible SYN flooding on port X. Sending cookies.
May 1 13:43:11 linux kernel: possible SYN flooding on port X. Sending cookies.
Check if there is a high number of connections to the server using
netstat
, for example:
linux:~# netstat -ant | grep SYN_RECV | wc -l
9000
This is an indication of a denial of service (DoS) attack against your system's X port (most likely against a public service such as a web server or mail server). You should activate TCP syncookies in your kernel, see
「Configuring syncookies」. Note, however, that a DoS attack might flood your network even if you can stop it from crashing your systems (due to file descriptors being depleted, the system might become unresponsive until the TCP connections timeout). The only effective way to stop this attack is to contact your network provider.
12.1.2.6. I have found strange root sessions in my logs: Am I compromised?
You might see these kind of entries in your
/var/log/auth.log
file:
May 2 11:55:02 linux PAM_unix[1477]: (cron) session closed for user root
May 2 11:55:02 linux PAM_unix[1476]: (cron) session closed for user root
May 2 12:00:01 linux PAM_unix[1536]: (cron) session opened for user root by
(UID=0)
May 2 12:00:02 linux PAM_unix[1536]: (cron) session closed for user root
These are due to a cron
job being executed (in this example, every five minutes). To determine which program is responsible for these jobs, check entries under: /etc/crontab
, /etc/cron.d
, /etc/crond.daily
and root's crontab
under /var/spool/cron/crontabs
.
12.1.2.7. 侵入されました、どうしましょう?
There are several steps you might want to take in case of a break-in:
12.1.2.8. どうやったら攻撃を追跡できますか?
ログを見ること (もしそれが変更されていないなら)、侵入検知システムを 使うこと (
「侵入検知を設定する」 をごらんください)、
traceroute
、
whois
その他の道具 (科学捜査を 含みます) を使うことによって、攻撃を発生源まで追跡できます。この情報に どう反応するべきかはあなたのセキュリティポリシーに、そして
あなたが 何を攻撃と考えるかにのみ依存します。リモートスキャンは攻撃でしょうか? 脆弱性探査は攻撃でしょうか?
12.1.2.9. Debian のプログラム X は脆弱です、どうしましょう?
まずその脆弱性が公開のセキュリティ関係のメーリングリスト (Bugtraq など) か 他のフォーラムで発表されているか確かめましょう。Debian Security Team は このメーリングリストについていっているので、すでにこの問題に気づいて いるかもしれません。発表が
http://security.debian.org にあれば それ以上何もしないでください。
If no information seems to be published, please send e-mail about the affected package(s), as well as a detailed description of the vulnerability (proof of concept code is also OK), to
mailto:team@security.debian.org. This will get you in touch with Debian's security team.
12.1.2.10. パッケージのバージョン番号によると依然として脆弱なバージョンを使って いることになります!
新しいリリースにアップグレードするかわりに私たちはセキュリティ関連の修正を 安定版リリースで出荷されたバージョンに逆移植しています。こうする理由は リリースの変更をできるだけ小さくして、セキュリティ関連の修正の結果物事が 思いがけず変わったり壊れたりしないようにするためです。安全なバージョンの パッケージを使っているかどうかはそのパッケージの変更履歴を見るか、その 正確な (上流のバージョン - 斜線 - Debian リリース) バージョン番号を Debian Security Advisory が示すバージョンと比較することによって調べることが できます。