• Like
Ssl presentation verindo_rev_sholeh
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

Ssl presentation verindo_rev_sholeh

  • 446 views
Published

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
446
On SlideShare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
4
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Keamanan Apache Web Server Dan Secure Socket Layer (SSL) Oleh Muchammad Sholeh Staff Keamanan Sistem Informasi Sistem Informasi Perangkat Lunak dan Konten – Depkominfo mailto : muchammad.sholeh@gmail.com/sholeh@depkominfo.go.id Sosialisasi Topologi Keamanan Informasi – E-Government ( Depkominfo) 14 – 15 Juli 2008 Hotel Acacia - Jakarta
  • 2.  Teori Topik − Definisi Web Server − Definisi Apache Web Server − Arsitektur Web Portal − Faktor Kemungkinan Serangan Terhadap Web Server −  Definisi SSL & Kenapa SSL Praktek − Instalasi Apache Web Server − Konfigurasi Apache Web Server − Instalasi SSL Dengan Openssl − Konfigurasi SSL − Test !!! − Question!!!
  • 3. Definisi Web Server Webserver adalah suatu layanan untuk menterjemahkan permintaan serta permohonan dari bahasa pemrograman web (seperti HTML,PHP,ASP) untuk ditampilkan pada protokol HTTP yang terdapat pada port 80 atau sering disebut HTTP Server, dimana hasil permintaan itu dapat ditampilkan lewat browser mozilla, IE, dll.
  • 4. Aplikasi Web Server  Apache Web Server - The HTTP Web Server  Apache Tomcat  Internet Information Services (IIS)  DLL Target
  • 5. Definisi Apache Web Server Apache web server merupakan aplikasi perangkat lunak web server open source yang mudah di konfigurasi sesuai kebutuhan serta handal, lebih lengkap bisa dilihat dan di download : http://jakarta.apache.org/
  • 6. Keunggulan Apache Web Server     Free software (Gratis!!!!!)  Multiplatform, Apache dapat berjalan di beberapa sistem operasi (BSD, Linux, Microsoft Windows,dll ) serta platform lainnya Fleksibel, mudah settingnya (fleksibilitas untuk di setting dengan PHP dan MySQL Dapat di tambahkan modul baru seperti Mod_security (by: Ivan Ristic)
  • 7. Arsitektur Web Portal Windows/Linux Server Web Application Database Server Web Server User Interface
  • 8. Faktor Kemungkinan Serangan Terhadap Webserver 3 Faktor Serangan DoS, Sniffing attack,dll Sql Injection, Cross Site Scripting,dll Serangan Berbasis Aplikasi User - unprivileged Serangan Berbasis Jaringan Komputer Serangan Berbasis Aturan User
  • 9. Serangan Berbasis Aplikasi Windows/Linux Server Web Application Database Server Web Server Ancaman berbasis web seperti SQL injection, XSS Serangan Berbasis Aplikasi User Interface
  • 10. Serangan Berbasis Jaringan Komputer Windows/Linux Server Web Application Database Server Web Server Serangan Berbasis Jaringan Ancaman berbasis jaringan komputer seperti sniffing, DoS
  • 11. Contoh Sniffing Paket
  • 12. Ilustrasi Sniffing Tools : ettercap, wireshark
  • 13. Serangan Berbasis User Windows/Linux Server Web Application Database Server Web Server Ancaman terhadap user yang tidak mempunyai otorisasi/privileged untuk merubah isi konten website tersebut Serangan Berbasis User User Interface
  • 14. Serangan Berbasis User (Cont) Klik kanan pilih view page source
  • 15. Kenapa SSL Protocol     Menjamin kerahasiaan pesan, sehingga tidak bisa dibaca oleh pihak yang tidak diinginkan Menjamin keutuhan pesan, sehingga tidak bisa diubah-ubah di tengah jalan Menjamin keabsahan/keaslian, sehingga meyakinkan pihak-pihak yang berkomunikasi antara client dan server Meminimalisasi serangan sniffing data
  • 16. suatu serangan yang merekam atau menangkap data/message yang lewat melalui jaringan, dimana serangan ini tidak dapat dihindarkan Sniffing Attack (Tools sniff : snort, tcpdump, ettercap,wireshark)
  • 17. Ilustrasi HTTP Vs HTTPS Normal HTTP (80) User X User Intruder/penyusup SSL Certificate Secure HTTP (443) Encrypted Connection
  • 18. Definisi Dari SSL Salah satu cara untuk meningkatkan keamanan web server adalah dengan menggunakan enkripsi pada komunikasi terhadap tingkat socket. Dengan menggunakan enkripsi, orang tidak bisa menyadap data-data (transaksi) yang dikirimkan dari client ke web server. Dengan kata lain SSL (Secure Socket Layer) Hanya mengamankan jalur komunikasi (secure connection) transaksi yang terbungkus dan terenkripsi/acak antara client dan server.
  • 19. OSI Model Open System Interconnection Secure Socket Layer (SSL) is Here
  • 20. Tools Dari Scanning Web Server  Nikto.pl  WebScarab  Webshag v1.00 - Web Server Auditing Tool  DLL Source : http://sectools.org/web-scanners.html
  • 21. Topologi Jaringan Komputer
  • 22. Praktek  Install Apache 2 Web Server # sudo apt-get install apache2
  • 23. Test Apache Web Server # /etc/init.d/apache2 start buka browser mozilla dan ketik http:// localhost/ Note : Biasanya pada saat instalasi apache 2 selesai, maka layanan apache 2 automatic run tanpa harus menjalankan service
  • 24. Konfigurasi Apache Web Server
  • 25. Konfigurasi Apache 2 Web Server Ketik perintah di bawah ini : # pico /etc/apache2/apache2.conf
  • 26. Menyembunyikan Informasi Platform Server
  • 27. Kenapa ?
  • 28. Footprinting  Sistem Operasi ?  Versi Aplikasi ? Teknik paling awal sekali yang harus dilakukan oleh seorang hacker sebelum serangan di lakukan adalah melakukan proses footprinting, atau dalam bahasa keren-nya intelejen awal tentang segala sesuatu yang berkaitan dengan target yang dituju. Dengan cara ini seorang penyerang akan memperoleh profile / postur keamanan yang lengkap dari organisasi / jaringan yang akan di serang, untuk menggali semua informasi yang ada pada target mulai dari OS , Aplikasi, port informasi, dll
  • 29. Hasil Scanning menggunakan tools Nmap, Advance Scanner atau Super Scan
  • 30. ServerSignature Off Berfungsi untuk menyembunyikan informasi yang ada pada apache web server baik itu versi dan operating system platform tersebut, karena seorang attacker akan berusaha untuk menggali informasi yang ada pada komputer target guna untuk melancarkan serangannya ServerTokens Prod Berfungsi untuk menyembunyikan informasi yang ada pad apache web server, agar memudahkan attacker mengumpulkan informasi yang ada pada server
  • 31. Contoh (cont) Ada beberapa pilihan penggunaan directive ServerTokens ini, yaitu (sebagai contoh): ServerTokens Prod : menghasilkan respon server -> Apache ServerTokens Major : menghasilkan respon server -> Apache/2 ServerTokens Minor : menghasilkan respon server -> Apache/2.0 ServerTokens Min : menghasilkan respon server -> Apache/2.0.41 ServerTokens OS : menghasilkan respon server -> Apache/2.0.41 (Unix) ServerTokens Full ( atau tidak dideklarasikan) : menghasilkan respon server -> Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2
  • 32. Cont ServerSignature On ServerTokens Full
  • 33. Cont ServerSignature Off ServerTokens Prod
  • 34. Meminimalisasi Serangan DoS (Denial of Service) Serangan bertubi-tubi terhadap server secara terus menerus untuk mengirimkan paket dengan berkapasitas besar sehingga melumpuhkan layanan terhadap server, dengan kata lain serangan yang bertujuan utk menghabiskan resources/sumber yang dimiiki oleh komputer target atau server. Misalkan menggunakan tools DosHttp,Syndrop, dll. dll
  • 35. Meminimalisasi Serangan DoS (Denial of Service)       Timeout 60 (Menunjukkan berapa lama waktu pengiriman dan penerimaan request diizinkan.Defaultnya adalah 300 detik) KeepAlive On ( Kemampuan server menerima request secara simultan yang berasal dari satu koneksi) KeepAliveTimeout 15 ( Waktu yang ditentukan untuk menunggu request selanjutnya dari satu koneksi, maka anda bisa rubah menjadi 15, hal ini akan meminimalkan server kita di serang oleh DOS) StartServers 10 (Jumlah server yang dijalankan oleh apache untuk inisialisasi ketika apache pertama kali dieksekusi) MinSpareServers 10 (Jumlah server yang dibutuhkan untuk melayani setiap request yang masuk) ->biasa digunakan untuk situs web yang sangat sibuk MaxSpareServers 20 (Jumlah server yang dibutuhkan untuk melayani setiap request yang masuk)
  • 36. Buffer Overflows Buffer Overflow adalah suatu serangan yang menyerang engine (web server) yang memiliki vulnerability (kelemahan) dalam masalah alokasi memori (buffer) dengan cara memaksakan malicious code/script jahat agar dieksekusi oleh engine (web server) untuk memperoleh akses root shell H ttpd A ttack
  • 37. H ttpd A ttack Kerawanan serta kelemahan yang terdapat dalam HTTPD ataupun webserver ada lima macam: buffer overflows, httpd bypasses, cross scripting, web code vulnerabilities, dan URL floods. HTTPD Buffer Overflow bisa terjadi karena attacker menambahkan errors pada port yang digunakan untuk web traffic dengan cara memasukan banyak carackter dan string untuk menemukan tempat overflow yang sesuai. Ketika tempat untuk overflow ditemukan, seorang attacker akan memasukkan string yang akan menjadi perintah yang dapat dieksekusi. Bufer-overflow dapat memberikan attacker akses ke command prompt
  • 38. /* connects to the vulnerable webdexproxy server. */ unsigned short proxy_connect(char *hostname,unsigned short port){ signed int sock; struct hostent *t; struct sockaddr_in s; sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); s.sin_family=AF_INET; s.sin_port=htons(port); printf("[*] attempting to connect: %s:%d.n",hostname,port); if((s.sin_addr.s_addr=inet_addr(hostname))){ if(!(t=gethostbyname(hostname))) printe("couldn't resolve hostname.",1); memcpy((char *)&s.sin_addr,(char *)t->h_addr,sizeof(s.sin_addr)); } signal(SIGALRM,sig_alarm); alarm(TIMEOUT); if(connect(sock,(struct sockaddr *)&s,sizeof(s))) printe("webdesproxy connection failed.",1); alarm(0); printf("[*] successfully connected: %s:%d.n",hostname,port); sleep(1); printf("[*] sending string:n"); printf("[+] "GET http://[NOPSx250][JMP4][EIP/"CALL ESP"][NOPSx32]" "[SHELLCODE]/nn"n"); write(sock,getbuf(tbl.addr),BUFSIZE); sleep(1); printf("[*] closing connection.nn"); close(sock); return(0); } Potongan Script Buffer Overflow yang dibuat dari bahasa C untuk, lebih jelasnya lihat di http://www.milw0rm.com/exploits/3913
  • 39. Buffer Overflows (cont)     LimitRequestBody 10240 (Membatasi request secara keseluruhan dari client ke server) LimitRequestFields 40 (membatasi maksimal kapasitas dari fields header sebuah permohonan pesan terhadap web server) LimitRequestFieldsize 100 (membatasi maksimum ukuran dari http request field header terhadap web server) LimitRequestLine 500 (Membatasi maksimum ukuran baris dari http request terhadap web server) Tambahkan Konfigurasi diatas pada directory : /etc/apache2/httpd.conf menggunakan editor nano atau pico
  • 40. Install Secure Socket Layer Dengan OpenSSL
  • 41. Install SSL Menggunakan OpenSSL OpenSSL adalah sebuah toolkit kriptografi yang mengimplementasikan protokol jaringan Secure Sockets Layer (SSL v2/v3) dan Transport Layer Security (TLS v1) termasuk berbagai standar kriptografi lainnya yang di butuhkan. Openssl sendiri adalah program di Linux yang sifatnya command line tidak menggunakan grafik user interface (GUI).
  • 42. Install SSL (Secure Socket Layer) # apt-get install openssl ssl-cert Library dari SSL Toolkit Cryptography Enter
  • 43. Membuat Folder Utk Key dari SSL Enter $ sudo mkdir -p /etc/apache2/training/ssl $ cd /etc/apache2/training/ssl Enter sholeh@sholeh-desktop:/etc/apache2/training/ssl$ Sudah berada pada folder ssl
  • 44. Membuat Kunci CA root@sholeh-desktop:/etc/apache2/training/ssl# openssl genrsa 1024 > training.key Generating RSA private key, 1024 bit long modulus .....++++++ ...................................................++++++ e is 65537 (0x10001)
  • 45. Membuat Certificate Signing Request (CSR) # openssl req -new -key training.key > training.csr You are about to be asked to enter information that will be incorporated into your certificate request. What you are about to enter is what is called a Distinguished Name or a DN. There are quite a few fields but you can leave some blank For some fields there will be a default value, If you enter '.', the field will be left blank. ----Country Name (2 letter code) [AU]:ID State or Province Name (full name) [Some-State]:Indonesia Locality Name (eg, city) []:Jakarta Pusat Organization Name (eg, company) [Internet Widgits Pty Ltd]:DEPKOMINFO Organizational Unit Name (eg, section) []:Keamanan Sistem Informasi Common Name (eg, YOUR name) []:depkominfo.go.id Email Address []:sholeh@kamsifo.web.id Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []:ketikaja An optional company name []:SIPLK
  • 46. Memberikan Signature Untuk Certificate # openssl x509 -req -days 365 -in training.csr -signkey training.key -out training.cert Signature ok subject=/C=ID/ST=Indonesia/L=Jakarta Pusat/O=DEPKOMINFO/ OU=Keamanan Sistem Informasi/CN=depkominfo.go.id/emailAddress=sholeh@kamsifo.web.id Getting Private key root@sholeh-desktop:/etc/apache2/training/ssl# ls training.cert training.csr training.key Key yang telah kita buat terkumpul dalam satu folder
  • 47. Cont Tambahkan port 443 pada : # /etc/apache2/port.conf gunakan editor pico untuk memasukan port 443, seperti dibawah ini : # pico /etc/apache2/port.conf Ketik Listen 443 Karena protokol SSL berjalan di port 443
  • 48. Cont Setelah itu ketik dibawah ini pada folder /etc/apache2/site-available/secure dengan editor text pico, dengan perintah pico /etc/apache2/site-available/secure : NameVirtualHost *:443 <VirtualHost *:443> ServerName localhost Serveradmin admin@kamsifo.web.id DocumentRoot /var/www/ SSLEngine On SSLCertificateFile /etc/apache2/training/ssl/training.cert SSLCertificateKeyFile /etc/apache2/training/ssl/training.key ErrorLog /home/depkominfo/secure/log/error.log CustomLog /home/depkominfo/secure/log/custom.log combined ServerSignature On </VirtualHost>
  • 49. Cont Untuk mengaktifkan modul ssl, ketik : # a2enmod ssl This module is already enabled! Untuk mengaktifkan site secure, ketik : # a2ensite secure This site is already enabled! Restart apache 2 dengan perintah : # /etc/init.d/apache2 force-reload -> Enter
  • 50. TeSt - Buka browser mozilla firefox, dan ketik url : https://localhost/
  • 51. Https Encrypted Authenticated By Depkominfo
  • 52. Information Certificate
  • 53. Validate Not Before
  • 54. Validate Not After
  • 55. Certificate Signature Algorithm
  • 56. Certificate Signature Value
  • 57. Question !!
  • 58. Security Is Not Technology And Product, But Security Is You
  • 59. Kesimpulan     Tetap Sadar akan Betapa Pentingnya Keamanan Informasi Training/Pelatihan IT Security Membangun Pengetahuan IT Security Lewat Miling List (Linux Security,Security Focus, Internet Alert dll ) Tetap Menjaga Keamanan dan Selalu Review Prosedur, Ceklist Keamanan dan Kebijakan IT Security Sesuai Kebutuhan
  • 60. Beberapa Link Bagus Untuk Dikunjungi : http://www.owasp.org/index.jsp http://www.webappsec.org/projects/ http://www.cgisecurity.com/ http://www.isecom.org/osstmm/ http://www.milw0rm.com/dos.php
  • 61. Terima Kasih