IT Audit Trail
Minggu, 20 Maret 2011 by yukie
Jejak audit atau log audit adalah urutan kronologis catatan audit, yang masing-masing berisi bukti langsung berkaitan dengan apa yang dihasilkan dari pelaksanaan suatu proses bisnis dan fungsi system.
Audit biasanya berasal dari kegiatan seperti transaksi atau komunikasi oleh individu, sistem, rekening atau badan lainnya.
Definisi audit trail adalah sebagai penunjuk catatan yang telah mengakses sistem operasi komputer dan apa yang dia telah dilakukan selama periode waktu tertentu, dalam telekomunikasi. Istilah ini berarti sebuah catatan baik akses selesai berusaha dan jasa, atau data membentuk suatu alur yang logis dan menghubungkan urutan peristiwa. Digunakan untuk melacak suatu transaksi yang telah dipengaruhi oleh isi record, dalam informasi atau keamanan komunikasi. Audit informasi berarti catatan kronologis kegiatan sistem untuk memungkinkan rekonstruksi dan pemeriksaan dari urutan peristiwa atau perubahan dalam suatu acara, dalam penelitian keperawatan. Mengacu pada tindakan mempertahankan log berjalan atau jurnal dari keputusan yang berkaitan dengan sebuah proyek penelitian, sehingga membuat jelas langkah-langkah yang diambil dan perubahan yang dibuat pada protokol asli.
Dalam akuntansi, mengacu pada dokumentasi transaksi rinci mendukung entri ringkasan buku. Dokumentasi ini mungkin pada catatan kertas atau elektronik, proses yang menciptakan jejak audit harus selalu berjalan dalam mode istimewa. Sehingga dapat mengakses dan mengawasi semua tindakan dari semua pengguna, dan user normal tidak bisa berhenti atau mengubahnya. Selanjutnya, untuk alasan yang sama. Berkas jejak atau tabel database dengan jejak tidak boleh diakses oleh pengguna normal, dalam apa yang berhubungan dengan audit trail. Itu juga sangat penting untuk mempertimbangkan isu-isu tanggung jawab dari jejak audit Anda, sebanyak dalam kasus sengketa. Jejak audit ini dapat dijadikan sebagai bukti atas kejadian beberapa, perangkat lunak ini dapat beroperasi dengan kontrol tertutup dilingkarkan. Sebuah sistem tertutup seperti yang disyaratkan oleh banyak perusahaan ketika menggunakan sistem Audit Trail, audit merupakan “sesuatu” yang dapat menyimpan data history dari kegiatan CRUD (create, retrieve, update, delete) yang dilakukan oleh user saat menggunakan aplikasi. Data yang disimpan adalah 4W :
• Who : user mana yang melakukan aksi.
• What data : table dan record mana yang menjadi “korban” dari aksi tersebut.
• What happened : aksi apa yang dilakukan, create kah? retrieve kah? update kah? atau delete?
• When : kapan aksi tersebut dilakuan.
Kejadian tersebut mesti disimpan pada media yang gampang digunakan, sebagai contoh dengan memanfaatkan tabel pada database. Kira-kira akan seperti ini struktur tabel yang akan digunakan untuk menyimpan data Audit Trails ini.
Kita juga dapat mengunduh script-nya, sedangkan dimisalkan salah satu nama tabel yang akan di-log adalah SecretData. Dengan detail atribut seperti berikut ini.
{DoddleAudit – Audit Trail fot LINQ to SQL}
Project ini sangat bermanfaat untuk membuat “audit” secara otomatis, sesuai titel dari sub-judulnya. Maka project ini ditujukan bagi pengguna LINQ to SQL, jadi bagi pengguna LINQ to SQL yang telah mempunyai LINQ to SQL Classes (DBML) tinggal menambahkan Doddle.Linq. Audit sebagai reference pada project tempat file DBML disimpan, sebagai contoh dapat dilihat pada gambar di bawah ini.
Kemudian modifikasi agar Base Class dari LINQ to SQL Classes adalah Doddle.Linq.Audit.LinqToSql.AuditableDataContext.
Maka akan dapat dilihat baris seperti berikut ini.
Selanjutnya dapat ditambahkan barisan kode berikut ke dalam LINQ to SQL Classes.
protected override void InsertAuditRecordToDatabase(EntityAuditRecord record)
{
AuditRecord audit = new AuditRecord();
audit.Action = (byte)record.Action;
audit.AuditDate = DateTime.Now;
audit.AssociationTable = record.AssociationTable;
audit.AssociationTableKey = record.AssociationTableKey;
audit.EntityTable = record.EntityTable;
audit.EntityTableKey = record.EntityTableKey;
audit.UserName = System.Web.HttpContext.Current.User.Identity.Name;
foreach (ModifiedEntityProperty av in record.ModifiedProperties)
{
AuditRecordField field = new AuditRecordField();
field.MemberName = av.MemberName;
field.OldValue = av.OldValue;
field.NewValue = av.NewValue;
audit.AuditRecordFields.Add(field);
}
this.AuditRecords.InsertOnSubmit(audit);
}
Terakhir adalah menambahkan method untuk mendefinisikan “tabel-tabel” mana saja yang akan di-audit, nama method tersebut adalah DefaultAuditDefinitions, dengan isi seperti berikut ini.
1: protected override void DefaultAuditDefinitions()
2: {
3: this.Organisasis.Audit();
4: }
Pada baris ke-3 dapat dilihat bahwa “tabel” yang di-audit adalah “tabel” Organisasi. Selanjutnya apabila ada “tabel-tabel” lain yang ingin di-audit tinggal menambahkan ke dalam method ini.
{Hasil}
Berikut adalah “hasil” dari audit ini, di bawah ini adalah isi dari tabel utama audit, yaitu AuditRecords.
Pada data di atas, dapat dilihat tabel apa, kapan, oleh siapa dan aksinya, aksi direpresentasikan dengan nomor dari 0-2 :
• 0, adalah aksi insert.
• 1, adalah aksi edit.
• 2, adalah aksi delete.
Sedangkan pada tabel AuditRecordField dapat detail dari tabel AuditRecords yang berisi data “sejarah” dari setiap aksi.
Sebagai contoh, apabila aksinya adalah insert maka dapat dilihat nama field yang digunakan beserta nilainya. Apabila aksi yang dilakukan adalah update, maka akan dapat dilihat nama field yang diedit, nilai lama dari field tersebut beserta nilai barunya. Sedangkan bila terjadi aksi delete maka dapat dilihat nilai dari field-field dari record yang dihapus.
Tetapi kalau diperhatikan dari tabel yang di-audit, yaitu tabel Organisasi mempunyai struktur seperti berikut.
Dapat dilihat bawah primary-key dari tabel ini yaitu OrganisasiID bertipe int/integer, bagaimana apabila tipe data dari field primary-keynya bukan integer. Jawaban dari pertanyaan ini adalah Limitations.
Any tables you want to audit must have one (and only one) Primary Key field, which is of type "int".
Depending on demand for this feature I will begin exploring ways around this, including GUID primary keys and composite keys.
Untungnya ini adalah community project yang source-codenya dapat digunakan untuk dimodifikasi sesuai kebutuhan, sampai nanti di blog selanjutnya yang akan memaparkan bagaimana memodifikasi agar tidak hanya primary-key bertipe integer saja yang dapat di-audit dengan DoddleAudit ini.
SUmber
Audit biasanya berasal dari kegiatan seperti transaksi atau komunikasi oleh individu, sistem, rekening atau badan lainnya.
Definisi audit trail adalah sebagai penunjuk catatan yang telah mengakses sistem operasi komputer dan apa yang dia telah dilakukan selama periode waktu tertentu, dalam telekomunikasi. Istilah ini berarti sebuah catatan baik akses selesai berusaha dan jasa, atau data membentuk suatu alur yang logis dan menghubungkan urutan peristiwa. Digunakan untuk melacak suatu transaksi yang telah dipengaruhi oleh isi record, dalam informasi atau keamanan komunikasi. Audit informasi berarti catatan kronologis kegiatan sistem untuk memungkinkan rekonstruksi dan pemeriksaan dari urutan peristiwa atau perubahan dalam suatu acara, dalam penelitian keperawatan. Mengacu pada tindakan mempertahankan log berjalan atau jurnal dari keputusan yang berkaitan dengan sebuah proyek penelitian, sehingga membuat jelas langkah-langkah yang diambil dan perubahan yang dibuat pada protokol asli.
Dalam akuntansi, mengacu pada dokumentasi transaksi rinci mendukung entri ringkasan buku. Dokumentasi ini mungkin pada catatan kertas atau elektronik, proses yang menciptakan jejak audit harus selalu berjalan dalam mode istimewa. Sehingga dapat mengakses dan mengawasi semua tindakan dari semua pengguna, dan user normal tidak bisa berhenti atau mengubahnya. Selanjutnya, untuk alasan yang sama. Berkas jejak atau tabel database dengan jejak tidak boleh diakses oleh pengguna normal, dalam apa yang berhubungan dengan audit trail. Itu juga sangat penting untuk mempertimbangkan isu-isu tanggung jawab dari jejak audit Anda, sebanyak dalam kasus sengketa. Jejak audit ini dapat dijadikan sebagai bukti atas kejadian beberapa, perangkat lunak ini dapat beroperasi dengan kontrol tertutup dilingkarkan. Sebuah sistem tertutup seperti yang disyaratkan oleh banyak perusahaan ketika menggunakan sistem Audit Trail, audit merupakan “sesuatu” yang dapat menyimpan data history dari kegiatan CRUD (create, retrieve, update, delete) yang dilakukan oleh user saat menggunakan aplikasi. Data yang disimpan adalah 4W :
• Who : user mana yang melakukan aksi.
• What data : table dan record mana yang menjadi “korban” dari aksi tersebut.
• What happened : aksi apa yang dilakukan, create kah? retrieve kah? update kah? atau delete?
• When : kapan aksi tersebut dilakuan.
Kejadian tersebut mesti disimpan pada media yang gampang digunakan, sebagai contoh dengan memanfaatkan tabel pada database. Kira-kira akan seperti ini struktur tabel yang akan digunakan untuk menyimpan data Audit Trails ini.
Kita juga dapat mengunduh script-nya, sedangkan dimisalkan salah satu nama tabel yang akan di-log adalah SecretData. Dengan detail atribut seperti berikut ini.
{DoddleAudit – Audit Trail fot LINQ to SQL}
Project ini sangat bermanfaat untuk membuat “audit” secara otomatis, sesuai titel dari sub-judulnya. Maka project ini ditujukan bagi pengguna LINQ to SQL, jadi bagi pengguna LINQ to SQL yang telah mempunyai LINQ to SQL Classes (DBML) tinggal menambahkan Doddle.Linq. Audit sebagai reference pada project tempat file DBML disimpan, sebagai contoh dapat dilihat pada gambar di bawah ini.
Kemudian modifikasi agar Base Class dari LINQ to SQL Classes adalah Doddle.Linq.Audit.LinqToSql.AuditableDataContext.
Maka akan dapat dilihat baris seperti berikut ini.
Selanjutnya dapat ditambahkan barisan kode berikut ke dalam LINQ to SQL Classes.
protected override void InsertAuditRecordToDatabase(EntityAuditRecord record)
{
AuditRecord audit = new AuditRecord();
audit.Action = (byte)record.Action;
audit.AuditDate = DateTime.Now;
audit.AssociationTable = record.AssociationTable;
audit.AssociationTableKey = record.AssociationTableKey;
audit.EntityTable = record.EntityTable;
audit.EntityTableKey = record.EntityTableKey;
audit.UserName = System.Web.HttpContext.Current.User.Identity.Name;
foreach (ModifiedEntityProperty av in record.ModifiedProperties)
{
AuditRecordField field = new AuditRecordField();
field.MemberName = av.MemberName;
field.OldValue = av.OldValue;
field.NewValue = av.NewValue;
audit.AuditRecordFields.Add(field);
}
this.AuditRecords.InsertOnSubmit(audit);
}
Terakhir adalah menambahkan method untuk mendefinisikan “tabel-tabel” mana saja yang akan di-audit, nama method tersebut adalah DefaultAuditDefinitions, dengan isi seperti berikut ini.
1: protected override void DefaultAuditDefinitions()
2: {
3: this.Organisasis.Audit();
4: }
Pada baris ke-3 dapat dilihat bahwa “tabel” yang di-audit adalah “tabel” Organisasi. Selanjutnya apabila ada “tabel-tabel” lain yang ingin di-audit tinggal menambahkan ke dalam method ini.
{Hasil}
Berikut adalah “hasil” dari audit ini, di bawah ini adalah isi dari tabel utama audit, yaitu AuditRecords.
Pada data di atas, dapat dilihat tabel apa, kapan, oleh siapa dan aksinya, aksi direpresentasikan dengan nomor dari 0-2 :
• 0, adalah aksi insert.
• 1, adalah aksi edit.
• 2, adalah aksi delete.
Sedangkan pada tabel AuditRecordField dapat detail dari tabel AuditRecords yang berisi data “sejarah” dari setiap aksi.
Sebagai contoh, apabila aksinya adalah insert maka dapat dilihat nama field yang digunakan beserta nilainya. Apabila aksi yang dilakukan adalah update, maka akan dapat dilihat nama field yang diedit, nilai lama dari field tersebut beserta nilai barunya. Sedangkan bila terjadi aksi delete maka dapat dilihat nilai dari field-field dari record yang dihapus.
Tetapi kalau diperhatikan dari tabel yang di-audit, yaitu tabel Organisasi mempunyai struktur seperti berikut.
Dapat dilihat bawah primary-key dari tabel ini yaitu OrganisasiID bertipe int/integer, bagaimana apabila tipe data dari field primary-keynya bukan integer. Jawaban dari pertanyaan ini adalah Limitations.
Any tables you want to audit must have one (and only one) Primary Key field, which is of type "int".
Depending on demand for this feature I will begin exploring ways around this, including GUID primary keys and composite keys.
Untungnya ini adalah community project yang source-codenya dapat digunakan untuk dimodifikasi sesuai kebutuhan, sampai nanti di blog selanjutnya yang akan memaparkan bagaimana memodifikasi agar tidak hanya primary-key bertipe integer saja yang dapat di-audit dengan DoddleAudit ini.
SUmber