[Gelöst] Sicherheit von Conf Dateien in /etc/
- whisper
- Beiträge: 3390
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
[Gelöst] Sicherheit von Conf Dateien in /etc/
Ich dachte bisher eigentlich, dass die defaulteinstellungen von Debian so aussehen, das config Dateien, die Passwoerter enthalten von installierten Paketen nicht von anderen Usern zu lesen sind.
Nun ist mir beim Paket pmacct aufgefallen, das dem nicht immer so ist.
Dort ist die conf welt lesbar. Ich konnte als authentifizierte, einfacher user auf die Datenbank in mysql zugreifen, weil das Password dort hinterlegt ist und die anderen Daten, wie User und Datenbank ja bekannt sind.
Es ist scheinbar auch kein Ausreisser. Bei Postfix bin ich auch bein main.cf fündig geworden.
Ist das nun schlamperei der Maintainer, oder doch meine eigene Dummheit Debian einfach zu vertrauen und nicht bei jedem neuen Paket rudimentäre Übberprüfungen zu machen?
Und, sollte ich es dem Maintainer mal melden?
Edith: in Blau
Nun ist mir beim Paket pmacct aufgefallen, das dem nicht immer so ist.
Dort ist die conf welt lesbar. Ich konnte als authentifizierte, einfacher user auf die Datenbank in mysql zugreifen, weil das Password dort hinterlegt ist und die anderen Daten, wie User und Datenbank ja bekannt sind.
Es ist scheinbar auch kein Ausreisser. Bei Postfix bin ich auch bein main.cf fündig geworden.
Ist das nun schlamperei der Maintainer, oder doch meine eigene Dummheit Debian einfach zu vertrauen und nicht bei jedem neuen Paket rudimentäre Übberprüfungen zu machen?
Und, sollte ich es dem Maintainer mal melden?
Edith: in Blau
Zuletzt geändert von whisper am 06.10.2012 16:59:07, insgesamt 2-mal geändert.
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
Re: Sicherheit von Conf Dateien in /etc/
Was ist schlimm oder unsicher daran, conf-Dateien als user lesen zu können? Im schlimmsten Fall sieht der user in kurzer Zeit genau, was er darf und nicht darf. Das aber kann er auch ohne Einblick in die Datei herausbekommen.
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Sicherheit von Conf Dateien in /etc/
Wie kommst du denn darauf? Schau dir doch 'ls -l /etc' an, da ist fast alles für jeden zu lesen. Viele Programme die nicht mit root-Rechten laufen könntest sonst ihre Einstellungen/Voreinstellungen gar nicht lesen.whisper hat geschrieben:Ich dachte bisher eigentlich, dass die defaulteinstellungen von Debian so aussehen, das config Dateien von installierten Paketen nicht von anderen Usern zu lesen sind.
Die einzige Ausnahme wären Dateien die aus einem dpkg-Dialog heraus konfiguriert werden und Passwörter dort reinschreiben. Da müssten dann auch entsprechende Dateirechte automatisch vergeben werden. Alle anderen Dateien sind recht unbedenklich. Die Dateien in die du selbst Passwörter einträgst.. Ja da musst du dir natürlich auch selbst überlegen wer die lesen darf und wer nicht. Hast du mal in die Datei /usr/share/doc/pmacct/README.Debian geschaut? Da stehen solche Hinweise gelegentlich drin.whisper hat geschrieben:Ist das nun schlamperei der Maintainer, oder doch meine eigene Dummheit Debian einfach zu vertrauen und nicht bei jedem neuen Paket rudimentäre Überprüfungen zu machen?
Re: Sicherheit von Conf Dateien in /etc/
Gute Beispiele sind die Dateien /etc/passwd und /etc/shadow. Die Datei /etc/passwd ist global lesbar und muss es auch sein. Alle Benutzer sollen ja alle anderen Benutzer kennen. Die /etc/shadow ist nur von "root" zu lesen, da dort die Passwörter (wenn auch verschlüsselt) abgelegt sind. Ändern kann der Benutzer sein Passwort per /usr/bin/passwd weil das Programm SETUID-root ist.
Große Teile von /etc sind vollkommen unkritisch, da die Konfigurationen entweder von jedem Benutzer benötigt oder sowieso trivial sind. Kritisch wird es wenn Passwörter enthalten sind. Dann sind entweder die Passwörter zu verschlüsseln die Dateien zu sichern. Vielleicht kann mal jemand die Rechte für /etc/wpa_supplicant/wpa_supplicant.conf raussuchen. Darf bei mir jeder lesen jedoch mit einem verschlüsselten WPA-PSK-Key. Ist das so richtig?
Große Teile von /etc sind vollkommen unkritisch, da die Konfigurationen entweder von jedem Benutzer benötigt oder sowieso trivial sind. Kritisch wird es wenn Passwörter enthalten sind. Dann sind entweder die Passwörter zu verschlüsseln die Dateien zu sichern. Vielleicht kann mal jemand die Rechte für /etc/wpa_supplicant/wpa_supplicant.conf raussuchen. Darf bei mir jeder lesen jedoch mit einem verschlüsselten WPA-PSK-Key. Ist das so richtig?
Re: Sicherheit von Conf Dateien in /etc/
Das ist andersrum, alles ist zunächst weltweit lesbar, bis auf kritische Teile, wie zum Beispiel die shadow, sudoers oder eine /etc/postfix/sasl/my-isp. Genau bei letzterer hast du wohl etwas falsch konfiguriert, wenn Klartextpasswörter in der main.cf stehen. Sowas wird als hash: von irgendwo eingebunden, und diese Datei ist dann 600. Jedes gescheite Konfigurationssystem unterstützt ein include dieser Art.
Die Idee ist nicht schlecht: Man muss auf die fünf geheimen Datensätze explizit aufpassen, und der Rest ist egal. Das ist besser als ein Fall, wo man sich auf automatisch private Konfigs verlässt und durch einen Bug eine Datei eben doch weltlesbar wird.
Gruß Cae
Die Idee ist nicht schlecht: Man muss auf die fünf geheimen Datensätze explizit aufpassen, und der Rest ist egal. Das ist besser als ein Fall, wo man sich auf automatisch private Konfigs verlässt und durch einen Bug eine Datei eben doch weltlesbar wird.
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
- whisper
- Beiträge: 3390
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Sicherheit von Conf Dateien in /etc/
Mann, mann mann, da habe ich aber in ein Wespennest gestochen.Cae hat geschrieben:Das ist andersrum, alles ist zunächst weltweit lesbar, bis auf kritische Teile, wie zum Beispiel die shadow, sudoers oder eine /etc/postfix/sasl/my-isp. Genau bei letzterer hast du wohl etwas falsch konfiguriert, wenn Klartextpasswörter in der main.cf stehen. Sowas wird als hash: von irgendwo eingebunden, und diese Datei ist dann 600. Jedes gescheite Konfigurationssystem unterstützt ein include dieser Art.
Die Idee ist nicht schlecht: Man muss auf die fünf geheimen Datensätze explizit aufpassen, und der Rest ist egal. Das ist besser als ein Fall, wo man sich auf automatisch private Konfigs verlässt und durch einen Bug eine Datei eben doch weltlesbar wird.
Gruß Cae
Nein, es sind keine postfixpasswörter in der main.cf, sie ist nur weltlesbar.
Ja natürlich sind da includes, die sind auch nicht weltlesbar, teilweise auch 0600.
Das ist doch gar nicht das Thema.
Macht doch nicht alle so ein Fass auf!
Ich sprechen einem Paket pmacct hat sein passwort leider in einer welt lesbaren Datei
Klar, soweit?
@ Cae, die Prinzipien sind mir völlig klar, deshalb ja dieser Post.
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
- whisper
- Beiträge: 3390
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Sicherheit von Conf Dateien in /etc/
Nein, das passwort steht per default da nicht drin, aber das userpasswort wird dort im conf (manuell)hinterlegt, wenn man das mysql plugin enabled.r900 hat geschrieben:Die einzige Ausnahme wären Dateien die aus einem dpkg-Dialog heraus konfiguriert werden und Passwörter dort reinschreiben. Da müssten dann auch entsprechende Dateirechte automatisch vergeben werden. Alle anderen Dateien sind recht unbedenklich. Die Dateien in die du selbst Passwörter einträgst.. Ja da musst du dir natürlich auch selbst überlegen wer die lesen darf und wer nicht. Hast du mal in die Datei /usr/share/doc/pmacct/README.Debian geschaut? Da stehen solche Hinweise gelegentlich drin.whisper hat geschrieben:Ist das nun schlamperei der Maintainer, oder doch meine eigene Dummheit Debian einfach zu vertrauen und nicht bei jedem neuen Paket rudimentäre Überprüfungen zu machen?
Nur ist eben die conf WELTLESBAR und das ist faslch, WEIL eben nachdem das pw dortdrin ist eine Sicherheitslücke ist, die nicht wegdiskutiert werden kann.,
Und ein Hinweis darauf fehlt auch.
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Sicherheit von Conf Dateien in /etc/
Also zuerst mal DU hast geschrieben
Wie soll man das denn sonst verstehen wenn nicht so wie die ähh 1, 2, 3, nein 4 Leute die dir darauf geantwortet haben. Also 4 von 4 Leuten verstehen dich falsch und das ist dann deren Schuld und nicht deine.. schon klarwhisper hat geschrieben:Ich dachte bisher eigentlich, dass die defaulteinstellungen von Debian so aussehen, das config Dateien von installierten Paketen nicht von anderen Usern zu lesen sind.
Die Sache ist doch ganz einfach. Schreibst du das Passwort da rein, dann ist es auch deine Angelegenheit die Rechte zu setzen. Schreibt ein Skript das Passwort rein, dann sollte das Skript die Rechte setzen oder darauf hinweisen dass das gemacht werden sollte. In dem Fall würde ich dann einen Bug gegen das Paket melden, in dem das Skript zu finden ist, das das Passwort in die Datei schreibt.whisper hat geschrieben:Nein, das passwort steht per default da nicht drin, aber das userpasswort wird dort im conf (manuell)hinterlegt, wenn man das mysql plugin enabled.
Nur ist eben die conf WELTLESBAR und das ist faslch, WEIL eben nachdem das pw dortdrin ist eine Sicherheitslücke ist, die nicht wegdiskutiert werden kann.,
Und ein Hinweis darauf fehlt auch.
- whisper
- Beiträge: 3390
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Sicherheit von Conf Dateien in /etc/
Naja, Die Datei könnte von vorn herein 0600 sein, weil niemand anders als das prg selbst es braucht.r900 hat geschrieben: Die Sache ist doch ganz einfach. Schreibst du das Passwort da rein, dann ist es auch deine Angelegenheit die Rechte zu setzen. Schreibt ein Skript das Passwort rein, dann sollte das Skript die Rechte setzen oder darauf hinweisen dass das gemacht werden sollte. In dem Fall würde ich dann einen Bug gegen das Paket melden, in dem das Skript zu finden ist, das das Passwort in die Datei schreibt.
Ja ich haben den Org Post editiert mit Farbmarkierung, weil es offensichtlich falsch verstanden wurde.
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
- r900
- Beiträge: 1053
- Registriert: 09.10.2011 20:06:11
- Lizenz eigener Beiträge: GNU Free Documentation License
- Wohnort: Stockholm
Re: Sicherheit von Conf Dateien in /etc/
Also ich kenne das Programm nicht und weiß nicht wer da was reinschreibt. Aber wenn in der Datei für gewöhnlich ein Passwort eingetragen werden muss damit man das Programm benutzen kann dann wäre 0600 als default gerechtfertigt. Oder eben ein Hinweis dass man besser ein verschlüsseltes Passwort einträgt oder so.
Re: Sicherheit von Conf Dateien in /etc/
Ja, Bug. Die Dokumentation erwähnt das Problem nicht und es gibt auch keine include-Direktive (die struct 36705 sieht nicht danach aus, und in usr/share/doc/pmacct/CONFIG-KEYS.gz kommt es ebenfalls nicht vor). Du kannst also nicht wie oben empfohlen nur die Passwort-Direktive mit 0600 auslagern. Also musst du die komplette Konfig auf 0600 setzen.whisper hat geschrieben:Ich sprechen einem Paket pmacct hat sein passwort leider in einer welt lesbaren Datei
Per Default sollte die Konfig aber mit normaler umask erstellt werden, da sich eben (noch) kein Passwort darin befindet.
Der Daemon stellt dieses Problem allerdings nicht selbst fest. Schöner wäre etwas wie
Code: Alles auswählen
Oct 5 23:07:17 testing pmacctd[5919]: INFO ( default/core ): Start logging ...
Oct 5 23:07:17 testing pmacctd[5920]: WARN: config file is WORLD READABLE and stores MySQL password!
Oct 5 23:07:17 testing kernel: [ 5884.308082] device lo entered promiscuous mode
Oct 5 23:07:17 testing pmacctd[5919]: OK ( default/core ): link type is: 1
Code: Alles auswählen
--- a/mysql_plugin.c
+++ b/mysql_plugin.c
@@ -670,7 +670,18 @@ void MY_init_default_values(struct insert_data *idata)
/* Linking database parameters */
if (!config.sql_user) config.sql_user = mysql_user;
if (!config.sql_db) config.sql_db = mysql_db;
- if (!config.sql_passwd) config.sql_passwd = mysql_pwd;
+ if (!config.sql_passwd)
+ config.sql_passwd = mysql_pwd;
+ else { /* asume we got the MySQL password from config file */
+ struct stat config_file_stat;
+ char config_file[] = "/etc/pmacct/pmacctd.conf"; /* FIXME: this is a FAKE -
+ TODO: find a way to read config_file from pmacctd.c:200 here */
+ if (-1 == stat(config_file, &config_file_stat))
+ Log(LOG_WARNING, "WARN: can't stat() config file to check permissions");
+ else
+ if (config_file_stat.st_mode & S_IROTH)
+ Log(LOG_WARNING, "WARN: config file is WORLD READABLE and stores MySQL password!");
+ }
if (!config.sql_table) {
if (config.sql_table_version == (SQL_TABLE_VERSION_BGP+1)) config.sql_table = mysql_table_bgp;
else if (config.sql_table_version == 8) config.sql_table = mysql_table_v8;
Beim pgsql-Plugin müsste es analog aussehen. Zur 0.12.0 in Squeeze sind Änderungen in der Datei gemacht worden, wodurch sich die Zeilennummern verändert haben. In dem gepatchten Bereich selbst hat sich aber nichts wesentliches getan (in 0.14.0 ist danach eine Zeile zur SQL-Tabellen-Version neu).
Sofern sich ein dpkg-Mechanismus tatsächlich darum kümmert, ja. Sonst aber nicht.r900 hat geschrieben:Aber wenn in der Datei für gewöhnlich ein Passwort eingetragen werden muss damit man das Programm benutzen kann dann wäre 0600 als default gerechtfertigt.
Das geht nicht, weil man wieder das Klartextpasswort zur Authentifizierung an der Datenbank braucht.r900 hat geschrieben:Oder eben ein Hinweis dass man besser ein verschlüsseltes Passwort einträgt oder so.
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier
- whisper
- Beiträge: 3390
- Registriert: 23.09.2002 14:32:21
- Lizenz eigener Beiträge: GNU Free Documentation License
-
Kontaktdaten:
Re: Sicherheit von Conf Dateien in /etc/
Danke Cae, deinen Patch werde ich nicht ausprobieren, da es sich um einen Produktivserver handelt.
An alle, die hier gepostet haben:
Ich habe mich im Topic missverständlich ausgedrückt, irgendwie habe ich nicht den richtigen Ton gefunden.
Ich bin durchaus in der Lage mein System weitestgehend abzusichern und ein chmod 600 für eine Konfig Datei stellt mich nun wirklich nicht vor große Herausforderungen.
Der Grund meines Postings war vielmehr meine Verwunderung, das ich ein offizielles Paket in Debian stable bestimmungsgemäß benutze und wenn ich denn dad plugin mysql (oder pgsql) benutze ein großes Sichertsloch in das eigentlich gut abgesicherte Grundsystem reiße, ohne das an irgendeiner Stelle darauf hingewiesen wird.
Die Tatsache, das ich es gefunden habe, heißt ja nun nicht, das es jedem Admin so gehen wird. Ich kann mir durchaus vorstellen, das man etliche Server findet, bei dem dieses Loch existent ist.
Natürlich ist es nur relevant, wenn andere user überhaupt auf das System per shell zugreifen, reine Webserver sind da schon mal nicht so sehr betroffen.
Wenn die sich einen ungebetenen Gast eingefangen haben, ist es sowieso zu spät.
Ps: um pmacct überhaupt mit mysql zum fliegen zu bringen muss man eh etwas basteln, out of the box geht es eh nicht.
pps: einen Bugreport schreibe ich nicht.
Meinen letzten habe ich immer noch an den Hacken, werde die emails einfach nicht los, das nervt einfach
An alle, die hier gepostet haben:
Ich habe mich im Topic missverständlich ausgedrückt, irgendwie habe ich nicht den richtigen Ton gefunden.
Ich bin durchaus in der Lage mein System weitestgehend abzusichern und ein chmod 600 für eine Konfig Datei stellt mich nun wirklich nicht vor große Herausforderungen.
Der Grund meines Postings war vielmehr meine Verwunderung, das ich ein offizielles Paket in Debian stable bestimmungsgemäß benutze und wenn ich denn dad plugin mysql (oder pgsql) benutze ein großes Sichertsloch in das eigentlich gut abgesicherte Grundsystem reiße, ohne das an irgendeiner Stelle darauf hingewiesen wird.
Die Tatsache, das ich es gefunden habe, heißt ja nun nicht, das es jedem Admin so gehen wird. Ich kann mir durchaus vorstellen, das man etliche Server findet, bei dem dieses Loch existent ist.
Natürlich ist es nur relevant, wenn andere user überhaupt auf das System per shell zugreifen, reine Webserver sind da schon mal nicht so sehr betroffen.
Wenn die sich einen ungebetenen Gast eingefangen haben, ist es sowieso zu spät.
Ps: um pmacct überhaupt mit mysql zum fliegen zu bringen muss man eh etwas basteln, out of the box geht es eh nicht.
pps: einen Bugreport schreibe ich nicht.
Meinen letzten habe ich immer noch an den Hacken, werde die emails einfach nicht los, das nervt einfach
Alter ist übrigens keine Ausrede, nur Erfahrung, die sich stapelt.
Re: [Gelöst] Sicherheit von Conf Dateien in /etc/
hi,
ein weiteres Exemplar für die Sammlung:
der Key sieht vielleicht verschlüsselt aus, aber genau so ist er im AP eingetragen und genau den braucht man für eine Verbindung.
ein weiteres Exemplar für die Sammlung:
/etc/wpa_supplicant/wpa_supplicant.conf gibt's bei meinem wheezy nicht, der netboot-installer (Installation über wlan) hat den Key woanders "versteckt":uname hat geschrieben:Kritisch wird es wenn Passwörter enthalten sind. Dann sind entweder die Passwörter zu verschlüsseln die Dateien zu sichern. Vielleicht kann mal jemand die Rechte für /etc/wpa_supplicant/wpa_supplicant.conf raussuchen. Darf bei mir jeder lesen jedoch mit einem verschlüsselten WPA-PSK-Key. Ist das so richtig?
Code: Alles auswählen
$ ls -l /etc/network/interfaces
-rw-r--r-- 1 root root 371 Oct 7 17:02 /etc/network/interfaces
$ cat /etc/network/interfaces
# This file describes the network interfaces available on your system
# and how to activate them. For more information, see interfaces(5).
# The loopback network interface
auto lo
iface lo inet loopback
# The primary network interface
allow-hotplug wlan0
iface wlan0 inet dhcp
wpa-ssid bndaussenstelle51
wpa-psk AwcL9hbo0W2CEGCFSlfyZIv
Beware of programmers who carry screwdrivers.
Re: [Gelöst] Sicherheit von Conf Dateien in /etc/
iSCSI mit iscsitarget und auf der Gegenseite open-iscsi haben ihre Konfigs per Default auch auf 0644, obwohl man zumindest in ersterer dauerhaft einen pre shared key einzutragen hat.
Gruß Cae
Gruß Cae
If universal surveillance were the answer, lots of us would have moved to the former East Germany. If surveillance cameras were the answer, camera-happy London, with something like 500,000 of them at a cost of $700 million, would be the safest city on the planet.
—Bruce Schneier