Sabtu, 07 Mei 2016

Nama:Billy Jaya
Jurusan:SistemInformasi
Semster:5(Malam)
Tugas Keamanan Komputer Part 2


Pengertian Buffer Overflow
Buffer overflow adalah sebuah kelemahan yang mudah untuk ditemukan dan dimanfaatkan oleh hacker dalam sebuah sistem. Aplikasi dan Operating System (OS) menyimpan untuk sementara perintah yang mereka dapat di memori tertentu yang biasa disebut buffer memory. 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.
Tujuan
Tujuan dari Buffer OverFlow adalah Mengambil ahli akun root Menggunakan Metode Buffer OverFlow
Arsitektur Serangan

 Cara dan Teknik serangan
Dalam program yang menggunakan bahasa C, buffer dialokasikan dengan array atau pointer. C atau C++ tidak mempunyai pengecekan otomatis (automatic bounds checking) batasan suatu buffer, sehingga pengguna dapat menulis kode untuk memberikan data melebihi ukuran buffer [8]. Sebagai contoh: int main () { int buffer[10]; buffer[20] = 10; } Program di atas adalah program yang valid dan compiler dapat meng-compile tanpa error. Tetapi program tersebut berusaha untuk memberikan data melebihi alokasi memory untuk buffer. Hal ini dapat mengakibatkan kejadian yang tidak diinginkan. Konsep ini digunakan para hacker untuk mengacau industri komputer. Program yang dapat dieksekusi berisi sekumpulan instruksi biner yang harus dieksekusi oleh processor. Instruksi ini dapat berupa read-only data, (seperti print format strings), data global dan data statis yang tetap ada selama proses eksekusi, dan break pointer yang selalu mengikuti malloced memory. Function local variable adalah variabel otomatis yang ada di stack selama suatu fungsi bekerja dan dibuang setelah fungsi selesai bekerja. Gambar 1 memperlihatkan memory layout dari suatu proses Linux. Proses dimulai dengan kode program dan data. Kode dan data berisi instruksi program serta data global dan data static yang terinisialisasi maupun tak terinisialisasi. Setelah itu adalah run-time heap (dibuat dengan malloc/calloc), dan di paling atas adalah users stack. Stack digunakan jika ada function cal



Gambar 1. Memory layout pada proses Linux [8].
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

Efek Serangan
Pencegahan dari buffer overflowAda beberapa cara mencegah buffer overflow, berikut ini ringkasan beberapa pendekatan tersebut:· Menulis ulang program dalam bahasa lain. Kadang ini tidak mungkin dilakukan, terutama jika programnya low level.
· Memakai library khusus untuk mencegah kesalahan umum (library semacam ini tidak selalu tersedia)
· Melakukan code review (tapi kadang ada bug yang terlewat)
· Memakai tools yang dapat melakukan pemeriksaan statik (kadang bug ditemukan, kadang tidak)
Untuk aplikasi jaringan, ada pendekatan lain: paket jaringan yang masuk bisa diperiksa, dan jika mengandung shellcode yang dikenal, atau mengandung banyak NOP, maka paket akan dicegah masuk. Tapi cara ini sangat tidak efektif, karena ada kemungkinan mencegah paket valid, dan ada banyak variasi shellcode yang tidak dikenal.

Pencegahan dari buffer overflow
Ada beberapa cara mencegah buffer overflow, berikut ini ringkasan beberapa pendekatan tersebut:
· Menulis ulang program dalam bahasa lain. Kadang ini tidak mungkin dilakukan, terutama jika programnya low level.
· Memakai library khusus untuk mencegah kesalahan umum (library semacam ini tidak selalu tersedia)
· Melakukan code review (tapi kadang ada bug yang terlewat)
· Memakai tools yang dapat melakukan pemeriksaan statik (kadang bug ditemukan, kadang tidak)

Untuk aplikasi jaringan, ada pendekatan lain: paket jaringan yang masuk bisa diperiksa, dan jika mengandung shellcode yang dikenal, atau mengandung banyak NOP, maka paket akan dicegah masuk. Tapi cara ini sangat tidak efektif, karena ada kemungkinan mencegah paket valid, dan ada banyak variasi shellcode yang tidak dikenal.
Organisasi Memori 
  Pengalokasian memori menjadi hal yang penting untuk diketahui karena ketika program selesai di-compile menjadi bilangan biner dan kemudian dijalankan maka masing-masing bagian seperti kode program, konstanta, data dan jenis variabel data yang berbeda-beda akan ditempatkan pada berbagai segmentasi yang berbeda pula didalam memori. Pembagian segmentasi alokasi memori dapat dilihat seperti gambar
Code
Code segmentation atau juga yang dikenal dengan istilah segmentasi teks merupakan salah satu bagian dari program dalam file objek atau didalam memori yang berisi intruksi atau perintah –perintah pada program yang akan dieksekusi. Didalam memori, code segmentation harus ditempatkan pada bagian bawah segmen heap atau stack hal ini dimaksudkan untuk menghindari terjadinya heap dan stack overflow dari overwriting program. Selain hal itu Code segmentationjuga mempunyai sifat read only untuk menghindari terjadinya sintruksi untuk memodifikasi program. Karen sifat tersebut diatas maka kemungkinan terjadinya serangan pada segmentasi ini sangat kecil.

BSS
Uninitialized data segment atau yang sering disebut segmen bss (Block Started by Symbol) merupakan bagian dari segmen data yang berisikan variabel dancompiler yang secara konstan dan berkala membutuhkan nilai (value) ketika program dijalankan. Ketikabagian BSS diinisialisasi untuk loading pertama kali maka semua variabels didalamnya akan diberi nilai 0

Data
Initialized data segment atau yang lebih dikenal dengan segmen data merupakan bagian dari virtual address space dari program. Segmen data berisi variabel global dan variabel statis yang dideklarasikan olehprogrammer. Hal yang perlu diperhatikan adalahInitialized data segment tidak bersifat read only karena nilai dari variabel dapat berubah saat program berada pada kondisi kondisi run time. Untuk pembagian area, segmentasi ini dibagi lagi lebih lanjut kedalam initialized read-only dan initialized read-write.

Stack
Deklarasi variabel  didalam sebuah program dibedakan menjadi variabel  global dan variabel  lokal. variabel  lokal biasanya dideklarasikan didalam satu fungsi, ini berarti variabel lokal hanya dapat diakses oleh instruksi program didalam fungsi itu sendiri. Variabel lokal ini ditempatkan pada stack segmentation yang bersifat sementara. Stack segmentation juga dikenal dengan istilah last-in-first-out (LIFO). Istilah ini menggambarkan salah satu sifat dasar dari stack : elemen yang pertama masuk ke dalam stack akan tersimpan pada bagian bawah segment sehingga akan diakses pada bagian akhir karena akses akan dilakukan pada bagian atas segmen terlebih dahulu. Didalam proses penyimpanan dan akses elemen didalam stack, dikenal 2 istilah yaitu : Push dan Pop.
Push : adalah proses penimpanan atau menambah elemen kedalam stack. Error akan terjadi pada proses ini ketika stack tidak dapat menyimpan elemen data lagi atau yang lebih dikenal dengan istilah stack overflow.Pop : adalah proses pengambilan data dari stackatau dapat juga dipandang sebagai sebuah proses menghapus elemen dari stack. Error  akan terjadi pada proses ini jika stack kosong sehingga tidak mampu untuk mengeluarkan data apapun atau yang biasa dikenal dengan istilah stack underflow.Heap

Heap adalah area memori yang dialokasikan secara dinamis selama proses ekseskusi biner (dengan menggunakan fungsi yang disebut malloc() ; memory alocation ).  Heap akan menempati sebagian atau seluruh ruang memori tersisa yang belum digunakan.Heap memiliki struktur yang mirip dengan stack dimulai dari byte sisa terbawah (memori terbawah di heap) dan akan berkembang ke alamat memori yang diatas tergantung dari penggunaan alokasi alamat memori yang ditambahkan didalam. Karena penggunaan alokasi memori heap yang bersifat dinamis maka bisa saja alokasi memori heap penuh. Untuk menghindari hal ini perlu dilakukan pemantauan sisa alokasi memori padaheap terlebih dahulu sebelum memori ini dipergunakan. Pemeriksaan dapat dilakukan dengan fungsi MaxAvail, fungsi ini memberikan ukuran blok terbesar pada Heap. Pemeriksaan ini bertujuan supaya tidak terjadi run time error saat alokasi memori heap habis dipergunakan sewaktu program sedang berjalan.

Pengalamatan Memori
 Pengalamatan memori adalah penempatan alamat pada ruang memory pada suatu sistem komputer. Adapun susunan ruang memory adalah 1 megabyte.
Pengaksesan data ke bagian ini menggunakan metoda yang disebut LIFO (Last In First Out). Jenis data yang harus juga diketahui adalah buffer yang pada bahasa C diimplementasikan sebagai array. Array dapat dibedakan ke dalam dua jenis berdasarkan metoda pengalokasiannya, yaitu array statis dan array dinamis. Array statis dialokasikan di bagian data saat program dimuatkan ke memori, sedangkan array dinamis dialokasikan di dalam stack saat run time.
Stack
Stack dapat dibayangkan sebagai sebuah blok dari memori yang dapat memuat data secara dinamis.
Beberapa hal yang harus diketahui pada prosesor Intel sehubungan dengan stack adalah :
1. Penggunaan metoda Big Edian dalam mengorganisasikan sistem memori. Di sini MSB (Most Significant Bit) terletak pada alamat memori yang lebih kecil dibandingkan LSB (Least Significant Bit).
2. Penambahan besar stack dilakukan kearah alamat memori yang lebih kecil. Di sini posisi bawah dari stack mempunyai alamat yang tetap. Posisi atas stack yang alamat memorinya lebih kecil dari posisi bawah selalu berubah.
3. Register stack pointer (SP) selalu menunjuk ke posisi atas dari stack.
4. Untuk memindahkan data ke stack digunakan instruksi PUSH yang secara otomatis akan menurunkan nilai SP sebesar 4 byte. Sedangkan untuk mengambil data dari stack digunakan instruksi POP yang secara otomatis juga akan menaikkan nilai SP sebesar 4 byte.

Blok memori dari stack ini biasanya di bagi lagi menjadi apa yang disebut dengan stack frame. Setiap stack frame berisi data yang berhubungan dengan pemanggilan sebuah fungsi. Biasanya posisi awal dari frame ini akan ditunjuk oleh frame pointer (FP). Dengan bantuan FP ini, maka pengaksesan ke variabel lokal maupun parameter fungsi dapat dilakukan menggunakan sistem pengalamatan relatif. Pada prosesor Intel, register EBP berfungsi sebagai frame pointer.

Program , Libraries dan Binary
Disadari atau tidak, program yang kita pergunakan sehari-hari dibentuk dari konstata, variabel dan instruksi yang berhubungan dengan data yang akan diproses. Instruksi biasanya dikelompokan didalam satuan unit kecil yang disebut modul, sub rutin, methode, dan didalam bahasa C biasanya dikenal dengan istilah fungsi yang masing-masing memiliki tugas (fungsi) tertentu. Untuk sekarang ini dengan adanya open sourcedan open code fungsi untuk tugas – tugas yang umum diperlukan tidak perlu diprogram secara detail karena sebagian besar fungsi tersebut telah tersedia padalibrary.
Sebuah program khusus yang disebut compilerdipergunakan untuk menterjemahkan instruksi bahasa tingkat tinggi seperti bahasa pemrograman C kedalam kode mesin (machine code) yang dimaksudkan untuk dapat dikenali dan dieksekusi oleh prosesor sehingga target program yang diinginkan dapat tercapai. Program yang lain disebut linker (kadang-kadang sudah embededatau langsung dipanggil oleh compiler) yang dipergunakan untuk mengitegrasikan semua bagian dari program, disertakan semua referensi fungsi darilibraries. Keseluruhan hasil dari aktivitas diatas biasanya disebut dengan biner. sebagai catatan selain merubah menjadi bahasa mesin kita juga dapat melakukan konversi disassemblers yang biasa dikenal denganassember code, merupakan bahasa pemrograman yang sangat dasar yang masih bisa dibaca oleh manusia.

Senin, 04 April 2016

Nim:143303040019
Nama:BillyJaya
Jurusan:Sistem Informasi
Semster: (5A)
Tugas:Keamaan Komputer (Yang Pertama)
TROJAN
Latar Belakang
Trojan di dalam sistem komputer adalah  suatu program yang tidak diharapkan dan disisipkan tanpa sepengetahuan pemilik komputer. Program ini kemudian dapat diaktifkan dan dikendalikan dari jarak jauh, atau dengan menggunakan timer (pewaktu). Akibatnya, komputer yang disisipi Trojan Horse tersebut dapat dikendalikan dari jarak jauh. Definisi lain mengatakan bahwa Trojan  adalah program apapun yang digunakan untuk melaksanakan suatu fungsi penting dan diharapkan oleh pemakai, namun kode dan fungsi di dalamnya tidak dikenal oleh pemakai. Selanjutnya program melaksanakan fungsi tak dikenal dandikendalikan dari jarak jauh yang tidak dikehendaki oleh pemakai.
Tujuan
1. Mencuri informasi
Beberapa jenis trojan horse menginfeksi komputer dan mencuri informasi berharga, seperti rekening bank, informasi kartu kredit, atau jenis data yang sensitif.
Trojan horse tipe ini umumnya juga memiliki virus jenis key-logger yang mencatat setiap ketikan pada keyboard.
2. Mengambil alih kontrol
Trojan horse jenis ini lebih berbahaya karena berusaha mendapatkan kontrol atas komputer yang terinfeksi.
Setelah diinstal, trojan horse memungkinkan penyerang untuk mengatur koneksi remote ke komputer yang terinfeksi dan mengambil alih kontrol.
Setelah diambil alih, hacker dapat mencuri data sensitif dan rahasia dari komputer.
3. Serangan utilitas
Penyerang menggunakan apa yang disebut trojan “utilitas” yang dikombinasikan dengan jenis trojan atau virus lain untuk menghasilkan serangan yang lebih kompleks.
Serangan utilitas berusaha menginfeksi sebuah komputer sebagai titik perantara untuk serangan lebih lanjut.
Selain itu, penyerang menggunakan trojan utilitas sebagai kedok untuk menyembunyikan identitas mereka yang sebenarnya.
4. Serangan perusak
Penyerang merancang jenis trojan ini untuk menyebabkan kerusakan pada komputer yang terinfeksi.
Efek dapat bervariasi dari perubahan sederhana, namun mengganggu, seperti mengubah wallpaper hingga menghapus sistem operasi atau seluruh file dalam hard drive.
5. Serangan Denial of Service (DoS)
DoS adalah serangan paling destruktif yang dapat dilakukan virus trojan horse.
Setelah trojan menginfeksi sejumlah besar komputer, pencipta trojan mengambil kontrol komputer yang terinfeksi dan meluncurkan serangan pada server atau website tertentu.
Karena tingginya jumlah koneksi simultan, server atau website yang diserang akhirnya berhenti bekerja.
Semakin tinggi jumlah komputer yang terlibat dalam serangan, semakin cepat website target mengalami kegagalan fungsi.
Penyerang biasanya mencoba menginfeksi sejumlah besar komputer untuk meminimalkan waktu yang diperlukan bagi keberhasilan serangan serta memastikan efek serangan berdampak seluas mungkin.
Arsitektur Serangan


Penjelasan

  • Seorang Hacker Mengirim File atau Dokumen Ke Sebuah Perusahaan Yang Ternyataan File atau dokumen yang Sering Di buka Org Pengawai di perusaahan itu Terdapat Sebuah Dokumen yang Ternyataan adalah sebuah Virus Komputer Yang Bernama Trojan Horse
  • Setelah File atau trojan itu di buka oleh si pangawai itu maka si hacker bisa saja mengakses semua data yang ada di perusaahan atau pun mencuri
  •  Bisa juga seoarang hacker di bayar oleh perusahaan buat Merusak atau mencuri data-data penting
  • Alhasil semua data-data penting itu di Curi atau di manipulasi oleh hacker tersebut.

Cara Kerja
Trojan berbeda dengan jenis perangkat lunak mencurigakan lainnya seperti virus komputer atau worm karena dua hal berikut:
  • Trojan bersifat "stealth" (siluman dan tidak terlihat) dalam operasinya dan seringkali berbentuk seolah-olah program tersebut merupakan program baik-baik, sementara virus komputer atau worm bertindak lebih agresif dengan merusak sistem atau membuat sistem menjadi crash.
  • Trojan dikendalikan dari komputer lain (komputer attacker).
Teknik  Melakukan serangan
1. Mengaktifkan Firewall.
2. Install Antivirus.
3. Disable Remote Access.
4. Website Scan : -ScanKomputer
(http://security.symantec.com/sscv6/home.asp).ScanFile(http://www.virustotal.com). - Malware Analysis Otomatis (http://anubis.iseclab.org)
Tools Yang Digunakan
1. CFF Explorer.
2. BinText.
3. TrIDNET.
Efek Serangan
  1. Memperlambat Kinerja Dari sebuah Komputer
  2. Menurunkan Kecepatan Internet
  3. Data-data Pada Komputer/Laptop Bisa Di Hacker
  4. Mencuri data-data Penting
Cara Pencegahan Trojan
Pada dasarnya, pengamanan sistem dapat dibedakan menjadi dua cara, yaitu pencegahan (preventiv ) dan pengobatan (recovery).  Keduanya dibedakan berdasarkan waktu terjadinya infeksi. Usaha pencegahan dilakukan sebelum terjadinya infeksi, yaitu usaha agar sistem tidak mempunyai lubang keamanan. Usaha pengobatan dilakukan setelah system terinfeksi, yaitu usaha untuk  menutup lubang kemanan yang telah dieksploitasi dan menghilangkan penyebab infeksi Trojan sering memodifikasi file startup, menambahkan atau mengubah baris di sistem registry dan bahkan melakukan overwrite terhadap sistem file untuk meyakinkan mereka dapat dijalankan setiap kali komputer booting. Dengan alasan tersebut, maka untuk menghapus Trojan diperlukan waktu yang cukup lama, kesabaran dan suatu pemahaman apa yang harus dilakukan. Proses menghapus Trojan adalah proses yang penuh dengan bahaya, termasuk membuang registry atau kehilangan kemampuan untuk menjalankan program. Langkah-langkah sederhana yang dilakukan untuk menghapus Trojan dari komputer
adalah :
1. Mengidentikasi file Trojan di dalam hardisk,
2. Menemukan bagaimana Trojan mengaktifkan dirinya dan mengambil tindakan yang perlu untuk mencegahnya berjalannya Trojan setelah reboot,
3. Reboot komputer dan menghapus Trojan,
4. Mengamati proses penyembuhan dari suatu halaman System Compromise dan membantu penyembuhannya.
 Langkah di atas adalah salah satu pilihan untuk membuang Trojan dari komputer. Ada pendapat lain yang intinya juga menghapus keberadaan Trojan dengan beberapa pilihan. Pilihan-pilihan tersebut memang tidak sempurna, karena varian Trojan sangat banyak.
Cara tersebut adalah sebagai berikut:
1. Membersihkan dengan cara instalasi ulang.
2 Pemakaian Software Anti-Virus .
3. Pemakaian Software Trojan Scanner.
4. Memanfaatkan bantuan dari IRC Channels.
Kesimpula
  • Trojan merupakan jenis dari malware yang mampu untuk menumpangi sebuah file lain untuk selanjutnya berada di dalam sistem komputer dan menjalankan proses lain yang berbahaya tanpa sepengetahuan dari pengguna komputer.
  •  Trojan merupakan jenis dari malware yang mampu untuk menumpangi sebuah file lain untuk selanjutnya berada di dalam sistem komputer dan menjalankan proses lain yang berbahaya tanpa sepengetahuan dari pengguna komputer.
Saran
  • Adanya Anti Virus Yang Menghendel atau membersihkan Virus Trojan Tersebut
  • Untuk Berjaga-jaga dalam Perusaahan yang Besar Buat lah BackUp data-data Yang Penting.


Senin, 28 Maret 2016

PT.Pesawat Garuda Indonesia 
Nim:143303040019
Nama:BillyJaya
Jurusan:Sistem Informasi (5 Malam)
Tugas Sistem Informasi Manajemen

Area Fungsional
Proses Bisnis
Manufaktur dan Produksi
Perencanaan, Pengembangan dan Pemeliharaan fasilitas produksi penetapan sasaran produksi
Pengadaan, Penyimpanan dan Ketersediaan Tiket
Penjadwalan Peralatan Fasilitas

Sistem Penjualan dan Pemasaran
Dalam Sistem penjualan Kami Dari Pesawat Garuda Indonesia Membuat Promosi-Promosi Tiket Pesawat 
Sistem Keuangan dan Akuntansi
Mengelola asset keuangan perusahaan seperti uang tunai, saham, obligasi dan investasi lainnya
Menjaga dan Mengelola catatan keuangan perusahaan-penerimaan, pembayaran, depresiasi
Penggajian-untuk menghitung arus dana dalam perusahaan.
Sistem Sumber Daya Manusia
Mendukung aktivitas seperti mengenali karyawan potensial
Menjaga catatan lengkap mengenai karyawan yang ada
Menciptakan program untuk mengembangkan bakat dan keahlian karyawan.