Social Engineering, Practical, Governance

Masih teringat di benak saya salah satu mata kuliah Pak Budi Rahardjo Keamanan Informasi (Eh.. apa ya namanya.. cmiiw reader yang satu kuliah sama saya) tentang topik menarik satu ini bernama Social Engineering.

Social Engineering dalam versi saya adalah suatu metode mengoleksi informasi baik umum maupun rahasia dengan cara pendekatan sosial — walaupun bisa saja dikombinasikan dengan pendekatan teknologi (hack, googling, dll). Metode ini konotasinya sedikit negatif, at least, dalam pandangan saya.

Tugas Social Engineering waktu itu sangat menarik, masing-masing dari kami mendapatkan tugas untuk mendapatkan nomor telepon pribadi dari artis pilihan kami. Well, challenging bukan?

Waktu itu saya memilih artis Gita Gutawa karena itu pertama kalinya Gita booming. Alhasil, saya dapat nomornya namun sepertinya cuma nomor agency nya saja sih. Dosen saya tersebut memberikan kebebasan bagaimana caranya kami bisa mendapatkan nomor tersebut. Topiknya sih social engineering ya, seharusnya dengan cara pendekatan sosial. Misal berpura-pura berminat menggunakan jasa si artis, mengaku menjadi sahabat lama, dan lain-lain.

Teman-teman saya ada yang memiliki jalur koneksi artis, dan alhasil mendapatkan nomor sang artis (nggak curang sih, secara memiliki jalur koneksi artis artinya ia melakukan pendekatan secara sosial juga). Ada juga yang hanya sekedar melakukan google engineering (browsing informasi di google). Yang lainnya berusaha pura-pura berkenalan join ke facebook/twitter pribadi mereka lalu seolah-olah menjadi temannya. Lucu sih.

***

Enam-Tujuh tahun terlewati. Tanpa terasa era teknologi makin canggih. Semua produk berlomba-lomba untuk dinamis dan memanjakan pelanggannya.

Media informasi diperbanyak. Termasuk semakin maraknya kehadiran call center. McD, KFC, Polisi, dan lain-lain. Tidak hanya call center, media seperti chatting (bahkan untuk toko laptop mangga dua), email, twitter, dan lain-lain. Beberapa company bahkan proaktif mendengar keluhan-keluhan pelanggan yang ada di media sosial.

Tetapi semakin canggih, rupanya membuat “informasi” menjadi sebuah kekuatan tersendiri di era ini. Information is the power itself. Bagaimana kekuatan politik menjadi berpengaruh karena mereka menguasai media TV yang bonafide (sedemikian rupa membuat lawan-lawan politik mereka berlomba-lomba membuat stasiun swasta sendiri).

Era informasi inilah yang membuat saya terngiang-ngiang kembali pada pelajaran social engineering beberapa tahun silam.

Setiap perusahan digital berusaha untuk menjadi dinamis, hampir setiap bulannya menawarkan inovasi dan jasa. Mereka dituntut untuk cepat namun tetap berkualitas.

Namun sesuatu yang cepat itu biasanya akan menjalani proses yang practical — dimana beberapa step administratif dibypass, atau malah diabaikan. Tidak melulu melakukan bypass administrasi untuk tujuan negatif, namun terkadang untuk tujuan mempercepat proses.

Practical vs Governance Process

Bagaimana menyeimbangkan dua hal tersebut. Kita butuh practical process yang cepat, namun ketika mengabaikan governance akan berdampak buruk bagi pemilik proses. Governance disini berarti teratur. Mengikuti kaidah-kaidah. Biasanya diatur dalam bisnis proses perusahaan. Namun di era ini, semuanya serba cepat dan tidak semua kondisi telah terlingkupi.

Jangan sampai usaha untuk menjadi perusahaan yang dinamis menjadi boomerang bagi perusahaan tersebut. Dan jangan juga terlalu saklek dengan peraturan. Jika memang perubahan bisnis proses (atau bahkan perubahan culture perusahaan) diperlukan untuk kebaikan perusahaan, hal tersebut perlu dipertimbangkan stakeholder.

Satu hal yang pasti, ini adalah era informasi. Secepat apapun, sedinamis apapun, dan bagaimanapun sebuah perusahaan harus governance, no no.. ini tidak mesti terjadi pada perusahaan; Individu, institusi, swasta, startup, dan siapapun harus mengelola informasi yang mereka miliki dengan baik.

Jangan sampai informasi “Gita Gutawa” tadi diketahui orang lain yang tidak berhak.

Marhaban Ya Ramadhan

Nggak kerasa udah Ramadhan lagi. Dulu orang tua saya bilang, itu tanda-tanda sudah mau kiamat. Bismillah, semoga masih bisa menikmati Ramadhan yang akan datang ini.

Sempat dengar ceramah Jumat beberapa pekan lalu yang cukup menarik. Sudah hal yang wajar jika manusia berkeluh kesah, karena itu hakikatnya manusia. Namun kita bukanlah manusia, tapi kita upgrade dari manusia. Manusia yang diberi iman. or at least Insya Allah merasa beriman kepada Allah ya. Amiin.

Well, di rujukan surat yang sang khotib sampaikan, disampaikan dengan upgrade iman ini, si manusia seharusnya terlindungi dari rasa keluh kesah dan galau karena berdasarkan surat yang dirujuk tersebut, orang yang beriman memiliki dua senjata : Jika mereka diberikan kemudahan / kenikmatan, mereka bersyukur. Jika mereka diberikan kesukaran / kesulitan, mereka bersabar.

Well implementasinya cukup sukar, at least bagi saya sendiri. Saya suka tersindir atas beberapa analogi pada surat-surat Al-Quran. Itulah hebatnya Alquran, di dalamnya suka diberi analogi-analogi tricky yang masuk akal. Tentu saja karena penciptanya adalah Allah yang Maha Mengetahui segalanya.

Kata khotibnya, sabar, syukur, ditambah dengan ikhlas. Seharusnya tidak lagi ada kegundah gulanaan yang menimpa manusia. Well itu senjata sih ya, apakah Anda menggunakan atau tidak, or minimal apakah Anda mampu dan mau menggunakannya.

Alhamdulillah, Ramadhan tiba, setiap tahunnya. Bagi mereka yang diberi kenikmatan itu sudah saatnya mengasah senjata itu supaya bisa kita terapkan di bulan-bulan lain yang lebih less-religous — dimana kehidupan duniawi menimbun dan membuat kita menjadi gundah gulana / resah dan lupa bahwa selalu ada Dia yang akan menolong kita.

Astagfirullah, semoga kita mendapatkan berkah dan manfaat akan Ramadhan yang akan tiba ini.

Marhaban ya Ramadhan

Be ready guys!

REST API TESTING

In this documentation, I want to note how to test REST API using this two method :

  1. Using SoapUI
  2. Using CuRL from command line/linux-like

The Method I documented here is only for GET, and POST only. Well other method is similar, you can read it from the source I read before.

Using SoapUI

– GET –

rest_request_editor_os

– POST –

Basically for POST you need to put the parameter in the payload (body request)

Using CuRL (command line)

What is curl?

Well, curl is a command line tool and library for transferring data with URL syntax, supporting DICT, FILE, FTP, FTPS, Gopher, HTTP, HTTPS, IMAP, IMAPS, LDAP, LDAPS, POP3, POP3S, RTMP, RTSP, SCP, SFTP, SMTP, SMTPS, Telnet and TFTP. curl supports SSL certificates, HTTP POST, HTTP PUT, FTP uploading, HTTP form based upload, proxies, HTTP/2, cookies, user+password authentication (Basic, Digest, NTLM, Negotiate, Kerberos…), file transfer resume, proxy tunneling and more.[1]

– GET –

curl http://localhost:8888/aplikasi/getApi/1

curl http://localhost:8888/aplikasi/getApi/encodedurl?a=abc&b=123

– POST –

(using url-encoded)

curl -i -X POST -H “Content-Type:application/x-www-form-urlencoded” http://api.aplikasi.co.id/postApi -d ‘a=abc&b=123&username=johndoe’

(using json)

curl -i -X POST -H “Content-Type:application/json” http://api.aplikasi.co.id/postApi -d ‘{“a”:”abc”,”b”:”123″,”username”:”johndoe”}’

(using multiple header)

curl -i -X POST -H “Content-Type:application/x-www-form-urlencoded” H “Accept-encoding:gzip” http://api.aplikasi.co.id/getApi -d ‘a=abc&b=123&username=johndoe’

– CuRL Options –

  • -H, --header – customer header to pass to the server
  • -i, --include – include protocol headers in the output (H/F)
  • -X, --request – specify request  COMMAND (GET, PUT, DELETE…)  to use
  • -v, --verbose – make the operation more talkative
  • -c,  – is to save the cookies on the cookies.txt file. And since we are doing a login this is important
  • -d,  – allows you to set the request body, which you will be using on drupal services to send the parameters

[SOLVED] (98)Address already in use: make_sock: could not bind to address 0.0.0.0:80

For my own documentation, copied from here.

***

The following command which you will find everywhere out in the cloud is as follows:

sudo netstat -ltnp | grep ‘:80’ (it is important to note that apache was hanging and it did not matter what port I decided to investigate)

This would return the following:
tcp6 0 0 :::80 :::* LISTEN 1047/apache2

Then I ran the following command:

sudo kill -9 1047 (the pid that appears on your particular instance)

I was able to restart Apache and everything was groovy until I rebooted.

Mounting LVM partitions from a command prompt or a Root Shell

For my own documentation, reposted from here. Here we go..

***

Today as I booted into my openSUSE box, for reasons unknown to me, my LVM partitions failed to mount. fsck didn’t help, and and LVM based container system meant that I couldn’t use the standard mount /dev/sdxx style of mounting as well. With my /home and / configured as a LVM, the root (/) partition was active, but the /home partition was not being mounted, as a result, X and KDM wouldn’t start, giving a console login. After a bit of digging around the man files, I found thw lvm manfile and started experimenting(remember, no net access too!) and found out how to mount the LVM’d partitions.

The below set of commands require root privileges so switch over root using

su root

Next, list out all your partitions, type

linux:/ # lvmdiskscan

You will get a list of something like this

File descriptor 3 left open
File descriptor 4 left open
/dev/dm-0 [ 9.67 GB]
/dev/sda1 [ 78.41 MB]
/dev/dm-1 [ 6.44 GB]
/dev/sda2 [ 115.52 GB]
/dev/dm-2 [ 2.00 GB]
/dev/sda3 [ 18.11 GB] LVM physical volume
/dev/sda5 [ 15.33 GB]

Make a note of /dev/dm-x, those are the devices which correspond to the LVM partitions. Also do note the sizes.

Next, type lvdisplay to show a detailed list of all logical volumes available.

lvdisplay |more


LV Name /dev/system/home
VG Name system
LV UUID 1QP9XM-vlKi-umNO-CXvV-TnZN-RCLk-e1FDIr
LV Write Access read/write
LV Status available
# open 1
LV Size 9.67 GB
Current LE 2475
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0

— Logical volume —
LV Name /dev/system/root
VG Name system
LV UUID D1fKUJ-uU1C-jlVB-4imh-rrgy-FQu0-TC2Ssm
LV Write Access read/write
LV Status available
# open 1

LV Size 6.44 GB
Current LE 1649
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 253:1

— Logical volume —
LV Name /dev/system/swap
VG Name system
LV UUID w5LqIb-xvcr-Xsbk-y3wg-lT3i-LqdN-GFK8Mi
LV Write Access read/write
LV Status available
# open 0
LV Size 2.00 GB
Current LE 512
Segments 1
Allocation inherit
Read ahead sectors auto
– currently set to 256
Block device 253:2

Now from the above set of data we can deduce that my /home partition, of size 9.67 GBis available as LV group /dev/system/home on /dev/dm-0

Now that we know where the partition is available, we can proceed with the mounting using the mount command, as

mount /dev/md-0 /home

And there you go, your LV partition is mounted!

Adobe Premiere’s Keying

It’s too late to know this method, but it’s worth to start learning it. So basically keying in adobe premiere means masking in photoshop. For example you want to make the video transparent so that only the object masked is being shown on the video on top of another video.

So there are some keying method that note to follow :

  1. Ultra keying : It’s using video that the object is being shoot in front of green or blue chroma key. It’s a method that film maker always does : shoot some crazy scenes on top of green or blue background, so that they can replace the background with any other video. It’s depend so much on the video making. Using the keying itself on Adobe Premiere is easy.
  2. Track Matte / 4 point/8 point/16 point keying : Using this we can manually set how the masking is done. Of course you’ll need to be patiently set the motion and the shape of mask.

Well, well.. Let’s do some keying!