Upload
muchammad-sholeh
View
501
Download
3
Tags:
Embed Size (px)
Citation preview
Keamanan Apache Web Server Keamanan Apache Web Server Dan Secure Socket Layer (SSL)Dan Secure Socket Layer (SSL)
DD
Oleh Oleh
Muchammad SholehMuchammad Sholeh
Staff Keamanan Sistem Informasi Staff Keamanan Sistem Informasi Sistem Informasi Perangkat Lunak dan KontenSistem Informasi Perangkat Lunak dan Konten – Depkominfo – Depkominfo
mailto : [email protected] : [email protected]/[email protected]/[email protected]
Sosialisasi Topologi Keamanan Informasi – E-Government ( DepkoSosialisasi Topologi Keamanan Informasi – E-Government ( Depkominfo)minfo)14 – 15 Juli 200814 – 15 Juli 2008
Hotel Acacia - JakartaHotel Acacia - Jakarta
TopiTopikk TeoriTeori
− DefinisDefinisii Web Server Web Server− Definisi Apache Web ServerDefinisi Apache Web Server− Arsitektur Web Portal Arsitektur Web Portal − Faktor Kemungkinan Faktor Kemungkinan SSeranganerangan Terhadap Web ServerTerhadap Web Server− Definisi SSL & Kenapa SSL Definisi SSL & Kenapa SSL
PraktekPraktek− Instalasi Apache Web ServerInstalasi Apache Web Server− Konfigurasi Apache Web ServerKonfigurasi Apache Web Server− Instalasi SSL Dengan OpensslInstalasi SSL Dengan Openssl− Konfigurasi SSLKonfigurasi SSL− Test !!!Test !!!− Question!!!Question!!!
Definisi Web ServerDefinisi 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.
Aplikasi Web ServerAplikasi Web Server Apache Web Server - The HTTP Web Server Apache Tomcat Internet Information Services (IIS)
I
DLL
TargetTarget
Definisi Apache Web ServerDefinisi 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/
Keunggulan Apache Web ServerKeunggulan 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)
R
Arsitektur Web PortalArsitektur Web Portal
Database ServerWeb Application
Windows/Linux Server
User Interface
Web Server
Faktor Kemungkinan SeranganFaktor Kemungkinan Serangan Terhadap Terhadap
WebserverWebserver
3 Faktor Serangan
Serangan Berbasis Aplikasi
Serangan Berbasis Jaringan
Komputer
Serangan Berbasis Aturan
User
Sql Injection, Cross Site Scripting,dll
DoS, Sniffing attack,dll
User - unprivileged
Serangan Berbasis AplikasiSerangan Berbasis Aplikasi
Database Server
Web Application
Windows/Linux Server
User Interface
Web Server
Ancaman berbasis web seperti SQL injection, XSS
Serangan Berbasis Aplikasi
Serangan Berbasis Jaringan Serangan Berbasis Jaringan KomputerKomputer
Database Server
Web Application
Windows/Linux Server
Web Server
Ancaman berbasis jaringan komputer seperti sniffing, DoS
Serangan Berbasis Jaringan
Contoh Sniffing PaketContoh Sniffing Paket
Ilustrasi SniffingIlustrasi Sniffing
Tools : ettercap, wiresharkTools : ettercap, wireshark
Serangan Berbasis UserSerangan Berbasis User
Database Server
Web Application
Windows/Linux Server
User Interface
Web Server
Ancaman terhadap user yang tidak mempunyai otorisasi/privileged untuk merubah isi konten website tersebut
Serangan Berbasis User
Serangan Berbasis UserSerangan Berbasis User(Cont)(Cont)
Klik kanan pilih view page source
Kenapa SSL ProtocolKenapa 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
suatu serangan yang merekam atau menangkap data/messageyang lewat melalui jaringan, dimana serangan ini tidak dapat dihindarkan
Sniffing Attack (Tools sniff : snort, tcpdump, ettercap,wireshark)
Ilustrasi HTTP Vs HTTPSIlustrasi HTTP Vs HTTPS
SSL Certificate
Normal HTTP (80)
Encrypted Connection
Secure HTTP (443)
User
UserXIntruder/penyusupIntruder/penyusup
Definisi DariDefinisi Dari SSL SSLSalah satu cara untuk meningkatkan keamanan web server adalah denganmenggunakan enkripsi pada komunikasi terhadap tingkat socket. Denganmenggunakan 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.
OSI ModelOSI Model
Secure Socket LayerSecure Socket Layer(SSL) is Here(SSL) is Here
Open System InterconnectionOpen System Interconnection
Tools Dari Scanning Web ServerTools Dari Scanning Web Server Nikto.pl WebScarab Webshag v1.00 - Web Server Auditing Tool DLL
Source : http://sectools.org/web-scanners.html
Topologi Jaringan KomputerTopologi Jaringan Komputer
PraktekPraktek Install Apache 2 Web Server
# sudo apt-get install apache2# sudo apt-get install apache2
Test Apache Web ServerTest Apache Web Server# /etc/init.d/apache2 start # /etc/init.d/apache2 start buka browser mozilla dan ketik buka browser mozilla dan ketik http://http://localhostlocalhost//
Note : Biasanya pada saat instalasi apache 2 selesai, maka layanan apache 2automatic run tanpa harus menjalankan service
Konfigurasi Apache Web ServerKonfigurasi Apache Web Server
Konfigurasi Apache 2 Web ServerKonfigurasi Apache 2 Web ServerKetik perintah di bawah ini :
# pico /etc/apache2/apache2.conf
Menyembunyikan Menyembunyikan Informasi Platform Informasi Platform
ServerServer
Kenapa ?Kenapa ?
FootprintingFootprinting
Sistem Operasi ? Versi Aplikasi ?
Teknik paling awal sekali yang harus dilakukan oleh seorang hacker sebelum seranganTeknik paling awal sekali yang harus dilakukan oleh seorang hacker sebelum serangan di lakukan adalah melakukan proses footprinting, atau dalam bahasa keren-nya intelejen awaldi 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 akantentang 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 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, dllmenggali semua informasi yang ada pada target mulai dari OS , Aplikasi, port informasi, dll
Hasil Scanning menggunakan tools Nmap, Advance Scanner atau Super Scan
ServerSignature OffServerSignature OffBerfungsi untuk menyembunyikan informasi yang ada pada apache web serverbaik 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 ProdServerTokens ProdBerfungsi untuk menyembunyikan informasi yang ada pad apache web server,agar memudahkan attacker mengumpulkan informasi yang ada pada server
Contoh (cont)Contoh (cont)
CC
Ada beberapa pilihan penggunaan directive ServerTokens ini, yaitu (sebagai contoh):Ada beberapa pilihan penggunaan directive ServerTokens ini, yaitu (sebagai contoh):
ServerTokens Prod : menghasilkan respon server -> ApacheServerTokens Prod : menghasilkan respon server -> Apache
ServerTokens Major : menghasilkan respon server -> Apache/2ServerTokens Major : menghasilkan respon server -> Apache/2
ServerTokens Minor : menghasilkan respon server -> Apache/2.0ServerTokens Minor : menghasilkan respon server -> Apache/2.0
ServerTokens Min : menghasilkan respon server -> Apache/2.0.41ServerTokens Min : menghasilkan respon server -> Apache/2.0.41
ServerTokens OS : menghasilkan respon server -> Apache/2.0.41 (Unix)ServerTokens OS : menghasilkan respon server -> Apache/2.0.41 (Unix)
SS
ServerTokens Full ( atau tidak dideklarasikan) : menghasilkan respon server -> Apache/2.0.41 ServerTokens Full ( atau tidak dideklarasikan) : menghasilkan respon server -> Apache/2.0.41 (Unix) PHP/4.2.2 MyMod/1.2(Unix) PHP/4.2.2 MyMod/1.2
Cont
ServerSignature On ServerSignature On ServerTokens FullServerTokens Full
Cont
ServerTokens ProdServerTokens ProdServerSignature Off ServerSignature Off
Meminimalisasi Serangan DoS Meminimalisasi Serangan DoS (Denial of Service)(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, dllDosHttp,Syndrop, dll.
Timeout 60 (Menunjukkan berapa lama waktu pengiriman dan penerimaan request diizinkan.Defaultnya adalah 300 detik)
p
KeepAlive On ( Kemampuan server menerima request secara simultan yang berasal dari satu koneksi)
s
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)
1
StartServers 10 (Jumlah server yang dijalankan oleh apache untuk inisialisasi ketika apache pertama kali dieksekusi)
i
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)
s
Meminimalisasi Serangan DoS Meminimalisasi Serangan DoS (Denial of Service) (Denial of Service)
Buffer OverflowsBuffer OverflowsBuffer 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 AttackH ttpd Attack
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
H ttpd A ttackH ttpd A ttack
/* 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)))
i
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)))
i
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]/\\n\\n\"\n"); write(sock,getbuf(tbl.addr),BUFSIZE); sleep(1); printf("[*] closing connection.\n\n"); close(sock); return(0);} Potongan Script Buffer Overflow yang dibuat
dari bahasa C untuk, lebih jelasnya lihatdi http://www.milw0rm.com/exploits/3913
Buffer OverflowsBuffer Overflows(cont)(cont)
((
LimitRequestBody 10240 (Membatasi request secara keseluruhan dari client ke server)
k
LimitRequestFields 40 (membatasi maksimal kapasitas dari fields header sebuah permohonan pesan terhadap web server)
f
LimitRequestFieldsize 100 (membatasi maksimum ukuran dari http request field header terhadap web server)
h
LimitRequestLine 500 (Membatasi maksimum ukuran baris dari http request terhadap web server)
h
Tambahkan Konfigurasi diatas pada directory : /etc/apache2/httpd.conf menggunakan editor nano atau pico
Install Secure Socket Install Secure Socket Layer Dengan Layer Dengan
OpenSSLOpenSSL
Install SSL Menggunakan Install SSL Menggunakan OpenSSLOpenSSL
OpenSSL adalah sebuah toolkit kriptografi yang mengimplementasikan protokol jaringan SecureSockets Layer (SSL v2/v3) dan Transport Layer Security (TLS v1) termasuk berbagai standarkriptografi lainnya yang di butuhkan. Openssl sendiri adalah program di Linux yang sifatnya command line tidak menggunakan grafik user interface (GUI).
Install SSL (Secure Install SSL (Secure Socket Layer)Socket Layer)
SS
# apt-get install # apt-get install openssl ssl-certopenssl ssl-cert EnterEnter
Toolkit CryptographyToolkit Cryptography
Library dari SSLLibrary dari SSL
Membuat Folder Utk Membuat Folder Utk Key dari SSLKey dari SSL
$ sudo mkdir -p /etc/apache2/training/ssl$ sudo mkdir -p /etc/apache2/training/ssl
$ cd /etc/apache2/training/ssl$ cd /etc/apache2/training/ssl
sholeh@sholeh-desktop:/etc/apache2/training/ssl$ sholeh@sholeh-desktop:/etc/apache2/training/ssl$
Sudah berada pada folder sslSudah berada pada folder ssl
EnterEnter
EnterEnter
Membuat Kunci CA Membuat Kunci CA root@sholeh-desktop:/etc/apache2/training/ssl# openssl genrsa 1024 >root@sholeh-desktop:/etc/apache2/training/ssl# openssl genrsa 1024 > training.key training.key
Generating RSA private key, 1024 bit long modulus.....++++++...................................................++++++e is 65537 (0x10001)
e
Membuat Certificate Membuat Certificate Signing Request Signing Request
(CSR)(CSR)
((
# openssl req -new -key training.key > # openssl req -new -key training.key > training.csrtraining.csr
You are about to be asked to enter information that will be incorporatedinto 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 blankFor some fields there will be a default value,If you enter '.', the field will be left blank.-----Country Name (2 letter code) [AU]:IDState or Province Name (full name) [Some-State]:IndonesiaLocality Name (eg, city) []:Jakarta PusatOrganization Name (eg, company) [Internet Widgits Pty Ltd]:DEPKOMINFOOrganizational Unit Name (eg, section) []:Keamanan Sistem Informasi Common Name (eg, YOUR name) []:depkominfo.go.idEmail Address []:[email protected]
Please enter the following 'extra' attributesto be sent with your certificate requestA challenge password []:ketikajaAn optional company name []:SIPLK
Memberikan Signature Memberikan Signature Untuk Certificate Untuk Certificate
# openssl x509 -req -days 365 -in # openssl x509 -req -days 365 -in training.csrtraining.csr -signkey -signkey training.keytraining.key -out -out training.certtraining.cert
Signature oksubject=/C=ID/ST=Indonesia/L=Jakarta Pusat/O=DEPKOMINFO/OU=Keamanan Sistem Informasi/CN=depkominfo.go.id/[email protected] Private key
root@sholeh-desktop:/etc/apache2/training/ssl# lstraining.cert training.csr training.keytraining.cert training.csr training.key
Key yang telah kita buat terkumpul dalam satu folderKey yang telah kita buat terkumpul dalam satu folder
ContContTambahkan port 443 pada : Tambahkan port 443 pada :
# /etc/apache2/port.conf# /etc/apache2/port.conf
gunakan editor pico untuk memasukan gunakan editor pico untuk memasukan port 443,port 443, seperti dibawah ini : seperti dibawah ini :
# pico /etc/apache2/port.conf# pico /etc/apache2/port.conf
Ketik Listen 443Ketik Listen 443
Karena protokol SSL berjalan di port 443Karena protokol SSL berjalan di port 443
ContContSetelah itu ketik dibawah ini pada folder /etc/apache2/site-available/secure dengan Setelah itu ketik dibawah ini pada folder /etc/apache2/site-available/secure dengan editor text pico, dengan perintah pico /etc/apache2/site-available/secure :editor text pico, dengan perintah pico /etc/apache2/site-available/secure :
NameVirtualHost *:443NameVirtualHost *:443
<VirtualHost *:443><VirtualHost *:443>
ServerName localhostServerName localhost Serveradmin [email protected] [email protected] DocumentRoot /var/www/DocumentRoot /var/www/
SSLEngine OnSSLEngine On
SSLCertificateFile /etc/apache2/training/ssl/training.certSSLCertificateFile /etc/apache2/training/ssl/training.cert SSLCertificateKeyFile /etc/apache2/training/ssl/training.keySSLCertificateKeyFile /etc/apache2/training/ssl/training.key
ErrorLog /home/depkominfo/secure/log/error.logErrorLog /home/depkominfo/secure/log/error.log
CustomLog /home/depkominfo/secure/log/custom.log combinedCustomLog /home/depkominfo/secure/log/custom.log combined ServerSignature OnServerSignature On</VirtualHost></VirtualHost>
ContContUntuk mengaktifkan modul ssl, ketik :Untuk mengaktifkan modul ssl, ketik :
# a2enmod ssl# a2enmod ssl
This module is already enabled!This module is already enabled!
Untuk mengaktifkan site secure, ketik :Untuk mengaktifkan site secure, ketik :
# a2ensite secure# a2ensite secure
This site is already enabled!This site is already enabled!
Restart apache 2 dengan perintah :Restart apache 2 dengan perintah :
# /etc/init.d/apache2 force-reload -> Enter# /etc/init.d/apache2 force-reload -> Enter
TeStTeSt- Buka browser mozilla firefox, dan ketik url :- Buka browser mozilla firefox, dan ketik url :
https://https://localhostlocalhost//
Https Encrypted Https Encrypted
Authenticated By DepkominfoAuthenticated By Depkominfo
Information CertificateInformation Certificate
Validate Not BeforeValidate Not Before
Validate Not AfterValidate Not After
Certificate Signature AlgorithmCertificate Signature Algorithm
Certificate Signature ValueCertificate Signature Value
Question !!Question !!
Security Is Not Security Is Not Technology And Technology And
Product, But Security Product, But Security Is YouIs You
KesimpulanKesimpulan 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 )
I
Tetap Menjaga Keamanan dan Selalu Review Prosedur, Ceklist Keamanan dan Kebijakan IT Security Sesuai Kebutuhan
Beberapa Link Bagus Untuk Dikunjungi :
http://www.owasp.org/index.jsphttp://www.webappsec.org/projects/
http://www.cgisecurity.com/http://www.isecom.org/osstmm/
http://www.milw0rm.com/dos.php
Terima KasihTerima Kasih