Форум русской поддержки Joomla!® CMS
02.12.2016, 22:05:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
   
   Начало   Поиск Joomla 3.0 FAQ Joomla 2.5 FAQ Joomla 1.5 FAQ Правила форума Новости Joomla Реклама Войти Регистрация Помощь  
Страниц: [1] 2 3  Все   Вниз
  Добавить закладку  |  Печать  
Автор

Антивирус для Joomla

 (Прочитано 3547 раз)
0 Пользователей и 1 Гость смотрят эту тему.
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« : 30.09.2015, 12:36:10 »

Решил подключить коллективный разум к идее создания антивируса для Joomla. Точнее это не антивирус в привычном для нас виде, да и идею я почерпнул из DLE.

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

Моя идея заключается в написании компонента, способного предупредить администратора сайта о взломе, который выявляется сканированием файловой структуры сайта. При выявлении изменения размера файла или даты его последнего изменения администратор незамедлительно информируется. Таким образом можно в режиме реального времени вести мониторинг целостности сайта. Мониторинг может быть осуществлен двумя способами - путем задания периодов запуска сканера через Cron или путем загрузки в память самоперезапускаемого демона (я здесь выкладывал свой код такого демона, который запускал сам себя через сокеты).

Однако встал вопрос сохранения результатов сканирования файловой системы. Эти результаты могут быть как изначально заложенными (при сканировании чистой Joomla), так и созданной отлаженной системы (первое сканирование - создание эталонных записей в базе данных). После чего повторное сканирование - это сверка с эталоном. Однако, как показывает практика, получить доступ к файловой системе - не такая уж проблема для грамотного взломщика, особенно учитывая откровенное разгильдяйство хостеров. Следовательно, имея доступ к файлам и базе, хакер легко может не только внедрить код, но и подменить данные в базе таким образом, что бы сканер не выявил расхождений. Я решил применить один из популярных методов симметричного шифрования записей, к примеру XXTEA, RSA. DES и др. Ключом к шифру хочу сделать пароль пользователя, на мой взгляд это самое простое решение. Например, шифрование делается по хешу, записанному в базе, а дешифруется после ввода пароля пользователем.

Вот, собственно, и встал вопрос, который поставил в тупик всю идею создания этого компонента: пароль должен быть в памяти, что бы работал дешифратор, его можно прочитать из переменной, отснифить при вводе и т.д. Других вариантов создания некого уникального ключа, который был бы недоступен хакеру, я не придумал. Использование дополнительного оборудования не планируется, так как компонент будет бесплатным.

Вопрос: какие вы можете предложить методы защиты эталонного списка в базе данных, обеспечивающие пусть не полную, но высокую сохранность? Какие дадите советы по реализации данного компонента?
Записан
fbr
Живу я здесь
******

Репутация: +136/-6
Offline Offline

Сообщений: 1250


« Ответ #1 : 30.09.2015, 13:55:58 »

Цитировать
Моя идея заключается в написании компонента
В принципе, нечто похожее уже есть
https://www.akeebabackup.com/products/admin-tools.html
Записан
voland
Профи
********

Репутация: +487/-85
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #2 : 30.09.2015, 15:07:13 »

Идея правильная, хотя древняя как мир.
Насчет правильной реализации - ИМХО должен быть сервис, на котором хранятся хэши файлов и туда же можно и нужно скидывать информацию об изменениях файлов.
В самом сервисе также можно проверять целостность файлов путём сравнения с хэшами файлов других пользователей.
Это важно, так как нереально собрать базу хэшей на все расширения и все версии, а в случае большого количества пользователей база будет довольно большой.

ЗЫ. Крон есть не везде и здесь опять сторонний сервис может помочь, принудительно вызываю проверку.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #3 : 30.09.2015, 16:09:17 »

В принципе, нечто похожее уже есть

Цитировать
Watch. Sniff. Catch.

Admin Tools' PHP File Change Scanner will monitor your site's PHP files for changes. If something is amiss, it will let you know. It will even tell you which files might have been hacked.

Да, верно. очень похоже. Посмотрю, как там что организовано. Хотя и хотелось бы иметь наш, российский продукт, в котором я был бы уверен.

...должен быть сервис, на котором хранятся хэши файлов и туда же можно и нужно скидывать информацию об изменениях файлов.
Зачем? Ведь достаточно просто залить файлы на сервер (или на WAMP/LAMP) и сделать сканирование. Получим свой набор хешей, индивидуальный. Все, что потом остается - следить за изменениями. Ведь, как правило, эти изменения происходят в базе и папке images, media и cache. Их можно исключить или сделать для них какую то особую проверку, не знаю. И, поскольку компонент планируется бесплатный, никаких хранилищ хешей, все должно быть в самом компоненте и в его базе. Только сделать это нужно так, что бы подделать невозможно было.
Записан
vipiusss
Профи
********

Репутация: +260/-8
Offline Offline

Пол: Мужской
Сообщений: 4570


Skype: renor_


« Ответ #4 : 30.09.2015, 16:52:25 »

ого сколько букв.
мы уже прошли в личке
вот бы мне твой спектальк(я про написание)
**
да не будет такого, новое всегда!всех ломали и будут!
Записан
wishlight
Профи
********

Репутация: +200/-1
Offline Offline

Пол: Мужской
Сообщений: 3474


skype aqaus.com


« Ответ #5 : 30.09.2015, 17:00:45 »

Уже есть уйма таких расширений. Вот если бы дополнить их сканированием по сигнатурам от ревизиума, то было бы вообще супер.
Записан
vipiusss
Профи
********

Репутация: +260/-8
Offline Offline

Пол: Мужской
Сообщений: 4570


Skype: renor_


« Ответ #6 : 30.09.2015, 17:03:00 »

Уже есть уйма таких расширений. Вот если бы дополнить их сканированием по сигнатурам от ревизиума, то было бы вообще супер.
даже разработчики не готовы.
они сами кодят и не думают о защите.
Записан
voland
Профи
********

Репутация: +487/-85
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #7 : 30.09.2015, 18:05:23 »

Зачем? Ведь достаточно просто залить файлы на сервер (или на WAMP/LAMP) и сделать сканирование. Получим свой набор хешей, индивидуальный. Все, что потом остается - следить за изменениями. Ведь, как правило, эти изменения происходят в базе и папке images, media и cache. Их можно исключить или сделать для них какую то особую проверку, не знаю. И, поскольку компонент планируется бесплатный, никаких хранилищ хешей, все должно быть в самом компоненте и в его базе. Только сделать это нужно так, что бы подделать невозможно было.
Движок и расширения могут обновляться и в идеале компонент должен сделать хэшии сверить с сервисом названия файлов и хэши, учитывая версию движка и компонента. Эта база будет большой и полной.
А смысл в простой проверке что ничего не поменялось? Она актуальна только для 2.5.28, живые проекты обновляются постоянно.
Да и может быть, что сайт уже заражен на момент первой проверки + это дополнительная защита от умных взломщиков в будущем.
Записан
voland
Профи
********

Репутация: +487/-85
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #8 : 30.09.2015, 18:06:29 »

Уже есть уйма таких расширений. Вот если бы дополнить их сканированием по сигнатурам от ревизиума, то было бы вообще супер.
Сигнатуры - это тоже не лучший вариант, очень долго, много фальшивых срабатывания итп - в общем сложноавтоматизируемый вариант.
Записан
voland
Профи
********

Репутация: +487/-85
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #9 : 30.09.2015, 18:08:19 »

И, поскольку компонент планируется бесплатный, никаких хранилищ хешей, все должно быть в самом компоненте и в его базе.
Лучше пожертвовать бесплатностью ради функционала.
Сделать абонентку руб 10 в месяц (по началу - бесплатно) чтоб окупать сервер
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #10 : 30.09.2015, 18:12:06 »

Лучше пожертвовать бесплатностью ради функционала.
Сделать абонентку руб 10 в месяц (по началу - бесплатно) чтоб окупать сервер
Ну тогда это должен быть хороший сервис, способный конкурировать с AdminTools и его аналогами. Тут меня одного не хватит... И, опять же, если взломают сервис... Тут еще нужен грамотный админ, который не за бесплатно будет работать... Вообщем, вопрос пока открыт.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #11 : 01.10.2015, 00:26:42 »

Проверил компонент AdminTools Pro от AkeebaBackup. То, о чем я говорил, реализовано весьма просто и никакой гарантии безопасности не дает. В базе данных создается таблица #__admintools_filescache, в которой всего четыре информативных поля - путь у файлу, дата, размер и хеш. Все. Зная алгоритм формирования хеша я легко могу его подделать. Как правило, если взломщик получает доступ к файловой системе, он получает полный контроль над всем сайтом, включая базу данных. Однако компонент AdminTools свою задачу в плане контроля за файловой системой выполнить не может.

Еще один популярный компонент защиты - RSFirewall. Ситуация еще хуже - в таблице #__rsfirewall_hashes содержится только путь и хеш. Следовательно, и он не дает гарантии безопасности.

Кроме того, исходный код обоих довольно старый, видимо эти компоненты каждый раз дописывали под новый релиз Joomla. В связи с вышеизложенным могу сказать одно - оба эти компонента бесполезны и уведомляют о взломе только если на сайт проникла система автоматического взлома или хакер-пионер. Грамотный же хакер легко подделает хеши и оба этих инструмента не обнаружат залитый на сайт шелл.
« Последнее редактирование: 01.10.2015, 00:47:15 от SeBun » Записан
KKAAZZOO
Практически профи
*******

Репутация: +101/-9
Offline Offline

Сообщений: 2081


« Ответ #12 : 01.10.2015, 00:39:59 »

Честно говоря я думал что проект умер, однако же нет http://santivi.com/. В свое время проверял из любопытства, вроде с Joomla работает нормально
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #13 : 01.10.2015, 00:57:06 »

Честно говоря я думал что проект умер, однако же нет http://santivi.com/.
Посмотрел поверхностно. Проект интересный, есть еще у кого опыт работы с ним, отзывы? В исходниках сейчас копаться не буду, но если результаты сканирования хранятся у них на серверах, то проект заслуживает внимания.
Записан
Очередной вебмастер
Завсегдатай
*****

Репутация: +54/-0
Offline Offline

Пол: Мужской
Сообщений: 790


лысый умный дядя


« Ответ #14 : 01.10.2015, 01:25:08 »

Вроде были уже попытки...
Из компонентов - от Виктора
Из сервисов - https://watchful.li/ вроде имел такую функцию частично...
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3525


« Ответ #15 : 01.10.2015, 01:27:42 »

Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #16 : 01.10.2015, 10:10:01 »

Из компонентов - от Виктора
Цитировать
Checksummen-Algorithmen: MD5 und SHA1 (Hashwerte)
Здесь тот же принцип, о котором я писал выше.

Допустим, я получил доступ к сайту. Далее я могу посмотреть, какие расширения установлены. Если оказывается, что стоит сканер, я не просто залью шелл, но и запишу в базу новый хеш измененного файла. И повторное сканирование никаких проблем не выявит. Тем более, что во всех перечисленных здесь компонентах используется один и тот же известный механизм необратимого хеширования MD5 или SHA1. Таким образом, эти компоненты становятся абсолютно бесполезными и даже вводят администраторов, которые на них наедятся, в заблуждение, создавая иллюзию абсолютной безопасности и контроля.
Записан
voland
Профи
********

Репутация: +487/-85
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #17 : 01.10.2015, 13:55:29 »

<paranoya mode on>
С другой стороны, а что защитит код компонента?
<paranoya mode off/>
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3525


« Ответ #18 : 01.10.2015, 15:00:13 »

Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #19 : 01.10.2015, 15:12:28 »

С другой стороны, а что защитит код компонента?
Вот как раз этот вопрос я и пытаюсь решить на фоне последних взломов. Пусть не защитить, это невозможно, но хотя бы оперативно выявить проблему. А что бы это сделать, нужно добиться невозможности подделки хешей, а вот как это реализовать, пока не пойму. Все, что я придумаваю, все ломается...

P.S.  flyingspook, можно не отмечать свое присутствие? Я и так вижу, кто онлайн... )
Записан
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #20 : 01.10.2015, 15:39:27 »

А может посмотреть в сторону открытых и закрытых ключей? Закрытым ключем создаем эталон и удаляем. А потом открытым ключем сравниваем
Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3525


« Ответ #21 : 01.10.2015, 15:46:58 »

Мне нравятся избитые темы вот и наблюдаю, зачем изобретать колесо когда оно есть и ни чего с ним не сделать больше.

Показать текстовый блок


Тема избита до нельзя.
<paranoya mode on>
С другой стороны, а что защитит код компонента?
<paranoya mode off/>
верно подмечено

нужно добиться невозможности подделки хешей
Это не реально храня их в бд или корне самого сайта, для этого надо или не париться как Вы или делать хранение на стороннем ресурсе. Если Вам это мешает или есть мысли о подмене.

Зачем покупать авто если его могут разбить или угнать, зачем строить дом если он может сгореть или др. с ним случится?

Вы полностью впали в параною, прежде чем кто то что то изменит сайт уже сообщит об этом владельцу или админу в письме или сообщении, и пусть меняют если найдут что менять, какие проблемы. (собака во дворе лает, её убили, а хозяин то в курсе что кто то залез)

"звоночек" о взломе и само выявление это разные вещи их нельзя объединять, вам "звоночек" сообщил что мол туда та туда то что то..., вы с реагировали посмотрели и проверили, тогда и мысли у Вас правильно начнут работать и "подделка" будет не подделка, и то что придумали покажется верным
« Последнее редактирование: 01.10.2015, 15:55:23 от flyingspook » Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #22 : 01.10.2015, 16:37:23 »

А может посмотреть в сторону открытых и закрытых ключей? Закрытым ключем создаем эталон и удаляем. А потом открытым ключем сравниваем
Где вы будете хранить ключи? Если на сайте, то забудьте...

"звоночек" о взломе и само выявление это разные вещи их нельзя объединять, вам "звоночек" сообщил что мол туда та туда то что то...
flyingspook, боюсь, вы не внимательно читали мои предыдущие посты. Спорить не буду, пусть кто то это и называет паранойей. Я останусь при своем мнении.

P.S. У вас есть дом, зачем вы ставите в доме сейф? Знаете, что воры залезут?
« Последнее редактирование: 01.10.2015, 17:02:10 от SeBun » Записан
flyingspook
Профи
********

Репутация: +226/-9
Offline Offline

Сообщений: 3525


« Ответ #23 : 01.10.2015, 18:17:29 »

Интернет общедоступный в нем нету ни сейфов ни замков.
Удачи в вашем начинании и желаю довести до конца. Боюсь будет как всегда, все просто потеряете время, поймете и забросите эту мысль.

пс. что бы этим заниматься надо или себя убедить в противном и всем это доносить как вы хотите, или с головой уйти в системы безопасности, по другому это буквы мысли и трата времени
Записан
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #24 : 01.10.2015, 19:21:04 »

Где вы будете хранить ключи? Если на сайте, то забудьте...
Открытый на сайте, закрытый можно хоть с клавы вводить в момент создание хешей/ЦП. Открытым ключем можно только проверить подлинность данных. Сгенерировать ЦП/хэш - только закрытым. Например RSA тот же.
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #25 : 01.10.2015, 19:57:17 »

Открытый на сайте, закрытый можно хоть с клавы вводить в момент создание хешей/ЦП. Открытым ключем можно только проверить подлинность данных. Сгенерировать ЦП/хэш - только закрытым. Например RSA тот же.
Есть публичный ключ и приватный. И это все ерунда. Почитайте тут.

Сегодня опять взломали. Опять внедрили код в index.php, изменив его права с 444. Получается, хакер работает с привилегиями владельца.
Записан
Sergey2
Завсегдатай
*****

Репутация: +15/-1
Offline Offline

Сообщений: 660


« Ответ #26 : 01.10.2015, 20:00:57 »

Есть публичный ключ и приватный. И это все ерунда. Почитайте тут.
Публичный/приватный открытый/закрытый. Суть не меняется. А насчет статьи - так в чем проблема самому их сгенерить?
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #27 : 01.10.2015, 20:18:28 »

Публичный/приватный открытый/закрытый. Суть не меняется. А насчет статьи - так в чем проблема самому их сгенерить?
Суть не в том, что сгенерить, а в том, где хранить.

Даже если речь не о шифровании, а о банальном хеше, то в Joomla используется хеш+соль. И хеш и соль доступны хакеру. Проблема лишь в том, что для генерации хеша используется необратимое шифрование, а на брут хеша уходит много времени. Однако, никто и не ставит целью взломать пароль, его просто заменяют на свой. Так и в случае со сканером, о котором речь. Нет смысла шифровать, если пароль лежит рядом с зашифрованным файлом. И даже если он хранится где то в другом месте, это решение не является панацеей - его все равно можно получить.

Выше я ответил flyingspook, по аналогии с сейфом дома. Но и сейф - не панацея, так как его можно взорвать, подобрать код или вскрыть другим способом, коих довольно много.

flyingspook, буквально недавно обсуждал с vipiusss одно решение, которое пришло на ум. Это приложение, написанное для операционной системы. Суть в том, что сам сайт находится на локальном LAMP/WAMP, приложение лишь синхронизирует этот сайт с сайтом, расположенным на хостинге, при этом затирая старые файлы. Либо это приложение проверяет целостность файлов на сервере и выполняет автоматическую замену на оригинал в случае изменения хеша. Решение то в принципе есть. Так что я не на пустом месте диалог веду.

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

Кроме того, описанные выше сервисы примерно по такому же принципу работают, а значит более эффективны, чем компоненты.
Записан
voland
Профи
********

Репутация: +487/-85
Online Online

Пол: Мужской
Сообщений: 8694


любит наш народ всякое гавно...


« Ответ #28 : 01.10.2015, 20:21:11 »

Приложение на локальном - бред сивой кобылы! Забыть как страшный сон.
Если уж есть мысль заняться серьезно - то написать дополнение к php, типа mod_securejoomla
Записан
SeBun
Практически профи
*******

Репутация: +134/-3
Offline Offline

Пол: Мужской
Сообщений: 2271



« Ответ #29 : 01.10.2015, 20:23:46 »

Приложение на локальном - бред сивой кобылы! Забыть как страшный сон.
А почему, можно аргумент?

Если уж есть мысль заняться серьезно - то написать дополнение к php, типа mod_securejoomla
Многие хостеры поставят у себя это дополнение? Мне даже php.ini не дали... Да и не спец я в серверных программах.
Записан
Страниц: [1] 2 3  Все   Вверх
  Добавить закладку  |  Печать  
 
Перейти в:  

Powered by SMF 1.1.21 | SMF © 2006, Simple Machines

Joomlaforum.ru is not affiliated with or endorsed by the Joomla! Project or Open Source Matters.
The Joomla! name and logo is used under a limited license granted by Open Source Matters
the trademark holder in the United States and other countries.

LiveInternet