Liệu các virus máy tính có thể tiến hóa các gen mới có thể cho phép chúng thực hiện công việc của mình không?


8

Là một sinh viên cấp A, tôi đã suy nghĩ rất nhiều về các liên kết với Sinh học và Khoa học máy tính, và một điều thường xuất hiện trong đầu là các liên kết giữa Miễn dịch học và Bảo mật / Virus máy tính. Ví dụ, tôi (thông qua việc đọc về cách thức hoạt động của các chương trình chống vi-rút) đã quyết định rằng cách hệ thống miễn dịch xử lý vi-rút rất giống với các chương trình chống vi-rút (cả hai đều chứa cơ sở dữ liệu về định nghĩa vi-rút (có thể là, các tế bào bộ nhớ hoặc chữ ký virus) và cả hai đều chứa một phương pháp ngoại suy). Tiến trình tự nhiên đối với tôi khi đó là suy nghĩ về sự tiến hóa tự nhiên của virus so với virus máy tính. Vì vậy, câu hỏi của tôi:β

Liệu các virus máy tính có thể tiến hóa thành các chủng mới sở hữu "gen" mới để cho phép chúng thực hiện công việc của mình không?

Có vẻ như kiểu suy nghĩ này chỉ thực sự có thể áp dụng cho virus, ý tôi là máy tính cũ thông thường của bạn sẽ không bao giờ phải chịu "chọn lọc tự nhiên". Nhưng như xa như tôi biết virus làm biến đổi bản thân, để tránh các chương trình chống virus, nhưng có lẽ chúng được kiểm soát đúng hơn, do đó virus sẽ không tăng đột biến không có lợi mà có thể khác làm cho nó vô dụng. Nếu bản chất ngẫu nhiên thực sự có thể được áp dụng cho vi-rút, liệu họ có thể phát triển chức năng mới, ví dụ như trở thành một vi-rút retro tiếp quản chương trình chống vi-rút hoặc biến đổi để bao gồm mã mới cho phép mã đó hạ tường lửa? Liệu họ có được tham gia vào một số loại chọn lọc tự nhiên tính toán, trong đó các virus mạnh nhất tồn tại và truyền gen có lợi của chúng?


Một câu hỏi thực sự hay! Tuy nhiên, tôi nghĩ rằng ẩn dụ "virus" cho phần mềm độc hại là không đủ. Sự hiểu biết của tôi là cái chính (duy nhất?) Nghĩ rằng virus máy tính và virus thực sự có điểm chung là khả năng tự lây lan.
jmite

1
@jmite, đối với tôi, ít nhất, điểm tương đồng nằm ở chỗ họ có, họ sao chép, họ cũng kiểm soát hệ thống mà họ đang tấn công trong một số / hầu hết các trường hợp, chúng chủ yếu gây hại cho nạn nhân (trừ một số ít nhân từ virus máy tính). Cả hai cũng có các phương pháp tương tự để được loại bỏ (tức là hệ thống miễn dịch và chương trình chống vi-rút) và cũng là lần thứ hai máy tính gặp cùng loại vi-rút, loại bỏ nó nhanh hơn (như một định nghĩa vi-rút hiện có) tương tự như hệ thống miễn dịch. Sự giống nhau này có lẽ là lý do tại sao chúng được đặt tên là virus ở vị trí đầu tiên: D
J_mie6

2
Vấn đề là, một vài trong số đó là sai. Lần thứ hai máy tính gặp virus, nó không loại bỏ nó nhanh hơn. Máy tính không thể tự mình đưa ra định nghĩa virus. Họ đến từ các công ty bảo mật, và có khả năng sẽ đến từ sự kết hợp giữa khai thác dữ liệu và chế tạo con người. Một loại virus không phải là một lực lượng bên ngoài, như cách nó tồn tại trong cơ thể. Máy tính không thấy sự khác biệt giữa virus và bất kỳ chương trình nào khác. Nó chỉ là một đoạn mã. Đó là lý do tại sao nó chạy nó. Sự khác biệt duy nhất là hiệu ứng của chương trình đó là thứ mà người dùng chúng tôi không muốn.
jmite

Câu trả lời:


7

Tôi cho rằng về mặt lý thuyết là có thể, nhưng phần mềm độc hại máy tính (virus, sâu, v.v.) thường không hoạt động theo cách này ngày nay và có những lý do chính đáng tại sao chúng được viết theo cách của chúng.

Bạn có thể quan tâm đến mã đa hình , tự thay đổi để trốn tránh sự phát hiện. Nó thay đổi chuỗi hướng dẫn thành một số chuỗi hướng dẫn khác sẽ có tác dụng tương tự, nhưng sẽ có một nhị phân khác. Điều này giúp tránh sự phát hiện bởi các công cụ chống vi-rút đang tìm kiếm một "chữ ký" cụ thể của byte. Tuy nhiên, đây không phải là hình thức đột biến mà bạn đang hỏi, bởi vì nó sẽ không bao giờ khiến phần mềm độc hại "phát triển" một số hành vi mới mà nó chưa có.

Thực sự, không có nhiều lý do tại sao các tác giả phần mềm độc hại muốn hoặc cần phần mềm độc hại của họ để phát triển chức năng mới. Họ có thể xây dựng hành vi mong muốn vào phần mềm độc hại. Hoặc, họ có thể yêu cầu phần mềm độc hại liên hệ với máy chủ "chỉ huy & kiểm soát" trung tâm để tải xuống mã mới ("cập nhật phần mềm" cho phần mềm độc hại) để cho phép họ kiểm soát hành vi của phần mềm độc hại. Thông thường kẻ xấu tìm ra ngoại tuyến những gì các cuộc tấn công mà chúng muốn gắn kết, và sau đó thực hiện điều này trong phần mềm độc hại hoặc ra lệnh cho phần mềm độc hại thực hiện các cuộc tấn công đó.

Bằng cách xử lý các cuộc tấn công ngoại tuyến, trước, những kẻ tấn công có thể kiểm tra các cuộc tấn công đó trên hệ thống của chúng và đảm bảo chúng sẽ hoạt động bình thường và sẽ không bị phát hiện. Từ quan điểm của kẻ tấn công, điều này tốt hơn rất nhiều so với việc viết phần mềm độc hại ngẫu nhiên thử nội dung với hy vọng nó sẽ phát triển thành một cuộc tấn công hữu ích; phần mềm độc hại thử nội dung ngẫu nhiên sẽ có nhiều khả năng đặt báo thức và được phát hiện.

Vì vậy, thực sự không có bất kỳ nhu cầu hay động lực nào để sử dụng "lựa chọn tự nhiên" trong phần mềm độc hại và nó thường không được nhìn thấy trong thực tế.


Vâng, mã đa hình là những gì tôi đã có sau khi làm thẻ, nhưng nó không tồn tại! Câu trả lời của bạn nêu lên một số điểm hay và tôi sẽ +1 nếu tôi có thể (xem xét nó được thực hiện khi tôi có đại diện ở đây), tôi không biết rằng virus có thể tải xuống các bản cập nhật, làm thế nào để chúng đạt được điều này? Có phải thông qua các kết nối máy bị nhiễm bệnh?
J_mie6

@ J_mie6, họ tạo kết nối mạng đến một máy chủ trung tâm (do kẻ tấn công kiểm soát) và hỏi nó: "bạn có phần mềm mới nào cho tôi không?" và nếu câu trả lời là có, họ tải xuống và thực hiện những gì họ vừa tải xuống. Ngoài ra, họ có thể hỏi máy chủ trung tâm: "bạn có lệnh nào cho tôi không?" và nếu máy chủ trung tâm nói có, họ sẽ làm bất cứ điều gì mà máy chủ trung tâm ra lệnh cho họ làm. Đọc một chút về botnet và máy chủ C & C để tìm hiểu thêm về chủ đề này. [Nếu câu trả lời của tôi là hữu ích nhất sau một hoặc hai ngày, bạn có thể kiểm tra đánh dấu để chấp nhận nó.]
DW

có nhiều lý do mà phần mềm độc hại sẽ được hưởng lợi từ các chiến lược thích ứng (chung). ví dụ một số thuật toán tấn công có thể được tối ưu hóa dựa trên các chiến lược thích ứng. phần mềm độc hại thực sự đã "phát triển" trong nhiều năm, nhưng không tự chủ, thay vào đó thông qua các cải tiến của tác giả.
vzn

5

TL; DR: máy tính không phải là thực thể tự trị như sinh vật, với bất kỳ bản năng sinh tồn nào. Họ chỉ chạy các hướng dẫn và đôi khi họ chạy các hướng dẫn mà chúng tôi không thích, vì vậy chúng tôi chạy các hướng dẫn khác để tìm các hướng dẫn xấu.


Tôi bắt đầu nói điều này trong các bình luận, nhưng tôi nghĩ còn nhiều điều để nói.

Ẩn dụ về virus đã lỗi thời và được sử dụng quá rộng rãi bởi những người không hiểu máy tính thực sự hoạt động như thế nào. Họ cố gắng ví họ với những sinh vật sống, bởi vì họ hiểu những sinh vật sống. Đây là một phép ẩn dụ tốt hơn.

Bạn là một nhân viên văn phòng. Bạn làm việc cho một tập đoàn lớn, nơi bạn không gặp ông chủ của mình. Bạn chưa bao giờ nói lý do tại sao bạn làm công việc của bạn, bạn thậm chí không biết công ty của bạn làm gì. Tất cả những gì bạn biết là bạn xuất hiện để làm việc mỗi ngày và bạn làm theo hướng dẫn của mình.

Có một cửa sổ nhỏ cạnh bàn làm việc của bạn, đó là cách duy nhất bạn từng tương tác với bất kỳ ai khác. Bạn không nhìn thấy ai, nhưng đôi khi những mảnh giấy lọt qua cửa sổ.

Hướng dẫn của bạn luôn giống nhau khi bắt đầu, nhưng bạn có một đống giấy tờ lớn ở bàn làm việc. Một số trong số này chứa các hướng dẫn, một số trong đó chứa những điều bạn đã viết. Đôi khi các hướng dẫn của bạn sẽ cho bạn biết để tìm một mảnh giấy khác và bắt đầu sử dụng nó làm hướng dẫn của bạn. Đôi khi họ bảo bạn thay đổi các mảnh giấy, xé chúng ra hoặc xóa các phần của chúng. (Đây là những gì đang chạy một chương trình. Đôi khi các chương trình chỉnh sửa tệp, đôi khi chúng chạy các chương trình khác, v.v.)

Đôi khi hướng dẫn của bạn bảo bạn đợi bên cửa sổ để có thêm giấy đến. Bài báo có thể có một hình ảnh trên đó, nó có thể có văn bản hoặc nó có thể có nhiều hướng dẫn hơn. (Đây là những gì xảy ra khi máy tính đợi đầu vào chuột hoặc đầu vào bàn phím hoặc thứ gì đó từ mạng (ví dụ: tệp)).

Bạn không làm gì ngoài việc làm theo các hướng dẫn này. Bạn không bao giờ biết tại sao, bạn không bao giờ biết cho ai, nhưng bạn chỉ làm điều đó.

Đôi khi, hướng dẫn của bạn nói với bạn để đa nhiệm. Bạn có một đống giấy tờ. Bạn đặt hẹn giờ và bạn làm việc theo hướng dẫn từ tờ giấy trên cùng trong 5 phút. Khi bộ đếm thời gian đi, bạn đặt tờ giấy đó xuống dưới cùng của đống và làm bất cứ điều gì trên tờ giấy mới. (Đây là cách máy tính chạy nhiều chương trình cùng một lúc).

Bây giờ, một ngày nọ, bạn đang chờ đợi một mảnh giấy bên cửa sổ và bạn biết khi bạn nhận được nó, bạn sẽ làm bất cứ điều gì nó nói, bởi vì đó là những gì hướng dẫn cuối cùng bảo bạn làm. Bạn nhận được nó, và nó nói để tìm một số mẩu giấy chính của bạn, với các hướng dẫn cốt lõi của bạn, và xóa chúng. Nó cho bạn biết hướng dẫn mới để đặt ở đó. Họ đang làm một số điều kỳ lạ, như gửi các tệp của bạn ra ngoài cửa sổ đến những nơi xa lạ hoặc thu thập các bản sao dự phòng của tất cả những thứ đi qua cửa sổ. Nhưng điều quan trọng là, bạn không nghĩ gì về nó. Họ chỉ là hướng dẫn nhiều hơn. Bạn chỉ cần làm chúng.

Đây là những gì một virus. Nó chỉ là một bộ hướng dẫn mà bạn lừa máy tính chạy.

Bây giờ, giả sử bạn là một công nhân đa nhiệm. Bạn nhận được một trong những hướng dẫn xóa trong cửa sổ. Nhưng, bạn đang bận, vì vậy bạn đặt nó xuống dưới cùng của đống. Bạn nhìn vào đầu đống công việc cần làm và có một bộ hướng dẫn được đánh dấu là "chống vi-rút". Nó nói để đọc qua tất cả các giấy tờ của bạn, và xem nếu bất kỳ trong số họ trông giống như giấy mẫu của họ. Bạn làm và bạn thấy rằng các hướng dẫn xóa có trong danh sách của bạn.

Lưu ý rằng nếu bạn bắt đầu chạy các hướng dẫn vi-rút, bạn không nghĩ gì về nó. Không có phần mềm chống vi-rút, không có cuộc tấn công, không có phản ứng miễn dịch. Nó không tấn công bạn, nó chỉ là một bộ hướng dẫn. Phần mềm chống vi-rút chỉ là một danh sách TODO liên quan đến việc xem các hướng dẫn khác của bạn và tìm các hướng dẫn phù hợp với một mẫu. Nó không cố gắng bảo vệ toàn bộ hệ thống, nó chỉ là một tờ giấy mà ai đó đưa cho bạn từ cửa sổ, bởi vì nó ngăn người khác lừa bạn làm việc bằng cách đưa đồ qua cửa sổ.

Bây giờ, những gì về virus "tiến hóa" của bạn? Điều này chắc chắn là có thể, nhưng hãy nhìn vào những gì nó đòi hỏi. Một virus đang phát triển về cơ bản là một tờ hướng dẫn cho bạn biết cách tạo ra nhiều hướng dẫn hơn. Đó là một mảnh giấy bảo bạn xóa một loạt các hướng dẫn cũ của bạn, sau đó đặt những hướng dẫn mới vào vị trí của nó, nhưng những hướng dẫn mới đó cũng bảo bạn xóa các hướng dẫn cũ, và đặt các hướng dẫn mới, v.v. Vì vậy, các hướng dẫn ban đầu không thay đổi. Virus không biến đổi. Thay vào đó, nó chỉ làm bất cứ điều gì nó làm, trong khi cũng để lại các hướng dẫn để tạo ra thế hệ tiếp theo.

Vì vậy, nó có thể làm điều này? Đúng. Nhưng nó cực kỳ phức tạp. Để có một chương trình tự thay đổi, nhưng có chuỗi thay đổi đó cuối cùng không hội tụ thành một chương trình không có gì hữu ích, là vô cùng phức tạp.


Chà, thực sự, mặc dù tôi đồng ý với những gì bạn đang nói, khi bạn nói rằng với máy tính, virus chỉ là hướng dẫn thông thường, áp dụng tương tự cho cơ thể, đối với một tế bào thông thường, virus chỉ là một bộ hướng dẫn bổ sung và Tất cả các tế bào làm là tạo ra protein, trong trường hợp này là protein của virus, đó là công việc của các tế bào bạch cầu để phát hiện virus vì đây là công việc chống vi-rút để yêu cầu phát hiện virus. Đó là cách virus nhân lên, chúng có sự phụ thuộc vào thực tế là cơ thể sẽ chỉ làm theo hướng dẫn!
J_mie6

Và, tôi đồng ý với những gì bạn đang nói về việc làm cho virus có những đột biến có ý nghĩa, nhưng nếu bạn nghĩ về virus thực sự, chúng chỉ là một bộ hướng dẫn, giống như một chương trình. Khi chúng đột biến, chúng gây bất lợi hoặc có lợi, nhưng cuối cùng, virus tiến hóa thành một thứ mới. Đó là những gì tôi đang nghĩ, không có vấn đề gì nếu đột biến là tốt hay xấu, chỉ là nó xảy ra thường xuyên. Và ngoài ra, tôi thích sự tương tự của bạn :)
J_mie6

Tôi đoán, nhưng vấn đề là, cơ thể có chức năng riêng của nó. Sự tương tự sẽ chỉ thực sự tồn tại nếu cơ thể là thứ không làm gì ngoài việc xử lý các đoạn DNA từ thế giới bên ngoài cả ngày, và một loại virus là một thứ lợi dụng điều đó. Ý tưởng là không có cùng một ý tưởng về một cơ quan "nước ngoài", rằng với máy tính, một chương trình chỉ là một chương trình.
jmite

3

câu hỏi chung là về sự tiến hóa trong phần mềm độc hại. câu hỏi cụ thể là về gen. thực sự có một cơ chế thuật toán di truyền sử dụng "gen" kỹ thuật số để tối ưu hóa và chắc chắn có thể được sử dụng trong virus / phần mềm độc hại, mặc dù cho đến nay dường như không có bất kỳ báo cáo nào về điều này "trong tự nhiên". mặt khác, phần mềm độc hại thực sự đã phát triển trong nhiều năm từ sự tò mò về lý thuyết đến một vấn đề liên quan đến tội phạm mạng có tổ chức, với sự gia tăng tinh vi trong các mối đe dọa. cho đến nay điều này được thúc đẩy phần lớn (nhưng không hoàn toàn!) bởi "sự tiến hóa" do con người phát triển. Theo một cách nào đó, virus máy tính có thể được cho là đang phát triển "trí thông minh" hoặc "tinh vi tấn công" theo thời gian.

đây là một số tài liệu tham khảo nghiên cứu về "sự tiến hóa của / trong phần mềm độc hại".


Stuxnet đã lừa đảo và lây nhiễm ISS.
noɥʇʎԀʎzɐɹƆ

1

Điều chính là nhận được nó và chạy. Các phiên bản ngây thơ, tức là Lấy một phần mềm độc hại có phần thành công hiện có và khiến mọi nỗ lực sinh sản đều có đột biến, có thể sẽ gây tử vong cho phần mềm độc hại trong hầu hết các trường hợp.

Tuy nhiên, điều này không có nghĩa là nó không thể phát triển, chỉ là mục đích ban đầu, sao chép của nó có thể bị cản trở. Với tỷ lệ đột biến đủ thấp và đủ kiên nhẫn, các đột biến có lợi và lành tính cuối cùng sẽ được chọn.

Tuy nhiên, một vấn đề là họ sẽ tiến hóa. Cụ thể, họ sẽ phát triển dựa trên các nguyên tắc thuần túy của Darwin. Nếu tôi viết một đoạn mã thực thi, và sau đó, chỉ khi thực hiện thành công, sao chép tệp nhị phân của nó 1000 lần đến 1000 vị trí với một lỗi ngẫu nhiên hoặc một vài lỗi trong mỗi mã và thực thi tất cả chúng, có vẻ như tôi đã tạo ra bản sao hoàn thành bất cứ nhiệm vụ nào đang được thực hiện thành công, nhưng trong thực tế, việc nhân rộng chỉ phụ thuộc vào chương trình NGHINK nó đã hoàn thành nhiệm vụ đó thành công.

Vì vậy, có một cơ hội công bằng rằng nếu đây là một phần mềm độc hại, hai mục tiêu cơ bản của nó, cụ thể là sao chép và làm hỏng máy tính của mọi người, sẽ xảy ra bất hòa với nhau. Trong một thời gian đủ dài, một đột biến có thể sẽ xuất hiện để làm cho nó không làm hỏng máy tính của họ, khiến cho việc chống vi-rút trở nên ít quan trọng hơn, do đó, sao chép với các triệu chứng tối thiểu, là chiến lược ban đầu hiệu quả nhất trong đại dịch hay bệnh dịch hạch, hoặc tự nói dối rằng nó thậm chí đã thành công trong việc làm hỏng máy tính của họ, biến chức năng chính thành một intron khá nhanh khi nó không thực thi được nhưng chức năng sao chép vẫn tiếp tục hoạt động.

Nhiều người ngạc nhiên về hiệu quả của hệ thống miễn dịch trong việc đánh bại tất cả các mối đe dọa, nhưng theo nhiều cách, máy tính an toàn hơn nhiều so với tế bào. Máy tính của bạn thực sự có thể không tải virus ở nơi đầu tiên. Một hệ thống chống vi-rút hoàn hảo với người dùng hoàn hảo không cần phải quét ổ cứng bao giờ. Mã máy tính không thể được chèn vật lý vào ổ cứng.

Các tế bào tương phản, nơi virus đã phát triển một số cơ chế VẬT LÝ khá độc đáo của việc trượt qua hệ thống phòng thủ của tế bào. Ví dụ, một số virus hoàn toàn trơ cho đến khi chúng gặp một tế bào, nhưng sau đó cấu trúc vật lý của chúng bám vào và chọc thủng màng tế bào để tiêm vật liệu di truyền của chúng. Đây giống như một vi-rút máy tính cắt vật lý mở máy của bạn và thêm phần cứng mới trong khi HĐH và phần mềm chống vi-rút của bạn nghĩ rằng "điều này là tốt" và thực thi mã được tìm thấy trên phần cứng đó.

Vì vậy, thực sự khá có khả năng là mã càng lành tính thì càng có thể tái tạo tốt hơn. Trong một số trường hợp, việc tiến hóa có thể dễ dàng thuyết phục người dùng giúp đỡ hơn là tiến hóa chống vi-rút mới. IE tự gắn thêm vào các tệp có khả năng được chia sẻ với người dùng khác.

Vì vậy, cuối cùng, dường như nhiều khả năng tôi sẽ nhân bản cao hơn khi nó vô dụng như một phần mềm độc hại như vậy, và có lẽ vẫn cao hơn nếu nó có thể thuyết phục người dùng hoặc mã chống vi-rút rằng thực tế nó là một thứ gì đó lành tính , quan trọng, hoặc có lợi.

Một điều nữa là hầu hết các máy đều có hoạt động không hợp lệ, do đó, việc chỉnh sửa ngẫu nhiên mã không chỉ có khả năng ngăn chặn chức năng mà còn khiến mã bị sập, ngay cả với bộ nhớ không được bảo vệ.


0

Hãy tưởng tượng các chương trình máy tính không độc hại là vi khuẩn trong ruột của bạn. Hãy tưởng tượng một virus máy tính là một vi khuẩn truyền nhiễm.

Máy tính không thể phân biệt sự khác biệt giữa vi khuẩn tốt và vi khuẩn xấu, không giống như hệ thống miễn dịch.

Sẽ thật đơn giản để thực hiện một chương trình tự sửa đổi, nhưng 99% đột biến sẽ dẫn đến một lỗi. Một chương trình giống như một danh sách các hướng dẫn - và máy tính rất nghiêm ngặt về cách các hướng dẫn đó được viết. Nói rằng chúng tôi có chương trình này:

  1. Thêm một muỗng canh bơ đậu phộng.
  2. Thêm một muỗng thạch.
  3. Đặt bánh mì lên trên.

Một đột biến có thể dẫn đến chương trình này:

  1. Thêm một muỗng canh bơ peahut.
  2. Thêm một muỗng thạch.
  3. Đặt bánh mì lên trên.

Mặc dù nó rõ ràng với con người nhưng nó có nghĩa là "đậu phộng", nhưng điều đó không rõ ràng với máy tính. Tôi có thể viết một tập lệnh đơn giản tự biến đổi trong Python - nhưng hầu hết các đột biến thời gian sẽ làm cho nó thất bại.

Nó sẽ rất thích thú với một loại virus tự đột biến và có thể tồn tại - chúng ta thậm chí có thể phân loại nó là sự sống.


Vâng, tôi đến bữa tiệc muộn - nhưng đây là một chủ đề thú vị đáng để viết.


Hầu hết các đột biến sinh học cũng gây bất lợi.
adrianN

@adrianN Vâng, và quá trình sinh học chính xác hơn nhiều và có hàng tỷ bản sao của virus trong mỗi cơ thể bị nhiễm bệnh, tất cả đều cạnh tranh trong cuộc đua tiến hóa. Đối với máy tính, chỉ tồn tại một virus trên mỗi máy tính.
noɥʇʎԀʎzɐɹƆ
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.