Archive for the ‘security’ Category

A brief overview of Firewalls

Tuesday, February 2nd, 2010

Sudah beberapa artikel tentang firewall saya tulis di sini, sepertinya kurang lengkap kalau belum dijelaskan sendiri mengenai firewall itu sendiri. Menurut Wikipedia, firewall didefinisikan sebagai berikut:

sebuah sistem atau perangkat yang mengizinkan lalu lintas jaringan yang dianggap aman untuk melaluinya dan mencegah lalu lintas jaringan yang tidak aman

Firewall sendiri utamanya digunakan untuk mengontrol akses atau lalu lintas jaringan antara segmen jaringan satu dengan yang lainnya. Contoh fungsi dari firewall adalah mengontrol akses dari jaringan eksternal (public network) ke jaringan internal (private network), atau juga bisa untuk membatasi akses antara jaringan internal dari dua divisi dimana informasi tidak boleh keluar dari masing – masing divisi tersebut. Beberapa fungsi dasar lain dari firewall antara lain : mengatur dan mengontrol lalu lintas jaringan, melakukan autentikasi terhadap akses, melindungi sumber daya dalam jaringan private, mencatat lalu lintas trafik dan kejadiannya.

Ada tiga jenis mendasar dari Firewall yang banyak digunakan saat ini:

* Packet Filtering
* Application Gateway Proxy
* Stateful Inspection

Packet Filtering Firewall memeriksa setiap paket yang melalui Firewall tersebut hingga layer Network (layer 3). Artinya bahwa Firewall ini tidak memeriksa data yang ada di layer atasnya (layer Application, Presentation, Session, and Transport). Packet Filtering Firewall melihat dan menentukan apa yang harus dilakukan terhadap paket tersebut sesuai dengan rule yang sudah ditentukan.  Jenis Firewall ini sangan populer karena sangat murah, transparan terhadap aplikasi, dan lebih cepat performanya daripada Firewall jenis  Application Layer Gateway. Namus sebagai trade-off nya, jenis ini hanya menyediakan keamanan tingkat rendah, sedikit lebih sulit dikonfigurasi, dan tidak memiliki kemampuan mendeteksi IP Spoofing. Jenis Firewall ini biasanya ditemui di perangkat router.

Application Layer Gateway, atau lebih sering dikenal sebagai Proxy Firewall, berfungsi pada layer Application. Tantangan yang dihadapi jenis Firewall ini adalah pertumbuhan jenis aplikasi yang memperkenalkan jenis – jenis layanan dan protokol baru. Sehingga jenis Firewall ini akan kesulitan untuk menangani hal tersebut diatas. Proxy Firewalls masih termasuk populer hingga saat ini karena menawarkan level sekuriti yang lumayan bagus, dan relatif murah. Namun, masing – masing layanan membutuhkan masing – masing application layer gateway yang berarti skalabilitasnya sangat besar. Penggunaan jenis ini sangat berpengaruh pada performansi dan juga memiliki kelemahan, bugs, atau exploit di level aplikasi dan operating system.

Stateful Inspection adalah jenis ketiga dari Firewall yang banyak digunakan saat ini. Stateful Packet Inspection (SPI) mengambil, menyimpan, dan memanipulasi informasi menyangkut semua layer komunikasi dan aplikasi. Jenis ini adalah yang paling kompleks, karena melakukan inspeksi mulai dari layer Network hingga layer Aplikasi. Firewall jenis ini mampu menjaga alur jejak langkah perjalanan setiap koneksi aktif, sehingga hacker akan kesulitan untuk menyisipkan paket data dari koneksi yang sudah terbentuk.

Firewall: DROP vs REJECT

Monday, January 11th, 2010

Many people advocate configuring packet filters with a mostly-closed policies that drop packets that they do not know to be safe. This leads to problems for users that are hard for them to diagnose while offering no additional security.

When a packet reaches the firewall, it is run against a set of rules. These rules may rely on existing state (eg. to match existing or related connections) or be stateless (eg. to match destination port 80). The rules determine an action to take for the packet, which can be one of:
:: ALLOW (aka ACCEPT)
Pemit a packet to traverse the firewall. This would be the behaviour if the firewall was not present.
:: REJECT
Prohibit a packet from passing. Send an ICMP destination-unreachable back to the source host [unless the icmp would not normally be permitted, eg. if it is to/from the broadcast address].
:: DROP (aka DENY, BLACKHOLE)
Prohibit a packet from passing. Send no response.

In the rules there is a choice of whether to REJECT or to DROP unwanted packets. When analysing this choice, we must consider negative and positive features for legitimate and illegitimate applications. The big difference between REJECT and DROP is that REJECT results in an ICMP error being returned.

Let’s consider the user first: Legitimate users
By REJECTing unknown packets, TCP aborts the connection and the application gets to know that the connection has failed after just one round-trip time. This allows the application attempting the connection to notify the user straight away. DROPping the packet will just cause TCP to retry the connection until the threshold for retranmission is exceeded. This should be at least 100 seconds. An experiment on Linux gives 0.01 seconds for a REJECT to give an application error from a TCP connection, but 189 seconds for DROP.

Now let’s consider hostile forces: Hostile users
A common reason for using DROP rather than REJECT is to avoid giving away information about which ports are open, however, discarding packets gives away exactly as much information as the rejection. With REJECT, you do your scan and categorise the results into “connection established” and “connection rejected”. With DROP, you categorise the results into “connection established” and “connection timed out”.

The most trivial scanner will use the operating system “connect” call and will wait until one connection attempt is completed before starting on the next. This type of scanner will be slowed down considerably by dropping packets. However, if the attack sets a timeout of 5 seconds per connection attempt, it is possible to scan every reserved port (1..1023) on a machine in just 1.5 hours. Scans are always automated, and an attacker doesn’t care that the result isn’t immediate.

A more sophisticated scanner will send packets itself rather than relying on the operating system’s TCP implementation. Such scanners are fast, efficient and indifferent to the choice of REJECT or DROP.

Hiding information about which ports are active requires making the server response indentical whether or not it offers a particular service. This is techically very difficult, and in some cases will be more error prone than actually providing the service!

Realistically, you could probably get away with accepting the connection for unknown ports, blackholing the data, then closing the connection after a timeout. However, that will cause problems with legitimate users if their application makes a connection to one of these ports.

Summary

REJECT DROP
Application connects to non-existent service Failure reported promptly to the user Applications pause for ages, then fail
Naïve network scanning with OS “connect” Scans are quick Scans are okay, provided that a timeout is set
Network scanning with a specialist program (eg. nmap) Scans are quick Scans are quick

Conclusion
DROP offers no effective barrier to hostile forces but can dramatically slow down applications run by legitimate users. DROP should not normally be used.

Shorewall Installation

Wednesday, January 6th, 2010

Hei all, continuing from last post about Shorewall now I’ll try to tell you all about how to install it. This installation consist of 2 installation, the first is Shorewall it self. Then the second is Webmin (Web GUI) for easily configuration purpose. In this case, I used Ubuntu Linux 9.10 Operating System. Before start the installation, you must set your apt source list to be enable connect to valid Ubuntu repository.

First step is you should go to your console terminal, then change to super user privileges.

meteor@galaxy:~$ sudo bash
[sudo] password for meteor:
root@galaxy:~#

Then run this command “apt-get install shorewall-common shorewall-shell” from your terminal, and please wait until all process finished

 root@galaxy:~# apt-get install shorewall-common shorewall-shell
Reading package lists... Done
Building dependency tree
Reading state information... Done
Suggested packages:
shorewall-doc
The following NEW packages will be installed:
shorewall-common shorewall-shell
0 upgraded, 2 newly installed, 0 to remove and 181 not upgraded.
Need to get 221kB/307kB of archives.
After this operation, 1.610kB of additional disk space will be used.
Get:1 http://kambing.ui.ac.id karmic/main shorewall-common 4.2.10-1 [221kB]
Fetched 221kB in 5s (40,6kB/s)
Prakonfigurasi paket ...
Memilih paket shorewall-common yang sebelumnya tidak dipilih.
(Sedang membaca basis data ...130042 berkas dan direktori telah terpasang.)
Sedang membuka paket shorewall-common (dari .../shorewall-common_4.2.10-1_all.deb) ...
Memilih paket shorewall-shell yang sebelumnya tidak dipilih.
Sedang membuka paket shorewall-shell (dari .../shorewall-shell_4.2.10-1_all.deb) ...
Processing triggers for sreadahead ...
Processing triggers for man-db ...
Sedang menyetel shorewall-common (4.2.10-1) ...

Sedang menyetel shorewall-shell (4.2.10-1) ...
root@galaxy:~#

Until this condition you’ve successfully install Shorewall on your machine. And now let’s install the Webmin as Configuration GUI tools. You should download its installer packet from Webmin official site and choose the suitable package with your system. In this case I use package that suitable for Ubuntu. After you download that file, just double-click that file and the installer is automatic run. Images below is screenshot the installation process.

#1 – Package Installer that already downloaded

#2 – Installation Confirmation

#3 – Administrative Grant Rights to Install Software

#4 – Installation on progress 1

#5 – Installation on progress 2 (Terminal view expanded)

#6 – Installation finished

After finish that process, you can test Webmin installation by opening it from your browser (ie, firefox) using this address https://localhost:10000/ If it’s installed properly, this screen below should displayed like this.

After that all installation process steps already done, and you can configure your Shorewall from this Webmin GUI to meet your requirements.

Note: login using your local username and password.

Kriptografi Simetris pada Smart Card

Monday, January 4th, 2010

Keuntungan penggunaan Smart Card dengan kemampuan pemrosesan yang dimilikinya adalah adanya kesempatan untuk mengimplementasikan mekanisme kriptografi (baik kunci maupun algoritma kriptografi) dalam Smart Card. Sehingga chip pada Smart Card dapat dipertimbangkan sebagai modul yang tahan terhadap serangan. Ada banyak algoritma kriptografi yang telah dikembangankan saat ini, namun yang banyak digunakan untuk kriptografi pengamanan di Smart Card adalah DES, Triple DES, AES, dan RSA. DES, Triple DES, AES adalah algoritma kriptografi dengan kunci simetris, sedangkan RSA adalah algoritma kriptografi dengan kunci asimetris. Perbedaan antara simetris dan asimetris terletak pada kunci yang digunakan untuk proses enkripsi dan dekripsi. Pada algoritma kriptografi simetris, kunci yang digunakan untuk enkripsi dan dekripsi adalah sama, sedangkan pada algoritma kriptografi asimetris, kunci yang digunakan untuk enkripsi berbeda dengan kunci yang digunakan untuk dekripsi. Masing – masing akan dibahas di tulisan ini.

Yang akan kita bahas kali ini adalah kriptografi dengan kunci simetris, sedangkan untuk kriptografi dengan kunci asimetris akan kita bahas pada artikel yang lain. Mekanisme yang paling sederhana adalah penggunaan kunci umum dimana kunci umum ini sudah dibangun sebelumnya dan diketahui oleh kedua belah pihak, dalam hal ini adalah Smart Card dan Terminal. Untuk memastikan valid atau tidaknya Smart Card, terminal akan mengirimkan random number ke Smart Card. Smart Card akan mengembalikan random number tersebut dengan kondisi sudah terenkripsi oleh algoritma tertentu (yang disepakati oleh Smart Card dan Terminal) menggunakan kunci umum. Ketika diterima oleh terminal, informasi tersebut akan didekripsi menggunakan algoritma dan kunci umum yang sama (seperti yang digunakan saat mengenkripsi). Jika hasil yang didapat sama, maka Smart Card tersebut adalah valid. Namun, kelemahan dari mekanisme ini adalah jika terjadi serangan terhadap salah satu dari Smart Card atau terminal maka kunci umum akan bisa diketahui. Ilustrasi mekanisme tersebut bisa dilihat pada gambar dibawah ini.

Selanjutnya perbaikan dari mekanisme tersebut diatas adalah dengan menggunakan kumpulan kunci yang tersimpan di di terminal untuk mendapatkan tingkat keamanan yang terpisah. Pada kondisi diatas, jika terjadi serangan pada Smart Card, maka yang akan terbuka hanyalah kunci yang ada di Smart Card saja. Namun jika terjadi serangan pada terminal, maka semua kunci akan bisa terbuka. Sehingga terminal menjadi point vital yang harus mampu menjaga kunci dengan baik. Mekanisme tersebut diilustrasikan pada gambar di bawah ini.

Mekanisme yang lain yang dianggap memiliki tingkat keamanan lebih tinggi adalah dengan menggunakan kunci utama yang tersimpan di terminal. Sedangkan kunci yang tersimpan di Smart Card adalah kunci – kunci turunan (derrived) yang diturunkan dari kunci utama. Kali ini Terminal juga menjadi bagian vital dalam management key, namun walaupun begitu, masing – masing Smart Card masih memiliki kunci turunan yang unik sehingga kegagalan pada 1 Smart Card tidak berarti kegagalan pada semua Smart Card. Sebagai tambahan, ID Smart Card digunakan untuk mendapatkan nilai kunci turunan di masing – masing Smart Card.

Shorewall – Shoreline Firewall

Saturday, November 28th, 2009

Last week, i’ve tried to install a software based firewall on Ubuntu. It used to simulated network segmentation for access and security. For this security simulation test, I’ve chosed a software based firewall called Shorewall and use virtual workstation using VirtualBox. Shorewall was installed on my laptop as VirtualBox host PC. And for client and server, I used 2 virtual Windows XP Operating System.

The Shoreline Firewall, more commonly known as “Shorewall”, is high-level tool for configuring Netfilter (the packet filter facility builtinto the 2.4 and later Linux kernels). You describe your firewall/gateway requirements using entries in a set of configuration files. Shorewall reads those configuration files and with the help of the iptables, iptables-restore, ip and tc utilities, Shorewall configures Netfilter and the Linux networking subsystem to match your requirements. Shorewall can be used on a dedicated firewall system, a multi-function gateway/router/server or on a standalone GNU/Linux system. Shorewall does not use Netfilter’s ipchains compatibility mode and can thus take advantage of Netfilter’s connection state tracking capabilities.

Shorewall use zone concept firewall, it’s means that shorewall views the network where it is running as being composed of a set of zones. Shorewall has a default policy that all defined rules should based on it. That default policy ruled out all of zone that defined before. All other main feature that included on Shorewall is:

  • Uses Netfilter’s connection tracking facilities for stateful packet filtering.
  • Can be used in a wide range of router/firewall/gateway applications.
  • Supports centralized firewall administration
  • Flexible address management/routing support
  • and much more as listed on the official site

And maybe i’ll post my test result for this Shorewall Configuration that separate 2 network segment. cekidot aja yah… :D

Terminologi Dasar Security System

Saturday, September 26th, 2009

Dalam dunia security system , banyak sekali istilah atau terminologi dasar yang harus dimengerti dan dipahami oleh kita yang sedang mempelajari dan mendalami ilmu tentang security system , terutama newbie seperti saya. Sehingga ketika saling berdiskusi nengenai security system , bisa saling nyambung.

Dalam security system , beberapa terminologi yang wajib diketahui dan disamakan persepsinya adalah mengenai threat , vulnerability , risk , asset , attack , exploit , dan countermeasure . Masing-masing terminologi tersebut akan kita bahas selanjutnya.

Vulnerability adalah kelemahan atau celah keamanan yang terdapat baik pada software, hardware, atau prosedur yang mungkin akan menyediakan pintu bagi orang lain untuk masuk ke komputer atau jaringan dan mendapatkan akses secara tidak sah ke sumber daya.

Threat adalah potensi bahaya pada sumber daya, baik data maupun sistem, yang muncul akibat dari adanya vulnerability tersebut diatas. Threat bisa berupa seseorang, atau sesuatu yang bisa disebut sebagai threat agent.

Risk adalah dampak secara bisnis yang timbul dari tindakan threat agent dalam hal pemanfaatan vulnerability. Semakin banyak port yang terbuka pada firewall, maka akan semakin tinggi peluang terjadinya risk.

Asset adalah sumber daya baik berupa data, informasi, atau sistem yang dijaga keamanannya. Asset ini harus dijaga confidentiality, integrity, dan availability nya. Karena jika salah satu saja tidak terpenuhi, maka asset tersebut tidak lagi mempunyai arti.

Exploit adalah software, tools, ataupun teknik yang digunakan untuk melakukan serangan (attack) pada sebuah elemen keamanan.

Yang terakhir adalah countermeasure , yaitu langkah atau tindakan untuk memitigasi resiko yang mungkin muncul. Countermeasure bisa berupa software, hardware, atau prosedur yang bisa mengurangi adanya vulnerabilities. Dari semua instilah tersebut diatas, bisa digambarkan relasinya seperti pada gambar di bawah ini.

Oke, semoga sedikit ilmu tadi bisa jadi gerbang pembuka kita untuk masuk lebih dalam ke dunia security sistem .

Hacked

Tuesday, September 22nd, 2009

Beberapa hari yang lalu saya sangat kaget saat membuka rumah saya ini. Karena setelah hampir 1 bulan ga pernah mampir, ternyata pas dibuka halaman depannya sudah berubah. Hehehe.. Ya, bener banget ternyata situs ini kena deface oleh salah seorang yang ngakunya hacker indonesia.

Saya kurang tahu pasti entah dari mana sesorang tersebut bisa masuk ke rumah saya, apakah dari tempat hosting saya, atau karena hole yang muncul dari versi wordpress saya, atau juga karena perilaku saya yang kurang aware terhadap security seperti keluar dengan tidak logout terlebih dahulu yang dari semua tadi bisa menjadi vulnerability bagi rumah saya.

Terima kasih banyak atas peringatannya, karena dengan begini saya baru sadar bahwa sebenarnya ada celah keamana yang saya abaikan, sehingga orang lain bisa masuk dan mengakses rumah saya.