Lacak Kiriman Barang

Rabu, 10 April 2013

PROGRAM KEAMANAN DENGAN KENDALI AKSES REMOVABLE DISK DI LINGKUNGAN WINDOWS

PROGRAM KEAMANAN DENGAN KENDALI AKSES

REMOVABLE DISK DI LINGKUNGAN WINDOWS


ABSTRAK

Salah satu fungsi USB adalah untuk penyimpanan data (memory flash atau dapat disebut
dengan memory stick) dalam OS Windows sering disebut dengan removable disk. Permasalahan
sekarang pada USB-Port dengan sistem operasi Windows yaitu Windows tidak mengendalikan
akses removable disk sehingga bagi pihak lain bisa meng-copy data tanpa disetujui oleh pihak
berwenang, kecuali pada Windows Vista mempunyai paket aplikasi yang disebut dengan USB
Blocking. Untuk mencegah hal di atas, maka membutuhkan sebuah aplikasi untuk mengendalikan
removable disk.

Penelitian ini akan mencoba mengembangkan program aplikasi yang disebut Removable
Blocking untuk kendali akses dilingkungan windows dengan memanfaatkan windows API-32 bit
dan Visual Basic.6.0

Program utility yang dikembangkan dapat mengendalikan akses removeable disk yang
ditentukan oleh administrator. Kelemahan dari program utility yang dikembangkan oleh penulis
meskipun bisa digunakan untuk kendali akses removable disk tetapi tidak mampu untuk kendali
akses tipe disk yang lain seperti USB-HDD.

Kata Kunci : Removeble disk, USB-Port, Windows API-32 bit

1. PENGANTAR

1.1 Latar Belakang

Perkembangan teknologi sangat cepat baik dilihat dari segi software, hardware maupun
brainware. Salah satu sebagai alat penelitian untuk pengembangan hardware yaitu Universal Serial
Bus (USB).

Universal Serial Bus (USB) merupakan soket yang terdapat di semua PC model baru untuk
koneksi perangkat-perangkat USB. USB mendukung instalasi yang mudah dengan sistem Plug and
Play dan secara bertahap menggantikan port serial dan parallel yang lama.

Dengan USB-Port, bisa mengkoneksi sampai 127 jenis perangkat (peripheral devices),
seperti speaker, telepon, CD-Rom, joysticks, keyboard, scanner, kamera, dan lain-lain. USB
mendukung dua kecepatan operasi, disebut low-speed (1,5 megabit/det) dan full-speed (12
megabit/det). Revisi terbaru pada spesifikasi bus (USB 2.0) memperkenal kecepatan operasi ketiga,
disebut high-speed (480 megabit/det). USB dengan cepat memperoleh pengakuan di pasaran, dan
dengan tambahan kemampuan high-speed menjadikannya dengan sebagai pilihan metode
interkoneksi bagi sebagian besar perangkat komputer.

Salah satu fungsi USB adalah untuk penyimpanan data (memory flash atau dapat disebut
dengan memory stick) dalam OS Windows sering disebut dengan removable disk. Yang termasuk
removable disk, seperti Floppy disk, Flashdisk, Compact Flash, SD/Mini SD, T-Flash Card,
MMC/RS MMC, Msmory Stick, dll.
D ‐ 1



Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta,

Permasalahan sekarang pada USB-Port dengan sistem operasi Windows yaitu Windows
tidak mengendalikan akses removable disk sehingga bagi pihak lain bisa meng-copy data tanpa
disetujui oleh pihak berwenang, kecuali pada Windows Vista mempunyai paket aplikasi yang
disebut dengan USB Blocking. Untuk mencegah hal di atas, maka membutuhkan sebuah aplikasi
untuk mengendalikan removable disk. Di bawah ini akan membahas tentang sebuah aplikasi yang
disebut dengan Removable Blocking yang dibuat oleh penulis.



1.2 Tinjauan Teori

1.2.1 Microsoft Visual Basic 6.0

Visual Basic 6.0 adalah salah satu produk bahasa pemrograman yang dikeluarkan
Microsoft. Visual Basic telah melalui sejumlah versi dan jauh berbeda dengan produk aslinya.
Mulai dari Visual basic 1.0 dirilis pada pertengahan tahun 1991 sampai dengan Visual Basic 6.0
dirilis pada tahun 1998.

Kelebihan Visual Basic 6.0 di sini yaitu bisa menginterkoneksi DLL (Dynamic Link
Library) Windows dengan bantuan Windows API-32Bit.

1.2.2 Windows API-32bit

Windows API (Application Programming Interface) merupakan sekumpulan fungsi-fungsi
eksternal yang terdapat dalam file-file perpustakaan Windows (disebut library Windows) atau file
library lainnya yang dapat digunakan oleh program. Fungsi ini dapat menangani semua yang
berhubungan dengan Windows, seperti pengaksesan disk, interface printer, grafik Windows, kotak
dialog (buka file, simpan file, memilih font, memilih warna, dan lain-lain), Windows shell, setting
sistem operasi , penanganan file, mengakses sistem registry, memainkan musik, dan sebagainya.
Fungsi menyediakan banyak fitur-fitur standar untuk semua program yang berbasis Windows.

Semua fungsi Windows API hampir terdapat dalam direktori sistem milik Windows
(biasanya terdapat dalam direktori C:\Windows\System32 (untuk OS Windows XP),
C:\WindowsNT\ System32 (untuk OS Windows NT/2000), dan paling banyak berekstensi DLL
yang digunakan oleh sistem operasi Windows. Selain fungsi ini juga memastikan secara konsisten
penggunaan semua sumber yang terdapat dalam Windows. File-file itulah yang disebut dengan
Windows API.

Karena fungsi Windows API merupakan fungsi eksternal, maka untuk menggunakan
fungsi tersebut terlebih dahulu dideklarasikan dengan perintah Declare di dalam kode program
(pembahasan printah Declare akan dijelaskan nanti dibagian “Mendeklarasikan Fungsi Windows
API”). Setelah pendeklarasian fungsi selesai dilakukan, selanjutnya untuk menggunakan fungsi
tersebut layaknya Visual Basic di dalam program.

1.2.3 Arsitektur USB

USB didesain untuk memenuhi beberapa tujuan utama:

1. Menyediakan sistem interkoneksi yang sederhana, low-cost, dan mudah digunakan yang dapat
mengatasi kesulitan karena terbatasnya jumlah port I/O pada suatu komputer.

2. Mengakomodasi karakteristik transfer data skala luas untuk perangkat I/O, termasuk koneksi
telepon dan Internet.

3. Meningkatkan kenyamanan user melalui mode operasi plug-and-play.

D ‐ 2


Seminar
Yogyakarta, 24 November 2007



Gambar 1 Operasi Split Bus

Pada Gambar 1, Hub A dihubungkan ke root hub oleh high-speed link. Hub ini melayani
satu perangkat high-speed, C, dan satu perangkat low-speed, D. Biasanya, suatu pesan ke perangkat
D akan dikirimkan pada kecepatan rendah dari root hub. Pada 1,5 megabit/det, bahkan pesan
pendek sekalipun memerlukan beberapa puluh milidetik. Selama durasi pesan tersebut, tidak ada
transfer data lain yang bisa lakukan, sehingga mengurangi keefektifan high-speed link dan
menimbulkan jeda yang tidak dapat diterima untuk perangkat high-speed. Untuk mengurangi
persoalan, protokol USB mensyaratkan agar suatu pesan yang ditransmisikan pada high-speed link
selalu ditransmisikan pada kecepatan tinggi, bahkan pada saat receiver akhir adalah perangkat low-
speed. Karenanya, pesan yang ditujukan untuk perangkat D dikirim pada kecepatan tinggi dari root
hub ke hub A, kemudian dilanjutkan pada kecepatan rendah ke perangkat D. Transfer yang terakhir
tersebut memerlukan waktu lama, namun selama itu lalu lintas high-speed ke node lain dapat
berlanjut. Misalnya, root hub dapat mempertukarkan beberapa pesan dengan perangkat C pada saat
pesan low-speed dikirim dari hub A ke perangkat D. Selama periode ini, bus dapat dikatakan di-
split antara lalu lintas high-speed dan low-speed. Pesan ke perangkat D didahului dan diikuti oleh
perintah khusus ke hub A untuk memulai dan mengakhiri masing-masing mode operasi split-traffic
tersebut.

Kabel yang digunakan untuk koneksi USB terdiri dari empat kabel. Dua digunakan untuk
membawa daya, +5V dan Ground. Sehingga, hub atau perangkat I/O dapat langsung mendapat
daya dari bus, atau memiliki koneksi daya eksternal sendiri. Dua kawat yang lain digunakan untuk
membawa data. Skema signaling yang berbeda digunakan untuk kecepatan transmisi ynag berbeda.
Pada kecepatan rendah, 1 dan 0 ditransmisikan dengan mengirim keadaan tegangan tinggi (5V)
pada satu bagian atau bagian lain dari dua kawat sinyal tersebut. Untuk link high-speed, digunakan
transmisi diferensial.

2. CARA PENELITIAN

2.1 Alat yang Dipakai

Penelitian ini dilakukan pada sebuah PC (Personal Computer), spesifikasi komputer yang
digunakan yaitu:

1. Seperangkat PC

Memory sekunder untuk perangkat ekternal, seperti:

a. UFD (Flashdisk)

D ‐ 3


Seminar
Yogyakarta, 24 November 2007

b. MMC + CardReader

c. USB-HDD



2.2 Jalan Penelitian

Gambar 2 Flowchart Menu Utama

D ‐ 4


Seminar
Yogyakarta, 24 November 2007



D ‐ 5


Seminar Nasional Teknologi 2007 (SNT 2007)

ISSN : 1978 – 9777
Yogyakarta,

Secara garis besar, program utility yang dikembangkan mempunyai tahap-tahap yang harus
ditempuh, yaitu:

1. Seleksi serial number dari sebuah perangkat removable disk.

Setiap perangkat baik itu removable disk, USB-HDD, CD-Drive (yang ada CD-nya)
mempunyai serial number yang unik. Untuk informasi serial number bisa mengunakan
command prompt (C:\>VOL). Listing program sederhana di bawah ini berfungsi untuk
mencari informasi serial number dari sebuah drive (default C:\).

Private Declare Function GetVolumeSerialNumber Lib "kernel32.dll" _

Alias "GetVolumeInformationA" (ByVal lpRootPathName As String, _

ByVal lpVolumeNameBuffer As String, ByVal nVolumeNameSize As Long, _

lpVolumeSerialNumber As Long, lpMaximumComponentLength As Long, _

lpFileSystemFlags As Long, ByVal lpFileSystemNameBuffer As String, _

ByVal nFileSystemNameSize As Long) As Long

Public Function VolumeSerialNumber(ByVal RootPath As String) As String

Dim VolLabel As String

Dim VolSize As Long

Dim Serial As Long

Dim MaxLen As Long

Dim Flags As Long

Dim Name As String

Dim NameSize As Long

Dim s As String

Else

If GetVolumeSerialNumber(RootPath, VolLabel, VolSize, Serial, MaxLen, _

Flags, Name, NameSize) Then

'bikin 8 karakter string

s = Format(Hex(Serial), "00000000")

'tambahkan '-' antara 4 karakter pertama dan 4 karakter terakgir

VolumeSerialNumber = Left(s, 4) + "-" + Right(s, 4)

'jika terjadi kesalahan, nilai yang dibalikan 0000-0000

VolumeSerialNumber = "-"

End If

End Function

Private Sub Form_Load()

MsgBox VolumeSerialNumber("c:\")

D ‐ 6


Seminar Nasional Teknologi 2007 (SNT 2007)
Yogyakarta,

End Sub

2. Seleksi tipe drive

Dalam sistem operasi Windows terdapat 7 jenis tipe drive, yaitu:



1. DRIVE_UNKNOWN, yaitu tipe drive tidak diketahui

2. DRIVE_NO_ROOT_DIR, yaitu nama root direktori tidak ditemukan.

3. DRIVE_REMOVABLE, yaitu tipe disk yang dapat dilepas atau dipasang dari disk
seperti flashdisk, mmc, dll.

4. DRIVE_FIXED, yaitu tipe disk yang tidak dapat dilepas atau dipasang dari drive
(harddisk).

5. DRIVE_REMOTE, yaitu tipe drive adalah drive jaringan.

6. DRIVE_CDROM, yaitu tipe drive adalah CD-ROM.

7. DRIVE_RAMDISK, yaitu tipe disk adalah RAM disk.

Listing program sederhana di bawah ini berfungsi untuk menentukan tipe disk yang
dispesifikasikan, apakah bertipe removable, harddisk, dll.

‘in module

Public Declare Function GetDriveType Lib "kernel32.dll" _

Alias "GetDriveTypeA" (ByVal nDrive As String) As Long

Public Const DRIVE_UNKNOWN = 0

Public Const DRIVE_DOES_NOT_EXIST = 1

Public Const DRIVE_REMOVABLE = 2

Public Const DRIVE_FIXED = 3

Public Const DRIVE_REMOTE = 4

Public Const DRIVE_CDROM = 5

Public Const DRIVE_RAMDISK = 6

‘in form

Private Sub Command1_Click()

Select Case GetDriveType("c:\")

Case DRIVE_UNKNOWN

Case DRIVE_DOES_NOT_EXIST

Case DRIVE_REMOVABLE

MsgBox "Tipe disk tidak diketahui", vbExclamation

MsgBox "Tipe disk tidak ada", vbCritical

MsgBox "Tipe disk dapat dipasang/dilepaskan dari drive (Disket)", _

vbInformation

D ‐ 7


Seminar
Yogyakarta, 24 November 2007

Case DRIVE_FIXED



Case DRIVE_REMOTE

Case DRIVE_CDROM

Case DRIVE_RAMDISK

End Select

End Sub

MsgBox "Tipe disk tidak dapat dipasang/dilepas dari drive

(Hardisk)", vbInformation

MsgBox "Tipe drive adalah drive remote (jaringan)", vbInformation

MsgBox "Tipe drive adalah CD-ROM", vbInformation

MsgBox "Tipe drive adalah RAM disk", vbInformation

3. Meng-eject removable disk

Listing program sederhana di bawah ini berfungsi untuk meng-eject sebuah drive, fungsi
ini dapat meng-eject 2 tipe disk, yaitu removable dan CD-Drive (CD-ROM).

'Example by Howard Henry Schlunder

' This example requires one command button (Command1)

Private Declare Function GetVersion Lib "kernel32" () As Long

Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA"

(ByVal lpFileName As String, ByVal dwDesiredAccess As Long, ByVal

dwShareMode As Long, lpSecurityAttributes As Any, ByVal

dwCreationDisposition As Long, ByVal dwFlagsAndAttributes As Long, ByVal

hTemplateFile As Long) As Long

Private Declare Function DeviceIoControl Lib "kernel32" (ByVal hDevice

As Long, ByVal dwIoControlCode As Long, lpInBuffer As Any,

ByVal nInBufferSize As Long, lpOutBuffer As Any, ByVal nOutBufferSize

As Long, lpBytesReturned As Long, lpOverlapped As Any) As Long

Private Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long)

As Long

Private Const INVALID_HANDLE_VALUE = -1

Private Const OPEN_EXISTING = 3

Private Const FILE_FLAG_DELETE_ON_CLOSE = 67108864

Private Const GENERIC_READ = &H80000000

Private Const GENERIC_WRITE = &H40000000

Private Const IOCTL_STORAGE_EJECT_MEDIA = 2967560

Private Const VWIN32_DIOC_DOS_IOCTL = 1

D


Seminar
Yogyakarta, 24 November 2007

Private Type DIOC_REGISTERS

reg_EBX As Long

reg_EDX As Long

reg_ECX As Long

reg_EAX As Long

reg_EDI As Long

reg_ESI As Long

reg_Flags As Long

End Type

Private Sub Command1_Click()

Dim hDrive As Long, DummyReturnedBytes As Long

Dim EjectDrive As String, DriveLetterAndColon As String

Dim RawStuff As DIOC_REGISTERS

EjectDrive = InputBox("Which drive shall we try to eject the media

If Len(EjectDrive) Then 'Confirm the user didn't cancel

DriveLetterAndColon = UCase(Left$(EjectDrive & ":", 2))

'Make it all caps for easy interpretation

If GetVersion >= 0 Then 'We are running Windows NT/2000



from?", "Eject Media")

Else 'We are running Win9x/Me

hDrive = CreateFile("\\.\" & DriveLetterAndColon, GENERIC_READ Or

GENERIC_WRITE, 0, ByVal 0, OPEN_EXISTING, 0, 0)

If hDrive <> INVALID_HANDLE_VALUE Then

'Eject media!

Call DeviceIoControl(hDrive, IOCTL_STORAGE_EJECT_MEDIA, 0, 0,

0, 0, DummyReturnedBytes, ByVal 0)

Call CloseHandle(hDrive) 'Clean up after ourselves

End If

hDrive = CreateFile("\\.\VWIN32", 0, 0, ByVal 0, 0,

If hDrive <> INVALID_HANDLE_VALUE Then

'Setup our raw registers to use Interrupt 21h Function 440Dh

Minor Code 49h

RawStuff.reg_EAX = &H440D 'The function to use

RawStuff.reg_EBX = Asc(DriveLetterAndColon) - Asc("A") + 1

FILE_FLAG_DELETE_ON_CLOSE, 0)

D ‐ 9


Seminar Nasional Teknologi 2007 (SNT 2007)

Yogyakarta, 24 November 2007

RawStuff.reg_ECX = &H49 Or &H800

'The minor code of the function in the low byte of the low

word and the device category of 8 in the high byte of the

low word

'Eject media!

Call DeviceIoControl(hDrive, VWIN32_DIOC_DOS_IOCTL,

RawStuff, LenB(RawStuff), RawStuff, LenB(RawStuff),

DummyReturnedBytes, ByVal 0)

Call CloseHandle(hDrive) 'Clean up after ourselves

End If

End If

End If

End Sub

3. HASIL DAN PEMBAHASAN

3.1 Form Menu Utama

Gambar 5 Form Menu Utama

Form menu utama terdiri 2 frame, yaitu:

1) Manage Accept

a) Accept All, berfungsi: menerima semua removable disk yang dicolokkan ke USB-
Port.

b) Only From List, berfungsi: menerima removable disk yang telah terdaftar di dalam
Accepted List ketika dicolokkan ke USB-Port. Dan menolak removable disk yang
tidak terdaftar daftar di dalam Accepted List.

c) From No One, berfungsi: menolak semua removable disk yang dicolokkan ke
USB-Port.

2) Accepted List

D ‐ 10


Seminar

ISSN : 1978 – 9777
Yogyakarta,

Berfungsi untuk menambah atau menghapus nama label dan serial number removable
disk di dalam daftar list.

3.2 Analisis Uji Coba

Tabel 1 Perbandingan Hak Akses antara Administrator dengan Non-

No.

Administrator

Eject removable disk

Autorun when OS Windows startup

Hiden Registry

Disable Task Manager

Enable Password

Enable Multi User

Disable All USB Storage

Hak Akses

Administrator















Penjelasan Tabel 1

Hasil analisis pada Tabel 1, untuk eject removable disk dapat berfungsi di sisi
administrator account dan tidak dapat berfungsi pada non-administrator account hal ini
dikarena pada penggunaan extention DLL OS Windows. Di dalam OS Windows bagi yang
non-administrator account eject removable disk tidak berfungsi. Untuk mencegah hal ini,
penulis memproteksi dengan screen. Untuk autorun when OS Windows startup dan hiden
registry baik di sisi administrator account atau di sisi non-administrator account hal ini bisa
dilakukan. Sedangkan untuk disable task manager, enable password, enable multi user, dan
disable all USB storage di sisi non-administrator account tidak dapat berfungsi karena
penyimpanan data ke memori registry tidak dapat berfungsi (OS Windows tidak
mengizinkan penambahan, perbaikan, dan penghapusan di memori registry).

Tabel 2 Perbandingan Hak Akses dari Masing-Masing Jenis Perangkat

No.

1

2

Penjelasan Tabel 2

Jenis Perangkat

Hak Akses

Eject removable disk

Disable All USB Storage

Flashdisk





D ‐ 11


Seminar Nasional Teknologi 2007 (SNT 2007)

ISSN : 1978 – 9777
Yogyakarta,

Hasil analisis pada Tabel 2, USB-HDD tidak bisa di eject karena USB-HDD dalam OS
Windows terdeteksi sebagai local disk (fixed) dalam hal ini tidak tergolong dalam
removable disk. Untuk mencegah keamanaan data maka user (administrator account) bisa
mensetting ke disable all USB storage sehingga bisa menghindari dari peng-copy-an atau
pengcurian data bagi user lainnya. Kelemahan dari mensetting ke disable all USB storage
yaitu semua memori storage termasuk USB-HDD, removable disk, dan lain-lain tidak
terdeteksi oleh OS Windows baik di sisi user maupun di sisi multi user.

4. KESIMPULAN DAN SARAN

4.1 Kesimpulan

Program utility yang dikembangkan dapat mengendalikan akses removeable disk yang
ditentukan oleh administrator. Kelemahan dari program utility yang dikembangkan oleh
penulis meskipun bisa digunakan untuk kendali akses removable disk tetapi tidak mampu
untuk kendali akses tipe disk yang lain seperti USB-HDD.

Untuk pengembangan program utility ini yang dibuat oleh penulis, masih terdapat banyak
hal yang dapat dilakukan untuk penyempurnaan sistem ini. Beberapa saran untuk pengembangan
lebih lanjut antara lain:

1. Meningkatkan kemampuan program utility dalam penggunaan teknologi safely removable
hardware (menon-aktifkan aliran listrik ke USB storage).

2. Meningkatkan kemampuan program utility untuk kendali akses tipe disk yang lain, seperti
USB-HDD, CD-Drive, dan lain-lain.

DAFTAR PUSTAKA

Carl hamacher, Zkonko Vranesic dan Safwat Zaky, 2004, Organisasi Komputer Edisi 5.
Yogyakarta: Andi Offset.

Hadi, Rahadian, 2002, Pemrograman Windows API dengan Microsoft Visual Basic. Jakarta: PT.
Elex Media Komputindo.

Halvorson, Michael, 2002, Step by Step Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media
Komputindo.

MSDN Library Visual Studio 6.0, Microsoft Corporation, 2001.

Pamungkas, 2000, Tip & Trik Microsoft Visual Basic 6.0. Jakarta: PT. Elex Media Komputindo.

Putra, Rahmat, 2005, The Best Source Code Visual Basic. Jakarta: PT. Elex Media Komputindo.

Sallings, William, 1998, Organisasi dan Arsitektur Komputer Jilid 2. Jakarta: Prenhallindo.

Suryo Kusumo Ario, Drs., 2004, Buku Latihan Visual Basic .Net Versi 2002 dan 2003. Jakarta: PT.
Elex Media Komputindo.

Wahana Komputer, 2003, Panduan Lengkap Pemrograman VBScript. Yogyakarta: ANDI.

www.chip.co.id
Add to Cart

0 komentar:

Posting Komentar