Sejarah TCP/IP

Senin, 03 Januari 2011

Sejarah TCP/IP dimulainya dari lahirnya ARPANET yaitu jaringan paket switching digital yang didanai oleh DARPA (Defence Advanced Research Projects Agency) pada tahun 1969. Sementara itu ARPANET terus bertambah besar sehingga protokol yang digunakan pada waktu itu tidak mampu lagi menampung jumlah node yang semakin banyak. Oleh karena itu DARPA mendanai pembuatan protokol komunikasi yang lebih umum, yakni TCP/IP. Ia diadopsi menjadi standard ARPANET pada tahun 1983.

Untuk memudahkan proses konversi, DARPA juga mendanai suatu proyek yang mengimplementasikan protokol ini ke dalam BSD UNIX, sehingga dimulailah perkawinan antara UNIX dan TCP/IP.. Pada awalnya internet digunakan untuk menunjukan jaringan yang menggunakan internet protocol (IP) tapi dengan semakin berkembangnya jaringan, istilah ini sekarang sudah berupa istilah generik yang digunakan untuk semua kelas jaringan. Internet digunakan untuk menunjuk pada komunitas jaringan komputer worldwide yang saling dihubungkan dengan protokol TCP/IP.

Perkembangan TCP/IP yang diterima luas dan praktis menjadi standar de-facto jaringan komputer berkaitan dengan ciri-ciri yang terdapat pada protokol itu sendiri yang merupakan keunggulun dari TCP/IP, yaitu :

• Perkembangan protokol TCP/IP menggunakan standar protokol terbuka sehingga tersedia secara luas. Semua orang bisa mengembangkan perangkat lunak untuk dapat berkomunikasi menggunakan protokol ini. Hal ini membuat pemakaian TCP/IP meluas dengan sangat cepat, terutama dari sisi pengadopsian oleh berbagai sistem operasi dan aplikasi jaringan.
• Tidak tergantung pada perangkat keras atau sistem operasi jaringan tertentu sehingga TCP/IP cocok untuk menyatukan bermacam macam network, misalnya Ethernet, token ring, dial-up line, X-25 net dan lain lain.
• Cara pengalamatan bersifat unik dalam skala global, memungkinkan komputer dapat mengidentifikasi secara unik komputer yang lain dalam seluruh jaringan, walaupun jaringannya sebesar jaringan worldwide Internet. Setiap komputer yang tersambung dengan jaringan TCP/IP (Internet) akan memiliki address yang hanya dimiliki olehnya.
• TCP/IP memiliki fasilitas routing dan jenis-jenis layanan lainnya yang memungkinkan diterapkan pada internetwork.

Arsitektur dan Protokol Jaringan TCP/IP

Dalam arsitektur jaringan komputer, terdapat suatu lapisan-lapisan ( layer ) yang memiliki tugas spesifik serta memiliki protokol tersendiri. ISO (International Standard Organization) telah mengeluarkan suatu standard untuk arsitektur jaringan komputer yang dikenal dengan nama Open System Interconnection ( OSI ).

Perbandingan Arsitektur OSI dan TCP/IP
Walaupun jumlahnya berbeda, namun semua fungsi dari lapisan-lapisan arsitektur OSI telah tercakup oleh arsitektur TCP/IP. Adapun rincian fungsi masing-masing layer arsitektur TCP/IP adalah sbb :

• Physical Layer (lapisan fisik)
Merupakan lapisan terbawah yang mendefinisikan besaran fisik seperti media komunikasi, tegangan, arus, dsb. Lapisan ini dapat bervariasi bergantung pada media komunikasi pada jaringan yang bersangkutan. TCP/IP bersifat fleksibel sehingga dapat mengintegralkan mengintegralkan berbagai jaringan dengan media fisik yang berbeda-beda.

• Network Access Layer
fungsi yang mirip dengan Data Link layer pada OSI. Lapisan ini mengatur penyaluran data frame-frame data pada media fisik yang digunakan secara handal. Lapisan ini biasanya memberikan servis untuk deteksi dan koreksi kesalahan dari data yang ditransmisikan. Beberapa contoh protokol yang digunakan pada lapisan ini adalah X.25 jaringan publik, Ethernet untuk jaringan Etehernet, AX.25 untuk jaringan Paket Radio dsb.

• Internet Layer
mendefinisikan bagaimana hubungan dapat terjadi antara dua pihak yang berada pada jaringan yang berbeda seperti Network Layer pada OSI. Pada jaringan Internet yang terdiri atas puluhan juta host dan ratusan ribu jaringan lokal, lapisan ini bertugas untuk menjamin agar suatu paket yang dikirimkan dapat menemukan tujuannya dimana pun berada. Oleh karena itu, lapisan ini memiliki peranan penting terutama dalam mewujudkan internetworking yang meliputi wilayah luas (worldwide Internet). Beberapa tugas penting pada lapisan ini adalah:
1. Addressing, yakni melengkapi setiap datagram dengan alamat Internet dari tujuan. Alamat pada protokol inilah yang dikenal dengan Internet Protocol Address ( IP Address). Karena pengalamatan (addressing) pada jaringan TCP/IP berada pada level ini (software), maka jaringan TCP/IP independen dari jenis media dan komputer yang digunakan.
2. Routing, yakni menentukan ke mana datagram akan dikirim agar mencapai tujuan yang diinginkan. Fungsi ini merupakan fungsi terpenting dari Internet Protocol (IP). Sebagai protokol yang bersifat connectionless, proses routing sepenuhnya ditentukan oleh jaringan. Pengirim tidak memiliki kendali terhadap paket yang dikirimkannya untuk bisa mencapai tujuan. Router-router pada jaringan TCP/IP lah yang sangat menentukan dalam penyampaian datagram dari penerima ke tujuan.
• Transport Layer
mendefinisikan cara-cara untuk melakukan pengiriman data antara end to end host secara handal. Lapisan ini menjamin bahwa informasi
yang diterima pada sisi penerima adalah sama dengan informasi yang dikirimkan pada pengirim. Untuk itu, lapisan ini memiliki beberapa fungsi penting antara lain :
1. Flow Control. Pengiriman data yang telah dipecah menjadi paket-paket tersebut harus diatur sedemikian rupa agar pengirim tidak sampai mengirimkan data dengan kecepatan yang melebihi kemampuan penerima dalam menerima data.
2. Error Detection. Pengirim dan penerima juga melengkapi data dengan sejumlah informasi yang bisa digunakan untuk memeriksa data yang dikirimkan bebas dari kesalahan. Jika ditemukan kesalahan pada paket data yang diterima, maka penerima tidak akan menerima data tersebut. Pengirim akan mengirim ulang paket data yang mengandung kesalahan tadi. Namun hal ini dapat menimbulkan delay yang cukup berartii.
Pada TCP/IP, protokol yang dipergunakan adalah Transmission Control Protocol (TCP) atau User Datagram Protocol ( UDP ). TCP dipakai untuk aplikasi-aplikasi yang membutuhkan keandalan data, sedangkan UDP digunakan untuk aplikasi yang membutuhkan panjang paket yang pendek dan tidak menuntut keandalan yang tinggi. TCP memiliki fungsi flow control dan error detection dan bersifat connection oriented. Sebaliknya pada UDP yang bersifat connectionless tidak ada mekanisme pemeriksaan data dan flow control, sehingga UDP disebut juga unreliable protocol. Untuk beberapa hal yang menyangkut efisiensi dan penyederhanaan, beberapa aplikasi memilih menggunakan UDP sebagai protokol transport. Contohnya adalah aplikasi database yang hanya bersifat query dan response, atau aplikasi lain yang sangat sensitif terhadap delay seperti video conference. Aplikasi seperti ini dapat mentolerir sedikit kesalahan (gambar atau suara masih bisa dimengerti), namun akan tidak nyaman untuk dilihat jika terdapat delay yang cukup berarti.

• Application Layer
merupakan lapisan terakhir dalam arsitektur TCP/IP yang berfungsi mendefinisikan aplikasi-aplikasi yang dijalankan pada jaringan. Karena itu, terdapat banyak protokol pada lapisan ini, sesuai dengan banyaknya aplikasi TCP/IP yang dapat dijalankan. Contohnya adalah SMTP ( Simple Mail Transfer Protocol ) untuk pengiriman e-mail, FTP (File Transfer
Protocol) untuk transfer file, HTTP (Hyper Text Transfer Protocol) untuk aplikasi web, NNTP (Network News Transfer Protocol) untuk distribusi news group dan lain-lain. Setiap aplikasi pada umumnya menggunakan protokol TCP dan IP, sehingga keseluruhan keluarga protokol ini dinamai dengan TCP/IP.




Pengiriman dan Penerimaan Paket Data

Layer-layer dan protokol yang terdapat dalam arsitektur jaringan TCP/IP menggambarkan fungsi-fungsi dalam komunikasi antara dua buah komputer. Setiap lapisan menerima data dari lapisan di atas atau dibawahnya, kemudian memproses data tersebut sesuai fungsi protokol yang dimilikinya dan meneruskannya ke lapisan berikutnya. Ketika dua komputer berkomunikasi, terjadi aliran data antara pengirim dan penerima melalui lapisan-lapisan di atas. Pada pengirim, aliran data adalah dari atas ke bawah. Data dari user maupun suatu aplikasi dikirimkan ke Lapisan Transport dalam bentuk paket-paket dengan panjang tertentu. Protokol menambahkan sejumlah bit pada setiap paket sebagai header yang berisi informasi mengenai urutan segmentasi untuk menjaga integritas data dan bit-bit pariti untuk deteksi dan koreksi kesalahan.
Dari Lapisan Transport, data yang telah diberi header tersebut diteruskan ke Lapisan Network / Internet. Pada lapisan ini terjadi penambahan header oleh protokol yang berisi informasi alamat tujuan, alamat pengirim dan informasi lain yang dibutuhkan untuk melakukan routing. Kemudian terjadi pengarahan routing data, yakni ke network dan interface yang mana data akan dikirimkan, jika terdapat lebih dari satu interface pada host. Pada lapisan ini juga dapat terjadi segmentasi data, karena panjang paket yang akan dikirimkan harus disesuaikan dengan kondisi media komunikasi pada network yang akan dilalui.
Terakhir data akan sampai pada Physical Layer yang akan mengirimkan data dalam bentuk besaran-besaran listrik/fisik seperti tegangan, arus, gelombang radio maupun cahaya, sesuai media yang digunakan.
Di bagian penerima, proses pengolahan data mirip seperti di atas hanya dalam urutan yang berlawanan (dari bawqah ke atas). Sinyal yang diterima pada physical layer akan diubah dalam ke dalam data. Protokol akan memeriksa integritasnya dan jika tidak ditemukan error t header yang ditambahkan akan dilepas.
Selanjutnya data diteruskan ke lapisan network. Pada lapisan ini, address tujuan dari paket data yang diterima akan diperiksa. Jika address tujuan merupakan address host yang bersangkutan, maka header lapisan network akan dicopot dan data akan diteruskan ke lapisan yang diatasnya. Namun jika tidak, data akan di forward ke network tujuannya, sesuai dengan informasi routing yang dimiliki.
Pada lapisan Transport, kebenaran data akan diperiksa kembali, menggunakan informasi header yang dikirimkan oleh pengirim. Jika tidak ada
kesalahan, paket-paket data yang diterima akan disusun kembali sesuai urutannya pada saat akan dikirim dan diteruskan ke lapisan aplikasi pada penerima.
Proses yang dilakukan tiap lapisan tersebut dikenal dengan istilah enkapsulasi data. Enkapsulasi ini sifatnya transparan. Maksudnya, suatu lapisan tidak perlu mengetahui ada berapa lapisan yang ada di atasnya maupun di bawahnya. Masing-masing hanya mengerjakan tugasnya. Pada pengirim, tugas ini adalah menerima data dari lapisan diatasnya, mengolah data tersebut sesuai dengan fungsi protokol, menambahkan header protokol dan meneruskan ke lapisan di bawahnya.
Pada penerima, tugas ini adalah menerima data dari lapisan di bawahnya, mengolah data sesuai fungsi protokol, mencopot header protokol tersebut dan meneruskan ke lapisan di atasnya.

Internet Protocol
Internet Protocol (IP) berfungsi menyampaikan paket data ke alamat yang tepat. Oleh karena itu Internet Protokol memegang peranan yang sangat penting dari jaringan TCP/IP. Karena semua aplikasi jaringan TCP/IP pasti bertumpu kepada Internet Protocol agar dapat berjalan dengan baik.
IP merupakan protokol pada network layer yang bersifat :
1. Connectionless, yakni setiap paket data yang dikirim pada suatu saat akan melalui rute secara independen. Paket IP (datagram) akan melalui rute yang ditentukan oleh setiap router yang dilalui oleh datagram tersebut. Hal ini memungkinkan keseluruhan datagram tiba di tempat tujuan dalam urutan yang berbeda karena menempuh rute yang berbeda pula.
2. Unreliable atau ketidakandalan yakni Protokol IP tidak menjamin datagram yang dikirim pasti sampai ke tempat tujuan. Ia hanya akan melakukan best effort delivery yakni melakukan usaha sebaik-baiknya agar paket yang dikirim tersebut sampai ke tujuan.
Suatu datagram bisa saja tidak sampai dengan selamat ke tujuan karena beberapa hal berikut:
• Adanya bit error pada saat pentransmisian datagram pada suatu medium
• Router yang dilewati mendiscard datagram karena terjadinya kongesti dan kekurangan ruang memori buffer
• Putusnya rute ke tujuan untuk sementara waktu akibat adanya router yang down
Terjadinya kekacauan routing, sehingga datagram mengalami looping
IP juga didesain untuk dapat melewati berbagai media komunikasi yang memiliki karakteristik dan kecepatan yang berbeda-beda. Pada jaringan Ethernet, panjang satu datagram akan lebih besar dari panjang datagram pada jaringan publik yang menggunakan media jaringan telepon, atau pada jaringan wireless. Perbedaan ini semata-mata untuk mencapai throughput yang baik pada setiap media. Pada umumnya, semakin cepat kemampuan transfer data pada media tersebut, semakin besar panjang datagram maksimum yang digunakan. Akibat dari perbedaan ini, datagram IP dapat mengalami fragmentasi ketika berpindah dari media kecepatan tinggi ke kecepatan rendah (misalnya dari LAN Ethernet 10 Mbps ke leased line menggunakan Point-to-Point Protocol dengan kecepatan 64 kbps). Pada router/host penerima, datagram yang ter-fragmen ini harus disatukan kembali sebelum diteruskan ke router berikutnya, atau ke lapisan transport pada host tujuan. Hal ini menambah waktu pemrosesan pada router dan menyebabkan delay.
Seluruh sifat yang diuraikan pada di atas adalah akibat adanya sisi efisiensi protokol yang dikorbankan sebagai konsekuensi dari keunggulan protokol IP. Keunggulan ini berupa kemampuan menggabungkan berbagai media komunikasi dengan karakteristik yang berbeda-beda, fleksibel dengan perkembangan jaringan, dapat merubah routing secara otomatis jika suatu rute mengalami kegagalan, dsb. Misalnya, untuk dapat merubah routing secara dinamis, dipilih mekanisme routing yang ditentukan oleh kondisi jaringan dan elemen-elemen jaringan (router). Selain itu, proses routing juga harus dilakukan untuk setiap datagram, tidak hanya pada permulaan hubungan. Marilah kita perhatikan struktur header dari protokol IP beserta fungsinya masing-masing.
Setiap protokol memiliki bit-bit ekstra diluar informasi/data yang dibawanya. Selain informasi, bit-bit ini juga berfungsi sebagai alat kontrol. Dari sisi efisiensi, semakin besar jumlah bit ekstra ini, maka semakin kecil efisiensi komunikasi yang berjalan. Sebaliknya semakin kecil jumlah bit ekstra ini, semakin tinggi efisiensi komunikasi yang berjalan. Disinilah dilakukan trade-off antara keandalan datagram dan efisiensi. Sebagai contoh, agar datagram IP dapat menemukan tujuannya, diperlukan informasi tambahan yang harus dicantumkan pada header ini.

Pengertian Jaringan

Seringkali kita mendengar kata internet, sekilas mungkin kita akan berpikir bahwa yang namanya internet merupakan sebuah jaringan yang sangat besar dan terdiri dari banyak kompuer. Atau bahkan bagi orang yang awam internet sering diartikan sebagai browsing, chatting, dan lain-lain.
Pengertian ini merupakan sebuah pandangan yang kurang benar. Karena sebenarnya internet adalah kumpulan dari jaringan-jaringan kecil dan besar yang saling terhubung secara real-time atau terus menerus di seluruh dunia.
Dalam suatu sistem jaringan, dimana seluruh komputer saling berbagi data dan resources satu sama lain sehingga tercapai efisiensi dalam pemanfaatan teknologi, amat dibutuhkan perangkat-perangkat khusus dan instalasi tertentu.
Pada bab ini akan dijelaskan beberapa peralatan yang digunakan dalam sistem jaringan serta pengaturan TCP/IP pada sistem operasi Windows.

Topologi Jaringan
Tujuan dari suatu jaringan adalah menghubungkan jaringan-jaringan yang telah ada dalam jaringan tersebut sehingga informasi dapat ditransfer dari satu lokawi ke lokasi yang lain. Karena suat perusahaan memuliki keinginan atau kebutuhan yang berbeda-beda maka terdapat berbagai cara jaringan terminal-terminal dapat dihubungkan. Struktur Geometric ini disebut dengan LAN Topologies.
Terdapat 6 jenis topologi yaitu :
• Bus
• Ring
• Star
• Extended Star
• hierarchical topology
• Mesh
Setiap topologi memuliki karakteristik yang berdeda-beda dan masing-masing juga memiliki keuntungan dan kerugian. Topologi tidak tergantung kepada medianya dan setiap topologi biasanya menggunakan media sebagai berikut :

Jenis-jenis Media yaitu :
1. Twisted Pair
2. Coaxial Cable
3. Optical Cable
4. Wireless
Topologi dibagi menjadi dua jenis yaitu Physical Topology dan Logical Topologi. Dibawah ini adalah jenis-jenis Physical Topologi.

1. Topologi Bus atau Daisy Chain
Topologi ini memiliki karakteristik sebagai berikut:
• merupakan satu kabel yang kedua ujung nya ditutup, dimana sepanjang kabel terdapat node-node
• umum digunakan karena sederhana dalam instalasi
• signal melewati kabel dalam dua arah dan mungkin terjadi collision
• problem terbesar pada saat kabel putus. Jika salah satu segmen kabel putus, maka seluruh jaringan akan terhenti.

2. Topologi Ring
Topologi ini mempuyai karakteristik sebagai berikut:
• lingkaran tertutup yang berisi node-node
• sederhana dalam layout
• signal mengalir dalam satu arah, sehingga dapat menghindarkan terjadinya collision (dua paket data bercampur), sehingga memungkinkan pergerakan data yang cepat dan collision detection yang lebih sederhana
• problem: sama dengan topologi bus
• biasanya topologi ring tidak dibuat secara fisik melainkan direalisasikan dengan sebuah consentrator dan kelihatan seperti topologi star

3. Topolog Star
Topologi ini mempunyai karakteristik sebagai berikut:
• setiap node berkomunikasi langsung dengan central node, traffic data mengalir dari node ke central node dan kembali lagi.
• mudah dikembangkan, karena setiap node hanya memiliki kabel yang langsung terhubung ke central node.
• keunggulannya adalah jika satu kabel node terputus yang lainnya tidak terganggu.
• dapat digunakan kabel yang “lower grade” karena hanya menghandel satu traffic node, biasanya digunakan kabel UTP.

4. Topologi Extended Star
Topologi Extended Star merupakan perkembangan lanjutan dari topologi star dimana karakteristiknya tidak jauh berbeda dengan topologi star yaitu :
• setiap node berkomunikasi langsung dengan sub node, sedangkan sub node berkomunikasi dengan central node. traffic data mengalir dari node ke sub node lalu diteruskan ke central node dan kembali lagi.
• Digunakan pada jaringan yang besar dan membutuhkan penghubung yang banyak atau melebihi dari kapasitas maksimal penghubung.
• keunggulan : jika satu kabel sub node terputus maka sub node yang lainnya tidak terganggu, tetapi apabila central node terputus maka semua node disetiap sub node akan terputus
• tidak dapat digunakan kabel yang “lower grade” karena hanya menghandel satu traffic node, karena untuk berkomunikasi antara satu node ke node lainnya membutuhkan beberapa kali hops.

5. Topologi hierarchical
Topologi ini biasa disebut sebagai topolodi tree. Dibangun oleh seperti halnya topologi extended star yang dihubungkan melalui sub node dalam satu central node. Topologi ini dapat mensupport baik baseband maupun broadband signaling dan juga mensupport baik contention maupun token bus access.

6. Topologi Mesh
MESH topologi dibangun dengan memasang link diantara atation-station. Sebuah ‘fully-connected mesh’ adalah sebauh jaringan dimana setiap terminal terhubung secara langsung ke semua terminal-terminal yang lain. Biasanya digunakan pada jaringan komputer kecil. Topologi ini secara teori memungkinkan akan tetapi tidak praktis dan biayanya cukup tinggi untuk di-implementasikan. Mesh topologi memiliki tingkat redundancy yang tinggi. Sehingga jika terdapat satu link yang rusak maka suatu station dapat mencari link yang lainnya.

Manajemen Memori (2)

PROSES ADDRESS SPACE

Ketika user mode process meminta alokasi memori, maka proses tersebut bagi kernel :

· Dianggap nonurgent sehingga proses tersebut tidak dengan segera mendapat alokasi memori.

· Tidak bersih dari error sehingga kernel harus berusaha menangguli error yang ada.

Karena kernel berusaha sebisa mungkin untuk menunda permintaan alokasi memory maka user mode process menggunakan sebuah interval linier address yang baru yang merupakan bagian dari address space yang disebut memory region.

Address space sebuah proses terdiri dari semua linier address yang proses tersebut dapat gunakan. Interval linier address tersebut disebut memory region. Memory region dikarakterisasi dengan initial address, length (panjang) dan hak akses. Untuk alasan efisiensi, maka initial address dan panjang dari memory region harus merupakan kelipatan dari 4096.

1. Memory descriptor

Segala informasi yang berhubungan dengan process address space terdapat dalam tabel referensi mm field dari process descriptor. Struktur data mm_struct :

struct mm_struct {

struct vm_area_struct *mmap, *mmap_avl, *mmap_cache;

pgd_t *pgd;

atomic_t count;

int map_count;

struct semaphore mmap_sem;

unsigned long context;

unsigned long start_code, end_code, start_data,

end_data;

unsigned long start_brk, brk, start_stack;

unsigned long arg_start, arg_end, env_start, env_end;

unsigned long rss, total_vm, locked_vm;

unsigned long def_flags;

unsigned long cpu_vm_mask;

unsigned long swap_cnt;

unsigned long swap_address;

void *segments;

};

Field yang penting :

· pgd dan segments : menunjuk Page Global Directory dan Local Descriptor Table dari proses.

· rss : menspesifikasikan jumlah page frame yang dialokasikan untuk proses.

· total_vm : melambangkan ukuran proses dalam jumlah pages.

· locked_vm : menghitung jumlah “locked” pages, yaitu pages yang tidak bisa diswap.

· count : merupakan jumlah prses yang menggunakan mm_struct deskriptor yang sama.

Fungsi mm_alloc () digunakan untuk mendapatkan memori deskriptor yang baru. Karena deskriptor ini terletak dalam slab allocator cache, maka mm_alloc () memanggil kmem_cache_alloc () untuk menginisialisasi memori deskriptor baru dengan menduplikasi isi dari memori deskriptor yang ada dan countnya diset 1.

2. Memory Regions

Memory region dideskripsikan degna vm_area struct :

struct vm_area_struct {

struct mm_struct *vm_mm;

unsigned long vm_start;

unsigned long vm_end;

struct vm_area_struct *vm_next;

pgprot_t vm_page_prot;

unsigned short vm_flags;

short vm_avl_height;

struct vm_area_struct *vm_avl_left, *vm_avl_right;

struct vm_area_struct *vm_next_share,**vm_pprev_share;

struct vm_operations_struct *vm_ops;

unsigned long vm_offset;

struct file *vm_file;

unsigned long vm_pte;

};

Tiap memory region deskriptor mengindentifikasi sebuah interval linier address tertentu. vm_start berisi linier address dalam interval yang pertama sementara vm_end berisi linier address pertama diluar interval sehingga vm_end – vm_start merupakan panjang dari memory region.

Memory region tiap proses tidak pernah overlap. Jika ada 2 memory region yang bersinggungan maka kernel akan berusaha untuk menggabungkannya. Jika tidak bisa maka akan dibuat saling bersebelahan saja. Pada proses dialokasi, jika yang didisalokasi ada ditengah-tengah sebuah memory region maka memory region tersebut akan terbagi 2.

3. Page Fault Handler

Linux Page Fault exception handler harus membedakan eksepsi yang disebabkan oleh kesalahan programming dari eksepsi yang disebabkan oleh pengacuan ke sebuah page yang berada pada process address space , tetapi belum dialokasi. Fungsi do_page_fault()yang merupakan rutin servis interup Page Fault membandingkan linear address yang menyebabkan page fault dengan memori region dari proses current hal ini merupakan hal yang tepat untuk meng-handle exception.

Jenis page fault handler antara lain : copy on write, demand paging, send SIGSEGV, kill process and kernel “Oops”, dan “fixup code”.

4. Copy on Write

Sistem Unix generasi pertama mengimplementasikan pembuatan proses dengan cara yang ceroboh : saat fork()dipanggil, kernel menduplikasi seluruh process address space parentdan meng-assign salinan proses ke child process. Kernel Unix modern memperkenalkan pendekatan yang lebih efisien yang disebut Copy OnWrite (COW). Idenya adalah daripada menduplikasi page frames, maka terjadi pembagian antara parent process dan child process.

5. Managing the Heap

Setiap proses Unix mempunyai memory region spesifik yang disebut heap yang digunakan untuk memenuhi permintaan proses dinamik memori. Field memory descriptor start_brk dan brk membatasi alamat awal dan akhir pada region tersebut.

Fungsi libary C berikut bisa digunakan oleh proses untuk meminta dan membebaskan dynamic memory :

· malloc (size), meminta ukuran byte dynamic memory

· calloc(n, size), meminta sebuah array yang terdiri atas n elemen dari size, jika alokasi suskses maka akan menginisialisasi komponen array dengan 0 dan mengembalikan linear address dari elemen pertama.

· free(addr), membebaskan memory region yang dialokasikan oleh malloc() atau calloc() yang mempunyai alamat inisial addr.

· brk(addr), memodifikasi ukuran heap secara langsung, parameter addr menentukan nilai baru dari current->mm->brk, dan return value-nya adalah alamat akhir yang baru dari memory region.

Manajemen Memori (1)

MEMORY ADDRESSING
Dalam mengakses isi dari sel memori programmer biasanya mengacu pada alamat memori (memory addresses). Pada microprocessor Intel 80x86 memory addresses dibedakan menjadi tiga jenis address :
1. Logical Address
Terdapat pada instruksi bahasa mesin untuk menspesifikkan alamat dari sebuah operan atau instruksi. Setiap logical address terdiri dari sebuah segment dan sebuah offset (displacement) yang menyatakan jarak dari awal segment ke alamat aktual.
2. Linear Address
Merupakan sebuah 32-bit unsigned integer tunggal yang bisa digunakan untuk pengalamatan hingga 4 GB. Biasanya direpresentasikan dalam notasi heksadesimal.
3. Physical Address
Digunakan untuk pengalamatan sel memori, terdapat pada chip memori.
CPU control unit mengubah logical address ke linear address dengan menggunakan perangkat hardware yang disebut segmentation unit, dan kemudian circuit hardware kedua yang disebut paging unit mengubah linear address ke physical address.
Segmentation pada hardware
Dimulai dengan model 80386, microprocessor Intel menampilkan translasi alamat dengan 2 cara berbeda, yang disebut real mode dan protected mode. Real mode untuk memelihara kompatibilitas prosesor dengan model yang lebih lama dan untuk OS agar dapat melakukan bootstrap.

• Segmentation Registers
Logical address terdiri atas dua bagian : segment identifier dan sebuah offset yang menunjukkan alamat yang bersangkutan pada segment. Segment identifier adalah sebuah 16-bit field yang disebut segment selector. Untuk mempermudah memperoleh segment selectors dengan cepat, prosesor menyediakan segmentation register yang tujuannya hanya untuk memegang segment selectors. Ada enam segmentation register : cs, ss, ds, es, fs, dan gs.
• Segment Descriptor
Setiap segment direpresentasikan dengan 8-byte segment descriptor yang menggambarkan karakteristik segment. Segment descriptor disimpan pada Global Descriptor Table(GDT) atau pada Local Descriptor Table(LDT).
• Segment Selectors
Untuk mempercepat pengubahan dari logical address ke linear address, Intel menyediakan nonprogrammable register tambahan untuk setiap dari 6 programmable segmentation register. Setiap segment selector di-load pada sebuah segmentation register, segment descriptor yang bersangkutan di-load dari memori ke nonprogrammable CPU register yang bersesuaian. Jadi, pengubahan dari logical address ke linear address dilakukan tanpa mengakses GDT atau LDT yang berada pada memori utama. Akses ke GDT atau LDT hanya diperlukan bila isi dari segmentation register berubah. Setiap segment selector mengandung hal-hal berikut :
  1. Sebuah index 13-bit yang menunjukkan masukan segment descriptor yang berhubungan yang terdapat pada GDT atau LDT.
  2. Sebuah TI (tabe indicator) flag yang menunjukkan apakah segment descriptor terdapat pada GDt (Ti = 0) atau pada LDT (TI = 1).
  3. Sebuah RPl (requestor privilege level) 2-bit field, yang membuat current privilege level cPu tepat saat segment selector yang berhubungan di-load ke register cs.
• Segmentation Unit
Segmentatipn Unit melakukan operasi-operasi berikut :
  • Memeriksa TI dari segment selector, untuk memutuskan apakah descriptor table berada pada segment descriptor.
  • Menghitung alamat dari segment descriptor dari index filed segment selector.
  • Menambahkan ke Base field dari segment descriptor, offset dari logical address, sehingga diperoleh linear address.

Segmentation pada Linux
Linux menggunakan segmentasi secara sangat terbatas. Kenyataannya, segmentasi dan paging merupakan hal yang redundan karena keduanya digunakan untuk memisahkan ruang physical address padai proses. Segmentasi bisa menugaskan sebuah ruang linear address yang berbeda, sementara paging bisa memetakan ruang linear address yang sama ke ruang physical address yang berbeda. Linux lebih menyukai paging karena alasan berikut :

• Manajemen memori lebih sederhana bila semua proses menggunakan nilai segment register yang sama, yaitu, pada saat saling berbagi linear addressess yang sama.
• Salah satu tujuan desain Linux adalah portabilitas untuk sebagian besar arsitektur populer; sementara beberapa prosesor RISC hanya mendukung segmentasi secara terbatas.

Paging
Paging pada hardware
Paging unit mengubah linear addresses ke physical adresses. Paging unit mengecek tipe permintaan akses yang melanggar hak akses dari linear address. Jika akses memori tidak valid, maka akan menghasilkan eksepsi page fault.
Untuk efisiensi, linear address dikelompokkan dalam interval fixed-length yang disebut pages; linear addressess kontigu pada sebuah page dipetakan ke physical addresses kontigu. Paging unit menganggap semua RAM terpartisi menjadi fixed-length page frames. Setiap page frame mengandung sebuah page. Struktur data yang memetakan linear ke physical addressses disebut page tables, tersimpan dalam memori utama dan harus diinisialisasi secara tepay oleh kernel sebelum memfungsikan paging unit.

• Regular Paging
Linear address 32 bit dibagi menjadi 3 :
  1. Direktori, 10 bit most significant
  2. Tabel, 10 bit intermediet
  3. Offset, 12 bit least significant

Pengubahan linear address terjadi 2 dalam 2 tahap, masing-masing berdasar pada tipe tabel translasi. Tabel translasi yang pertama disebut page directory dan yang kedua disebut page table.

• Extended Paging
Dimulai pada model Pentium, mikroprosesor Intel 80x86 memperkenalkan extended paging, yang memungkinkan page frames berukuran 4KB atau 4 MB. Extended paging dimungkinkan dengan men-set Page Size flag dari sebuah entri Page Directory. Pada kasus ini, paging unit membagi 32 bit linear address menjadi 2 bagian:
  1. Direktori, 10 bit most significant
  2. Offset, 22 bit sisanya

Entri page directory untuk extended paging sama dengan untuk paging biasa, kecuali :
  1. Page Size flag harus diset.
  2. Hanya 10 bit most signifcant pertama dari 10 bit physical address field yang signifikan

• Transaction Lookaside Buffers (TLB)
Selain cache general purpose hardware, Intel 80x86 menyediakan juga cache yang lain, disebut translation lookaside buffers (TLB) untuk meningkatkan kecepatan translasi linear address.

Paging pada Linux
Linux mengadopsi model three-level paging sehingga paging memungkinkan pada arsitektur 64 bit. Tiga tipe paging tables :
  1. Page Global Directory
  2. Page Middle Directory
  3. Page Table

Page Global Directory mengandung alamat dari beberapa Page Middle Directory, yang mengandung beberapa alamat dari beberapa Page Tables. Setiap entri page table menunjuk ke sebuah page frame. Linear address kemudian terbagi menjadi 4 bagian.

• Linear Address Fields
Makro berikut ini menyederhanakan page table handling :
  1. PAGE_SHIFT, menentukan panjang offset field dalam bit.
  2. PMD_SHIFT, menentukan logaritma dari ukuran area Page Middle Directory entry yang dapat dipetakan.
  3. PGDIR_SHIFT, menentukan logaritma dari ukuran area Page Global Directory entry yang dapat dipetakan.
  4. PTRS_PER_PTE, PTRS_PER_PMD, dan PTRS_PER_PGD; menghitung jumlah entri di Page table, Page Middle Directory, dan Page Global Directory, bernilai 1024, 1 dan 1024.

• Page Table Handling
pte_t, pmd_t, dan pgd_t merupakan tipe data 32 bit yang menggambarkan entri Page Table Table, Page Middle Directory, dan Page Global Directory. pgprot_t merupakan tipe data 32-bit yang lain yang merepresentasikan protection flags dihubungkan dengan entri tunggal.
Empat tipe makro konversi tipe (_ _pte(), _ _pmd(), dan _ _pgprot()) meng-casting unsigned integer 32-bit ke tipe yang sesuai. Kernel juga menyediakan beberapa makro dan fungsi untuk membaca atau memodifikasi entri page table : pte_none(), pmd_none(), pgd_none(), pte_presents(), pmd_present(), pgd_present(), pte_clear(), pmd_clear(), dan pgd_clear. Makro pmd_bad() dan pgd_bad()digunakan oleh fungsi untuk mengecek entri Page Global Directory dan Page Middle Directory sebagai parameter. Tidak ada makro pte_bad()karena legal bagi sebuah entri Page Table untuk mengacu pada sebuah page yang tidak berada di memori utama, tidak bisa ditulis, atau tidak bisa diakses sama sekali. Beberapa fungsi yang berhubungan dengan flag yang terkandung dalam entri Page Table :
pte_read(),pte_write(),pte_exect(),pte_dirty(),pte_young(),pte_wrprotect(),pte_rdprotect(),pte_exprotec(),pte_mkwrite(),pte_mkread(),pte_mkexec(), pte_mkdirty, pte_mkclean(),pte_mkyoung(), pte_mkold(), pte_modify(p,v), set_pte.
Kemudian makro yang mengkombinasikan sebuah alamat page dan sebuah grup protection flags menjadi sebuah page entry 32 bit : mk_pte(), mk_pte_phys(), pte_page(),pmd_page(), pgd_offset(p, a), pmd_offset(p, a).
Fungsi dan makro yang lain :
pte_quicklist, pgd_quicklist,check_pgt_cache(), pgd_alloc(), pmd_alloc(p, a), pte_alloc(p, a), pte_free(), pte_free_kernel(), pgd_free(), free_one_pmd(), free_one_pgd(), SET_PAGE_DIR, new_page_tables(), clear_page_tables(), free_page_tables().
• Reserved Page Frames
Kode kernel dan struktur data disimpan dalam sebuah kelompok dari reserved page frames. Arsitektur PC memempunyai beberapa kelakuan yang tidak biasa :
  1. Page frame 0 digunakan oleh BIOS untuk menyimpan konfigurasi hardware sistem yang terderteksi selama Power On-Self Test (POST).
  2. Physical addressess dari 0x000a0000 hingga 0x000fffff dipesan untk rutin BIOS dan untuk pemetaan internal memori dari ISA graphic cards.
  3. Page frames tambahan pada megabyte pertama mungkin dipesan oleh model komputer model tertentu. Contohnya, Ibm ThinkPad memetakan 0xa0 page frame ke 0x9f.
• Proses Page Tables
Ruang linear address dibagi menjadi dua bagian :
  1. Linear address dari 0x00000000 ke PAGE_OFFSET -1 bisa dialamatkan saat proses berada pada user atau kernel mode.
  2. Linear address dari 0x00000000 ke PAGE_OFFSET -1 bisa dialamatkan hanya saat proses berada pada kernel mode.
• Kernel Page Tables
Kernel menginisialisai page table dirinya dalam dua fase. Sesaat sesudah kernel di-load ke memori, CPU masih bekerja dalam real mode; sehingga paging masih belum berfungsi. Pada fase pertama, kernel membuat sebuah ruang alamat terbatas 4 MB, yang cukup untuk menginstal dirinya pada RAM. Pada fase kedua, kernel memanfaatkan semua Ram yang ada dan men-set paging tables dengan tepat.

Trojan(2)

Jenis jenis Trojan

Trojan seperti halnya virus, mempunyai jumlah yang cukup banyak dan berkembang seiring dengan berjalannya waktu. Terdapat kurang lebih 650 buah Trojan yang telah beredar saat ini . Pendapat lain mengatakan bahwa di tahun 2002 sudah terdapat sekitar 800 buah Trojan . Jumlah tersebut adalah jumlah yang diketahui atau terdeteksi keberadaannya, sedangkan yang tidak terdeteksi tidak diketahui jumlahnya.
Dari berbagai macam Trojan yang telah beredar dan menginfeksi pemakai Internet, dapat diklasifikasikan berdasarkan ciri-cirinya. Menurut Dancho Danchev (2004), Trojan dapat diklasifikasikan menjadi delapan jenis, antara lain sebagai berikut.

1. Trojan Remote Access
2. Trojan Pengirim Password
3. Trojan File Transfer Protocol (FTP)
4. Keyloggers
5. Trojan Penghancur
6. Trojan Denial of Service (DoS) Attack
7. Trojan Proxy/Wingate
8. Software Detection Killers

Sumber-sumber Trojan

Banyak pemakai komputer/Internet yang mempunyai sedikit pengetahuan tentang asal muasal sebuah Trojan, mereka beranggapan bahwa sumber Trojan hanya dari proses download dan menjalankan server.exe. Sebenarnya banyak jalan atau sumber Trojan untuk menginfeksi komputer seseorang yang berawal dari menggunakan Trojan untuk aktivitas yang tidak sah .
Komputer korban dapat disusupi Trojan dengan berbagai macam cara atau berasal dari sumber-sumber tertentu. Sumber-sumber tersebut adalah sebagai berikut .

1. ICQ
2. IRC
3. Attachment
4. Physical Access
5. Lubang Software Browser dan E-mail
6. Netbios (File Sharing)

.
Program Gadungan, Situs Yang Tidak Dapat Dipercaya dan Software Freeware

Dari keterangan sebelumnya telah dijelaskan tentang sumber-sumber Trojan yang digunakan sebagai media penyebarannya. Beberapa cara dilakukan oleh penyerang untuk mengelabuhi korbannya saat menggunakan Internet. Tawaran yang dilakukan untuk mengelabuhi adalah dengan menggunakan program gadungan (fake program), situs yang tidak dapat dipercaya (untrusted sites) dan software yang didapatkan secara gratis (freeware). Pemakai komputer perlu berhati-hati dengan tawaran tersebut. Sebagai contoh dari ketiga tawaran diatas adalah sebagai berikut .

1. Pemanfaatan fasilitas freeware
2. Pemanfaatan fasilitas free web space.
3. Download untuk mendapatkan software freeware.


Apa Yang Dicari Penyerang

Sebagian pemakai Internet beranggapan bahwa Trojan hanya bersifat merusak saja. Anggapan tersebut tidak benar, karena Trojan dapat digunakan alat untuk mata-mata dan melakukan penyadapan pada beberapa komputer korban. Data yang disadap berupa data pribadi maupun informasi yang sensitif (misalnya spionase dalam industri) .
Contoh hal-hal yang diminati penyerang adalah sebagai berikut .
• Informasi Kartu Kredit.
• Data akuntansi (e-mail passwords, dial-up passwords dan webservices passwords).
• E-mail Addresses.
• Work Projects (dokumen pekerjaan).
• Nama anak-anak dengan foto dan umurnya.
• Dokumen sekolah.

DETEKSI TROJAN DAN PENANGANANNYA

Dalam bab sebelumnya telah dipaparkan tentang hal-hal yang berkaitan dengan Trojan. Selanjutnya dalam bab ini akan dibahas tentang pengamanan sistem yang membahas pendeteksian Trojan dan penanganannya.
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 sistem terinfeksi, yaitu usaha untuk menutup lubang kemanan yang telah dieksploitasi dan menghilangkan penyebab infeksi .

Deteksi Trojan

Tanda-tanda terserangnya komputer oleh Trojan dapat diketahui dengan melihat perilaku tampilan komputer dan melakukan deteksi dengan anti-virus maupun trojan scanner. Tanda-tanda yang diperlihatkan oleh tampilan komputer dan patut dicurigai adalah sebagai berikut .

1. Saat mengunjungi suatu situs, terdapat beberapa pop-up yang muncul dan telah mengunjungi salah satu pop-up. Tetapi ketika akan mengakhiri kunjungan (tidak sepenuhnya dikunjungi), tiba-tiba browser mengarahkan dan membuka secara otomatis beberapa halaman tidak dikenal.
2. Tampilan Kotak Pesan yang tak dikenal dan tampak di layar monitor. Pesan berisi beberapa pertanyaan yang bersifat pribadi.
3. Tampilan Windows mengalami perubahan dengan sendirinya, misalnya teks screensaver yang baru, tanggal/waktu, perubahan volume bunyi dengan sendirinya, pointer mouse bergerak sendirinya, CD-ROM drive membuka dan menutup sendiri.
4. Outlook Express menggunakan waktu yang cukup lama saat menutup (close) atau terlihat hang (menggantung) ketika melihat preview-nya,
5. Adanya file yang rusak atau hilang,
6. Program yang tidak diketahui aktif terlihat di task list,
7. Tanda atau informasi dari firewall tentang outbound komunikasi dari sumber yang tidak diketahui.

Sebagian tanda-tanda diatas biasanya dilakukan oleh penyerang tingkat pemula dengan ciri memberikan tanda atau pesan di layar monitor. Hal ini berbeda dengan penyerang tingkat lanjut, ia akan berusaha untuk menutupi dirinya dan menghilangkan jejaknya saat melakukan penyusupan. Penyerang tingkat lanjut melakukan penyadapan dan menggunakan komputer yang infeksi untuk beberapa alasan yang spesifik, serta tidak menggunakan cara-cara seperti penyerang tingkat pemula. Sehingga aktivitasnya diam-diam dan tidak mencurigakan.

Pendeteksian Trojan dapat dilakukan dengan cara-cara sebagai berikut .
1. Task List
Cara pendeteksiannya adalah dengan melihat daftar program yang sedang berjalan dalam task list. Daftar dapat ditampilkan dengan menekan tombol CTRL+ALT+DEL. Selain dapat mengetahui program yang berjalan, pemakai dapat melakukan penghentian terhadap suatu program yang dianggap aneh dan mencurigakan. Namun beberapa Trojan tetap mampu menyembunyikan dari task list ini. Sehingga untuk mengetahui secara program yang berjalan secara keseluruhan perlu dibuka System Information Utility (msinfo32.exe) yang berada di C:\Program files\common files\microsoft shared\msinfo. Tool ini dapat melihat semua proses itu sedang berjalan, baik yang tersembunyi dari task list maupun tidak. Hal-hal yang perlu diperiksa adalah path, nama file, properti file dan berjalannya file *.exe serta file *.dll.
2. Netstat
Semua Trojan membutuhkan komunikasi. Jika mereka tidak melakukan komunikasi berarti tujuannya sia-sia. Hal ini adalah kelemahan yang utama dari Trojan, dengan komunikasi berarti mereka meninggalkan jejak yang kemudian dapat ditelusuri. Perintah Netstat berfungsi membuka koneksi ke dan dari komputer seseorang. Jika perintah ini dijalankan maka akan menampilkan IP address dari komputer tersebut dan komputer yang terkoneksi dengannya. Jika ditemukan IP address yang tidak dikenal maka perlu diselidiki lebih lanjut, mengejar dan menangkapnya.
3. TCP View
TCPVIEW adalah suatu free utility dari Sysinternals yang mempunyai kemampuan menampilkan IP address dan menampilkan program yang digunakan oleh orang lain untuk koneksi dengan komputer pemakai. Dengan menggunakan informasi tersebut, maka jika terjadi penyerangan dapat diketahui dan dapat melakukan serangan balik.


Menghapus Trojan

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.



Anti Virus (AV) Scanner
Anti-virus berfungsi untuk mendeteksi virus, bukan untuk mendeteksi Trojan. Namun ketika Trojan mulai populer dan menyebabkan banyak masalah, pembuat anti-virus menambahkan data-data trojan ke dalam anti-virusnya. Anti-virus ini tidak dapat mencari dan menganalisa Trojan secara keseluruhan. Anti-virus dapat mendeteksi Trojan berdasarkan nama-namanya yang telah dimasukkan ke database anti-virus.

Trojan Scanner
Sebagian anti-virus dapat mendeteksi keberadaan Trojan melalui pendeteksian nama-nama filenya. Pendeteksian yang efektif adalah menggunakan Trojan Scanner,
Trojan membuka port tertentu sebagai jalan belakang (backdoor) untuk menyerang targetnya. Salah satu contoh trojan scanner adalah Anti-Trojan. Scanner ini memeriksa Trojan dengan melakukan proses :
• port scanning,
• memeriksa registry,
• memeriksa hardisk.
Jika ditemukan adanya Trojan, maka dilakukan penangan dengan beberapa pilihan untuk menghapus Trojan.

Penanganan Pengobatan (Recovery)
Jika dalam suatu komputer telah ditemukan adanya hacking oleh Trojan, maka menghapus atau menutup fasilitas sharing tidaklah cukup. Karena suatu penyerang dapat dengan mudah menciptakan jalan lain (backdoors) ke dalam sistem atau memodifikasi sistem operasi untuk dirinya sendiri. Oleh karena itu hanya ada satu jalan yang nyata untuk mengamankan suatu yang sistem, yaitu meng-install ulang dengan menggunakan program yang asli . Berikut ini akan disampaikan uraian langkah-langkah yang diperlukan dalam rangka pengobatan/penyembuhan suatu sistem. Langkah-langkah yang diperlukan adalah sebagai berikut :

1. Mengisolasi komputer yang telah terinfeksi.
2. Menemukan masalah-masalah yang serius.
3. Mengawali dengan proses pembersihan
4. Mengamankan sistem dan menggunakan software tambahan
5. Restore backup data

Pencegahan Agar Terhindar Dari Trojan

Beberapa cara dapat dilakukan untuk menghindari agar tidak terinfeksi Trojan. Salah satu cara masuk Trojan untuk menginfeksi suatu sistem adalah melewati file yang di download. Maka perlu ada perlakuan khusus dengan cara mengkarantina hasil download sebelum yakin bahwa file tersebut benar-benar aman .
Cara lain yang bersifat mencegah (preventif) dan merupakan informasi yang umum yang dapat dilakukan oleh seseorang yang menggunakan komputer untuk berinternet, adalah sebagai berikut .

1. Memilih situs yang benar-benar dapat dipercaya untuk melakukan download. Jangan pernah melakukan download secara sembarangan yang berasal dari seseorang atau situs yang tidak dapat dipercaya.
2. Memastikan bahwa file yang dikirimkan belum pernah dibuka oleh orang lain.
3. Mewaspadai file-file yang ekstensionnya disembunyikan.
4. Memastikan bahwa di dalam komputer tidak ada program yang berjalan secara otomatis atau mode file preview.
5. Jangan selalu merasa aman bila di komputer telah terpasang software anti-virus/trojan scanner,
6. Memastikan bahwa tidak melakukan download program executable “check it out”. Ini adalah sebuah Trojan. Jika program ini dijalankan, maka komputer telah terinfeksi Trojan.

Trojan (1)

PENGERTIAN UMUM TROJAN

Istilah Trojan Horse (Kuda Troya) berasal dari mitologi Yunani pada saat perang Troya. Dalam peperangan tersebut pasukan Yunani melawan pasukan kerajaan Troya. PasukanYunani telah mengepung kota Troya selama sepuluh tahun, namun karena pasukan kerajaan Troya cukup tangguh, maka pasukan Yunani sulit mengalahkannya.

Kisah epik di atas telah mengilhami para hacker untuk menciptakan “penyusup” ke komputer orang lain yang disebut dengan Trojan Horse. Trojan pada saat ini berkaitan dengan masalah keamanan komputer yang cukup serius. Trojan dapat masuk ke komputer dengan melalui beberapa cara dan dari berbagai sumber yang kurang dapat dipercaya di Internet atau dari orang lain .

Definisi Trojan

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 .

Fungsi Trojan

Trojan bersembunyi di latar belakang dengan cara membuka port tertentu dan menunggu diaktifkan oleh penyerang. Komputer yang telah terinfeksi dapat dikendalikan oleh penyerang melalui versi client-nya. Cara kerja Trojan mirip dengan remote administration tool, dengan sifat dan fungsi yang sama. Program remote administration misalnya pcAnywhere, digunakan untuk keperluan yang benar dan sah (legitimate), sedangkan Trojam digunakan untuk keperluan yang negatif . Jika sebuah komputer terinfeksi oleh Trojan dan telah dikendalikan oleh penyerangnya, maka beberapa kemungkinan dapat terjadi. Sebagai contoh, sebuah Trojan dengan nama NetBus dapat melakukan banyak hal ke komputer yang telah dikendalikan antara lain :

• menghapus file,

• mengirim dan mengambil file,

• menjalankan program-program aplikasi,

• menampilkan gambar,

• mengintip program-program yang sedang dijalankan,

• menutup program-program yang dijalankan,

• melihat apa saja yang sedang diketik,

• membuka dan menutup CD-ROM drive,

• mengirim pesan dan mengajak untuk bicara (chat),

• mematikan komputer.

Contoh di atas adalah hanya sebagian yang dapat dikerjakan oleh sebuah Trojan. Trojan lain kemungkinan mempunyai fungsi yang berbeda bahkan mungkin lebih berbahaya dan lebih susah dideteksi. Cara lain adalah memanfaatkan lubang kemanan pada operating system di sisi penjual atau pemberi jasa (server) dimanfaatkan untuk menyadap data-data pelanggannya (client). Jika lubang ini dieksploitasi, kemungkinan data seluruh pelanggan dari server tersebut jatuh ke tangan penyadap .

Cara Kerja Trojan

Trojan masuk melalui dua bagian, yaitu bagian client dan server. Ketika korban (tanpa diketahui) menjalankan komputer, kemudian penyerang akan menggunakan client untuk koneksi dengan server dan mulai menggunakan trojan. Protokol TCP/IP adalah jenis protokol yang umum digunakan untuk komunikasi. Trojan dapat bekerja dengan baik dengan jenis protokol ini, tetapi beberapa trojan juga dapat menggunakan protokol UDP dengan baik. Ketika server mulai dijalankan (pada komputer korban), Trojan umumnya mencoba untuk menyembunyikan diri di suatu tempat dalam sistem komputer tersebut, kemudian mulai “mendengarkan” di beberapa port untuk melakukan koneksi, memodifikasi registry dan atau menggunakan metode lain yaitu metode autostarting .

Hal yang penting untuk diketahui oleh penyerang adalah mengetahui IP address korban untuk menghubungkan komputernya ke komputer korban. Banyak varian Trojan mempunyai kemampuan mengirimkan IP address korban ke penyerangnya, misalnya media ICQ maupun IRC. Hal ini digunakan bagi korban yang mempunyai

Penyalahgunaan penyerang melewati file sistem adalah sebagai berikut .

• Autostart Folder.

• Win.Ini.

• System.Ini.

• Wininit.Ini.

• Winstart.Bat.

• Autoexec.Bat.

• Config.Sys.

• Explorer Startup.

• Registry Shell Open

• Metode Deteksi ICQ Net

• ActiveX Component