Saya tidak memiliki akses ke instalasi Postgres, jadi saya tidak dapat memeriksa.
Saya seorang petugas keamanan, dan saya melihat kata sandi plaintext di log:
create user user1 with password 'PLAINTEXT PASSWORD'
Bagaimana DBA dapat mengubah atau membuat kata sandi mereka tanpa kata sandi yang jelas dalam log?
Saya telah melihat ini , yang menyatakan Anda dapat menggunakan hash md5 dari kata sandi, tetapi kemudian hash juga di hapus. Apakah ada cara yang lebih baik?
postgresql
postgresql-9.3
logs
password
schroeder
sumber
sumber
\password
perintahpsql
.Jawaban:
Kedengarannya seperti
log_statement
diatur keall
.Jika Anda ingin mencegah kata sandi muncul di log saat
log_statement
diatur ke nilai yang menangkapALTER USER
/ALTER ROLE
maka Anda akan ingin menimpanya ketika mengubah kata sandi. misalnyaAnda harus menjadi pengguna super untuk melakukan ini. Pengguna normal tidak dapat mengesampingkan aturan logging.
Akan lebih baik jika PostgreSQL didukung lesu beberapa parameter laporan (atau fungsi bahkan) sebagai pengguna keamanan-sensitif dan diizinkan untuk permintaan bahwa mereka bertopeng di log,
pg_stat_statements
,pg_stat_activity
, dll Ada saat ini tidak setiap fitur seperti - tapi hei, patch Selamat datang. Jika Anda benar-benar tertarik, posting di pgsql-hacker sebelum menulis kode yang sebenarnya sehingga Anda bisa mendapatkan saran dan komentar. Bergantian, berbicara dengan seseorang yang melakukan pengembangan kontrak.Secara umum PostgreSQL mengharapkan Anda untuk memperlakukan log sebagai sensitif.
Ada area lain di mana penebangan merupakan masalah keamanan yang serius. Misalnya beberapa
pgcrypto
fungsi mengambil kunci kripto sebagai parameter.sumber
Jawaban yang diterima saat ini tidak berfungsi untuk saya di Postgres 9.4, untuk mencegah kata sandi plaintext muncul di log.
Apa yang berhasil bagi saya adalah menghasilkan hash kata sandi secara lokal:
Lalu masukkan itu:
(Catatan keamanan: Bergantung di mana Anda menghasilkan hal di atas, Anda mungkin ingin mencegah shell Anda masuk ke riwayatnya, atau pada sistem bersama Anda mungkin ingin menggunakan utilitas * nix yang akan meminta kata sandi versus benar-benar memasukkannya ke dalam perintah. Saya kebetulan tidak berada di sistem bersama, jadi itu bukan masalah bagi saya.)
sumber