Mengajarkan Cyber Security

Minggu lalu saya diminta untuk memberikan presentasi tentang cyber crime (yang akhirnya saya buat lebih umum menjadi cyber security) kepada siswa SMP, SMA, guru-guru dan orang tua di Al Izhar Jakarta. Baiklah. Ini merupakan tantangan tersendiri karena biasanya pendengar presentasi saya adalah mahasiswa.

Beberapa hal utama yang saya sampaikan adalah tentang privasi dan hoax. Bagaimana kita harus menjaga privasi kita dan berbagai kemungkinan serangan terhadap pencurian data pribadi kita. Sementara tentang hoax adalah kita harus MAU mencari informasi dan banyak membaca. (Kata MAU memang sengaja saya tebalkan karena masalahnya bukan bisa atau tidak bisa melainkan mau atau tidak mau.)

Secara umum acaranya berjalan lancar. Sayangnya saya tidak banyak mengambil foto. Maklum, susah kan menjadi pembicara dan mengambil foto.

IMG_20180928_094643 kids
kids are always kids

Foto di atas adalah foto siswa SMP. Bagaimana kalau guru-gurunya berfoto? Sama saja. ha ha ha.

guru-al-izhar_0001

Semoga apa yang saya presentasikan dapat bermanfaat bagi semuanya.

Iklan

Source Code Versioning & Security

Dalam kuliah “Software Security” yang saya ajarkan minggu lalu, kami berdiskusi mengenai topik “source code versioning” dan “security“. Apa kaitannya keduanya? Adakah kaitannya?

Source code versioning adalah sebuah kegiatan dalam pengembangan perangkat lunak. Pada awalnya pengembangan perangkat lunak dilakukan secara serampangan. Tidak ada metodologi. Pokoknya asal jadi saja. Salah satu masalah yang muncul adalah ketidakjelasan versi yang digunakan. Misal, di sistem produksi ada masalah dengan perangkat lunaknya. Dia menggunakan versi 1.1. Sementara itu di bagian pengembangan, perangkat lunaknya sudah sampai ke versi 1.7. Agak sulit menentukan masalah karena ada perbedaan versi. Masalah lain juga dapat terjadi ketika terjadi upgrade. Misal, perangkat lunak dari versi 1.1 diperbaharui menjadi versi 1.3 kemudian diperbaharui lagi ke versi 1.7. Ternyata ada masalah di versi 1.7, maka perangkat lunak harus dikembalikan ke versi sebelumnya. Tanpa menggunakan versioning, ini akan sulit dilakukan.

Saat ini ada banyak sistem source code versioning ini. Yang paling terkenal saat ini adalah Git.

Mari kita sekarang membahas topik utamanya; hubungan antara code versioning ini dengan security. Dalam diskusi yang kami lakukan, kami belum menemukan hubungan atau alasan yang dapat diterima dengan mudah bahwa code versioning itu mendukung security. Yang kami temukan adalah alur seperti ini:

Pengembangan perangkat lunak sangat disarankan (harus?) menggunakan code versioning. Karena code versioning ini digunakan, maka hal-hal yang terkait dengan itu harus aman (secure). Kendali-kendali keamanan apa saja yang sudah diterapkan?

Itu yang baru dapat kami utarakan.

Cyber Intelligence Asia 2018

Hampir seminggu ini saya berada di Singapura. Acara utama yang saya kunjungi adalah Cyber Intelligence Asia 2018. (Kalau disingkat bisa jadi CIA 2018. CIA, biasanya di dunia security merupakan singkatan dari Confidentiality, Integrity, dan Availability. Jadi pas juga.) Cyber Intelligence Asia ini adalah acara tahunan yang lokasi penyelenggaraannya pindah-pindah. Kali ini di Singapura. Sayangnya belum pernah di Indonesia.

Topik yang dibahas di acara ini terkait dengan cyber security di negara atau organisasi masing-masing pembicara. Asyiknya adalah kita dapat membahas banyak hal secara terbuka, yang mana ini akan sulit jika dibahas tanpa tatap muka. Ada banyak “rahasia”. Kita dapat belajar bagaimana negara lain menangani kasus kejahatan ATM di negara mereka, misalnya. Atau bagaimana mereka mengembangkan framework cyber security di negara mereka.

IMG_20180322_083731 day2

Sudah beberapa acara CIA ini saya diminta untuk menjadi chairman-nya. Tugas saya adalah mengatur agar acaranya berjalan lancar; memastikan pembicara tidak melebihi waktunya, menyiapkan pertanyaan jika peserta tidak bertanya. Lumayan repotlah.

Topik acara kali ini cukup lumayan bagusnya. Sama seperti tahun-tahun sebelumnya. Sayangnya jumlah pesertanya kelihatannya menurun. Mungkin karena bersamaan dengan acara ini ada banyak acara cyber security lainnya di Singapura. Misalnya, Blackhat sedang berlangsung juga. Anyway, acara ini sukses.

IMG_20180322_143323_HDR 0001

Berburu Hash

Ini cerita tentang tugas atau pekerjaan rumah mahasiswa saya. Ceritanya saya mengajar kuliah keamanan informasi (information security). Salah satu bagian dari materinya adalah tentang kriptografi dan minggu lalu kami membahas fungsih hash.

Apa itu fungsi hash? Bisa panjang lagi ceritanya. (Nambah daftar topik yang perlu diceritakan.) Singkatnya fungsi hash adalah fungsi satu arah yang dapat memberikan ciri atau tanda-tanda (signature) dari data digital (stream of data, files, dan-lain-lain). Contoh fungsi hash yang terkenal adalah MD5 dan SHA256.

Misal ada sebuah berkas (bernama “pesan1.txt”) yang berisi “beli 10000”. Maka hasil SHA 256 (algoritma SHA dengan panjang bit 256) dari teks tersebut dapat dilihat pada contoh di bawah ini.

unix$ echo "beli 10000" | shasum -a 256
375a6c46228994656932f4aa17d9ae50f21da75a31ff17f8517c255c06cba809 -

unix$ cat pesan1.txt
beli 10000
unix$ shasum -a 256 pesan1.txt
375a6c46228994656932f4aa17d9ae50f21da75a31ff17f8517c255c06cba809 pesan1.txt

unix$ cat pesan2.txt
beli 1000
unix$ shasum -a 256 pesan2.txt
5901bccc6a0556fac2b4a164ef831a7ed4ceddeb60c6ddde1162f5a40b9d2917 pesan2.txt

Pada contoh di atas ditunjukkan jika kita memiliki data yang berbeda – dicontohkan dengan berkas “pesan2.txt” yang berisi “beli 1000” (hilang satu angka nolnya) – maka hasil hash-nya pun berbeda. Bahkan, sangat jauh berbeda.

Hal lain dari fungsi hash adalah, jika kita diberikan sebuah hasil hash, maka akan sangat sulit bagi kita untuk merekonstruksi ulang berkas aslinya.

Kebetulan saat ini yang sedang ngetop adalah blockchain. Atau lebih ngetopnya adalah Bitcoin-nya. Salah satu dasar dari blockchain adalah fungsi hash. Maka salah satu tugas mahasiswa di kelas saya adalah berburu (hasil) hash.

Skenarionya adalah kita memiliki sebuah pesan “A>B,5000” (tanpa tanda kutip). Pesan ini ditambahkan nonce, sebuah angka (data, string) yang diambil “dari langit”, dan kemudian keduanya di-hash-kan dengan SHA256.

A>B,5000
NONCE

Ada sedikit “perlombaan” di kelas, yaitu siapa yang berhasil menghasilkan hash terkecil adalah pemenangnya. Cara menguji angka hash yang kecil adalah dengan melihat jumlah “0” di depannya. Yang perlu dicari adalah nonce-nya tersebut. Jadi carilah nonce yang menghasilkan nilai hash paling kecil. Silahkan diperlombakan. Kalau di kelas diberi waktu satu minggu. Pemenangnya akan saya beri hadiah buku.

[Catatan: konsep ini mirip dengan konsep “miner” di bitcoin.]

Memulai Perkuliahan Lagi

Hari ini sebetulnya sudah merupakan minggu kedua dari perkuliahan di ITB. Semester ini saya mengajar tiga (3) mata kuliah. Semuanya di bidang information security:

  • II3230 – Keamanan Informasi (Information Security)
  • EL5215 – Keamanan Perangkat Lunak (Software Security)
  • EL6115 – Secure Operation and Incident Handling

Ini potret yang saya ambil di kelas Keamanan Informasi minggu lalu.

ITB information security class 2018

Kelasnya dimulai pagi sekali, pukul 7 pagi. Ayo semangat! Semoga tetap bersemangat sampai akhir semester.

Verifikasi NIK dan KK

Mumpung sedang ramai-ramainya dibahas tentang pendaftaran ulang nomor kartu telepon prabayar, mari kita diskusikan aspek teknis. Kesempatan untuk belajar “protokol”.

Ceritanya kita sebagai pengguna diminta untuk mengirimkan NIK dan KK melalui SMS ke 4444. Saya punya masalah dengan mengirimkan KK. Mengapa harus mengirimkan KK? Permasalahannya adalah operator jadi memiliki KK kita. Untuk apa? Seharusnya kita berikan informasi secukupnya saja. Sesedikit mungkin. Ini masalah privasi. Pertanyaannya adalah bagaimana cara operator dapat memastikan bahwa NIK yang kita kirimkan itu benar (terasosiasi dengan KK)?

Berikut ini adalah video yang saya buat (beberapa menit yang lalu). Sekalian nyoba nge-vlog agar kekinian. hi hi hi.

Selamat menikmati videonya. Semoga bisa menjadi sumber pembelajaran.

Update: Ini ada cuplikan dari berita. Di gerai bisa akses KK; diberikan data NIK, keluar KK-nya. Parah. Ini seharusnya tidak boleh karena data KK kemudian dapat dikumpulkan.

NIK KK

Update lagi: berikut ini adalah tampilan layar papan tulis (whiteboard) ketika saya mengajar network security di kelas.

P_20171108_084040 NIK KK//embedr.flickr.com/assets/client-code.js

P_20171108_090635 NIK KK//embedr.flickr.com/assets/client-code.js

P_20171108_092802 NIK KK//embedr.flickr.com/assets/client-code.js

Permasalahan Satelit dan Layanan Perbankan

Beberapa hari yang lalu (tepatnya tanggal 25 Agustus 2017), satelit Telkom 1 mengalami masalah. Akibatnya banyak layanan perbankan, terutama terkait dengan mesin ATM, ikut terhenti. Ribuan mesin ATM dari berbagai bank tidak dapat terhubung ke kantor pusat bank sehingga tidak dapat memberikan layanan.

Sebelum timbul kekisruhan lebih lanjut, saya ingin mengatakan bahwa ini adalah masalah – masalah besar bahkan – tetapi bukan sebuah show stopper yang menghentikan semua layanan perbankan. Layanan perbankan bermuara pada sistem core banking mereka. Layanan ini dapat diakses melalui berbagai cara (delivery channel), yang mana ATM merupakan salah satunya. Mari kita daftar cara mendapatkan layanan perbankan.

  1. Langsung ke kantor cabang bank secara fisik;
  2. menggunakan layanan ATM;
  3. menggunakan layanan phone banking;
  4. menggunakan layanan internet banking;
  5. menggunakan layanan SMS dan mobile banking.

Dari daftar di atas dapat dilihat bahwa ATM hanyalah salah satu cara untuk mengakses layanan perbankan. Keresahan yang terjadi mengkonfirmasi bahwa layanan ATM merupakan layanan yang paling populer. Namun saya menduga ke depannya layanan internet banking dan mobile banking akan lebih mendominasi di era belanja online. Coba saja kita belanja online, maka akan sangat lebih nyaman menggunakan internet banking atau mobile banking dibandingkan harus pergi ke mesin ATM dan melakukan pembayaran di sana.

Tulisan ini tidak bermaksud untuk melupakan masalah yang ditimbulkan oleh berhentinya layanan satelit Telkom 1, tetapi untuk mengatakan bahwa kita tidak usah panik. Pihak perbankan dan penyedia jasa telekomunikasi memang harus menyiapkan business recovery plan (business continuity plan) ketika terjadi masalah. Ini pun harus diuji secara berkala. Mudah-mudahan ke depannya lebih baik.

Beberapa bahan bacaan

  1. Kronologi Anomali Satelit Telkom 1
  2. Masa hidup satelit Telkom 1 sudah berakhir
  3. Telkom sewa satelit untuk migrasi pelanggan
  4. ExoAnalytic video shows Telkom-1 satellite erupting debris