Peretasan GNU/Linux - ee.unsoed.ac.idstwn/kul/pai083213/ethack-2012-11.pdf · menggunakan program...
Transcript of Peretasan GNU/Linux - ee.unsoed.ac.idstwn/kul/pai083213/ethack-2012-11.pdf · menggunakan program...
Tahun Ajaran 2011/2012
Peretasan GNU/LinuxEthical Hacking and Countermeasures (PAI 083213)
Program Studi Teknik Informatika, Unsoed
Iwan Setiawan <stwn at unsoed.ac.id>
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Free Software/Sofware Merdeka
● Perangkat lunak yang memberikan kemerdekaan pada penggunanya untuk:● menggunakan program untuk berbagai tujuan,
● mempelajari bagaimana program bekerja dan memodifikasi sesuai kebutuhan,
● menyebarluaskan salinan program sehingga kita dapat membantu sesama,
● meningkatkan program dan menyebarkan modifikasinya sehingga masyarakat mendapatkan manfaat.
● Sifat dasar manusia adalah berbagi.
● Perangkat lunak proprietary/nonfree menghalangi manusia untuk hidup secara sosial di masyarakat.
● Baca https://gnu.org/philosophy/freesw.html.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Sejarah Kernel Linux
● Linux adalah sistem operasi/kernel bergaya Unix yang bebas dan terbuka, baik pengembangan maupun distribusinya.
● Dibuat pertama kali oleh Linus Torvalds saat menjadi mahasiswa di Universitas Helsinki.
● Versi 0.01 dirilis tahun 1991 di bawah lisensi GNU General Public License (GPL) versi 2.
● Linux = perangkat lunak bebas/merdeka (Free Software).
● Awalnya hanya dikembangkan untuk arsitektur perangkat keras Intel x86, kemudian berkembang ke banyak arsitektur dan tipe komputer, dari ponsel sampai superkomputer.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Corbet, dkk. 2012. Linux Kernel Development, The Linux Foundation
Frekuensi Rilis Kernel Linux
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Corbet, dkk. 2012. Linux Kernel Development, The Linux Foundation
Kontributor Kernel Linux (TOP10)
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Pengembangan Kernel Linux
● Pemutakhiran kernel Linuxstabil dirilis dalam waktu 23 bulan, dengan fitur baru yang signifikan, tambahan dukungan perangkat keras, dan peningkatan unjuk kerja.
● Laju perubahan di kernel Linux terkini: 8.00012.000 tambalan/patch setiap rilis.
● Setiap rilis berisi kontribusi lebih dari 1.000 pengembang mewakili ~200 perusahaan.
● Bertambah kode sumbernya 815 juta baris sejak 2010.
● Microsoft muncul sebagai kontributor kernel Linux untuk penggerak/driver HyperV.
● Baca Corbet, dkk. 2012. Linux Kernel Development, The Linux Foundation.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Given enough eyeballs,all bugs are shallow.
– Linus Torvalds
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Desain sistem Linux lebihaman daripada Windows.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
GNU/Linux dan Distribusi Linux
● Kernel Linux, pustaka, dan programprogram pendukung yang kebanyakkan berasal dari proyek GNU disebut GNU/Linux. “Linux”
● Distribusi GNU/Linux adalah sepaket kernel Linux, pustaka, programprogram pendukung, aplikasi, pengelolaan perangkat lunak, dan pemasang/installer. “Distro Linux”
● Perintah dan perkakas standar Unix disediakan oleh distribusi GNU/Linux.
● Tipe pengguna: root dan pengguna biasa.● Terdapat grup akses, dan ijin akses untuk pengguna, grup,
dan semua orang.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
LiveCD dan LiveUSB
● Cocok untuk pengguna baru atau perkakas pertolongan pertama/rescue.
● Kita dapat menggunakan sistem GNU/Linux “di atas” CD/DVD atau flashdrive, tanpa harus memasangnya di hard drive.
● Unduh distro Live, kemudian bakar ke CD/DVD atau flashdrive.
● Gunakan program seperti UNetbootin untuk membuat LiveUSB. Coba buat LiveUSB BackTrack.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Shell
● Shell: antarmuka baris perintah tempat pengguna memasukkan perintah ke sistem Linux (interpreter).
● Kendali perintah, sejarah perintah, pengelolaan banyak proses, redirection, skrip shell, …
● Jenisjenis shell di sistem GNU/Linux.● C shell (csh): shell yang bahasa skripnya mirip dengan C.● Bourne shell (sh): shell klasik yang digunakan di banyak sistem
bergaya Unix.● GNU Bourne Again Shell (bash): shell yang banyak digunakan dan
disertakan oleh distribusi Linux, memiliki fitur lanjut seperti commandcompletion.
● Korn shell (ksh), tcsh, zsh, dash, dan lainlain.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Sistem Berkas dan Perintah (1)
● “Semua yang ada di Linux adalah berkas”.
● Casesensitive.
● Tidak umum menggunakan karakter “/”, “?”, “*”, “”, dan spasi.● Titik di depan nama berkas/direktori akan menyembunyikan
berkas/direktori tersebut.
● Hierarki sistem berkas di Linux: /, /bin, /etc, /lib, /opt, /proc, /sbin, /sys, /usr, /var, /tmp.
● Tidak ada nama drive A, B, C, D, dst.
● Perintahperintah untuk meramban sistem berkas: cd, ls, mkdir, rmdir, cp, mv, find.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Sistem Berkas dan Perintah (2)
● Struktur informasi berkas di Linux. Contoh:● drwxrxrx 7 stwn stwn 4096 Apr 18 19:20 tmp● Direktori tmp dengan akses rwx untuk pengguna, rx untuk grup dan
semua pengguna, dimiliki oleh pengguna dan grup stwn, berukuran 4096 bita, waktu modifikasi 18 April pukul 19.20.
● Tipe berkas: link (l), directory (d), block device (b), character device (c).
● Perintahperintah untuk melihat berkas: cat, head, tail, more, less.
● Perintahperintah jaringan di Linux: arp, ifconfig, netstat, nslookup, ps, route, traceroute, ...
● Perintah informasi lengkap perintah:● man [perintah]● man ls
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Kompilasi Kernel Linux (1)
● Kode sumber kernel Linux tersedia bebas, karena Linux merupakan perangkat lunak merdeka/Free Software.
● Beberapa alasan pengguna melakukan kompilasi ulang kernel Linux:● menyertakan perangkat lunak penggerak/driver ke dalam kernel Linux, misal
perangkat keras yang kita punyai baru (sekali),
● memperbaiki kutu/bug dengan menambal kernel Linux yang kita pakai,
● kebutuhan fitur pada kernel Linux yang lebih baru,
● melakukan optimasi agar sistemnya lebih gegas dan hemat sumber daya.
● Secara umum pengguna biasa tidak memerlukan kompilasi kernel Linux. Jika ingin memutakhirkannya, pengguna tinggal menggunakan program pengelola paket dari distribusi GNU/Linux yang digunakan.
● Ambil kode sumber kernel Linux dari situs resminya di kernel.org melalui paket tarball atau repositori git.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
$ gpg --verify linux-3.4.2.tar.sign linux-3.4.2.tar.bz2gpg: Signature made Sat Jun 9 22:37:11 2012 WIT using RSA key ID 6092693Egpg: BAD signature from "Greg Kroah-Hartman (Linux kernel stable release signing key) <[email protected]>"
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Kompilasi Kernel Linux (2)
● Salin paket tarball kernel Linux ke direktori sumber: cp linux3.4.2.tar.bz2 /usr/src/
● Masuk ke direktori tersebut: cd /usr/src/
● Ekstrak paket kernel Linux: tar jxvf linux3.4.2.tar.bz2
● Melakukan konfigurasi kernel Linux: make menuconfig
● Melakukan kompilasi kernel Linux: make atau make bzImage
● Melakukan kompilasi modul kernel: make modules
● Salin image kernel hasil kompilasi ke direktori /boot: cp /usr/src/linux3.4.2/[path]/bzImage /boot/vmlinuz3.4.2
● Pasang modulmodul kernel: make modules_install
● Konfigurasi bootloader: updategrub
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Perintah Kompilasi GCC
● GNU Compiler Collection (GCC) adalah sebuah kompilator untuk bahasa pemrograman seperti C, C++, ObjectiveC, Fortran, Java, Ada, dan Go.
● Untuk kode sumber berbahasa C:● gcc Wall kode.c o kode
● Untuk kode sumber berbahasa C++:● g++ kode.cpp o kode
● README, automake, autoconf, libtool.● Menjalankan hasil kompilasi dengan: ./kode
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Perangkat keras
Aplikasi AplikasiAplikasi
Shared Runtime Librariesmode pengguna
mode kernel
Antarmuka System Call
Komponen Device Driver
memorymanager
taskmanager
filemanager
networkmanager
SO/Kernel
Cruse, B.A. 2004. CS 326: Operating Systems.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
built-in vs. modul
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Modul Kernel Linux
● Menambah fungsionalitas tanpa melakukan kompilasi ulang kernel Linux.
● Rootkit dapat berbentuk modul kernel Linux.
● Contoh rootkit berbasis modul kernel Linux: Knark, Adore, Rtkit, Torn, Tuxit, Ramen, Beastkit.
● Peretas/perengkah dapat menyimpan modul kernel di direktori mana pun di sistem berkas GNU/Linux.
● Setelah terpasang, modul kernel rootkit akan menyembunyikan proses, berkas, koneksi jaringan, backdoor, termasuk system call.
● Perintah memuat modul kernel: modprobe [modul]
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Keamanan Sistem GNU/Linux (1)
● Hardening: proses meningkatkan keamanan sistem dengan melakukan modifikasi.
● Keamanan fisik. “Lokasi/posisi menentukan prestasi”. Misal: letakkan sistem di pusat data.
● Menggunakan kata sandi yang kuat, menyediakan akses terbatas, dan tidak berbagi akses ke sistem.
● Kebijakan default, deny all.● cat “ALL: ALL” >> /etc/hosts.deny● /sbin/iptables P INPUT DROP
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Keamanan Sistem GNU/Linux (2)
● Mematikan atau menghapus layanan dan programprogram yang tidak diperlukan. Lihat tujuan sistem.
● Memutakhirkan sistem. Sesuaikan dengan distribusi GNU/Linux yang digunakan.
● Memantau sistem dengan melihat catatan/log dan tingkah lakunya.
● Menyiapkan perkakas pemindai dan pemulihan sistem. Contoh: LiveUSB, chkrootkit.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Pemasangan Distribusi GNU/Linux
● Gunakan distribusi yang dikenal stabil, aman, dan termutakhirkan dengan baik. Misal: Debian GNU/Linux.
● Buat partisi sesuai skema dengan pertimbangan keamanan, contoh: memisahkan partisi /tmp.
● Menambal dan memutakhirkan sistem setelah distribusi GNU/Linux terpasang.
● Mengaktifkan iptables dan memasang HIDS.
● Tidak memasang program atau layanan yang tidak diperlukan.
● Aktifkan fitur keamanan lanjut jika diperlukan.
● Melindungi BIOS, bootloader, dan mode singleuser dengan kata sandi.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
/etc/sysctl.conf
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Mengamankan Sistem Berkas Lokal
● Memeriksa ijin akses berkas dan direktori.● Gunakan perintah find untuk mencari berkas dan direktori,
dan chmod untuk mengubah ijin akses.● Berikan akses bacatulis untuk pengguna, dan selektif ketika
memberikan akses tulis pada grup atau semua orang.● Periksa berkas biner yang mempunyai ijin akses SETUID.
● Periksa opsi perintah mount seperti nosuid untuk sistem berkas lokal, misal diterapkan pada direktori /tmp yang partisinya terpisah.
● Lakukan enkripsi data pada sistem.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Konfigurasi Layanan
● Menghapus dan menonaktifkan layanan yang tidak diperlukan.● Direktori berisi skrip init layanan: /etc/init.d/.● Perintah menonaktifkan layanan: /etc/init.d/[servis] stop, service [servis] stop, updaterc.d f [servis] remove.
● Gunakan versi program layanan yang termutakhir.
● Jika memungkinkan, jalankan program layanan sebagai pengguna biasa dalam direktori terisolasi (chroot jail).
● Mengaktifkan pencatatan/logging pada berkas terpisah, tidak tersimpan dalam satu berkas dengan catatan sistem yang lain.
● Melakukan konfigurasi keamanan spesifik pada layananlayanan yang tersedia di dalam sistem.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Mengamankan Akun root
● Memilih kata sandi yang kuat dan menggantinya secara berkala.
● Membatasi penggunaan perintah su.● Menggunakan sudo untuk memberikan
pengguna biasa hak root saat menjalankan perintah tertentu, dan batasi penggunaannya.
● Tidak masuk ke sistem langsung menjadi root.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Akun Pengguna
● Melakukan konfigurasi pembatasan default untuk pembuatan pengguna di dalam sistem.
● Melakukan konfigurasi /etc/skel dan berkas inisialisasi.
● Memastikan akunakun sistem dinonaktifkan untuk masuk ke sistem, misal dengan memberikan shell /bin/false.
● Menghapus akunakun yang tidak diperlukan.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Akses Jarak Jauh
● Menonaktifkan akses tanpa kata sandi pada /etc/hosts.equiv dan .rhosts.
● Menggunakan SSH dan mematikan rlogin, rsh, telnet, ftp, rcp, dan lainlain.
● Menjalankan SSH pada porta di atas 1024.● Menonaktifkan pengguna root masuk/login
langsung.● /etc/ssh/sshd_config: PermitRootLogin no
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Pemantauan Sistem
● Konfigurasi fasilitas pencatatan dengan syslog atau rsyslog.
● Jika memungkinkan, salin secara otomatis catatan sistem ke peladen terpusat.
● Pasang program pemeriksa dan pemantau integritas sistem berkas lokal seperti tripwire/aide/integrit.
● Rancang dan implementasikan rencana pemantauan catatan sistem untuk mengetahui insideninsiden yang terjadi pada sistem.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Lain-Lain
● Hapus kode sumber kernel dan paketpaket program yang tidak digunakan.
● Tambahkan host baru pada konfigurasi keamanan pada sistem lain.
● Aktifkan NIDS dan pantau catatan/alarmnya.● Periksa dan mutakhirkan paketpaket program
yang terpasang, bila perlu mengaktifkan pemutakhiran otomatis.
Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed
Intinya: tutup semua celah akses yang rentan.