PEMETAAN KOMPONEN FIREWALL DENGAN DIAGRAM UML 2.0 DAN SPESIFIKASI OCL 2.0 I Made Murwantara, S.Si, M.Kom*, Dr.(Eng) Pujianto Yugopuspito", Astidi Karnadi, S.Kom"' Abstract The focus of this paper is to modeling some Unified Modeling Language (UML) diagrams and defining their procedural information in the precise way that will represent the description and behavior of a firewall and its components Firewall's components will be in charged for traffic from outside to inside network and vice versa. The UML diagrams are made to show all of the interactions that happened among firewall's components when they are all joined into completed firewall architecture. The Object Constraint Language (OCL) is used to make the model more rigorous in a form of textual language that allows the expression of constraint in a system that can not be expressed using standard diagrammatic notations. 1. LATAR BELAKANG Firewall mempunyai bermacam-macam arsitektur, dari yang sederhana sampai yang memerlukan adanya jaringan tambahan untuk sektor keamanan. Berdasarkan desain dari arsitektur firewall yang sudah ada, akan dilakukan translasi ke dalam bahasa pemodelan dan analisis kegiatan transaksi oleh firewall tersebut. Proses translasi dilakukan dengan menggunakan bahasa pemodelan Unified Modelling Language (UML) 2.0 karena UML merupakan sebuah bahasa pemodelan standar yang berguna untuk mengabstraksikan suatu masalah struktural sehingga memperjelas gambaran awal dari masalah yang akan diselesaikan. Selain itu UML juga membangun model secara sistematik dan konsisten, baik dalam perancangan sistem secara keseluruhan maupun sebagian. Tahap selanjutnya dengan menggunakan Object Constraint Language (OCL) akan dideskripsikan tingkah-laku sebuah jaringan komputer dan semua komponen yang berinteraksi di dalamnya. Tujuan dari tulisan ini adalah : 1. Penggunaan metodologi UML 2.0 untuk memberikan gambaran yang jelas tentang sebuah firewall dengan komponen-komponen yang membangunnya dalam berinteraksi dengan jaringan lain. 2. Menggunakan OCL sebagai alat bantu untuk melakukan pendeskripsian secara lebih formal dari informasi yang tidak bisa dideskripsikan dengan diagram UML 2.0. Penulisan ini berfokus pada analisis firewall dengan menggunakan standarisasi UML dan tidak akan membahas lebih lanjut tentang pembuktian secara matematis diagram-diagram yang telah dibuat dan pemetaan dengan menggunakan bahasa pemrograman. Analisis dilakukan dengan menggunakan diagram-diagram yang telah ada pada UML 2.0 untuk bisa mendapatkan hasil dari interaksi yang terjadi antar komponen dengan lebih jelas. Adapun diagram yang akan digunakan adalah
' Dosen Tetap Jurusan Teknik Informatika, FIK-UPH " Dosen Tetap Jurusan Teknik Informatika, FIK-UPH *" Alumnus Jurusan Teknik Informatika, FIK-UPH Pemetaan Komponen Firewall...(I.M. Murwantara, P. Yugopuspito, A.Karnadi)
97
diagram structural menggunakan diagram class dan diagram object, dan diagram behavioural menggunakan diagram activity dan diagram state machine. 2. TRANSLASI KOMPONEN-KOMPONEN FIREWALL DENGAN DIAGRAM UML 2.0 Arsitektur firewall yang akan dibahas adalah sebuah firewall sederhana, yaitu dual-homed host dan yang sedikit lebih kompleks, yaitu screened subnet karena memerlukan adanya jaringan tambahan yang sering disebut dengan Demilitarized Zone (DMZ). 2.1 Komponen dari Dual-Homed Host Firewall Tabel 1 Pemetaan Komponen dari Dual-Homed Host Firewall dalam Bentuk Class
Nama Komponen Dual-homed host
Translasi dengan Class DualHomedHost ^•blockTrafficO %permitPacket() '^discardPacket()
Proxy server Proxy Server %portList: List_of_String ^portNumber: Integer ^•assignServiceO ^giveRequest()
Client Client Q>dornainl_ocation : String
Keterangan Merupakan komponen yang bertugas menjadi firewall dan berfungsi melakukan filterisasi pada traffic
Bersama dengan dualhomed host, juga bertugas sebagai firewall. Digunakan untuk menengahi komunikasi yang terjadi antar host client dan host server yang berada dijaringan yang berbeda
Hosf yang berfungsi meminta layanan kepada host server
^getServiceQ Server Server G£>domainLocation : String V
I
set ServiceQ
Host yang berfungsi menyediakan layanan sesuai dengan permintaan yang dikirimkan oleh host client
Setelah pemetaan semua komponen pembangun dual-homed host firewall dipetakan dengan menggunakan metode diagram class, selanjutnya prosedur 98
Jurnal llmiah llmu Komputer, Vol. 4 No. 2 Mei 2006: 97-108
bagaimana cara komponen tersebut melakukan interaksi dengan komponen lainnya akan dijelaskan dengan diagram activity. Dalam kasus ini, akan diambil contoh bagaimana proxy dan dual-homed host berinteraksi dengan client dan server Prosedur dari dual -homed host dan proxy server: Host client yang mempunyai software client proxy ingin berkomunikasi dengan server yang berada di luar jaringan internal Client tersebut akan berbicara pada proxy server yang dijalankan di dualhomed host bukan langsung pada server sebenarnya. Proxy akan memeriksa permintaan dari proxy client, dan menentukan yang mana harus dilewatkan atau didrop Bila permintaan berhasil lewat, proxy server akan menghubungi server sebagai perwakilan dari client dan langsung menjadi penengah antara server dan proxy client Dual-homed host bertugas memblok traffic apapun yang bukan berasal dari proxy server ke proxy client dan layanan yang tidak mempunyai perwakilan proxy pada firewall Tabel 2 Pemetaan Komponen dari Dual-Homed Host Firewall dan Proxy dalam Bentuk Class Nama Komponen Switch dan Tabel Filter sebagai aggregation c/ass-nya
Translasi dengan Class Switch %port : Integer *storeHardwareAddress() %forwardFrame()
+hardwareAddress 1 MACTable ^hardwareAddressList: List_of_String +hardwareAddress : String ^•collectHardwareAddressQ
Paket
Packet ktype : String j.serviceKind : String kSrcAddress : String idestAddress : String kdestPort : String
Pemetaan Komponen Firewall...(I.M.
Keterangan Device yang bertanggung jawab mengatur traffic dari komunikasi yang terjadi antara client yang berada pada satu jaringan internal. Menggunakan informasi alamat hardware dari host client untuk mendefinisikan host mana yang berperan sebagai pengirim dan host mana yang akan menjadi penerima. Tabel filter berguna untuk menyimpan informasi alamat hardware tersebut Tidak termasuk dalam komponen yang membangun arsitektur firewall, namun merupakan unit informasi yang digunakan dalam melakukan transaksi apapun pada jaringan
Murwantara, P. Yugopuspito, A Karnadi)
99
Skenario untuk diagram activity • Asumsi: client ingin meminta layanan kepada server eksternal dengan menggunakan dual-home host firewall • Prakondisi: client mempunyai proxy client dan ingin meminta layanan pada server di janngan eksternal • Inisiasi: client mengirimkan permintaan yang ditujukan kepada server melalui firewall • Terminasi: c//enf mendapatkan layanan atau layanan didrop karena tidak sesuai kriteria filerisasi • Pasca-kondisi: client mendapatkan layanan yang diinginkan
l " . U l hOrT>« HOSt
1
tangarvi request
menginm tpquest
tenma request client J_ periksa request client ^--JapprovedU/
kirirn k e selver
k
\
[tolak]
Drop
0
|ada]
,--
cek proxy
V S - " " -».
kirim paket kembali
)
T
/<S [licak ada|
tenma paket Drop mendapat pake! layanan
J hum ke proxy i h.-nl
Gambar 1 Diagram Activity dari Prosedur Dual-Homed Host dan Proxy Server
100
Jurnal llmiah llmu Komputer, Vol. 4 No. 2 Mei 2006: 97-108
Internet
_\^gj
Real Server Proxy Server
n \LJ
FIRE WAL L
&m Dual-homed host
Proxy Client
ii-xv
Internal Network Gambar 2. Prosedur dari Dual-Homed Host dan Proxy Server
Pemetaan Komponen Firewall...(I.M. Murwantara, P. Yugopuspito, A.Karnadi)
101
2.2 Komponen dari Screened Subnet Firewall Tabel 3 Pemetaan K o m p o n e n dari Screened
Nama Kompon en Router
Subnet Firewall
dalam Bentuk Class
Translasi dengan Class
Keterangan
Router import: Integer fyramePacket Boolean QtfilterPacket Boolean wrackDestinationHost morn [reachable, unreachable ftneedFlowConlrol Boolean
RoutmgTable tpalliToBestHost §>palh Property |
I
*stotePAi)
I %eimilPackelCi *d!sc3idPacketO '< *rnasque(5delPAddress(i I VtProlocolO
Bastion Host
BastionHost £%>ForwardedRequest : Property ^giveRequestQ ^assignServiceO
Client Server Protokol
Protocol
^sendErrorMessageQ ^frarningPacketQ %ilteringPacketO
Protokol akan membantu dalam melakukan routing paket sesuai dengan fungsionalitasnya masing-masing
Sama dengan switch pada dual-homed host Packet % t y p e : String %serviceKind : String %portSource : Integer ^ p o r t D e s t : Integer ^ d i r e c t i o n : String
102
Host ini bisa menjadi medium antar satu server dengan server lainnya. Misalnya mengoper paket permintaan layanan dari server internal ke server yang ada di jaringan lain.
Sama dengan client pada dual-homed host Sama dengan server pada dual-homed host
t%>n a me : String
Switch Paket
Alat yang bertindak sebagai gateway untuk mengatur traffic yang datang dari luar ke dalam jaringan internal dan sebalik-nya Dalam model firewall ini router a kan di integrasikan dengan fungsi-onalitas NAT (Network Address Translator).
Tidak termasuk dalam komponen yang membangun arsitektur firewall, namun merupakan unit informasi yang digunakan dalam melakukan transaksi apapun pada jaringan
Jurnal Ilmiah llmu Komputer, Vol. 4 No. 2 Mei 2006: 97-108
Sama seperti arsitektur dual-homed host, pada screened subnet juga terdapat pemetaan dengan menggunakan diagram activity untuk menggambarkan prosedur yang dimiliki oleh sebuah komponen dalam berinteraksi dengan komponen lainnya. 3. PENGGABUNGAN CLASS DARI KOMPONEN MENJADI DIAGRAM CLASS SEBUAH FIREWALL Proses desain dilakukan dengan menggunakan komponen-komponen yang telah diterjemahkan menjadi diagram class pada bab sebelumnya. Lalu penlaku antar komponen akan dideskripsikan dengan menggunakan Object Constraint Language (OCL) untuk menghapus keraguan dari deskripsi yang dibenkan menggunakan natural language. OCL akan membantu dalam menggambarkan interaksi yang terjadi antar komponen dalam tiap-tiap model firewall. Untuk kasus ini akan diberikan contoh implementasi OCL dalam menggambarkan behavioral dari komponen yang berfungsi sebagai firewall pada tiap-tiap arsitektur, yaitu dualhomed host dan proxy server pada arsitektur dual-homed host firewall dan router dan bastion host pada arsitektur screened subnet firewall. 3.1 Dual-Homed Host Firewall 1.
Client ingin melakukan komunikasi dengan server di jaringan ekstemal melalui medium proxy dengan mengirim permintaan berupa paket 2. Proxy akan meneruskan permintaan client tersebut ke server yang bersangkutan 3. Setelah menangani permintaan client, server mengembalikan paket yang kali ini berbentuk layanan melalui dual-homed host 4 Dual-homed host akan melakukan filter terhadap paket dari server setelah itu memberikannya kepada proxy 5. Terakhir proxy akan memberikan layanan dari server kepada client Client SJPAddress Siring
DualHomedHost
idomainLocation String ioutPaoke. Packet =-responseAsDestHost() =:sendFrame() +communicates o * 1 * +requestes
Import
Seryel
• ,blockTraffic<) pennitPacketO ~rdiscardPacket{) 1
sJPAddress •tncomrngTraBc
Stnnq
idoma|nLocal|0n
1 ' ^incPacket
%inng
Packet
+fi|
teredTrafftc
Switch Integer
^storeHardwareAddress{) ^forwardFrameO • incomingPacket 1 '
1 *
+outgoing Request
Proxy Server ^.portList . List_pf_String ^.pottNumber: Integer +hardwareAddress 1 MACTable ^hartwareAddressUs. L.st of String +hardwareAddress String
=-assignSerwce{) %giveRequest()
Packet B^type String ^.servtceKmd String ^srcAddress Stnng ^destAddress String idestPort Integer
^collect HardwareAddress()
Gambar 3. Diagram Class dari Model Dual-Homed Host Firewall
Pemetaan Komponen Firewall...{\.M. Murwantara, P. Yugopuspito, A.Kamadi)
103
--OCL untuk class ProxyServer context ProxyServer inv GetPacketFromClient : request -> collect(c:Client|c.outPacket) -> notEmpty context ProxyServer::giveRequest(s:Server) pre : requests -> collect (c:Client | c.outPacket) -> notEmpty post : outgoingRequest -> size() = 1 -> forAll(s) context ProxyServer::assignService(c:Client) pre : filteredTraffic -> collect (d: DualHomedHost) -> notEmpty post : incomingPacket -> size()=l -> forAll(c) --OCL untuk class DualHomedHost context DualHomedHost::blockTraffie(incPacket:Server) pre : incomingTraffic -> collect (Server.incPacket) -> notEmpty pre : Packet.destAddress = Client.IPAddress post : filteredTraffie -> isEmpty 3.2 Screened Subnet Firewall Screened subnet firewall mempunyai konfigurasi yang lebih kompleks daripada dual-homed karena keberadaan jaringan tambahan yaitu DMZ. Mempunyai dua buah screening router yang digunakan untuk melakukan filterisasi antara client dan server. Dapat mengimplementasi TCP, Internet Control Message Protocol (ICMP) dan User Datagram Protocol (UDP) pada lapisan Transport dan IP pada lapisan Internet. Arsitektur dual-homed host menggunakan proxy yang mempunyai sejumlah port untuk menyediakan layanan bagi client yang berasal dari server yang berada di luar jaringan internal atau Internet. Menggunakan Transmission Control Protocol (TCP) pada lapisan Transport dan Internet Protocol (IP) pada lapisan Internet. Pada lapisan Application, terdapat beberapa jenis protokol yang digunakan untuk menjalankan fungsi dari layanan tertentu seperti Telnet, SMTP, FTP, DNS dan HTTP Untuk filter, terdapat switch untuk keperluan komunikasi intern jaringan dan semua komponen yang bertindak sebagai firewall, yaitu router, bastion host, dan jaringan DMZ untuk melakukan filter pada paket dengan mencocokan dengan nomor daftar port yang ada.
104
Jurnal llmiah llmu Komputer, Vol. 4 No. 2 Mei 2006: 97-108
Internal Network
Internal Client
~]
~l
Internal Server
C=S 1 Interior Router
FIREWALL
Exterior Router.
Gambar 4. Arsitektur Screened Subnet Firewall
Prosedur Screened Subnet Firewall: a. Bastion host digunakan ketika server internal mempunyai domain yang berbeda dengan client b. Bastion host mengambil permintaan layanan dari server internal atau langsung dari Aiosf client itu sendiri c. Bastion host akan memberikan permintaan layanan kepada server yang menangani lokasi domain --OCL untuk class BastionHost context BastionHost inv DifferentDomain : not (Client.domainLocation = IServer.domainLocation) inv GetUnhandledRequest : unhandledRequest -> collect(i:IServer | i.unhdPacket) -> notEmpty inv GetRequest : request -> collect(c:Client I c.outPakcet) -> notEmpty context BastionHost::giveRequest(e:EServer)
Pemetaan Komponen Firewall...(I.M. Murwantara, P. Yugopuspito, A.Karnadi)
105
i.unhdPacket) -> pre : unhandleRequestes -> collect (i:IServer notEmpty pre : request -> collect (c: Client I c.outPacket) > notEmpty post : unhdPacket -> sized = 1 -> forAll(e) post : outPacket -> sized = 1 -> forAll(e) Client eyP~Ad3r~ess String' "' e^domainLocation : Sthng % o u l P a c k e t : Packet
IS*
Protocol
^IPABdress : String ^domainLocation: String 1. . ^ u n h d P a c k e t : Packet
t ^ n a m e ; String
+filteredSerwces 1 • requestes
+ unhandledRequest o •
•storeHardwareA ddres s(). •farwardFrameO
%sendErrorMes sage() *framingPacket() *«ltenngPackel() '
+filteredTraffic Router export: Integer e^publiclPAddress : String •^framePacket: Boolean a^nlterPacket: Boolean •^checkDestinationHost: Boolean •^needFlowControl : Boolean •^packet: enum {pass, discard)
RoutingTable • pathToDestHost •ypath : Property *storePath()
*permitPacket() *discardPacket() *gelProtacol() %masqueradelP()
+incomingPacket 1 •
1""' ingPacket BastionHost
0
outgoingTraffic
EServer e^lPAddreSS . Stnng sydomamLocation String . ieyincPacket . Packet
tfcfwardedRequest : Property +hardwareAddress\
1
MACTable e^hardwareAddressList: List.oTStririgj •^hardwareAddress : String *collectHardwareAddress()
%giwRequest() *assignSer\»ce() •Packet -—I a^typV:~StrTrig~ e^serviceKind : String ^portSource Integer a^portDest: Integer •^direction : String
Gambar 5. Diagram Class dari Model Screened Subnet Firewall
1. 2.
Router akan menggunakan salah satu dari ketiga protokol yang dimiliki sesuai dengan fungsionalitas dari protokol tersebut Dengan adanya fungsi NAT, router bisa mengganti alamat IP dari host client dengan sebuah alamat IP public sehingga transparansi jaringan internal terjamin
context Protocol::sendErrorMessage(r:Router) pre : Router.checkDestinationHost = true implies self.name = 'ICMP' pre : Router.needFlowControl = true implies self.name = 'ICMP' post : message -> sized = 1 -> forAll(c:Client) context Protocol::framingPacket(packet:Router) pre : Router.framePacket = true implies self.name • 'ARP' post : framedPacket -> sized = 1 -> forAll(packet) context Protocol::filteringPacket(packet:Router) pre : Router.filterPacket = true implies self.name = 'IP' post : filteredPacket -> sized = 1 -> forAll(packet) — O C L untuk class Router context Router::getProtocol(name:Protocol) pre : self.checkDestinationHost = true pre : self.needFlowControl = true post : select(Protocol.name = 'ICMP') -> notEmpty pre : self.framePacket = true Jurnal llmiah llmu Komputer, Vol. 4 No. 2 Mei 2006: 97-108 106
post : select(Protocol.name = 'ARP') -> notEmpty pre : self.filterPacket = true post : select(Protocol.name = 'IP') -> notEmpty context Router::masqueradeIP(IPAddress:Client) pre : Client.IPAddress -> notEmpty pre : request -> collect(c:Client I c.outPakcet) -> notEmpty pre : incomingPacket -> collect (b:BastionHost I b.forwardedRequest) -> notEmpty post : publicIPAddress -> size() = 1 -> forAll(IPAddress) — O C L untuk class RoutingTable context RoutingTable::StorePath(newPath) pre : not pathToDestNetwork -> includes(newPath) post : pathToDestNetwork = pathToDestNetwork@pre -> including(newPath) post : pathToDestNetwork -> sizeO -> isEmpty implies Router.packet = Idiscard post : pathToDestNetwork -> sized -> notEmpty implies Router.packet = #pass
4. KESIMPULAN a.
Translasi dari dua buah model arsitektur firewall dihasilkan dari penggabungan semua komponen yang terlebih dahulu didesain dengan menggunakan notasi dan diagram dari UML 2.0. Translasi tersebut mempermudah penggambaran hubungan yang terjadi antar komponen yang membangun firewall tersebut.
b.
Deskripsi formal dari informasi tentang tingkah-laku firewall dalam melakukan transaksi yang terdapat pada diagram class, digunakan OCL. Batasan-batasan pada ekspresi OCL mampu memperjelas informasi mengenai suatu objek yang tidak bisa dideskripsikan sepenuhnya di dalam diagram dan bahkan bisa menghapuskan ambigu dari deskripsi yang diberikan dengan menggunakan kata-kata atau natural language.
DAFTAR PUSTAKA [1] [2] [3] [4] [5] [6] [7] [8] [9]
Klasifikasi jaringan komputer, http://www.firewall.cx, Juli 2005 Stalling, W. Komunikasi Data dan Komputer, Terjemahan, Salemba Teknika, 2001 Visicomsoft Ltd. Firewall Software and Internet Security, 2002. Firewall Workgroup. Departemental Firewall Guidelines and Procedures, 2003. Definisi UML, http://www.sharpened.net/glossary/definition.php7uml, Agustus 2005 Pender, T. UML Bible, John Wiley & Sons, 2003 Ambler, S. The Object Primer 3rd Edition : Agile Model Driven Development with UML 2, Cambridge University Press, 2004. Object Management Group, UML 2.0 OCL Specification, 2003. Tipe batasan OCL, http://wwwdept.cs.ucl.ac.uk/staff/W.Emmerich/lectures/3C05-03-04/OCL.pdf, Agustus 2005
Pemetaan Komponen F/rewa//...(I.M. Murwantara, P. Yugbpuspito, A.Karnadi)
107
[10] [11] [12] [13]
108
Lammle, T. Cisco Certified Network Associate Study Guide, SYBEX, 2002. Velte, A., Velte, T. Cisco : A Beginner's Guide, third edition, McGraw-Hill, Osborne, 2004. Chapman, B., Zwicky, E. Building Internet Firewall, O'Reilly, 1995. Karnadi, Astidi, Pemetaan Komponen Firewall dengan Diagram UML 2.0 dan Spesifikasi OCL 2.0 (Skripsi S1), Tangerang:Universitas Pelita Harapan, 2006.
Jurnal llmiah llmu Komputer, Vol. 4 No. 2 Mei 2006: 97-108