Peretasan GNU/Linux

394 views

Published on

Materi kuliah Ethical Hacking tahun ajaran 2011/2012.

Saya diminta mengajar mata kuliah ini di program studi Teknik Informatika[1], Unsoed. Tadinya saya menempatkan diri sebagai "ban serep" saja, ternyata memang tidak ada yang "berani".

Jadi, akhirnya saya mengajar dengan riang gembira, membaca buku serta menuliskan dan menceritakan sedikit pengalaman saya di dunia keamanan.

[1] Program studi "rumah" saya adalah Teknik Elektro.

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
394
On SlideShare
0
From Embeds
0
Number of Embeds
6
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Peretasan GNU/Linux

  1. 1. Peretasan GNU/Linux Ethical Hacking and Countermeasures (PAI 083213) Program Studi Teknik Informatika, Unsoed Iwan Setiawan <stwn at unsoed.ac.id> Tahun Ajaran 2011/2012
  2. 2. Cadillac, http://wired.com/autopia/2012/05/2013­cadillac­xts/  
  3. 3. Cadillac, http://wired.com/autopia/2012/05/2013­cadillac­xts/  
  4. 4. Cadillac, http://wired.com/autopia/2012/05/2013­cadillac­xts/  
  5. 5. kalleboo, CC BY, https://secure.flickr.com/photos/kalleboo/2473197800/  
  6. 6.   paulmmay, CC BY, https://secure.flickr.com/photos/paulmmay/2451273111/
  7. 7. http://businessinsider.com/linux­based­devices­2011­7
  8. 8. http://businessinsider.com/linux­based­devices­2011­7
  9. 9. http://businessinsider.com/linux­based­devices­2011­7
  10. 10.   John Dalton, CC BY­SA, https://secure.flickr.com/photos/varrqnuht/2230046171/
  11. 11. kodomut, CC BY, https://secure.flickr.com/photos/kodomut/5145992776/  
  12. 12. Burnt Pixel, CC BY­NC­ND, https://secure.flickr.com/photos/keithwj/2188856636/  
  13. 13. parl, CC BY­NC­ND, https://secure.flickr.com/photos/parl/5002682624/  
  14. 14.   Matt Biddulph, CC BY­SA, https://secure.flickr.com/photos/mbiddulph/3836727468/
  15. 15.   Saad Irfan, CC BY­NC­SA, https://secure.flickr.com/photos/saadirfan/5168981298/
  16. 16. Linux  
  17. 17. 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/non­free menghalangi manusia untuk hidup  secara sosial di masyarakat. Baca https://gnu.org/philosophy/free­sw.html.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  18. 18. Free Software atau Open Source?  
  19. 19. 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
  20. 20. Frekuensi Rilis Kernel Linux Corbet, dkk. 2012. Linux Kernel Development, The Linux Foundation   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  21. 21. Kontributor Kernel Linux (TOP10) Corbet, dkk. 2012. Linux Kernel Development, The Linux Foundation   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  22. 22. Pengembangan Kernel Linux ● ● ● ● ● ● Pemutakhiran kernel Linux­stabil dirilis dalam waktu 2­3 bulan,  dengan fitur baru yang signifikan, tambahan dukungan perangkat  keras, dan peningkatan unjuk kerja. Laju perubahan di kernel Linux terkini: 8.000­12.000 tambalan/patch  setiap rilis. Setiap rilis berisi kontribusi lebih dari 1.000 pengembang mewakili  ~200 perusahaan. Bertambah kode sumbernya 8­15 juta baris sejak 2010. Microsoft muncul sebagai kontributor kernel Linux untuk  penggerak/driver Hyper­V. Baca Corbet, dkk. 2012. Linux Kernel Development, The Linux  Foundation.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  23. 23. Kode sumbernya tersedia bebas, berarti mudah ketahuan dong kelemahannya?  
  24. 24. Given enough eyeballs, all bugs are shallow. – Linus Torvalds   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  25. 25. Desain sistem Linux lebih aman daripada Windows.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  26. 26. GNU/Linux dan Distribusi Linux ● ● ● ● ● Kernel Linux, pustaka, dan program­program pendukung  yang kebanyakkan berasal dari proyek GNU disebut  GNU/Linux. “Linux” Distribusi GNU/Linux adalah sepaket kernel Linux, pustaka,  program­program 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
  27. 27. 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
  28. 28. Shell ● ● ● Shell: antarmuka baris perintah tempat pengguna memasukkan  perintah ke sistem Linux (interpreter). Kendali perintah, sejarah perintah, pengelolaan banyak proses,  redirection, skrip shell, … Jenis­jenis 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 command­ completion. Korn shell (ksh), tcsh, zsh, dash, dan lain­lain.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  29. 29. Sistem Berkas dan Perintah (1) ● “Semua yang ada di Linux adalah berkas”. ● Case­sensitive. ● 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. Perintah­perintah untuk meramban sistem berkas: cd, ls,  mkdir, rmdir, cp, mv, find.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  30. 30. Sistem Berkas dan Perintah (2) ● Struktur informasi berkas di Linux. Contoh: ● ● ● ● ● ● drwxr­xr­x 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). Perintah­perintah untuk melihat berkas: cat, head, tail, more, less. Perintah­perintah 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
  31. 31. Kompilasi Kernel Linux  
  32. 32. 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), ● ● ● kebutuhan fitur pada kernel Linux yang lebih baru, ● ● memperbaiki kutu/bug dengan menambal kernel Linux yang kita pakai, 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
  33. 33.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  34. 34. $ gpg --verify linux-3.4.2.tar.sign linux-3.4.2.tar.bz2 gpg: Signature made Sat Jun 9 22:37:11 2012 WIT using RSA key ID 6092693E gpg: BAD signature from "Greg Kroah-Hartman (Linux kernel stable release signing key) <greg@kroah.com>"   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  35. 35. Kompilasi Kernel Linux (2) ● Salin paket tarball kernel Linux ke direktori sumber: cp linux­ 3.4.2.tar.bz2 /usr/src/ ● Masuk ke direktori tersebut: cd /usr/src/ ● Ekstrak paket kernel Linux: tar jxvf linux­3.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/linux­3.4.2/[path]/bzImage /boot/vmlinuz­ 3.4.2 ● Pasang modul­modul kernel: make modules_install ● Konfigurasi bootloader: update­grub   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  36. 36. Perintah Kompilasi GCC ● ● GNU Compiler Collection (GCC) adalah sebuah  kompilator untuk bahasa pemrograman seperti C,  C++, Objective­C, 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
  37. 37. Modul Kernel Linux  
  38. 38. Aplikasi Aplikasi Aplikasi Shared Runtime Libraries mode pengguna mode kernel Antarmuka System Call memory manager task manager file manager network manager Komponen Device Driver SO/Kernel Perangkat keras Cruse, B.A. 2004. CS 326: Operating Systems. Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  39. 39. built-in vs. modul   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  40. 40. 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
  41. 41. Peningkatan Keamanan Sistem GNU/Linux  
  42. 42. 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
  43. 43. Keamanan Sistem GNU/Linux (2) ● ● ● ● Mematikan atau menghapus layanan dan  program­program 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
  44. 44. 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 single­user dengan  kata sandi.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  45. 45. /etc/sysctl.conf   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  46. 46. 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 baca­tulis 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
  47. 47. 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, update­rc.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 layanan­layanan  yang tersedia di dalam sistem.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  48. 48. 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
  49. 49. Akun Pengguna ● ● ● ● Melakukan konfigurasi pembatasan default  untuk pembuatan pengguna di dalam sistem. Melakukan konfigurasi /etc/skel dan berkas  inisialisasi. Memastikan akun­akun sistem dinonaktifkan  untuk masuk ke sistem, misal dengan  memberikan shell /bin/false. Menghapus akun­akun yang tidak diperlukan.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  50. 50. Akses Jarak Jauh ● ● ● ● Menonaktifkan akses tanpa kata sandi pada  /etc/hosts.equiv dan .rhosts. Menggunakan SSH dan mematikan rlogin, rsh,  telnet, ftp, rcp, dan lain­lain. 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
  51. 51. 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 insiden­insiden  yang terjadi pada sistem.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  52. 52. Lain-Lain ● ● ● ● Hapus kode sumber kernel dan paket­paket  program yang tidak digunakan. Tambahkan host baru pada konfigurasi  keamanan pada sistem lain. Aktifkan NIDS dan pantau catatan/alarmnya. Periksa dan mutakhirkan paket­paket program  yang terpasang, bila perlu mengaktifkan  pemutakhiran otomatis.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  53. 53. Intinya: tutup semua celah akses yang rentan.   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed
  54. 54. Daftar Bacaan ● ● EC­Council. 2008. Module XXII: Linux Hacking,  Ethical Hacking and Countermeasures Version  6 Graves, K. 2010. CEH: Certified Ethical Hacker  Study Guide, Sybex   Ethical Hacking and Countermeasures  (PAI 083213) ­ Program Studi Teknik Informatika, Unsoed

×