Selasa, 11 Juni 2013

SOFTWARE SECURITY - SQL Injection



SQL INJECTION 

Pengertian SQL Injection
SQL  injection  adalah  sebuah  aksi  hacking  yang  dilakukan  di  aplikasi  client dengan cara memodifikasi perintah SQL yang ada di memori aplikasi client.
SQL Injection  merupakan  teknik  mengeksploitasi  web  aplikasi  yang  didalamnya menggunakan database untuk penyimpanan data. 
Sebab terjadinya SQL Injection
1. Tidak  adanya  penanganan  terhadap  karakter  – karakter  tanda  petik  satu dan juga karakter double minus – yang menyebabkan suatu aplikasi dapat disipi dengan perintah SQL.
2. Sehingga seorang  Hacker  menyisipkan  perintah  SQL  kedalam  suatu  parameter maupun suatu form. 

Bug SQL Injection berbahaya ?
1. Teknik  ini  memungkinkan  seseorang  dapat  login  kedalam  sistem  tanpa  harus memiliki account. 
2. Selain itu  SQL  injection  juga  memungkinkan  seseorang  merubah,  menghapus, maupun menambahkan data–data yang berada didalam database.
3. Bahkan  yang  lebih  berbahaya  lagi  yaitu  mematikan  database  itu  sendiri, sehingga tidak bisa memberi layanan kepada web server.

Apa saja yang diperlukan untuk melakukan SQL Injection ?
1. Internet Exploler / Browser
2. PC yang terhubung internet
3. Program atau software seperti softice

Contoh sintaks SQL Injection
Contoh sintak SQL dalam PHP :
1. $SQL  =  “select  *  from  login  where  username  = $username   and  password  = „$password ”; , {dari GET atau POST variable }
2. isikan password dengan string   or    =  
3. hasilnya  maka  SQL  akan  seperti  ini  =  “select      *  from  login  where  username
=   $username   and  password= pass   or „='”;  , {  dengan  SQL  ini  hasil  selection  akan
selalu TRUE }
4. maka kita bisa inject sintax SQL (dalam hal ini OR) kedalam SQL

Gambar contoh SQL Injection :

 






Contoh sintaks SQL Injection :
1) Sintaks SQL string ‘-- setelah nama username 
2) Query database awal :

 Berubah menjadi :


Contoh sintaks SQL Injection :
SQL Injection melalui URL, contohnya :

1.    Merubah script php
2.    Menggunakan MySQL_escape_string
3.    Pemfilter karakter „ dengan  memodifikasi php.ini















Jumat, 10 Mei 2013

SOFTWARE SECURITY - Buffer Overflow

 
Pengertian Buffer Overflow :
Buffer overflow merupakan salah satu cara yang digunakan hacker untuk mengekploitasi sebuah sistem komputer yang mempunyai kelemahan pada salah satu aplikasi yang berada di sistem tersebut. Sebuah aplikasi dapat di-buffer-overflow karena memang aplikasi tersebut tidak memiliki kontrol data yang baik, dan biasanya ini tidak di sadari oleh si pembuat program tersebut. Lalu bagaimana seorang hacker dapat memperoleh hak akses terhadap sistem hanya dengan memanfaatkan kelemahan dari suatu aplikasi yang ada di sistem komputer target? Tentu hal ini berkaitan erat dengan
akses yang di miliki oleh aplikasi tersebut.


Pemahaman buffer overflow sendiri adalah keadaan di mana buffer (variabel yang di gunakan suatu aplikasi untuk menyimpan datanya di memori) terisi dengan data yang ukurannya melebihi kapasitasnya sendiri dan akibatnya kelebihan data itu akan mengisi alamat memori lain yang bukan milik variabel tersebut atau dalam hal ini di sebut dengan overwrite.
Kalau OS atau program tidak bisa dikode secara sempurna maka hacker bisa membuat komputer korban jadi terganggu dengan mengirimkan perintah yang dibuat khusus yang membuat gangguan jadi berlangsung lebih lama. Windows 95 paling rentan kalau sudah berhadapan dengan serangan seperti buffer overflow yang banyak dilancarkan lewat internet ini.Saat ini serangan serupa sudah jarang dilancarkan pada sebuah komputer. Namun terkadang hacker masih sering melakukannya untuk memperlambat kinerja sebuah situs.
Kelemahan Buffer Overflow :
Kelemahan Buffer overflow adalah salah satu dari banyak kelemahan dari keamanan komputer.Kelemahan jenis ini dapat digunakan pada remote access atau local access, karena ini dapat memberikan si Attacker kesempatan untuk melanjarkan jurus-jurus dengan koding dikomputer target.
Serangan Buffer overflow terjadi ketika si Attacker memberikan input yang berlebihan pada program yang di jalankan, sehingga program mengalami kelebihan muatan dan memory tidak dapat mengalokasikannya. Ini memberikan kesempatan kepada Attacker untuk menindih data pada program dan men-takeover kontroll program yang dieksekusi attacker.
Buffee overflow hasil dari dari kelemahan bahasa pemrograman c, c++, fortran, dan assembly, yang tidak secara otomatis melakukan pengecekan batas input ketika program dieksekusi. Sebagai akibat dari Buffer overflow dapat menyebatkan crash pada program, atau mempersilahkan si Attacker untuk mengeksekusi perintah atau koding jahatnya untuk menguasai sistem target, seperti tujuan mengambil alih akun root menggunakan metode Buffer overflow.

Macam-macam Serangan Buffer Overflow :
Beberapa serangan yang biasa dilakukan dengan teknik Buffer Overflow antara lain :
a. Buffer overruns pada kebanyakan Web server
Webserver Apache dan IIS memiliki celah keamanan. Worm seperti Code Red (untuk IIS) dan Linux. Slapper (untuk Apache) menjadikan celah keamanan yang lebar.

b. DNS overflow
Beberapa server DNS (BIND) sebelumnya tergolong rentan terhadap overflow. Suatu serangan yang akan memberikan nama DNS sangat panjang. Nama DNS dibatasi hingga 64-byte per subkomponen dan 256 byte secara keseluruhan.

c. Serangan DNS
Server DNS biasanya dijalankan pada mode ‘Trust’ oleh service dan user – maksudnya bahwa server DNS dapat dikompromikan agar melancarkan serangan lebih jauh pada user dan service lainnya. Hal ini menjadikan server DNS merupakan target utama serangan para hacker.

d. Mengelabui cache DNS
Serangan yang umum terhadap server DNS. Sederhananya, bekerja dengan mengirimkan suatu pertanyaan untuk meminta domain yang sesungguhnya (“siapakah www.test.com ini?) dan akan disediakan jawaban yang tentu saja salah (“www.test.com adalah 127.0.01″).


Pencegahan dari buffer overflow :
Tindakan Untuk Mencegah Buffer Overflow : Tidak ada satupun metode yang dijelaskan di bawah yang benar-benar bisa mencegah kemungkinan serangan, namanya juga manusia tempatnya salah dan lupa. Tetapi metode di bawah ini, dapat meminimalisir dari kegiatan buffer overflows yang mengakibatkan kerusakan stack, antara lain :
1. Menulis kode yang aman : Buffer overflow adalah hasil dari input yang berlebihan ke dalam buffer. C library seperti strcpy(), strcat(), sprintf() dan vsprintf() beroperasi pada null terminated strings dan tidak mengecek batasan input. gets() juga fungsi  lainnya yang memasukkan input ke dalam buffer dari stdin. Pada scanf() juga bisa mengakibatkan buffer overflows.
2. Stack execute invalidation : Karena koding jahat (contoh, instruksi assembly untuk mengambil alih root shell) merupakan input argument ke dalam program, ini tersimpan ke dalam stack dan bukan dalam code segment. Oleh karena itu, solusi mudahnya adalah tidak mempebolehkan stack mengeksekusi instruksi apapun. Kode apapun yang dieksekusi dengan kode lainnya di dalam stack dapat mengakibatkan segmentation violation.
3. Compiler tools : Beberapa tahun terakhir, compiler mempunyai kemampuan lebih. Beberapa compiler dilengkapi peringatan dalam penggunakan konstruk yang tidak aman seperti gets(), strcpy() dan sejenisnya.

Jumat, 19 April 2013

SOFTWARE SECURITY - Malware About



MALWARE


Dengan memanfaatkan koneksi jaringan dan internet, Malware yang merupakan sebuah perangkat lunak berbahaya (malicious software) saat ini semakin mudah menyebar dan menginfeksi komputer. Tanpa kita sadari sistem dan aplikasi komputer kita telah dirusak bahkan informasi pribadi milik kita pun bisa diketahui dan disalahgunakan oleh orang lain hanya karena aktifitas browsing yang kita lakukan. Pada dasarnya malware adalah program berbahaya dan tidak diinginkan yang dapat merusak sistem komputer, menghambat akses internet dan yang paling berbahaya yaitu mencuri informasi seperti password dan no kartu kredit kita. Jenis-jenis malware ini diantaranya adalah trojan, virus, worm, spyware, adware, rootkit dan sebagainya.
Jenis – Jenis Malware :
- Rootkit
Rootkit adalah program yang menyusup kedalam sistem komputer, bersembunyi dengan menyamar sebagai bagian dari sistem (misalnya menempel pada patch, keygen, crack dan game), kemudian mengambil alih, memantau kerja sistem yang disusupinya. Rootkit dapat mencuri data yang lalu-lalang di jaringan, melakukan keylogging, mencuri cookies akun bank dan lain-lain.
- Backdoor
Backdoor adalah Backdoor merupakan metode yang di gunakan untuk melewati autentifikasi normal (login) dan berusaha tidak terdeteksi. Backdoor sendiri sering kali disusupkan melalui trojan dan worm.
- Trojan Horse
Trojan atau trojan hourse adalah program yang diam-diam masuk ke komputer, kemudian memfasilitasi program lain misalnya virus, sypware, adware. keylogger dan malware lainnya untuk masuk, merusak sytem, memungkinkan orang lain meremote komputer dan mencuri informasi seperti password atau nomor kartu kredit kita.
- Virus
Virus Komputer adalah Jenis malware yang menyerang file eksekusi (.exe) yang akan menyerang dan menggandakan diri ketika file exe yang terinfeksi di jalankan. Virus komputer menyebar dengan cara menyisipkan program dirinya pada program atau dokumen yang ada dalam komputer. 
- Worm
Worm alias cacing adalah sebuah program komputer yang dapat menggandakan dirinya sendiri dan untuk penyebarannya tidak perlu campur tangan dari user itu sendiri dengan memanfaatkan suatu jaringan

- Spyware
Spyware adalah program yang bertindak sebagai mata-mata untuk mengetahui kebiasaan pengguna komputer dan mengirimkan informasi tersebut ke pihak lain. Spyware biasanya digunakan oleh pihak pemasang iklan.
- Botnet
Botnet dapat diasosiasikan sebagai sebuah zombie atau mayat hidup yang dapat diperintah untuk melakukan kegiatan yang kita inginkan. Maksudnya disini adalah sebuah komputer yang terinfeksi oleh trojan atau jenis virus lain yang membuat sebuah komputer tidak berjalan sebagaimana mestinya karena menjalankan perintah-perintah dari si pembuat botnet tersebut. Botnet tidak lebih dari sebuah tool yang digunakan untuk banyak motif yang diinginkan oleh si pembuat botnet. Kebanyakan botnet digunakan untuk kegiatan kriminal (aktifitas mendatangkan uang) atau untuk menghancurkan.
- Keystroke logging
Keystroke Logging adalah suatu program yang berjalan di belakang sistem (Background), merekam semua tombol. Sekali Key Logger dijalankan, maka otomatis akan bersembunyi di dalam mesin untuk mencatat semua data atau mengirimkan datanya secara langsung ke pemilik Key Logger. Pemilik Key Logger kemudian membaca data yang didapatkan tersebut dengan teliti dengan harapan menemukan kata sandi (Password) atau mungkin informasi lain yang bermanfaat yang bisa digunakan sebagai serangan Social Engineering. Key Logger secara sederhana bisa dikategorikan sebagai Hack Tool Pencuri Informasi. Sebagai contoh, Key Logger dapat mengungkapkan isi dari semua e-mail yang ditulis oleh korban. Program Key Logger biasanya terdapat di dalam rootkit dan trojan. Key Logger berfungsi untuk merekam (mencatat) semua aktifitas pengguna komputer dengan mengambil input data melalui karakter keyboard yang digunakan oleh user. Jadi jika user mengetikkan kata “SaYa” melalui keyboard maka secara otomatis Key Logger akan mencatatnya pada sebuah LOG file dengan data “SaYa”.

Antivirus software
Antivirus adalah sebuah jenis perangkat lunak yang digunakan untuk mendeteksi dan menghapus virus komputer dari sistem komputer. Disebut juga Virus Protection Software. Aplikasi ini dapat menentukan apakah sebuah sistem komputer telah terinfeksi dengan sebuah virus atau tidak. Umumnya, perangkat lunak ini berjalan di latar belakang (background) dan melakukan pemindaian terhadap semua berkas yang diakses (dibuka, dimodifikasi, atau ketika disimpan). Sebagian besar antivirus bekerja dengan beberapa metode seperti di bawah ini :
- Pendeteksian dengan menggunakan basis data virus signature (virus signature database). Cara kerja antivirus ini merupakan pendekatan yang banyak digunakan oleh antivirus tradisional, yang mencari tanda-tanda dari keberadaan dari virus dengan menggunakan sebagian kecil dari kode virus yang telah dianalisis oleh vendor antivirus, dan telah dikatalogisasi sesuai dengan jenisnya, ukurannya, daya hancurnya dan beberapa kategori lainnya. Cara ini terbilang cepat dan dapat diandalkan untuk mendeteksi virus-virus yang telah dianalisis oleh vendor antivirus, tapi tidak dapat mendeteksi virus yang baru hingga basis data virus signature yang baru diinstalasikan ke dalam sistem. Basis data virus signature ini dapat diperoleh dari vendor antivirus dan umumnya dapat diperoleh secara gratis melalui download atau melalui berlangganan (subscription).
- Pendeteksian dengan melihat cara bagaimana virus bekerja. Cara kerja antivirus seperti ini merupakan pendekatan yang baru yang dipinjam dari teknologi yang diterapkan dalam Intrusion Detection System (IDS). Cara ini sering disebut juga sebagai Behavior-blocking detection. Cara ini menggunakan policy (kebijakan) yang harus diterapkan untuk mendeteksi keberadaan sebuah virus. Jika ada kelakuan perangkat lunak yang “tidak wajar” menurut policy yang diterapkan, seperti halnya perangkat lunak yang mencoba untuk mengakses address book untuk mengirimkan e-mail secara massal terhadap daftar e-mail yang berada di dalam address book tersebut (cara ini sering digunakan oleh virus untuk menularkan virus melalui e-mail), maka antivirus akan menghentikan proses yang dilakukan oleh perangkat lunak tersebut. Antivirus juga dapat mengisolasi kode-kode yang dicurigai sebagai virus hingga administrator menentukan apa yang akan dilakukan selanjutnya. Keuntungan dari cara ini adalah antivirus dapat mendeteksi adanya virus-virus baru yang belum dikenali oleh basis data virus signature. Kekurangannya, jelas karena antivirus memantau cara kerja perangkat lunak secara keseluruhan (bukan memantau berkas), maka seringnya antivirus membuat alarm palsu atau “False Alarm” (jika konfigurasi antivirus terlalu “keras”), atau bahkan mengizinkan virus untuk berkembangbiak di dalam sistem (jika konfigurasi antivirus terlalu “lunak”), terjadi false positive. Beberapa produsen menyebut teknik ini sebagai heuristic scanning.

Firewall
Firewall merupakan suatu cara/sistem/mekanisme yang diterapkan baik terhadap hardware , software ataupun sistem itu sendiri dengan tujuan untuk melindungi, baik dengan menyaring, membatasi atau bahkan menolak suatu atau semua hubungan/kegiatan suatu segmen pada jaringan pribadi dengan jaringan luar yang bukan merupakan ruang lingkupnya. Segmen tersebut dapat merupakan sebuah workstation, server, router, atau local area network (LAN) anda.  Firewall secara umum di peruntukkan untuk melayani :
-        mesin/komputer
Setiap individu yang terhubung langsung ke jaringan luar atau internet dan menginginkan semua yang terdapat pada komputernya terlindungi.
-       Jaringan
Jaringan komputer yang terdiri lebih dari satu buah komputer dan berbagai jenis topologi jaringan yang digunakan, baik yang di miliki oleh perusahaan, organisasi dsb.
Firewall mempunyai karakteristik sebagai berikut :
-       Seluruh hubungan/kegiatan dari dalam ke luar , harus melewati firewall. Hal ini dapat dilakukan dengan cara memblok/membatasi baik secara fisik semua akses terhadap jaringan Lokal, kecuali melewati firewall. Banyak sekali bentuk jaringan yang memungkinkan.
-       Hanya Kegiatan yang terdaftar/dikenal yang dapat melewati/melakukan hubungan, hal ini dapat dilakukan dengan mengatur policy pada konfigurasi keamanan lokal. Banyak sekali jenis firewall yang dapat dipilih sekaligus berbagai jenis policy yang ditawarkan.
-       Firewall   itu sendiri haruslah kebal atau relatif kuat terhadap serangan/kelemahan. hal ini berarti penggunaan sistem yang dapat dipercaya dan dengan Operating system yang relatif aman.
Teknik yang digunakan oleh firewall adalah sebagai berikut :
1.    Service control (kendali terhadap layanan)
Berdasarkan tipe-tipe layanan yang digunakan di Internet dan boleh diakses baik untuk kedalam ataupun keluar firewall. Biasanya firewall akan mencek no IP Address dan juga nomor port yang di gunakan baik pada protokol TCP dan UDP, bahkan bisa dilengkapi software untuk proxy yang akan menerima dan menterjemahkan setiap permintaan akan suatu layanan sebelum mengijinkannya.Bahkan bisa jadi software pada server itu sendiri , seperti layanan untuk web ataupun untuk mail.
2.    Direction Control  (kendali terhadap arah)
Berdasarkan arah dari berbagai permintaan (request) terhadap layanan yang akan dikenali dan diijinkan melewati firewall.
3.    User Control (kendali terhadap pengguna)
Berdasarkan pengguna/user untuk dapat menjalankan suatu layanan, artinya ada user yang dapat dan ada yang tidak dapat menjalankan suatu servis,hal ini di karenakan user tersebut tidak di ijinkan untuk melewati firewall. Biasanya digunakan untuk membatasi user dari jaringan lokal untuk mengakses keluar, tetapi bisa juga diterapkan untuk membatasi terhadap pengguna dari luar.
4.    Behavior Control  (kendali terhadap perlakuan)
Berdasarkan seberapa banyak layanan itu telah digunakan. Misal, firewall dapat memfilter email untuk menanggulangi/mencegah spam.

HIDS
Intrusion Detection System
adalah sebuah aplikasi perangkat lunak atau perangkat keras yang dapat mendeteksi aktivitas yang mencurigakan dalam sebuah sistem atau jaringan. IDS dapat melakukan inspeksi terhadap lalu lintas inbound dan outbound dalam sebuah sistem atau jaringan, melakukan analisis dan mencari bukti dari percobaan intrusi (penyusupan).
Ada dua jenis IDS, yakni :
1.    Network-based Intrusion Detection System (NIDS): Semua lalu lintas yang mengalir ke sebuah jaringan akan dianalisis untuk mencari apakah ada percobaan serangan atau penyusupan ke dalam sistem jaringan. NIDS umumnya terletak di dalam segmen jaringan penting di mana server berada atau terdapat pada "pintu masuk" jaringan. Kelemahan NIDS adalah bahwa NIDS agak rumit diimplementasikan dalam sebuah jaringan yang menggunakan switch Ethernet, meskipun beberapa vendor switch Ethernet sekarang telah menerapkan fungsi IDS di dalam switch buatannya untuk memonitor port atau koneksi.
2.    Host-based Intrusion Detection System (HIDS): Aktivitas sebuah host jaringan individual akan dipantau apakah terjadi sebuah percobaan serangan atau penyusupan ke dalamnya atau tidak. HIDS seringnya diletakkan pada server-server kritis di jaringan, seperti halnya firewall, web server, atau server yang terkoneksi ke Internet.
Kebanyakan produk IDS merupakan sistem yang bersifat pasif, mengingat tugasnya hanyalah mendeteksi intrusi yang terjadi dan memberikan peringatan kepada administrator jaringan bahwa mungkin ada serangan atau gangguan terhadap jaringan. Akhir-akhir ini, beberapa vendor juga mengembangkan IDS yang bersifat aktif yang dapat melakukan beberapa tugas untuk melindungi host atau jaringan dari serangan ketika terdeteksi, seperti halnya menutup beberapa port atau memblokir beberapa alamat IP. Produk seperti ini umumnya disebut sebagai Intrusion Prevention System (IPS). Beberapa produk IDS juga menggabungkan kemampuan yang dimiliki oleh HIDS dan NIDS, yang kemudian disebut sebagai sistem hibrid (hybrid intrusion detection system).
Implementasi dan Cara Kerja :
Ada beberapa cara bagaimana IDS bekerja. Cara yang paling populer adalah dengan menggunakan pendeteksian berbasis signature (seperti halnya yang dilakukan oleh beberapa antivirus), yang melibatkan pencocokan lalu lintas jaringan dengan basis data yang berisi cara-cara serangan dan penyusupan yang sering dilakukan oleh penyerang. Sama seperti halnya antivirus, jenis ini membutuhkan pembaruan terhadap basis data signature IDS yang bersangkutan.
Metode selanjutnya adalah dengan mendeteksi adanya anomali, yang disebut sebagai Anomaly-based IDS. Jenis ini melibatkan pola lalu lintas yang mungkin merupakan sebuah serangan yang sedang dilakukan oleh penyerang. Umumnya, dilakukan dengan menggunakan teknik statistik untuk membandingkan lalu lintas yang sedang dipantau dengan lalu lintas normal yang biasa terjadi. Metode ini menawarkan kelebihan dibandingkan signature-based IDS, yakni ia dapat mendeteksi bentuk serangan yang baru dan belum terdapat di dalam basis data signature IDS. Kelemahannya, adalah jenis ini sering mengeluarkan pesan false positive. Sehingga tugas administrator menjadi lebih rumit, dengan harus memilah-milah mana yang merupakan serangan yang sebenarnya dari banyaknya laporan false positive yang muncul.
Teknik lainnya yang digunakan adalah dengan memantau berkas-berkas sistem operasi, yakni dengan cara melihat apakah ada percobaan untuk mengubah beberapa berkas sistem operasi, utamanya berkas log. Teknik ini seringnya diimplementasikan di dalam HIDS, selain tentunya melakukan pemindaian terhadap log sistem untuk memantau apakah terjadi kejadian yang tidak biasa.