Monday, July 29, 2019

Pengamanan Terhadap Email


Pengertian Email atau suratelektronik adalah suatu sarana untuk mengirim dan menerima surat atau pesan dengan format digital melalui jalur jaringan komputer dan internet.
Sebenarnya cara kerja email ini cukup sederhana. Sama seperti ketika kita menulis surat kepada orang lain. Bedanya, dengan email kita bisa mengirim pesan lebih cepat dan dapat disertai dengan file tertentu yang ingin kita kirim juga.

Beberapa masalah keamanan yang terkait dengan sistem email :
Penyadapan
 Potensi penyadapan ini dapat terjadi karena pengiriman emailmenggunakan protokol SMTP (Simple Mail Transport Protocol) 1 yang tidak menggunakan enkripsi sama sekali. Jika kita berada pada satu jaringan yang sama dengan orang yang mengirim email, atau yang dilalui oleh e maka kita bisa menyadap email dengan memantau port 25, yaitu port yang digunakan oleh SMTP.mail
Demikian pula untuk mengambil email, biasanya digunakan protocol POP (Post Office Protocol)1. Protokol yang menggunakan port 110 ini juga tidak menggunakan enkripsi dalam transfer datanya. Ketika seorang pengguna mengambil email melalui POP ke mail server, maka kita bisa menyadap data yang melewati jaringan tersebut.
Pengaman Penyadapan
  • Agar email aman dari penyadapan maka perlu digunakan enkripsi untuk mengacak isi dari email.
  • Header dari email tetap tidak dapat dienkripsi karena nanti akan membingungkan MTA.
  • Dahulu, proses enkripsi dari email harus dilakukan secara manual oleh pengguna. Dia harus mengenkripsi pesan atau data yang ingin dia kirimkan dengan sebuah program, kemudian menyisipkan (attach) berkas tersebut ke dalam email.
  • Saat ini sudah ada beberapa program (tools) yang dapat mempermudah atau mengotomasinya
  • Contoh program tersebut antara lain Pretty Good Privacy (PGP),GnuPG, dan PEM.


Spam
  • Spam1 adalah didefinisikan sebagai “unsolicited email”, yaitu email yang tidak kita harapkan.
  • Spam ini berupa email yang dikirimkan ke banyak orang.
  • Biasanya isi dari email ini adalah promosi.
  • Spam ini tidak terfilter oleh anti-virus karena memang dia bukan virus.


Pencegahan Spam
  • Spam Filter :Filter terhadap spam harus dilakukan secara khusus. Namun mekanisme untuk melakukan filtering spam ini masih sukar karena kesulitan dalam membedakan antara email biasa dan email yang spam.
  • Statistik (Bayesian) : statistik (Bayesian) yang menghitung kata-kata di dalam email. Jika ada banyak kata yang merupakan kata kunci dari spammer, maka statistik akan menunjukan probabilitas bahwa email tersebut merupakan spam.

Demikian pula membuat email palsu tidak terlalu sukar. Kita tinggal menuliskan informasi yang salah di header dari email. (Misalnya kita konfigurasikan sistem email kita dengan mengatakan bahwa kita adalah si-doel@hotmail.com.) Email yang palsu ini kemudian kita serahkan kepada MTA untuk dikirimkan ke tempat yang dituju. Maka MTA akan melakukan perintah tersebut. Namun perlu diingat bahwa aktivitas kita tercatat oleh MTA.

  • Sebagaipenerima email, kita bisa melihat header dari email. Kita lihat tempat tempat yang dilalui oleh email tersebut.
  • Sayangnya jarang sekali pengguna email melihat isi dari header email sehingga mereka mudah tertipu dengan email palsu.
  • Cara lain untuk memastikan bahwa email berasal dari orang yang bersangkutan adalah dengan menggunakan digital signature
  • Digital Signature adalah salah satu teknologi yang digunakan untuk meningkatkan keamanan jaringan.
  • Digital Signature memiliki fungsi sebagai penanda pada data yang memastikan bahwa data tersebut adalah data yang sebenarnya (tidak ada yang berubah).


Mirza khamali , Mahasiswa Magister Ilmu Komputer , Universitas Budi Luhur

Wednesday, July 24, 2019

Tujuan Dan Keamanan Menggunakan JWT Token


JSON Web Token (JWT) merupakan access token dengan format JavaScript Object Notation. Token tersebut digunakan sebagai autentikasi token pada clientserver. Token JWT didesain ringkas dan urlsafe.
JWT tersusun atas 3 bagian yaitu header,payload dan signature. Bagian header berisi informasi tentang signature JWT untuk diproses validasi JWT. Payload pada JWT merupakan data aplikasi dimasukkan kedalam JWT. Pada Signature JWT digunakan untuk membuat nilai digest dari header dan payload. Bentuk akhir dari token JWT berupa string yang menggunakan encoding base64url. Berikut Structure JWT Token.


Mekanisme autentikasi dilakukan dengan memberikan data kredensial client kepada server untuk diidentifikasi kemudian apabila berhasil melakukan autentikasi maka diberikan sebuat token yang digunakan untuk melakukan request terhadap resource yang tersedia pada sisi server. Gambar Berikut Proses Autentikasi menggunakan JWT Token.


Tujuan JWT Token :
  • Untuk mengamankan proses autentikasi dengan cara mengenarate token.
  • Token dapat saja kedaluwarsa setelah beberapa waktu. Jadi pengguna nantinya akan diminta untuk masuk (log in) sekali lagi. Dimana hal ini dapat membantu mengamankan transaksi yang dilakukan.
  • Performance saat proses login karena selama masih menggunakan App atau api yang sama, token bisa digunakan sebelum proses jangka waktunya habis.

Tuesday, June 25, 2019

Keamanan Database



Berkembangnya pengolahandata,tidak jarang satu aplikasi menggunakan database yang sama untuk aplikasi yang lainnya. Jalan yang bisa ditempuh adalah dengan cara mengkopi database yang dibutuhkan tersebut dari satu aplikasi ke aplikasi yang lain. Hal ini merupakan jalan pintas, agar aplikasi yang membutuhkan data tadi bisa dioperasikan. Begitu seterusnya sehingga kegiatan kopi database merupakan suatu kebutuhan dari aplikasi tersebut.
Melihat kondisi diatas, maka keamanan data menjadi suatu hal yang sangat penting. Karena bukan hal yang mustahil bahwa data yang dipertukarkan akan disalahgunakan oleh pihak-pihak yang tidak bertanggung jawab untuk memenuhi kebutuhan pribadi mereka.


Penyalahgunaan Database :
  1. Tidak disengaja, jenisnya :
·        kerusakan selama proses transaksi
·        anomali yang disebabkan oleh akses database yang konkuren
·        anomali yang disebabkan oleh pendistribuasian data pada beberapa komputer
·        logika error yang mengancam kemampuan transaksi untuk mempertahankan konsistensi database.
  1. Disengaja, jenisnya :
·        Pengambilan data / pembacaan data oleh pihak yang tidak berwenang.
·        Pengubahan data oleh pihak yang tidak berwenang.
·        Penghapusan data oleh pihak yang tidak berwenang.


Keamanan Data :
1. Otorisasi :
  • Pemberian Wewenang atau hak istimewa (priviledge) untuk mengakses sistem atau obyek database
  • Kendali otorisasi (=kontrol akses) dapat dibangun pada perangkat lunak dengan 2 fungsi :
  • Mengendalikan sistem atau obyek yang dapat diakses
  • Mengendalikan bagaimana pengguna menggunakannya
  • Sistem administrasi yang bertanggungjawab untuk memberikan hak akses dengan membuat account pengguna.

2. Tabel View :
  • Merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.
3. Backup data dan recovery :

Backup : proses secara periodik untuk mebuat duplikat ari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.

Recovery : merupakan upaya uantuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.

4. Kesatuan data dan Enkripsi :

  • Enkripsi : keamanan data
  • Integritas :metode pemeriksaan dan validasi data (metode integrity constrain), yaitu berisi aturan-aturan atau batasan-batasan untuk tujuan terlaksananya integritas data.
  • Konkuren : mekanisme untuk menjamin bahwa transaksi yang konkuren pada database multi user tidak saling menganggu operasinya masing-masing. Adanya penjadwalan proses yang akurat (time stamping).




Keamanan pada Penggunaan SSH


Nama : Mirza Khamali , Mahasiswa : Pasca Sarjana Universitas Budi Luhur

SSH (Secure Shell) merupakan aplikasi klien dan server yang menyediakan secure remote login malalui internet maupun jaringan yang tidak terpercaya ( untrusted network ). Contoh Koneksi yang menggunakan SSH.


SSH bertujuan untuk menggantikan rsh, rlogin, rcp dan protokol telnet. SSH menggunakan protokol berbasis paket biner yang dapat bekerja pada semua lapisan transport yang mampu melewatkan data biner. SSH tersedia sebagai versi komersial dan versi gratis. Untuk versi gratis terdapat beberapa pilihan seperti OpenSSH (Unix,Windows) , LSH (Unix), PuTTY (Windows), Okhapkin’s port of SSH1 (Windows), MacSSH (Macintosh), TeraTerm (Windows), MindTerm (Unix,Windows), NiftyTelnet 1.1 SSH (Macintosh). Sedangkan untuk versi komersial SSH Communication Security (Unix,Windows), F-Secure SSH (Unix,Windows), Secure CRT, SecureFX (Windows), VShell (Windows).


Kenapa SSH diamankan? 

Karena settingan awal dan default pada ssh itu masih menjadi incaran empuk untuk penyerangan dari orang-orang, contoh macam-macam serangan ke ssh dictionary attacks , brute attach dll. Bagaimana jika ada seseorang yang bisa masuk ke ssh server maka orang tersebut dapat masuk ke server dan bisa akses ke directory komputer. Jika anda yang menjadi seorang admin server atau menjadi bagian team infra akan berasa malu kepada perusahaa anda, jika perusahaan anda mengetahui hal ini. Namun jika perusahaan anda tidak mengetahui telah terjadi penyusupan terhadap server tidak jadi masalah, tetapi masalah akan timbul jika penyusup tersebut malakukan hal-hal yang tidak diinginkan misalnya merubah konfigurasi system sehingga server anda bermasalah dan masih banyak kemungkinan lainnya.
Berikut ini adalah beberapa cara yang dapat dilakukan untuk meningkatkan keamanan SSH, yaitu :
  1. Gunakan password yang baik dan aman, karena hal ini sangat berpengaruh terhadap keamanan ssh. Bayangkan saja jika anda menggunakan user “admin” dan passwordnya “admin”, user dan password seperti ini sangat umun dan mudah ditebak. Sebaiknya gunakan kombinasi huruf, angka dan symbol pada password anda.
  2. Melarang root login via SSH. Hal ini dilakukan karena jika password root dapat dibobol maka penyusup dapat dengan mudah melakukan segala hal di dalam computer kita.
  3. Mengubah default port ssh 22  ke port lain, misalnya port 1138.
  4. Secara default ssh mengijinkan semua user untuk login via ssh. Kita dapat mengaturnya agar hanya user tertentu saja yang dapat login. Misalnya kita hanya mengijinkan usera yang dapat login via ssh.
  5. Batasi pengakses dengan hanya mengijinkan IP tertentu yang dapat mengakses computer via ssh. Caranya dengan mengatur konfigurasi pada /etc/hosts.deny untuk mangatur IP yang tidak diijinkan meremote dan /etc/hosts.allow untuk mengatur IP untuk yang diijinkan untuk meremote.
  6. Menginstall denyhosts. Jika kita mempunyai sebuah server/komputer dengan IP public, server/komputer ini sangat rentan terhadap serangan dari luar. Salah satu serangannya, biasanya dilakukan dengan memaksa masuk ke server (login) dengan kombinasi username dan password yang berbeda-beda secara berulang-ulang. Denyhosts ini akan memblok IP yang gagal melakukan log in ke komputer/server dengan batasan beberapa kali percobaan. Alamat IP tersebut otomastis akan dimasukan ke dalam file /etc/hosts.deny. Salah satu kelebihan denyhosts adalah aplikasi ini dapat mengirim report melalui email.

Wednesday, May 29, 2019

Keamanan Web Wervices



Kemanan Web Service adalah sistem pengamanan pada user akses atau integrase sistem akses ke web service tersebut.
Dengan kemudahan integrasi antar Web Service, yang menjadi masalah adalah memastikan AUTHN (otentikasi) dan AUTHZ (otorisasi) yang tepat untuk akses web service tersebut.Web Service dapat dibuat hanya memberikan akses pada web service tertentu atau module terntu "perlu memiliki hak akses" berdasarkan AUTHN dan AUTHZ yang tepat. Skema AUTHN yang tepat memungkinkan pembuat web service (Web Service atau layanan) untuk mengidentifikasi pengguna dengan benar (user atau aplikasi yang mengakses) dan untuk mengevaluasi tingkat akses mereka (authz). Dengan kata lain, dapatkah user menggunakan metode akses tertentu (logika tertentu) berdasarkan akses/kredensial yang diberikan ?


Metode yang paling sering digunakan untuk otentikasi dan otorisasi termasuk

  • Static strings : yaitu kata sandi yang disediakan oleh Web Service kepada user akses.
  • Dynamic tokens: yaitu metode pemberian token dengan memberikan waktu akses dari layanan otentikasi.
  • User-delegated tokens: yaitu token OAuth yang diberikan untuk otentikasi pengguna/user.

Metode di atas memberikan tingkat keamanan yang berbeda dan kemudahan integrasi. Seringkali, metode integrasi yang mudah akan menggunakan model keamanan terlemah.

Static strings

Dalam metode static strings, user pengguna atau klien Web Service embed string sebagai token setiap memanggil web service. Metode ini sering disebut sebagai otentikasi dasar. "Dari sudut pandang keamanan, otentikasi dasar tidak terlalu bagus dari segi keamanan. Ini berarti mengirim kata sandi pengguna melalui jaringan dalam teks untuk setiap halaman yang diakses (kecuali protokol tingkat rendah yang aman, seperti SSL, digunakan untuk mengenkripsi semua transaksi Dengan demikian, pengguna sangat rentan terhadap paket sniffer di internet”.

Dynamic tokens

Ketika Web Service aksesnya hanya menggunakan dynamic tokens, yaitu memberikan waktu kadaluarsa yang di embed ke token. Token memiliki waktu kadaluarsa akses yang di sebut The token has a time to live (TTL) jika tokennya kadaluarsa untuk akses user harus mendapatkan token baru. Metode Web Service memiliki algoritma pemeriksaan waktu kadaluarsa, dan jika token kadaluarsa, permintaan untuk akses ke web service tidak bisa dilakukan. "Contoh token tersebut adalah JSON Web Token. Klaim" exp "(waktu kedaluwarsa) mengidentifikasi waktu kedaluwarsa pada atau setelah mana JWT TIDAK HARUS diterima untuk diproses."

User-delegated token

Jenis token ini digunakan dalam sistem di mana aplikasi perlu mengakses Web Service dengan user pengguna aplikasi itu. Yaitu dengan menggunakan ID pengguna dan kata sandi ke aplikasi, pengguna memberikan token yang memberikan izin pengguna untuk aplikasi akses ke Web Service.
Otorisasi OAuth 2.0 untuk memperoleh akses terbatas ke HTTP Service, baik atas nama pemilik/owner dengan mengatur persetujuan akses, atau dengan memungkinkan aplikasi untuk mendapatkan akses atas namanya sendiri.

References


Tuesday, April 30, 2019

Keamanan Website


Web adalah mempresentasikan informasi dalam bentuk teks, gambar, suara, dll dalam bentuk hypertext dan dapat diakses oleh perangkat lunak yang disebut browser.  Web Browser  adalah program / aplikasi yang digunakan untuk membuka halaman web. Dan Web Server  adalah perangkat lunak server yang berfungsi menerima permintaan HTTP /HTTPS dari klien dan mengirimkan hasilnya dalam bentuk halaman web (dokumen HTML) .




Cara mengamankan Web dari sudut pandang sistem:

  • Mengamankan server yang memberikan konten kepada user melalui Web.
  • Mengamankan transportasi informasi antara user dan server melalui Web.
  • Mengamankan komputer user dari serangan melalui koneksi Web.

  • User mengakses  website berupa URL melalui Web Browser (media untuk menuju URL yang diakses).
  • Web Browser  mengirimkan permintaan berupa HTTP Request kepada Web Server melalui layer TCP/IP.
  • Web Server memberikan Web Files yang di-request (jika ada) melalui HTTP  Response  melalui layer TCP/IP.
  • Web Browser menerima  Web Files, dan kemudian dikirimkan kepada User berupa Display.
Penanganan Ancaman Pada Web
  • Mencegah user yang tidak sah untuk mengakses data sensitif

  1. Otentikasi: mengidentifikasi user untuk menentukan apakah mereka adalah orang yang berwenang
  2. Akses kontrol: mengidentifikasi sumber daya yang membutuhkan perlindungan dan siapa saja yang  memiliki akses kepada mereka

  • Mencegah penyerang mencuri data selama transmisi yaitu dengan cara melakukan enkripsi (biasanya dengan Secure Sockets Layer)
  • Mengumpulkan informasi user ID dari end user ("log in") yaitu biasanya melalui dialog / antarmuka browser , informasi user ID biasanya mengacu pada username dan password.
  • Memindahkan  informasi user ID ke server web Tidak aman  (HTTP) maupun aman (HTTPS = HTTP melalui SSL)
  • Verifikasi ID dan password -> Realms menyimpan username, password, dll, dapat diatur dengan cara LDAP, RDBMS, dll dan Validasi: cek di server web jika user ID & password match dengan yang ada di Realms.
  • Menjaga otentikasi user sebelumnya untuk operasi HTTP selanjutnya


.