The story about external file and Java Web Application

I am sorry for the title, may be you get confused about it. But definitely, you will find the answer about the external file and java web app problem. I put phrase “the story about” because I retell how I solve that thing.

Although it is not the first time I build an application using Java Web App, there are lot of stuff that I don’t really understand. I think because Java Web App is well design application platform. Because of that, I tried to know more about it so finally I tried implementing my final project using Java Web App.

There are some considerations why I prefer web app, the main reason is using web app, the system could be used by a lot of people. I hope it could also happen to my app.

At the first time, I think all will go well as I plan in my head. You’re right, problem can rise anytime. Based on the Java Web architecture, there are some components on Java Web App. They are source package for implementing the java logic class, then web for implementing web page. We also could use library when our App needs library.

First, my app goes well without any problem when it run on java logic classes. Suddenly, after creating a java servlet and initiate an object that use library for reading external files, the server get some SEVERE messages and shut down as well as give me lot of error messages.

Baca lebih lanjut

Iklan

java.lang.OutOfMemoryError: Java Heap Space

Beberapa waktu lalu atau lebih tepatnya beberapa jam yang lalu, saya cukup kerap menemui pesan  java.lang.OutOfMemoryError: Java Heap Space. Pesan ini menunjukkan bahwa Java VM kekurangan memori untuk menjalankan aplikasi atau program tersebut. Akibatnya, program yang berusaha kita jalankan akan gagal untuk dijalankan.

Java Heap Memory adalah memori yang disediakan oleh Java VM ketika hendak menjalankan suatu program. Secara otomatis pada komputer 32 bit, Java VM akan mengalokasikan 64 M. Dengan ukuran tersebut sebenarnya untuk program biasa mungkin sudah mampu menampung banyak objek baik itu objek berupa string. Namun, kadang untuk operasi tertentu terutama yang terkait dengan teks seperti yang hendak saya lakukan, jumlah tersebut ternyata masih kurang.

Nah, ternyata disinilah peran dari Garbage Collector pada Java. Ya, Garbage Collector lah yang bertanggung jawab dalam membersihkan Java Heap Memory ini. Secara singkat, dalam Java Heap Memory ini, objek yang ada di dalamnya dibagi dalam tiga generasi. Pembedaan generasi inilah yang akan digunakan dalam proses Garbage Collector. Jadi analogi mudahnya, Gerbage Collector inilah yang akan menghilangkan objek-objek pada Java Heap Memory yang telah mati sehingga tempat memori tersebut dapat digunakan kembali oleh objek lainnya. Kapan-kapan saya akan bercerita mengenai Garbage Collector.

Ada beberapa tips ketika menghadapi hal ini, antara lain : Baca lebih lanjut

Tugas II3062- Topik Email Penyadapan dan Attachment

Tugas Kemanan kali ini bertema topik email penyadapan dan attachment.

1. Untuk yang pertama tugas dilakukan dengan mengirimkan email dengan menyertakan lampiran. Selanjutnya, setelah email dikirimkan, langsung bukan email dengan menggunakan email client seperti Thunderbird, Outlook, atau google offline mail. Kali ini saya menggunakan Thunderbird. Setelah email diunduh oleh thunderbird, email yang saya kirimkan tersebut langsung dibuka dan dilihat sumber email. Maka akan terlihat :

Email Raw

Dari raw tersebut bisa diketahui bahwa pembatas antara email body dengan lampiran adalah barisan dari

--20cf307abea7a5692004a03ccb60--

Sedangkan pembatas antar lampiran adalah :

--20cf307abea7a5692b04a03ccb62

Untuk attachment sendiri, dituliskan secara plaintext dengan format encoding base-64. Base-64 akan membentuk karakter dengan variasi 64 jenis. Sehingga ahanya sedikit karakter yang dimunculkan. Untuk padding sendiri dilakukan dengan menggunakan karakter”‘==” atau “=”.

2. Untuk tugas kedua dilakukan dengan mengirimkan sebuah email ke email saya yang lain. Sebelumnya saya menyalakan program wireshark kemudian memonitor komputer saya sendiri dengan port yang akan saya amati adalah SMTP, langsung lakukan filtering dengan smtp paket yang sedang dimonitor.

 

Pesan yang saya kirimkan bisa dibaca dengan jelas menggunakan wireshark. Dan berikut ini hasilnya :

Sekian tugas kali ini. 😀

Tugas II3062-Jawaban Steganografi

Untuk membaca pesan stegano yang saya buat dapat dilakukan dengan membaca petunjuk yang ada pada tag artikel yang saya buat. Dari tag diperoleh kata : geografi, vice versan, dan steganografi.1. Tag “steganografi” merupakan pentunjuk bahwa ini adalah tugas steganografi.2. Tag geografi menunjukkan bahwa pesan ada pada kata yang mengandung atau berkaitan dengan geografi. Dari artikel yang saya buat, semua yang menyimpan pesan adalah kata yang merupakan nama tempat.3. Tag vice versa menunjukkan cara pembacaan yaitu dibalik.Setelah mengumpulkan nama tempat, mungkin lebih asyik jika ditaruh di notepad. Lakukan pembacaan huruf awal dari bawah ke atas. Maka pesan berhasil ditemukan.

Tugas II3062-Steganografi

Tugas keamanan informasi kali ini berkaitan dengan steganografi. Ya, betul sekali steganografi pasti berkaitan dengan penyembunyian pesan. Mendapat tugas ini jadi teringat kebiasaan bersama beberapa teman SMP dulu, sewaktu main tebak-tebakan dengan sebuah pesan yang kami tulis, mungkin waktu itu kami sedang senang-senangnya dengan anime conan. Waktu itu kami menuliskan pesan dalam sebuah cerita yang kami buat dan tentu dengan meninggalkan beberapa petunjuk agar kami tahu maksud dari pesan tersebut. Ada beberapa yang meninggalkan pesan dalam gambar, tapi berhubung saya lebih suka dengan tulisan daripada gambar, saya meninggalkan dalam pesan dalam bentuk tulisan. Bagi saya tulisan dan gambar adalah dua format tipe informasi yang seseorang bebas untuk mengimajinasikan segala hal yang ada di dalamnya. Alasan tersebutlah yang membut saya lebih sudah dengan tulisan dan suara.

Walaupun begitu, diantara kami yang ikut permainan ini, mungkin hanya saya yang paling mudah untuk ditebak, karena tebakan saya tidak jauh-jauh dari geografi. Maklum saja, saya punya hobi yang cukup unik yaitu, betah di depan atlas berjam-jam waktu dulu. berjam-jam ngapain? Sesekali saya iseng menghitung, kalau misalkan saya dari indonesia hendak ke guatemala, berapa kali saya harus menyebrangi laut paling sedikit. Dan sampai sekarang kebiasaan ini juga masih saya lakukan sebagai ajang refreshing disaat tugas yang banyak. Untuk sekarang ini, saya mencoba-coba mendesain permainan yang lebih kompleks terkait travelling. Walaupun masih belum terlalu jelas, mungkin singkatnya seperti ini :

1. Travelling, untuk mendapatkan beberapa koleksi dari tempat yang dikunjungi, mungkin bisa bendera atau badge.

2. Traveler memiliki HP dan uang yang akan berkurang setiap melintasi negara dan beberapa wilayah tertentu serta aktivitas tertentu. Wilayah tertentu yang bisa mengurangi HP atau uang, misalnya melewati gurun, daerah konflik, atau laut(perlu uang buat nyeberang). Sebagai contoh mungkin melewati samudra atlantik, laut persia, gurun namibia, contoh daerah yang bergejolak adalah melintasi kota yang sedang ada perang, misalnya di irak, kota najaf(semoga tidak ada perang lagi).

3. Sebaliknya untuk mendapatkan tambahan HP, setelah mengunjungi suatu wilayah tertentu(tujuan travelling) akan mendapatkan bonus HP dan uang, misalnya: setelah melintasi kota ely(sebuah kota yang memiliki jalur kereta menuju skotlandia),kota tasikmalaya, atau kota agra yang ada taj mahalnya.

4. Ketika melewati wilayah unik juga mungkin mendapatkan bonus, seperti melewati pulau rokko (pulau buatan, beberapa pulau buatan lainya adalah odaiba yang terletak di teluk tokyo dan pulau buatan untuk bandara, misalnya bandara kansai).

Walaupun jauh dari sempurna desainya, tapi saya senang melakukanya karena bisa nambah ilmu geografi. Sekarang ini berkat internet, saya bisa mengetahui tempat unik yang lebih banyak. Contonhnya adalah danau eyre yang merupakan tempat terendah di negara yang berbatasan dengan pulau rote atau negara eritrea yang memiliki ibukota negara unik, kota kanowna yang termasuk kedalam daftar kota hantu. Kota ini sepi seiring dengan menurunya jumlah emas disana. Negara yang unik lainya adalah omam, coba saja teman-teman cari tahu kenapa negara ini begitu unik.

Saya juga bisa tahu tentang tempat-tempat ekstrem, contohnya mount mckinley merupakan salah satu tempat tersebut karena termasuk di dalam tujuh gunung tertinggi dengan gunung everest menduduki tingkat pertama. Tapi tetap ada satu tempat yang menarik perhatian adalah dunwich, yang termasuk juga dalam kota hantu. kota ini hilang seiring dengan abrasi yang dialami karena kota ini terletak di tepi pantai dan ada menurut beberapa kabar katanya ada proyek yang akan mengungkap kota ini yaitu melalukan eksplorasi bawah lain. Dulu kota ini merupakan ibukota dan kota pelabuhan di era 1500 tahun lalu.

Kembali ke steganografi. untuk tugas steganografi kali ini berikut tugasnya :

Anda diminta untuk membuat steganography dengan pesan yang ditentukan pada waktu di kelas.

Sekian tugas ini. Dan pesan tersebut terdapat dalam keseluruhan artikel ini, silakan dicari. 😀

Tugas II3062-Membuat aplikasi yang rentan

Tugas mata kuliah keamanan informasi ini sebenarnya ada dua pilihan, berikut ini adalah soal untuk tugas kali ini :

Anda bisa memilih salah satu dari tugas ini:

  1. Anda diminta untuk membuat aplikasi yang rentan dan bermasalah dengan out of bound array (buffer overflow). Misalnya aplikasi meminta pengguna memasukkan nama dengan panjang tertentu tetapi Anda memasukkannya dengan teks diluar batas tersebut. Tunjukkan bahwa program Anda crash dan memiliki potensi celah keamanan (misal jatuh ke root prompt)
  2. Anda membuat aplikasi yang menguju aplikasi lain untuk potensi out of bound array tersebut. Misalnya, aplikasi Anda membuat (generate) teks yang panjang untuk dimasukkan ke form (pada aplikasi berbasis web), atau aplikasi Anda memberik teks yang aneh-aneh (fuzzer).

Saya memilih untuk mengerjakan tugas yang pertama, yaitu membuat program yang rentan dan bermasalah dengan array out of bound. Saya membuat semacam aplikasi yang berperan sebagai password changer. Program ini saya buat dengan menggunakan visual express c++. Berikut ini adalah screenshot-nya :

Password Changer yang rentan

Sedikit penjelasan, mengenai program yang rentan tersebut. Untuk kolom password saya batasi dengan 16 karakter. Sehingga, ketika dimasukkan lebih dari 16 karakter akan mengalami array out of bound.

Berikut ini adalah saat terjadi array out of bound:

Saat program Error

Semestinya program tersebut jika diisi pada kolom password kurang dari 16 karakter adalah berikut ini

Program yang semestinya

Selain itu, saya juga mencoba-coba untuk mengerjakan yang soal pilihan nomor 2 dengan mengetahui kemungkinan celah untuk array out of bound ini pada aplikasi web.

Saya memasukkan query yang cukup panjang pada kolom pencarian pada suatu aplikasi web, yang kebetulan saya pilih adalah detik.com. Query yang saya masukkan tidak tanggung-tanggung sebanyak 1.279.199 karakter. Dan benar saya ketika saya klik cari akan muncul halaman :

Query Error

Jika normal, halaman ini yang akan kita temui :

Tampilan Query Semestinya

Nah, berikut ini adalah tampilan untuk aplikasi web yang terdapat penanganan error-nya

Penanganan Error Pada Query Yang panjang

Ya, begitu tugas kali ini yang lebih banyak mengeksplorasi array out of bound. Array out of bound merupakan salah satu celah keamaan pada suatu aplikasi yang bisa menyebabkan aplikasi tersebut error.

Tugas II3062-Deteksi Port Scanning

Tugas kuliah II-3069 kali ini adalah memantau jaringan untuk mendeteksi ada tidaknya port scanning. Untuk melakukan hal ini dapat menggunakan software tcpdump atau wireshark. Pada tugas kali ini, saya menggunakan wireshark.

Kali ini, yang akan dipantau adalah komputer dengan IP 167.205.35.220.

Langkah untuk melakukan pemantauan ini adalah berikut ini :

1. Buka program wireshark-nya. Tambahan jika menggunakan windows 7 wireshark dijalankan dengan mode administrator.

2. Pilih interface yang akan digunakan, jangan lupa untuk mengatur pilihan sebelum menjalankan capture pada bagian capture filter dengan menuliskan host 167.205.53.220 sehingga hanya akan memantau paket yang menuju ke alamat tersebut.

Selanjutnya, untuk mengetahui jika ada aktivitas port scanning, kita dapat melakukan port scanning ke komputer yang kita pantau dengan wireshark. Untuk melakukan port scanning dapat menggunakan program NMap. Program Nmap akan menscan semua port yang ada dalam komputer, dengan mengirimkan pesan TCP.

Benar saja, ketika dilakukan port scanning ke komputer yang sedang di pantau akan secara tiba-tiba muncul banyak permintaan dari sumber yang sama. IP komputer yang banyak meminta permintaan tersebut dalam tugas ini adalah komputer dengan IP 167.205.35.244.

Aktivitas Port Scanning

Saat terjadi port scanning

Sangat jelas terlihat, saat terjadi port scanning, komputer dengan IP 167.205.35.244 melakukan pengecekan ke setiap port, terlihat dari info yang ditampilkan oleh wireshark, ada port imap, pop3s, dst.

Nah, dari gambar diatas ada dua warna yang berbeda, yang pertama berwarna hitam dan yang kedua biasa saja. Bagian yang di blok berwarna hitam merupakan port yang terbuka di komputer yang di pantau. Hal ini ditandai dengan paket yang komputer kirimkan ketika ada permintaan ke port yang dituju. Sebagai contoh diatas, komputer dengan IP 167.205.35.244 mengecek port https dan kemudian komputer menjawab permintaan tersebut dengan mengirimkan paket balasan yang diberi tanda warna hitam.

Dengan paket yang dikirimkan tersebut, secara otomatis komputer yang melakukan port scanning mengetahui kalau port tersebut memang terbuka.

Dari pecobaan ini dapat disimpulkan bahwa, port scanning biasanya terjadi dari satu komputer yang berusaha untuk mengirimkan paket ke komputer yang hendak discan portnya ditandai dengan permintaan yang banyak dari satu komputer. Sedangkan untuk mengetahui port tersebut dibuka atau tidak, dapat diketahui dari pesan atua paket yang dikirimkan balik oleh komputer korban.

Full Wireshark

Sekian tentang tugas kali ini.