Microsoft Buka Detail Kelemahan Windows

Posted in Labels:

foto berita artikel
Microsoft pada Selasa (09/09) lalu telah meluncurkan summary bulletin keamanan bulan September 2008. Empat bulletin tersebut antara lain, Windows GDI+, Windows Media Player, dan Microsoft Office OneNote, dan keempatnya telah mendapat perhatian penuh Microsoft dan pihaknya akan memberikan hasil patch dari kelemahan IE pada bulan ini. Mulai bulan depan, Microsoft berencana untuk share detail teknisnya dari kelemahan yang ada di software milik Microsoft, yang sekaligus mengupdate produk yang terkena imbasnya, sebelum software tersebut diumumkan ke public.
Selain itu, pada bulan Oktober, Microsoft juga akan mulai menyediakan setiap bulletin dengan sebuah Exploitability Index untuk membantu administrator system memasukan patch dalam bulletin. Semua patch keamanan Microsoft, baik untuk Windows ataupun Office dapat diperoleh dari Microsoft Update atau keterangan di bawah ini :
MS08-052, dengan judul "Vulnerabilities in GDI+ Could Allow Remote Code Execution (954593)”. Kelemahan tersebut ada pada software Windows XP, Windows Server 2003, Windows Vista, and Windows Server 2008, Microsoft Internet Explorer 6 Service Pack 1 ketika diinstal di Microsoft Windows 2000 Service Pack 4. Selain itu juga ada Microsoft Digital Image Suite 2006, SQL Server 2000 Reporting Services Service Pack 2, semua SQL Server 2005, Microsoft Report Viewer 2005 Service Pack 1, dan Microsoft Report Viewer 2008. Microsoft mengungkapkan kelemahan dalam semua software tersebut dapat menyebabkan eksekusi kode tertentu, jika user melihat file gambar terentu menggunakan software di atas atau browsing ke website yang mengandung content yang ‘jahat’.
MS08-053, dengan judul "Vulnerability in Windows Media Encoder 9 Could Allow Remote Code Execution (954156)”. Kelemahan tersebut dapat berimbas pada Microsoft Windows 2000, Windows XP, dan Windows Vista, Windows Server 2003 dan Windows Server 2008. Microsoft mengunkapkan kelemahannya yakni menyebabkan adanya eksekusi kode yang ‘jahat’, jika user melihat website yang ‘jahat’. Attacker yang sukses mengeksploitasi kelemahan dalam software tersebut, kemudian akan mengambil alih control system secara penuh.
MS08-054, dengan judul "Vulnerability in Windows Media Player Could Allow Remote Code Execution (954154)". Kelemahan tersebut akan memberikan efek ke Windows Media Player 11. Microsoft menjelaskan bahwa kelemahan dalam Windows Media Player 11 dapat memudahkan eksekusi kode dari jarak jauh oleh attacker, ketika file audio ‘jahat’ masuk ke server Windows Media. Jika user log on dengan menggunakan kunci adiministratif milik user, maka attacker yang sukses mengeksploitasi kelemahan ini dapat mengambil seluruh control ke system computer.
MS08-055, dengan judul "Vulnerability in Microsoft Office Could Allow Remote Code Execution (955047)". Kelemahan terjadi pada Microsoft Office OneNote 2007 dan Microsoft Office XP, Microsoft Office 2003, dan 2007 Microsoft Office System. Microsoft menjelaskan, jika user meng-click URL OneNote yang ‘jahat’, maka attacker kemudian akan mudah mengontrol system computer user.

Bug Processor Intel

Posted in Labels:


foto berita artikel Seorang pakar keamanan bernama Kris Kaspersky berencana untuk mendemonstrasikan bagaimana seorang penyerang dapat melakukan remote ke sebuah komputer dengan menggunakan JavaScript atau paket TCP/IP. Serangan tersebut dapat dilakukan melalui kelemahan yang ada pada microprocessor Intel

Kaspersky akan mendemonstrasikan bagaimana cara penyerangan tersebut pada acara Hack In The Box (HITB) Security Conference di Kuala Lumpur, Malaysia, Oktober mendatang. Konsep serangannya akan menunjukkan bagaimana kelemahan prosesor yang disebut errata, dapat dieksploitasi dengan menggunakan beberapa instruksi dan sedikit pengetahuan bagaimana compiler Java bekerja, yang memungkinkan seorang penyerang dapat mengambil alih kendali kompiler tersebut.

“Saya akan menunjukkan bagaimana kode tersebut bekerja dan membuatnya tersedia untuk umum” ujar Kaspersky.

Permasalahan berbeda memungkinkan hacker melakukan hal lain pada komputer yang diserangnya. “Beberapa permasalahan hanya membuat sistem crash, beberapa (permasalahan) lagi memungkinkan hacker dapat mengambil alih kendali secara penuh dalam level kernel. Dan beberapa lagi menyerang Vista, dimana menonaktifkan proteksi keamanan” Ujarnya.

Demo serangan akan dibuat pada beberapa komputer yang mempunyai sistem operasi yang berbeda, termasuk Windows XP, Vista, Windows Server 2003, Windows Server 2008, Linux dan BSD. Kemungkinan Mac juga akan disertakan dalam demo tersebut.

Tipe Serangan Hacker Terbaru

Posted in Labels:

foto berita artikel
Menurut hasil konferensi hacker Last Hope, menyatakan, dengan menggunakan laptop, headset ponsel, kartu kredit, atau bahkan paspor, dapat membuat user menjadi target pencurian data dan criminal lainnya. Dalam ketakutan namun sesi yang menyenangkan, yang berjudul "How do I Pwn Thee? Let me Count the Ways" (pwn di sini berbicara mengenai kepunyaan atau control), seorang hacker yang memiliki alias “RenderMan” menjelaskan bagaimana user berada dalam resiko keamanan dan mereka tidak mengetahuinya.
Serangan hacker menurut sebagian besar orang mungkin telah mengetahui bahwa mereka harus berhati-hati menggunakan jaringan Wi-Fi, khususnya public hotspot yang tidak mengenkripsi data yang ditransmisikan dan access point jaringan dapat disalahgunakan oleh orang lain. Akibatnya user dapat kehilangan data-data, menerima halaman web yang menipu, dan informasi lainnya, yang menyebabkan computer mereka telah diambil alih.
Ketika penumpang pesawat telah mengabaikan peringatan pramugrari untuk men-disable Wi-Fi atau mereka yang tidak mengetahui bagaimana cara mematikannya, akan mudah terkena penyerangan pihak lain di pesawat. RenderMan menyarankan user agar men-disable Wi-Fi ketika tidak digunakan dan menggunakan VPN, juga software firewall. Headset Bluetooth user juga dapat beresiko terhadap keamanan karena celah keamanan dalam teknologi tersebut dan default PIN yang tidak berubah. Dengan mengeksploitasi kelemahan teknologi tertentu, seseorang dapat masuk dan mencuri data, lalu menyusup dalam conversation, atau bahkan memata-matai user dengan memasukkan bug ke dalamnya. RenderMan menyarankan user untuk mengubah password, men-disable Bluetooth pada telepon, mematikan headset bila tidak digunakan, dan membatasi akses ke data dan fitur ketika berkomunikasi dengan alat Bluetooth lainnya.
Banyak orang tidak menyadari bahwa paspor U.S yang baru mempunyai teknologi RFID (Radio-Frequency Identification) dengan enkripsi yang lemah, yang membuat data pada chip mudah dibaca dengan reader device tertentu. Untuk itu, pemerintah U.S telah memasang metal foil di bagian belakang dan depan paspor, namun foil tersebut masih kaku dan masih lebar sehingga RFID reader masih dapat membacanya. (h_n)

VPN (Virtual Private Network)

Posted in Labels:

foto berita artikel
Yang dimaksud dengan VPN atau Virtual Private Network adalah suatu jaringan private yang mempergunakan sarana jaringan komunikasi publik (dalam hal ini Internet) dengan memakai tunnelling protocol dan prosedur pengamanan. Dengan memakai jaringan publik yang ada, dalam hal ini Internet, maka biaya pengembangan yang dikeluarkan akan jauh relatif lebih murah daripada harus membangun sebuah jaringan internasional tertutup sendiri.
Namun pemakaian Internet sebagai sarana jaringan publik juga mengandung resiko, karena Internet terbuka untuk umum, maka masalah kerahasiaan dan authentifikasi atas data yang dikirim pun juga terbuka. Oleh karenanya VPN menjaminnya dengan penerapan enkripsi data. Sebelum dikirimkan, terlebih dahulu data akan dienkripsikan untuk mengurangi resiko pembacaan dan pembajakan data di jalan oleh pihak yang tidak terkait. Setelah sampai ke alamat tujuan, maka data tersebut akan di-deskripsikan ulang sehingga bentuk informasi dapat kembali menjadi seperti sedia kala. Selain memakai metode pengamanan enkripsi-deskripsi, VPN masih memakai kriptografi lainnya untuk mendukung pengamanan data.
VPN saat ini banyak digunakan untuk diterapkan pada jaringan extranet ataupun intranet perusahaan-perusahaan besar. VPN harus dapat mendukung paling tidak 3 mode pemakaian :
  • Koneksi client untuk akses jarak jauh
  • LAN-to-LAN internetworking
  • Pengontrolan akses dalam suatu intranet
Oleh karena infrastruktur VPN menggunakan infrastruktur telekomunikasi umum, maka dalam VPN harus menyediakan beberapa komponen, antara lain :
  • Konfigurasi, harus mendukung skalabilitas platform yang digunakan, mulai dari konfigurasi untuk kantor kecil sampai tingkat enterprise (perusahaan besar).
  • Keamanan, antara lain dengan tunneling (pembungkusan paket data), enkripsi, autentikasi paket, autentikasi pemakai dan kontrol akses
  • Layanan-layanan VPN, antara lain fungsi Quality of Services (QoS), layanan routing VPN yang menggunakan BGP, OSPF dan EIGRP
  • Peralatan, antara lain Firewall, pendeteksi pengganggu, dan auditing keamanan
  • Manajemen, untuk memonitor jaringan VPN

Duh, Antivirus Aplikasi Facebook Fan Check Bawa Virus

Posted in Labels:

foto berita artikel

Hacker telah mengatur malware di website jejaring social Facebook yang pura-pura mengklaim dapat menghapus virus dari aplikasi Facebok yang baru, Fan Check. Peringatan tersebut disampaikan oleh Sophos, yang menjelaskan bahwa hacker mencoba untuk menguasai apa yang sering dilakukan member Facebook untuk aplikasi Facebook. Ketika member Facebook menggunakan search engine populer untuk mencari informasi antivirus mengenai Fan Check, maka mereka akan mendapatkan hasil yang mengarah ke sebuah situs yang dapat menginfeksi komputer dengan malware.
“Frase 'Facebook Fan Check Virus' telah menjadi populer dalam keyword pencarian di Google. Namun bagaimanapun, hacker telah mengatur sebuah website untuk berpura-pura menjadi sumber informasikomputer user dalam usaha untuk mendorong user meng-instal software berbahaya dan akhirnya menangkap semua detail kartu kredit user.” jelas Graham Cluley, konsultan teknologi senior di Sophos, Senin (07/09).
Sophos belum bisa memutuskan apakah Fan Check juga berbahaya secara alami, karena ketika di-instal, tertampil pesan bahwa aplikasi tersebut telah di-upgrade dan tidak online saat ini. Hal tersebut menurut IDG News Service, status offline Fan Check disebabkan karena larangan Facebook sendiri. Sebagai contoh, member Facebook telah di-tag ke album Fan Check tanpa izin user dan bahkan tanpa user meng-instal aplikasi tersebut.

Halaman Fan Check di Facebook telah di-review hampir 6,000 kali, menerima 1.7 bintang dari 5 bintang, atau memiliki 12.5 juta pengguna aktif per bulannya. Fan Check didesain untuk menghitung berapa banyak friends Facebook dan yang aktif berinteraksi dengan satu profile, untuk menemukan berapa banyak fans dari teman berbeda.(h_n)

Static ARP Untuk Mencegah ARP Poisoning

Posted in Labels:

Apa itu ARP ?

ARP merupakan kependekan dari Address Resolution Protocol yang dalam istilah komputer networking nya adalah sebuah metode untuk menemukan suatu host pada sebuah jaringan yang menterjemahkan sebuah logical address ( IP = internet Protocol ) kedalam sebuah Hardware Address atau lebih dikenal dengan MAC ( Media Access Control ) Address untuk mendukung komunikasi di dalam sebuah jaringan. Dengan adanya protocol tersebut setiap Hardware yang ada dalam sebuah jaringan ( biasanya dikenal dengan Network Interface Card ) dapat berkomunikasi satu sama lain.

Apa itu ARP Poisoning ?
ARP poisoning atau lebih populer di kenal ARP spoofing merupakan sebuah teknik penyerangan jaringan yang digunakan untuk mengacaukan jaringan atau sebuah routing didalam jaringan. Seorang yang melakukan ARP spoofing dapat mengintip data frame dalam sebuah jaringan , memanipulasi traffic , atau memberhentikan traffic atau routing.
secara simple dapat di ilustrasikan sebagai berikut :
ilustrasi-copy
dari gambar ilustrasi di atas dapat kita lihat bahwa ada 3 buah komputer dalam sebuah jaringan, masing masing komputer A B dan C. Komputer A dan B awal nya bisa saling berkomunikasi dengan baik satu sama lain , lalu muncullah Komputer C masuk dalam jaringan melakukan poisoning ARP dan mengelabui jaringan dan seolah olah ip 192.168.0.1 berada Di mac Address 00:01:02:AA:09:3B . Dengan teknik poisoning komputer C bisa mengelabui komputer B bahwa sebenarnya pemiliki ip address 192.168.0.1 yang benar adalah komputer C . Hebat bukan ? dengan mengacaukan jaringan menggunakan posoning ARP attack sebuah sistem jaringan yang baik bisa di bodohi dengan sempurna. Lalu Bagai mana caranya mencegah atau usaha apa yang bisa dilakukan agar tidak terpengaruh racun arp ini ? salah satu caranya adalah dengan men set arp static pada komputer, misal pada windows dengan cara mengetikan perintah berikut pada command prompt :
arp -s 192.168.0.1 00-1e-58-3f-c5-de
atau pada linux juga sama
arp -s ipnya macnya
jika banyak host yang mau di set di linux bisa dengan cara membuat file list ether dan ip
contoh :
/etc/ethers
192.168.0.1 00-1e-58-3f-c5-de
192.168.0.2 00-1e-58-3f-c5-da
192.168.0.1 00-1e-58-3f-c5-d1
kemudia bisa di eksekusi dengan cara mengetikan perintah berikut :
arp -f /etc/ethers
gitu aja sih buat cegah , selama ini cukup ampuh , cuman berabe kalo brubah brubah ip nya dan hardware nya :))
udah sih gitu aja caranya, belom ada cara lain yang gw tau.
ada beberapa tools pendukung :
1. arpwatch
2. tcpdump
3.wireshark

PRIORITAS DALAM MENGETES SISTEM

Posted in Labels:

PRIORITAS DALAM MENGETES SISTEM

Apa yang bisa kita lakukan supaya pengetesan bisa dilakukan secara efektif dan menyeluruh? Gunung Sarjono

ORANG-ORANG bagian TI mengeluh sulitnya pe rencanaan tes dan skenario, tapi kenyataannya testing untuk sistem yang kritikal harus dilakukan. Berikut adalah poin yang perlu diper-hatikan dalam lingkungan pengetesan Anda untuk mendapat-kan hasil yang kredibel.
Buat Lingkungan Pengetesan yang Sama dengan Lingkungan Riil
Mempunyai lingkungan pengetesan yang berbeda (meskipun sedikit) de ngan lingkungan riil tidaklah efektif. Salah satu contoh adalah domain Windows Active Directory – yang mempu nyai konfigurasi Group Policy yang sangat unik, konfigurasi DNS yang kompleks, beberapa domain trust, banyak keanggotaan grup, dan banyak account internal. Virtualisasi merupakan solusi yang cocok untuk ini: Anda bisa mem-promote domain controller pada virtual machine, memindahkannya ke jaringan terpisah untuk pengetesan, dan kemudian menghapusnya dari domain yang sebenarnya.
Lakukan Pengetesan dengan Beberapa Cara
Pengetesan tidak cukup hanya dilakukan satu kali. Lakukan dengan dua cara yang berbeda, dan lihat apakah hasilnya sama. Sebagai contoh, pada waktu pengetesan Windows Active Directory itu sendiri dan restore dari back-up sistem untuk memastikan keduanya bisa mengembalikan sistem ke keadaan. Metode ini berguna jika salah satu cara gagal. Cara lain adalah dengan menugaskan satu orang untuk mempersiapkan skema pengetesan dan satu orang lagi buat mengimplementasikan-nya untuk mengimplementasikan skema tersebut untuk memastikan semuanya sudah pasti dan tidak ada lagi asumsi.
Tes Proses Pengembalian Sistem
Untuk pengetesan yang berhubungan dengan upgrade atau peningkatan sistem eksisting, Anda harus mengetes proses pengembalian sistem. Anda juga bisa mengetes ini dalam beberapa cara bergantung pada konteks upgrade yang dilakukan. Beberapa di antaranya adalah mencakup menghapus hard disk pada konfi gurasi RAID 1 (harddisk yang dicabut tidak diubah), restore semua dari backup, uninstall fungsi upgrade, back-up database, atau cukup menggunakan perangkat baru saja, degan sistem eksis ting dimatikan ketika upgrade.
Jangan Lanjutkan Tanpa Pengetesan
Jika timbul suatu hal ketika proses pengetesan, tetap teruskan. Perlu ditekankan bahwa pengetesan merupakan hal pen ting. Ber-gantung situasinya, ini mungkin sulit dilakukan atau mempunyai dampak politik. Jika keputusan dilanjutkan atau tidaknya pengetesan ada di tangan orang lain tapi Anda yang bertanggung jawab jika sistem tidak berfungsi, tolak saja mentah-mentah!
Ingat Tujuan Pengetesan: Tidak Ada Kejutan Ketika Go-Live
Kejutan adalah hal terakhir yang Anda inginkan ketika go-live. Pengetesan yang menyeluruh bisa mencegah “proses belajar” ketika sistem baru digunakan. Memang pengetesan tidakbisa 100% sama dengan lingkungan riil, jadi selalu ada risikotimbul suatu hal. Sebagai contoh, jika pada waktu mengetessuatu software Anda menggunakan sekuriti lebih dari yang dibutuhkan maka ketika go-live, sekuritinya perlu disesuai-kan dengan kebutuhan operasional. Ini bisa memakan waktuAnda yang berharga dan menimbulkan risiko. Oleh karena itu, dalam melakukan pengetesan kita perlu dokumentasi tentangsekuriti atau script yang perlu dijalankan supaya lingkunganpengetesan sama dengan lingkungan riil.
Gunakan Resource dan Standar Pengetesan yang Sudah Ada
Tidak semua kita mempunyai sertifikasi, tapi kita bisa menggunakan resource eksisting untuk mengdapatkan tes yangkredibel. Beberapa yang bisa menjadi titik awal adalah Standard Performance Evaluation Corporation dan pencarian diInternet tentang contoh skema pengetesan. Jika tidak mem-punyai komponen pengetesan yang pasti, Anda bisa membuat skema sendiri. Pastikan Anda membuatnya secara saksama dan komprehensif. Blog Sara Ford di MSDN bisa jadi sumber yangbagus dalam membuat spesifikasi pengetesan.
Jangan Membuat Asumsi Apapun
Pengetesan memang bisa menjadi salah satu bentuk training pekerjaan yang berhubungan dengan lingkungan Anda tapi beberapa bagian kecil mungkin terpengaruh ketika proses upgrade. Bergantung pada upgrade yang dilakukan, ini bisa mencakup adanya opsi tambahan, perubahan permission, dan perubahan file log (ini berlaku jika Anda memonitoring file log sistem). Jika ada sedikit perubahan dalam penulisan log setelah upgrade, sistem monitoring perlu ditinjau ulang. Dengan melakukan langkah menyeluruh, meskipun untuk pekerjaan sederhana, risiko timbulnya hal-hal kecil yang tidak diinginkan bisa dikurangi.
Gunakan Manajemen Proyek untuk Mengatur Pengetesan
Mempunyai manajemen proyek dan dukungan manajemen akan membuat pengetesan Anda kredibel. Dengan demikian bagian lain mengerti bahwa pe ngetesan tersebut perlu dilaku-kan dan manajemen Anda akan mempunyai rencana langkah pengetesan yang lebih baik. Hanya mengatakan secara lisan bahwa Anda sedang mengetes software XYZ baru tidak efektif untuk mengikutsertakan manajemen dalam rencana pengetesan. Beritahukan status rencana pengetesan, danlakukan pengetesan dengan beberapa pihak. Pastikan rencana pengetesan terdokumentasi untuk melihat kemajuannya; supaya manajemen bisa melihat pekerjaan dan tantangan yang berhubungan dengan pengetesan yang Anda lakukan.
Pastikan Kegagalan Tes Bisa Disimulasikan
Hampir setiap model pengetesan pada bagian tertentu akan mengalami kegagalan. Ketika mengetes sistem, banyak administrator yang mengetes hanya sebentar atau mengubah konfi gu rasi yang hanya mempengaruhi pengetesan saja. Ketika kegagalan muncul, catat dan simulasikan. Lebih lanjut, cari pengetes lain untuk melihat apakah mereka juga mengalami kegagalan yang sama. Jika kegagalan atau isu tersebut mempengaruhi keberhasilan keseluruhan pekerjaan, ikut sertakan staf support produk yang bersangkutan (jika memungkinkan) untuk mengidentifikasi masalah yang terjadi. Bergantung pada tingkat kegagalannya, keseluruhan pekerjaan mungkin tidak perlu dihentikan, dan proses identifi kasi bisa dilakukan secara paralel sampai akhir pengetesan.
Tes dengan Lingkungan yang Berbeda
Jika Anda ingin melakukan pengetesan yang berkualitas, pikirkan beberapa tantangan yang mungkin akan dihadapi. Ini bisa mencakup sistem yang lebih sedikit tapi dengan fungsi yang lebih banyak, menggandakan atau membagi beban kerja Anda, mengintegrasikan bagian lain, atau mengubah bagian inti dari lingkungan TI Anda. Jika memungkinkan, alokasikan waktu dan resource untuk melakukan pengetesan dengan lingkungan (skenario) yang berbeda.
Gunakan Lingkungan Tes Anda
Jika Anda telah bersusah payah membuat lingkungan pengetesan lengkap, mengapa tidak menggunakannya untuk pengetesan yang hendak Anda lakukan? Ini bisa lingkungan pengetesan yang sebelumnya digunakan untuk mengetes update atau lingkungan pengetesan yang dibuat sebagai pelatihan. Jangan lupa masalah lisensi dalam lingkungan pengetesan jika Anda ingin tetap menggunakannya.
MENGATUR WORKSATION DARI JAUH
Mengatur workstation dari jauh dengan menggunakan teknologi bisa menghemat waktu dan biaya secara signifikan. Berikut adalah beberapa poin untuk memaksimalkan tool dan pengaturan Anda.
Kenali Hardware-nya
Anda mungkin merasa konfi gurasi workstation sudah tertanam di dalam pikiran Anda—tapi apakah Anda benar-benar mengetahuinya? Untuk mengatur workstation dari jauh, Anda harus punya informasi mengenai sistem tersebut, seperti misalnya: Apakah ada USB 2.0? Apakah yang terpasang drive DVD atau CD? Bisakah untuk menulis? Bagaimana urutan boot-nya—dan bagaimana Anda menggantinya? Koneksi apa yang digunakan ke back office? Mengetahui jawaban dari pertanyaan tersebut akan membuat perbedaan besar dalam mengatur workstation dari jauh.
Identifikasi Client Firewall dan Konfigurasinya
Jika ada client firewall, pastikan Anda tahu apa yang bisa dan tidak bisa dilakukan. Tentukan di mana dan oleh siapa task bisa dilaku-kan (dan bagaimana men-disable-nya). Contoh yang bisa dilakukan adalah dengan mencoba men-download file atau update aplikasi dari auto update atau beberapa sumber nonstandar. Meskipun cara ini sederhana, apakah semua sistem bisa mengakses update sesuai dengan yang diharapkan?
Kenali Jaringannya
Banyak perusahaan menerapkan aturan untuk kantor cabang yang jauh mulai dari membatasi jumlah traffic untuk setiap lokasi, sampai membatasi alamat MAC yang bisa terhubung ke lokasitersebut. Supaya bisa melakukan task yang diperlukan dalam mengatur workstation dari jauh, pastikan Anda tahu traffic jaringan yang diperbolehkan. Jika memungkinkan, ketahui juga prosedur atau parameter untuk mengubah traffic yang diperlukan.
Hafal Tool Command-line
Bagi mereka yang koneksi bandwidth-nya kecil, menghafal task administratif dari command line bisa menghemat waktu. Pada sistem Windows XP, hafalkan perintah berikut: (i) Compmgmt.msc
– Computer Management MMC snap-in, berbagai jenis informasi termasuk Event Log, Device Manager, dan Services.
(ii)Ipconfig—utiliti konfigurasi TCP/IP. Beberapa parameter yang biasa digunakan diantaranya /release, /renew, /fl ushdns, dan /reg-isterdns. (iii) Shutdown.exe—tool untuk me-reboot atau mematikan komputer. Dengan permission yang sesuai, sistem juga bisa di-reboot dari jauh. (iv) Net Use—bisa digunakan untuk memetakan (map) drive, otentikasi, atau menghentikan pemetaan.
Pusatkan dan Satukan Semua Jika Bisa
Jika memungkinkan, kumpulkan semua elemen infrastruktur workstation pada satu tempat. Hal terakhir yang Anda inginkan adalah banyaknya file server kecil yang tersebar di perusahaan Anda. Jadi untuk penyimpanan file, mempunyai resource yang terpusat bagi user cabang (remote) sangatlah penting. Dengan demikian, back-up dan aturan sekuriti untuk user cabang sama dengan user pusat. Biaya TI Anda akan lebih rendah dan administrasi dan akses dikontrol dengan satu prosedur, di manapun lokasinya. Namun, harus ada pengecualian untuk cabang dengan banyak user karena mereka bisa memenuhi koneksi antarkedua tempat. Jika Anda mempunyai kantor cabang, dengan user 40 orang misal-nya, file server lokal akan lebih cocok, dan back-up melalui jaringan dilakukan jika waktu dan traffic memungkinkan. Sebaliknya, jika itu adalah toko, dengan user kurang dari 10 orang dan hanya sedikit komputer, Anda bisa memusatkan dan menyatukannya.
Distribusi Melalui Internet
Untuk lokasi cabang, langsung saja ke Internet daripada menggunakan VPN atau koneksi wide area. Sebagai contoh, misalkan Anda harus menginstalasi service pack besar buat operating system cabang. Jika Anda mencari download sebesar 300 MB, instalasi tidak mungkin dilakukan pada sebagian besar koneksi remote. Tool administrasi tertentu bisa mendistribusi paket melalui Internet untuk membantu lokasi yang jauh dan user laptop ketika waktu mereka tidak berada di pusat. Sebagai contoh, pada waktu remote workstation (termasuk laptop) hendak menerima paket melalui Internet, iPass bisa menyediakan download yang cepat.
Siapkan Tool Altenatif
Kita semua biasa menggunakan tool yang ada dan kita sukai. Untuk Windows XP, kita biasanya menggunakan Remote Desktop. Namun pada situasi di mana kita tidak bisa menggunakan Remote Desktop apa yang Anda lakukan? Siapkan tool alternatif untuk mengakses sistem client, jika dibutuhkan. Beberapa contoh adalah DameWare—menawarkan push install dan remove melalui koneksi TCP/IP. (ii) VNC—remote client. Bisa digunakan sebagai koneksi alternatif dan menjalankan service VNC jika dibutuhkan. (iii) LogMeIn.com—menyediakan banyak bantuan dalam koneksi Internet ke client; bisa bekerja pada se-bagian besar konfi gurasi proxy.
Pastikan OS Konsisten
Untuk mengatur workstation dari jauh secara efektif tanpa memperbesar biaya, mempunyai platform yang sama merupakan suatu keharusan. Tidak ada salahnya menunda implementasi platform baru untuk menjaga kekonsistenan administrasi dan support. Jika ada dua platform yang digunakan, setiap platform harus diker-jakan secara tuntas. Oleh karena itu, mempunyai daftar inventaris hardware workstation juga berperan dalam mendapatkan TI yang lebih efisien.
Batasi Ruang Lingkup
Ini memang bukan tindakan yang bersifat teknis, tapi untuk workstation yang jauh, Anda harus menentukan apa yang harus dilakukan sebagai administrator. Misalkan Anda punya sejumlah kantor cabang yang dilengkapi dengan perangkat standar. Inventaris perangkat ini meliputi workstation atau laptop, printer laser untuk semua sistem lokal, dan koneksi jaringan untuk ke kantor pusat. Suatu hari, Anda mendapat pertanyaan dari kantor cabang, “Bisakah kami mendapatkan printer yang bisa scan dan faks?”
Ini merupakan isu kritikal karena mereka melewati ruang lingkup yang “biasa”—dan mereka akan menderita karena Anda, sebagai administrator yang bertanggung jawab untuk driver perangkat tersebut berada jauh dari lokasi. Perangkat yang digunakan juga mulai tidak konsisten. Mempunyai kemampuan untuk scan dan faks bukanlah hal yang buruk—tapi cabang harus mengerti bahwa meminta fungsi di luar yang biasanya membutuhkan biaya—dan biayanya bisa lebih dari harga perangkat yang diminta.
LEBIH LANJUT

MENJAGA KEAMANAN APLIKASI WEB

Posted in Labels:

MENJAGA KEAMANAN APLIKASI WEB







Apakah Anda sudah menonton film “I Am Legend” di tahun 2007 lalu, yang dibintangi oleh Will Smith? Di akhir film, sang jagoan yang bernama Robert Neville terperangkap dalam sebuah ruangan tertutup. Joko Nurjadi
SEMENTARA itu di luar ruangan, sekumpulan zombie ganas berusaha mendobrak masuk. Apakah Anda mengetahui bagaimana akhirnya?
Situasi yang dialami Robert Neville, mungkin bisa dijadikan analogi sebuah website, yang bisa jadi menghadapi serangan zombie berupa upaya-upaya pembobolan dari pihak luar. Seperti Robert Neville juga, website tersebut tidak bisa ke mana-mana, pilihan satu-satunya adalah mempertahankan diri.
Keamanan Website
Serangan terhadap website secara garis besar dapat dibagi menjadi dua, yaitu serangan terhadap web server dan serangan terhadap aplikasi web, yang memanfaatkan kelemahan aplikasi dan pemrograman. Untuk menghadapi serangan pada web server, Anda memerlukan network/web administrator untuk melakukan konfigurasi, meng-update web server ataupun melakukan monitoring secara berkala.
Sedangkan, serangan yang ditujukan pada aplikasi web lebih merupakan tanggung-jawab programer. Banyak istilah hacking dan turunannya telah dihasilkan dari serangan yang terjadi pada aplikasi web, antara lain Script Injection, Cross Site Scripting (XSS), SQL Injection, Buffer Overfl ows, dan masih banyak lagi.
Artikel ini akan membahas beberapa contoh serangan yang dapat terjadi pada aplikasi web dan bagaimana penanggulangannya agar dapat memaksimalkan keamanan aplikasi web Anda.
Tentu saja, isu keamanan tidak akan beres dengan sekali kerja, seperti halnya siskamling, keamanan terus dilakukan dan tidak akan pernah berhenti.
Login, Jaga Username Anda!
Dimulai dari hal yang terlihat sangat sederhana, tetapi pada praktiknya cukup banyak terjadi kebobolan dari sisi ini, yaitu halaman login yang mengandalkan username dan password. Anda mungkin telah cukup banyak membaca dan mendengar saran-saran mengenai password yang baik, misalnya harus terdiri dari kombinasi huruf dan angka, ataupun secara berkala mengganti password.
Tetapi, tidak banyak yang menyinggung mengenai keamanan username. Padahal pada sebuah halaman login, username bisa dianggap lapis keamanan yang pertama.
Bagi oknum yang sengaja ingin menebak password, jika telah mengetahui dengan tepat username yang digunakan, maka berarti telah melewati pengaman pertama dan mempermudah menebak pengaman berikutnya, yaitu password. Sebaliknya, hal tersebut akan lebih sulit dilakukan jika username tidak diketahui.
Jangankan halaman login untuk masuk sebagai administrator website tertentu, halaman login untuk e-mail saja disarankan tidak memberikan informasi yang dapat mengarahkan pada kesimpulan username atau password telah diisi benar. Contohnya, coba Anda login pada website Yahoo! Mail atau Google Gmail untuk membaca e-mail Anda, anggaplah Anda memiliki username “jokodoyanmie”, tetapi Anda salah mengetikkan password. Perhatikan bahwa Anda tidak mendapatkan pesan “Invalid password”, atau “Invalid username”, pesan yang Anda terima adalah “Invalid ID or Password” (pada Yahoo!), atau “Username and password do not match” (pada Google).
Pesan tersebut tidak menyebutkan secara tepat bagian mana yang salah ketik, apakah username (ID), atau password? “Wah... perusahaan sebesar Yahoo! dan Google tidak bisa membuatscript untuk mendeteksi apakah kesalahan terjadi pada username atau password?” Mungkin demikian pikir Anda dan tentu saja hal tersebut tidak mungkin, dengan kata lain Yahoo!,
Google, dan rata-rata e-mail provider lain umumnya memang sengaja menyamarkan informasi tersebut. Mungkin Anda berpikir hal tersebut bukan sesuatu yang krusial, tetapi kenyataannya kombinasi username dan password telah menjadi hal yang cukup serius, beberapa e-mail provider juga tidak mengizinkan Anda memilih password yang sama atau mengandung kata yang terdapat pada username.
Pencegahannya cukup mudah, tidak perlu membuat script untuk mencari kesalahan login terletak pada username atau password, juga hindari penggunaan username yang umum dan mudah ditebak seperti admin, sa, administrator, dan seterusnya.
Bahaya Input Komentar
Sebuah website biasanya mencoba untuk berinteraksi dengan pengunjung dengan jalan menyediakan fasilitas agar pengguna dapat mengisikan sesuatu, misalnya saja komentar, atau guest-book, atau yang lebih modern lagi, yaitu shoutbox. Sayangnya, jika website Anda dikunjungi oleh seseorang yang iseng, maka bisa jadi sebuah script jahat dapat turut menjadi “komentar” dan ini bukan berita baik bagi website Anda.
Ilustrasinya adalah sebagai berikut, Anda mengisikan guest-book katakanlah pada alamat http://domainsaya.com/guestbook.php dengan komentar berikut:
Website yang aman...
Perhatikan bahwa terdapat JavaScript pada komentar tersebut. Jika komentar tersebut dapat diterima dan dieksekusi oleh website, maka setiap kali ada pengunjung yang mengaksesnya, akan tampil sebuah pesan bertuliskan “tapi bohonggg...”.
Cukup mengganggu, bukan? Tidak hanya sampai di sana, jika sebuah website telah dapat disusupi dengan cara seperti ini, maka banyak sekali kemungkinan script berbahaya yang dapat ditanamkan.
Misalkan script untuk mengalihkan website domainsaya.com ke website lain, script untuk menampilkan gambar porno (yang dapat dilakukan dengan HTML biasa) atau script untuk mengambil informasi seperti cookie. Cukup berbahaya, bukan?
Langkah pencegahannya, antara lain dengan tidak langsung mengizinkan komentar yang masuk tampil pada browser Anda, harus melalui proses approve. Hal ini membutuhkan kerja seorang administrator yang bertugas melakukan filter komentar yang masuk dan berhak menolak komentar yang tidak diinginkan.
Walaupun tidak berarti semua website yang memberlakukan filter seperti ini berarti menyadari akan bahaya kebobolan melalui script injection ini. Karena bisa saja hal ini dilakukan dengan alasan menghindari penggunaan kata-kata tertentu.
Cara pencegahan yang lain adalah dengan menolak penulisan script atau tag HTML, dengan risiko tampilan komentar menjadi datar tanpa aksesoris karena tag-tag HTML untuk melakukan variasi huruf (bold, italic, dan lain-lain) tidak dapat digunakan.
Tetapi jika Anda membutuhkannya, Anda dapat membuat sen-diri aturan dan penulisan tag, misalnya [:bold] untuk membuat huruf menjadi bold, dan seterusnya. Tag buatan Anda tersebut akan disubsitusikan secara otomatis dengan tag HTML sehingga tampilannya sesuai seperti yang diinginkan. Beberapa engine forum telah menggunakan metode ini.
Cara lainnya adalah dengan melakukan encode script, contohnya mengganti karakter “<” dengan < dan karakter “>”dengan > sehingga kata

OPTIMASI TEKNIK PEMROGRAMAN

Posted in Labels:

OPTIMASI TEKNIK PEMROGRAMAN

Menyambung artikel optimasi teknik pemrograman yang telah ditulis pada edisi sebelumnya, mari kita mempelajari teknik selanjutnya! Joko Nurjadi

BAGIAN 2 DARI 2 ARTIKEL
KALAU PADA edisi lalu telah dibahas teknik optimasi untuk kondisi else, perulangan yang bercabang, juga regular expression, maka pada edisi ini kita akan membahas mengenai pemanfaatan memory, rekursif, dan teknik lainnya.
Memory
Membuat program berkaitan erat dengan data, bahkan statement 1 + 2 pun sudah menggunakan data (yaitu angka 1 dan 2) yang menghasilkan output 3 karena diolah dengan operator +.
Contoh di atas menggambarkan input -> proses -> output. Input dapat berupa database relasional, file, ataupun entry pengguna. Jika data berukuran besar, mungkin akan membuat program Anda berpikir keras sampai akhirnya menampilkan output yang diharapkan.
Salah satu cara untuk mempercepat waktu pemrosesan aplikasi adalah dengan menggunakan memory sebagai penampung, karena kecepatan akses memory secara umum melebihi kecepatan akses disk. Contoh sederhana seperti potongan program Visual Basic di bawah ini:
Open “dummy.txt” For Input As #1
Do While Not EOF(1)
Line Input #1, sTemp
Loop
Close #1
Program di atas membuka file dummy.txt, dan melakukan perulangan do while untuk membaca isi file per baris. Sebagai gambaran, proses di atas dilakukan pada sebuah file text dengan ukuran 46 MB.
Pada komputer penulis, program selesai membaca seluruh isi file dalam waktu kurang lebih 4 detik. Memory usage yang terlihat dari Windows Task Manager saat mengeksekusi program ini kurang lebih sebesar 3,6 MB.
Program tersebut dapat dioptimasi untuk mendapatkan kinerja yang lebih cepat, tentu saja waktu 4 detik yang dapat dilakukan program tersebut relatif sudah cukup cepat, tetapi jika proses tersebut dilakukan dengan frekuensi yang tinggi, anggaplah dijalankan 100 kali, maka logikanya waktu yang diperlukan menjadi 100 x 4 detik atau 400 detik.
Proses dapat dioptimasi menjadi lebih cepat secara signifikan dengan melakukan modifikasi sebagai berikut:
Open “dummy.txt” For Binary As #1
sTemp = Space$(LOF(1))
Get #1, , sTemp
Close #1
Perbedaan program ini dengan sebelumnya adalah, file dibuka dalam mode binary, dan seluruh isinya langsung ditampung ke dalam sebuah variabel, tidak dibaca per baris, sehingga konsekuensinya Anda memerlukan memory penampung yang relatif besar.
Lalu, bagaimana hasilnya? Saat dijalankan berkali-kali, range waktu yang dibutuhkan berkisar dari 1,1 detik – 1,8 detik. Jauh lebih cepat, bukan? Efek sampingnya, memory usage pada saat eksekusi tercatat mencapai 98 MB!
Prinsipnya, Anda dapat memanfaatkan memory untuk mempercepat proses, tetapi perhitungkan bahwa program Anda akan menyita memory yang relatif besar yang bisa jadi melewati batas penggunaan memory sehingga menimbulkan error.
Kasus di bawah ini menunjukkan lebih jauh penggunaan memory. Perhatikan potongan program Visual Basic berikut:
For i = 1 To 10000
txt.Text = txt.Text & i
Next
Asumsinya Anda memiliki sebuah control textbox bernama txt, program di atas melakukan perulangan sebanyak 10.000 kali dan menampung isi variabel i ke dalam control txt.
Pengukuran yang dilakukan penulis menunjukkan program tersebut membutuhkan waktu rata-rata sekitar 14 detik sampai dengan 16 detik pada beberapa percobaan.
Modifikasi dengan memanfaatkan memory sebagai buffer seperti di bawah ini akan meningkatkan kecepatan proses:
For i = 1 To 10000
buffer = buffer & i
Next
txt.Text = buffer
Program di atas akan menampung terlebih dahulu isi variabel i pada perulangan for di dalam sebuah variabel yang bertindak sebagai buffer, setelah perulangan berakhir, isi dari buffer diberikan pada control txt. Hasilnya program ini hanya membutuhkan waktu kurang dari 0.5 detik dalam setiap percobaan yang dilakukan.
Jangan lupa untuk selalu membandingkan performa sebelum dan sesudah optimasi, dan apakah output tidak berubah dari yang diharapkan. Karena sering ditemui banyak faktor X yang berpengaruh yang baru dapat kita ketahui setelah mempraktikkannya.
Rekursif
Rekursif merupakan sebuah teknik pemanggilan function yang memanggil dirinya sendiri. Anggaplah Anda memiliki function sederhana menuliskan sebuah kalimat pada layar/console, sebelum function itu berakhir, Anda menyisipkan perintah untuk memanggil function itu sendiri, inilah sebuah contoh rekursif sederhana, yang bahkan dapat dibuat pada batch file sebagai berikut:
@echo off
echo “Selamat pagi”
rekursif.bat
Simpan script di atas pada sebuah fi le bernama rekursif.bat, apa yang terjadi saat Anda menjalankan rekursif.bat?
Tentunya pada layar/console akan tertulis kalimat tersebut secara terus-menerus, yang tidak terbatas banyaknya jika Anda tidak memberikan kondisi kapan program berhenti memanggil dirinya sendiri.
Istilah GNU (GNU’s Not Unix) dan PHP (PHP: Hypertext Pre-processor) juga merupakan contoh rekursif, karena memanggil dirinya sendiri.
Pada banyak kasus, function rekursif yang belum dirilis dari memory saat memanggil dirinya sendiri, akan membuat tumpukan (stack) yang memenuhi memory dan dapat mengakibatkan komputer Anda bengong alias hang.
Apakah teknik rekursif selalu membawa dampak negatif seperti penggunaan memory yang boros?Tidak juga, keuntungan menggunakan rekursif adalah kode program yang singkat, pemecahan masalah yang lebih mudah (untuk beberapa kasus), dan mungkin cocok bagi Anda yang gemarmengasah logika.
Contoh fungsi rekursif yang biasanya selalu ada dalam bahasan rekursif, adalah contoh fungsi menghitung faktorial sebagai berikut:
Function Fakto(ByVal n As Integer) As Long
If n <= 1 then
Fakto = 1
Else
Fakto = n * Fakto(n – 1)
End if
End Function
Walaupun contoh di atas menunjukkan dengan tepat cara kerja rekursif (silakan lakukan debug/trace perbaris untuk mempelajarinya dengan lebih detail), tetapi tidak menunjukkan keunggulan signifikan rekursif dibandingkan nonrekursif atau perulangan/iterasi biasa. Kita dapat membuat program faktorial nonrekursif dengan mudah seperti berikut:
Function Fakto_NonRekursif(ByVal n As Integer) As Long
Dim i As Integer
Dim result As Long
result = 1
For i = n To 1 Step -1
result = i * result
Next
Fakto_NonRekursif = result
End Function
Untuk melihat keunggulan rekursif yang cukup optimal, contoh yang tepat adalah implementasi Quick Sort ataupun permainan Menara Hanoi, yang memungkinkan pemecahan masalah secara rekursif dengan algoritma divide and conquer, artinya membagi problem ke dalam kemungkinan-kemungkinan subproblem dan menyelesaikannya, suatu hal yang relative lebih sulit dilakukan dengan perulangan/iterasi biasa.
Code Refactoring
Berbeda dengan tulisan tangan yang rata-rata masih dapatdibaca (paling tidak oleh penulisnya) walaupun ditulis bertahuntahun yang lalu, kode program bisa jadi sukar dipahami kembali setelah sekian lama, termasuk oleh programernya sendiri!
Bukan hal yang aneh jika kita melihat (atau mengalami sendiri) seorang programer berusaha mempelajari kode program yang baru dibuatnya sekitar dua minggu yang lalu. Karena itu, optimasi juga bisa dilakukan dengan tujuan untuk membuat kode Anda lebih terbaca, salah satu teknik yang dikenal untuk keperluan ini adalah code refactoring. Pada metodologi seperti Extreme Programming, refactoringmerupakan bagian dari siklus pengembangan software.
Mengapa kode program dapat menjadi sulit terbaca? Contoh sederhananya saja, kebiasaan menuliskan nama variable dengan singkat, misalnya i untuk variabel bertipe integer, suntuk variabel bertipe string. Kadang kalau variabel i sudah digunakan, maka dilanjutkan dengan variable j, k, l, m, dan seterusnya.
Semakin panjang kode program Anda, akan semakin sulit untuk didebug dan ditelusuri alurnya, dalam kondisi ini, nama variable yang merepresentasikan fungsinya akan dapat membantu pema- haman, misalnya variabel bernama diskon, total, bunga,pajak, tentunya lebih mudah untuk dipahami.
Program yang sulit dipahami, otomatis akan sulit untuk diperbaiki, dimodifikasi, ataupun diberikan modul tambahan. Di saat seperti inilah, penggunaan code refactoring menjadi salah satu isu penting.
Contoh code refactoring yang lain adalah membuat susunan program menjadi terstruktur, misalnya mengubah kode didalam blok if menjadi subrutin, ataupun menghapus code yang tidak diperlukan (dead code), misalnya menghapus variabel yang dideklarasi tetapi tidak pernah digunakan.
Beberapa IDE bahasa pemrograman memiliki dukungan untuk melakukan refactoring secara otomatis, antara lain adalahVisual Studio 2008, CodeGear Delphi, atau NetBeans.
API
Beberapa bahasa pemrograman high-level memiliki dukungan terhadap API atau Application Programming Interface, yaitu sekumpulan function yang disediakan operating system atau berasal dari sebuah service/library.
API sebagai sebuah function yang siap digunakan (walau tidak selalu mudah untuk diimplementasikan), dapat membantu Anda untuk mempercepat proses development dan mempermudah Anda melakukan eksplorasi lebih jauh. Contohnya, Anda dapat membuat sebuah aplikasi yang mengakses hardware tertentu dengan menggunakan API yang disediakan didalam SDK hardware tersebut.
Di bawah ini merupakan contoh penggunaan function API yang disediakan oleh operating system Windows (Windows API) untuk mendapatkan nama komputer, contoh dalam Visual Basic. Letakkan deklarasi function API berikut pada bagian Declarations:
Private Declare Function GetComputerName Lib “kernel32”
Alias “GetComputerNameA” ( _
ByVal lpBuffer As String, _
nSize As Long) As Long
Contoh pemanggilan function tersebut adalah:
Dim sBuffer As String
Dim nSize As Long
Dim lResult As Long
nSize = 2048
sBuffer = Space(248)
lResult = GetComputerName(sBuffer, nSize)
MsgBox sBuffer
Hal yang perlu diperhatikan dalam menggunakan API adalah apa yang sering diajarkan saat pertama kali kita belajar bahasa pemrograman, yaitu simpan pekerjaan sesering mungkin. Bukan untuk menunjukkan ketidakpercayaan Anda pada PLN, tetapi karena function API dapat saja menyebab-kan crash karena pemanggilan yang salah atau kegagalan pengaksesan.
Right Technique at The Right Time
Optimasi baru dapat dikatakan berhasil jika Anda menggunakan sebuah teknik pemrograman pada saat yang tepat. Jadi tidak berarti kalau kita menguasai suatu teknik pemrograman, maka teknik tersebut selalu tepat jika diimplementasikan pada setiap kasus.
Hal ini dikembalikan lagi pada tujuan utama pembuatan program yang tentu bervariasi, dalam kompetisi pemrograman mungkin tujuan Anda membuat program dengan output yang benar dalam waktu secepat mungkin, dalam bidang pengajaran Anda akan berusaha membuat program yang mudah dibaca dan dimengerti.
Jangan lupakan juga peran pengguna program Anda, yang bisa jadi akan berinteraksi dengan aplikasi buatan Anda lebih lama dibandingkan Anda sendiri. Ambil saja sebuah contoh: mungkin pengguna perlu diberikan splash screen yang bersahabat pada saat program pertama kali dieksekusi.
Tentunya jika dilakukan pengukuran yang presisi, splash screen membutuhkan proses tambahan sehingga memperlambat proses keseluruhan, tetapi bagi pengguna yang memandang tepat di depan monitor, splash screen dapat menyembunyikan proses yang terjadi pada background sehingga pengguna tidak merasa menunggu.
Berhasil menerapkan right techique at the right time, akan memberikan kepuasan tersendiri bagi Anda yang memilih hobi pada bidang pemrograman
LEBIH LANJUT
http://www.codeproject.com/KB/recipes/Iterative_vs_Recursive.aspx
http://en.wikipedia.org/wiki/Dynamic_programming
http://en.wikipedia.org/wiki/Refactoring

COSMOS–NEXT GENERATION LIGHT MANAGED OS

Posted in Labels:

COSMOS–NEXT GENERATION LIGHT MANAGED OS



Membuat operating system sendiri, susah? Gampanglah dengan COSMOS dan C#. Agus Kurniawan
MAU NGOPREK operating system dengan gampang dan mu-dah tanpa terlalu banyak skill programming yang macam-macam bahkan sampai ke assembly machine? Sekarang dengan Cos-mos, yaitu operating system yang dibuat dengan C#, Anda tidak perlu khawatir mengenai kompleksitas di dalamnya. Layaknya seperti profesional yang mahir dalam membuat operating system sendiri, Anda bisa lakukan sekarang dengan Cosmos.
Pada artikel ini, penulis mengajak memanfatkan Cosmos un-tuk membuat operating system sendiri dengan menggunakan bahasa C#. Untuk VB.NET ke depannya akan di-support.
Development Environment
· Ok, untuk menggunakan COSMOS hal yang dipersiapkan antara lain:
· Visual Studio 2008.
· Virtual Emulator seperti: Virtual PC, Virtual Server, VMware, Qemu, dan sebagainya.
· Download COSMOS user kit, Anda bisa men-download di http://www.codeplex.com/cosmos, website seperti dilihat seperti Gambar 1.
Setelah instal ini, maka pada Visual Studio 2008 akan ada template project Cosmos seperti Gambar 2.
Build Your Own Operating System
Tidak sabar lagi untuk membuat operating system sendiri dengan C#? Langsung saja, jalankan Visual Studio 2008 dan buat project baru dengan bahasa C# dan pilih project template CosmosBoot. Setelah itu, Anda akan mendapatkan console project seperti Gambar 3.
Kalau ada buka file Program.cs, di sana ada method Init(), nah di sana Anda customize operating system Anda. Coba modifi kasi code di dalam method Init() sebagai berikut:
public static void Init()
{
Cosmos.Kernel.Boot.Default();
Console.WriteLine(“Selamat Datang di
Sistem Operasi Rajawali”);
Console.WriteLine(“Version 1.0”);
Console.WriteLine(“”);
Console.Write(“>>”);
while (true);
}
Di sini penulis mau mendemo Cosmos says hello. Lakukan build dan pastikan tidak ada error ketika melakukan build.
Build & Test
Bagaimana cara mengetesnya? Banyak cara untuk mengetesnya, paling gampang membuatkan menjadi ISO booteable. Caranya, cukup jalankan aplikasi tersebut, nanti kita akan mendapatkan kotak dialog Cosmos seperti Gambar 4.
Pilih ISO dan klik tombol Build. Selanjutnya sistem akan melakukan compile dan build. Nanti akan keluar console dan kalau selesai kita disuruh klik tombol Enter. Hasilnya kita akan dapatkan file ISO di dalam directory di mana Cosmos User Kit itu diinstal seperti Gambar 5.
Untuk virtual emulator di sini penulis menggunakan VMware Workstation 6.0.5. Pilih Guest Operating System Typical dan Other seperti Gambar 6.
Alokasi disk sebesar 1 GB (boleh juga 512 MB) dan memory 128 MB. Lakukan konfigurasi pada VMware pada CD/DVD ROM untuk mengarahkanke file Cosmos.iso yang merupakan hasil compile code kita seperti Gambar 7.
Jika selesai semua, sekarang baru kita mulai menjalankan VMware nya, hasilnya running OS Cosmos seperti pada gambar 8.
Gampang sekali, kan?
Build Your Own Shell on Cosmos
Kalau tadi kita sudah mencoba membuat operating system sendiri melalui Cosmos dan hanya sekadar say hello. Sekarang kita coba shell command sendiri melalui Cosmos. Di sini penulis mendemokan untuk membuat dua shell command, yaitu:
· ver, command untuk melihat versi OS.
· hostname, command untuk melihat nama komputer.
· Keluar, command untuk shutdown operating system Rajawali Cosmos.
Pada project yang tadi kita buat modifi kasi file Program.cs pada method Init() seperti di bawah ini:
public static void Init()
{
Cosmos.Kernel.Boot.Default();
Console.WriteLine(“Selamat Datang di Sistem Operasi
Rajawali”);
Console.WriteLine(“Version 1.0”);
Console.WriteLine(“”);
Console.Write(“>>”);
bool isExit = false;
while (!isExit)
{
string x = Console.ReadLine();
if (x == “”)
Console.Write(“>>”);
else
{
if (x == “ver”)
{
Console.WriteLine(“Rajawali OS 1.0”);
Console.Write(“>>”);
}
Else
if (x == “hostname”)
{
Console.WriteLine(“kurniawan”);
Console.Write(“>>”);
}
else
if (x == “keluar”)
{
isExit = true;
Console.WriteLine(“Shutdown...”);
}
}
}
Console.WriteLine(“Done”);
while (true) ;
}
Lakukan compile dan pastikan tidak ada error. Run dan buat file ISO nya. Selanjutnya dengan virtual emulator misalkan penulis menggunakan VMWare workstation 6.0.5 dan dijalankan hasilnya seperti Gambar 9.
Well, selanjutnya Anda dapat berinovasi membuat shell sendiri atau membuat aplikasi game dan yang pasti tanpa harus meninggalkan C# tercinta!
Catatan
Tidak semua sintak dan object di .NET support di Cosmos, so pastikan compile dan build code Anda tidak ada error di dalamnya.
Kadang kalanya source code kita di-compile tidak ada error tetapi ketika di-compile melalui Cosmos terjadi error. Contoh kita mempunyai code program sebagai berikut:
byte[] data = System.Text.Encoding.ASCII.GetBytes(“OS
Rajawali”);
string base64 = Convert.ToBase64String(data);
Ketika di-compile sukses, tetapi ketika akan decompile terjadi error contoh error seperti pada Gambar 10.
LEBIH LANJUT
· Cosmos, www.gocosmos.org
· Adrew S. Tanenbaum, Modern Operating System,3ed, Prentice Hall, 2007