Laporan Sistem Keamanan Lanjut

download Laporan Sistem Keamanan Lanjut

of 39

Transcript of Laporan Sistem Keamanan Lanjut

Buku Saku LEIBINGERPermasalahan Yang Kadang Muncul di Mesin LEIBINGER

PT.DHASS SUMBER TEKHNIK SEMARANG 2011

PENDAHULUAN Perkembangan Teknologi Ink jet saat ini semakin pesat. Pemakaian ink jet yang dinamis semakin banyak untuk menggantikan cooding yang statis atau konvensional. ink jet digunakan dibidang cooding, dan lain sebagainya. Penggunaan ink jet yang dinamis untuk pengcooding memungkin seseorang melakukan suatu penandaan produk perdagangan. Penguna dapat memilih atau melihat atau berbelanja secara aman. Ketika user (pembeli) melakukankan suatu pembelian, Tetapi di saat proses Diantara client dan server ada suatu jarak yang tidak terukur. Jarak yang terjadi antara client dan server sangat rawan terhadap keamanan. Server tidak dapat mengenali siapa yang melakukan permintaan untuk transaksi dan sedangkan client juga tidak dapat mengenali apakah server yang dituju adalah benar sesuai dengan kehendaknya. Untuk menjaga saling kepercayaan antara client dan server perlu dibuat sebuah prosedur untuk memeriksa atau menjaga kebenaran diantara kedua pelaku. Untuk mengatasi maka bagi seoarang perancang atau pengembang membuat sebuah sistim keamanan WEB. Client dapat diuntungkan bahwa transaksi yang dilakukan dapat terjaga dengan baik dan server terhindar dari serangan dari pihak lain. Dengan demikian antara client dan server dapat terjalin rasa kepercayaan. Teknologi yang digunakan untuk membangun web dinamis salah satunya dengan menggunakan teknologi Active Server Pages (ASP).NET. Taknologi ASP.NET juga harus meiliki tingkat keamanan yang dapat dipercayai. 1.1 Pembatasan Masalah Dalam membangun sebuah web yang dinamis yang diutamakan adalah menjaga kepercayaan dan keamanan data bagi client dan server. Didalam makalah ini

menjelaskan bagaimana membangun sebuah web yang mempunyai security atau tingkat keamanan yang baik dan dapat menjaga keamanan client dan server yang baik. Untuk itu pembatasan pembahasan diutamakan dalam kerangka ASP.NET 1.2 Tujuan Paper ini bertujuan untuk: a. menjelaskan faktor keamanan yang akan dipertimbangkan untuk membangun web dinamis yang menggunakan ASP.NET, b. menjelaskan keamanan WEB yang dikembangkan untuk server serta aplikasi authentikasi, c. pengembang dapat membuat halaman web yang dapat mengantisipasi serangan terhadap server.

BAB IIKEAMANAN 2.1 Perihal Kemanan Dalam time sharing dan kemudahan untuk mengakses dari jarak jauh, menyebabkan terciptanya kelemahan dalam komunikasi. Kelemahan yang terjadi

dapat kerawanan dalam keamanan. Keamanan sangat diperlukan oleh komputer untuk menghindari terjadinya serangan dari penguna yang berada diluar otoritas yang diberikan. Keamanan komputer merupakan sebuah tindakan preventif perlindungan dari sumber-sumber daya yang dimiliki. Bagi pengembang juga harus memperhatikan tipe-tipe ancaman yang dating. Pengetahuan terhadap tipe-tipa ancaman, pengembang dapat membuat metoda atau sistim keamanan. Salah satu metoda yang sangat popular pada saat login berupa nama dan password. 2.2 Keamanan Framework .NET Framework NET benyak menyediakan feature sistim keamaman. Diantaranya yang digunakan untuk menentukan mengenali dan menganalisa identitas pemakai. Dari hasil pemeriksaan dan penganalisaan membolehkan atau menolak pengguna untuk mengakses sumber-sumber yang tersedia. a. Role Based Security Framework .NET mempunyai suatu metoda yang utuh untuk memenej identitas penguna. Metoda ini dapat menentukan identitas penguna berdasarkan kode-kode yang telah diberikan. Ketika identitas yang diberikan diproses apakah yang menggunakan identitas tersebut sesuai dengan data yang tersedia. Kode-kode yang diberikan dapat saja berupa nama atau password atau jenis-jenis pengenal lainnya. Role based mengatur identitas pemakai menggabungkan antara model otoritas dan autentikasi. Melalui aplikasi kode dapat membaca identitas secara lansung . Kode kode identitas tersebut disimpan didalam sebuah data base. b. Evidence Based Security

Keamanan berbasis Evidence merupakan sebuah kode yang telah diberikan kepada pemakai sebagai pembatasan unuk memasuki sebuah aplikasi. Kode-kode tersebut dapat bekerja didalam Framework NET. Sejumlah kemungkinan-kemungkinan yang tersedia untuk aplikasi dapat berupa: kode dapat didownload dari sumber tak aman dan dieksekusi dengan aman dengan suatu pembatasan ISP server host dapat bergerak bersama-sama aplikasi pada lokasi berbeda yang sedang dikerjakan dengan aman untuk meningkatkan peforman aplikasi server dapat ditingkatkan dengan kode yang dutulis oleh penguna yang memaksa berjalan untuk tidak bertentangan dengan keseluruhan operasi server program aplikasi dapat berjalan dengan aman pada skrip makro yang dihubungkan dengan dokumen pemakau. Sistim kemanan dapat membatasi / mengizinkan kode-kode apa saja yang boleh dijinkan untuk mengakes. Kode-kode tersebut dilakukan dengan secara pembuktian kebenaran atau kevalidan permintaan tersebut. Setelah dapat memastikan bahwa kode-kode tersebut benar atau tidaknya maka sistim dapat mengizinkan atauu menolaknya untuk melakukan hubungan. Sistim keamanan memasukkan permintaan (request), serta meyakinkan kode tersebut untuk mendapatkan izin. Kondisi-kondisi kemanan Evidence Based dapat membantu memasukkan kode-kode kedalam: membatasi akses API public melindungi sumber-sumber yang ada.

Sebagai tambahan terhadap bentuk standar pembuktian pendaftaran yang tampilkan oleh sistem keamanan , ini juga mungkin untuk memperluas

satuan bukti (evidence) dengan jenis-jenis yang baru. Tabel dibawah ini memperlihatkan diskripsi sistim pembuktian: Table 1 Tipe Evidence Evidence Hash Publisher StrongName Site Url Zone Description Hash of the assembly AuthentiCode signer Public key+name+version Web site of code origin URL of code origin Internet Explorer zone of code origin

Sistim pemeriksaan keamanan sangat menguntungkan karena mencegah serangan dari kode-kode yang tidak syah. Sistim keamanan mengizinkan untuk melakukan pembuktian, jika ternyata bahwa kode yang masuk kode yang tidak sah maka tidak diizinkan untuk melakukan akses. Pendekatan terhadap pengkodean mempunyai beberapa cara: Security-Neutral Code Aplication Code Mengatur Wrapper untuk Native Code Implementation Library Code untuk melindingi pengeksposan Sumber 2.3 Interaksi client dan server Pengembang merancang halaman web tidak mudah untuk menentukan mana yang terbaik antara kepentingan server atau client. Kedua-duanya digunakan untuk saling melengkapi dan kepentingan aplikasi web itu sendiri. Yang diutamamakan dalam membangun aplikasi adalah memenpatkan kebutuhan sesuai dengan porsinya. Disini dibutuhkan pengetahuan pengembang untuk memilih mana yang akan diproses oleh server dan mana yang akan diproses oleh client. Gambar 1 memperlihatkan hubungan antara clien dan server dan gambar2 ini memperlihatkan proses kerja client dan server

gambar 1 Hubungan Client dan Server

gambar 2 proses kerja client dan server

2.4 Arsitektur ASP.NET

Gambar dibawah ini memperlihatkan hubungan antara sistim kemanan pada ASP.NET. Seluruh Web client pada ASP.NET selalu berhubungan dengan Internet Information Services (IIS).

gambar 3 Arsitektur ASP.NET IIS bekerja untuk membuktikan dan menganalisa keaslian dari permintaan melalui WEB client. Jika permintaan terbukti benar maka client berhak mendapatkan pengembalian permintaanya. Sedangkan tidak terbukti maka dilakukan penolakan. Aplikasi yang akan dibangun, harus menguraikan dokumen aplikasi dan mampu untuk mengenali identifikasi key, termasuk batasan autoriti, aliran data, entry point, dan kode-kode yang khusus. Disamping itu harus mengetahui konfigurasi fisik pada aplikasi tersebut.dari bentuk-bektuk serangan. Aspek aspek yang harus dipertimbangkan untuk mengembangkan aplikasi adalah (gambar dibawah ini): a. Infrastrutur dan Penyebarannya Dalam pengembangan infrastruktur harus mempertimbangan segi

lingkungannya. Yang sangat perlu diperhatikan adalah infrastruktur keamanan, yaitu Host dan Network. b. Arsitektur dan desain aplikasi

Dasar Lapisan

Mengembangkan aplikasi memperhatikan bagian bagian yang cukup kritis mencakup authentication (pengesahan), authorization (otorisasi), input validasi, manajemen exception, dan lain lain. c. Analisis Tier by tier Tingkatan yang cukup logis adalah menguji keamanan aplikasi yang dibangun, diantaranya Halaman WEB ASP.NET dan pengontrolannya, pelayananan WEB, komponen yang dilayani, Microsoft .NET Remoting, kode pengaksesan data dan lain-lain.

gambar 4 Pencabangan dengan 3 Pendekatan 2.5 Aliran Data Ada 2 cara skenario umum untuk mendisain keamanan ke dalam aplikasi ASP.NET, yaitu Impersonation (penyamaran) dan form authentication (pengesahan format) yang menggunakan cookies.

a. Impersonation (penyamaran)

Tupe ini mengunakan authentication IIS dan file akses keamanan Windows NT untuk memprogram keamanan minimal pada aplikasi ASP.NET. Aliran data dapat dilihat pada gambar 5 Pola Inpersanation Urutan-urutan kerja sebagai berikut ini: a. client melakukan permintaan akses melalaui IIS, b. IIS melaukukan pemeriksaan authentication yang digunakan client, singkatan dan diintegrasikan Autentication Windows (NTLM atau Kerberos), c. authentication client telah dibuktikan keasliaanya, IIS meyampaikan permintaan client yang dibuktikan keasliannya melalui ASP.NET, d. aplikasi permintaan client Impersonation (disamarkan) menggunakan tanda yang diambil dari IIS, dan mempercayakan kepada file NTFS untuk melakukan akses. Aplikasi ASP.NET hanya memerlukan verifikasi konfigurasi file ASP.NET. Perintah Impersonation-enable dinyatakan benar, e. jika akses dijamin, maka aplikasi ASP.NET memngembalikan permintaan melewati IIS

gambar 5 Pola Inpersanation b. Pola kedua Authentication Apliksi yang menggunakan format authentication, memungkinkan sebuah proses aplikasi untuk mengumpulkan seperti nama dan password secara lansung dari client dan menentikan sendiri authenticity. Aplikasi ini tidak digunakan oleh IIS authentication, tetapi authentication IIS mengatur kepentingan pemoresan format authentication. Aliran data dapat dilihat gambar 6 Pola Inpersanation

gambar 6 Pola Inpersanation

Aliran data seperti berikut. a. Suatu klien menghasilkan suatu permintaan untuk suatu sumber daya dilindungi. b. IIS menerima permintaan dan peminta (client) dibuktikan keasliaanoleh IIS, atau jika Anomnymous Access diperbolehkan, melewati aplikasi ASP.NET c. Juka tidak ada cookies yang bertkaitan dengan permintaan, ASP.NET memindahklan permintaan ke halamam log-on,

d. Kode apliksi memeriksa keaslian dan mengkonfirmasikan authentication. Jika keaslian di-authentication, kode-kode aplikasi diattach sebagai sebuah cookie yang memuat nama pemakai, tetapi bikan password. Jika authentication ternyata tidak benar maka permintaan dikembalikan sebagai dengan pesan logon Acces Denied. e. Setelah izin dikeluarkan oleh aplikasi, ASP.NET hanya memeriksa kebenaran melalui authentication. Aplikasi tidak memutuhkan credential didalam file *.config. f. Jika pemakai di authentication, ASP.NET memeriksa otoritas dan slah satu dapat mengizinkan akses untuk keaslian permintaan, melindungi sumber atau mengembalikan permintaan pada beberapa halaman, dan menggantungkan pada desain aplikasi. g. Otoritas akses pemakai pemakai menjamin perlindungan sumner; atau aplikasi boleh, membutuhkan tambahan untuk menguji credential sebelum mengotoritaskan akses untuk melindungi sumber.

BAB III PERSIAPAN MEMBANGUN WEB 3.1 Membangun Konfigurasi a. IIS versi 5.0 WEB yang menggunakan ASP.NET tidak terlepas dari IIS. account IIS selalu

tergabung didalam sistim operasi dari Windows, yang merupakan suatu dan penggunaan untuk autentikasi pengunaan. Sistim operasi wibdows yang digunakan terlebih dahulu kenali versi IIS.Versi IIS untuk authentication IIS versi 5.0 sampai IIS versi 6.0. Keduanya mempunyai perbedaan, yaitu basic, digest dan integrated Windows Authentication (NTKM atau Kerberos). Sebelum mengunakan salah satu tipe ini perhatikan IIS administrative service. Mengamankan IIS ada beberapa langkah dasar, ketidakmampuan feature tidak akan dapat digunakan., yaitu: Menyediakan daftar akses control (Accsess Control List / ACLs) yang tepat untuk WEB dan virtual directori Menganti seluruh contoh-contoh aplikasi Mengganti IIS Admin virtual directori dan tidak menggunakan script mapping Penyetelan yang tepat ACLs untuk file IIS Log dan enabke logging.

Konfigurasi ACLs Pennyetelan ACKs merupakan langkah pertama didalam mengamankan IIS. Pengaturan dapat dilakukan bersamaan dengan Windows ACLs dan IIS based ACLs melalui tipe file yang berbeda. Lihat Tabel 2 Konfigurasi ACLs Tabel 2 Konfigurasi ACLs File Type Access Control List File scrip seperti: *.asp, *.aspx, *.asmx, Internet Guest Account (eksekusi) *.ascx, dan lain-lain Everyone (eksekusi) System (Full Control) Administrator (Full Control) File yang tergabung seperti: *.inc, *.shtm, Internet Guest Account (readonly) dan *.shtml Everyone (readonly) System (Full Control) Administrator (Full Control) File yang statis seperti: *.html, *.htm, Internet Guest Account (readonly) *.gif, *.jpeg, *.txt, *.doc, *.pdf, dan lain Everyone (readonly) lain System (Full Control) Administrator (Full Control)

File CGI dieksekusi seperti: *.cgi, *.dll, *.cmd dan *.pl.

Internet Guest Account (eksekusi) Everyone (eksekusi) System (Full Control) Administrator (Full Control)

gambar 7 Konfigurasi IIS Konfigurasi IIS Setelah IIS di Instal dan diikuti dengan beberapa contoh. Sampel itu pada umunya sudah dikenali lokasinya oleh para hacker. Adminstrator harus ,melakukan pengantian IIS Adminstration Virtual Directory. Table Table 3 IIS Virtual Directory meper;ihatkan IIS virtual directory yang perlu anda ubah. Table 3 IIS Virtual Directory IIS Sample Virtual Directori IIS Sample \IISSAmples IIS Document \IISHelp Data Access \MSAD

b. Sistim Operasi Server menggunakan sistim operasi Windows 2000 Advanced Server merupakan suatu layanan yang baru. Semua kemungkinan serangan terhadap keamanan telah mulai ditutupi oleh sistim ini. Namun itu belum merupakan suatu jaminan akan aman dari serangan, untuk menutupi diperlukan sistim administrator yang baik.

Aplikasi yang dirancang menggunakan

Register Editor (Regedit.Exe)

berfungsi mengubah empat penyetelan register untuk memperkuat keamanan. Rekomendasi ini sebagai yang praktek terbaik, penyetalan pada: Create Register Key : nolmhsh Lokasi: HKLM\System\CurrentControlSet\Control\LSA Create Registry Value: NoDefaultExempt Location: HKLM\System\CurrentControlSet\Services\IPSEC Create Registry Value: DisableIPSourceRouting Lokasi: HKLM\System\CurrentControlSet\Services\Tcpip\Parameters Create Registry Value: SynAttackProtect Lokasi: HKLM\System\CurrentControlSet\Services\Tcpip\Parameters

c. Standar Keamanan IP Membangun WEB dengan Microsoft Windows 2000, mereka memeiliki pendukung untuk memenej authentication dan encryption pada Internet Protocol (IP4). Trafic yang digunakan IP Security Standards (IPSec). Gambar dibawah ini melihatkan dialog untuk server (request Security)

gambar 8 server (request dialog) Melalui kotak dialog ini dilakukan konfigurasi yang menggunakan Local Security Settings Microsoft Management Console (MMC), perhatikan gambar dibawah ini

gambar 9 Dialog Local Security

Hubungan komunikasi antara Web server dengan database server dipasang saringan authenticate dan sign, komunikasi antara manajemen dengan server diberikan saringan authenticate, sign dan Encrypt, komunikasi dengan public melalui Web site yang telah dirancang sebagai akses.

gambar 10 Aplikasi Logical conecsitas IPSec d. Remote manajemen dan monitoring Dalam urutan Aministrator untuk memastikan hubungan VPN , administrator harus mempunyai sertifikat IPSEC yang diinstall pada sistem seperti account credential yang bertanggung jawab pada akses remote. IPSEC sertifikat melekatkan bagian pribadi yang berada didalam sertifikat mesin lokal sebagai simpanan yang tidak dapat umumkan. Pada hakekatnya, dapat dipastikan memastikan bahwa administrator hanya dapat menggunakan account VPN klien dari permitted remote administrative workstation, meminimalkan akses administratif. Ketika bagian L2Tp telah dibuktikan keasliannya, workstation administrator menjamin alamat IP pada manajemen network.. Setelah ditetapkan VPN,

manajemen network, administrator dapat membuka suatu bagian Terminal Service kepada manajemen server, OHTS, seperti halnya penggunaan file "inbox" dan "outbox" yang di share pada manajemen server untuk membuka pengubahan isi lokasi atau mendapat file kembali untuk dianalisa. Semua sistem adalah berdiri sendiri, maka akses yang di share dan Terminal Service telah diatur untuk menggunakan account lokal pada sistem dengan password.

gambar 11 Remote Managemen dan Monitoring 3.2 Membangun Halaman Pengontrol a. Thread dan Countermeasure Kebanyakan Serangan Aplikasi Web memerlukan masukan permintaan melalui HTTP. Tujuannya adalah untuk memaksa aplikasi masuk ke dalam melakukan operasi yang tidak syah atau untuk mengganggu kondisi operasi yang normal sehinnga perlu dilakuakan pembatasan untuk mengamankan server (gambar model pengendalian).

gambar 12 Model Pengendalian Inilah alasan kenapa validasi masukan secara saksama dilakukan suatu tindakan balasan (Countermeasure) untuk melawan serangan dan diperlukan dibuat suatu prioritas tertinggi ketika mengembangkan Halaman web melalui ASP.NET . Tipe-tipe serangan antara lain: Code injection; merupakan suatu kode yang dinjeksikan

sewenang-wenang oleh penyerang pada halaman WEB dalam kontek sisi keamanan. Sehingga aplikasi dapat berjalan seolah-olah menggunakan account yang istimewa. Session hijacking; ketika penyerang mengambil sebuah tanda authentication dan mengambil alih kendali terhadap pengguna lainnya. Authentikaasi yang ditangkap tersebut sering disimpan dalam cookies atau URL. Jika penyerang dapat menangkap authentication, dia dapat menyebarkan kepada seluruh aplikasi selama permintaann dilakukan. Identity spoofing; terjadi ketika seorang penyerang diasumsikan sebagai pemakai yang sah, sehingga dapat mengakses aplikasi. Parameter manipulation; data-data yang berasal dari client menuju server melalui network. Termasuk kedalam format field, string query, cookies dan header HTTP. Data yang sensitive atau data yang telah digunakan untuk membuat keputusan keamanan pada server melewati parameter tanpa proteksi. Sehingga aplikasi

berpotensial sangat peka terhadap informasi yang tersingkap atau akses yang tidak sah. Network eavesdropping; meliputi penggunaan jaringan monitoring software untuk meniru paket data yang dikirim antara browser dan web server. Ini dapat mendorong pembongkaran aplikasi data yang spesifik, logon yang dipercaya atau penagkapan authentication cookies. Information disclosure; ketika penyerang menyelidiki halaman web untuk mecari jalan yang menyebabkan kondisi exception. Keberhasilan yang dilakukan oleh penyerang mendapatkan informasi yang bermanfaat untuk melakukan koneksi pada database, nama-nama database, struktur database, bahasa SQL dan sistim operasi beserta versinya.

gambar 13 Ancaman Umum Aplikasai WEB Serangan Virus; serangan ini sering tidak diketahui, sehingga menghabiskan sumber yang tersedia, memperlamabat akses atau menghentikan aplikasi lain ke server. Virus yang cukup dikenal seperti worm dan trolan horse.

gambar 14 Posisi Serangan Virus b. Mempertimbangkan PerancanganSebelum merancang halaman web dan pengontrolannya, kenali terlebih dahulu kunci-kunci sebagai pertimbangan, yaitu:

Pemakaian input validasi pada sisi server, Mempartisi halaman web (gambar pembatasan web public dan area keamanan) Perlindungan tanda kepercayaan dan authentikasi Mempertimbangkan identitas yang digunakan untuk mengakses sumber-sumber Kegagalan dengan aman Mempertimbangkan otoritas granularas Menempatkan pengontrol web dan pengontrol pengguna dalam suatu pemisahan Menepatkan kode-kode akses terhadap sumber dalam suatu terpisah

gambar 15 Mempratisi halaman web public dan area keamanan 3.3 Aplikasi pada Server a. Pemakaian Firewall Firewall merupakan infrastruktur yang digunakan untuk aplikasi server. Aplikasi ini bertujuan untuk pemisah antara web server dengan server pada traffic DCOM dan RPC (gambar 16 firewall configurasi).

gambar 16 Firewall Konfigurasi b. NET Remoting Pemakaian chanel HTTP dan komponen host remote didalam ASP.NET. Pada internal firewall untuk mengizinkan lalulintas HTTP menggunakan port 80 dan dapat digunakan untuk SSL port 443 (gambar konfigurasi firewall untuk canel HTTP dan TCP)

gambar 17 Konfigurasi Firewall untuk Canel HTTP dan TCP

BAB IV Autentikasi dan Pengunaan Kode 4.1 Contoh Aplikasi Sederhana Contoh aplikasi interface sederhana ini terdiri dari 2 program, yaitu PublicPage.aspx untuk mengambarkan siapapun penguna aplikasi web, dan ProtectedPage.aspx.berguna untuk mengidentifikasi penguna tersebut. Autentikasi penguna terlebih dahulu harus mengisi nama dan password melalui halaman LoginPage.aspx. Kemudian pembuktian benar atau tidaknya disimpan dihalaman Web.config.Kode Simple Forms Authentication PublicPage.aspx Public Page void OnViewSecret (Object sender, EventArgs e) { Response.Redirect ("Secret/ProtectedPage.aspx");}

gambar 18 Login

ProtectedPage.aspx Protected Page
Be careful investing your money in dot-coms.

LoginPage.aspx Please Log In User Name: Password: void OnLogIn (Object sender, EventArgs e) { if (FormsAuthentication.Authenticate (UserName.Text, Password.Text)) FormsAuthentication.RedirectFromLoginPage (UserName.Text, false); else Output.Text = "Invalid login"; }

gambar 19 Halaman Proteksi Web.config (Application Root) Ketika ProtectedPage.aspx menemukan penguna yang tidak memiliki authentication, lansung melakukan pencegahan. Web.config memeriksa melalui sebuah form kemudian melakukan identifikasi penguna melalui isi dari web.config tersebut, yang isinya: Kode lengkapnya :

Web.config (Secret Subdirectory) File Web.config bermain didalam secret subdirectory sama pentingnya dengan aturan apliksas. Pernyataan mengikuti otorisasi URL Kode lengkapnya:

4.2 Formulir authentikasi Real-WordPola yang diatas tidak realistis, pemasukan nama dan password ditulis lansung didalam tex aplikasi apabila jumlah pengguna lebih dari seratus. Untuk mengantisipasinya dibuat dan dikumpulkan didalam sebuah database. Saat penggunaannya melalui web.config lansung membaca data-data yang tersimpan.

gambar 20 Data SQL

Ketika loging memasukkan nama dan password melalui halaman LoginPage.ASPX, maka dengan menggunakan perintah SQL web login membaca data nama dan password yang tesimpan, seperti perintah ini :

("select count (*) from users " + "where username = \'"); builder.Append (username); builder.Append ("\' and cast (rtrim (password) as " + "varbinary) = cast (\'"); builder.Append (password); builder.Append ("\' as varbinary)"); kemudian WEB.config-nya melakukan pemeriksaan dengan perintah : Kode Nama dan Password Penguna disimpan didalam Database LoginPage.aspx Please Log In User Name: Password:

void OnLogIn (Object sender, EventArgs e) { if (CustomAuthenticate (UserName.Text, Password.Text)) FormsAuthentication.RedirectFromLoginPage (UserName.Text, Persistent.Checked); Else Output.Text = "Invalid login"; } bool CustomAuthenticate (string username, string password) { SqlConnection connection = new SqlConnection ("server=localhost;database=weblogin;uid=sa;pwd="); try { connection.Open (); StringBuilder builder = new StringBuilder (); builder.Append ("select count (*) from users " + "where username = \'"); builder.Append (username); builder.Append ("\' and cast (rtrim (password) as " + "varbinary) = cast (\'"); builder.Append (password); builder.Append ("\' as varbinary)"); SqlCommand command = new SqlCommand (builder.ToString (), connection); int count = (int) command.ExecuteScalar (); return (count > 0); } catch (SqlException) { return false; } finally { connection.Close (); } }

Web.config (Application Root)

4.3 Formulir authentikasi dan Role-based Security Contoh program ini mengabungkan format authentication nama dan password pengguna yang disimpan didalam SQL Server Database.Kode Layering Roles Onto Forms Authentication void Application_AuthenticateRequest (Object sender, EventArgs e) { HttpApplication app = (HttpApplication) sender; if (app.Request.IsAuthenticated && app.User.Identity is FormsIdentity) { FormsIdentity identity = (FormsIdentity) app.User.Identity; if (identity.Name == "Jeff") app.Context.User = new GenericPrincipal (identity, new string[] { "Developer" }); } }

Kode Forms Authentication with Role-based Security LoginPage.aspx Please Log In User Name:

Password: void OnLogIn (Object sender, EventArgs e) { if (CustomAuthenticate (UserName.Text, Password.Text)) { string url = FormsAuthentication.GetRedirectUrl (UserName.Text, Persistent.Checked); FormsAuthentication.SetAuthCookie (UserName.Text, Persistent.Checked); if (Persistent.Checked) { HttpCookie cookie = Response.Cookies[FormsAuthentication.FormsCookieName]; cookie.Expires = DateTime.Now + new TimeSpan (7, 0, 0, 0); } Response.Redirect (url); } else Output.Text = "Invalid login"; } bool CustomAuthenticate (string username, string password) { SqlConnection connection = new SqlConnection ("server=localhost;database=weblogin;uid=sa;pwd="); try { connection.Open ();

StringBuilder builder = new StringBuilder (); builder.Append ("select count (*) from users " + "where username = \'"); builder.Append (username); builder.Append ("\' and cast (rtrim (password) as " + "varbinary) = cast (\'"); builder.Append (password); builder.Append ("\' as varbinary)"); SqlCommand command = new SqlCommand (builder.ToString (), connection); int count = (int) command.ExecuteScalar (); return (count > 0); } catch (SqlException) { return false; } finally { connection.Close (); } }

Global.asax void Application_AuthenticateRequest (Object sender, EventArgs e) { HttpApplication app = (HttpApplication) sender; if (app.Request.IsAuthenticated && app.User.Identity is FormsIdentity) { FormsIdentity identity = (FormsIdentity) app.User.Identity; // Find out what role (if any) the user belongs to string role = GetUserRole (identity.Name); // Create a GenericPrincipal containing the role name // and assign it to the current request if (role != null) app.Context.User = new GenericPrincipal (identity, new string[] { role }); } } string GetUserRole (string name) { SqlConnection connection = new SqlConnection ("server=localhost;database=weblogin;uid=sa;pwd="); try {

connection.Open () StringBuilder builder = new StringBuilder (); builder.Append ("select role from users " + "where username = \'"); builder.Append (name); builder.Append ("\'"); SqlCommand command = new SqlCommand (builder.ToString (), connection); object role = command.ExecuteScalar (); if (role is DBNull) return null; return (string) role; } catch (SqlException) { return null; } finally { connection.Close (); } }

Web.config (Secret Subdirectory)

Kode Configuring URL Authorizations

4.4 Cookies Lifetime Cookies lifetime berguna untuk membatasi waktu saat melakukan pembuktian. Lama batas waktu yang diizinkan sampai 30 menit. Jika saat terdapat kesalahan saat melakukan login sedangkan yang dicari tidak diketemukan . Atribut ini dimasukkan kedalam program Machine.config: Program ini dapat diubah juga kedalam Mechine.config dengan mengubah batasan waktu seperti 10,800menit. Programnya:

Solusi secara program untuk memodifikasi cookie authentication sebelum mengembalikan respon. Program dibawah ini modifikasi dari versi OnLogIn yang telah diatur untuk beberapa hari (dalam program ini 7 hari).Kode A Shorter-lived Cookievoid OnLogIn (Object sender, EventArgs e) { if (CustomAuthenticate (UserName.Text, Password.Text)) { string url = FormsAuthentication.GetRedirectUrl (UserName.Text, Persistent.Checked);

FormsAuthentication.SetAuthCookie (UserName.Text, Persistent.Checked); if (Persistent.Checked) { HttpCookie cookie = Response.Cookies[FormsAuthentication.FormsCookieName]; cookie.Expires = DateTime.Now + new TimeSpan (7, 0, 0, 0); } Response.Redirect (url); } else Output.Text = "Invalid login"; }

4.5 Keluar dari Aplikasi Suatu saat hendak keluar dari aplikasi, sebaiknya dilakukan secara sopan. Untuk itu digunakan form authentikasionsignout. Program cookies ini cukup menahan serangan dari sniffer. Listing Program void OnLogOut (Object sender, EventArgs e) { FormsAuthentication.SignOut (); }

4.6 Authentication Cookies Securities Format ini didukung oleh 5 atribut, atribut ini kebanyakan self-explanatory, tetapi proteksi sudah sepantasnya mendapatsebutan khusus. Jika proteksi untuk cookies authentication ASP.NET menggunakan identitas authentication para penguna.Seluruhnya didefault, dimana instruksi ASP.NET di enskrip dan validasi cookies authentication.

Tabel Attributes of Element Attribute name loginUrl protection Description Name assigned to authentication cookies URL of the login page Default .ASPXAUTH login.aspx

Level of protection (validation and All encryption) applied to authentication cookies Lifetime of session authentication tickets in minutes Scope of authentication cookies 30 /

timeout path

BAB V PENUTUP 5.1 Kesimpulan Tidak seluruhnya halaman WEB yang dibuat akan bebas dari serangan. Dalam hal ini, perlu dirancang halaman WEB yang dapat mencegah pemakaian diluar Authentication, sehingga dapat mengamankan WEB dan Server. Sebelum merancang telebih dahulu kenali tipe-tipe keamanan, jenis-jenis serangan, arsitektur komponen dan ASP.NET serta authentication yang diterapkan. Pengetahuan ini berguna untuk melakukan tindakan preventif terhadap halaman WEB dan mengamankan data-data yang tersimpan didalam server. 5.2 Saran Tulisan ini dapat dikembangkan oleh para pembaca sehingga halaman WEB yang dirancang dan dibuat cukup efektif mencegah serangan dari penyerang. Semoga dapat menjadi bahan refrensi untuk mengembangkan WEB yang baik ditinjau dari sisi keamanan.

DAFTAR PUSTAKA 1. Basuira, Ruis, dkk, Profesional ASP.NET Security, Wrox Press LTD, Birmingham, 2002 2. Duthie, G. Andrew, Microsoft ASP.NET Step By Step, Elexmedia Kumputindo, Jakarta 2003 3. Alex Homer. Professional Active Server Page 3.0 Wrox Press LTD, April 2000 4. Andy Kurniawan, Bekajar Sendiri Microsoft Active Server Pages Elex Media Komputindo, Jakarta , Februari 2002 5. http://msdn.microsoft.com/library/default.asp?url=/library/ 6. Jeff Prosise Programming Microsoft .NET (Microsoft Press, 2002). 7. http://msdn.microsoft.com/library/en-us/dnnetsec/html/aptcatypes.asp frame=true ?