Sebagai mahasiswa Biologi A-level, saya telah banyak berpikir tentang hubungan dengan Biologi dan Ilmu Komputer, dan sesuatu yang sering muncul di pikiran adalah hubungan antara Imunologi dan Keamanan Komputer / Virus. Sebagai contoh, saya (melalui membaca tentang cara kerja program anti-virus) memutuskan bahwa cara sistem kekebalan menangani virus sangat mirip dengan program anti-virus (keduanya berisi database definisi virus (baik itu,sel memori atau tanda tangan virus) dan keduanya mengandung metode ekstrapolasi). Kemajuan alami bagi saya kemudian berpikir tentang evolusi alami virus dibandingkan dengan virus komputer. Demikian pertanyaan saya:
Mungkinkah virus komputer berevolusi menjadi strain baru yang memiliki "gen" baru untuk memungkinkan mereka melakukan pekerjaan mereka?
Sepertinya pemikiran semacam ini hanya bisa benar-benar berlaku untuk virus, maksud saya kalkulator lama Anda yang biasa tidak akan pernah tunduk pada "seleksi alam". Tetapi sejauh yang saya tahu virus melakukan mutasi sendiri, untuk menghindari program anti-virus, tetapi mungkin ini agak terkendali, sehingga virus tidak akan mendapatkan mutasi yang tidak menguntungkan yang jika tidak dapat menjadikannya tidak berguna. Jika sifat alami acak yang sebenarnya dapat diterapkan pada virus, apakah mereka akan pernah dapat mengembangkan fungsi baru, seperti misalnya menjadi virus retro yang mengambil alih program anti-virus, atau bermutasi untuk memasukkan kode baru yang memungkinkannya untuk merobohkan firewall? Apakah mereka akan terlibat dalam semacam seleksi alam komputasi, di mana virus terkuat bertahan dan meneruskan gen menguntungkan mereka?
sumber
Jawaban:
Saya kira itu mungkin secara teori, tetapi malware komputer (virus, worm, dll.) Biasanya tidak berfungsi seperti ini hari ini, dan ada alasan bagus mengapa mereka ditulis seperti itu.
Anda mungkin tertarik pada kode polimorfik , yang mengubah dirinya sendiri untuk menghindari deteksi. Ini mengubah urutan instruksi ke beberapa urutan instruksi lain yang akan memiliki efek yang sama, tetapi akan memiliki biner yang berbeda. Ini membantu menghindari deteksi oleh alat anti-virus yang mencari "tanda tangan" byte tertentu. Namun, ini bukan bentuk mutasi yang Anda tanyakan, karena malware tidak akan pernah "berevolusi" beberapa perilaku baru yang belum ada.
Sungguh, tidak ada banyak alasan mengapa penulis malware ingin atau membutuhkan malware mereka untuk mengembangkan fungsionalitas baru. Mereka dapat membangun perilaku yang diinginkan ke dalam malware. Atau, mereka dapat meminta malware menghubungi server "command & control" pusat untuk mengunduh kode baru ("pembaruan perangkat lunak" untuk malware) secara berkala, untuk membiarkan mereka mengontrol perilaku malware. Biasanya para penjahat bekerja secara offline serangan apa yang ingin mereka lakukan, dan kemudian menerapkannya di malware atau memerintahkan malware untuk melakukan serangan itu.
Dengan mengatasi serangan offline, penyerang dapat menguji serangan-serangan itu pada sistem mereka sendiri dan memastikan mereka akan bekerja dengan baik dan tidak akan terdeteksi. Dari perspektif penyerang, ini jauh lebih baik daripada menulis malware yang secara acak mencoba hal-hal dengan harapan akan berkembang menjadi serangan yang berguna; malware yang mencoba hal-hal acak akan lebih cenderung mematikan alarm dan terdeteksi.
Jadi, sebenarnya tidak ada kebutuhan atau motivasi untuk menggunakan "seleksi alam" dalam malware, dan itu biasanya tidak terlihat dalam praktik.
sumber
TL; DR: komputer bukan entitas otonom seperti organisme, dengan naluri kelangsungan hidup apa pun. Mereka hanya menjalankan instruksi, dan terkadang mereka menjalankan instruksi yang tidak kita sukai, jadi kita menjalankan instruksi lain untuk menemukan yang buruk.
Saya mulai mengatakan ini di komentar, tapi saya pikir ada banyak lagi yang bisa dikatakan.
Metafora virus sudah ketinggalan zaman dan terlalu banyak digunakan oleh orang-orang yang tidak mengerti bagaimana sebenarnya komputer bekerja. Mereka mencoba menyamakan mereka dengan makhluk hidup, karena mereka memahami makhluk hidup. Inilah metafora yang lebih baik.
Anda seorang pekerja kantoran. Anda bekerja untuk perusahaan besar raksasa, di mana Anda tidak melihat bos Anda. Anda tidak pernah diberi tahu mengapa Anda melakukan pekerjaan Anda, Anda bahkan tidak tahu apa yang perusahaan Anda lakukan. Yang Anda tahu adalah bahwa Anda muncul untuk bekerja setiap hari, dan Anda mengikuti instruksi Anda.
Ada sedikit jendela di dekat meja Anda, yang merupakan satu-satunya cara Anda berinteraksi dengan orang lain. Anda tidak melihat siapa pun, tetapi kadang-kadang potongan kertas masuk melalui jendela.
Instruksi Anda selalu sama di awal, tetapi Anda memiliki tumpukan kertas besar di meja Anda. Beberapa di antaranya berisi instruksi, beberapa di antaranya berisi hal-hal yang Anda tulis. Terkadang instruksi Anda akan memberi tahu Anda untuk menemukan selembar kertas yang berbeda, dan mulai menggunakannya sebagai instruksi Anda. Terkadang mereka meminta Anda untuk mengganti potongan kertas, merobeknya, atau menghapus bagian-bagiannya. (Inilah yang menjalankan program. Terkadang program mengedit file, terkadang mereka menjalankan program lain, dll.)
Terkadang instruksi Anda meminta Anda menunggu di dekat jendela untuk menerima lebih banyak kertas. Kertas mungkin memiliki gambar di atasnya, mungkin memiliki teks, atau mungkin memiliki lebih banyak instruksi. (Inilah yang terjadi ketika komputer menunggu input mouse atau input keyboard, atau sesuatu dari jaringan (yaitu file)).
Anda tidak melakukan apa pun kecuali mengikuti instruksi ini. Anda tidak pernah tahu mengapa, Anda tidak pernah tahu untuk siapa, tetapi Anda hanya melakukannya.
Terkadang, instruksi Anda memberi tahu Anda untuk melakukan banyak tugas. Anda memiliki setumpuk kertas. Anda mengatur timer, dan Anda mengerjakan instruksi dari kertas paling atas selama 5 menit. Ketika penghitung waktu berlalu, Anda meletakkan kertas itu di bagian bawah tumpukan, dan melakukan apa pun yang ada di atas kertas yang baru. (Beginilah cara komputer menjalankan lebih dari satu program sekaligus).
Sekarang suatu hari Anda sedang menunggu selembar kertas di dekat jendela, dan Anda tahu kapan mendapatkannya, Anda akan melakukan apa pun yang dikatakannya, karena itulah yang diperintahkan oleh selembar instruksi terakhir. Anda mendapatkannya, dan dikatakan menemukan beberapa lembar kertas utama Anda, dengan instruksi inti Anda, dan menghapusnya. Ini memberitahu Anda instruksi baru untuk diletakkan di sana. Ini melakukan beberapa hal aneh, seperti mengirim file Anda keluar jendela ke tempat-tempat aneh, atau mengumpulkan salinan cadangan dari semua hal yang datang melalui jendela. Tetapi yang penting adalah, Anda tidak memikirkannya. Mereka hanyalah instruksi. Anda lakukan saja.
Inilah virus. Ini hanya seperangkat instruksi yang membuat Anda mengelabui komputer agar beroperasi.
Sekarang, katakan Anda pekerja multitasking. Anda mendapatkan salah satu dari instruksi ini di jendela. Tapi, Anda sibuk, jadi Anda letakkan di bagian bawah tumpukan. Anda melihat bagian atas tumpukan barang yang harus Anda lakukan, dan ada serangkaian instruksi yang ditandai "antivirus". Dikatakan membaca semua kertas Anda, dan melihat apakah ada di antara mereka yang terlihat seperti kertas sampel mereka. Anda melakukannya, dan Anda melihat bahwa instruksi penghapusan ada di daftar Anda.
Perhatikan bahwa jika Anda mulai menjalankan instruksi virus, Anda tidak memikirkannya. Tanpa antivirus, tidak ada serangan, tidak ada respons kekebalan. Itu tidak menyerang Anda, itu hanya serangkaian instruksi. Antivirus hanyalah daftar TODO yang melibatkan melihat instruksi Anda yang lain dan menemukan yang cocok dengan suatu pola. Itu tidak mencoba untuk melestarikan sistem secara keseluruhan, itu hanya selembar kertas yang seseorang berikan kepada Anda dari jendela, karena itu mencegah orang lain menipu Anda untuk melakukan sesuatu dengan memasukkan barang-barang ke jendela.
Sekarang, bagaimana dengan virus "evolusi" Anda? Ini memang mungkin, tetapi mari kita lihat apa yang terkandung di dalamnya. Virus yang berkembang pada dasarnya adalah selembar instruksi yang memberi tahu Anda cara membuat lebih banyak instruksi. Itu adalah selembar kertas yang memberitahu Anda untuk menghapus banyak instruksi lama Anda, dan kemudian menempatkan yang baru di tempatnya, tetapi instruksi baru itu juga memberitahu Anda untuk menghapus instruksi lama, dan menempatkan yang baru, dan seterusnya. Jadi instruksi aslinya tidak berubah. Virus tidak bermutasi. Sebaliknya, itu hanya melakukan apa pun yang dilakukannya, sambil juga meninggalkan instruksi untuk membuat generasi berikutnya.
Jadi, mungkinkah melakukan ini? Iya. Tapi ini sangat rumit. Untuk memiliki program yang mengubah dirinya sendiri, tetapi memiliki urutan perubahan yang pada akhirnya tidak menyatu dengan program yang tidak berguna, sangat rumit.
sumber
pertanyaan umum adalah tentang evolusi dalam malware. pertanyaan spesifiknya adalah tentang gen. memang ada mekanisme algoritma genetika yang menggunakan "gen" digital untuk optimisasi & tentu saja dapat digunakan dalam virus / malware, meskipun sepertinya tidak ada laporan sejauh ini "di alam liar". di sisi lain, malware memang telah berevolusi selama bertahun-tahun dari lebih dari keingintahuan teoritis ke satu yang melibatkan kejahatan dunia maya dan sebagainya, dengan meningkatnya kecanggihan dalam ancaman. sejauh ini sebagian besar didorong (tetapi tidak sepenuhnya!) oleh "evolusi" yang didorong oleh manusia-pengembang. virus komputer dalam beberapa hal dapat dikatakan secara umum berkembang meningkatkan "kecerdasan" atau "kecanggihan serangan" dari waktu ke waktu.
berikut adalah beberapa referensi yang mempelajari "evolusi / dalam malware".
Darwin Inside the Machines: Evolusi Malware dan Konsekuensi untuk Keamanan Komputer Dimitris Iliopoulos, Péter Ször, dan Christoph Adam
Evolusi Malware Evolusi Malware dan Lansekap Ancaman - tinjauan 10 Tahun / Microsoft
Studi Empiris dari Malware Evolution Archit Gupta, Pavan Kuppili, Aditya Akella dan Paul Barford
Tren Baru dalam "Malware Evolution" / Raff (studi kasus "Carberp")
yang worm Stuxnet adalah studi kasus yang luar biasa canggih / berkembang fitur virus / latar belakang. AS, Israel mengembangkan virus komputer Flame untuk memperlambat upaya nuklir Iran, kata para pejabat
sumber
Hal utama adalah menjalankan dan menjalankannya. Versi naif, yaitu Mengambil sebagian malware yang sudah ada yang berhasil, dan membuat setiap upaya reproduksi mengalami mutasi, kemungkinan besar akan mematikan malware dalam banyak kasus.
Namun, ini tidak berarti bahwa ia tidak dapat berevolusi, hanya saja tujuan semula, replikasi, dapat dihambat. Dengan tingkat mutasi yang cukup rendah dan kesabaran yang cukup, mutasi menguntungkan dan jinak akhirnya akan dipilih.
Satu masalah, bagaimanapun, adalah bahwa mereka AKAN berevolusi. Khususnya, mereka akan berevolusi berdasarkan prinsip murni Darwinian. Jika saya menulis sepotong kode yang mengeksekusi, dan kemudian, hanya pada eksekusi yang sukses, menyalin file biner 1000 kali ke 1000 lokasi dengan kesalahan acak atau beberapa di masing-masing dan mengeksekusi mereka semua, mungkin sepertinya saya telah membuat replikasi bergantung pada menyelesaikan tugas apa pun yang sedang dilakukan dengan sukses, tetapi dalam kenyataannya, replikasi hanya bergantung pada program. BERPIKIR telah menyelesaikan tugas itu dengan sukses.
Jadi ada kemungkinan yang adil bahwa jika ini adalah bagian dari malware, dua tujuan dasarnya, khususnya replikasi dan mengacaukan komputer orang, akan bertentangan satu sama lain. Dalam waktu yang cukup lama, suatu mutasi mungkin akan muncul untuk membuatnya tidak mengacaukan komputer mereka, membuatnya kurang penting bagi anti-virus untuk menangani, sehingga, mereplikasi dengan gejala minimal, seperti strategi awal yang paling efektif dalam pandemi atau wabah, atau membuatnya yakin bahwa itu bahkan berhasil mengacaukan komputer mereka sama sekali, mengubah fungsi utama menjadi intron cukup cepat karena gagal untuk mengeksekusi tetapi fungsi replikasi terus bekerja.
Banyak orang mengagumi efektivitas sistem kekebalan dalam mengalahkan segala macam ancaman, tetapi dalam banyak hal, komputer jauh, jauh lebih aman daripada sel. Komputer Anda sebenarnya tidak bisa mengunduh virus sejak awal. Sistem anti-virus sempurna dengan pengguna sempurna tidak perlu memindai hard drive sebelumnya. Kode komputer tidak bisa hanya dimasukkan secara fisik ke dalam hard drive.
Sel kontras, di mana virus telah mengembangkan beberapa mekanisme FISIK yang agak unik dari menyelinap pertahanan sel masa lalu. Sebagai contoh, beberapa virus benar-benar lembam sampai mereka menemukan sel, tetapi kemudian struktur fisik mereka mengambil dan dengan keras menusuk membran sel untuk menyuntikkan bahan genetik mereka. Ini seperti virus komputer yang secara fisik memotong mesin Anda dan menambahkan perangkat keras baru sementara OS dan antivirus Anda berpikir "ini baik-baik saja," dan jalankan kode yang ditemukan pada perangkat keras itu.
Jadi sebenarnya cukup mungkin bahwa semakin jinak kode, reproduksi yang lebih baik dapat dilakukan. Dalam beberapa kasus, evolusi mungkin lebih mudah meyakinkan pengguna untuk membantunya daripada mengembangkan antivirus baru. IE menambahkan sendiri ke file yang cenderung dibagikan dengan pengguna lain.
Jadi pada akhirnya, tampaknya lebih mungkin bagi saya bahwa kemungkinan replikasi lebih tinggi ketika tidak berguna sebagai bagian dari malware, dan mungkin masih lebih tinggi jika dapat meyakinkan pengguna atau kode anti-virus bahwa itu sebenarnya sesuatu yang jinak. , penting, atau bermanfaat.
Hal lain adalah bahwa sebagian besar mesin memiliki operasi yang tidak valid, jadi pengeditan acak untuk kode kemungkinan tidak hanya untuk mencegah fungsionalitas, tetapi juga hanya menyebabkan kode mogok, bahkan dengan memori yang tidak terlindungi.
sumber
Bayangkan program komputer yang tidak berbahaya sebagai mikroba di usus Anda. Bayangkan virus komputer sebagai bakteri infeksius.
Komputer tidak dapat membedakan antara bakteri baik dan bakteri jahat, tidak seperti sistem kekebalan tubuh.
Akan mudah untuk membuat program modifikasi sendiri, tetapi 99% dari mutasi akan menghasilkan kesalahan. Suatu program seperti daftar instruksi - dan komputer sangat ketat tentang bagaimana instruksi tersebut ditulis. Katakanlah kita memiliki program ini:
Mutasi dapat menyebabkan program ini:
Meskipun jelas bagi manusia itu berarti "kacang", itu tidak jelas bagi komputer. Saya bisa menulis skrip sederhana yang bermutasi dengan Python - tetapi sebagian besar mutasi waktu akan membuatnya gagal.
Akan sangat tertarik pada virus yang bermutasi dan bisa tetap hidup - kita bahkan mungkin mengklasifikasikannya sebagai kehidupan.
Ya, saya terlambat ke pesta - tetapi ini adalah topik yang menarik untuk ditulis.
sumber