Бесплатная серверная защита от вирусов / безопасности / троянов для загрузки файлов? - PullRequest
3 голосов
/ 09 февраля 2011

Я разрешаю пользователям загружать фотографии, например фотоальбомы, а также прикреплять файлы (документы на данный момент) в качестве почтовых вложений. Поэтому я предполагаю, что мне нужен какой-нибудь антивирусный инструмент / инструмент для безопасности, чтобы сначала сканировать файлы на случай, если люди загрузят зараженный материал. Итак, два вопроса: 1) Существуют ли «бесплатные» или открытые инструменты для этого, которые я могу использовать или интегрировать в свою среду: codeignitor php? 2) Как обезопасить область загрузки от остальной системы? Скажем, вирусный сканер не может поймать вирус и загружен, как предотвратить заражение других файлов? Например, можно ли поместить область загрузки в изолированную среду или что-то в этом роде и использовать этот путь к файлам для доступа пользователей к контенту, чтобы он не распространялся на другие части системы?

Ответы [ 2 ]

2 голосов
/ 09 февраля 2011

Есть бесплатный clamav для антивирусного сканера.Установите его, и вы можете сделать что-то вроде:

function virus_detected($filename)
{
        $clamscan = "/usr/local/bin/clamscan";
        $result = exec("$clamscan -i --no-summary $filename");
        return strlen($result)?true:false;
}

Что касается безопасности, убедитесь, что временные файлы загружены в каталог за пределами вашего веб-корня.Затем вы должны проверить тип файла, переименовать файл, отличающийся от его исходного имени, и добавить соответствующее расширение (gif, jpg, bmp, png).Я полагаю, что это должно держать вас в безопасности, кроме эксплойтов в самом php.

Для получения дополнительной информации о проверке типов файлов в php, посмотрите: http://www.php.net/manual/en/function.finfo-file.php

1 голос
/ 19 января 2015

Я знаю, что эта тема неактивна уже три года, но, если кто-то в будущем, аналогично, ищет антивирусное решение на основе PHP для тех, у кого нет антивирусного демона,программа или утилита, установленные на их хост-машине и без возможности установки антивирусного демона, программы или утилиты, phpMussel , PHP-скрипт, написанный на основе ClamAV, которыйМожет быть жизнеспособным решением может быть то, что Рохит (первоначальный автор) искал (антивирус на основе PHP для защиты своих CMS от вредоносных загрузок файлов).Конечно, он не идеален, и я не могу гарантировать, что он поймает все, но, безусловно, это лучше, чем вообще ничего не использовать.

В идеале, как уже предложено Мэттом выше, сделатьОбращение к оболочке, чтобы ClamScan сканировал загруженные файлы, безусловно, является идеальным решением, и если это то, что может сделать хост-мастер, веб-мастер или кто-либо в ситуации с Рохитом, я бы полностью поддержал это предложение.То, что я написал, потому что это PHP-скрипт, имеет ограничения, присущие всему, что полностью функционирует на PHP, но в тех случаях, когда вышеупомянутое предложение и / или аналогичные предложения не возможны (например, еслина хост-машине не установлен антивирус, и доступ к оболочке отключен (обычно с более дешевыми решениями для общего хостинга), вот что я могу предложить здесь - что-то, что требует только установки PHP (с PCREвключая расширение, которое в настоящее время является стандартным для PHP), и ничего более.

Также помните, как уже предлагал Мэтт, всегда загружать за пределы вашего корневого каталога, чтобы гарантировать, что загруженные файлы не могут быть использованызлоумышленниками (например, в случае, если злоумышленник попытается скомпрометировать вашу систему, загрузив бэкдоры или трояны) - вирусы - не единственная угроза, о которой вам нужно беспокоиться, и в настоящее время подавляющее большинство антивирусных решений сосредоточено не только навирусы.Мэтт также совершенно прав, указав, что ни одно антивирусное решение не является идеальным, и поэтому любой, кто разрешает загрузку файлов на свой веб-сайт или сервер, должен сохранять бдительность - антивирусное решение обязательно для всех, ктоситуации, но нет никакого святого Грааля интернет-безопасности, которая покроет все возможные угрозы.Кроме того, переименование файлов заключается не только в том, чтобы гарантировать, что они не могут выполняться (что может быть несколько определено в ответном комментарии оригинального автора относительно EXE-файлов). Риск таких угроз, как атаки через каталог, может быть уменьшен путем переименования файлов, а такжериск, связанный с тем, что злоумышленник пытается переопределить уже существующий файл в целевой системе в качестве средства скрытия своей грязной работы.

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

...