Friday, December 16, 2016

DOCKER COMPOSE

sekarang waktunya kita belajar mengenai Docker Compose

adalah sebuah tool untuk menjalankan multi-container dengan composer dapat menjalankan aplikasi mu dalam satu perintah

jika ingin mendefinisikn aplikasi kita maka dibutuhkan dockerfile jika tidak ya tidak apa-apa.

disini nanti saya akan menggunakan wordpress.

untuk lebih jelasnya silahkan lihat disini

https://docs.docker.com/compose/overview/

pertama kita akan install docker compose
untuk link referensinya dibawah ini

link docs.docker

buka terminal

$curl -L "https://github.com/docker/compose/releases/download/1.9.0/docker-compose

setelah install
kemudian berikan hak akses /usr/local/bin/docker-compose


$chmod 777 /usr/local/bin/docker-compose


Demo
=====
1. docker-compose build ( docker harus pake dockerfile )
2. docker-compose up  (kalo tidak langsung up )
3. docker-compose stop
4. docker-compose down


sekarang waktunya membuat file dengan nama docker-compose.yml 

db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: wordpress
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: wordpress
wordpress:
     links:
       - db
     image: wordpress:latest
     ports:
       - "8000:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: wordpress

save,, sekarang jalankan

$sudo docker-compose up

jika tidak bisa,, maka tambahkan -d

$sudo docker-compose up -d

jika sudah berhasil sekarang buka browser jalankan localhost:8000






sekarang saya akan menambahkan phpmyadmin, jadi nanti akan di buil 3 ada mysql, wordpress, dan phpmyadmin.

buka kembali file yang dibuat tadi. kemudian tambahkan script berikut dibawah

phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: phpmyadmin
    links:
     - db
    environment:
     - PMA_ARBITRARY=1
    restart: always
    ports:
     - 85:80

sekarang kita jalankan kembali

$sudo docker-compose up

sekarang buka localhost:85 ini berarti saya membukat phmyadminnya di port 85


nah sekarang sudah ada 3 aplikasi yang berjalan. sesuai yang saya bilang sebelumnya 

ini adalah hasil akhir dari aplikasi yang sudah jadi.. 


catatan saya untuk pembaca,, silahkan cara tutorial ini di ekplor lagi dengan aplikasi yang lebih komplit dan sudah jadi.

OK. sekian dulu yaa... 



Friday, December 9, 2016

SSH (Secure Shell)


SSH merupakan aplikasi klien dan server yang menyediakan secure remote login malalui internet maupun jaringan yang tidak terpercaya ( untrusted network ). Algoritma kriptografi digunakan untuk melakukan otentikasi pada kedua belah pihak, mengenkripsi data yang ditransmisikan dan melindungi integritas data. Gambar di bawah ini menunjukkan koneksi berbasis SSH.

SSH bertujuan untuk menggantikan rsh, rlogin, rcp dan protokol telnet. SSH menggunakan protokol berbasis paket biner yang dapat bekerja pada semua lapisan transport yang mampu melewatkan data biner. SSH tersedia sebagai versi komersial dan versi gratis. Untuk versi gratis terdapat beberapa pilihan seperti OpenSSH (Unix,Windows) , LSH (Unix), PuTTY (Windows), Okhapkin’s port of SSH1 (Windows), MacSSH (Macintosh), TeraTerm (Windows), MindTerm (Unix,Windows), NiftyTelnet 1.1 SSH (Macintosh). Sedangkan untuk versi komersial SSH Communication Security (Unix,Windows), F-Secure SSH (Unix,Windows), Secure CRT, SecureFX (Windows), VShell (Windows).

Arsitektur SSH
SSH protokol mempunyai 3 lapis komponen[10] yaitu SSH Connection Protocol, SSH Authentication Protocol dan SSH Transport Protocol. Ketiganya berada pada tingkat aplikasi dari protokol TCP/IP.

SSH Transport Layer
Implementasi SSH server secara umum menggunakan port 22 oleh IANA. Pada saat klien melakukan koneksi ke SSH server, server akan merespon permintaan koneksi tersebut. Server akan mengirimkan string identifikasi versi dan menunggu respon string identifikasi dari klien. Pada kedua sisi harus mampu memproses string identifikasi tersebut. Setelah proses diatas server berpindah ke mode paket biner dan segera mengirimkan paket kunci publik yang berisi check byte, host key, server key, flag protocol, jenis penyandian dan jenis otentikasi ke klien. Klien memproses informasi diatas dan memberikan paket balasan ke server berupa session key yang berisi jenis penyandian yang ada pada sisi klien, check byte, session key ( yang terenkripsi oleh kedua sisi ) dan flag protocol. Server dan klien mengaktifkan enkripsi dan komunikasi diantaranya dapat berlangsung.

SSH Authentication Layer
Lapisan protokol otentikasi merupakan protokol yang multifungsi dan bekerja di atas lapisan protokol transport. Protokol ini menganggap lapisan bawahnya telah menyediakan proteksi terhadap integritas dan kerahasiaan. Server SSH dapat menetapkan kebijakan yang berhubungan dengan otentikasi seperti idle time out, banner message dan pembatasan koneksi saat percobaan koneksi gagal. Ada beberapa metode otentikasi yang digunakan yaitu public key authentication, password authentication dan host based authentication. Metode otentikasi yang sering digunakan adalah public key dan password.

SSH Connection Layer
Lapisan koneksi bekerja diatas lapisan transport dan lapisan otentikasi. Lapisan ini menyediakan sesi  login, menjalankan perintah pada remote, forwarded TCP/IP dan forward koneksi X11. Kemampuan port forward memungkinkan klien melakukan forwarding terhadap koneksinya dari remote komputer ke komputer lokal atau sebaliknya. Sebuah port di alokasikan untuk menerima koneksi pada komputer remote dan koneksi ke komputer lokal. Sehingga klien dapat menerima koneksi yang berasal dari komputer remote ke komputer lokal. Hal ini dapat menjadi sebuah celah keamanan, dimana klien berusaha untuk dapat menjalankan sebuah aplikasi pada remote komputer.

Cara kerja SSH
Misalkan suatu client mencoba mengakses suatu Linux server melalui SSH. SSH daemon yang berjalan baik pada Linux server maupun SHH client telah mempunyai pasangan public/private key yang masingmasing menjadi identitas SSH bagi keduanya. Langkah-langkah koneksinya akan sebagai berikut:
1. Klien melakukan bind pada local port nomor besar dan melakukan koneksi ke port 22 pada server.
2. Klien dan server setuju untuk menggunakan jenis sesi SSH tertentu. Hal ini penting karena SSH v. 1 dan v. 2 tidak kompatibel.
3. Klien meminta public key dan host key milik server.
4.  Klien dan server menyetujui alogritma enkripsi yang akan dipakai (misalnya Triple DES atau IDEA).
5. Klien membentuk suatu session key dan mengenkripsinya menggunakan public key milik server.
6. Server akan melakuakn dekripsi terhadap session key yang didapat dari klien, melakukan re enkripsi dengan public key milik klien, dan mengirimkannya kembali ke klien untuk otentikasi.
7. Klien mengotentikasi dirinya ke server di dalam aliran data terenkripsi dalam session key tersebut. Sampai disini koneksi telah terbentuk, dan client dapat selanjutnya bekerja secara interaktif pada server atau mentransfer file ke atau dari server.

PENETRATION TESTER ( PenTest )


Uji penetrasi ( penetration tester) adalah cara yang bagus untuk mengidentifikasi kerentanan yang ada dalam sistem atau .jaringan yang sudah memiliki langkah-langkah keamanan sebagai langkah preventif. . Sebuah tes penetrasi biasanya melibatkan penggunaan metode yang dilakukan oleh individu yang terpercaya yang sengaja menyerang dengan logika yang sama seperti yang digunakan oleh penyusup dari luar atau hacker . 
Tergantung pada jenis tes yang .dilakukan , ini mungkin saja hanya melibatkan pemindaian sederhana dari sebuah alamat IP untuk mengidentifikasi mesin yang sedang beroperasi ( live) atau dengan desain yang lebih tajam misalnya mengambil akses root / admin.
Hasil penetration test ini atau serangan ini kemudian didokumentasikan dan disajikan sebagai laporan kepada pemilik sistem dan .kerentanan diidentifikasi kemudian dapat diselesaikan .
Pengujian penetrasi sering dilakukan karena dua alasan . Tentu saja hal ini baik karena untuk meningkatnya kesadaran pengelolaan masalah keamanan atau intrusion detection dan seberapa cepat kemampuan respon terhadap adanya threat. .Hal ini juga membantu manajemen yang lebih tinggi dalam pengambilan keputusan .
Manajemen suatu organisasi mungkin tidak ingin atau tidak mampu untuk mengatasi semua semua kerentanan yang ditemukan dalam penilaian kerentanan, tetapi mungkin ingin untuk mengatasi kelemahan sistemnya yang ditemukan yang paling berbahaya, dan inilah fungsi dari melalui penetration test . Seperti halnya juga dengan analogi yang sama untuk pacth patch system operasi windows dimana dengan sebegitu banyaknya patch yang muncul di setiap minggu nya maka biasanya yang kemudian di install adalah patch patch yang memang mampu menghilanglkan vulnerability yang dianggap berbahaya.
Disamping itu adanya pen test juga hasilnya bisa digunakan untuk capacity building dari sisi infrastruktur dan system operasi sebab paling tidak suatu organisasi akan berusaha untuk mengalokasi kan anggaran demi untuk menutup sekian banyak vulnerability yang ada di dalam jaringan mereka.
Penetration Testing memiliki 2 metode yaitu sebagai berikut :
1. Blackbox Testing, yaitu melakukan penetrasi tanpa mengetahui apapun mengenai sistem yang anda gunakan selain domain website anda.
2. Whitebox Testing, yaitu melakukan penetrasi dengan mengetahui informasi mengenai sistem dan logic yang anda gunakan, dimana kami akan mempelajari logic dari pemrograman website anda sehingga menambah pengetahuan kami akan website anda dan menjadikan eksplorasi ditemukannya vulnerable/kelemahan lebih jauh dan mendalam.



Metodologi
Perencanaan dan Persiapan
Dalam rangka untuk membuat uji penetrasi bisad dilakukan dengan sukses, banyak persiapan perlu dilakukan. Idealnya pertemuan kickoff harus disebut antara organisasi dan penguji penetrasi. Pertemuan kickoff harus membahas masalah mengenai ruang lingkup dan tujuan uji penetrasi serta pihak terlibat. Harus ada tujuan yang jelas untuk tes penetrasi yang akan dilakukan. sebuah organisasi yang melakukan tes tanpa alasan yang jelas tidak boleh kaget jika hasil nya pun tidak mengandung hasil yang jelas. 
Dalam kebanyakan kasus tujuan dari uji penetrasi adalah untuk menunjukkan bahwa kerentanan dieksploitasi ada dalam jaringan organisasi infrastruktur. Pematokan uji penetrasi dilakukan dengan mengidentifikasi mesin, sistem dan jaringan, persyaratan operasional dan staf yang terlibat. 
Agenda penting lainnya untuk dibahas adalah waktu dan durasi dari uji penetrasi dilakukan. Hal ini penting, karena akan memastikan bahwa dilakukan penetrasi sementara kegiatan bisnis dan operasional normal sehari-hari tetap berjalan dan tidak terganggu. 
Salah satu hal yang perlu di bahas lainnya adalah apakah staf itu dari organisasi harus diberitahu sebelum uji penetrasi dilakukan atau tidak. Pemberitahuan mungkin tepat , tetapi dapat mengubah perilaku mereka dengan cara yang akan bisa mempengaruhi hasil uji penetrasi. Di sisi lain, memilih untuk tidak memperingatkan staf mungkin mengakibatkan mereka mengambil tindakan yang tidak perlu mempengaruhi kondisi yang sudah ada.

Pengumpulan Informasi dan Analisa
Setelah melakukan perencanaan dan persiapan yang diperlukan dengan organisasi (atau target) langkah berikutnya adalah untuk mengumpulkan informasi sebanyak mungkin tentang sistem target atau jaringan.. Tools dan sumberdaya nya cukup banyak dari mulai acunetix, vulnerability scanning, netcraft, nmaps dll..
Vulnerability Detection
Setelah mengumpulkan informasi yang relevan tentang sistem yang ditargetkan, berikutnya adalah langkah adalah untuk menentukan kerentanan yang ada di setiap sistem. penguji penetrasi harus memiliki koleksi eksploitasi dan kerentanan yang mereka miliki untuk ini . Tools yang digunakan umumnya setipe dengan nessus dari segi kemampuannya.

Percobaan Penetrasi
Setelah menentukan kerentanan yang ada dalam sistem, tahap selanjutnya adalah mengidentifikasi target cocok untuk usaha penetrasi 
Bayangkan sebuah skenario di mana dua penguji penetrasi yang diperlukan untuk melakukan uji penetrasi pada jaringan yang terdiri dari lebih dari 400 mesin. setelah pertemuan informasi yang memadai dan kerentanan tentang jaringan, mereka menemukan bahwa ada hanya 10 server pada jaringan dan sisanya PC hanya biasa digunakan oleh karyawan , maka bisa dikatakan 10 server ini lah yang akan jadi target utamanya. Adapun tools nya bisa meliputi password cracking, meta exploit, sql injection , ftp cracking dll.
Analisa dan Pelaporan
Setelah melakukan step step diatas maka selanjutnya adalah menghasilkan laporan. Hal ini harus diikuti dengan analisis dan komentar yang kritis terhadap kerentanan yang ada dalam jaringan atau system mulai dari prioritas yang paling rentan sd ke level yang kerentanannya memiliki impact yang kecil.
• Ringkasan dari setiap skenario penetrasi yang sukses 
• Rinci daftar semua informasi yang dikumpulkan selama pengujian penetrasi 
• Daftar rinci dari semua kerentanan yang ditemukan 
• Deskripsi semua kerentanan yang ditemukan 
• Saran dan teknik untuk mengatasi kerentanan ditemukan

Pembersihan
Langkah terakhir adalah membersihkan semua jejak, log, output file hasil dari penetrasi yang sudah dilakukan. Daftar rinci dari semua kegiatan penetrasi, tools dan lainnya harus tetap dijaga kerahasiannya.

Hal yang perlu difahami adalah ada beda antara pengujian penetrasi dan assessment keamanan jaringan , suatu assessment penting pada level tertentu tetapi tidak dapat mencerminkan sejauh mana hacker akan mengeskploitasi vulnerability. Penetrasi adalah simulasi dengan serangan “real world “, serangan berbasis hacker sesungguhnya, seorang hacker tidak perlu menunggu sampai menemukan 10 kerentananan, mereka cukup menemukan 1 kerentanan yang kan di eksploitasi habis habisan untuk mendapatkan akses kedalam jaringan suatu organisasi.
http://www.resepkuekeringku.com/2014/11/resep-donat-empuk-ala-dunkin-donut.html http://www.resepkuekeringku.com/2015/03/resep-kue-cubit-coklat-enak-dan-sederhana.html http://www.resepkuekeringku.com/2014/10/resep-donat-kentang-empuk-lembut-dan-enak.html http://www.resepkuekeringku.com/2014/07/resep-es-krim-goreng-coklat-kriuk-mudah-dan-sederhana-dengan-saus-strawberry.html http://www.resepkuekeringku.com/2014/06/resep-kue-es-krim-goreng-enak-dan-mudah.html http://www.resepkuekeringku.com/2014/09/resep-bolu-karamel-panggang-sarang-semut-lembut.html