Securing Applications

Kholifah
Network Evolution
Published in
9 min readNov 12, 2021

melihat beberapa masalah yang terlibat dalam mengamankan data dan aplikasi

Securing the Data

Bukan rahasia lagi bahwa keamanan adalah masalah utama di dunia saat ini. Itu berlaku untuk data dan aplikasi. Jika salah satu tidak aman maka keduanya akan rentan. Salah satu cara untuk mengamankan data dengan mengenkripsi data.

Enkripsi data adalah metode untuk melindungi kerahasiaan data dengan mengubahnya menjadi informasi yang dikodekan, yang disebut ciphertext, yang hanya dapat didekodekan dengan kunci dekripsi unik, yang dihasilkan baik pada saat enkripsi atau sebelumnya. Enkripsi data dapat digunakan selama penyimpanan atau transmisi data dan biasanya digunakan bersama dengan layanan autentikasi untuk memastikan bahwa kunci hanya diberikan kepada, atau digunakan oleh, pengguna yang berwenang.

Best practices for transporting data

Data juga rentan ketika sedang dikirim. Bahkan, mungkin lebih rentan karena cara rancangan dalam internet, di mana paket melewati beberapa server dalam perjalanan ke tujuan akhir.

Struktur ini membuat data Anda rentan terhadap serangan “man in the middle”, di mana server di sepanjang jalan dapat mengamati, mencuri, dan bahkan mengubah data saat berjalan. Untuk mencegah masalah ini, Anda dapat menggunakan:

SSH - Secure Shell dibuat untuk menggantikan emulasi terminal atau program login yang tidak aman, seperti Telnet, rlogin (remote login) dan rsh (sremote shell). SSH mengaktifkan fungsi yang sama masuk ke dan menjalankan sesi terminal pada sistem jarak jauh. SSH juga menggantikan program transfer file, seperti File Transfer Protocol (FTP) dan rcp (remote copy).

TLS- TLS adalah protokol kriptografi yang menyediakan keamanan end-to-end data yang dikirim antar aplikasi melalui Internet. Ini sebagian besar akrab bagi pengguna melalui penggunaannya dalam penjelajahan web yang aman, dan khususnya ikon gembok yang muncul di browser web ketika sesi aman dibuat.

VPN- Virtual Private Networks, merupakan cara paling penting untuk melindungi aplikasi. VPN memungkinkan untuk menyimpan semua jejak terkait aplikasi di dalam jaringan anda, bahkan saat bekerja dengan karyawan jarak jauh. Karyawan jarak jauh terhubung ke server VPN, yang kemudian bertindak sebagai proxy dan mengenkripsi semua lalu lintas ke dan dari pengguna.

Menggunakan VPN memiliki beberapa manfaat. Pertama, lalu lintas ke dan dari pengguna tidak rentan terhadap pengintaian atau manipulasi, jadi tidak ada yang dapat menggunakan koneksi itu untuk merusak aplikasi atau jaringan. Kedua, karena pengguna pada dasarnya berada di dalam jaringan pribadi, pengguna dapat membatasi akses ke sumber daya pengembangan dan penyebaran, serta sumber daya yang tidak perlu dapat diakses oleh pengguna akhir, seperti database mentah.

Secure the Application

What is OWASP?

The Open Web Application Security Project® (OWASP) adalah yayasan nirlaba yang bekerja untuk meningkatkan keamanan perangkat lunak. Melalui proyek perangkat lunak sumber terbuka yang dipimpin komunitas, ratusan cabang lokal di seluruh dunia, puluhan ribu anggota, dan konferensi pendidikan dan pelatihan terkemuka, Yayasan OWASP adalah sumber bagi pengembang dan ahli teknologi untuk mengamankan web.

OWASP mungkin paling dikenal karena proyek dokumentasinya, yang mencakup Standar Verifikasi Keamanan Aplikasi OWASP, Sepuluh Teratas OWASP, yang menjelaskan 10 masalah keamanan paling umum dalam aplikasi web, dan Seri Lembar Cheat OWASP, yang menjelaskan cara mengurangi masalah tersebut. Mari kita lihat sepuluh masalah yang dibahas pada OWASP diantaranya yaitu:

SQL Injection

SQL injection adalah teknik injeksi kode yang dapat menghancurkan database. SQL injection adalah salah satu teknik peretasan web yang paling umum. Dan SQL injection adalah penempatan kode berbahaya dalam pernyataan SQL, melalui input halaman web.

SQL injection biasanya terjadi ketika pengakses meminta masukan dari pengguna, seperti nama pengguna/id pengguna mereka, dan alih-alih nama/id, pengguna memberi pernyataan SQL yang tanpa sadar akan pengguna jalankan di database pengakses.

Cross-Site Scripting (XSS)

Serangan Cross-Site Scripting (XSS) adalah jenis injeksi, di mana skrip berbahaya disuntikkan ke situs web yang tidak berbahaya dan tepercaya. Serangan XSS terjadi ketika penyerang menggunakan aplikasi web untuk mengirim kode berbahaya, umumnya dalam bentuk skrip sisi browser, ke pengguna akhir yang berbeda. Cacat yang memungkinkan serangan ini berhasil cukup luas dan terjadi di mana saja aplikasi web menggunakan input dari pengguna dalam output yang dihasilkannya tanpa memvalidasi atau mengkodekannya.

Mencegah Cross-Site Scripting dalam beberapa kasus sepele tetapi bisa jauh lebih sulit tergantung pada kompleksitas aplikasi dan cara menangani data yang dapat dikontrol pengguna. Secara umum, mencegah kerentanan XSS secara efektif kemungkinan akan melibatkan kombinasi langkah-langkah berikut:

Filter input on arrival. Pada titik di mana input pengguna diterima, filter seketat mungkin berdasarkan apa yang diharapkan atau input yang valid.

Encode data on output. Pada titik di mana data yang dapat dikontrol pengguna dikeluarkan dalam respons HTTP, enkodekan keluaran untuk mencegahnya ditafsirkan sebagai konten aktif. Bergantung pada konteks keluaran, ini mungkin memerlukan penerapan kombinasi penyandian HTML, URL, JavaScript, dan CSS.

Use appropriate response headers. Untuk mencegah XSS dalam respons HTTP yang tidak dimaksudkan untuk berisi HTML atau JavaScript apa pun dapat menggunakan header Tipe-Konten dan X-Konten-Tipe-Opsi untuk memastikan bahwa browser menafsirkan respons sesuai keinginan .

Content Security Policy. Sebagai garis pertahanan terakhir dapat menggunakan Kebijakan Keamanan Konten (CSP) untuk mengurangi keparahan kerentanan XSS yang masih terjadi.

Cross-Site Request Forgery (CSRF)

Cross-site request forgery (also known as CSRF) adalah kerentanan keamanan web yang memungkinkan penyerang membujuk pengguna untuk melakukan tindakan yang tidak ingin mereka lakukan. Ini memungkinkan penyerang untuk menghindari sebagian dari kebijakan asal yang sama, yang dirancang untuk mencegah situs web yang berbeda saling mengganggu.

Dalam serangan CSRF yang berhasil, penyerang menyebabkan pengguna korban melakukan tindakan secara tidak sengaja. Misalnya, ini mungkin untuk mengubah alamat email di akun mereka, untuk mengubah kata sandi mereka, atau untuk melakukan transfer dana. Bergantung pada sifat tindakannya, penyerang mungkin bisa mendapatkan kontrol penuh atas akun pengguna. Jika pengguna yang disusupi memiliki peran istimewa dalam aplikasi, maka penyerang mungkin dapat mengambil kendali penuh atas semua data dan fungsionalitas aplikasi.

Mencegah serangan CSRF

Cara paling kuat untuk mempertahankan diri dari serangan CSRF adalah dengan menyertakan token CSRF dalam permintaan yang relevan. Tokennya harus: Tidak dapat diprediksi dengan entropi tinggi, seperti token sesi pada umumnya. Terikat ke sesi pengguna. Divalidasi secara ketat dalam setiap kasus sebelum tindakan yang relevan dijalankan.

The OWASP Top Ten

A01:2021-Broken Access ControlKontrol akses memberlakukan kebijakan sehingga pengguna tidak dapat bertindak di luar izin yang dimaksudkan. Kegagalan biasanya menyebabkan pengungkapan informasi yang tidak sah, modifikasi, atau penghancuran semua data atau melakukan fungsi bisnis di luar batas pengguna.

A02:2021-Cryptographic FailuresHal pertama yang harus dilakukan adalah menentukan kebutuhan proteksi data in transit dan at rest. Misalnya, kata sandi, nomor kartu kredit, catatan kesehatan, informasi pribadi, dan rahasia bisnis memerlukan perlindungan ekstra, terutama jika data tersebut termasuk dalam undang-undang privasi, misalnya, Peraturan Perlindungan Data Umum (GDPR) UE, atau peraturan, misalnya, perlindungan data keuangan seperti Standar Keamanan Data PCI (PCI DSS).

A03:2021-InjectionBeberapa injeksi yang lebih umum adalah injeksi SQL, NoSQL, OS command, Object Relational Mapping (ORM), LDAP, dan Expression Language (EL) atau Object Graph Navigation Library (OGNL). Konsepnya identik di antara semua penafsir. Tinjauan kode sumber adalah metode terbaik untuk mendeteksi jika aplikasi rentan terhadap injeksi. Pengujian otomatis dari semua parameter, header, URL, cookie, JSON, SOAP, dan input data XML sangat dianjurkan. Organisasi dapat menyertakan alat pengujian keamanan aplikasi statis (SAST), dinamis (DAST), dan interaktif (IAST) ke dalam pipa CI/CD untuk mengidentifikasi kelemahan injeksi yang diperkenalkan sebelum penyebaran produksi.

A04:2021-Insecure DesignDesain yang tidak aman tidak dapat diperbaiki dengan implementasi yang sempurna karena menurut definisi, kontrol keamanan yang diperlukan tidak pernah dibuat untuk bertahan dari serangan tertentu.

A05:2021-Security MisconfigurationItem ini mengacu pada kebutuhan untuk memastikan bahwa sistem itu sendiri dikonfigurasi dengan benar. Apakah semua perangkat lunak ditambal dan dikonfigurasi dengan benar? Apakah firewall berjalan? Pencegahan jenis masalah ini membutuhkan pengerasan sistem dan aplikasi yang hati-hati dan konsisten. Kurangi permukaan serangan yang tersedia. Untuk melakukan ini, hanya instal layanan yang benar-benar Anda butuhkan, dan coba pisahkan komponen yang tidak terkait dengan sistem yang berbeda untuk mengurangi permukaan serangan lebih lanjut.

A06:2021-Vulnerable and Outdated ComponentsSalah satu keuntungan yang dimiliki pengembang saat ini adalah sebagian besar fungsi inti yang Anda coba lakukan mungkin sudah ditulis dan disertakan dalam paket perangkat lunak yang ada, dan mungkin open source. Namun, banyak dari paket yang tersedia juga menyertakan eksploitasi yang tersedia untuk umum. Untuk memperbaikinya, pastikan Anda hanya menggunakan fitur yang diperlukan dan paket aman, diunduh dari sumber resmi, dan diverifikasi dengan tanda tangan.

A07:2021-Identification and Authentication FailuresItem ini berkaitan dengan beberapa masalah dengan kredensial pengguna, dari basis data kredensial yang dicuri hingga kata sandi default yang dikirimkan bersama produk. Anda dapat mengurangi serangan ini dengan menghindari kata sandi default, dengan mewajibkan otentikasi multi-faktor, dan menggunakan teknik seperti memperpanjang masa tunggu setelah login gagal.

A08:2021-Software and Data Integrity FailuresKegagalan integritas perangkat lunak dan data berhubungan dengan kode dan infrastruktur yang tidak melindungi dari pelanggaran integritas. Contohnya adalah saat aplikasi bergantung pada plugin, pustaka, atau modul dari sumber, repositori, dan jaringan pengiriman konten (CDN) yang tidak tepercaya. Pipa CI/CD yang tidak aman dapat menimbulkan potensi akses tidak sah, kode berbahaya, atau kompromi sistem. Terakhir, banyak aplikasi sekarang menyertakan fungsionalitas pembaruan otomatis, di mana pembaruan diunduh tanpa verifikasi integritas yang memadai dan diterapkan ke aplikasi tepercaya sebelumnya. Penyerang berpotensi mengunggah pembaruan mereka sendiri untuk didistribusikan dan dijalankan di semua instalasi. Contoh lain adalah di mana objek atau data dikodekan atau diserialkan ke dalam struktur yang dapat dilihat dan dimodifikasi oleh penyerang rentan terhadap deserialisasi yang tidak aman.

A09:2021-Security Logging and Monitoring FailuresItem ini mengingatkan Anda bahwa tanggung jawab Anda yang paling mendasar adalah memastikan bahwa Anda mencatat semua hal penting yang terjadi di sistem Anda sehingga Anda dapat mendeteksi serangan, sebaiknya sebelum serangan itu berhasil. Sangat penting untuk memastikan bahwa log Anda berada dalam format yang sama sehingga dapat dengan mudah digunakan oleh alat pelaporan, dan dapat diaudit untuk mendeteksi (atau lebih baik lagi mencegah) gangguan.

A10:2021-Server-Side Request ForgeryCacat SSRF terjadi setiap kali aplikasi web mengambil sumber daya jarak jauh tanpa memvalidasi URL yang disediakan pengguna. Ini memungkinkan penyerang untuk memaksa aplikasi untuk mengirim permintaan yang dibuat ke tujuan yang tidak terduga, bahkan ketika dilindungi oleh firewall, VPN, atau jenis lain dari daftar kontrol akses jaringan (ACL).

Karena aplikasi web modern menyediakan fitur yang nyaman bagi pengguna akhir, mengambil URL menjadi skenario umum. Akibatnya, kejadian SSRF meningkat. Selain itu, tingkat keparahan SSRF menjadi lebih tinggi karena layanan cloud dan kompleksitas arsitektur

Referensi

--

--