Cara membuat perangkat lunak yang aman di seluler dan desktop
Diterbitkan: 2019-03-06Di dunia modern, masalah keamanan menarik lebih banyak perhatian daripada sebelumnya. Berbagai peretas dan penipu mulai berkembang dengan munculnya cryptocurrency yang bernilai ratusan dan ribuan dolar per koin. Data sensitif selebritas, kredensial perbankan, informasi tentang transfer uang atau teknologi baru – penyamun online mendapat manfaat dari semuanya karena orang cenderung mengabaikan langkah-langkah perlindungan utama.
Namun, seekor ikan bau dari kepala ke bawah. Tanpa fitur keamanan yang tepat yang dirancang oleh pengembang perangkat lunak, tidak mungkin melindungi data Anda di sisi klien. Mempertimbangkan fakta bahwa perangkat seluler mendapatkan lebih banyak popularitas karena fungsionalitas yang terus meningkat sementara platform desktop/web tetap berperingkat teratas, kami ingin mengetahui bagaimana penulis dapat membuat produk mereka kompatibel dan aman. Anda akan menemukan tips untuk pengguna di bagian terakhir.
Keamanan Singkatnya
Pertama, mari kita bedakan antara keamanan aplikasi dan perangkat lunak keamanan. Istilah-istilah ini mungkin terlihat sinonim tetapi terkait dengan aspek yang berbeda di mana definisi pertama mewakili keamanan keseluruhan dari produk yang dirilis dan yang kedua mencakup tahap pasca-penempatan dan pra-penempatan.
Pada dasarnya, aplikasi perangkat lunak adalah alat sederhana yang membantu pengguna untuk berinteraksi dengan data, baik melalui gadget seluler atau platform desktop. Katakanlah, jika Anda ingin memeriksa catatan kesehatan atau mendapatkan info tentang transaksi terakhir Anda, jauh lebih nyaman menggunakan ponsel cerdas atau situs web rumah sakit/bank daripada menelepon atau mengunjungi tempat-tempat ini.
Masalahnya adalah perangkat lunak tidak mengenali jenis data yang diklasifikasikan berdasarkan sensitivitasnya. Tanpa kategori dan akses yang diprogram secara manual, aplikasi tidak dapat membedakan nama Anda dari nomor CVV/CVC kartu kredit Anda. Oleh karena itu, penting untuk mulai membangun sistem keamanan yang tepat sejak tahap pengembangan pertama. Berikut adalah beberapa tips tentang proses ini:
- Lakukan pengkodean yang aman.
- Mengklasifikasikan data dan menetapkan persyaratan otorisasi.
- Temukan bug dan singkirkan mereka.
- Mengevaluasi keamanan pada setiap tahap pengembangan.
- Periksa keandalan barang pihak ketiga.
- Mendidik pengembang tentang teknik penipuan.
- Membutuhkan 2FA dari karyawan.
- Tingkatkan perangkat lunak secara teratur setelah dirilis.
Masalah Keamanan yang Diketahui
Hampir tidak mungkin membuat aplikasi terlindungi yang solid tanpa memahami bagaimana platform seluler dan desktop rentan terhadap peretas. Sederhananya, ada beberapa pendekatan tradisional untuk membobol perangkat dengan arsitektur berbeda, jadi kami mengusulkan untuk memeriksanya sekarang. Poin-poin ini akan membantu selama tahap perancangan ketika Anda merencanakan langkah-langkah keamanan terbaik untuk produk seluler dan desktop.
Ponsel Pintar dan Gawai
Gaya hidup saat bepergian menampilkan perangkat seluler wajib. Dengan demikian, banyak orang sekarang mentransfer data inti mereka dari komputer ke ponsel cerdas atau setidaknya menyinkronkan informasi antara dua platform. Akibatnya, kami mendapatkan satu poin lagi di mana scammers bisa mendapatkan akses ke data berharga. Secara teknis, ada tiga aspek yang rentan:
- Perangkat keras perangkat.
- Perangkat lunak itu sendiri.
- Jaringan publik.
Misalnya, pencuri dapat dengan mudah mencuri ponsel Anda di tengah keramaian, melakukan root, dan mendapatkan akses ke semua yang ada di dalam sistem. Hardware juga bisa dicurangi jika membeli gadget dari distributor tidak resmi. Terlepas dari titik lemah ini, peretas diketahui membobol ponsel cerdas dan tablet melalui jaringan Wi-Fi publik yang tidak terlindungi. Terakhir, tidak ada gunanya menginstal malware melalui game atau aplikasi media biasa jika diunduh dari toko tidak resmi.
Web dan Desktop
Peramban dan perangkat lunak yang diunduh biasanya bekerja dengan cara yang sama jika memerlukan koneksi Internet. Di sini, aplikasi bertindak sebagai sisi klien yang mengirimkan permintaan dan mendapatkan hasil sementara database utama (dan antarmuka jika Anda menggunakan browser untuk menavigasi situs web) terletak di server yang terhubung. Oleh karena itu, tantangan keamanan dibagi menjadi tiga bagian:
- Sisi klien.
- Sisi server.
- Proses pertukaran data.
Masalah paling berbahaya terkait dengan perangkat lunak lama karena penyamun online dapat dengan mudah masuk ke antarmuka lama yang tidak lagi dilindungi oleh sistem yang diperbarui. Selain itu, cache halaman, layanan enkripsi yang buruk, dan alamat/info sensitif yang diekspos oleh cookie merupakan tautan lemah potensial yang dapat dimanfaatkan oleh peretas.

Mengembangkan Perangkat Lunak Aman
Sekarang, pertanyaannya adalah: bagaimana membuat sistem yang andal untuk kedua platform jika memiliki kelemahan yang berbeda? Secara umum, ada tiga pendekatan. Anda dapat memilih yang paling cocok tetapi pastikan untuk mempertimbangkan pro dan kontra dari setiap contoh.
Seluler DAN Desktop
Dalam hal ini, pengembang harus membuat dua produk (untuk platform seluler dan untuk browser/desktop) secara terpisah satu sama lain. Aplikasi tidak saling berhubungan atau tersinkronisasi, jadi bersiaplah untuk mengeluarkan biaya tinggi baik dalam bentuk uang maupun waktu karena tim Anda harus menginvestasikan sumber daya dua kali lebih banyak. Akibatnya, dua aplikasi terpisah akan dirilis, masing-masing dengan perlindungan sendiri yang dirancang khusus untuk platform target.
Seluler DENGAN Desktop
Opsi ini menyediakan peluncuran situs web yang sangat adaptif, sehingga akan menampilkan semua elemen dengan benar untuk pengguna web dan seluler. Akibatnya, Anda mendapatkan satu platform dengan hanya satu titik lemah berdasarkan kerentanan web yang dijelaskan di atas. Meskipun demikian, produk akhir akan kurang berfungsi dibandingkan platform seluler asli, konten akan dimuat lebih lambat, dan fitur keseluruhan akan terbatas.
Desktop Seluler PLUS
Alih-alih membuat proyek terpisah atau mendesain situs web dengan kompatibilitas seluler, ada opsi yang paling efisien dan aman. Berbagai tim termasuk pengembang Diceus.com menggunakan pendekatan ini. Diperlukan untuk membuat satu platform back-end tetapi menginstal dua sistem front-end yang berbeda di atasnya.
Misalnya, perangkat lunak dasar dapat direalisasikan menggunakan RESTful API yang mendukung arsitektur yang dapat diskalakan untuk seluler dan desktop. Selanjutnya, React.js adalah pilihan yang baik untuk front-end web sementara kerangka kerja Xamarin atau Cordova akan sesuai dengan kebutuhan pengembang lintas platform seluler.
Pindah ke langkah-langkah keamanan, ada beberapa metode yang telah terbukti untuk pendekatan mobile-desktop:
- Berikan enkripsi terbaik. Untuk versi web, perlu memiliki teknologi enkripsi aktual yang mencegah peretasan.
- Sertakan deteksi. Anda akan dapat menemukan malware kapan saja jika sistem front-end memiliki koneksi yang kuat dengan platform back-end.
- Termasuk perlindungan diri. Aplikasi dapat memanfaatkan fitur waktu proses seperti mengabaikan sesi yang tidak aktif atau pemberitahuan kegagalan.
- Uji perangkat lunak secara teratur. Gunakan SAST untuk pengujian kode, DAST untuk aplikasi dan infrastruktur, dan IAST untuk pemeriksaan data.
- Perbarui dan dukung produk. Saat penyamun menciptakan serangan baru, lebih baik untuk merespons dengan cepat dengan tindakan defensif baru.
Model pengembangan yang dijelaskan adalah yang paling seimbang dalam hal sumber daya, fitur, dan keamanan. Anda harus membuat dan melindungi tiga titik (satu back-end dan dua front-end) alih-alih empat elemen produk terpisah tetapi Anda mendapatkan fungsionalitas yang hampir sama.
Perlindungan Berbasis Pengguna
Pada akhirnya, jangan lupakan keamanan sisi klien. Pengembang dapat membuat sistem sebaik mungkin tetapi kelalaian pengguna merusak segalanya. Saat menggunakan perangkat lunak tertentu apa pun jenisnya, ingatlah tentang kebersihan Internet: jangan percayai email yang mencurigakan, periksa kembali sertifikat enkripsi situs web, gunakan antivirus, dll. Selalu aktifkan 2FA untuk mendapatkan kode verifikasi tambahan melalui SMS atau aplikasi autentikasi. Gunakan alat identifikasi biometrik seperti sidik jari atau deteksi wajah untuk smartphone dan tablet.
Secara keseluruhan, melindungi data tidak sulit jika pengembang dan pengguna tahu cara melakukannya. Peretas akan kehilangan pekerjaan mereka jika kita semua mengikuti aturan keamanan dengan ketat.
Punya pemikiran tentang ini? Beri tahu kami di bawah di komentar atau bawa diskusi ke Twitter atau Facebook kami.
Rekomendasi Editor:
- Wawancara dengan Stu Grubbs, CEO perusahaan perangkat lunak streaming Lightstream
- 10 pengembang perangkat lunak yang harus Anda ikuti di 2019
- 5 penyedia perangkat lunak game paling populer
- Inilah penyedia perangkat lunak iGaming terbesar dan tersukses
- Bisakah perangkat lunak antivirus Anda memperlambat kecepatan internet Anda?