Apakah Log Audit Trail itu ??

Apakah Log Audit Trail itu ??

Pada suatu hari, sebuah data penting hilang tidak tentu rimbanya. Tentu saja karena sedemikian banyaknya user yang menggunakan aplikasi, atasan Bill menemui masalah untuk menemukan siapa pelakunya. Sebagai programmer aplikasi tersebut, Bill diminta menghadap atasan untuk menemukan solusinya.

Atasan (dengan suara berat) : “Begini, saya ingin tahu bagaimana hilangnya data yang sangat penting itu!”
Bill: “Eh.. baik, Pak. Data tersebut hilang dua hari yang lalu, tepat pukul 17:30, dilakukan oleh karyawan bapak, dengan nomor induk pegawai P007”.
Atasan: “Bagus! Rupanya kamu telah menggunakan Log Audit Trail di dalam aplikasi! Gaji kamu tidak jadi saya potong!”
Bill: “Log audit? Aplikasi? Ehm... iya, Pak, terima kasih!”
Atasan: “Sekarang panggil si... siapa itu, P007!”
Bill: “Errr.. maaf, Pak, beliau sudah resign, dan titip saya menyampaikan informasi tadi kepada Bapak....”

Kasus imajiner di atas menunjukkan salah satu peran penting fi tur Log Audit Trail (atau sering juga disebut dengan Log Tracking), karena tidak semua pengguna aplikasi mengakui (atau menyadari) telah melakukan kesalahan. Aplikasi itu sendiri harus mampu mencatat perubahan yang terjadi pada database, terutama untuk data yang bersifat krusial. Pada aplikasi database, Log Audit Trail merupakan fi tur yang menyediakan serangkaian record yang memperlihatkan siapa yang mengakses data tertentu, dan operasi apa yang dilakukannya, pada tanggal dan waktu tertentu. Sederhananya, Anda dapat membayangkan semua kegiatan menghapus, menambah, ataupun mengubah data akan disimpan dalam table log, berikut dengan informasi tanggal dan jam, beserta user yang melakukannya (user yang bersangkutan terdeteksi dari login pada aplikasi). Log audit ini dapat membentuk kronologis data tertentu, jika diurutkan berdasarkan waktu.

Fungsi Log Audit Trail

Dalam contoh kasus di atas, dan mungkin dalam persepsi kebanyakan orang, Log Audit Trail dibuat untuk keperluan menangkap basah pelaku kesalahan (baik disengaja maupun tidak). Tetapi sebenarnya, fungsi Log Audit Trail tidak terbatas hanya sebagai bukti kesalahan yang dilakukan seseorang. Log Audit Trail pada aplikasi database juga memiliki fungsi atau keuntungan lainnya sebagai berikut:

1. Dari data Log Audit, dapat dikembangkan untuk membentuk statistik tertentu, misalnya table mana yang memiliki frekuensi paling sering diakses. Juga dapat dilakukan statistik akses berdasarkan user/pengguna aplikasi.

2. Membentuk statistik periode waktu, di mana banyak terjadi transaksi. Bisa jadi statistik ini dapat menjadi informasi yang bermanfaat, untuk dapat ikut berperan menentukan kebijaksanaan atau pertimbangan manajemen.

3. Membentuk sistem komputerisasi yang aman dan terpercaya, juga tidak mengenal perlakuan khusus terhadap pengguna tertentu. Log Audit yang baik berlaku adil, menyimpan semua kegiatan yang dilakukan pengguna dalam level yang bertugas mengoperasikan database.

4. Menyimpan kronologis data tertentu, misalnya kapan sebuah item tertentu dibuat, diubah, terjadi transaksi, dan seterusnya. Log Audit yang baik mampu menampilkan keseluruhan data tersebut secara kronologis.

5. Membentuk disiplin dan tanggung jawab pengguna aplikasi. Masing-masing pengguna bertanggung jawab atas data yang diproses sesuai dengan wewenang dan tugasnya.

Karena itu, keberadaan Log Audit Trail seharusnya tidak menjadi beban bagi pengguna aplikasi, walaupun tidak dapat dipungkiri bahwa sebagian pengguna justru merasa takut, dan seolah-olah dimata-matai dengan adanya Log Audit Trail. Tetapi dengan pengertian bahwa sudah menjadi tanggung jawab kita masing-masing untuk melakukan tugas tersebut, maka Log Audit justru bukan untuk menjadi bukti kesalahan agar dapat menghukum, tetapi justru menjadi pelindung, dan salah satu bukti konsistensi dan kinerja yang baik. Andaikan terjadi kesalahan yang tidak disengaja, hal tersebut akan bermanfaat bagi kita untuk melakukan instropeksi dan koreksi, sehingga menghasilkan sesuatu yang lebih baik lagi.

Cara Kerja

Di luar aplikasi database, mungkin Anda sering mendengar berbagai macam log, misalnya Log Event pada sistem operasi Windows. Log tersebut otomatis diciptakan untuk setiap event yang terjadi pada sistem.

Log Audit Trail pada Aplikasi Database

Alkisah, Bill (nama samaran) telah menciptakan sebuah aplikasi database yang memiliki fasilitas multiuser, dan digunakan oleh perusahaan di mana Bill bekerja. Berbagai pengguna keluar masuk aplikasi Bill setiap harinya, dan melakukan perubahan pada database. tuk fi le binary/text, ataupun dalam bentuk table. Berikut adalah pertimbangan untuk masing- masing jenis media penyimpanan:

1. File Binary.

Mengingat ukuran log yang dapat mencapai ukuran relatif besar, Anda dapat melakukan penghematan kapasitas ruang harddisk, dengan menyimpan log pada fi le binary. Walaupun memiliki keuntungan dari sisi penggunaan kapasitas, tetapi fi le binary tentunya tidak dapat dibaca begitu saja melalui text editor, karena Anda hanya akan melihat karakter-karakter biner yang tidak dapat dimengerti. Anda harus membuat modul atau program untuk melakukan konversi fi le biner ini, menjadi format yang dapat dibaca dengan mudah.

2. File Teks.

Merupakan jenis log yang mudah digunakan oleh siapapun, Anda dapat langsung melihatnya pada text editor favorit Anda. Kerugiannya selain menyita kapasitas harddisk yang relatif besar, juga tidak terdapat keamanan yang memadai. Siapapun yang dapat mengakses file tersebut akan dapat melihat isi fi le log ini, dan bisa jadi dapat mengubahnya, jika memiliki hak untuk mengedit fi le tersebut.

3. Table.

Dengan menyimpan log di dalam table, Anda dapat memperoleh keuntungan lain, yaitu kemudahan untuk memroses lebih lanjut data log di dalam table tersebut, baik untuk kegunaan analisis ataupun pencarian data. Selain itu, penyimpanan dalam table relatif lebih aman, karena untuk mengaksesnya harus melalui akses database yang menjadi hak database administrator. Data di dalam table juga dapat dengan mudah diekspor menjadi format text, excel, ataupun format umum lainnya, bilamana diperlukan. Lalu, informasi apa saja yang perlu disimpan dalam sebuah Log Audit Trail aplikasi database? Beberapa fi eld di bawah dapat Anda pertimbangkan:

1. Tanggal dan jam.
2. User/Pengguna.
3. Nama table yang diakses.
4. Aksi yang dilakukan (INSERT, DELETE, ataukah UPDATE).
5. Informasi fi eld/kolom yang diproses, termasuk dengan nilai pada masing-masing fi eld.

Pemrograman Log Audit Trail

Untuk mulai melakukan pemrograman Log Audit, Anda perlu menentukan operasi pada table, mana saja yang perlu dilakukan proses penyimpanan Log Audit, karena mungkin Anda tidak memerlukan log dari seluruh table. Proses log sedikit banyak memerlukan resource dan kapasitas harddisk, sehingga dapat mempengaruhi performance aplikasi secara keseluruhan,terutama jika aplikasi Anda digunakan dalam frekuensi yang cukup tinggi, di mana terjadi operasi database yang cepat dan terus-menerus. Untuk itu, Anda dapat memilih table master ataupun table transaksi yang penting. Sekarang, persoalan utamanya bagi seorang programmer adalah bagaimana untuk mulai membuat Log Audit Trail? Anda dapat mempertimbangkan beberapa pendekatan teknik pemrograman berikut ini.

Menyimpan Query

Jika Anda menggunakan SQL Statement untuk setiap operasi INSERT, UPDATE, ataupun DELETE, cara ini relatif lebih mudah. Salah satu contoh penggalan program yang mungkin sering Anda ketik adalah sebagai berikut: Log Audit Trail pada aplikasi database bekerja seperti halnya log pada umumnya, di mana log otomatis tercipta, tetapi khusus untuk event operasi database yang dilakukan pengguna pada aplikasi. Log Audit Trail dipasang pada setiap event pengoperasian database, yang umum sebagai berikut:

1. INSERT.

Yaitu saat sebuah data diciptakan, Log Audit mencatat record baru tersebut, lengkap dengan masing-masing fi eld/kolom yang terdapat pada table.

2. UPDATE.

Saat terjadi perubahan fi eld pada suatu table, Log Audit mencatat perubahan tersebut dari nilai sebelum, dan sesudah terjadi perubahan.

3. DELETE.

Untuk setiap penghapusan data, Log Audit mencatat data yang dihapus. Tiga operasi di atas adalah dasar pengoperasian database yang dilakukan pengguna aplikasi database, Log Audit Trail mencatat juga pengguna yang login, dan waktu saat kegiatan/event tersebut dilakukan.

Format

Sebuah Log Audit Trail, sudah semestinya dapat diakses dengan mudah. Dari sisi media penyimpanan, Anda dapat memilih untuk menyimpan data Log Audit Trail dalam ben- Gambar 1. Event Viewer: Contoh Log Audit Trail Pada Sistem. Sql = “INSERT INTO tCustomer (kodecust,nama) VALUES (‘001’,’Tom’)” Conn.execute Sql Program di atas menyimpan sebuah record baru pada table tCustomer, SQL statement ditampung ke dalam variabel Sql, yang kemudian dieksekusi dengan menggunakan method execute pada object Conn (Connection). Anda dapat menyimpan query di atas ke dalam table Log, untuk keperluan tersebut. Anda dapat membuat function atau procedure sederhana, dan dijalankan segera setelah perintah eksekusi query di atas. Tentu saja Anda perlu menyimpan tanggal dan jam, beserta user yang login ke dalam table Log tersebut. Lakukan hal yang sama pada statement UPDATE dan DELETE. Dengan menggunakan cara ini, seluruh log tersimpan pada sebuah table khusus. Selanjutnya, Anda perlu menyiapkan sebuah form untuk menampilkan isi table tersebut. Anda dapat melihat contoh form yang menampilkan isi dari table Log tersebut pada gambar 2. Karena sedemikian banyaknya record yang dapat tersimpan, Anda perlu memberikan fasilitas Search agar memudahkan pencarian. Search dapat berdasarkan username, tanggal (ataupun periode tanggal), atau sebagian dari isi query. Pencarian berdasarkan isi query mengizinkan Anda untuk dapat mencari sebagian string yang terkandung dalam setiap query yang dieksekusi. Contohnya, Anda dapat mencari item produk tertentu, dan melihat apakah terjadi operasi INSERT, UPDATE, ataupun DELETE yang berkaitan dengan item tersebut. Walaupun relatif mudah dalam pemrogramannya, tetapi terdapat beberapa konsekuensi. Bisa saja Anda dengan cukup mudah membaca query tersebut, tetapi tidak demikian dengan orang yang tidak memahami SQL statement. Cara ini juga mengharuskan Anda menggunakan SQL statement dalam setiap pengoperasian database.

Menggunakan Trigger

Jika Anda menggunakan relational database yang mendukung penggunaan trigger seperti Microsoft SQL Server atau MySQL (dimulai dari versi 5.0.2), Anda dapat memanfaatkannya untuk membuat Log Audit Trail. Trigger merupakan kumpulan SQL statement, yang secara otomatis melakukan aksi saat terjadi sebuah event INSERT, UPDATE, ataupun DELETE pada sebuah table. Dengan kemampuan ini, setiap event di atas terjadi, maka akan diarahkan untuk melakukan aksi menyimpan log. Contohnya, saat terjadi operasi INSERT suatu table, Anda dapat membuat trigger seperti di bawah (dibuat dalam versi Microsoft SQL Server): INSERT INTO tCustomer_Log SELECT *, getdate() FROM inserted Asumsi trigger di atas diaktifkan pada table tCustomer, jika terjadi penambahan data pada tCustomer, maka record baru tersebut akan ditulis ke table tCustomer_Log, ditambah dengan tanggal dan jam yang dibuat oleh function getdate(). Pada saat UPDATE, contoh trigger yang dapat Anda lakukan adalah: DECLARE @tID as uniqueidentifier set @tID = newid() INSERT INTO tCustomer_Log SELECT *,getdate(),0,@tID FROM deleted INSERT INTO tCustomer_Log SELECT * ,getdate(),1,@tID FROM inserted Log Audit Trail untuk operasi UPDATE merupakan hal yang paling kompleks, karena Log Audit yang baik akan mencatat perubahan dari data lama ke data baru. Perhatikan beberapa point penting pada statement di atas:

1. deleted dan inserted Pada saat dilakukan update, Anda dapat membayangkan telah dilakukan dua proses pada sistem database, yaitu menghapus record lama, dan menambah record baru pada posisi yang sama. Keyword deleted berisi dengan kumpulan nilai-nilai fi eld yang dihapus, sementara keyword inserted berisi dengan kumpulan nilai-nilai fi eld yang baru.

2. getdate(),0,@ID function getdate() untuk mencatat waktu seperti biasa, kode 0 digunakan untuk menandakan bahwa record tersebut adalah record yang dihapus (deleted), atau kode 1 yang digunakan untuk menandakan bahwa record tersebut adalah record yang ditambah (inserted). Anda dapat menggunakan kode/fl ag lain yang sesuai dengan cara Anda. Sedangkan @ID merupakan variable yang digunakan sebagai key untuk menghubungkan record yang dihapus dan diubah. Trigger dilakukan pada level database, sehingga pemrogramannya dilakukan pada back-end/database. Sementara contoh log audit dengan menyimpan query sebelumnya dilakukan pada level aplikasi, di mana pemrogramannya tergantung dengan Gambar 2. Contoh Form: Menampilkan Log Dalam Bentuk Query.

Database

Bahasa pemrograman yang Anda gunakan (misalnya VB, C, Delphi). Teknik di atas menyimpan log pada tabletable yang terpisah, sesuai dengan field yang dimiliki oleh table tersebut. Dengan demikian, log yang dihasilkan akan lebih baik dan deskriptif, mampu menampilkan perubahan dari data lama ke data baru. Tentunya hal ini memerlukan pemrograman lebih lanjut, tetapi yang terpenting adalah data lognya sebagai penyedia informasi telah tersedia. Konsekuensi teknik di atas, relatif memerlukan pemrograman yang lebih kompleks. Anda juga harus terus meng-update table log jika terjadi perubahan struktur fi eld pada table master/transaksi yang di log, agar terus tercipta integrasi antara table log dan table utamanya. Selain itu sebagai syarat mutlak, tentunya database Anda harus mendukung trigger.

Perlindungan Data Log

Data log yang dihasilkan Audit Trail perlu dilindungi tidak hanya secara fi sik, tetapi juga dalam hal akurasi datanya. Jika data log yang dihasilkan tidak akurat, maka data log tersebut tidak akan memiliki kegunaan yang diharapkan. Bisa jadi secara sistem yang terkomputerisasi, Log Audit Trail Anda terjamin mampu merekam setiap kegiatan pengguna dan melaporkannya secara instant, disertai grafi k dan warna-warni yang aduhai. Tetapi kesalahan yang kerap terjadi, system dikuasai hanya oleh satu orang. Orang tersebut yang membuat aplikasi Log Audit, dapat melihat data log, dan bahkan dapat saja memodifi kasinya kapan saja. Jika orang tersebut adalah Anda, lebih baik Anda membuat surat resign daripada membanggakan hal tersebut. Mengapa demikian? Melindungi data log, sama halnya dengan melindungi pengguna aplikasi, dan bahkan melindungi sistem secara keseluruhan. Karena itu sebelum mengimplementasikan Log Audit Trail, pastikan Anda tidak melewatkan hal penting ini, atau Log Audit Trail Anda hanyalah sebuah pekerjaan sia-sia. Hal yang harus dilakukan adalah membagi wewenang dan tanggung jawab pada beberapa personil yang berbeda.

Contoh ilustrasinya, Mr. X bertanggung jawab atas keamanan dan maintenance data log. Beliau mungkin dapat melakukan backup secara periodik, tetapi tidak perlu memiliki fasilitas untuk mengakses content data log tersebut. Anda sebagai programmer yang mewujudkan Log Audit Trail, tetap tidak memiliki hak untuk memodifi kasi data log yang dihasilkan oleh aplikasi Anda, di mana Anda harus melewati ruangan Mr. X yang bertubuh kekar, jika ingin ke server data log. Anda juga harus menyediakan fi tur user friendly untuk pimpinan Anda, yang sewaktuwaktu dapat mengakses data log untuk melakukan review. Jika sampai tahap ini Anda merasa dunia tidak berlaku adil bagi Anda, itu adalah indikasi bahwa pimpinan tidak memberi Anda gaji yang cukup. Masih terdapat beberapa cara untuk melindungi data log, misalnya dengan mengandalkan teknologi digital signature, ataupun menggunakan media penyimpanan yang hanya dapat ditulis sekali (writeonce). Demikianlah data log harus mendapat perlakuan istimewa untuk mencegah akses yang tidak diinginkan (atau sangat diinginkan oleh pihak tertentu), dengan demikian Log Audit Anda memiliki kegunaan yang sebenarnya.

Software Log Audit Trail

Dengan membuat sendiri Log Audit Trail, Anda memperoleh banyak keuntungan, antara lain sistem yang terintegrasi, ataupun dapat dimodifi kasi sesuai keinginan Anda. Tetapi bagaimana jika Anda tidak memiliki waktu atau sumber daya untuk membuat Log Audit Trail sendiri? Untuk keperluan itu, Anda dapat menggunakan produk software third party yang menyediakan kemampuan Log Audit Trail. Tentu saja Anda harus tetap meluangkan waktu untuk memilih software yang pa ling cocok dengan database, aplikasi, dan kebutuhan Anda.

Beberapa pilihannya adalah:

1. ApexSQL Audit.
Bekerja pada database Microsoft SQL Server, ApexSQL Audit menggunakan front end berbasis web, dengan menggunakan ASP untuk melakukan reporting-nya.

2. Visual Audit Trail.
Memiliki kemampuan untuk melaporkan perubahan data, baik sebelum dan sesudah terjadinya perubahan. Visual Audit Trail mendukung Microsoft SQL Server dan Centura SQLBase. Banyak lagi pilihan lainnya yang dapat Anda temukan di Internet. Sebagai panduan dalam melakukan review software Log Audit sebelum Anda memutuskan untuk menggunakannya, ada baiknya Anda memperhatikan point-point berikut:

1. Dapat melakukan log pada operasi insert, update, dan delete secara realtime.
2. Dapat diterapkan pada table yang Anda inginkan.
3. Keuntungan tambahan jika dapat memilih fi eld apa saja yang ingin di-log pada sebuah table.
4. Hasil log dapat dilihat dan difi lter dengan mudah, atau memiliki fasilitas export ke tipe fi le yang umum.
5. Apakah informasi/laporan yang ditampilkan sudah memenuhi kebutuhan Anda.

Penutup

Terdapat berbagai cara untuk menghasilkan Log Audit Trail seperti yang telah dijabarkan. Setiap aplikasi memiliki keunikan tersendiri (sesuai dengan keunikan programmer-nya), sehingga tidak tertutup kemungkinan Anda mencari cara tersendiri yang cocok bagi aplikasi Anda. Jangan melupakan file management, dengan mempertimbangkan backup log secara periodik. Mungkin banyak yang beranggapan Log Audit Trail dianggap sebagai fi tur pelengkap aplikasi, yang pada praktiknya mungkin hanya digunakan pada saat tertentu. Tetapi di sisi lain, Log Audit Trail menjadi begitu penting saat terjadi sebuah permasalahan. Tentu saja, jika Log Audit Trail tidak perlu digunakan untuk melacak kesalahan, sudah seharusnya Anda bersyukur, karena hal tersebut merupakan salah satu indikasi system aplikasi Anda telah berjalan baik. Akhir kata, selamat mengimplementasikan Log Audit Trail!_

Sumber : PC Media


1 Response to "Apakah Log Audit Trail itu ??"

Anonymous said...

free audit trigger generator for SQL Server 2000 2005 2008 :

www.auditdatabase.com

Followers