Keamanan
Jaringan Komputer
Nama
|
:
|
Aulia Akbar
|
NIM
|
:
|
064.13.016
|
Jurusan
Teknik Informatika
Fakultas
Teknologi Informasi
Universitas
Trisakti
2017
A. PENDAHULUAN
Saat ini adalah era information-based
society dimana nilai informasi sangat penting dan menuntut kemampuan
untuk mengakses dan menyediakan informasi secara cepat dan akurat menjadi
sangat esensial bagi setiap organisasi.
Infrastruktur jaringan komputer, seperti LAN
dan Internet, memungkinkan untuk menyediakan informasi secara cepat, sekaligus
membuka potensi adanya lubang keamanan (security hole) atau vulnerability dari
komponen-komponen yang menjaga agar nilai informasi tersebut tetap‘aman’.
Didalam tulisan ini akan dibahas item-item apa
saja yang dilakukan dalam menguji (test penetrasi) tingkat keamanan sistem
aplikasi komputer. Hal ini berdasarkan pengalaman penulis pada proyek-proyek
TI.
Seperti diketahui bahwa teknologi serta teknik
ancaman berubah sepanjang waktu, oleh sebab itu item-item kerentanan dan risiko
keamanan sistem yang diuraikan ini adalah relatif yang diketahui sampai dengan
saat ini. Sehingga kerentanan dan risiko dimasa datang untuk hal yang sama
dapat berubah.
B. KONFIGURASI SISTEM APLIKASI
Dalam kasus ini, pengujian (test penetrasi)
tingkat keamanan adalah pada sistem aplikasi komputer yang dapat digambarkan
pada diagram Use Case dibawah ini.
Gambar 1. Use Case Sistem Aplikasi
Sedangkan deployment sistem
aplikasi memiliki tipikal konfigurasi seperti gambar dibawah.
Gambar 2. Konfigurasi Deployment Sistem
Aplikasi
C. ITEM PENGUJIAN (PENETRASI TEST) SISTEM APLIKASI
Pembahasan berikut adalah uraian setiap item
pengujian atau penetrasi test kasus aplikasi ini untuk mengungkap
kemungkinan vulnerability yang ada.
1. Password sent in Plain Text
Password yang tidak dienkripsi pada saat proses
login (pengiriman ke server untuk di otentikasi) dapat menimbulkan kerentanan
terhadap serangan (penyadapan) dengan teknik MitM (Man-in-the-Middle) yang
mengakibatkan hacker dapat dengan mudah melihat kerahasiaan (username &
password) user yang sedang login. Apabila hacker bisa mendapatkan password
untuk masuk ke dalam aplikasi maka ia dapat memperoleh akses terhadap informasi
sensitif, memanipulasi data dan informasi yang ada di dalam aplikasi, serta
melakukan tindakan-tindakan lain yang lebih membahayakan.
2. Unrestricted Access (Client Page)
Biasanya pada web page setelah halaman login
berhasil maka akan muncul halaman berikutnya dimana data URL akan muncul
pada address bar browser. Pada titik itu pengguna dapat meng-copy data
URL tersebut dan dapat menyalinnya kembali ke address bar di
lain waktu sehingga tahap login untuk masuk ke aplikasi web dapat dilewati
(mengakses halaman aplikasi web tanpa harus melakukan login). Apabila bisa
masuk ke dalam aplikasi tanpa melakukan login maka hacker dapat memperoleh
akses terhadap informasi sensitif, memanipulasi data dan informasi yang ada di
dalam aplikasi, serta melakukan tindakan-tindakan lain yang lebih membahayakan.
3. Un-expired Token
Token digunakan untuk proses aktivasi user
aplikasi dan untuk mempertegas keabsahan user selain penggunaan
username-password. Dalam hal token yang tidak memiliki waktu kadaluarsa (dapat
menggunakan token yang telah digunakan sebelumnya) maka kegiatan transaksi
tidak dapat dimonitor atau diawasi. Vulnerability ini
menjadikan aplikasi tidak aman karena dapat di akses oleh siapapun selain pihak
pemilik atau penanggungjawab dari pengguna aplikasi ini.
4. URL Manipulation on file host.ini or info.ini
URL yang diisi pada file host.ini atau info.ini yang
biasanya dimaksudkan untuk mempermudah user untuk dapat mengakses langsung ke
situs yang dituju bila menggunakan browser dapat dimanipulasi untuk berkunjung
ke situs hasil phising oleh pihak yang tidak berhak dilokasi
browser tersebut. Manipulasi oleh hacker juga dapat dilakukan melalui
cara Social Engineering terhadap user yang dimaksudkan untuk
mendapatkan/mengganti informasi yang sensitif tersebut. Kemudian ketika hacker
mendapatkan informasi-informasi sensitif maka bisa digunakan untuk melakukan
serangan-serangan lebih lanjut.
5. File Disclosure in XAMPP
XAMPP adalah paket sebuah Web Server (Apache
Web server, DBMS MySQL) yang dipakai oleh kasus aplikasi ini. XAMPP memiliki celah
yang dapat mengizinkan Attacker untuk men-disclosure suatu file secara remote.
Hacker yang berhasil menemukan celah ini dapat melihat informasi mengenai
penggunaan hal-hal yang mendukung berjalannya aplikasi dan mencari potensi
celah keamanan yang bisa diexploitasi pada aplikasi yang bersangkutan.
Informasi yang diperoleh bisa digunakan oleh hacker untuk melancarkan serangan
yang lebih berbahaya.
6. XSS on Client Page and on XAMPP Page
XSS (Cross-Site Scripting) adalah serangan
dengan melakukan injeksi script hacker dengan mengirimkan ke web site (web
server) sebagai input karakter. Kemudian script malicioustersebut
diakses oleh user yang berhak yang kemudian running di mesin
user, dimana akan meng-expose cookie dan mengambil
informasi-informasi rahasia dari user yang bersangkutan. XSS juga dapat
dilakukan dengan menginjeksi URL, dimana nanti dapat melakukan pengubahan
terhadap informasi. Hacker yang berhasil menemukan celah ini dapat mengubah
tampilan aplikasi (tampilan informasi penting) dan memungkinkan untuk melakukan
penipuan terhadap pelanggan. Informasi-informasi rahasia dari XSS dapat
digunakan untuk melakukan serangan-serangan lebih lanjut.
7. Apache Vulnerability: mod_isapi
Adalah celah yang memanfaatkan ekstensi pada
Apache yang melayani internet server (ISAPI.dll modules) untuk Host Microsoft
Windows untuk mendapatkan akses administrator. Hacker yang berhasil meng-exploitasi celah
ini akan mendapatkan akses Administrator dari server web aplikasi yang
bersangkutan sehingga hacker dapat memegang kendali penuh terhadap aplikasi
web.
8. SQL Injections on Administrtor Page
SQL Injection adalah sebuah aksi hacking yang
dilakukan di aplikasi (web page) client dengan cara memodifikasi
perintah/script SQL yang ada di memori aplikasi (web page) client. Ini adalah
teknik mengeksploitasi aplikasi web yang didalamnya menggunakan database untuk
penyimpanan data. Yaitu dengan menyisipkan dari perintah SQL kedalam suatu
parameter maupun suatu form (dgn karakter khusus). Hacker juga dapat memanfaatkan
pesan-pesan error dari SQL server untuk mengetahui struktur
database yang digunakan dan berpotensi untuk merusak database dari aplikasi web
tersebut. Jika celah ini berhasil dieksploitasi maka hacker dapat merubah
struktur dan atau data di database.
9. Multiple Login on Client Page
Adalah Login yang menggunakan user-password
yang sama tetapi dengan browser atau PC yang berbeda pada halaman client.
Ketika hacker dapat mencuri user-password dengan cara social
engineering maka ia dapat mengakses account yang sedang digunakan oleh
seorang user tanpa diketahui oleh user bersangkutan. Maka hacker dapat leluasa
mengakses informasi sensitif, memanipulasi data dan informasi serta melakukan
tindakan-tindakan lain yang lebih membahayakan.
10. Unlimited
Login Attemp on Client Page
Adalah percobaan Login dari user yang tidak
terbatas ketika user mencoba-coba kombinasi dari username-password nya. Hal ini
bisa digunakan oleh hacker untuk menebak-nebak username-password secara manual
maupun dengan aplikasi brute force nya untuk mendapatkan akses
illegal ke dalam aplikasi. Apabila bisa masuk kedalam aplikasi maka hacker
dapat leluasa mengakses informasi sensitif, memanipulasi data dan informasi
serta melakukan tindakan-tindakan lain yang lebih membahayakan
11. Non-Priviledge
Account Availability on phpmyadmin
Adalah account dengan username admin tanpa
password dimana merupakan default instalasi saat menginstall XAMPP (MySQL) yang
merupakan fasilitas consol untuk administrator pada XAMPP
(halaman web phpmyadmin). Halaman web phpmyadmin ini dapat diakses dari
internet. Ketika hacker dapat mengakses halaman login aplikasi database
(halaman phpmyadmin) tanpa halangan maka memungkinkannya untuk melakukan brute
force terhadap otorisasi username-password pada software database. Jika
hacker bisa mengakses database, wewwenangnya sangat minim. Namun walaupun
hacker hanya bisa mengakses akun yang tidak memiliki wewenang terhadap
aplikasi, akses terhadap direktori aplikasi database ini sendiri sudah
merupakan celah yang memungkinkan hacker untuk membuat database dan melakukan
input/upload ke mesin database, sehingga mendapatkan akun yang memiliki
wewenang.
12. Payment
Receipt can be Manipulated
Penyerang dapat mengubah atau memanipulasi data
struk transaksi yang dicetak oleh sistem dimana hacker berhasil meng-intercept data
dari input form maupun input data. Hacker yang
dapat mencetak struk transaksi dengan data palsu (tidak sah) dapat merugikan
banyak pihak.
13. Webalizer
(on XAMPP) can be accessed in Public
Webalizer adalah fasilitas XAMPP untuk melihat
statistik pengunjung yang dapat diakses dari IP public. Hacker yang dapat
melihat informasi mengenai penggunaan hal-hal yang mendukung berjalannya
aplikasi dan mencari potensi celah keamanan yang bisa dieksploitasi pada
aplikasi yang bersangkutan. Informasi yang diperoleh bisa digunakan oleh hacker
untuk melancarkan serangan yang lebih berbahaya.
D. SERVER HARDENING
Pembahasan berikut adalah uraian setiap item
pengujian celah keamanan sistem yang berkaitan dengan perangkat keras server dalam
kaitannya dengan Sistem Operasi (Linux CENTOS) dan Aplikasi sekuriti lainnya
atau disebut Server Hardening. Adapun standard Server
Hardening ini mengikuti SANS (SysAdmin, Networking and Security)
Institute - www.sans.org.
1. System patches
System patches sedapat mungkin yang terpasang adalah
mengikuti versi yang terbaru. System patches terbaru biasanya
sudah menutup vulnerability yang ditemukan.
2. Disable Unnecessary services
Mematikan services yang tidak
diperlukan akan membuat sistem aplikasi lebih aman. Dalam kasus ini services
seperti Proftpd, cupsd, sendmail, rpcstatd seharusnya tidak diperlukan dan
services tersebut dapat dimanfaatkan oleh hacker dari remote.
3. Check security on Key Files
Dalam SO Linux, Key Files digunakan sebagai
pengganti password untuk otentikasi komunikasi protokol SSH. Key Files yang
tidak terproteksi (dapat diakses oleh user yang tidak berhak) menyebabkan celah
keamanan sistem.
4. Default password policy
File Login.defs seharusnya diisi sesuai dengan
password policy sekuriti organisasi. Misal: PASS_MAX_DAYS 60; PASS_MIN_DAYS 0;
PASS_MIN_LEN 8; PASS_WARN_AGE 7.
5. Limit root access using SUDO
Sebaiknya user root tidak digunakan
(menggunakan SUDO) dimana hal ini adalah default dari Sistem Operasi Linux.
Untuk mengijinkan user biasa mengeksekusi sebagai super user bisa dilakukan
dengan mengedit file /etc/sudoers.
6. Only allow root to access CRON
Hanya user root (superuser atau sekelas root)
yang boleh mengakses CRON (a time-based job scheduler).
7. Warning banners
Adalah peringatan yang muncul setelah Login (ke
sistem komputer) berhasil kepada users yang sah agar tidak melakukan tindakan/
aksi yang melanggar ketentuan legalitas sehingga dirinya ataupun orang lain
dapat melakukan tindakan/ aksi yang ilegal ke sistem komputer tersebut.
8. Remote access and SSH basic settings
Pengaturan setting untuk penggunaan SSH pada
server Linux hendaknya tidak minimum atau tidak default. Misalnya
dapat di-setting : PermitRootLogin no; PermitEmptyPassword no; IgnoreRhost yes;
RhostsRSAAuthentication no; HostBasedAuthentication no; LoginGraceTime 1m;.
9. Host-based Firewall protection with iptables
Kejadian koneksi di Firewall sebaiknya di-Logging (dicatat).
Hal ini dapat dilakukan dengan setting “-A RH-Firewall-1-INPUT –j LOG”.
10. Xinetd.conf & inetd.conf
Xinetd adalah eXtended interNET service daemon,
sebuah file konfigurasi yang aman sebagai pengganti dari inetd. Dengan
melakukan pengeditan pada /etc/inetd.conf (/etc/Xinetd.conf) maka dapat
mematikan services yang tidak digunakan dengan menambahkan tanda komentar (#)
pada awal baris. SO Linux yang hanya digunakan untuk aplikasi khusus umumnya
banyak services internet yang tidak digunakan, misalnya finger, telnet, ftp,
ssh, dll sehingga dapat dimatikan untuk mengurangi risiko keamanan sistem.
Untuk lebih amannya komunikasi dengan jaringan luar maka Xinetd (inetd) dapat
dibungkus dengan teknik TCPwrapper.
11. System logging
Syslog adalah mencatat segala kegiatan Sistem
Operasi. Catatan ini digunakan untuk kebutuhan audit, yaitu memeriksa sistem
jika dibutuhkan, misalnya jika terjadi kesalahan (error) maka administrator
dapat lebih mudah mencari sumber kesalahan karena informasinya tercatat dengan
rapi. Untuk membantu keperluan audit keamanan sistem maka Syslog sangat
membantu.
12. Backups
Demi menjaga kelangsungan operasional sistem
tetap berjalan seperti diharapkan maka fasilitas backup/restore sistem perlu
diaktifkan. Cracker biasanya menyerang sistem dengan menambah, mengubah file,
menginstall program, menghapus file atau program. Ketika pada titik dirasakan
sistem mengalami serangan cracker tersebut maka sistem bisa di pulihkan
(restore) ke keadaan sebelum serangan keamanan terjadi.
13. Integrity-checking software
Adalah sofware pemeriksa integritas sistem,
digunakan untuk memonitor perubahan yang terjadi pada sebuah sistem. Cracker
mungkin menambah, mengubah file atau hak akses file, menginstall program,
menghapus file atau program. Aplikasi Integrity-checking mengecek file atau
program dan membandingkannya dengan database sebelumnya yang dianggap sah oleh
administrator. Beberapa Integrity-checking software misalnya Tripwire, Aide,
Samhain.
14. Apache security
Beberapa hal untuk mengamankan Apache antara
lain: Buang module Apache yang tidak diperlukan dengan memberi tanda # pada
baris LoadModule; Samarkan identitias Apache (edit file httpd.conf dan setting
[ServerSignature off, ServerTokens Prod]); Pastikan Apache di-running oleh user
dan group tersendiri (edit httpd.conf dan setting misalnya [User aryonurutomo]
[Group aryonurutomo]); Disable fitur seperti direktori browsing, server side
includes, CGI execution, follow symbolic links, multiple options (edit httpd.conf
setting [Options –ExecCGI –FollowSymLinks –Indexes –dlsb]); Pastikan hanya root
yang punya akses penuh ke apache config dan binaries (chown –R root:root
/usr/local/apache, chmod –R o-rwx /usr/local/apache]; Jalankan Apache di Chroot
environment yang akan menempatkan proses Apache dalam lingkungan yang terbatas
dalam chroot, semua library yang dibutuhkan dipindahkan ke lingkungan chroot.
15. Apache Mod_security module
Mod_security memungkinkan peningkatan keamanan
secara keseluruhan pada server Apache dengan menyediakan pengaturan dan
konfigurasi tambahan. Modul software mod_security dapat diperoleh di http://modsecurity.org.
16. Xwindow
Pada kasus server Linux khusus untuk
menjalankan Apache dan aplikasi khusus, maka Xwindow pada server tidak
diperlukan. Nonaktifkan dan atau menghapus Xwindow dapat meningkatkan keamanan
dan kinerja. Edit /etc/inittab dan ubah run level ke 3 dan untuk menghapus
Xwindow ‘# yum groupremove “X Window System”’.
17. LIDS (Linux Intrusion Detection System (IDS))
Fungsi utama IDS melakukan mandatory access
control (MAC), a port scan detector, file protection and proses protection.
Sistem sebaiknya di-install LIDS atau Snort atau yang sejenis untuk membantu
menghadang serangan dan untuk keperluan audit keamanan sistem.
18. Email
Security
Jika disistem terdapat layanan email, maka
sebaiknya di-install aplikasi Email security.
19. File
Sharing
Jika disistem terdapat layanan File Sharing,
maka sebaiknya di-install aplikasi managemen File sharing.
20. Anti-Virus
Protection
Sebaiknya server diinstall aplikasi anti virus
guna menghindari terjadinya infeksi pada file. Jika mengikuti standart SANS
untuk aplikasi anti virus adalah antara lain Clamav, F-prot, Vexira
Demikian sedikit sharing pengalaman berkaitan dengan keamanan sistem aplikasi. Mungkin masih cukup banyak terdapat vulnerability lain yang belum sempat diungkap. Tulisan berikut akan membahas bagaimana mengatasi atau menutup celah keamanan (vulnerability) tersebut dan seberapa mudah/sulit hacker menembusnya serta bagaimana dampaknya terhadap organisasi jika vulnerability tersebut dapat ditembus. Jika tidak sempat maka bisa mengikuti pada kelas kuliah. Semoga bermanfaat.
DAFTAR PUSAKA
- Securing Your Network, Ido Dubrawsky, Syngress Publishing Inc, 2007.
- Cryptography and Network Security Principles and Practice, Willian Stallings, Prentice Hall, November 2005.
- Analisa Keamanan dan Vulnerabilitas Jaringan, Firrar Utdirartomo, Gava Media Yogyakarta, 2004.
- Sumber internet.
-http://aryonurutomo.blogspot.co.id/2012/02/aspek-aspek-pengujian-test-penetrasi.html