Tagged: Keamanan Informasi Toggle Comment Threads | Keyboard Shortcuts

  • Salman Kan 8:52 am on March 15, 2010 Permalink | Reply
    Tags: Keamanan Informasi, self reproducing, self reproducing program   

    Kode Asik 

    silahkan copy –> paste –> compile dengan GCC!


    #include

    int main(void){
    char n=’\n’;
    char b=’\\’;
    char q='”‘;
    char*p=”#include %c int main(void){char n=’%cn’;char b=’%c%c’;char q=’%c’;char*p=%c%s%c;printf(p,n,b,b,b,q,q,p,q,n);return 0;}%c”;
    printf(p,n,b,b,b,q,q,p,q,n);
    return 0;
    }

    Silahkan compile dengan GCC dan lihat hasilnya!
    kode yang aneh bukan?! 😉

     
  • Salman Kan 2:42 am on March 12, 2010 Permalink | Reply
    Tags: anatomi email, , Keamanan Informasi, spoofing email   

    Anatomi Email 

    Email sebuah suatu fasilitas di internet yang sangat populer sekali. Setiap pengguna internet sudah dapat dipastikan memiliki alamat email, dan sangat mungkin sering menggunakannya untuk berkomunikasi layaknya proses surat-menyurat konvensional. Akan tetapi, perlu diketahui bahwa email ini merupakan sistem yang terbuka sehingga mudah sekali disusupi, baik oleh program virus, maupun oleh manusia sebagai hacker/cracker (apalah namanya, haha).
    Hal yang sangat lazim dilakukan adalah spoofing email, yaitu pemalsuan email. Kasus yang sering terjadi seperti: seseorang yang berniat jahat mengirimkan email kepada seseorang sebagai korban pertama dengan mengatasnamakan korban kedua. Contoh: Misalkan saya sebagai penjahat menginginkan agar semua mahasiswa yang mengikuti kuliah sekuriti di ITB pada semester ini tidak mengikuti ujian, sehingga semua peserta tidak lulus kuliah ini. Hal yang cukup mudah dilakukan untuk menjalankan kejahatan ini adalah dengan mengirimkan email palsu ke milis kuliah sekuriti ini dengan mengatasnamakan Pak Budi Rahardjo sebagai dosen mata kuliah tersebut, dengan mengatakan bahwa Ujian Akhir kuliah ini ditiadakan. Sungguh, hanya dengan bermodalkan shell terminal dengan program yang bernama telnet, kita dapat mengirimkan email palsu. Untuk contoh kasus di atas pun sangat mudah dilakukan. Ingin mencobanya? silahkan! (hehe). Akan tetapi, tulisan ini tidak akan mengajarkan bagaimana cara melakukan spoofing email tersebut. Silahkan cari sendiri sumbernya di tempat lain (echo.or.id, atau di blog saya ini, atau di blog orang lain, atau di mana lah), yang pasti bukan di tulisan ini.
    Tentu saja kita yang tidak ingin ditipu oleh hal – hal semacam spoofing email, karena bisa sangat merugikan. Oleh karena itu, kita harus mengenal anatomi email, karena sebenarnya struktur email yang kita kirimkan itu terdapat meta-data yang dapat kita lihat untuk melakukan verifikasi valid atau tidaknya sebuah email. Baik, langsung saja ke praktek. Berikut ini adalah email yang dikirmkan oleh teman saya beserta file attachment sebesar 15MB. Untuk melihat wujud asli email di Gmail (saya menggunakan Gmail pada contoh ini) adalah dengan menekan tombol seperti gambar dibawah ini.

    Berikut hasil screen shot header email:

    Dapat dilihat, ada informasi mengenai pengirim, penerima, waktu pengiriman, message ID, dan lain – lain informasi yang juga penting. Dan yang menarik di sini adalah field file attachment pada anatomi email ini. FYI: File attachment ketika dikirmkan melalui email diubah menjadi text, bukan binnari (cmiw:D). Mari kita lihat field attachment…

    Haha, dapat dilihat, file yang sebesar 15MB menghabiskan hingga dua puluh tujuh ribuan line. Dan hal ini cukup menarik bagi saya karena jika diperhatikan dengan seksama, field attachment ini membentuk motif batik. Ternyata dalam dunia digital pun terdapat budaya Indonesia 😀

    Untuk melihat perbandingan antara header email palsu dan email asli, dapat dilihat di link ini: https://salmanmenulis.wordpress.com/2010/03/12/perbandingan-header-email-palsu-dan-yang-asli/ silahkan lihat perbedaannya.

    Thats all folks!

    • pesan moral 1 [agak(ngasal)ga relevan dikit] : Cintailah budaya Indonesia, terutama batik… :p
    • pesan moral 2 (yang mudah2an ga ngasal) : Jika kita menerima email yang cukup sensitif, misal informasi kenegaraan penting atau pernyataan cinta seseorang melalui email, cek terlebih dahulu anatomi emailnya, siapa tahu email tersebut merupakan spoofing email. Walaupun agak sulit memang, untuk melihat perbedaannya. Atau silahkan trace ke Mail Transfer Agent (MTA) terkait.
     
    • salman ibadurrahman 5:26 am on December 23, 2010 Permalink | Reply

      coba perhatikan anatomi email bagian “Received From”. Ada alamat IP kan? trace aja alamat IP tersebut, apa benar itu mail server punyanya si domain tersebut.

      Gampangnya sih, palsu/aslinya email bisa dilihat di bagian tersebut.

  • Salman Kan 12:13 pm on March 1, 2010 Permalink | Reply
    Tags: code java, Keamanan Informasi, splitter modifikasi   

    Jika Ada Perlu :D 

    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileNotFoundException;
    import java.io.FileReader;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.logging.Level;
    import java.util.logging.Logger;

    /**

    • @author salman m ibadurrahman

    */
    public class DnsSearcher {

    ArrayList nameInZone = new ArrayList();

    public static void main(String[] args) {
    new DnsSearcher().printDnsZone();
    }

    /**
    *
    */
    public void printDnsZone() {
    File file = new File("C:\\Documents and Settings\\Admin\\Desktop\\zone_itbacid.txt");
    BufferedReader reader = null;
    try {
    reader = new BufferedReader(new FileReader(file));
    } catch (FileNotFoundException ex) {
    Logger.getLogger(DnsSearcher.class.getName()).log(Level.SEVERE, null, ex);
    }
    String line = null;
    try {
    while ((line = reader.readLine()) != null) {
    String[] token = line.split(" ");
    if((!nameInZone.contains(token[0])) && is4thLevelDomain(token[0])) {
    nameInZone.add(token[0].trim());
    }
    }
    int i = 0;
    while (i = 0; i++) {
    field= domain.substring(begin, end);
    begin = end + 1; //mengskip delimiter
    }

    if(i == 3) return true;
    return false;
    }

    }

     
  • Salman Kan 9:03 am on March 1, 2010 Permalink | Reply
    Tags: c, DNS, java, Keamanan Informasi, nslookup, whois   

    Explorasi DNS 

    Tulisan kali ini masih berbau networking. Sebenarnya saya malas menulis tentang IT, tapi baiklah kalau memaksa…
    Kali ini saya akan menyelesaikan dua buah permasalahan yang diberikan kepada saya, antara lain:

    1. Anda diminta untuk mencari pemilik dari domain detik.com melalui whois. (Sebagai tambahan, Anda bisa melihat apakah name server-nya sama dengan yang ada jika di-query dengan nslookup.
    2. Berapa banyak domain tingkat 4 (4th level domain) di itb.ac.id dan buat daftarnya. (Yang perlu Anda cari hanya yang *.itb.ac.id.) Tools apa yang Anda gunakan?

    Soal yang pertama dapat saya selesaikan dengan membuka alamat web site http://who.is/dns/, yaitu service program whois pada web, dan mengekseekusinya di sana. Saya memilih menggunakan whois pada web site karena hasilnya lebih baik daripada terminal unix untuk ditampilkan. Berikut hasil yang diberikan oleh web site tersebut setelah saya memasukan detik.com sebagai query:

    penjelasan singkat: WHOIS (who is) is the aptly named Internet function that allows one to query remote WHOIS databases for domain registration information.

    Didapatlah nama pemilik:
    Siberkom, PT. Agranet Multicitra
    Aldevco Octagon Building lt 2
    Jl. Warung Buncit Raya 75
    Jakarta, DKI Jakarta 12740
    IN

    Kemudian saya mencocokan hasil yang didapat dari whois dengan program nslookup di sistem unix. Didapatlah dua buah alamat IP, 203.190.242.69 dan 203.190.241.43.

    Dapat disimpulkan bahwa query yang dilakukan dengan whois dan nslookup menghasilkan hasil yang sama. Selamat untukku.. 😀

    Untuk soal yang kedua, saya harus sedikit memrogram sebuah script sederhana. Yang dimaksud dengan domain 4th level adalah domain yang bertingkat hingga 4 level, blalba.itb.ac.id, atau *.itb.ac.id, atau domain program studi saya, if.itb.ac.id. Pokoknya domain – domain tersebut berada di bawah itb.ac.id.
    Untuk mengerjakan soal ini, saya membuka terminal Linux Ubuntu 8.04 versi remastering, OSGX dan Fedora, karena putty tak bisa diandalkan. Berikut adalah visualisasinya:

    command yang diketikan:

    Menghasilkan:

    penjelasan singkat: perintah host -l itb.ac.id akan menampilkan semua record yang merupakan zone di bawah itb.ac.id.

    Dapat dilihat pada baris pertama, saya menuliskan hasil proses tersebut ke dalam file zone_itbacid.txt. Dan pada baris kedua, perintah untuk menampilkan seluruh domain di bawah itb.ac.id. Indikasi banyaknya hasil yang didapat adalah letak scroll terminal (hehe). Oleh karena itu, untuk memastikan domain yang ditampilkan tidak berulang, agar kita dapat menghitungnya, maka saya membuat sebuah script sederhana dalam bahasa java. Awalnya saya ingin menggunakan bahasa C, tetapi 5 jam tidak selesai – selesai, akhirnya saya memutuskan untuk mengorbankan idealisme saya dengan menggunakan bahasa java (hehe). Tapi yang pasti, say no to C#

    Berikut potongan script utama program. Agak ngasal tapi efektif yang telah saya buat:


    public void printDnsZone() {
    File file = new File("C:\\Documents and Settings\\Admin\\Desktop\\zone_itbacid.txt"); //file yang akan dibaca. File berisi daftar semua domain di itb.ac.id
    BufferedReader reader = null;
    try {
    reader = new BufferedReader(new FileReader(file));
    } catch (FileNotFoundException ex) {
    Logger.getLogger(DnsSearcher.class.getName()).log(Level.SEVERE, null, ex);
    }
    String line = null;
    try {
    while ((line = reader.readLine()) != null) {
    String[] token = line.split(" ");
    if((!nameInZone.contains(token[0])) && is4thLevelDomain(token[0])) { //string domain dimasukan ke dalam list apabila belum ada di dalam list.
    nameInZone.add(token[0].trim());
    }
    }
    int i = 0;
    while (i < nameInZone.size()) {
    System.out.println(nameInZone.get(i));
    ++i;
    }
    System.out.println("\n jumlah domain level 4: "+nameInZone.size());
    } catch (IOException ex) {
    Logger.getLogger(DnsSearcher.class.getName()).log(Level.SEVERE, null, ex);
    }
    }

    code lengkapnya: https://salmanmenulis.wordpress.com/2010/03/01/jika-ada-yang-perlu-d/

    Saya tidak akan menjelaskan panjang lebar code di atas.
    Intinya dari code fungsi di atas adalah menerima masukan file yang berisi list seluruh domain yang ada di bawah itb.ac.id (dari yang level 4 maupun yang bukan), kemudian hanya mengambil nama domain saja, kemudian menuliskannya yang level 4 saja tanpa berulang, lalu menghitng jumlahnya. Kurang lebih begitulah…

    Setelah program yang saya buat dijalankan, didapatlah daftar nama domain level 4 saja dan jumlah keseluruhannya. Berikut gambar yang didapat:

    Tidak semua nama domain dapat diperlihatkan. Tapi kurang lebih begitulah, dan dapat kita lihat jumlah yang didapat, yaitu 487. Jumlah domain level 4 di itb berjumlah 487 buah. thats all folks..

     
    • salman.m 9:41 am on March 1, 2010 Permalink | Reply

      Hoo… FYI: di java tidak ada fungsi split untuk memisahkan string oleh karakter. Hal ini lumayan menarik dalam coding program yang telah saya buat untuk keperluan ini.

      Di postingan selanjutnya, akan saya jelaskan mengakali fungsi “split by karakter” yang tidak tersedia di java.

      Yang tersedia di java hanya fungsi:
      String split(String regex)

      perlu regular expression jika menggunakan fungsi ini.

    • rini 3:40 am on March 23, 2010 Permalink | Reply

      ah,,,dasar orang IT ngobrolnya IT aja,,
      hehehehhe,,
      tapi bagus buat belajar bagi yg masih awam,,

      • salman.m 4:21 am on March 23, 2010 Permalink | Reply

        jangankan buat yang awam, buat yang udah expert juga blog ini berguna 😀

  • Salman Kan 6:35 am on February 25, 2010 Permalink | Reply
    Tags: Keamanan Informasi, Pidgin, pidgin crash   

    Crash Pidgin Versi 1.4 (versi jadul) 

    Sekitar setahun lalu, saya pernah mencoba – coba “kemampuan” Pidgin Internet Messaging 1.4. Saat itu Pidgin versi tersebuat masih disuport oleh yahoo, sekarang versi tersebut sudah kadaluarsa. Pidgin IM terbaru saat ini adalah versi 2.6.6. Saat itu saya mengetes kemampuan buffer dari aplikasi IM tersebut.

    Dari komputer yang sama, saya login yahoo messager dari aplikasi yang berbeda, yaitu Pidgin dan Yahoo Messanger dengan dua akun yang berbeda. Dari yahoo saya mengetikan smiley banyak sekali. Mungkin lebih dari ratusan dengan cara copy-paste simbol “:D” secara berulang – ulang. Ketika saya tekan tombol enter, message tidak langsung terkirim, tapi dia seperti hang. Dan akhirnya benar – benar hang. Ketika login kembali dengan Pidgin itu kembali, proses login berhasil dan sepertinya yang tadi itu tidak ada pengaruh apa – apa. Akan tetapi ketika Pidgin tersebut digunakan, di tengah chatting aplikasi tersebut sering mati secara tiba – tiba.

    Analisis awam saya adalah, aplikasi IM Pidgin itu selalu tiba – tiba mati karena pada saat saya mengirimkan banyak smiley kepada Pidgin membuat memori komputer yang dialokasikan bagi aplikasi Pidgin ini mengalami overflow,s ehingga menimbulkan crash. Makanya mati – mati saja Pidgin tersebut. Namun sepertinya, jika memori komputernya telah dibereskan (dengan cara defrag kembali, atau bagaimana lah), mungkin akan kembali normal.

    Sepertinya pihak Pidgin menyadari juga hal ini. Oleh karena itu pada versi – versi selanjutnya, terutama versi 2.6.6 yang saya gunakan, tidak mengizinkan pengiriman message yang berlebihan.

    Mari mencari bugs punya orang lagi.. (haha)

     
  • Salman Kan 6:32 am on February 25, 2010 Permalink | Reply
    Tags: Keamanan Informasi, kelemahan PHP, mencari kelemahan   

    Mencari Aplikasi Online yang Rentan 

    Lebih mudah memang untuk mencari – cari kesalahan orang lain. Lain halnya dengan jika mencari kesalahan sendiri. Bukannya kita sendiri tidak memiliki kesalahan, tapi sering kali kesalahan sendiri tidak disadari oleh kita sendiri. Berikut ini akan saya kemukakan temuan saya atas kesalahan orang lain, di bidang IT, khususnya aplikasi online.

    Sejak seminggu yang lalu, saya selalu membuka google untuk mencari website yang kira – kira enak untuk “dites”. Kata kunci yang terkandung yang saya gunakan untuk melakukan pencariaan di google antara lain, “go.id”, “joomla”, “bla bla”, “bla bla”. Tujuan utama saya adalah hanya untuk mencari website yang memiliki field untuk input text, sehingga saya bisa “mengerjai” website tersebut dengan cara melakukan input sembarangan karakter dengan jumlah sembarangan pula pada website tersebut. Rencana saya adalah melakukan input field text yang biasanya diisi oleh paling banyak 10 karakter, saya akan mengisinya dengan ratusan karakter lebih, dengan harapan aplikasi website tersebut akan down. Sayangnya, hasil pencarian saya tidak sesuai harapan. Saya hanya menemukan sebuah website yang dibangun di atas framework Codeigniter, yang memiliki field text input yang tidak divalidasi jumlah text yang diinput kedalamnya. Tetapi ketika dicobakan mengisi ratusan karakter lebih ke dalam field text tersebut, hanya muncul pesan error dari web server. Tidak begitu rentan!!

    Walaupun tidak begitu rentan, tapi paling tidak kita menjadi tahu framework PHP apa yang digunakan oleh kompas.com, dan mungkin suatu saat saya akan mengemukakan web dengan framework Codeigniter. Kita tahu bahwa framework PHP Codeigniter itu cukup robust. Kita lihat saja nanti.

    Percobaan selanjutnya adalah ke sebuah website yang beralamat http://kitamain.com. Berikut screen shot yang berhasil saya dapatkan:

    Kemudian menjadi:

    Lalu:

    Dan ketika saya buka alamat munculnya error berikut di browser lain yang memiliki cookie jelas – jelas berbeda dengan cookie browser sebelumnya, menjadi begini:

    Menurut saya, hal ini cukup rentan. Pertama, tidak ada validasi jumlah input yang diberikan oleh user dan validasi format data yang seharusnya diisikan ke dalam field input tersebut, sehingga memungkinkan orang lain berbuat seperti saya ini. Jika saya diberikan waktu sekitar 3 minggu lagi, mungkin saya akan berhasil melakukan XSS attack pada web site ini (devil).

    Jika boleh saya menebak – nebak ilmiah, saya rasa web site ini dibangun di atas framework PHP buatan sendiri. Nice try 😀

    Tambahan:

    Info dari teman, yang punya web site ini adalah alumni ITB . Nampak – nampaknya kita satu almamaer tapi beda dosen pembimbing TA, hehe.
    *

    Kepada yang punya web ini, saya mohon maaf sekali. Ini untuk kepentingan tugas kuliah :D.

     
    • salman.m 6:37 am on February 25, 2010 Permalink | Reply

      waduh maaf, gambarnya kurang bagus.

c
Compose new post
j
Next post/Next comment
k
Previous post/Previous comment
r
Reply
e
Edit
o
Show/Hide comments
t
Go to top
l
Go to login
h
Show/Hide help
shift + esc
Cancel