Berselancar dengan aman di Ubuntu. Berselancar Aman di Ubuntu Nonaktifkan Layanan yang Tidak Diperlukan





Banyak pengguna menganggap pop Ubuntu dan Server Ubuntu tidak serius. Banyak orang lupa bahwa Server Ubuntu didukung selama 5 tahun, dan ayah dari Debian 5.0 ada di pasaran selama 3 tahun - dari 2009 hingga 2012.

Dalam hal harga dukungan - dibandingkan dengan Red Hat, Server Ubuntu dapat dan harus dikatakan - Anda mendapatkannya secara gratis, bahkan jika Anda memesan dukungan sepanjang waktu 24x7x365.

Lihat solusi keamanan apa yang diterapkan di semua versi Ubuntu dan jadikan itu aman dan andal.

Kemungkinan

Matriks kemampuan keamanan

Peluang 8.04LTS(Heron Hardy) 10.04LTS(Lucid Lynx) 11.04 (Natty Narwhal) 11.10 (Ocelot Oneirik) 12.04LTS(Trenggiling Presisi) 12.10 (Quantal Quetzal)
Tidak ada port terbuka kebijakan kebijakan kebijakan kebijakan kebijakan kebijakan
Hash kata sandi md5 sha512 sha512 sha512 sha512 sha512
cookie SYN -- kernel & sysctl kernel & sysctl kernel & sysctl kernel & sysctl kernel & sysctl
Kemampuan sistem file -- inti inti inti inti inti
Firewall yang dapat dikonfigurasi ufw ufw ufw ufw ufw ufw
PR_SET_SECCOMP inti inti inti inti inti inti
AppArmor 2.1 2.5 2.6.1 2.7.0~beta1 2.7.0 2.7.0
SELinux semesta semesta semesta semesta semesta semesta
MEMUKUL -- inti inti inti inti inti
LVM terenkripsi penginstal alternatif penginstal alternatif penginstal alternatif penginstal alternatif penginstal alternatif penginstal alternatif
eCryptfs -- ~/Private atau ~, nama file ~/Private atau ~, nama file ~/Private atau ~, nama file ~/Private atau ~, nama file ~/Private atau ~, nama file
Perlindungan tumpukan gcc patch gcc patch gcc patch gcc patch gcc patch gcc patch
Perlindungan tumpukan glibc glibc glibc glibc glibc glibc
penunjuk yang dikaburkan glibc glibc glibc glibc glibc glibc
tumpukan ASLR inti inti inti inti inti inti
libs/mmap ASLR inti inti inti inti inti inti
Eksekusi ASLR kernel (-mm tambalan) inti inti inti inti inti
brk ASLR kernel (exec ASLR) inti inti inti inti inti
VDSO ASLR inti inti inti inti inti inti
Membangun dengan PIE -- daftar paket daftar paket daftar paket daftar paket daftar paket
-- gcc patch gcc patch gcc patch gcc patch gcc patch
Perakitan dengan RELRO -- gcc patch gcc patch gcc patch gcc patch gcc patch
Membangun dengan BIND_NOW -- daftar paket daftar paket daftar paket daftar paket daftar paket
Memori yang Tidak Dapat Dieksekusi hanya PAE PAE, ia32 parsial-NX-emulasi PAE, ia32 parsial-NX-emulasi PAE, ia32 parsial-NX-emulasi PAE, ia32 parsial-NX-emulasi
Melindungi /proc/$pid/maps kernel & sysctl inti inti inti inti inti
Batas tautan simbolik -- -- inti inti inti inti
Pembatasan tautan keras -- -- inti inti inti inti
ruang lingkup ptrace -- -- inti inti inti inti
perlindungan 0-alamat kernel & sysctl inti inti inti inti inti
Melindungi /dev/mem kernel (-mm tambalan) inti inti inti inti inti
Dinonaktifkan /dev/kmem kernel (-mm tambalan) inti inti inti inti inti
Pemblokiran pemuatan modul jatuhkan CAP_SYS_MODULES sysctl sysctl sysctl sysctl sysctl
inti inti inti inti inti inti
Perlindungan tumpukan kernel -- inti inti inti inti inti
modul RO/NX -- -- inti inti inti inti
-- -- inti inti inti inti
-- -- inti inti inti inti
Pemfilteran panggilan sistem -- -- -- inti inti inti

Tidak ada port terbuka

Instalasi default Ubuntu tidak memiliki port terbuka yang tersedia dari luar jaringan. Pengecualian aturan ini hanya untuk layanan infrastruktur jaringan seperti klien DHCP dan mDNS (Avahi/ZeroConf).

Ketika Server Ubuntu diinstal, administrator dapat menginstal layanan jaringan tambahan seperti server web Apache. Tetapi secara default, pada sistem yang baru diinstal, jika Anda melakukan netstat -an --inet | grep DENGARKAN | grep -v 127.0.0.1 , maka Anda dapat dengan mudah memverifikasi bahwa Ubuntu tidak perlu membuka port untuk akses dari jaringan ke sistem.

Hash kata sandi

Kata sandi sistem yang digunakan untuk masuk ke Ubuntu disimpan di /etc/shadow. Dulu, hash kata sandi DES disimpan di /etc/passwd. Tetapi Linux modern telah menyimpan hash di /etc/shadow untuk waktu yang lama dan pada awalnya hash crypt id 1 berbasis MD5 asin digunakan. Karena kata sandi yang sama memiliki hash yang sama tanpa menggunakan garam, pengenalan garam meningkatkan keamanan dan membuatnya lebih sulit untuk memecahkan kata sandi dari banyak pengguna sistem.

Sekarang MD5 dianggap tidak dapat diandalkan dan dengan pertumbuhan kemampuan komputasi komputer, dengan Ubuntu 8.10, hash SHA-512 dengan garam (hash kata sandi berbasis SHA-512 asin crypt id 6) digunakan. Hal ini membuat peretasan brute-force sangat sulit dan memakan waktu.

Lihat mancrypt untuk detailnya.

Gunakan test-glibc-security.py untuk pengujian.

cookie SYN

Saat sistem dibanjiri koneksi jaringan baru, mekanisme cookie SYN membantu mengurangi kerusakan akibat serangan banjir SYN.

Kemampuan sistem file

Kebutuhan akan aplikasi setuid yang berjalan dengan hak istimewa lebih tinggi daripada yang meluncurkannya dapat dikurangi dengan menggunakan fitur sistem file seperti xattrs. Kemampuan tersebut mengurangi risiko penyalahgunaan aplikasi setuid yang berpotensi berbahaya.

Kernel Linux mempertahankan dukungan dan ada toolkit libcap2-bin untuk menggunakan kemampuan file seperti xattrs untuk meningkatkan keamanan aplikasi setuid.

Gunakan test-kernel-security.py untuk pengujian.

Firewall yang dapat dikonfigurasi

ufw adalah front-end iptables yang diinstal dan digunakan di Ubuntu, tetapi harus diaktifkan oleh pengguna. UFW bertujuan untuk menyediakan antarmuka yang mudah digunakan bagi orang yang tidak terbiasa dengan konsep, rantai, dan tabel firewall iptables.

Pada saat yang sama, UFW menyederhanakan perintah iptables yang rumit untuk membantu administrator yang mengetahui apa yang dia lakukan.

UFW adalah asisten dan dasar untuk frontend grafis.

Gunakan tes ufw untuk tes.

PR_SET_SECCOMP

AppArmor

SELinux

SELinux adalah sistem kontrol akses wajib berdasarkan konsep inode - inode sistem file.

Menginstal paket selinux akan membuat perubahan dan penyesuaian yang diperlukan selama boot PC.

Gunakan test-kernel-security.py untuk pengujian.

MEMUKUL

SMACK adalah sistem kontrol akses wajib yang fleksibel berdasarkan konsep inode - deskriptor indeks sistem file.

Gunakan test-kernel-security.py untuk pengujian.

Enkripsi sistem file

Enkripsi LVM

Pengguna yang menggunakan penginstal Alternatif dapat menginstal Ubuntu pada LVM terenkripsi (Logical Volume Manage - Logical Volume Manager), yang akan mengenkripsi semua partisi, termasuk partisi swap.

eCryptfs

Folder terenkripsi pertama kali diterapkan di Ubuntu 8.10 sebagai tempat yang aman untuk menyimpan informasi pengguna yang sensitif.

Penginstal Disk Alternatif dan Server memungkinkan Anda mengatur folder terenkripsi untuk pengguna pertama.

Di Ubuntu 9.04, dukungan untuk enkripsi folder diperluas untuk memungkinkan pengguna mengenkripsi seluruh folder rumah. Enkripsi folder rumah didukung di penginstal Alternatif dan penginstal Desktop melalui opsi pengaturan-pengguna/enkripsi-rumah=benar.

Memperkuat Keamanan Ruang Pengguna

Banyak fitur keamanan diimplementasikan melalui flag kompilasi saat membangun paket perangkat lunak dan kernel.

Perlindungan tumpukan

Flag gcc -fstack-protector menyediakan perlindungan stack overflow dengan menempatkan nomor acak kecil sebagai token. Teknik ini membuat stack overflow lebih sulit untuk berbagai eksploitasi.

Sejumlah kecil program tidak berfungsi dengan baik jika dibuat dengan opsi ini dan -fstack-protector dinonaktifkan untuknya.

Gunakan test-gcc-security.py untuk pengujian.

Perlindungan tumpukan

Perlindungan tumpukan Perpustakaan GNU C (secara otomatis ptmalloc dan secara manual) memberikan perlindungan daftar rusak/putus tautan/bebas ganda/luapan di pengelola memori glibc.

Hal ini mencegah eksekusi kode arbitrer melalui limpahan memori heap, sehingga merusak struktur area heap.

Perlindungan ini telah berkembang dari waktu ke waktu, menambahkan lebih banyak opsi perlindungan. Dalam kondisi saat ini, glibc 2.10 berhasil menahan kondisi serangan yang halus sekalipun.

penunjuk yang dikaburkan

Beberapa pointer glibc dikaburkan melalui makro PTR_MANGLE/PTR_UNMANGLE secara internal di glibc, mencegah pointer ditimpa saat runtime.

Gunakan tes test-glibc-security.py.

Penempatan acak di ruang alamat. Pengacakan Tata Letak Ruang Alamat (ASLR)

ASLR diimplementasikan dalam kernel dan pemuat ELF menempatkan struktur paling penting di alamat acak: tumpukan, tumpukan, perpustakaan bersama, dan banyak lagi.

Hal ini mempersulit prediksi alamat saat penyerang mencoba menggunakan exploit.

ASLR diubah secara global melalui /proc/sys/kernel/randomize_va_space. Sebelum Ubuntu 8.10, nilainya adalah "1" (diaktifkan). Dalam rilis selanjutnya yang menyertakan brk ASLR, nilainya disetel ke "2" (diaktifkan dengan brk ASLR).

tumpukan ASLR

Hasil dari setiap eksekusi program ditempatkan di tempat yang berbeda pada stack. Sulit untuk menemukan di memori dan menyerang program dengan menambahkan muatan berbahaya.

libs/mmap ASLR

Pustaka dimuat secara dinamis ke lokasi memori yang berbeda, sehingga menyulitkan penyerang untuk menemukan titik kembali.

Perlindungan tersedia dari kernel 2.6.15 (Ubuntu 6.06).

Eksekusi ASLR

Program yang dibuat dengan opsi "-fPIE -pie" dimuat ke lokasi berbeda di memori. Ini membuatnya lebih sulit untuk menyerang atau melompat ke alamat untuk melakukan serangan modifikasi memori.

Perlindungan tersedia dari kernel 2.6.25 (Ubuntu 8.04 LTS).

brk ASLR

Seperti exec ASLR, brk ASLR menyesuaikan alamat memori antara exec dan brk untuk permintaan alokasi memori kecil. Pengacakan offset memori brk exec ditambahkan di kernel 2.6.26 (Ubuntu 8.10).

VDSO ASLR

Setiap kali program dijalankan, hasilnya ditempatkan di vdso yang berbeda. Pertama kali muncul di kernel 2.6.18 (x86, PPC) dan 2.6.22 (x86_64), tetapi tidak disertakan di Ubuntu 6.10 karena COMPAT_VDSO, yang telah dihapus di Ubuntu 8.04 LTS.

Melindungi dari serangan jump-to-syscall.

Hanya x86 yang didukung oleh glibc 2.6. glibc 2.7 (Ubuntu 8.04 LTS) sudah mendukung x86_64 ASLR vdso.

Mereka yang membutuhkan vdso pre-libc6 statis kuno dapat menggunakan "vdso=2" sebagai parameter kernel dan mendapatkan COMPAT_VDSO lagi.

Membangun dengan PIE

Semua program yang dibuat dengan opsi Position Independent Executables (PIE) "-fPIE -pie" dapat memanfaatkan perlindungan exec ASLR.

Ini melindungi terhadap serangan "return-to-text" dan menjadikan serangan modifikasi memori konvensional tidak berguna.

Karena PIE, ada penurunan kinerja yang besar (5-10%) pada arsitektur dengan sejumlah kecil register tujuan umum (seperti x86).

Oleh karena itu, PIE digunakan untuk sejumlah kecil paket keamanan kritis.

PIE untuk x86_64 tidak memiliki masalah penurunan kinerja, sehingga digunakan untuk semua paket, tetapi perlu pengujian yang lebih baik.

Kantong plastik 8.04LTS 9.04 9.10 10.04LTS 10.10 11.04 11.10
opensh Ya Ya Ya Ya Ya Ya Ya
apache2 -- Ya Ya Ya Ya Ya Ya
ikat9 -- Ya Ya Ya Ya Ya Ya
openldap -- Ya Ya Ya Ya Ya Ya
postfix -- Ya Ya Ya Ya Ya Ya
cangkir -- Ya Ya Ya Ya Ya Ya
postgresql-8.3 -- Ya Ya Ya Ya Ya Ya
samba -- Ya Ya Ya Ya Ya Ya
tempat perlindungan merpati -- Ya Ya Ya Ya Ya Ya
dhcp3 -- Ya Ya Ya Ya Ya Ya
ntp -- -- Ya Ya Ya Ya Ya
amavisd-new -- -- Ya Ya Ya Ya Ya
cumi-cumi -- -- Ya Ya Ya Ya Ya
cyrus-sasl2 -- -- Ya Ya Ya Ya Ya
exim4 -- -- Ya Ya Ya Ya Ya
nagios3 -- -- Ya Ya Ya Ya Ya
nagios-plugin -- -- Ya Ya Ya Ya Ya
xinetd -- -- Ya Ya Ya Ya Ya
IPSec-tools -- -- Ya Ya Ya Ya Ya
mysql-dfsg-5.1 -- -- Ya Ya Ya Ya Ya
memperlihatkan -- -- -- Ya Ya Ya Ya
firefox -- -- -- Ya Ya Ya Ya
gnome-control-center -- -- -- -- -- Ya Ya
bertengkar -- -- -- -- -- Ya Ya
totem -- -- -- -- -- Ya Ya
qemu-kvm -- -- -- -- -- -- Ya
pidgin -- -- -- -- -- -- Ya

Membangun dengan Memperkuat Sumber

Program yang dibuat dengan "-D_FORTIFY_SOURCE=2" (dan -O1 atau lebih tinggi) menyertakan beberapa perlindungan waktu kompilasi dan waktu proses di glibc:

  • panggilan "sprintf", "strcpy" dengan batasannya yang tidak ditentukan diganti dengan fungsi terkait dengan N yang dibatasi, ketika ukuran buffer diketahui sebelumnya. Ini melindungi dari luapan memori.
  • menghentikan serangan melalui format string "%n" saat string berada di segmen memori dengan akses tulis.
  • memerlukan pemeriksaan kode pengembalian dari fungsi dan argumen terpenting (misalnya, untuk sistem, tulis, buka).
  • memerlukan topeng eksplisit saat membuat file.

Perakitan dengan RELRO

Pengetatan untuk program ELF untuk memerangi penimpaan memori bootloader. Mengurangi kemungkinan serangan gaya GOT-overwrite.

Gunakan tes test-gcc-security.py.

Membangun dengan BIND_NOW

Menandai program ELF untuk mengizinkan karakter dinamis saat startup, bukan sesuai permintaan, juga dikenal sebagai "pengikatan langsung".

Ini membuat GOT sepenuhnya hanya-baca, dikombinasikan dengan opsi RELRO.

Gunakan pengujian test-built-binaries.py.

Memori yang Tidak Dapat Dieksekusi

Prosesor modern melindungi area memori data (tumpukan, tumpukan) dari eksekusi kode.

Teknologi ini dikenal sebagai Non-eXecute (NX) atau eXecute-Disable (XD). Perlindungan mengurangi kemampuan penyerang untuk menempatkan kode arbitrer.

Perlindungan membutuhkan "PAE", yang juga memungkinkan pengalamatan di atas 3 GB RAM. Kernel 64bit dan 32bit -server dan -generic-pae sudah dibangun dengan PAE.

Dimulai dengan Ubuntu 9.10, perlindungan ditiru sebagian pada kernel 32bit untuk prosesor yang tidak mendukung perangkat keras NX.

Setelah memuat, Anda dapat melihat tingkat dukungan untuk perlindungan NX:

  • Perangkat keras: [ 0,000000] Perlindungan NX (Execute Disable): aktif
  • Emulasi:
    [ 0,000000] Menggunakan batas segmen x86 untuk memperkirakan perlindungan NX

Jika Anda tidak melihat penyebutan NX, periksa pengaturan BIOS Anda. Sejak Ubuntu 11.04, pengaturan BIOS untuk NX diabaikan oleh kernel.

Ubuntu 9.04 dan sebelumnya
CPU mendukung NX CPU tidak mendukung NX
NX diaktifkan di BIOS NX dinonaktifkan di BIOS
i386 -386, -kernel generik (non-PAE) nx tidak didukung nx tidak didukung nx tidak didukung
-kernel server (PAE) nx nyata nx tidak didukung nx tidak didukung
amd64 inti apa pun (PAE) nx nyata nx tidak didukung nx tidak didukung

Gunakan pengujian test-kernel-security.py.

Melindungi /proc/$pid/maps

Saat ASLR berjalan, peta memori proses saat ini menjadi sangat berharga bagi penyerang. File peta hanya dapat dibaca oleh proses itu sendiri dan pemilik proses.

Tersedia sejak kernel 2.6.22.

Gunakan pengujian test-kernel-security.py.

Batas tautan simbolik

Cara paling umum untuk mengeksploitasi cacat ini adalah dengan memaksa root menggunakan tautan simbolik yang dibuat oleh penyerang untuk melakukan tindakan jahat sebagai root.

Pada Ubuntu 10.10, symlink dalam direktori seperti /tmp tidak dapat dilalui kecuali "pengikut" dan pemilik direktori sama dengan pemilik symlink.

Mekanisme ini dikendalikan oleh mekanisme Yama /proc/sys/kernel/yama/protected_sticky_symlinks. Yama dikembangkan oleh Canonical.

Gunakan pengujian test-kernel-security.py.

Pembatasan tautan keras

Jika direktori /etc/ dan /home/ berada di partisi yang sama, pengguna biasa dapat membuat tautan keras ke file hash kata sandi /etc/shadow di folder home mereka. Tentu saja, jika file tertentu tidak dapat dibaca atau ditulis oleh pengguna mana pun, tautan keras ke file tersebut akan memiliki izin yang sama dan karenanya tidak akan tersedia untuk pengguna tersebut. Namun, dengan menggunakan tautan keras, penyerang dapat "menyelipkan" file tersebut ke aplikasi yang memiliki hak untuk mengaksesnya.

Yama memungkinkan Anda memblokir serangan ini dengan mencegah pembuatan tautan keras oleh pengguna yang tidak memiliki hak akses ke file sumber.

Perilaku dikendalikan oleh /proc/sys/kernel/yama/protected_nonaccess_hardlinks Yama.

ruang lingkup ptrace

Tanpa menggunakan perlindungan Yama yang sesuai, setiap proses dengan hak istimewa CAP_SYS_PTRACE dapat mengakses memori semua proses dengan UID yang sama. Saat menggunakan Yama, dimungkinkan untuk membatasi ruang lingkup akses hanya ke memori yang dimiliki oleh keturunan dari proses tersebut proses.

Di Ubuntu 10.10 dan yang lebih baru, pengguna tidak dapat men-debug proses dengan ptrace kecuali jika mereka adalah keturunannya.

Perilaku dikendalikan oleh /proc/sys/kernel/yama/ptrace_scope Yama.

Gunakan pengujian test-kernel-security.py.

Mengeraskan kernel

Mengaktifkan pertahanan kernel untuk mempersulit serangan.

perlindungan 0-alamat

Karena kernel dan ruang pengguna berbagi alamat memori virtual, memori "NULL" harus dilindungi dan memori "pengguna" tidak dapat dimulai pada alamat 0, sehingga mencegah dereferensi alamat kernel - serangan "dereferensi NULL".

Perlindungan tersedia sejak kernel 2.6.22 melalui parameter sysctl "mmap_min_addr". Pada Ubuntu 9.04 mmap_min_addr dibangun ke dalam kernel - alamat 64k di x86, 32k di ARM.

Gunakan pengujian test-kernel-security.py.

Melindungi /dev/mem

Beberapa aplikasi, seperti Xorg, memerlukan akses langsung ke memori fisik di ruang pengguna. File khusus /dev/mem menyediakan akses ini.

Di masa lalu, dimungkinkan untuk melihat dan memodifikasi memori kernel melalui file ini jika penyerang memperoleh akses root.

Opsi CONFIG_STRICT_DEVMEM diperkenalkan untuk memblokir upaya tersebut (awalnya opsi ini disebut CONFIG_NONPROMISC_DEVMEM).

Gunakan pengujian test-kernel-security.py.

Dinonaktifkan /dev/kmem

Untuk pengguna modern, /dev/kmem tidak relevan, karena sebagian besar digunakan oleh penyerang untuk mengunduh rootkit.

CONFIG_DEVKMEM sekarang diatur ke "n".

File /dev/kmem ada di rilis dari Ubuntu 8.04 LTS ke Ubuntu 9.04, tetapi belum ditautkan atau digunakan di kernel.

Gunakan pengujian test-kernel-security.py.

Pemblokiran pemuatan modul

Di Ubuntu 8.04 LTS dan sebelumnya, dimungkinkan untuk menghapus fitur CAP_SYS_MODULES dan dengan demikian mencegah modul kernel baru dimuat.

Ini adalah lapisan perlindungan lain, agar tidak mengunduh rootkit pada awal sistem yang disusupi.

Di kernel 2.6.25 (Ubuntu 8.10) fungsi ini hilang. Pada Ubuntu 9.10 sekarang dimungkinkan untuk menonaktifkan modul lagi dengan menyetel /proc/sys/kernel/modules_disabled ke "1".

Gunakan pengujian test-kernel-security.py.

Bagian data hanya baca

Menandai bagian data kernel sebagai read-only memastikan bahwa perubahan diblokir. Ini membantu melindungi terhadap beberapa rootkit. Diaktifkan melalui opsi CONFIG_DEBUG_RODATA.

Gunakan pengujian test-kernel-security.py.

Perlindungan tumpukan kernel

Selain melindungi program ELF di ruang pengguna, kernel dapat melindungi tumpukan internalnya melalui opsi CONFIG_CC_STACKPROTECTOR.

Gunakan pengujian test-kernel-security.py.

modul RO/NX

Fitur ini memperluas CONFIG_DEBUG_RODATA untuk menyertakan pembatasan pada modul kernel yang dimuat. Ini membantu untuk melawan eksploitasi. Diaktifkan melalui parameter CONFIG_DEBUG_MODULE_RONX.

Gunakan pengujian test-kernel-security.py.

Pembatasan Tampilan Alamat Kernel

Saat penyerang mencoba mengembangkan eksploit yang berfungsi di mana saja menggunakan kerentanan kernel, mereka perlu mengetahui lokasi struktur kernel internal.

Alamat kernel, sebagai informasi penting, tidak dapat diakses oleh pengguna biasa.

Dimulai dengan Ubuntu 11.04, /proc/sys/kernel/kptr_restrict diatur ke "1" dan memblokir kebocoran informasi alamat kernel.

Juga, berbagai file dan direktori dibuat hanya-baca oleh root.
/boot/vmlinuz*, /boot/System.map*, /sys/kernel/debug/, /proc/slabinfo

Gunakan pengujian test-kernel-security.py.

Daftar hitam protokol langka

Biasanya kernel memungkinkan semua protokol jaringan dimuat secara otomatis sesuai permintaan melalui makro MODULE_ALIAS_NETPROTO(PF_...).

Karena banyak dari protokol ini sudah ketinggalan zaman, jarang, dan tidak banyak digunakan oleh rata-rata pengguna Ubuntu, dan mungkin mengandung kerentanan yang tidak diketahui, mereka telah masuk daftar hitam sejak Ubuntu 11.04.

Daftar hitam: ax25, netrom, x25, rose, decnet, econet, rds dan af_802154.

Jika salah satu dari protokol ini diperlukan, mereka dapat dimuat melalui modprobe atau dengan mengedit /etc/modprobe.d/blacklist-rare-network.conf.

Gunakan pengujian test-kernel-security.py.

Pemfilteran panggilan sistem

Program dapat memfilter panggilan kernel menggunakan seccomp_filter.

Ini dilakukan dalam wadah atau kotak pasir untuk lebih membatasi perangkat lunak yang berpotensi tidak tepercaya.

Gunakan pengujian test-kernel-security.py.

Hasil

Setelah membaca, jelas bahwa Canonical menganggap serius keamanan Ubuntu. Dua proyek, AppArmor dan Yama, telah lama dikaitkan dengan Ubuntu dan membantu meningkatkan keamanan. Ubuntu, secara default, tidak membuka pintu port yang tidak perlu di jaringan dan tidak menunggu koneksi petualangan di kepalanya. Profil AppArmor telah dibuat untuk program utama yang bekerja dengan jaringan, yang menjaga program tetap terkendali.

Komputer Anda akan aman dengan Ubuntu!

Ada kesalahpahaman umum bahwa server yang menjalankan OS Linux adalah yang paling aman dan terlindung dari intrusi luar. Sayangnya, tidak demikian, keamanan server mana pun bergantung pada sejumlah faktor dan tindakan untuk memastikannya, dan secara praktis tidak bergantung pada sistem operasi yang digunakan.

Kami memutuskan untuk memulai serangkaian artikel tentang keamanan jaringan dengan Server Ubuntu, karena solusi pada platform ini sangat menarik bagi pembaca kami dan karena banyak yang percaya bahwa solusi Linux itu sendiri aman.

Pada saat yang sama, router dengan alamat IP khusus adalah "gerbang" ke jaringan lokal, dan itu hanya akan bergantung pada administrator apakah gerbang ini akan menjadi penghalang yang dapat diandalkan atau apakah itu akan menjadi gerbang negara yang tertutup. dengan anyelir.

Kesalahpahaman umum lainnya, dengan alasan gaya: "tetapi siapa yang membutuhkannya, server kami, kami tidak memiliki sesuatu yang menarik." Memang, jaringan lokal Anda mungkin tidak menarik bagi penyerang, namun, mereka dapat menggunakan server yang diretas untuk mengirim spam, serangan ke server lain, proxy anonim, singkatnya, sebagai titik awal untuk perbuatan gelap mereka.

Dan ini sudah tidak menyenangkan dan bisa menjadi sumber berbagai masalah: dari penyedia hingga aparat penegak hukum. Dan Anda tidak boleh melupakan penyebaran virus, pencurian dan penghancuran informasi penting, serta fakta bahwa waktu henti suatu perusahaan menyebabkan kerugian yang cukup nyata.

Terlepas dari kenyataan bahwa artikel ini didedikasikan untuk Server Ubuntu, pertama-tama kami akan mempertimbangkan masalah keamanan umum yang berlaku sama untuk platform apa pun dan merupakan dasar-dasarnya, tanpanya tidak masuk akal untuk membahas masalah ini secara lebih rinci.

Dari mana keamanan dimulai?

Tidak, keamanan tidak dimulai dengan firewall, tidak dimulai dengan perangkat keras sama sekali, keamanan dimulai dengan pengguna. Lagipula, apa gunanya pintu besi paling keren yang dipasang oleh spesialis terbaik jika pemiliknya meninggalkan kuncinya di bawah permadani?

Oleh karena itu, hal pertama yang harus Anda lakukan adalah melakukan audit keamanan. Jangan takut dengan kata ini, semuanya tidak terlalu sulit: buat rencana jaringan skema tempat Anda menandai zona aman, zona potensi bahaya, dan zona bahaya yang meningkat, dan juga buat daftar pengguna yang memiliki (harus memiliki) akses ke zona ini.

Zona aman harus mencakup sumber daya jaringan internal yang tidak dapat diakses dari luar dan tingkat keamanan yang rendah dapat diterima. Ini bisa berupa workstation, server file, dll. akses perangkat yang dibatasi oleh jaringan lokal perusahaan.

Zona potensi bahaya harus mencakup server dan perangkat yang tidak memiliki akses langsung ke jaringan eksternal, tetapi beberapa layanannya dapat diakses dari luar, misalnya server web dan email yang terletak di belakang firewall, tetapi pada saat yang sama melayani permintaan dari jaringan eksternal.

Zona bahaya harus menyertakan perangkat yang dapat diakses langsung dari luar, idealnya harus satu router.

Jika memungkinkan, zona yang berpotensi berbahaya harus dipindahkan ke subnet terpisah - zona demiliterisasi (DMZ), yang dipisahkan dari jaringan utama oleh firewall tambahan.

Perangkat LAN seharusnya hanya dapat mengakses layanan di DMZ yang mereka butuhkan, seperti SMTP, POP3, HTTP, koneksi lain harus diblokir. Ini secara andal akan mengisolasi penyerang atau malware yang mengeksploitasi kerentanan dalam layanan terpisah dengan zona demiliterisasi, memblokir akses mereka ke jaringan utama.

Secara fisik, DMZ dapat diatur dengan menginstal firewall server / perangkat keras terpisah atau dengan menambahkan kartu jaringan tambahan ke router, tetapi dalam kasus terakhir, Anda harus memperhatikan keamanan router. Tetapi bagaimanapun juga, jauh lebih mudah untuk mengamankan satu server daripada sekelompok server.

Langkah selanjutnya adalah menganalisis daftar pengguna, apakah semuanya memerlukan akses ke DMZ dan ke router (kecuali layanan publik), perhatian khusus harus diberikan kepada pengguna yang terhubung dari luar.

Ini biasanya membutuhkan langkah yang sangat tidak populer untuk menerapkan kebijakan kata sandi. Semua kata sandi pengguna dengan akses ke layanan kritis dan dengan kemampuan untuk terhubung dari luar harus mengandung setidaknya 6 karakter dan mengandung, selain huruf kecil, karakter dari dua dari tiga kategori: huruf besar, angka, karakter non-alfabet.

Selain itu, kata sandi tidak boleh menyertakan login pengguna atau bagian darinya, tidak boleh berisi tanggal dan nama yang dapat dikaitkan dengan pengguna, dan sebaiknya tidak berupa kata kamus.

Sebaiknya biasakan mengganti kata sandi setiap 30-40 hari. Jelas bahwa kebijakan semacam itu dapat menyebabkan penolakan dari pihak pengguna, tetapi Anda harus selalu ingat bahwa kata sandi seperti itu 123 atau qwerty setara dengan kunci yang tertinggal di bawah permadani.

Keamanan server - tidak lebih.

Sekarang, memiliki gagasan tentang apa yang ingin kita lindungi dan dari apa, mari beralih ke server itu sendiri. Buat daftar semua layanan dan layanan, lalu pertimbangkan apakah semuanya diperlukan di server khusus ini, atau apakah dapat dipindahkan ke suatu tempat.

Semakin sedikit layanan, semakin mudah untuk memastikan keamanan, semakin kecil kemungkinan server disusupi melalui kerentanan kritis di salah satunya.

Konfigurasikan layanan jaringan lokal (seperti squid) untuk hanya menerima permintaan dari antarmuka lokal. Semakin sedikit layanan yang tersedia secara eksternal, semakin baik.

Asisten keamanan yang baik adalah pemindai kerentanan yang harus memindai antarmuka eksternal server. Kami menggunakan versi demo dari salah satu produk paling terkenal - XSpider 7.7.

Pemindai menunjukkan port terbuka, mencoba menentukan jenis layanan yang berjalan dan, jika berhasil, kerentanannya. Seperti yang Anda lihat, sistem yang dikonfigurasi dengan benar cukup aman, tetapi Anda tidak boleh meninggalkan kunci di bawah matras, keberadaan port terbuka 1723 (VPN) dan 3389 (RDP, diteruskan ke server terminal) pada router adalah hal yang baik alasan untuk berpikir tentang kebijakan kata sandi.

Secara terpisah, ada baiknya berbicara tentang keamanan SSH, layanan ini biasanya digunakan oleh administrator untuk manajemen server jarak jauh dan sangat menarik bagi penyusup. Pengaturan SSH disimpan dalam file /etc/ssh/sshd_config, semua perubahan yang dijelaskan di bawah dibuat untuk itu. Pertama-tama, Anda harus menonaktifkan otorisasi di bawah pengguna root, untuk melakukan ini, tambahkan opsi:

IzinRootLogin no

Sekarang penyerang harus menebak tidak hanya kata sandi, tetapi juga login, sementara dia masih belum mengetahui kata sandi pengguna super (kami harap kata sandi Anda tidak cocok). Semua tugas administratif saat menghubungkan dari luar harus dilakukan dari bawah sudo dengan masuk sebagai pengguna yang tidak memiliki hak istimewa.

Sebaiknya tentukan secara eksplisit daftar pengguna yang diizinkan, sementara Anda dapat menggunakan catatan seperti pengguna@host, yang memungkinkan pengguna yang ditentukan untuk terhubung hanya dari host yang ditentukan. Misalnya, untuk mengizinkan pengguna ivanov terhubung dari rumah (IP 1.2.3.4), tambahkan entri berikut:

IzinkanPengguna [email dilindungi]

Nonaktifkan juga penggunaan protokol SSH1 yang kedaluwarsa dan kurang aman, hanya mengizinkan versi kedua dari protokol, untuk melakukan ini, ubah baris berikut ke formulir:

Protokol 2

Terlepas dari semua tindakan yang diambil, masih akan ada upaya untuk terhubung ke SSH dan layanan publik lainnya, untuk mencegah tebakan kata sandi, gunakan utilitas fail2ban, yang memungkinkan Anda untuk mencekal pengguna secara otomatis setelah beberapa upaya otorisasi yang gagal. Anda dapat menginstalnya dengan perintah:

sudo apt-get install fail2ban

Utilitas ini siap untuk bekerja segera setelah penginstalan, namun kami menyarankan Anda untuk segera mengubah beberapa parameter, untuk ini, lakukan perubahan pada file /etc/fail2ban/jail.conf. Secara default, hanya akses ke SSH yang dikontrol dan waktu pemblokiran adalah 10 menit (600 detik), menurut kami perlu ditingkatkan dengan mengubah opsi berikut:

Bantime = 6000

Kemudian telusuri file dan aktifkan bagian untuk layanan yang berjalan di sistem Anda dengan menyetel parameter setelah nama bagian yang sesuai diaktifkan menjadi negara bagian BENAR, misalnya untuk layanan proftpd itu akan terlihat seperti ini:


diaktifkan = benar

Parameter penting lainnya maxretry, yang bertanggung jawab atas jumlah maksimum upaya koneksi. Setelah mengubah pengaturan, jangan lupa untuk me-restart layanan:

sudo /etc/init.d/fail2ban restart

Anda dapat melihat log utilitas di /var/log/fail2ban.log.

Pada konferensi tahunan LinuxCon 2015, pembuat kernel GNU/Linux, Linus Torvalds, membagikan pandangannya tentang keamanan sistem. Ia menekankan perlunya memitigasi efek keberadaan bug tertentu dengan perlindungan yang mumpuni, sehingga jika salah satu komponen gagal, lapisan berikutnya menutupi masalah tersebut.

Pada artikel ini kami akan mencoba mengungkap topik ini dari sudut pandang praktis:

7. Instal firewall

Baru-baru ini, ada kerentanan baru yang memungkinkan serangan DDoS di server yang menjalankan Linux. Bug di inti sistem telah muncul sejak versi 3.6 pada akhir 2012. Kerentanan memungkinkan peretas menyuntikkan virus ke dalam file unduhan, halaman web, dan mengekspos koneksi Tor, dan tidak perlu banyak upaya untuk meretas - metode spoofing IP akan berfungsi.

Kerusakan maksimum untuk koneksi HTTPS atau SSH terenkripsi adalah gangguan koneksi, tetapi penyerang dapat memasukkan konten baru, termasuk malware, ke lalu lintas yang tidak terlindungi. Untuk melindungi dari serangan semacam itu, firewall cocok.

Blokir akses dengan Firewall

Firewall adalah salah satu alat terpenting untuk memblokir lalu lintas masuk yang tidak diinginkan. Kami menyarankan Anda hanya mengizinkan lalu lintas yang benar-benar perlu Anda lewati dan sepenuhnya memblokir semua lalu lintas lainnya.

Untuk pemfilteran paket, sebagian besar distribusi Linux memiliki pengontrol iptables. Ini biasanya digunakan oleh pengguna tingkat lanjut, dan untuk konfigurasi yang disederhanakan, Anda dapat menggunakan utilitas UFW di Debian/Ubuntu atau FirewallD di Fedora.

8. Nonaktifkan layanan yang tidak perlu

Pakar dari University of Virginia merekomendasikan untuk mematikan semua layanan yang tidak Anda gunakan. Beberapa proses latar belakang disetel untuk memuat otomatis dan berjalan hingga sistem dimatikan. Untuk mengonfigurasi program ini, Anda perlu memeriksa skrip inisialisasi. Layanan dapat dimulai melalui inetd atau xinetd.

Jika sistem Anda dikonfigurasi melalui inetd, maka di file /etc/inetd.conf Anda dapat mengedit daftar program latar belakang "daemon", untuk menonaktifkan pemuatan layanan, cukup beri tanda "#" di awal baris, mengubahnya dari yang dapat dieksekusi menjadi komentar.

Jika sistem menggunakan xinetd, maka konfigurasinya akan berada di direktori /etc/xinetd.d. Setiap file direktori mendefinisikan layanan yang dapat dinonaktifkan dengan menentukan klausa disable = yes, seperti dalam contoh ini:

Jari layanan ( socket_type = aliran tunggu = tidak ada pengguna = tidak ada server = /usr/sbin/in.fingerd nonaktifkan = ya )
Ada baiknya juga memeriksa proses persisten yang tidak dikelola oleh inetd atau xinetd. Anda dapat mengonfigurasi skrip startup di direktori /etc/init.d atau /etc/inittab. Setelah perubahan dilakukan, jalankan perintah di bawah akun root.

/etc/rc.d/init.d/inet mulai ulang

9. Lindungi server secara fisik

Tidak mungkin untuk bertahan sepenuhnya dari serangan oleh penyerang dengan akses fisik ke server. Oleh karena itu, perlu mengamankan ruangan tempat sistem Anda berada. Pusat data menangani keamanan dengan serius, membatasi akses ke server, memasang kamera keamanan, dan menunjuk penjaga terus-menerus.

Untuk memasuki pusat data, semua pengunjung harus melalui langkah-langkah otentikasi tertentu. Juga sangat disarankan untuk menggunakan sensor gerak di semua area pusat.

10. Lindungi server dari akses yang tidak sah

Sistem akses yang tidak sah, atau IDS, mengumpulkan data tentang konfigurasi dan file sistem dan kemudian membandingkan data ini dengan perubahan baru untuk menentukan apakah perubahan tersebut berbahaya bagi sistem.

Misalnya, alat Tripwire dan Aide mengumpulkan database file sistem dan melindunginya dengan sekumpulan kunci. Psad digunakan untuk melacak aktivitas mencurigakan melalui pelaporan firewall.

Bro dirancang untuk memantau jaringan, melacak pola aktivitas yang mencurigakan, mengumpulkan statistik, menjalankan perintah sistem, dan menghasilkan peringatan. RKHunter dapat digunakan untuk melindungi dari virus, paling sering rootkit. Utilitas ini memindai sistem Anda terhadap basis data kerentanan yang diketahui dan dapat mendeteksi pengaturan yang tidak aman dalam aplikasi.

Kesimpulan

Alat dan pengaturan yang tercantum di atas akan membantu Anda melindungi sebagian sistem, tetapi keamanan bergantung pada perilaku dan pemahaman Anda tentang situasinya. Tanpa perhatian, kehati-hatian, dan pembelajaran mandiri yang konstan, semua tindakan perlindungan mungkin tidak berhasil.

Menurut cvedetails.com, 1.305 kerentanan telah ditemukan di kernel Linux sejak 1999, 68 di antaranya ditemukan pada 2015. Kebanyakan dari mereka tidak membawa masalah khusus, mereka ditandai sebagai Lokal dan Rendah, dan beberapa hanya dapat dipanggil dengan mengacu pada aplikasi atau pengaturan OS tertentu. Pada prinsipnya, jumlahnya kecil, tetapi kernel bukanlah keseluruhan OS. Kerentanan juga ditemukan di GNU Coreutils, Binutils, glibs dan, tentu saja, di aplikasi pengguna. Mari kita analisis yang paling menarik.

KERENTANAN DALAM LINUX KERNEL

sistem operasi: linux
Tingkat: Sedang, Rendah
Vektor: Terpencil
CVE: CVE-2015-3331, CVE-2015-4001, CVE-2015-4002, CVE-2015-4003
mengeksploitasi: konsep, https://lkml.org/lkml/2015/5/13/740 , https://lkml.org/lkml/2015/5/13/744

Kerentanan yang ditemukan pada bulan Juni di kernel Linux sebelum 3.19.3 di fungsi __driver_rfc4106_decrypt di file arch/x86/crypto/aesni-intel_glue.c disebabkan oleh fakta bahwa implementasi RFC4106 untuk prosesor x86 yang mendukung AES AES- Ekstensi set perintah NI (Intel yang diusulkan, Intel Advanced Encryption Standard Instructions) salah menghitung alamat buffer dalam beberapa kasus. Jika terowongan IPsec dikonfigurasi untuk menggunakan mode ini (algoritme AES adalah CONFIG_CRYPTO_AES_NI_INTEL), kerentanan dapat menyebabkan kerusakan memori, crash, dan kemungkinan eksekusi kode CryptoAPI jarak jauh. Dan yang paling menarik adalah masalahnya bisa muncul dengan sendirinya, di lalu lintas yang sepenuhnya legal, tanpa campur tangan pihak luar. Pada saat posting, masalah telah diperbaiki.

Di driver Linux 4.0.5 ozwpan, yang berstatus eksperimental, lima kerentanan telah diidentifikasi, empat di antaranya memungkinkan pengorganisasian serangan DoS melalui kernel crash dengan mengirimkan paket yang dibuat khusus. Masalahnya terkait dengan buffer overflow karena penanganan yang salah dari bilangan bulat yang ditandatangani, di mana perhitungan dalam memcpy antara required_size dan offset menghasilkan angka negatif, akibatnya, data disalin ke heap.

Ditemukan di fungsi oz_hcd_get_desc_cnf di driver/staging/ozwpan/ozhcd.c dan di fungsi oz_usb_rx dan oz_usb_handle_ep_data di file driver/staging/ozwpan/ozusbsvc1.c. Dalam kerentanan lain, ada situasi kemungkinan pembagian dengan 0, loop sistem, atau kemampuan membaca dari area di luar batas buffer yang dialokasikan.

Driver ozwpan, salah satu tambahan terbaru Linux, dapat dipasangkan dengan perangkat nirkabel yang kompatibel dengan teknologi Ozmo Devices (Wi-Fi Direct). Menyediakan implementasi pengontrol host USB, tetapi triknya adalah alih-alih koneksi fisik, periferal berkomunikasi melalui Wi-Fi. Pengemudi menerima paket jaringan dengan tipe (ethertype) 0x892e, lalu mem-parsingnya dan menerjemahkannya ke berbagai fungsionalitas USB. Ini digunakan dalam kasus yang jarang terjadi sejauh ini, sehingga dapat dinonaktifkan dengan membongkar modul ozwpan.ko.

Linux Ubuntu

sistem operasi: Linux Ubuntu 12.04–15.04 (Kernel sebelum 15 Juni 2015)
Tingkat: Kritis
Vektor: Lokal
CVE: CVE-2015-1328
mengeksploitasi: https://www.exploit-db.com/exploits/37292/

Kerentanan kritis dalam sistem file OverlayFS memungkinkan mendapatkan hak akses root pada sistem Ubuntu yang memungkinkan pengguna yang tidak memiliki hak untuk me-mount partisi OverlayFS. Pengaturan default yang diperlukan untuk mengeksploitasi kerentanan digunakan di semua cabang Ubuntu 12.04-15.04. OverlayFS sendiri muncul di kernel Linux relatif baru - sejak 3.18-rc2 (2014), ini adalah pengembangan SUSE untuk menggantikan UnionFS dan AUFS. OverlayFS memungkinkan Anda membuat sistem file berlapis virtual yang menggabungkan beberapa bagian dari sistem file lain.

FS dibuat dari lapisan bawah dan atas, yang masing-masing dilampirkan ke direktori terpisah. Lapisan bawah hanya digunakan untuk membaca di direktori sistem file apa pun yang didukung oleh Linux, termasuk sistem jaringan. Lapisan atas biasanya dapat ditulisi dan akan menimpa data lapisan bawah jika file digandakan. Ini diminati dalam distribusi Live, sistem virtualisasi kontainer, dan untuk mengatur pengoperasian kontainer dari beberapa aplikasi desktop. Ruang nama untuk pengguna (ruang nama pengguna) memungkinkan Anda membuat kumpulan pengidentifikasi pengguna dan grup Anda sendiri dalam wadah. Kerentanan disebabkan oleh pemeriksaan hak akses yang salah saat membuat file baru di direktori FS yang mendasarinya.

Jika kernel dikompilasi dengan CONFIG_USER_NS=y (aktifkan ruang nama pengguna) dan flag FS_USERNS_MOUNT ditentukan pada pemasangan, OverlayFS dapat dipasang oleh pengguna biasa di ruang nama yang berbeda, termasuk di mana operasi root diperbolehkan. Pada saat yang sama, operasi dengan file dengan hak root yang dilakukan di ruang nama tersebut menerima hak istimewa yang sama saat melakukan operasi dengan FS yang mendasarinya. Oleh karena itu, Anda dapat memasang partisi FS apa pun dan melihat atau memodifikasi file atau direktori apa pun.

Pada saat publikasi, pembaruan kernel sudah tersedia dengan modul OverlayFS yang ditambal dari Ubuntu. Dan jika sistemnya mutakhir, seharusnya tidak ada masalah. Dalam kasus yang sama, saat pembaruan tidak memungkinkan, sebagai tindakan sementara, Anda harus berhenti menggunakan OverlayFS dengan menghapus modul overlayfs.ko.

KERENTANAN DALAM APLIKASI UTAMA

sistem operasi: linux
Tingkat: Kritis
Vektor: lokal, jauh
CVE: CVE-2015-0235
mengeksploitasi: https://www.qualys.com/research/security-advisories/exim_ghost_bof.rb

Kerentanan berbahaya di perpustakaan standar GNU glibc, yang merupakan bagian utama dari OS Linux, dan di beberapa versi Aplikasi Komunikasi Oracle dan Oracle Pillar Axiom, ditemukan selama audit kode oleh peretas dari Qualys. Menerima nama kode GHOST. Ini melibatkan buffer overflow di dalam fungsi __nss_hostname_digits_dots() , yang digunakan oleh fungsi glibc seperti gethostbyname() dan gethostbyname2() (maka nama GetHOST) untuk mendapatkan nama host. Untuk mengeksploitasi kerentanan, Anda harus menyebabkan buffer overflow dengan argumen hostname yang tidak valid ke aplikasi yang menjalankan resolusi nama melalui DNS. Artinya, secara teoritis, kerentanan ini dapat diterapkan pada aplikasi apa pun yang menggunakan jaringan sampai batas tertentu. Dapat dipanggil secara lokal dan jarak jauh, memungkinkan kode arbitrer dieksekusi.

Hal yang paling menarik adalah bug tersebut diperbaiki kembali pada Mei 2013, antara rilis glibc 2.17 dan 2.18 sebuah tambalan diajukan, tetapi masalahnya tidak diklasifikasikan sebagai tambalan keamanan, jadi tidak diperhatikan. Akibatnya, banyak distribusi yang rentan. Awalnya dilaporkan bahwa versi rentan pertama adalah 2.2 tanggal 10 November 2000, tetapi ada kemungkinan kemunculannya hingga 2.0. Distribusi RHEL/CentOS 5.x–7.x, Debian 7, dan Ubuntu 12.04 LTS terpengaruh, di antara kerentanan lainnya. Perbaikan saat ini tersedia. Peretas sendiri menawarkan utilitas yang menjelaskan inti dari kerentanan dan memungkinkan Anda untuk memeriksa sistem Anda. Di Ubuntu 12.04.4 LTS semuanya baik-baik saja:

$ wget https://goo.gl/RuunlE

$gcc gistfile1 . c-o CVE-2015-0235

$ . /CVE-2015-0235

tidak rentan

Memeriksa sistem untuk GHOST

Hampir seketika, modul k dirilis, yang memungkinkan Anda untuk mengeksekusi kode dari jarak jauh pada x86 dan x86_64 Linux dengan menjalankan server email Exim (dengan parameter helo_try_verify_hosts atau helo_verify_hosts diaktifkan). Belakangan muncul implementasi lain, seperti modul Metasploit untuk mengecek blog WordPress.

Beberapa saat kemudian, pada tahun 2015, tiga kerentanan lagi ditemukan di GNU glibc yang memungkinkan pengguna jarak jauh melakukan serangan DoS atau menimpa sel memori di luar batas tumpukan: CVE-2015-1472, CVE-2015-1473, CVE-2015- 1781.

sistem operasi: Linux (GNU Coreutils)
Tingkat: Rendah
Vektor: lokal, jauh
CVE: CVE-2014-9471
mengeksploitasi: TIDAK

GNU coreutils adalah salah satu paket *nix utama, termasuk hampir semua utilitas dasar (cat, ls, rm, date...). Masalah ditemukan di tanggal. Bug dalam fungsi parse_datetime memungkinkan penyerang jarak jauh tanpa akun di sistem menyebabkan penolakan layanan dan kemungkinan mengeksekusi kode arbitrer menggunakan string tanggal yang dibuat khusus menggunakan zona waktu. Kerentanan terlihat seperti ini:

$ sentuh '-- tanggal=TZ=”123”345”@1”

Kesalahan segmentasi

$ tanggal - d 'TZ = ”Eropa / Moskow ”“00 : 00 + 1 jam ”’

Kesalahan segmentasi

$tanggal '-- tanggal=TZ=”123”345”@1”

* * * Error pada `date ': free() : invalid pointer : 0xbfc11414 * * *

Kerentanan di GNU Coreutils

Jika tidak ada kerentanan, kami akan menerima pesan tentang format tanggal yang salah. Hampir semua pengembang distribusi Linux telah melaporkan adanya kerentanan tersebut. Pembaruan saat ini tersedia.


Keluaran normal dari GNU Coreutils yang ditambal

sistem operasi: Linux (grep 2.19–2.21)
Tingkat: Rendah
Vektor: Lokal
CVE: CVE-2015-1345
mengeksploitasi: TIDAK

Utilitas grep, yang digunakan untuk mencari teks berdasarkan pola, jarang menemukan kerentanan. Tetapi utilitas ini sering dipanggil oleh program lain, termasuk program sistem, sehingga keberadaan kerentanan jauh lebih bermasalah daripada yang terlihat pada pandangan pertama. Kesalahan dalam fungsi bmexec_trans di kwset.c dapat menyebabkan data yang tidak diinisialisasi dibaca dari area di luar buffer yang dialokasikan atau aplikasi macet. Ini dapat dimanfaatkan oleh peretas dengan membuat kumpulan data khusus yang disediakan sebagai input ke aplikasi menggunakan grep -F. Pembaruan saat ini tersedia. Tidak ada eksploit yang menggunakan kerentanan atau modul untuk Metasploit.

KERENTANAN DI FREEBSD

sistem operasi: FreeBSD
Tingkat: Rendah
Vektor: lokal, jauh
CVE: CVE-2014-0998, CVE-2014-8612, CVE-2014-8613
mengeksploitasi: https://www.exploit-db.com/exploits/35938/

Tidak banyak kerentanan dalam database CVE untuk tahun 2015, lebih tepatnya - hanya enam. Tiga kerentanan ditemukan di FreeBSD 8.4-10.x pada akhir Januari 2015 oleh para peneliti dari Tim Core Exploit Writers. CVE-2014-0998 terkait dengan implementasi driver konsol VT (Newcons) yang menyediakan beberapa terminal virtual yang diaktifkan oleh opsi kern.vty=vt di /boot/loader.conf.
CVE-2014-8612 memanifestasikan dirinya saat menggunakan protokol SCTP dan disebabkan oleh kesalahan dalam kode untuk memeriksa ID aliran SCTP yang mengimplementasikan soket SCTP (port lokal 4444). Intinya adalah kesalahan kehabisan memori dalam fungsi sctp_setopt() (sys/netinet/sctp_userreq.c). Ini memberi pengguna non-istimewa lokal kemampuan untuk menulis atau membaca 16 bit data memori kernel dan meningkatkan hak istimewa mereka pada sistem, mengekspos data sensitif, atau mematikan sistem.

CVE-2014-8613 memungkinkan dereferensi penunjuk null dipicu saat memproses paket SCTP yang diterima secara eksternal dengan menyetel opsi soket SCTP_SS_VALUE SCTP. Berbeda dengan yang sebelumnya, CVE-2014-8613 dapat digunakan untuk merusak kernel dari jarak jauh dengan mengirimkan paket yang dibuat khusus. Di FreeBSD 10.1, Anda dapat melindungi diri sendiri dengan menyetel variabel net.inet.sctp.reconfig_enable ke 0, sehingga menonaktifkan pemrosesan blok RE_CONFIG. Atau cukup nonaktifkan aplikasi (browser, klien email, dll.) agar tidak menggunakan koneksi SCTP. Meskipun pada saat publikasi, pengembang telah merilis pembaruan.


Statistik Kerentanan FreeBSD

KERENTANAN DALAM OPENSSL

sistem operasi: BukaSSL
Tingkat: Terpencil
Vektor: Lokal
CVE: CVE-2015-1793
mengeksploitasi: TIDAK

Pada tahun 2014, kerentanan Heartbleed kritis ditemukan di OpenSSL, paket kriptografi yang banyak digunakan untuk bekerja dengan SSL/TLS. Insiden tersebut pada suatu waktu menimbulkan kritik besar-besaran terhadap kualitas kode, dan di satu sisi hal ini menyebabkan munculnya alternatif seperti LibreSSL, di sisi lain, para pengembang sendiri akhirnya turun ke bisnis.

Vendor teratas berdasarkan kerentanan

Kerentanan kritis ditemukan oleh Adam Langley dari Google dan David Benjamin dari BoringSSL. Perubahan yang dilakukan di OpenSSL versi 1.0.1n dan 1.0.2b menyebabkan OpenSSL mencoba menemukan rantai verifikasi sertifikat alternatif jika upaya pertama untuk membangun rantai kepercayaan gagal. Ini memungkinkan Anda untuk melewati prosedur verifikasi sertifikat dan mengatur koneksi terverifikasi menggunakan sertifikat palsu, dengan kata lain, dengan tenang memikat pengguna ke situs palsu atau server email, atau menerapkan serangan MITM apa pun yang menggunakan sertifikat.

Setelah ditemukannya kerentanan, para pengembang pada 9 Juli merilis rilis 1.0.1p dan 1.0.2d, di mana masalah ini telah diperbaiki. Versi 0.9.8 atau 1.0.0 tidak memiliki kerentanan ini.

Linux.Encoder

Akhir musim gugur ditandai dengan munculnya sejumlah virus enkripsi, pertama Linux.Encoder.0, diikuti oleh modifikasi Linux.Encoder.1 dan Linux.Encoder.2, yang menginfeksi lebih dari 2500 situs. Menurut perusahaan antivirus, server di Linux dan FreeBSD dengan situs web yang berjalan menggunakan berbagai CMS - WordPress, CMS Magento, Joomla, dan lainnya sedang diserang. Peretas menggunakan kerentanan yang tidak ditentukan. Selanjutnya, skrip shell (file error.php) ditempatkan, dengan bantuan tindakan lebih lanjut dilakukan (melalui browser). Secara khusus, trojan encoder Linux diluncurkan.

Encoder, yang menentukan arsitektur OS dan meluncurkan ransomware. Encoder diluncurkan dengan hak server web (Ubuntu - www-data), yang cukup untuk mengenkripsi file di direktori tempat file dan komponen CMS disimpan. File terenkripsi mendapatkan ekstensi .encrypted baru.

Ransomware juga mencoba melewati direktori OS lain, jika hak tidak dikonfigurasi dengan benar, maka itu bisa melampaui batas situs web. Selanjutnya, file README_FOR_DECRYPT.txt disimpan di direktori, berisi instruksi untuk mendekripsi file dan persyaratan peretas. Saat ini, perusahaan anti-virus telah memperkenalkan utilitas yang memungkinkan Anda mendekripsi direktori. Misalnya, satu set dari Bitdefender. Tetapi Anda harus ingat bahwa semua utilitas yang dirancang untuk mendekripsi file tidak menghapus kode shell dan semuanya bisa terjadi lagi.

Mengingat banyak pengguna yang mengembangkan atau bereksperimen dengan administrasi situs web sering memasang server web di komputer rumah mereka, Anda harus mengkhawatirkan keamanan: memblokir akses dari luar, memperbarui perangkat lunak, dan bereksperimen di VM. Dan idenya sendiri dapat digunakan di masa mendatang saat menyerang sistem rumah.

KESIMPULAN

Perangkat lunak kompleks tanpa bug tidak ada secara fisik, jadi Anda harus menerima kenyataan bahwa kerentanan akan selalu ditemukan. Tapi tidak semuanya bisa menghadirkan masalah nyata. Dan Anda dapat melindungi diri sendiri dengan mengambil langkah-langkah sederhana: hapus perangkat lunak yang tidak digunakan, pantau kerentanan baru dan pastikan untuk menginstal pembaruan keamanan, konfigurasikan firewall, instal antivirus. Dan jangan lupakan teknologi khusus seperti SELinux, yang cukup mampu membahayakan daemon atau aplikasi pengguna.

Instalasi dan konfigurasi alat administrasi, konfigurasi jaringan

Setelah kami menginstal sistem operasi dasar ubuntu14.04 dari distribusi minimal, hal pertama yang harus dipertimbangkan adalah bagaimana mengelolanya dengan nyaman. Pada dasarnya, ssh/telnet digunakan untuk mengonfigurasi dan mengelola server berbasis * nix, tetapi baru-baru ini alat berbasis web juga muncul cukup cocok untuk ini. Saya menggunakan solusi gratis webmin Dan Ajenti. Kedua panel ini patut mendapat perhatian, dan terlepas dari kenyataan bahwa mereka dapat melakukan semuanya secara individual, masing-masing panel lebih baik untuk sesuatu, jadi lebih baik memiliki keduanya. Saya harus mencatat bahwa pada server produksi tempur, solusi semacam itu tidak dipasang atas dasar keamanan. Namun, semakin banyak sistem kontrol, semakin besar kemungkinan untuk menemukan kerentanan di dalamnya. Oleh karena itu, jika persyaratan keamanan Anda berada pada level "paranoia", terima saja fakta bahwa Anda harus bekerja dengan server hanya melalui ssh (melalui konsol).

pengaturan jaringan di ubuntu 14.04

Untuk berkomunikasi dengan server kami melalui jaringan, Anda harus mengonfigurasinya terlebih dahulu. Secara default, selama penginstalan, jaringan dikonfigurasi secara otomatis, dan jika penginstal menemukan server DHCP di jaringan, kemungkinan besar ia telah mengonfigurasi semua yang diperlukan. Jika tidak ada server DHCP di jaringan, penginstal masih mengonfigurasi semuanya berdasarkan polling router yang terhubung dengan kartu jaringan. Untuk melihat bagaimana jaringan saat ini dikonfigurasi, cukup ketik terminal:

Apa yang kita lihat di sini:

Kami memiliki dua antarmuka jaringan eth0 dan lo di mana lo adalah "antarmuka loopback" dan eth0 adalah nama kartu jaringan kami, dan jika lo adalah antarmuka jaringan yang tidak berubah, maka semua antarmuka lain dapat memiliki nama yang berbeda. Jika dua kartu jaringan dipasang di unit sistem, kemungkinan besar antarmuka mereka akan terlihat seperti eth0 dan eth1, dan seterusnya. Munculnya nama antarmuka tergantung pada jenis kartu jaringan, misalnya jika kartu jaringan bekerja menggunakan protokol WiFi, kemungkinan besar akan bernama wlan0.

Untuk mengkonfigurasi jaringan, edit file berikut:

sudo nano /etc/network/interfaces

Mari kita bawa ke formulir ini:

iface eth0 inet statis
alamat 192.168.0.184
netmask 255.255.255.0
gerbang 192.168.0.1
otomatis eth0
dns-server nama 8.8.8.8 8.8.4.4

Di mana: iface eth0 inet statis- menunjukkan bahwa antarmuka (iface eth0) berada dalam kisaran alamat IPv4 (inet) dengan ip statis (statis);
alamat 192.168.0.184- menunjukkan bahwa alamat IP (alamat) kartu jaringan kami adalah 192.168.0.184;
netmask 255.255.255.0- menunjukkan bahwa subnet mask (netmask) kita adalah 255.255.255.0;
gerbang 192.168.0.1- alamat gateway default 192.168.0.254;
otomatis eth0- menunjukkan kepada sistem bahwa antarmuka eth0 harus diaktifkan secara otomatis saat sistem mem-boot dengan parameter di atas.
et0— nama antarmuka yang terhubung. Daftar antarmuka dapat dilihat dengan mengetikkan ifconfig
dns-nameservers- Server DNS ditulis dengan spasi.

Seperti yang Anda lihat dalam kasus saya, saya memutuskan untuk menetapkan ip statis 192.168.0.184

restart server dengan perintah

Kami melakukan ping ke server kami dari jaringan dan memastikannya terlihat. Sekarang saatnya membuat koneksi dengannya melalui SSH, untuk ini kami akan menginstal server ssh:

sudo apt-get install ssh

Sekarang Anda dapat terhubung ke server kami melalui ssh melalui program dempul, misalnya, sekarang Anda dapat memasukkan perintah tidak secara manual, tetapi dengan menyalin dan menempelkan baris yang kami perlukan ke klien ssh, karena di masa mendatang ini akan sangat memudahkan konfigurasi, karena Anda akan segera melihat sendiri:

SEMUA PERINTAH DI BAWAH BARIS INI DIMASUKKAN ATAS NAMA PENGGUNA SUPER, dan untuk masuk ke mode superuser, Anda harus mengetik:

Menginstal webmin

echo "deb https://download.webmin.com/download/repository sarge contrib" >> /etc/apt/sources.list echo "deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib" >> /etc/apt/sources.list wget https://www.webmin.com/jcameron-key.asc apt-key add jcameron-key.asc apt-get update apt-get install -y webmin

gema "deb https://download.webmin.com/download/repository sarge contrib">>

gema "deb https://webmin.mirror.somersettechsolutions.co.uk/repository sarge contrib">> /etc/apt/sources. daftar

wgethttps : //www.webmin.com/jcameron-key.asc

apt - key add jcameron - key . asc

pembaruan apt-get

apt - dapatkan instal - y webmin

Semua! 6 perintah yang dimasukkan secara berurutan dan webmin diinstal dan dikonfigurasi. Sekarang Anda dapat melalui browser di alamat:

https://192.168.0.184:10000

Secara default, webmin terlihat minimalis, antarmuka ditampilkan dalam bahasa Inggris secara default, tetapi semuanya dapat disesuaikan!

Kami melakukannya seperti ini:

Ternyata seperti ini: