PERANCANGAN KEAMANAN HALAMAN WEB BERBASIS PLATFORM PHP TERHADAP SERANGAN SQL INJECTION Meita Setiasih Binus University, Jakarta, DKI Jakarta, Indonesia
Deborah Estefanus Binus University, Jakarta, DKI Jakarta, Indonesia dan
Michael Andinata Binus University, Jakarta, DKI Jakarta, Indonesia
Abstrak
Tujuan penelitian, ialah melindungi dan menutup celah keamanan pada sebuah web dimana celah tersebut dapat dimanfaatkan oleh penyerang, dengan membuat konfigurasi dalam melindungi sebuah web dari usaha penyerangan yang dilakukan dengan menggunakan metode SQL Injection. Metode penelitian yang digunakan dalam skripsi ini adalah metode studi pustaka, metode pengumpulan data dan metode perancangan. Metode studi pustaka dilakukan dengan mempelajari teknik hacking yang ada, menggunakan bantuan dari hacking tools yang tersedia dan mempelajari berbagai kasus hacking yang pernah terjadi. Metode perancangan pada penulisan skripsi ini terbagi dalam beberapa tahap, yaitu analisis, desain/perancangan,
simulasi/prototyping, implementasi, dan evaluasi. Hasil yang dicapai berupa sebuah tahapan konfigurasi dalam mencegah penyerangan terhadap sebuah web dengan menggunakan metode SQL Injection, untuk menjaga database dari penyerang yang hendak mengambil data-data yang dimiliki oleh web tersebut, baik itu data admin, data customer, maupun data-data penting lainnya. Simpulan dari hasil penulisan skripsi ini adalah konfigurasi yang dibuat untuk mencegah serangan dengan metode SQL Injection, dapat diimplementasi dengan baik dan memberikan keamanan bagi web berbasis PHP versi 5, sehingga memperkecil kemungkinan untuk ditembus oleh pihak luar yang tidak memiliki wewenang dalam mengambil alih hak akses web dengan metode SQL Injection.
Kata Kunci : SQL Injection, PHP, Hacking, Web.
1. Pendahuluan Internet saat ini telah menjadi kebutuhan yang sangat mendasar bagi masyarakat modern untuk menunjang setiap aktifitasnya. Dengan adanya internet maka pertukaran data dan informasi dapat dilakukan secara real time. Hal ini juga mengubah berbagai kebiasaan yang dulunya dilakukan secara konvensional. Contohnya dalam proses mengirim surat, dimana dulunya harus menggunakan jasa pos yang cenderung lebih lama, namun sekarang pengiriman surat dapat dilakukan dengan email, dan waktu yang dipakai untuk mengirim pesan hanya dalam hitungan millisecond. Contoh lainnya adalah dalam hal finansial dan publikasi, seperti pembuatan web yang digunakan baik untuk mempromosikan suatu produk, maupun untuk melakukan transaksi jual beli. Dan pada umumnya, bahasa pemrograman web yang digunakan adalah PHP yang memakai Mysql sebagai databasenya. Dengan adanya web ini, maka dapat memudahkan konsumen dalam berbelanja, dan meningkatkan pemasukan bagi penjual. Melihat kemudahan dan prospek yang ditawarkan melalui web untuk berjualan, maka semakin banyak web yang bermunculan, baik untuk sekedar mempromosikan produk, maupun untuk langsung melakukan order.
Seiring dengan semakin banyaknya web tersebut, tingkat ancaman dari serangan seperti SQL Injection semakin meningkat, karena banyaknya kemungkinan kelemahan yang ada pada setiap web. Dengan menggunakan SQL Injection, maka penyerang dapat memperoleh data yang tersimpan pada database, melalui data tersebut, maka informasi produk, account user dan bahkan account administrator dapat digunakan oleh penyerang, sehingga menimbulkan ancaman keamanan dan kerugian finansial bagi pemilik web. Penyerangan dengan menggunakan SQL Injection sangat mudah dilakukan, bahkan saat ini telah banyak program – program yang dapat digunakan untuk membantu dalam melakukan SQL Injection, sehingga konfigurasi keamanan halaman web sangat perlu dilakukan, karena banyak web yang masih rentan terhadap serangan ini, dan dengan kemudahan dalam melakukan SQL Injection, itu sama artinya dengan meningkatnya jumlah penyerang yang dapat mengancam data dari web.
2. Metodologi Ruang lingkup dari penelitian mencakup studi pustaka, pengumpulan data, dan metode perancangan. Adapun pembahasan yang dilakukan sebagai berikut : -
Studi pustaka
-
Metode Perancangan
-
Evaluasi
2.1.
Studi Pustaka Studi pustaka terbagi mejnjadi tiga bagian, yaitu: 1) Hacking tools. 2) Teknik hacking. 3) Penalaran berbagai kasus. Hacking tools yang digunakan adalah Havij yang berfungsi sebagai penetration tool serangan SQL Injection.
Teknik hacking dilakukan dengan mempelajari serangan SQL Injection. Juga mempelajari cara untuk mengantisipasi pelacakan jejak saat melakukan serangan terhadap web test case. Penalaran berbagai kasus dilakukan dengan mempelajari berbagai kasus serangan SQL Injection yang pernah terjadi. Sehingga dapat dijadikan bahan pembelajaran agar kesalahan yang sama tidak dilakukan,
namun metode
serangannya dapat dipelajari untuk meningkatkan keamanan.
2.2.
Metode Perancangan Metode perancangan yang digunakan meliputi : 1) Analisis 2) Desain/Perancangan 3) Simulasi/Prototyping Analisis dilakukan dengan menganalisa keamanan yang ada pada web. Desain/perancangan dilakukan dengan merancang keamanan web dari sisi coding PHP maupun Mysql, serta merancang konfigurasi services pada web server lokal maupun hosting. Simulasi/prototyping dilakukan dengan menguji coba sistem konfigurasi di server testing.
2.3.
Evaluasi Evaluasi yang ada terdiri dari: 1) Evaluasi hasil serangan SQL Injection Dari hasil evaluasi yang sudah didapatkan ada berberapa jenis celah terhadap serangan SQL Injection yang mungkin dilakukan pada sebuah web yang berbasis PHP.
2) Evaluasi Hasil Konfigurasi Pencegahan SQL Injection pada PHP Setelah
dilakukan
konfigurasi
terhadap
celah
SQL
Injection,
seperti
implementasi pada code PHP(Syntax mysql_real_escape_string, return value, validasi dengan preg_match() dan hash MD5 pada password) dan penyimpanan file, serta implementasi konfigurasi pada server lokal (syntax magic_quotes_gpc pada file php.ini, display_errors pada file php.ini, instalasi mod_security pada linux) maupun pada server web hosting (magic_quotes_gpc pada file .htaccess, display_errors pada file .htaccess). .
3. Kesimpulan Berdasarkan hasil analisis, perancangan, pengujian, implementasi, dan evaluasi, maka dapat diambil beberapa kesimpulan, yaitu: 1. Terciptanya konfigurasi untuk pencegahan terhadap serangan SQL Injection pada web berbasis PHP versi 5 dengan database menggunakan MySql. 2. Penggunaan dan konfigurasi htaccess yang tersedia dari web hosting dalam mencegah terjadinya serangan SQL Injection. 3. Menutupi celah kelemahan PHP dalam segi coding pemrograman. 4. Penggunaan dan konfigurasi php.ini pada web server lokal.
Daftar Pustaka [1] Cisco Systems, Inc. 2002. Understanding TCP/IP. Diperoleh 11-18-2011 dari http://www.cisco.com/univercd/cc/td/doc/product/iaabu/centri4/user/scf4ap1.htm. [2] Gilbert, H. 1995. Introduction to TCP/IP. Diperoleh 11-18-2011 dari http://www.yale.edu/pclt/COMM/TCPIP.HTM. [3] Gralla, Preston. (1999). How The Internet Works. Indiana: Que Corporation. [4] ITSecTeam Security Research. 2011. Havij v1.15 Advanced SQL Injection. Diperoleh 01-04-2012 dari http://www.itsecteam.com/en/projects/project1.htm. [5] Larson, E.,& Stephens B. (2000). Administrating Web Servers, Security & Maintenance. New Jersey: Prentice Hall. [6] Mcclure, S., Saumil S.,& Sheeraj S. (2003). Web Hacking Serangan dan Pertahanannya. Yogyakarta: Penerbit Andi. [7] Mclure, S., Joel S.,& George K. (2003). Hacking Exposed Network Security Secrets and Solutions. (4th edition). Australia: McGraw Hill. [8]
OWASP.
2010.
Testing
for
SQL
Injection.
Diperoleh
01-23-2012
dari
https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OWASP-DV-005). [9]
The
PHP
Group.
2011.
General
Information.
Diperoleh
11-18-2011
dari
http://id.php.net/manual/en/faq.general.php. [10]
The
Tor
Project,
Inc.
n.d.
https://www.torproject.org/about/overview.html.en.
TOR.
Diperoleh
01-18-2012
dari
WEB PAGE SECURITY DESIGN BASED PHP PLATFORM FOR SQL INJECTION ATTACK Meita Setiasih Binus University, Jakarta, DKI Jakarta, Indonesia
Deborah Estefanus Binus University, Jakarta, DKI Jakarta, Indonesia and
Michael Andinata Binus University, Jakarta, DKI Jakarta, Indonesia
Abstract
Research purposes, is to protect and close security holes in a web in which the gap could be exploited by attackers, make configuration to protect a web from assault carried out by using SQL Injection. The research method used in this thesis is literature study method, data collection method and design method. Methods of literature study carried out by studying hacking techniques, using hacking tools that are available and study the various cases of hacking that has ever happened. Design method in the writing of this thesis is divided into several stages, analysis, design, simulation/prototyping, implementation, and evaluation. The results achieved like a configuration step for preventing attacks on the web by using SQL Injection method, to preserve database from attackers who want to retrieve data that is owned by the web, be it admin
data, customer data, as well as other important data. The conclusions from the results of this thesis writing is a configuration designed to prevent SQL Injection attack methods can be implemented properly and provide security for web-based PHP version 5, so it reduces the chance to be penetrated by outsiders who do not have the authority to take over the web permissions by SQL Injection method.
Keyword : SQL Injection, PHP, Hacking, Web.
1. Introduction Internet today has become a fundamental requirement for modern society to support their activity. With the Internet, the exchange of data and information can be done
in
real time
ways. It
can
also change
the
habits that
were
once done conventionally. For example in the process of sending a letter, in which the former have to use the postal service that tend to be long, but now can be done by sending an email letter, and the time taken to send messages in a matter of milliseconds.
Another example is in the financial and publication field, like the using of web to promote a product, and to make a transaction. In general, the web programming language is PHP, which using Mysql as its database. The web can make the consumer easier
to
shopping,
and
increase
the
income
of
the
seller.
Seeing the
ease and prospects offered via the web to sell, the more the web that have sprung up, either to simply promote a product, or to direct an order.
With increasing number of web, such as the threat of SQL Injection attacks is increasing, because the number of possible weakness in each web. By using SQL Injection, the attacker can obtain the data that stored in the web database, through those data, the products information, user accounts and even the administrator account can be used by the attacker, leading to security threats and financial losses for the web owner. Using a SQL Injection attack is very easy to do, even when it has a lot of programs that can be used to assist in the conduct SQL Injection, so that the security configuration web page is very necessary, because many web is still vulnerable to this attack, and with the ease of do SQL Injection, it is tantamount to increasing the number of attackers that can threaten data from the web.
2. Methodology The scope of research includes the study of literature, data collection, and design methods. The discussion is conducted as follows: - Study of literature - Design Methods - Evaluation
2.1.
Study of Literature Literature is divided into three parts : 1) Hacking tools. 2) Hacking techniques. 3) Reasoning various cases.
Hacking tools are used is Havij that serves as a penetration tool for SQL Injection attacks. Hacking techniques is done by studying SQL Injection attacks. Also learn how to anticipate tracking the trail during an attack on a web test case. Reasoning of cases is done by studying various cases of SQL Injection attacks that ever happened. So it can be used as learning materials for the same mistakes are not made, but the method of attack can be learned to improve security.
2.2.
Design Method Design methods used include : 1) Analysis 2) Design 3) Simulation/Prototyping The analysis is conducted by analyzing the existing security on the web. Design is conducted by designing web security from the side coding of PHP and Mysql, as well as designing the configuration of services at web server local and hosting. Simulation/prototyping is conducted by testing the system configuration at testing server.
2.3.
Evaluation The evaluation consists of: 1) Evaluation the results of the SQL Injection attack From the evaluation result that already obtained there are some vulnerabilities of SQL Injection attack that possible to do in the PHP web based.
2) Evaluation configuration of prevention to SQL Injection in PHP After the configuration of SQL Injection vulnerabilities, such as the implementation of the PHP code (syntax mysql_real_escape_string, return value, validation with preg_match() and MD5 hash on password) and file storage, as the implementation of the configuration on the local server (syntax magic_quotes_gpc in the php.ini file, display_errors in the php.ini file, mod_ security install on linux) and on the web server hosting (magicquotes_gpc on htaccess file, display_errors on htaccess file). .
3. Conclusion Based
on
the
analysis,
design, testing, implementation, and evaluation,
it may take a few conclusions : 1) The creation of a configuration for the prevention of SQL Injection attacks on web-based PHP version 5 with database using MySql. 2) Htaccess usage and configuration are available from web hosting to prevent SQL Injection attacks. 3) Cover the gap in terms of coding flaws PHP programming. 4) Use and configuration of php.ini on a local web server.
References [1] Cisco Systems, Inc. 2002. Understanding TCP/IP. Diperoleh 11-18-2011 dari http://www.cisco.com/univercd/cc/td/doc/product/iaabu/centri4/user/scf4ap1.htm. [2] Gilbert, H. 1995. Introduction to TCP/IP. Diperoleh 11-18-2011 dari http://www.yale.edu/pclt/COMM/TCPIP.HTM. [3] Gralla, Preston. (1999). How The Internet Works. Indiana: Que Corporation. [4] ITSecTeam Security Research. 2011. Havij v1.15 Advanced SQL Injection. Diperoleh 01-04-2012 dari http://www.itsecteam.com/en/projects/project1.htm. [5] Larson, E.,& Stephens B. (2000). Administrating Web Servers, Security & Maintenance. New Jersey: Prentice Hall. [6] Mcclure, S., Saumil S.,& Sheeraj S. (2003). Web Hacking Serangan dan Pertahanannya. Yogyakarta: Penerbit Andi. [7] Mclure, S., Joel S.,& George K. (2003). Hacking Exposed Network Security Secrets and Solutions. (4th edition). Australia: McGraw Hill. [8]
OWASP.
2010.
Testing
for
SQL
Injection.
Diperoleh
01-23-2012
dari
https://www.owasp.org/index.php/Testing_for_SQL_Injection_(OWASP-DV-005). [9]
The
PHP
Group.
2011.
General
Information.
Diperoleh
11-18-2011
http://id.php.net/manual/en/faq.general.php. [10]
The
Tor
Project,
Inc.
n.d.
TOR.
https://www.torproject.org/about/overview.html.en.
Diperoleh
01-18-2012
dari
dari