utak-atik Hacker LogBook yuuuukk!!


Keamanan suatu database sangat diperlukan, tentu saja karena isinya memang sangat penting untuk dilindungi. Inject sana, inject sini…wah, rame dan seru tentunya… dan lebih bagus lagi kalo kita tau cara mengamankan semua proses inject-inject yang dilakukan oleh para attacker, iye ga..??? awas kalo ga…!! nanti di inject kakinya… weyyy itu injek.
Untuk mengatasi inject-inject tersebut, kita bisa memanfaatkan “GreenSQL”. GreenSQL…??? makanan khas yogya yah..?? atau Singkong Garlic…??? bukan… GreenSQL itu merupakan sebuah Database Firewall yang digunakan untuk melindungi database MySQL dari serangan SQL Inject, SQL Blind dan kejahatan2 terhadap MySQL lainnya.
Kelebihan yang dipergunakan oleh GreenSQL adalah pemanfaatan dengan baik pengujian perintah SQL dengan metoda “risk Scoring matrix”. Risk Scoring Matrix itu sendiri merupakan sebuah teknik analisis perhitungan resiko untuk melakukan proses “blocking” terhadap perintah-perintah yang dikenal sebagai perintah SQL Administrative seperti : Drop, Create, Alter juga perintah2 SQL lain yang sifatnya membahayakan MySQL.
GreenSQL bekerja sebagai sebuah reverse Proxy, itu artinya bahwa setiap perintah SQL yang diberikan akan dikirim ke GreenSQL Server untuk dianalisa, jika hasil analisa menunjukan bahwa perintah yang dimasukkan tidak berbahaya maka akan diteruskan ke MySQL Server sebagai real database servernya.
Kalau digambarkan secara topologi sih seperti ini :
_______
( )
[[end-user]]–> ( internet )–> [web server]–> [greensql] –> [[DBserver]]
= attacker (_______) | |
sql query sql query (parsed)
Untuk mendirikan GreenSQL Server kita bisa memanfaatkan komputer yang berdiri sendiri ataupun pada komputer tempat MySQL yang sudah berdiri, itu semua bisa dilakukan karena GreenSQL bisa melakukan proses redirect ke IP tempat real database MySQL berada.
Secara default GreenSQL bekerja pada pada local port : 127.0.0.1 : 3305 dan meneruskan SQL Request ke local port : 127.0.0.1 : 3306, semua IP tersebut bisa diganti melalui GreenSQl Console.
Sebagai database firewall maka GreenSQL dapat dikonfigurasikan sebagai :
1. Simulation Mode
Artinya bahwa GreenSQL akan berperan sebagai database IDS [IntrusionDetection System], artinya GreenSQL akan mempergunakan analisa perhitungan resiko untuk mencari perintah-perintah SQL berbahaya, karena dicurigai ada tindakan berbahaya maka GreenSQL memberikan pesan kepada Administrator database.
2. Blocking Suspicious Commands
Disini GreenSQL akan berperan sebagai IPS [Intrution Prevention System], artinya GreenSQL akan mempergunakan Heuristics Engine miliknya untuk mencari perintah2 SQL yang dianggap ilegal dan berbahaya. Jika perintah2 SQL tersebut dianggap berbahaya maka GreenSQL akan melakukan proses “blocking” secara otomatis. Nah, keunggulan lain dari model ini adalah kita bisa mengatur perintah2 SQL Ilegal ataupun Legal untuk dimasukkan kedalam “whitelist”, artinya jika perintah2 SQL yang dimasukkan terdapat dalam “whitelist” maka akan dianggap benar dan diteruskan ke MySQL database.
3. Learning mode
Merupakan metode pasif yang dipergunakan oleh GreenSQL. GreenSQL hanya menjadi pendengar setia saja sehingga semua perintah query secara otomatis akan dimasukkan kedalam “whitelist” untuk beberapa saat, jika waktu “learning” telah habis maka GreenSQL secara otomatis akan mengaktifkan proteksi model “Active protection from unknown queries”.
4. Active Protection from Unknown Queries
Merupakan metode yang sangat dihandalkan dalam GrrenSQL. GreenSQL akan menditeksi perintah-perintah SQL yang tidak dikenal dan secara otomatis akan melakukan proses “Blocked”.
Dari 4 (empat) model tersebut, GreenSQL mempunyai kesamaan metode yang dipergunakan, yaitu : mencari dan menganalisis perintah-perintah SQL administratif, perintah-perintah SQL Sensitiv dan melakukan Analisis perhitungan Resiko dari Query yang dimasukkan.
Wah, dari tadi kita ngomongin perintah SQL ilegal, sebenarnya yang dianggap ilegal oleh GreenSQL itu perintah seperti apa sih ? yang pasti bukan melempar MySQL dengan batu loh.. melainkan perintah-perintah :
>>. Semua perintah SQL yang mengarah pada sensitif table yang memiliki resiko tinggi, seperti table : user,account,etc
>>. Semua perintah SQL Qeury yang menimbulkan resiko tinggi seperti : insert, delete, update, etc
>>. Pengisian komentar yang disertai dengan perintah2 SQL yang menimbulkan resiko
>>. Penggunaan/pengisian password kosong
>>. Perintah SQL yang berisi “or”
>>. Perintah ekspresi SQL yang menimbulkan nilai “True”
>>. Samua perintah SQL yang membandingkan konstanta.
Nah, sekarang udah mulai paham dung tentang GreenSQL..? kalo masih belum paham yang coba deh lari keliling kampung dulu 7 kali, terus baca lagi tulisan ini.
Mulai sekarang seharusnya kita menerapkan GreenSQL pada MySQL database yang kita miliki agar tindakan inject-inject kan bisa dikurangi. Goodby inject… ;)
======= Langkah – Langkah —|
Gimana caranya menerapkan GreenSQL tersebut, mari ikuti langkah2 berikut ini :
0. Saya mencobanya di atas OS OpenSuSe 11.
1. Siapkan cemilan
2. Nyalakan internet, download file : greensql-fw dan greensql-console, di : http://greensql.net/download/
3. Pastikan MySQL sudah terintal di komputer Anda
4. Install aplikasi GreenSQL pada komputer Anda :
rpm -ihv PACKAGE_NAME.rpm
5. lakukan konfigurasi database :
# /usr/sbin/greensql-create-db.sh
6. lakukan pengaturan konfigurasi GreenSQL : greensql.conf
# Uncomment the following line if you want to change any setting.
[database]
# dbHost = 127.0.0.1
# dbPort = 3306
# dbName = greendb
dbUser = green
dbpass = pwd
[logging]
# logfile – this parameter specifies location of the log file.
# By default this will point to /var/log/greensql.log file in linux.
logfile = /var/log/greensql.log
# loglevel – this parameter specifies level of logs to produce.
# Bigger value yelds more debugging information.
loglevel = 10
[risk engine]
# If query risk is bigger then specified value, query will be blocked
block_level = 30
# Level of risk used to generate warnings. It is recomended to run application
# in low warning level and then to acknowledge all valid queries and
# then to lower the block_level
warn_level=20
# Risk factor associated with SQL comments
risk_sql_comments=30
# Risk factor associated with access to sensitive tables
risk_senstivite_tables=10
# Risk factor associated with ‘OR’ SQL token
risk_or_token=5
# Risk factor associated with ‘UNION’ SQL statement
risk_union_token=10
# Risk factor associated with variable comparison. For example: 1 = 1
risk_var_cmp_var=30
# Risk factor associated with variable ony operation which is always true.
# For example: SELECT XXX from X1 WHERE 1
risk_always_true=30
# Risk factor associated with an empty password SQL operation.
# For example : SELECT * from users where password = “”
# It works with the following fields: pass/pwd/passwd/password
risk_empty_password=30
# Risk factor associated with miltiple queires which are separated by “;”
risk_multiple_queries=30
# Risk of SQL commands that can used to bruteforce database content.
risk_bruteforce=15
* angka setelah “=” menunjukkan matrix perhitungan dan sensitifitas pengecekan, makin rendah angka yang dimasukkan berarti makin sensitif.
7. Mengaktifkan GreenSQL :
# /etc/init.d/greensql start
8. Lakukan intalasi GreenSQL console :
# tar -xzf greensql-console-0.3.2.tar.gz
9. Jika Anda ingin melakukan perubahan terhdap file konfigurasi :
# mv greensql-console /var/www/greensql
# cd var/www/greensql
# chmod 0777 template_c/
# vi config.php
< ?php # Uncomment the following line to switch to demo version # $demo_version = 1; # greensql version $version = “0.4.6″; # MySQL Database IP address $db_host = “127.0.0.1″; # MySQL Database Port Value. $db_port = 3306; # MySQL database name used to store greensql confiuration and alerts $db_name = “greendb”; # MySQL database user and password $db_user = “green”; $db_pass = “pwd”; # If you run greensql-fw service on the same computer you can specify # location of it’s log file. It will be visible as part of the console. $log_file = “/var/log/greensql.log”; # Number of lines to show when viewing log file. $num_log_lines = 200; # Generated web pages cache $cache_dir = “templates_c”; ?>
10. Lakukan validasi akhir :
# mysql -h 127.0.0.1 -P 3305 -u root -p
======= Penutup —|
Setelah konfigurasi tersebut anda terapkan, selanjutnya anda silahkan melakukan ujicoba dengan berbagai injeksi SQL. Tapi tetap harus waspada…waspadalah… tidak ada system yang 100% secure.
======= Referensi —|
[1] GreenSQL
http://greensql.net
======= Greetz —|
[1] echo|staff, newbie hacker
[2] AllMyFriends : Flexus, S4kitJiw4, dll deh… ;)
[3] AllMyStudent@stmik_bina_insani_bekasi
[4] anakku “Debian”
[5] semua teman2 yang tidak aku sebutkan satu persatu
[6] MyAlmamater : FTI_UBL
#+############################################################################+#
]=========[[ Number theory : perpangkatan modular bilangan besar ]]=========o
Brought To You By: x-diamond1
kim_diamond1 [[AT]] yahoo.com
======= Pendahuluan —|
Dulu waktu aku sekolah, aku pernah belajar mengenai perpangkatan modular bilangan besar dalam pelajaran teori bilangan, Contoh implementasi perpangkatan modular bilangan besar ini bisa ditemukan pada sistem sandi RSA. Pada sistem sandi RSA misalnya adalah perhitungan yang dihasilkan oleh perpangkatan modular antara
dengan kunci, kita review sedikit
========= Review —|
Enkripsi
C = (M^e) mod N;
keterangan : C ==> cipher (teks sandi)
M ==> message (pesan)
e ==> kunci publik
N ==> bilangan pe modular
========= Harder —|
Kesulitan dalam perhitungan nya adalah memangkatkan bilangan yang semakin lama semakin besar, ngerti maksudnya ?? he..he..he…gini maksudnya :
contoh :
(967^10) mod 1000, pada contoh perhitungan tersebut PC masih sanggup untuk menghitungnya, nah bagaimana jikalau (967^3500) mod 1000 ?
apa perhitungan nya masih akurat ?
Oleh karena itu aku buat program sederhana yang memanfaatkan metode matematik kongruen sebagai solusinya.
========= Konsep —|
“Hasil perpangkatan sebelumnya digunakan untuk menghitung hasil perpangkatan berikutnya”
contoh : 967 mod 1000 = 967
(967^2) mod 1000 = 89
(967^3) mod 1000 = ((967^2)*967) mod 1000 = 89*967 mod 1000 = 63
(967^4) mod 1000 = ((967^3)*967) mod 1000 = 63*967 mod 1000 = 921
… ….. … .. … …
… ….. … .. … …
dst dst dst dst
========= Source Code Program —|
Ini aku buat source code program perpangkatan modular bilangan besar menggunakan bahasa perl, mungkin para pembaca berminat & mau mengembangkannya sesuai keperluannya masing-masing
——————————————————–< mulai dari sini >
#!/usr/bin/perl -w
#Perpangkatan modular V1
#by x-diamond1
print”\nInput bilangan : “;
chomp($bil=);
print”Pangkat : “;
chomp($pang=);
print”pemodular : “;
chomp($mod=);
for($i=1; $i< $pang+1; $i++)
{
$c[0]=1;
$c[$i]=($c[$i-1]*$bil)%$mod;
print”$bil^$i modular $mod = $c[$i]\n”;
}
——————————————————–< potong disini >
======= Penutup —|
Aku rasa itu aja sharing yang bisa aku bagi kali ini, mohon maaf kalo terlalu dangkal..:P
======= Referensi —|
- Cryptanalysis Number theory
======= Greetz —|

semoga bermanfa'at N jangn lupa tingakan koment yach! 

terima kasih atas komen semoga bermanfa'at yach!

Posting Komentar (0)
Lebih baru Lebih lama