Карантинная техника VB.net - PullRequest
0 голосов
/ 27 февраля 2011

Я думал об эффективном способе добавления возможностей карантина в мое антивирусное приложение:

  • скопируйте файл в указанный каталог и измените его расширение на none (*.).
  • сохранить двоичный код файла в базе данных XML.

Какой способ лучше?

Однако я понятия не имею, как я буду перекомпилировать двоичный код, как только пользователь захочетвосстановить файл.

Ответы [ 2 ]

1 голос
/ 15 ноября 2011

Один из способов сделать это - зашифровать двоичный файл с помощью механизма шифрования и переместить его в папку карантина. Вы можете создать произвольный пароль, зашифровать файл с этим паролем и сохранить его где-нибудь (этот пароль также можно зашифроватьс мастер-ключом).Это, вероятно, самый простой способ изолировать.Чтобы лишить гарантии, просто напишите полную противоположность коду карантина.Перечислите файлы в список и отфильтруйте его, затем, когда пользователь нажимает на элемент и нажимает на карантин, он вызывает функцию некарантирования с filepath в качестве переменной.

1 голос
/ 27 февраля 2011

Если бы мне пришлось это сделать (и опять же, я бы не хотел оказаться в этой ситуации, во-первых, согласно моему комментарию), я бы использовал внутрипроцессный механизм базы данных с собственной поддержкой шифрования и больших форматировать двоичные данные. Я думаю, что sql compact или sqlite оба подходят для этого.

Я бы не использовал xml, потому что это обычный текст, и двоичные данные можно было легко извлечь, и я бы не просто изменил расширение, потому что файл все еще можно было легко выполнить. Не так уж много карантина.

Обратите внимание, что вариант переименования, вероятно, является наиболее "эффективным" из того, что я видел до сих пор, но при работе с программным обеспечением безопасности правильность всегда должна быть вашей первой заботой об эффективности. Есть моменты, когда вы можете поставить под угрозу правильность производительности (программное обеспечение для рендеринга 3D-игр делает это постоянно, с большим эффектом), но программное обеспечение безопасности не относится к этой категории.

То, что вы можете сделать, это оптимизировать позже. Например, антивирусные движки используют эвристику (эмпирические правила, которые будут придерживаться только большую часть времени), чтобы сделать свое программное обеспечение быстрее, они делают это таким образом, что предпочитают ложные срабатывания, которые затем должны быть более тщательно проверены, а не пропущены угроза. Это работает только потому, что код, который более тщательно проверяет каждый элемент, был сначала написан и проверен в бою.

...