validasi eksport data no-sql dan sql dengan pemanfaatan

9
Jurnal Ilmiah Informatika dan Komputer Vol. 22 No. 2 Agustus 2017 77 VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN FUZZING Muhammad Fadly Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Gunadarma Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat [email protected] Abstrak Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi. Perusahaan yang memanfaatkan teknologi komputer untuk manajemen informasi dapat dipastikan menggunakan software database. Fuzzing adalah salah satu cara penting untuk menguji perangkat lunak untuk bug dan kerentanan. Pemanfaatan Fuzzing (Fuzz Testing) untuk validasi eksport data merupakan pemeriksaan tentang kebenaran sesuatu, baik berupa laporan atau suatu informasi. Sementara data merupakan satuan terkecil yang diwujudkan dalam bentuk angka atau huruf yang menggambarkan tentang nilai dari suatu variabel. Dengan demikian, teknis validasi data adalah suatu cara untuk melakukan pemeriksaan tentang kebenaran nilai dari suatu variabel. Validasi data sangat diperlukan sehingga hasil analisis data akan bermanfaat bagi pembuatan keputusan bila data yang ada adalah data yang baik dan benar. Kata Kunci : Basis data, fuzzing, validas VALIDITY TESTING OF EXPORTED DATA FROM NO-SQL AND SQL DATABASE USING FUZZ TESTING Abstract The database is a collection of information stored on the computer in a systematic way so that it can be checked using a computer program to obtain information. Companies that take advantage of computer technology to the management of information can be ascertained using database software. Fuzzing is one important way to test the software for bugs and vulnerabilities. Fuzzing (Fuzz Testing) is an accountability examination, either in the form of a report or information. While the data is the smallest unit that is manifested in the form of numbers or letters that describe the value of a variable. Thus, the technical validation of the data is a way to check the accountability of a variable. Data validation is needed so that the results of the data analysis will be useful for decision-making when the data is accountable and valid. Keyword: data basic, fuzzing,validity.

Upload: others

Post on 25-Oct-2021

30 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

Jurnal Ilmiah Informatika dan Komputer Vol. 22 No. 2 Agustus 2017 77

VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN FUZZING

Muhammad Fadly

Fakultas Ilmu Komputer dan Teknologi Informasi, Universitas Gunadarma

Jl. Margonda Raya no. 100, Depok 16424, Jawa Barat [email protected]

Abstrak

Database adalah kumpulan informasi yang disimpan di dalam komputer secara sistematik sehingga dapat diperiksa menggunakan suatu program komputer untuk memperoleh informasi. Perusahaan yang memanfaatkan teknologi komputer untuk manajemen informasi dapat dipastikan menggunakan software database. Fuzzing adalah salah satu cara penting untuk menguji perangkat lunak untuk bug dan kerentanan. Pemanfaatan Fuzzing (Fuzz Testing) untuk validasi eksport data merupakan pemeriksaan tentang kebenaran sesuatu, baik berupa laporan atau suatu informasi. Sementara data merupakan satuan terkecil yang diwujudkan dalam bentuk angka atau huruf yang menggambarkan tentang nilai dari suatu variabel. Dengan demikian, teknis validasi data adalah suatu cara untuk melakukan pemeriksaan tentang kebenaran nilai dari suatu variabel. Validasi data sangat diperlukan sehingga hasil analisis data akan bermanfaat bagi pembuatan keputusan bila data yang ada adalah data yang baik dan benar.

Kata Kunci : Basis data, fuzzing, validas

VALIDITY TESTING OF EXPORTED DATA FROM NO-SQL AND SQL

DATABASE USING FUZZ TESTING

Abstract

The database is a collection of information stored on the computer in a systematic way so that it can be checked using a computer program to obtain information. Companies that take advantage of computer technology to the management of information can be ascertained using database software. Fuzzing is one important way to test the software for bugs and vulnerabilities. Fuzzing (Fuzz Testing) is an accountability examination, either in the form of a report or information. While the data is the smallest unit that is manifested in the form of numbers or letters that describe the value of a variable. Thus, the technical validation of the data is a way to check the accountability of a variable. Data validation is needed so that the results of the data analysis will be useful for decision-making when the data is accountable and valid.

Keyword: data basic, fuzzing,validity.

Page 2: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

78 Fadly, Validasi Eksport…

PENDAHULUAN

Database sangat penting dalam mendukung berbagai software aplikasi, terutama aplikasi bisnis. Perusahaan yang memanfaatkan teknologi komputer untuk manajemen informasi dapat dipastikan menggunakan software database. Secara garis besar, software database dikelom-pokkan menjadi stand-alone database dan database server. Stand-alone data-base adalah seperangkat software data-base yang dijalankan dan diakses kom-puter yang tidak terhubung ke komputer lain, biasanya berupa personal komputer. Microsoft Access dan Visual FoxPro adalah beberapa contoh stand-alone da-tabase. Sedangkan database server meru-pakan software database yang banyak digunakan untuk jaringan komputer.

Database server dapat menangani banyak user, mengolah data yang sangat banyak, dan akses data yang cepat. MySQL, Oracle, IBM DB2, Microsoft SQL Server merupakan contoh database server relational dan ada juga database non relasional seperti Cassandra, mong-goDB, dan lain-lain. Database server banyak digunakan dari pada stand-alone database. Akan tetapi untuk mengelola database server lebih sulit dari pada stand-alone database.

E-Goverment adalah penggunaan teknologi informasi oleh pemerintah un-tuk memberikan informasi dan pel-aya-nan bagi warganya, urusan bisnis, serta hal-hal lain yang berkenaan dengan pemerintahan. E-Goverment dapat diapli-kasikan pada legislatif, yudikatif, atau administrasi publik, untuk meningkatkan efisiensi internal, menyampaikan pelaya-nan publik, atau proses kepemerintahan yang demokratis.

Sebuah aplikasi E-Go-verment se-bagai objek bahan studi dalam jurnal ini dikarenakan ada beberapa kendala yang sering dihadapi dalam hal pengolahan database. Kendala yang dihadapi adalah ketika kantor pusat ingin mengetahui data

pada setiap kantor cabang harus dilaku-kan import data ke sistem yang berada di kantor pusat (data masih terdistribusi) dan ketika generate reporting lambat. Sistem ini dibagi beberapa level, level bawah (kantor cabang), pengguna sistem masih menggunakan stand-alone data-base yaitu FoxPro dengan format dbf se-dangkan untuk level pusat (kantor pusat), kontrolnya menggunakan database ser-ver yaitu Cassandra. Hal ini mengharus-kan adanya migrasi data jika ada data masuk dari kantor cabang ke kantor pusat ataupun sebaliknya. Berkenaan dengan solusi aplikasi database ini, ada beberapa hal yang direkomendasikan sebuah Data-base Cassandra [5] untuk menangani permasalahan tersebut yaitu Big Data, Cloud Database, Continuous Database Availability, Multi-Data Center Databa-se, NoSQL, Scalable Enterprise Search, Time Series Data. Big data merupakan salah satu fitur dari Database Cassandra yang dapat memecahkan ragam data, velocity, volume dan kompleksitas data.

Fuzz testing merupakan serangkai-an test yang dilakukan dengan mengim-plementasi mutasi/modifikasi random ke-pada input dalam format tertentu, dari suatu program kemudian melakukan test terhadap hasil yang dihasilkan [4]. Ide dari fuzz testing ialah dengan memasuk-kan input yang telah dimodifikasi ini di-lakukan secara berulangtest ini dilakukan kedalam program seingga dapat meng-ungkap bug keamanan, seperti buffer overflows.

Dengan latar belakang permasala-han tersebut, schema mappings database dan reversibility data dibutuhkan. Sche-ma mapping database merupakan pen-cocokan/memetakan dua objek database yang berbeda agar saling terkait dan reversibility data ialah sebuah proses data yang dapat dikembalikan kedalam bentuk awal. Maka penulis mengangkat perma-salahan database ini ke dalam jurnal

Page 3: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

Jurnal Ilmiah Informatika dan Komputer Vol. 22 No. 2 Agustus 2017 79

dengan judul " Validasi eksport data No-SQL dan SQL dengan pemanfaatan fu-zzing ".

METODE PENELITIAN

Metode yang digunakan dalam

penelitian ini, yaitu: (a) Dalam pembaha-san ini, metode penelitian yang dipa-kai penulis adalah studi pustaka, yaitu penulis memperoleh semua bahan untuk pembuatan aplikasi ini dari buku-buku, jurnal yang terkait dan internet. (b) Pe-rancangan program merupakan sesuatu yang amat penting. Oleh karena itu pe-nulis merancang program ini mengguna-kan flowchart agar dapat lebih mudah dalam mengerjakan program tersebut.

Implementasi dalam membangun program ini dengan menggunakan modul /library python yaitu Fussil Framework dengan Database Cassandra. Standar spesifikasi penggunaan Database Ca-ssandra dan tools yang digunakan ialah: Processor minimal core 2 duo, RAM minimal 4 GB, Sistem operasi linux dan VGA onboard.

HASIL DAN PEMBAHASAN

Berdasarkan literatur yang diguna-

kan, untuk mencapai studi objektif perlu dilakukan analisis dan perancangan. Ta-hap ini terdiri dari dua langkah, yaitu perancangan import data fuzzer ke Ca-ssandra dan perancangan eksport data kedalam format dbf. Analisis kebutuhan diperlukan untuk berjalannya program ini.

Analisis Kebutuhan Program

Dalam membangun program ini ada beberapa kebutuhan mencakup pekerjaan-pekerjaan penentuan kebutu-han atau kondisi yang harus dipenuhi dalam ter-selesainya program, yaitu: (1) Mempersiapkan area kerja (framework). Pada penelitian ini editor yang digunakan ialah Eclipse Juno. (2) Mempersipkan,

setting dan konfigurasi library-library yang dibutuhkan: (a) library PyDev, stan-dar library yang harus digunakan untuk membangun program menggunakan ba-hasa pemrograman python. (b) library fusil framework, library yang digunakan untuk generate random data. (c) library dbfpy, digunakan untuk import dan eks-port data dalam bentuk dbase file (dbf). (d) library CQL (Cassandra Query Language), digunakan untuk query data pada Database Cassandra. (e) library thrift, digunakan untuk menghubungkan Database Cassandra dengan bahasa pemrograman. (f) library PyCassa, di-gunakan untuk menghubungkan program python dengan Cassandra.

Analisis Kebutuhan Alur Program

Penelitian ini menggunakan bebe-rapa parameter atau acuan agar dapat ter-capainya alur program dengan baik. Pe-nelitian ini terdapat 2 parameter yang akan dilakukan yang akan di tunjukan pa-da gambar 1.

Pada gambar 1 terdapat tahapan-tahapan agar tercapainya penelitian ini. Sebelum terfokus pada proses eksport data, dilakukan import data hasil fuzzer menggunakan fuzzing yang dimasukkan dalam Database Cassandra. Pada tahap pertama terdapat random data pada Database Cassandra yang di hasilkan oleh fuzzer. Hasil fuzzer pada Database Cassandra terdapat pada gambar 2.

Kedua terdapat "target", "target" tersebut ialah diasumsikan sebagai kom-parasi data untuk data yang berada dalam database. "Target" tersebut struktur tabel relational sedangkan pada tahap pertama data yang berada dalam Database Cassandra struktur tabel non relational. Jadi ketika proses eksport data ber-lang-sung yang terdapat pada tahap ketiga, pada tahap keempatlah yang berperan da-lam proses verifikasi/menyesuaikan antar data yang berada dalam Database Ca-ssandra dengan data yang dikeluarkan

Page 4: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

80 Fadly, Validasi Eksport…

menjadi format dbf, yang nantinya data tersebut disimpan dalam format dbf.

Perancangan Import data Fuzzer

Rancangan flowchart impor data diperlukan di dalam proses pembuatan eksport data untuk mendukungnya pene-litian ini. Perancangan import digunakan untuk mengkomunikasikan kebutuhan program agar dapat menguji reversibility data yang berada pada database NoSQL, Cassandra.

Flowchart pada tahap import data fuzzer yaitu berupa data acak dalam jum-lah banyak kedalam Database Cassandra. Import data tersebut dimulai pada library/ modul python yaitu fussil framework yang mengenerate data. Hasil data acak yang fuzzer ciptakan pada penelitian ini di simpan dalam file berformat dbf. Setelah data fuzzer di simpan dalam file dbf, dilakukan import data kedalam Database Cassandra.

Gambar 1. Metode Penelitian Eksport Data

Gambar 2. Data Fuzzer Pada Cassandra

. Gambar 3. Flowchart Import Data Fuzzer

Page 5: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

Jurnal Ilmiah Informatika dan Komputer Vol. 22 No. 2 Agustus 2017 81

Perancangan eksport data Pada gambar 4 adalah flowchart

eksport data yang berada pada Database Cassandra. Eksport data ini menggu-nakan matching engine untuk verifikasi antara data. Ketika proses matching data, pada penelitian ini menguji banyaknya data dan kesesuaian data ketika proses eksport yang hasil eksport data disimpan dalam format database FoxPro yaitu

dBase Format (DBF). Cara komparasi yang dilakukan ialah dengan memban-dingkan data yang berada dalam Data-base Cassandra dengan file dbf yang te-lah jadi dalam bentuk file. File dbf hasil dbf di baca dan disesuaikan. Apabila data sesuai dengan database maka akan me-nampilkan pesan sukses dan apabila tidak sesuai akan memberikan laporan ketidak-sesuaian.

Gambar 4. Flowchart Eksport data

Konfigurasi Fusil Framework Sebelum tahap eksport data pene-

litian ini terlebih dahulu membuat data yang akan diimport kedalam Database Cassandra. Pembuatan data pada pe-nelitian ini memanfaatkan metode fuzz testing (fuzzing), metode fuzzing ini ber-tujuan untuk menciptkan data acak (ran-dom data) dalam jumlah banyak.

Tools atau modul yang digunakan untuk penelitian ini ialah Fusil Frame-work, sebuah library python untuk men-ciptakan program fuzzing. Untuk meng-gunakan library tersebut ada beberapa langkah yang harus dilakukan, yaitu: (1) Python 2.5+. Mulai dari fussil versi 1.3, tergantung pada versi python 2.5+ dan python-ptrace 0.6+. Install program py-thon 2.5 atau versi di terbarunya seperti python 2.7.5 atau python 3.2.5 yang da-pat di unduh diwesite resminya http://py

thon.org/. (2) python-ptrace 0.6.3+. py-thon-ptrace ialah sebuah debugger yang dibutuhkan ketika proses penggunaan fu-sil framework. (3) Untuk mengkompile function dari fusil direkomendasikan menggunakan GCC tools tetapi selain itu juga dapat menggunakan IDE seperti Eclipse. Setelah instalasi kebutuhan yang diperlukan, ada beberapa tambahan paket program karena penggunaan sistem ope-rasi linux yaitu linux_ioctl dan linux_ syscall.

Instalasi Fusil Framework

Pertama setting user dan group yang ada pada sistem operasi linux karena fusil menggunakan user "fusil" and group "fusil" untuk menjalankan program untuk mencegah penghapusan file atau proses yang sedang berjalan. Setelah itu menggunakan command line

Page 6: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

82 Fadly, Validasi Eksport…

Untuk instalasi fusil tersebut: (1) Tipe sebagai root: ./setup.py install atau (2) menggunakan sudo program: sudo py-thon setup.py install. Pada gambar 3.5 adalah hasil apabila instalasi fusil frame-work berhasil dan dapat dicoba apakah hasil instalasi berjalan dengan baik.

Instalasi, Setting dan Konfigurasi Database Cassandra

Instalasi aplikasi ini, perlu diperha-tikan versi bahasa pemrograman java dan python. Versi java 1.6 keatas dan versi python 2.7, ada beberapa library yang harus di pasang, yaitu : (1) openssl. (2) libopenssl0_9_8.(3) python-Twisted. (4) openjdk-devel (5) ibxmlsec1-openssl-devel. (6) python –V (7) which openssl. Instalasi, pengaturan dan konfigurasi Database Cassandra dan OpsCenter :

Gambar 5. Hasil Instalasi Fusil

Gambar 3.6 Koneksi Database Cassandra

(a)

(a)

export DSE_HOME=$HOME/datastax/dsc-1.0.1 export CASSANDRA_HOME=$DSE_HOME/resources/cassandra export OPSC_HOME=$HOME/datastax/opscenter-1.3.1 export PATH="$PATH:$DSE_HOME/bin:$CASSANDRA_HOME/bin:$OPSC_HOME/bin"

Page 7: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

Jurnal Ilmiah Informatika dan Komputer Vol. 22 No. 2 Agustus 2017 83

(b)

Gambar 7 (a) Hasil fuzzer. (b) Hasil fuzzer diperbesar

Gambar 8. Uji Cba Eksport dan Matching Data Pertama Hasil Data Fuzzer

Pada penelitian ini fuzzer dapat menggenerate ratusan, ribuan, puluh ri-buan bahkan sebanyak yang diinginkan. Dibawah ini adalah hasil generate ran-dom data yang dihasilkan oleh fuzzer (fuzz testing).mDari hasil fuzzer pada gambar 7 yang sudah diimport kedalam database cassandra, dapat dilakukan matching data. Pada gambar 3.8 merupa-kan ujicoba pertama eksport data dan matching data, pada percobaan pertama masih mengalami kegagalan dikarenakan tidak dapat memparsing data hex byte.

Percobaan kedua pada gambar 9 mencoba untuk debugging percobaan pertama dan mencari sebab error tersebut.

Kegagalan tersebut dikarenakan tidak dapat memparsing dan deserialized seba-gai text. Pada percobaan ketiga gambar 10 sudah dapat mengeksport data dalam format dbf file tetapi ketika proses matching data masih mengalami kegaga-lan. Proses penyamaan dengan melaku-kan penyamaan data yang berasal dari database dengan data hasil pada file dbf. Kemudian melakukan debugging kembali kegagalan disebabkan oleh perbedaan ka-rakter atau data yang dihasilkan pada database cassandra dengan data/karakter pada dbf file. Pada uji coba keempat telah berhasil eksport data dan sudah dapat matching data. Pada ujicoba keempat dengan melakukan penyamaan pengko-

Page 8: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

84 Fadly, Validasi Eksport…

dean karakter menjadi UTF-8 dan meng- hasilkan pencapaian penelitian.

Gambar 9. Debugging eksport dan matching data kedua

Gambar 10. Debugging Eksport dan Matching Data Kedua

Gambar 11. Hasil Eksport dan Matching Data

Page 9: VALIDASI EKSPORT DATA NO-SQL dan SQL DENGAN PEMANFAATAN

Jurnal Ilmiah Informatika dan Komputer Vol. 22 No. 2 Agustus 2017 85

SIMPULAN DAN SARAN Pada kesempatan ini, telah melaku-kan penelitian pada eksport data dengan memanfaatkan fuzzing yaitu dengan fusil framework. Eksport data pada penelitian ini melibatkan dua jenis teknologi data-base yaitu relational dan non relational. Kedua teknologi database tersebut memi-liki masing-masing karakteristik, di mana memiliki struktur tabel yang berbeda, yang mengharuskan pertukaran data (data exchange) diperlukan agar terbentuknya keakuratan antara skema sumber dengan skema sasaran. Dari perbedaan teknologi database seperti perbedaan skema basis data dan struktur tabel dapat disimpulkan adalah bahwa untuk menjembatani proses eksport data NOSQL ke SQL harus mela-kukan proses penyesuaian bentuk dan skema data yang dihasilkan, pada proses penyesuaian data (matching data) di-perlukan standarisasi pengkodean (cha-racter sets). DAFTAR PUSTAKA [1] [lorg,2003] lorg. Fuzz-Testing With

Nose page http://www.algorithm.co.il/blogs/programming/python/fuzz-testing-with-nose/

[2] [Tom Krusz, 2007], Tom Krusz. The Mangle/Unmangle algorithm page http://is.cs.nthu.edu.tw/course/2010Spring/CS535100/homework/mangle.doc

[3] [Gadi Evron, 2007], Gadi Evron. Open source fuzzing tools

[4] [Godefroid, et al, 2008] Godefroid, Patrice, Michael Y. Levin, and David

A. Molnar. "Automated whitebox fuzz testing." NDSS. Vol. 8. 2008.

[5] [Planet cassandra community, 2011], Planet cassandra community http:// www. datastax.com/what-we-offer/ products-services/datastaxenterprise/ apache-cassandra

[6] [Jake Edge , 2009], Jake Edge. Fusil: a Python fuzzing library page http://lwn.net/Articles/322826/

[7] [Ycombinator.com, 2010], Ycom-binator.com. SQL Databases Don’t Scale page. http://news.ycombinator. com/item?id=859468

[8] [Roberto V. Zicari , 2010], Roberto V. Zicari. ODBMS Industry Watch page. http://news.ycombinator.com/ item?id=859468

[9] [Buytaert.net , 2010], Buytaert.net . NoSQL and SQL page http://buy-taert.net/ nosql- and-sql

[10] [Eflorenzano.com, 2010], Efloren-zano.com . My Thoughts on NoSQL page.http://www.eflorenzano.com/blog/post/my-thoughts-nosql/

[11] [R. Fagin , 2010], R. Fagin . Schema mappings page http://users.soe.ucsc .edu/~wctan/Projects/schemamappings/index.html

[12] [Bounimova, et al, 2013] Bouni-mova, Ella, Patrice Godefroid, and David Molnar. "Billions and billions of constraints: Whitebox fuzz testing in production." Proceedings of the 2013 International Conference on Software Engineering. IEEE Press, 2013.