Сервер в кармане, или просто о сложном!

Оценка эффективности систем защиты информации

Обновлено: 13.09.2025
Ведущей компанией по обеспечению эффективной информационной безопасности является компания Security Vision. Компания внедрила такие ИБ решения как IRP, SOC, SGRC, КИИ и другие в десятках крупных государственных и частных компаний. ИТ-продукты компании Security Vision включены в единый реестр программ, получили все сертификаты и лицензии. Сайт компании - www.securityvision.ru

В.В. Домарев, к.т.н.

Содержание:

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

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

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

Постановка задачи

Одиннадцать отдельно взятых футболистов (даже очень хороших) не составляют команду до тех пор, пока на основе заданных целей не будет отработано взаимодействие каждого с каждым. Аналогично СЗИ лишь тогда станет СИСТЕМОЙ, когда будут установлены логические связи между всеми ее составляющими.

Как же организовать такое взаимодействие? В футболе команды проводят регулярные тренировки, определяя роль, место и задачи каждого игрока. Качество или эффективность команд оценивается по игре в матчах, результаты которых заносятся в турнирную таблицу. Таким образом, после проведения всех встреч команд (каждой с каждой), можно сделать вывод об уровне состояния мастерства как команды в целом, так и отдельных ее игроков. Побеждает тот, у кого наиболее четко организовано взаимодействие:
Выражаясь терминами современного бизнеса, для решения вопросов взаимодействия нужно перейти от "чисто" технического на "конкретно" логический уровень представления процессов создания и функционирования СИСТЕМ защиты информации. Хотелось бы, чтобы все специалисты, считающие себя профессионалами в информационных технологиях, поднялись чуть выше "багов" и "кряков" и уже сейчас задумались над тем как их знания и опыт будут логически увязаны со знаниями и опытом других специалистов.
В "строгой научной постановке" задача автора состоит в предоставлении пользователям вспомогательного инструмента "елки" - (модели СЗИ), а задача читателя (пользователя) - украсить эту "елку" новогодними игрушками - (своими знаниями и решениями). Даже если "игрушек" пока еще нет, наличие "елки" поможет выбрать и приобрести нужные "украшения".

Конечный результат работы (степень красоты елки) зависит от ваших желаний, способностей и возможностей. У кого-то получится хорошо, у кого-то - не совсем: Но это естественный процесс развития, приобретения знаний и опыта.
Кстати, оценить красоту елки (эффективность системы защиты) весьма проблематично, поскольку у каждого из нас свои требования и вкусы, о которых, как известно, не спорят, особенно с руководством.
Таким образом, многообразие вариантов построения информационных систем порождает необходимость создания различных систем защиты, учитывающих индивидуальные особенности каждой из них. В то же время, большой объем имеющихся публикаций вряд ли может сформировать четкое представление о том как же приступить к созданию системы защиты информации для конкретной информационной системы, с учетом присущих ей особенностей и условий функционирования. Как сказал классик юмора: ":многообразие ваших вопросов порождает многообразие наших ответов:"
Возникает вопрос: можно ли сформировать такой подход к созданию систем защиты информации, который объединил бы в нечто единое целое усилия, знания и опыт различных специалистов? При этом желательно что бы указанный подход был универсальным, простым, понятным и позволял бы в одинаковой степени удовлетворить любые вкусы (требования) гурманов информационной безопасности?

Модель представления системы информационной безопасности

Практическая задача обеспечения информационной безопасности состоит в разработке модели представления системы (процессов) ИБ, которая на основе научно-методического аппарата, позволяла бы решать задачи создания, использования и оценки эффективности СЗИ для проектируемых и существующих уникальных ИС. Что понимается под моделью СЗИ? Насколько реально создать такую модель? В упрощенном виде модель СЗИ представлена на Рис.1.

Рис.1. Модель СЗИ

Основной задачей модели является научное обеспечение процесса создания системы информационной безопасности за счет правильной оценки эффективности принимаемых решений и выбора рационального варианта технической реализации системы защиты информации.
Специфическими особенностями решения задачи создания систем защиты являются:
· неполнота и неопределенность исходной информации о составе ИС и характерных угрозах;
· многокритериальность задачи, связанная с необходимостью учета большого числа частных показателей (требований) СЗИ;
· наличие как количественных, так и качественных показателей, которые необходимо учитывать при решении задач разработки и внедрения СЗИ;
· невозможность применения классических методов оптимизации.

Требования к модели
Такая модель должна удовлетворять следующим требованиям (Рис. 2.):
Использоваться в качестве:
· Руководства по созданию СЗИ
· Методики формирования показателей и требований к СЗИ
· Инструмента (методика) оценки СЗИ
· Модели СЗИ для проведения исследований (матрица состояния)
Обладать свойствами:
· Универсальность
· Комплексность
· Простота использования
· Наглядность
· Практическая направленность
· Быть самообучаемой (возможность наращивания знаний)·
· Функционировать в условиях высокой неопределенности исходной информации
Позволять:
· Установить взаимосвязь между показателями (требованиями)
· Задавать различные уровни защиты
· Получать количественные оценки
· Контролировать состояние СЗИ
· Применять различные методики оценок
· Оперативно реагировать на изменения условий функционирования
· Объединить усилия различных специалистов единым замыслом

Рис. 2. Требования к модели СЗИ

Описание подхода к формированию модели ИБ
Как составить такое представление об информационной безопасности, что бы охватить все аспекты проблемы? Человек получает наиболее полное представление об интересующем его явлении, когда ему удается рассмотреть это нечто неизвестное со всех сторон, в трехмерном измерении.
Воспользуемся этим принципом.
Рассмотрим три "координаты измерений" - три группы составляющих модели СЗИ.
1. Из чего состоит (ОСНОВЫ)
2. Для чего предназначена (НАПРАВЛЕНИЯ)
3. Как работает (ЭТАПЫ)

Рис. 3. Три "координаты измерений" - три группы составляющих модели СЗИ

ОСНОВАМИ или составными частями практически любой сложной СИСТЕМЫ (в том числе и системы защиты информации) являются:
· Законодательная, нормативно-правовая и научная база;
· Структура и задачи органов (подразделений), обеспечивающих безопасность ИТ;
· Организационно-технические и режимные меры и методы (политика информационной безопасности);
· Программно-технические способы и средства.

Рис. 4. Координата ОСНОВЫ

НАПРАВЛЕНИЯ формируются исходя из конкретных особенностей ИС как объекта защиты. В общем случае, учитывая типовую структуру ИС и исторически сложившиеся виды работ по защите информации, предлагается рассмотреть следующие направления:
· Защита объектов информационных систем;
· Защита процессов, процедур и программ обработки информации;
· Защита каналов связи;
· Подавление побочных электромагнитных излучений.
· Управление системой защиты;

Рис. 5. Координата НАПРАВЛЕНИЯ

Но, поскольку каждое из этих НАПРАВЛЕНИЙ базируется на перечисленных выше ОСНОВАХ, то элементы ОСНОВ и НАПРАВЛЕНИЙ, рассматриваются неразрывно друг с другом. Например, одну из ОСНОВ под названием "Законодательная база:" необходимо рассматривать по всем НАПРАВЛЕНИЯМ, а именно:
Законодательная база защиты объектов:
Законодательная база защиты процессов, процедур и программ:
Законодательная база защиты каналов связи:
Законодательная база подавления побочных электромагнитных излучений:
Законодательная база по управлению и контролю самой системы защиты:
Аналогично следует рассматривать остальные грани ОСНОВ (структуру:, меры:, средства) по всем НАПРАВЛЕНИЯМ.
Как видите, для формирования самого общего представления о конкретной системе защиты необходимо ответить минимально на 20 (4*5=20) самых простых вопросов. Но и это еще не все... Далее необходимо рассмотреть ЭТАПЫ (последовательность шагов) создания СЗИ, которые необходимо реализовать в равной степени для каждого в отдельности НАПРАВЛЕНИЯ с учетом указанных выше ОСНОВ.

Проведенный анализ существующих методик (последовательностей) работ по созданию СЗИ позволяет выделить следующие ЭТАПЫ:
· Определение информационных и технических ресурсов, а также объектов ИС(!) подлежащих защите;
· Выявление полного множество потенциально возможных угроз и каналов утечки информации;
· Проведение оценки уязвимости и рисков информации (ресурсов ИС) при имеющемся множестве угроз и каналов утечки;
· Определение требований к системе защиты информации;
· Осуществление выбора средств защиты информации и их характеристик;
· Внедрение и организация использования выбранных мер, способов и средств защиты.
· Осуществление контроля целостности и управление системой защиты.

Рис. 6. Этапы создания систем защиты информации.

Поскольку ЭТАПОВ семь, и по каждому надо осветить 20 уже известных вам вопросов то в общей сложности для формирования представления о конкретной системе защиты необходимо ответить на 140 простых вопросов. Совершенно очевидно что по каждому вопросу (элементу) возникнет несколько десятков уточнений.
В общем случае количество элементов матрицы может быть определено из соотношения
K = Oi*Hj*Mk
Где
К - количество элементов матрицы
Oi - количество составляющих блока "ОСНОВЫ"
Hj - количество составляющих блока "НАПРАВЛЕНИЯ"
Mk - количество составляющих блока "ЭТАПЫ"

В нашем случае общее количество элементов "матрицы" равно 140
K=4*5*7=140.
поскольку Oi=4, Hj=5, Mk=7

Все это можно представить в виде своеобразного кубика Рубика, на гранях которого образовалась мозаика взаимосвязанных составляющих элементов системы защиты.
А теперь для простоты понимания попробуем преобразовать трехмерную фигуру в двухмерную. Для этого развернем трехмерный куб на плоскости (на листе бумаги) и получим трехмерную матрицу в виде двухмерной таблицы, которая поможет логически объединить составляющие блоков "ОСНОВЫ", "НАПРАВЛЕНИЯ" и "ЭТАПЫ" по принципу каждый с каждым.
Напомним, что матрица в виде двухмерной таблицы появляется не сама по себе, а формируется в каждом конкретном случае, исходя из конкретных задач по созданию конкретной СЗИ для конкретной ИС.


Представление элементов матрицы

Элементы матрицы имеют соответствующую нумерацию. Следует обратить внимание на обозначения каждого из элементов матрицы, где:
первое знакоместо (Х00) соответствует номерам составляющих блока "ЭТАПЫ",
второе знакоместо (0Х0) соответствует номерам составляющих блока "НАПРАВЛЕНИЯ",
третье знакоместо (00Х) соответствует номерам составляющих блока "ОСНОВЫ".

На Рис.7 представлен пример, элемента матрицы 321, который формируется с учетом следующих составляющих:
300 - Проведение оценки уязвимости и рисков (составляющая № 3 блока "ЭТАПЫ");
020 - Защита процессов и программ (составляющая № 2 блока "НАПРАВЛЕНИЯ")
001 - Нормативная база (составляющая № 1 блока "ОСНОВЫ")

Рис. 7. Пример нумерации элемента матрицы №321

Приведем пример содержания информации для элементов матрицы № 321, 322, 323, 324, которые объединяют следующие составляющие:
№ 3 (300 проведение оценки уязвимости и рисков) блока "ЭТАПЫ",
№ 2 (020 защита процессов и программ) блока "НАПРАВЛЕНИЯ"
№ 1, 2, 3, 4 (001 нормативная база, 002 структура органов, 003 мероприятия, 004 используемые средства) блока "ОСНОВЫ".
Вот что получилось:
Элемент № 321 содержит информацию о том насколько полно отражены в законодательных, нормативных и методических документах вопросы, определяющие порядок проведения оценки уязвимости и рисков для информации используемой в процессах и программах конкретной ИС?
Элемент № 322 содержит информацию о том имеется ли структура органов (сотрудники), ответственная за проведение оценки уязвимости и рисков для процессов и программ ИС?
Элемент № 323 содержит информацию о том определены ли режимные меры, обеспечивающие своевременное и качественное проведение оценки уязвимости и рисков для информации используемой в процессах и программах ИС?
Элемент № 324 содержит информацию о том применяются ли технические, программные или другие средства, для обеспечения оперативности и качества проведения оценки уязвимости и рисков в процессах и программах ИС?

Это содержание только четырех вопросов из ста сорока, но ответы на них уже позволяют сформировать некое представление о состоянии дел по защите информации в конкретной ИС.
В общем случае рассматриваются все 140 вопросов (по числу элементов матрицы). Полное содержание 140 элементов матрицы можно посмотреть здесь. Описание этих вопросов позволяют составить полное представление о СЗИ и оценить достигнутый уровень защиты.
Сложно? Да! Однако именно такой подход дает возможность держать правильное направление в процессе создания сложных систем защиты. ":Верной дорогой идете, товарищи:". А поскольку при этом постоянно учитываются взаимные логические связи между многочисленными элементами СЗИ, то есть шанс построить именно СИСТЕМУ, а не набор решений. Напомним, что матрица не сществует сама по себе, а формируется исходя из описания конкретной ИС и конкретных задач по защите информации в этой системе, см. рисунок:


Свойства матрицы
Предложенная модель представления СЗИ в виде трехмерной матрицы позволяет не только жестко отслеживать взаимные связи между элементами защиты, но может выступать в роли руководства по созданию СЗИ. Если вы, приступая к созданию системы защиты, не знаете с чего начать, попробуйте ответить на предлагаемые общие вопросы, начиная с любого из них. И когда вы пройдетесь по всем, то поймете что уже есть, а чего не хватает для достижения поставленной цели.
Если желаете поставить задачу на создание СЗИ, то заполнив 140 элементов матрицы соответствующими требованиями, получим достаточно полное техническое задание. Причем сформулировать эти требования можно на основе любых стандартов - международных, европейских, американских., российских, украинских:

Ну а как оценить эффективность создаваемой или уже функционирующей СЗИ?
Снова поможет подход на основе трехмерной матрицы. Только теперь по 140 показателям (элементам матрицы) надо выставить соответствующие оценки. Существует много методов оценок, выбирайте любой понятный и прозрачный для вас. Наиболее популярный на сегодняшний день метод "Три П" - пол, палец, потолок.
Наглядно указанные свойства матрицы приведены на Рис.8.

Рисунок 8. Свойства матрицы информационной безопасности

Программа оценки эффективности систем защиты информации "Оценка СЗИ"
Программа "Оценка СЗИ" иллюстрирует работу модели СЗИ представленной в виде трехмерной матрицы, описание которой приведено выше, она разработана с целью демонстрации преимуществ системного подхода к созданию и оценке эффективности систем защиты информации.
С помощью указанной программы осуществляется расчет условных показателей эффективности СЗИ, а также графическое представление состояния достигнутого уровня безопасности по отношению к заданному.
Программа "Оценка СЗИ" реализована на языке программирования Delphi и предназначена для оценки эффективности мероприятий, проводимых при создании и функционировании систем защиты информации.
Предложенная модель СЗИ в виде трехмерной матрицы позволяет не только жестко отслеживать взаимные связи между элементами защиты, но может выступать в роли руководства по созданию СЗИ. Если вы, приступая к созданию системы защиты, не знаете с чего начать, попробуйте ответить на предлагаемые в матрице вопросы, начиная с любого из них. И когда вы пройдетесь по всем вопросам, то поймете что уже сделано, а чего не хватает для достижения поставленной цели.
Если желаете поставить задачу на создание СЗИ, то заполнив 140 элементов (вопросов) матрицы соответствующими требованиями, получим достаточно полное техническое задание. Причем сформулировать эти требования можно на основе любых стандартов - международных, европейских, американских., российских, украинских:
Ну а как оценить эффективность создаваемой или уже функционирующей СЗИ?
Снова поможет подход на основе трехмерной матрицы. Только теперь по 140 показателям (элементам матрицы) надо выставить соответствующие оценки. Существует много методов оценок, выбирайте любой понятный и прозрачный для вас. Наиболее популярный на сегодняшний день метод "Три П" - пол, палец, потолок.

Интерфейсы программы с некоторыми комментариями представлены на рисунках 9, 10, 11, 12.
При внимательном рассмотрении можно узнать уже знакомую нам "матрицу знаний СЗИ" в несколько другом представлении.
На Рис. 9. показан интерфейс ввода данных. Заказчик определяет необходимые требования к системе защиты и устанавливает заданный уровень безопасности в соответствующие элементы матрицы. Экесперты в процессе проведения оценки качества созданной системы защиты определяют реализован ли заданный уровень безопасности и свои оценки выставляют в тех же элементах матрицы, только в режиме "достигнутый"

Рис. 9. Интерфейс ввода данных

На рис. 10 можно посмотреть графическеое представление количественных и качественных оценок по каждому из элементов матрицы. Здесь наглядно показано как сравнивается заданный уровень безопасности с достигнутым.


Рис. 10. Сравнение заданного и достигнутого уровеней безопасности.

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

Рис. 11. Графичекое представление оценки эффетивности СЗИ.

Не стоит забывать, что требования к СЗИ имеют разную степень важности, которую необходимо учитывать при расчетах, используя соответствующие коэффициенты важности. Интерфес для ввода коэффициентов важности представлен на рис. 12.

Рис. 12. Интерфес для ввода коэффициентов важности.


Вместо заключения (Read me):
Хочется напомнить золотое правило: если после долгих попыток ничего не получается, ознакомьтесь, наконец, с инструкцией для пользователя! Прежде чем приступить к использованию программы "Оценка СЗИ", желательно разобраться с особенностями похода к рассмотрению вопросов информационной безопасности, предложенного автором.

Здесь можно скачать файл инсталляции указанной программы оценки эффективности систем защиты информации. (680 793 байт)

Программа предназначена для свободного использования.

Источник: http://bezpeka.com/


Исследование эффективности средств защиты от шпионских программ

Обновлено: 13.09.2025

contacts@bezpeka.com

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

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

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

Согласно отчету компании Webroot "State of Spyware" за третий квартал 2005 года (http://www.webroot.com/land/sosreport-2005-q3.php), количество шпионских программ продолжает стремительно расти; возрастает и риск, которому подвергаются пользователи в Интернете. Исследование Consumer Reports за третий квартал 2005 показывает, что 86% пользователей так или иначе изменили свое поведение с Сети, боясь утечки данных о своей личности. 30% пользователей уменьшили общее время работы в Интернет; 53% пользователей перестали сообщать свою персональную информацию в Интернет; 25% отказались от покупок онлайн; 29% из тех, кто совершает покупки онлайн, стали реже покупать в Интернет.

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

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

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

  • Хотя в сети Интернет постоянно публикуются различные сравнительные тесты антишпионских, антивирусных и т.п. программных продуктов, эти исследования основаны на совершенно различных методиках тестирования, расчета рейтингов и т.д. Поэтому тесты не всегда отражают реальное положение вещей. Например, одним из основных критериев при сравнении антишпионских продуктов является количество сигнатур в базе. Но даже самые лучшие продукты, побеждающие в таких рейтингах, не в состоянии бороться с угрозами, описанными ниже.
  • Даже если в тесте одна программа заблокировала, к примеру, 10 из 10 вредоносных программ, а вторая только 7 из 10, это вовсе не означает, что первая программа лучше защитит конфиденциальную информацию пользователей. Как правило, к шпионским программам причисляются все программы, отсылающие третьей стороне любую информацию о пользователе, независимо от ценности этой информации. Таким образом, в одной группе оказываются и вполне безобидные программы, собирающие информацию о посещенных сайтах и сделанных в Интернете покупках - и чрезвычайно опасные программы и модули, специально разработанные для кражи банковских паролей и другой критической информации.
  • Критерии оценки программ определяют результаты тестирования - во многих исследованиях среди критериев оказывается не столько эффективность против наиболее опасных шпионских программ, сколько способность закрывать всплывающие окна (pop-ups), борьба с adware и красота интерфейса.
  • Маркетологи отлично знают, что тот товар, что лучше, не обязательно более распространен в мире. Как правило, лучше всех распространяется товар, торговая марка которого хорошо известна, и в продвижение которого на рынок вложены большие финансовые средства.
Цели тестирования
  • Оценить программные продукты и составить рейтинг с точки зрения их эффективности против самых опасных шпионских программ - тех, которые опубликованы в сети Интернет в открытых исходных кодах со свободным доступом для всех желающих. Поскольку скомпилировать такой код можно по-разному, как правило, традиционный сигнатурный анализ с ним не справляется.
  • Проверить качество работы "эвристических анализаторов", наличие которых в своих программных продуктах декларируют практически все всемирно известные производители антивирусных и антишпионских продуктов.
Предпосылки для разработки методики

В последнее время резко возросло количество публикаций о такой стремительно растущей разновидности киберпреступлений, как кража конфиденциальной информации с помощью программ-шпионов, и мерах по защите от них. В докладе "Превентивный подход к защите информации от современных шпионских программ" (http://bezpeka.com/en/lib/antispy/anot2868.html) подчеркивалась особая опасность угроз класса System Monitors (согласно классификации SpyAudit). К ним относятся кейлоггеры и их усовершенствованные модификации, позволяющие перехватывать нажатия клавиатуры (в пользовательском режиме и в режиме ядра системы), текст из окон приложений и буфера обмена, графические снимки экрана и др. Именно такие угрозы и являются предметом нашего рассмотрения, мы не включаем в понятие "шпионская программа" (spyware) угрозы класса adware, cookie и т.п. Последствия целенаправленной атаки с помощью кейлоггера несоизмеримы с вредом от внедрения adware на ПК пользователя. Со временем, System Monitors становятся все более опасными и вытесняют все остальные угрозы, которые ранее традиционно включались в понятие spyware. Это подтверждается многочисленными сообщениями в прессе, документами Anti-Spyware Coalition (http://www.antispywarecoalition.org), отчетами Webroot, Earthlink SpyAudit и другими ведущими компаниями и организациями в данной сфере. Подробно о нашей классификации шпионских программ см. статью "Шпионские программы и новейшие методы защиты от них" (http://bezpeka.com/ru/lib/sec/gen/art382.html).

Свое описание модели риска выпустила Anti-Spyware Coalition (http://www.antispywarecoalition.org/documents/RiskModelDescription.htm). К высокому риску Коалиция относит программы, самовоспроизводящиеся через массовые почтовые рассылки, червей и вирусы, а также программы, которые устанавливаются без разрешения или ведома пользователя посредством секьюрити-эксплойта, и программы, которые без согласия пользователя перехватывают сообщения email или интернет-пейджера, передают персональные данные или изменяют параметры защиты. Коалиция надеется, что ее рекомендации приведут к созданию более качественных антишпионских продуктов.

Что же может противопоставить пользователь персонального компьютера программам-шпионам?

Решение данной проблемы возможно только в использовании комплекса программных продуктов:

  • Программный продукт N1 - это продукт, который использует эвристические механизмы защиты против программ-шпионов. Он оказывает защиту непрерывно и не использует никакие сигнатурные базы.
  • Программный продукт N2 - это Антивирусный программный продукт, использующий постоянно обновляемые сигнатурные базы.
  • Программный продукт N3 - это персональный Firewall, контролирующий выход в сеть Интернет с персонального компьютера на основании конфигурации, которую определяет сам пользователь.

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

Персональный файрволл задает много вопросов, на которые даже очень хорошо подготовленный пользователь может ответить некорректно, тем самым неправильно его сконфигурировав. Например, даже некоторые коммерческие мониторинговые программные продукты (не говоря даже о специализированных хакерских программных продуктах) используют процессы, которым заведомо разрешен выход в Интернет (браузеры, почтовые клиенты и т.д.). Как правило, пользователь обязан разрешить им выход в Интернет. А это приводит к тому, что украденная шпионской программой информация будет отослана в Интернет на заранее подготовленный злоумышленником адрес (email, ftp и т.д.). Другие типы шпионских программ обходят защиту файрволов иными способами и также невидимы для них.

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

Но все ли пользователи устанавливают хотя бы те защитные программы, что имеются на рынке? К сожалению, далеко не все. По результатам недавнего исследования, проведенного совместно компанией AOL и организацией National Cyber Security Alliance (NCSA), на 81% ПК не установлен, по крайней мере, один из трех рекомендуемых компонентов интернет-защиты - межсетевой экран, обновляемый антивирус или приложение для защиты от шпионского ПО. Антивирусная программа вообще не инсталлирована или не обновлялась неделю и более на 56% домашних компьютеров. Межсетевые экраны с неправильными настройками обнаружены на 44% ПК. А антишпионская утилита отсутствует на 44% машин (http://bezpeka.com/ru/news/2005/12/08/5221.html).

Как же выбрать действительно надежную антишпионскую программу? Действительно ли программы, занимающие верхние позиции в различных рейтингах, надежно защитят информацию от кражи? Существующие методики сравнительного тестирования антишпионских продуктов, на основе которых и составляют рейтинги, не учитывают возможность защиты от неизвестных шпионских программ. Первым и одним из наиболее весомых критериев тестирования обычно является количество записей в сигнатурной базе (иными словами - количество обнаруживаемых spyware). Что дают такие сравнительные обзоры? Пользователь, ознакомившись с таблицей, выбирает один из продуктов, занимающих верхние позиции в результатах тестирования, устанавливает его на свой компьютер и верит, что теперь его персональная информация надежно защищена.

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

Методика тестирования

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

Тестирование проводилось следующим образом.

Из сети Интернет были скачаны 9 шпионских программ с открытым исходным кодом:

  1. Key Logger by Jerome Scott II (K1)
    http://www.planet-source-code.com/vb/scripts/ShowCode.asp?txtCodeId
    =1645&lngWId=7
  2. KeyLoggerMore_Sample (K2)
    http://www.codeguru.com/code/legacy/system/KeyLoggerMore_Sample.zip
  3. try_wnd1 (K3)
    http://www.ladia.ru/cpp/appli/files/log.zip
  4. KEYLOGGER (K4)
    http://www.delphifr.com/gma/Keyloggers
  5. KEY LOGGER, ENREGISTREMENT CRYPTÉ + DÉCODEUR (K5)
    http://www.delphifr.com/code.aspx?id=12616
  6. SIMPLE PETIT KEYLOGGER (K6)
    http://www.delphifr.com/code.aspx?id=12279
  7. TOUCHES DE CLAVIER EN SIMULTANNÉ (HOOK) (K7)
    http://www.delphifr.com/code.aspx?id=12276
  8. Best Free Keylogger (BFK) (K8)
    http://sourceforge.net/projects/bfk
  9. Simple Python Keylogger for Windows (K9)
    http://sourceforge.net/projects/pykeylogger

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

Испытания проводились на операционных системах Windows XP Professional SP2 и Windows 2000 SP4 с последними обновлениями, на 32-битной архитектуре Intel.

Для тестирования были выбраны 22 всемирно известные антишпионские программы, включаемые в большинство Интернет-рейтингов:


Продукт Версия URL Разработчик
Ad-aware SE Pro Build 1.06r1 http://www.lavasoft.de/ Lavasoft
AntiSpy 2.13 http://www.softvers.com/antispy/ Softvers
BPS Spyware Remover 9.2.0.9 http://www.bulletproofsoft.com/ Bullet Proof Soft, Inc.
CounterSpy 1.5.82 http://www.sunbelt-software.com/ Sunbelt Software
Maxion Spy Killer 5 http://www.maxionsoftware.com/ Maxion Software
McAfee Anti-Spyware 2.0.0.167 http://www.mcafeestore.com/ McAfee, Inc.
Microsoft AntiSpyware 1.0.701 http://www.microsoft.com/ Microsoft Corporation.
PestPatrol 5.0.2.3 http://pestpatrol.com/ Computer Associates International, Inc.
PrivacyKeyboard 7.1 http://www.bezpeka.biz/ Information Security Center Ltd
Spy Cleaner Gold 3.6 http://www.spycleaner-gold.com/ Topdownloads Networks
Spy Sweeper 4.5.7.756 http://www.webroot.com/ Webroot Software, Inc.
Spybot Search & Destroy 1.4 http://www.spybot.info/ Patrick M. Kolla / Safer Networking Limited.
SpyHunter 2.0.1086 http://www.enigmasoftwaregroup.com/ Enigma Software Group, Inc.
SpyRemover 2.46 http://www.itcompany.com/ InfoWorks Technology Company.
SpySubtrac 3.11 http://www.trendmicro.com/ Trend Micro Incorporated.
Spyware Be Gone 7 http://www.spywarebegone.com/ MicroSmarts LLC
Spyware Blaster 3.4 http://www.javacoolsoftware.info/ Javacool Software LLC.
Spyware Crusher 1.0.9 http://www.spywarecrusher.com/ Spyware Crusher
Spyware Doctor 3.2 http://www.pctools.com/spyware-doctor/ PC Tools.
Spyware Stormer 1.4.7 http://www.spywarestormer.com/ Spyware Stormer, Inc.
TrueWatch 1.2.0.0 http://www.truesuite.com/ Esaya, Inc.
XoftSpy 4.19 http://www.paretologic.com/products.aspx ParetoLogic Inc.

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

Для тестирования были выбраны 22 всемирно известные антивирусные программы, включаемые в большинство Интернет-рейтингов (для нашего тестирования использовался специализированный интернет-ресурс http://www.virustotal.com):


Продукт URL Разработчик Версия Обновление
AntiVir http://www.hbedv.com/en/ H+BEDV (AntiVir) 6.33.0.70 12.23.2005
Avast http://www.avast.com/ ALWIL (Avast! Antivirus) 4.6.695.0 12.22.2005
AVG http://www.grisoft.com/ Grisoft (AVG) 718 12.23.2005
Avira http://www.avira.com/ AVIRA (AVIRA Desktop) 6.33.0.70 12.23.2005
BitDefender http://www.bitdefender.com/ Softwin (BitDefender) 7.2 12.23.2005
CAT-QuickHeal http://www.quickheal.co.in/ Cat Computer Services (Quick Heal) 8 12.21.2005
ClamAV http://www.clamwin.com/ ClamAV (ClamWin) devel-20051108 12.19.2005
DrWeb http://www.drweb.com/ Doctor Web, Ltd. (DrWeb) 4.33 12.23.2005
eTrust-Iris http://www.ca.com/ Computer Associates (Iris, Vet) 7.1.194.0 12.23.2005
eTrust-Vet http://www.ca.com/ Computer Associates (Iris, Vet) 12.4.1.0 12.23.2005
Fortinet http://www.fortinet.com/ Fortinet (Fortinet) 2.54.0.0 12.23.2005
F-Prot http://www.f-prot.com/ FRISK Software (F-Prot) 3.16c 12.22.2005
Ikarus http://www.ikarus.at/ Ikarus Software (Ikarus) 0.2.59.0 12.23.2005
Kaspersky http://www.kaspersky.com/ Kaspersky Lab (AVP) 4.0.2.24 12.23.2005
McAfee http://www.mcafee.com/ McAfee (VirusScan) 4657 12.23.2005
NOD32v2 http://www.nod32.com/ Eset Software (NOD32) 1.1335 12.22.2005
Norman http://www.norman.com/ Norman (Norman Antivirus) 5.70.10 12.23.2005
Panda http://www.pandasoftware.com/ Panda Software (Panda Platinum) 8.02.00 12.22.2005
Sophos http://www.sophos.com/ Sophos (SAV) 4.01.0 12.23.2005
Symantec http://www.symantec.com/ Symantec (Norton Antivirus) 8 12.23.2005
TheHacker http://www.hacksoft.com.pe/ Hacksoft (The Hacker) 5.9.1.060 12.21.2005
VBA32 http://www.anti-virus.by/ VirusBlokAda (VBA32) 3.10.5 12.22.2005

Результаты тестирования

Результаты тестирования антишпионских продуктов:


AntiSpy Product Test Spy K1 K2 K3 K4 K5 K6 K7 K8 K9
Ad-aware SE Pro - - - - - - - - -
AntiSpy - - - - - - - - -
BPS Spyware Remover - - - - - - - - +
CounterSpy - - - - - - - - -
Maxion Spy Killer - - - - - - - - -
McAfee Anti-Spyware - - - - - - - + -
Microsoft AntiSpyware - - - - - - - - -
PestPatrol - - - - - - - - -
PrivacyKeyboard + + + + + + + + +
Spy Cleaner Gold - - - - - - - - -
Spy Sweeper - - - - - - - + -
Spybot Search & Destroy - - - - - - - - -
SpyHunter - - - - - - - - -
SpyRemover - - - - - - - - -
SpySubtrac - - - - - - - + -
Spyware Be Gone - - - - - - - - -
Spyware Blaster - - - - - - - - -
Spyware Crusher - - - - - - - - -
Spyware Doctor - - - - - - - - -
Spyware Stormer - - - - - - - - -
TrueWatch - - - - - - - + +
XoftSpy - - - - - - - - -

Результаты тестирования антивирусных продуктов:


AntiVirus Product Test Spy K1 K2 K3 K4 K5 K6 K7 K8 K9
AntiVir no no no Heuristic
/ Trojan.
Keylogger
no Heuristic
/Trojan.
Keylogger
no no no
Avast no no no no no no no no no
AVG no no no no no no no no no
Avira no no no Heuristic
/Trojan.
Keylogger
no Heuristic
/Trojan.
Keylogger
no no no
BitDefender no no no no no no no Generic
.Malware.
SLM.
10535C5E
no
CAT-QuickHeal no no no Monitor.
KeyLogger.
i (Not a Virus)
no no no Monitor.
BFK.
11 (Not a Virus)
no
ClamAV no no no no no no no no no
DrWeb Trojan
.KeyLogger.
342
no no no no no no no no
eTrust-Iris no no no no no no no no no
eTrust-Vet no no no no no no no no no
Fortinet no no no no no no no Keylog!tr no
F-Prot no no no no no no no no no
Ikarus no no no no no no no no no
Kaspersky no no no not-a-virus:
Monitor.
Win32.
KeyLogger.i
no no no not-a-virus:
Monitor.
Win32.
BFK.11
no
McAfee no no no no no no no Keylog.gen no
NOD32v2 no no no no no no no probably
unknown
NewHeur_PE
virus
no
Norman no no no no no no no no no
Panda no no no no no no no no no
Sophos no no no no no no no no no
Symantec no no no no no no no no no
TheHacker no no no no no no no no no
VBA32 Trojan.
KeyLogger.
342
no no no no no no no no

Итоговая таблица

Рейтинг продуктов, осуществляющих противодействие программам-шпионам:


NN Продукт Обнаруженные шпионские программы, %
1 PrivacyKeyboard 100,00
2 AntiVir
Avira
CAT-QuickHeal
Kaspersky
TrueWatch
22,22
3 BitDefender
BPS Spyware Remover
DrWeb
Fortinet
McAfee
McAfee Anti-Spyware
NOD32v2
Spy Sweeper
SpySubtrac
VBA32
11,11
4 Ad-aware SE Pro
AntiSpy
Avast
AVG
ClamAV
CounterSpy
eTrust-Iris
eTrust-Vet
F-Prot
Ikarus
Maxion Spy Killer
Microsoft AntiSpyware
Norman
Panda
PestPatrol
Sophos
Spy Cleaner Gold
Spybot Search & Destroy
SpyHunter
SpyRemover
Spyware Be Gone
Spyware Blaster
Spyware Crusher
Spyware Doctor
Spyware Stormer
Symantec
TheHacker
XoftSpy
0,00

Выводы

Результаты тестирования оказались неожиданными даже для проводивших тестирование специалистов. Ведь программы-шпионы, из которых были скомпилированы тестовые шпионы, общедоступны, они свободно распространяются в сети Интернет в виде открытых исходных кодов.

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

Программный продукт производства ООО "Центр информационной безопасности" PrivacyKeyboard занял первое место, что объясняется отсутствием сигнатурных баз в принципе. Реализованный в программе подход позволяет одинаково эффективно защищать как от известных угроз, связанных с перехватом информации пользователей ПК, так и от неизвестных.

На втором месте оказались 5 продуктов - TrueWatch компании Esaya, Inc., AntiVir компании H+BEDV, Avira компании AVIRA (AVIRA Desktop), CAT-QuickHeal компании Cat Computer Services, Kaspersky Anti-Virus Personal Pro компании Kaspersky Lab, которые справились с двумя из девяти шпионов.

Третье место разделили сразу 10 продуктов. Они смогли обнаружить лишь один (!) из девяти шпионов.

Все остальные 28 продуктов оказались бессильны и не смогли обнаружить ни одного (!) из тестовых шпионов.

Наша методика открыта и потому исключает предвзятость. Любые специалисты в состоянии воспроизвести подобное тестирование, самостоятельно скомпилировав собственные тестовые программы из исходного кода, свободно распространяемого в Интернет, и с условиями испытаний, отличающимися от наших.

Источник: http://bezpeka.com/

Безопасность компьютерной сети: Сканер в вопросах и ответах

Обновлено: 13.09.2025

Что такое сканер?

Сканер — это программа, предназначенная для автоматизации процесса поиска слабостей в защите компьютеров, подключенных к сети в соответствии с протоколом TCP/IP. Наиболее совершенные сканеры обращаются к портам TCP/IP удаленного компьютера и в деталях протоколируют отклик, который они получают от этого компьютера. Запустив сканер на своем компьютере, пользователь, скажем, из подмосковной Малаховки, лаже не выходя из дома, может найти бреши в защитных механизмах сервера, расположенного, например, в Лос-Анджелесе.

Каковы системные требования для работы со сканерами?

Большинство сканеров предназначено для работы в среде операционном системы UNIX, хотя к настоящему времени такие программы имеются практически для любой операционной системы. Возможность запустить сканер на конкретном компьютере зависит от операционной системы, под управлением которой работает этот компьютер, и от параметров подключения к Internet. Есть сканеры, которые функционируют только в среде UNIX, а с остальными операционными системами оказываются несовместимыми. Другие отказываются нормально работать на устаревших компьютерах с Windows 3.11 и с медленным (до 14 400 бит/с) доступом к Internet, осуществляемым по коммутируемым линиям. Такие компьютеры будут надоедать сообщениями о переполнении стека, нарушении прав доступа или станут просто зависать.

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

Трудно ли создать сканер?

Написать сканер не очень трудно. Для этого достаточно хорошо знать протоколы TCP/IP, уметь программировать на С или Perl и на языке сценариев, а также разбираться в программном обеспечении сокетов. Но и в этом случае не следует ожидать, что созданный вами сканер принесет большую прибыль, поскольку в настоящее время предложение на рынке сканеров значительно превышает спрос на них. Поэтому наибольшая отдача от усилий, вложенных в написание сканера, будет скорее моральной (от осознания хорошо выполненной работы), чем материальной.

Что не по силам даже самому совершенному сканеру?

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

Насколько легальны сканеры?

Обычно сканеры создаются и используются специалистами в области сетевой безопасности. Как правило, они распространяются через сеть Internet. чтобы с их помощью системные администраторы могли проверять компьютерные сети на предмет наличия в них изъянов. Поэтому обладание сканерами, равно как и их использование на практике, вполне законно. Однако рядовые пользователи, не являющиеся системными администраторами. должны быть готовы к тому, что, если они будут применять сканеры для обследования чужих сетей, то могут встретить яростное сопротивление со стороны администраторов этих сетей. Более того, некоторые сканеры в процессе поиска брешей в защите компьютерных сетей предпринимают такие действия, которые по закону могут квалифицироваться как несанкционированный доступ к компьютерной информации, или как создание, использование и распространение вредоносных программ, или как нарушение правил эксплуатации компьютеров, компьютерных систем и сетей. И если следствием этих деяний стало уничтожение, блокирование, модификация или копирование информации, хранящейся в электронном виде, то виновные в них лица в соответствии с российским законодательством подлежат уголовному преследованию. А значит, прежде чем начать пользоваться первым попавшимся под руку бесплатным сканером для UNIX-платформ, стоит убедиться, а не копирует ли случайно этот сканер заодно и какие-нибудь файлы с диска тестируемой им хост-машины (например, файл password из каталога /ETC).

В чем различие между сканерами и сетевыми утилитами?

Часто к сканерам ошибочно относят утилиты типа host, rusers, finger. Traceroute, Showmount. Связано это с тем, что, как и сканеры, данные утилиты позволяют собирать полезную статистическую информацию о сетевых службах на удаленном компьютере. Эту информацию можно затем проанализировать на предмет выявления ошибок в их конфигурации.

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

Упомянутые выше сетевые утилиты можно встретить в любой операционной системе семейства UNIX. Однако предоставляемые ими возможности для сбора данных об удаленной хост-машине интересуют не только пользователей UNIX. Поэтому неудивительно, что многие из jthx утилит были перенесены в другие операционные системы.

Для Windows 95/98 имеются программные пакеты NetScan Tools (http://www.eskimo.com/~nwps/index.html). Network Toolbox (http://www.jriver. com/netbox.html) и TCP/IP Surveyor (http://www.rocketdownload.com/details/inte/wssrv32nsrc.htm), которые реализуют выполнение сетевых утилит host, rusers, finger, Traceroute, ping, WHOIS. Последний из упомянутых пакетов не только осуществляет сбор информации о сети и подключенных к ней компьютерах, но и представляет собранную таким образом информацию в виде графа, вершинами которого служат найденные в сети маршрутизаторы, серверы и рабочие станции.

Пользователям персональных компьютеров типа Macintosh можно посоветовать обратить внимание на программные пакеты МасТСР Watcher (http://waldo.wi.mit.edu/WWW/tools/util/Mac/MacTCP_Watchei), Querylt! (http://tucows.online.ru/mac/adnload/dlqueryitinac.html) и What Route (http://homepages.ihug.co.nz/~bryanc).

Источник: http://www.computerbooks.ru/books/Security/Book-Protection-to-Information/4/Index2.htm

Сокрытие PHP

Обновлено: 13.09.2025

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

Несколько несложных методик могут помочь вам скрыть PHP, что усложняет работу потенциального взломщика, который пытается найти брешь в вашей системе. Установив опцию expose_php = off в конфигурационном файле php.ini, вы уменьшите количество доступной хакеру информации.

Еще одна методика заключается в настройке веб-сервера таким образом, чтобы он обрабатывал файлы с различными расширениями как PHP-скрипты. Это можно указать как в .htaccess файлах, так и конфигурационном файле Apache. В таком случае вы сможете использовать при написании кода нестандартные расширения:

Пример 32-1. Маскировка PHP под другие языки программирования
# Теперь PHP-скрипты могут иметь те же расширения, что и другие языки программирования
AddType application/x-httpd-php .asp .py .pl

Или скрыть его совсем:

Пример 32-2. Использование неизвестных расширений для PHP-скриптов
# Теперь PHP-скрипты могут иметь неизвестные типы файлов
AddType application/x-httpd-php .bop .foo .133t

Также можно спрятать его под видом HTML-кода, что приведет к потере производительности, так как все HTML файлы будут обрабатываться как PHP-код:

Пример 32-3. Маскировка PHP-кода под html-файлы
# Теперь PHP-скртпы могут выглядеть как обыкновенный HTML
AddType application/x-httpd-php .htm .html

Чтобы достичь желаемого эффекта, вы должны переименовать все ваши скрипты в соответствии с выбранным вами расширением. Описанное в этом разделе документации повышение безопасности через сокрытие PHP имеет мало недостатков при небольших затратах.

источник: http://php.ru/manual/security.hiding.html

Защита хранилища базы данных

Обновлено: 13.09.2025

SSL/SSH защищает данные, которыми обмениваются клиент и сервер, но не защищают сами данные, хранимые в базе данных. SSL - протокол шифрования на уровне сеанса передачи данных.

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

Наиболее простое решение этой проблемы - установить вначале обыкновенный программный пакет для шифрования данных, а затем использовать его в ваших скриптах. PHP, в таком случае, может помочь вам в работе с такими расширениями как Mcrypt и Mhash, реализующими различные алгоритмы криптования. При таком подходе скрипт вначале шифрует сохраняемые данные, а затем дешифрует их при запросе. Ниже приведены примеры того, как работает шифрование данных в PHP-скриптах.

В случае работы со скрытыми служебными данными их нешифрованное представление не требуется (т.е. не отображается), и, как следствие, можно использовать хеширование. Хорошо известный пример хэширования - хранение MD5-хеша от пароля в БД, вместо хранения оригинального значения. Более детальная информация доступна в описании функций crypt() and md5().

Использование хешированных паролей
<?php
// сохранение хешированного пароля
$query  = sprintf("INSERT INTO users(name,pwd) VALUES('%s','%s');",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

// проверка введенного пользователем логина и пароля на корректность
$query = sprintf("SELECT 1 FROM users WHERE name='%s' AND pwd='%s';",
            addslashes($username), md5($password));
$result = pg_exec($connection, $query);

if (pg_numrows($result) > 0) {
    echo "Welcome, $username!";
}
else {
    echo "Authentication failed for $username.";
}
?>

источник: http://php.ru/manual/security.database.storage.html

Настройка Squid

Обновлено: 13.09.2025

Автор: erasha@bsdportal.ru

Данная статья описывает настройку прокси сервера SQUID версии 2.5.14 с использованием аудентификации по mac адресу с ограничением скорости закачки с помощью пулов задержки, анализа статистики лога с помощью sarg-2.2. А также в кратце описан процесс поднятия WWW сервера на основе apache-1.3.36 для удобства доступа до статистики полученной sarg. Для тех, кто торопиться, может помочь статья "Быстрая настройка Squid". А тех, кто считает, что все равно с быстрой настройки сюда же и вернуться, прошу читать дальше.

Настройка сервера FreeBSD с поддержкой NAT

Для начала надо пересобрать ядро с поддержкой DIVERT для NAT и ipfw.

Добавляем вот это в конфигурационный файл ядра:

options         IPFIREWALL
options         IPFIREWALL_VERBOSE
options         IPFIREWALL_VERBOSE_LIMIT=100
options         IPFIREWALL_FORWARD
options         IPFIREWALL_FORWARD_EXTENDED
options         IPDIVERT

пересобираем ядро и устанавливаем его. Затем в файл /etc/rc.conf добавляем

firewall_enable="YES"
firewall_script="/etc/rc.ipfw1"
natd_enable="YES"
natd_interface="fxp0"

первая строка включает firewall ipfw, вторая указывает какой скрипт указания правил использовать при загрузке, третья включает NAT, чертвертая определяет на каком внешнем сетевом интерфейсе будет работать NAT. В моем случае внешний интерфейс fxp0.

потом создаем файл rc.ipfw1 и ставим ему безопасные права

#cd /etc
#touch rc.ipfw1
#chmod 600 rc.ipfw1

с таким содержанием

#!/bin/sh
 fwcmd="/sbin/ipfw"
 ${fwcmd} -f flush 
# VAR
 if_inet="fxp0"              # внешний сетевой интерфейс
 ip_inet="aaa.aaa.aaa.aaa"   # ip внешнего сетового интерфейса
 net="bbb.bbb.b.b/24"        # ваша подсетка
# Local
 ${fwcmd} add allow all from any to any via lo0
 ${fwcmd} add deny all from any to 127.0.0.0/8
 ${fwcmd} add deny all from 127.0.0.0/8 to any
# тут разрешаю SSH чтоб безбоязненно можно было удаленно
# править правила которые идут дальше
 ${fwcmd} add allow tcp from any to any ssh
 ${fwcmd} add allow tcp from any ssh to any
# anti spoofing #1
 ${fwcmd} add deny all from any to 10.0.0.0/8 via ${if_inet}
 ${fwcmd} add deny all from any to 172.16.0.0/12 via ${if_inet}
 ${fwcmd} add deny all from any to 192.168.0.0/16 via ${if_inet}
 ${fwcmd} add deny all from any to 0.0.0.0/8 via ${if_inet}
 ${fwcmd} add deny all from any to 169.254.0.0/16 via ${if_inet}
 ${fwcmd} add deny all from any to 192.0.2.0/24 via ${if_inet}
 ${fwcmd} add deny all from any to 224.0.0.0/4 via ${if_inet}
 ${fwcmd} add deny all from any to 240.0.0.0/4 via ${if_inet}
# NAT
 ${fwcmd} add divert 8668 ip from ${net} to any out via ${if_inet}
 ${fwcmd} add divert 8668 ip from any to ${ip_inet} in via ${if_inet}
# anti spoofing #2
 ${fwcmd} add deny all from 10.0.0.0/8 to any via ${if_inet}
 ${fwcmd} add deny all from 172.16.0.0/12 to any via ${if_inet}
 ${fwcmd} add deny all from 192.168.0.0/16 to any via ${if_inet}
 ${fwcmd} add deny all from 0.0.0.0/8 to any via ${if_inet}
 ${fwcmd} add deny all from 169.254.0.0/16 to any via ${if_inet}
 ${fwcmd} add deny all from 192.0.2.0/24 to any via ${if_inet}
 ${fwcmd} add deny all from 224.0.0.0/4 to any via ${if_inet}
 ${fwcmd} add deny all from 240.0.0.0/4 to any via ${if_inet}
# все остальное разрешить (желательно только то что нужно =) )
 ${fwcmd} add allow all from any to any

сразу отмечу для создания правил безопастности более индивидуально посетите хороший сайт http://ipfw.ism.kiev.ua/ посвященный настройки firewall ipfw и эти правила для aaa.aaa.aaa.aaa реального IP

Изменения вносить лучше в /etc/rc.conf и создание /etc/rc.ipfw1 до перезагрузки после установки пересобранного ядра.

Собственно настройка Squid

Устанавливаем Squid командами:

#cd /usr/ports/www/squid
#make config

или так

cd /usr/ports/www/squid && make config

ставим галочки напротив

SQUID_DELAY_POOLS
SQUID_ARP_ACL
SQUID_RCNG

к уже установленным. Первая строка включает поддержку пулов задержки для ограничения скорости, вторая включает поддержку использования в ACL МАС адресов, третья указавает на создание загрузочного скрипта в rc.d . Нажимаем ОК. Потом делаем

#make install clean

Затем идем в /usr/local/etc/squid создаем файл squid.conf с безопасными правами

#touch squid.conf
#chmod 600 squid.conf

или можно, как вариант, скопировать еще не настроенный конфигурационный файл Squid по умолчанию и его редактировать.

#cp ./squid.conf.default ./squid.conf

У меня squid.conf примерно имеет такое содержание:

http_port 3128
icp_port 3130
hierarchy_stoplist cgi-bin ?

acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY

cache_mem 32 MB

maximum_object_size 2000 KB
maximum_object_size_in_memory 1000 KB

cache_dir ufs /usr/local/squid/cache 2000 16 256

auth_param basic children 5
auth_param basic realm Squid proxy-caching web server
auth_param basic credentialsttl 2 hours
auth_param basic casesensitive off

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localnet src 192.168.0.0/24
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Icq_port port 5190          # icq
acl Irc_port port 6667          # irc
acl MSN_port port 1863          # msn messager
acl CONNECT method CONNECT

acl erasha arp XX:XX:XX:XX:XX:XX
acl user1 arp XX:XX:XX:XX:XX:XX
acl user2 arp XX:XX:XX:XX:XX:XX
acl user3 arp XX:XX:XX:XX:XX:XX

acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .rm$ 
.raw$ .wav$ .mov$ .ogg$ .exe$ .com$
acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"

http_access allow erasha

http_access deny stop_files
http_access deny StopWWW

http_access allow user1
http_access allow user2
http_access allow user3

http_access allow CONNECT Icq_port
http_access allow localnet Icq_port
http_access allow CONNECT Irc_port
http_access allow localnet Irc_port
http_access allow CONNECT MSN_port
http_access allow localnet MSN_port
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

http_reply_access allow all

icp_access allow all

visible_hostname proxy

icon_directory /usr/local/etc/squid/icons

error_directory /usr/local/etc/squid/errors/Russian-koi8-r

delay_pools 3

delay_class 1 2
delay_parameters 1 6000/2000 3000/2000
delay_access 1 allow user1
delay_access 1 deny all

delay_class 2 2
delay_parameters 2 15000/3000 15000/3000
delay_access 2 allow user2
delay_access 2 deny all

delay_class 3 2
delay_parameters 3 60000/3000 60000/3000
delay_access 3 allow user3
delay_access 3 deny all

coredump_dir /usr/local/squid/cache

Файл настроек Squid изнутри

http_port 3128

указываем порт для запросов клиентов, можно задать 8080.

icp_port 3130

указываем номер порта Internet Cache Protocol (ICP) для открытия возможности использования кешей соседних squid прокси.

hierarchy_stoplist cgi-bin ?

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

acl QUERY urlpath_regex cgi-bin ?
no_cache deny QUERY

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

cache_mem 32 MB

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

maximum_object_size 2000 KB

максимальный размер объектов, которые будут сохранены на диск. По умолчанию стоит 4096 килобайт.

maximum_object_size_in_memory 1000 KB

максимальный размер объектов, которые будут сохранены в кэше. По умолчанию стоит 4096 килобайт.

cache_dir ufs /usr/local/squid/cache 2000 16 256

указывает сквиду, где сохранять кешируемые файлы. Указывает отдать под кеш 2000 мегабайт и создать 16 и 256 соответственно каталогов 1го и 2го уровня. Про каталоги сами все поймете, когда загляните в место, где у сквида кэш.

auth_param basic children 5

количество процессов авторизации запросов.

auth_param basic realm Squid proxy-caching web server

указываем надпись, которая будет выводиться с запросом авторизации.

auth_param basic credentialsttl 2 hours

указываем время хранения авторизации, в данном случае 2 часа.

auth_param basic casesensitive off

указываем, что регистр введенных данных роли не играет.

refresh_pattern ^ftp:           1440    20%     10080
refresh_pattern ^gopher:        1440    0%      1440
refresh_pattern .               0       20%     4320

в этих трех строках мы указываем сколько времени в минутах объект в кеше считается свежим и какой процент объектов оставлять с последнего обновления.

acl all src 0.0.0.0/0.0.0.0
acl manager proto cache_object
acl localnet src 192.168.0.0/24
acl localhost src 127.0.0.1/255.255.255.255
acl to_localhost dst 127.0.0.0/8
acl SSL_ports port 443 563
acl Safe_ports port 80          # http
acl Safe_ports port 21          # ftp
acl Safe_ports port 443 563     # https, snews
acl Safe_ports port 70          # gopher
acl Safe_ports port 210         # wais
acl Safe_ports port 1025-65535  # unregistered ports
acl Safe_ports port 280         # http-mgmt
acl Safe_ports port 488         # gss-http
acl Safe_ports port 591         # filemaker
acl Safe_ports port 777         # multiling http
acl Icq_port port 5190          # icq
acl Irc_port port 6667          # irc
acl MSN_port port 1863          # msn messager
acl CONNECT method CONNECT

Здесь с помощью acl мы задаем localhost, локальную сеть, порты на которые мы разрешим выходить программам через наш прокси. Также указываем manager протокол cache_object, используемого для управления и мониторинга кеша.

acl CONNECT method CONNECT

включает поддержку проброски соединения с помощью команды протокола CONNECT.

acl erasha arp XX:XX:XX:XX:XX:XX      
acl user1 arp XX:XX:XX:XX:XX:XX
acl user2 arp XX:XX:XX:XX:XX:XX                
acl user3 arp XX:XX:XX:XX:XX:XX

с помощью acl...arp указываем МАС адреса сетевых карт пользователей, которым мы в дальнейшем разрешать/запрещать доступ к интернету. вместо XX:XX:XX:XX:XX:XX указываем МАС адрес сетевой карты компьютера пользователя. Скрипт для получения МАС адреса будет приведен в приложении.

acl stop_files url_regex -i .mp3$ .vqf$ .rpm$ .avi$ .mpeg$ .wav$ 
.mov$ .ogg$ .exe$ .com$

здесь мы указываем расширения файлов которые мы запретим для закачки.

acl StopWWW dstdomain "/usr/local/etc/squid/stopWWW.acl"

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

.zaycev.net
.rmp.ru
.berkova.net
.sexmovies.ru
.mp3real.ru
.erovideo.ru
.muzudar.ru

это как бы подборка сайтов sex содержания и с mp3, т.к. в stop_files мы не закрыли архивы, а на некоторых сайтах лежат mp3 с расширением например rar, и пользователи могут закачивать музыку потом меняя расширение у файлов, поэтому я решил запрещать сами сайты.

http_access allow erasha
http_access deny stop_files
http_access allow user1
http_access allow user2
http_access allow user3

Здесь мы разрешаем с помошь http_access allow доступ до интернета, а используя http_access deny запрещаем выкачивать stop_files с расширениями указанными выше. Обратите внимание что разрешение доступа до интернета для пользователя erasha стоит выше запрета на закачку stop_files. Это сделано для того чтобы на пользователя erasha не действовал запрет не закачку stop_files, а на остальных пользователей которым разрешен доступ до интернета указанным после запрета на stop_files этот запрет действует.

http_access allow CONNECT Icq_port
http_access allow localnet Icq_port
http_access allow CONNECT Irc_port
http_access allow localnet Irc_port
http_access allow CONNECT MSN_port
http_access allow localnet MSN_port
http_access allow manager localhost
http_access deny manager
http_access deny !Safe_ports
http_access deny CONNECT !SSL_ports
http_access deny all

В этих строках разрешаем использования метода CONNECT для локальной сети на Icq_port,Irc_port,MSN_port, разрешаем доступ maneger доступ до localhost. Запрещаем использование всех портов кроме Safe_ports, запрещаем метод CONNECT на все порты кроме SSL_ports, и в конце все запрещаем. Знак “!” используется как НЕ, т.е. если дословно http_access deny !Safe_ports запретить http доступ НЕ Safe_ports.

http_reply_access allow all

Разрешаем ответы на все запросы.

icp_access allow all

Разрешаем доступ до icp всем.

visible_hostname proxy

это имя будет упоминаться в сообщениях об ошибках.

icon_directory /usr/local/etc/squid/icons

Указываем католог с иконками

error_directory /usr/local/etc/squid/errors/Russian-koi8-r

Указываем католог с шаблонами страниц ошибок на нужном языке и в нужной кодировке, в нашем случае язык русский в Koi8-r кодировке

delay_pools 3

delay_class 1 2
delay_parameters 1 6000/2000 3000/2000
delay_access 1 allow user1
delay_access 1 deny all

delay_class 2 2
delay_parameters 2 15000/3000 15000/3000
delay_access 2 allow user2
delay_access 2 deny all

delay_class 3 2
delay_parameters 3 60000/3000 60000/3000
delay_access 3 allow user3
delay_access 3 deny all

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

delay_pools 3

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

delay_class 1 2

здесь указываем номер пула и его класс, т.е. пул номер один второго класса.

delay_parameters 1 6000/2000 3000/2000

здесь задаем параметры пула. Указаываем номер пула которому устанавливаем параметры, у нас №1, далее идет указание ограничения по скорости этого пула. 6000/2000 указывает что после закачки более 2000 байт установить скорость не выше 6000 байт/с, до 2000 байт закачка происходит без какого либо ограничения по скорости. исходя из того что у нас пул второго класса такое ограничение мы установили на общий поток, далее 3000/2000 указываем что каждому хосту после закачки более 2000 байт установить скорость 3000 байт.

вот как бы шаблон по которому думаю более нагладно разобраться

delay_parameters 3 total_rest/total_max  - 1 класс
delay_parameters 3 total_rest/total_max ind_rest/ind_max  - 2 класс
delay_parameters 3 total_rest/total_max net_rest/net_max ind_rest/ind_max  - 3 класс

где total - на всех net - на подсеть ind - на отдельный адрес rest - скорость (в байт/сек) max - размер трафика при превышении которого устанавливается ограничение по скорости (в байтах)

еще если указать так

delay_parameters А -1/-1

то -1/-1 это указывает на отсутствие каких либо ограничений для пула А.

delay_access 1 allow user1

Разрешаем user1 успользовать пул номер 1.

delay_access 1 deny all

Запрещаем все остальным использовать пул номер 1.

Следующие пулы аналогичны первому по структуре.

coredump_dir /usr/local/squid/cache

Указываем куда сбрасывать core.

И на последок создадим swap директорию для squid

# /usr/local/sbin/squid -z

Добавим SQUID в автозагрузку (в /etc/rc.conf)

squid_enable="YES"

Запустим squid

# /usr/local/sbin/squid -D

Так вроде все с squid разобрались.

Теперь приступим к установке анализатора логов squid-a sarg -2.2

#cd /usr/ports/www/sarg
#make install clean

или так

cd /usr/ports/www/sarg && make install clean

Затем идем в /usr/local/etc/sarg создаем файл sarg.conf с безопастными правилами

#touch sarg.conf
#chmod 600 sarg.conf

или можно как вариант скопировать конфигурационный файл squid по умолчанию и его редактировать

#cp ./sarg.conf.default ./sarg.conf

у меня sarg.conf примерно имеет такое содержание

language Russian_koi8
access_log /usr/local/squid/logs/access.log
graphs yes
graph_days_bytes_bar_color orange
title "МОЯ ОГРАНИЗАЦИЯ"
font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 10px
header_font_size 10px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor blanchedalmond
title_color green
logo_image none
logo_text_color #000000
background_image none
output_dir /usr/local/sarg/squid-reports
resolve_ip yes
#lastlog 0
index yes
overwrite_report no
#output_email erasha@domain.ru
max_elapsed 28800000
charset Koi8-r
show_successful_message yes
show_read_statistics yes
topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT 
USED_TIME MILISEC %TIME TOTAL AVERAGE
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC 
%TIME TOTAL AVERAGE
#show_sarg_info yes
#show_sarg_logo yes

разберем опции.

language Russian_koi8

Указываем язык который будет использоваться в отчётах

access_log /usr/local/squid/logs/access.log

Указываем где будет находиться лог squid который sarg будет анализировать

graphs yes
graph_days_bytes_bar_color orange

Разрешаем формирование графиков

title "МОЯ ОГРАНИЗАЦИЯ"

Указываем загологок отчетов sarg

font_face Tahoma,Verdana,Arial
header_color darkblue
header_bgcolor blanchedalmond
font_size 10px
header_font_size 10px
title_font_size 11px
background_color white
text_color #000000
text_bgcolor blanchedalmond
title_color green
logo_image none
logo_text_color #000000
background_image none

Выше указываются размер,

output_dir /usr/local/sarg/squid-reports

Указываем где будут храниться отчёты

resolve_ip yes

разрешаем чтобы вместо ip компов sarg резолвил имена компов

#lastlog 0

параметр задает количество отчетов хранимых в каталоге, если он указан

index yes

создавать index-ный файл отчетов

overwrite_report no

Перезаписывать отчеты, здесь не перезаписываются а делаются еще один

#output_email erasha@domain.ru

можно при желании указать куда отправлять отчет, я это пока не использую

max_elapsed 28800000
charset Koi8-r

Кодировка надписей графика

show_successful_message yes

Показывать сообщение о удачном завершении анализа

show_read_statistics yes

Показывать статистику чтения

topuser_fields NUM DATE_TIME USERID CONNECT BYTES %BYTES IN-CACHE-OUT 
USED_TIME MILISEC %TIME TOTAL AVERAGE
user_report_fields CONNECT BYTES %BYTES IN-CACHE-OUT USED_TIME MILISEC 
%TIME TOTAL AVERAGE

Здесь указываются поля для статистики

#show_sarg_info yes
#show_sarg_logo yes

Показать инфо по sarg и его лого, я пока отключил.

Так с настройкой анализатора логоф squid закончили.

Настройка веб-сервера для просмотра отчетов

Ставим www сервер для удобного просмотра отчетов sarg. Я выбрал Apache 1.3

#cd /usr/ports/www/apache13
#make install clean

или так

cd /usr/ports/www/apache13 && make install clean

потом делаем символьный линк

# ln - s /usr/local/sarg/squid-reports /usr/local/www

Единственное, в каталоге /usr/local/sarg/squid-reports пока не было сделано ни одного отчета. Я, используя Squid, открыл одну любую страницу, чтобы был хоть какой-то лог, потом запустил Sarg, он, анализируя лог, создавал отчет вместе с каталогами, а потом делал символьный линк и запускал Apache. Можно, конечно, каталоги сделать руками вот так:

#mkdir /usr/local/sarg/squid-reports
#chmod 755 /usr/local/sarg/squid-reports

и надо создать пустой index.html для Apacha

#touch /usr/local/sarg/squid-reports/index.html
#chmod 644 /usr/local/sarg/squid-reports/index.html

Далее идем в /usr/local/etc/apache

открываем на редактирование httpd.conf, идем на 330 строку правим

ServerAdmin you@your.address

например на

ServerAdmin erasha@domain.ru

т.е. указываем адрес куда apache будет отправлять письма со своими проблемами =)

далее на 355 строке указываем где лежат наши отчеты

DocumentRoot "/usr/local/www/squid-reports"

Для запуска при загрузки системы добавляем в /etc/rc.conf

apache_enable="YES"

и запускаем

/usr/local/etc/rc.d/apache.sh start

Так теперь можно проверить работают squid и apache у нас

#sockstat

смотрим на предмет наличия строк

www   httpd  XXX  16  tcp4  *:80    *:*
squid squid  XXX  12  tcp4  *:3128  *:*

Первая показывает что запущен apache, вторая что squid работает.

я пользуюсь маленьким скприптиком для получения mac адреса компа вот с таким содержанием

#!/bin/sh
name=$1
ip=`ping -c1 $name | grep PING | awk '{print $3}' | sed 's/..$//' | sed 's/^(//'`
ot=`arp -an|grep "($ip)"|awk '{print $4}'`
echo $ot

я скриптик назвал mac.sh и пользую так

%mac.sh СетовоеИмяМашины_Или_IP
ХХ:ХХ:ХХ:ХХ:ХХ:ХХ   <-полученный МАС

если кто может предложить другой скрипт, поделитесь со мной, положу его в эту статью.

используя Cron собираю статистику с нарастающим итогом ежедневно и обнуляю итоги в начале каждого месяца

для этого добивил в /etc/crontab следующие строки

0       0       *       *       *       erasha  /usr/local/bin/sudo /usr/local/bin/sarg
15       0       1       *       *       root    /usr/local/sbin/squid -k rotate

первая запускает sarg каждый день каждого месяца в 00:00 для подбивки итогов за период с первого числа месяца по текущий вторая делает ротацию логов squid, т.е. очищает текущий лог с переносом логов в архив. первую строку также можно сделать в таком виде

0       0       *       *       *       root  /usr/local/bin/sarg

Ну вроде все. Выражаю благодарность s1lv3r за внесенные исправления и подсказки =). Также Grayich за указание на мои недочеты и ошибки. =).

Да, еще, natd поднимаю для того что бы из вне нельзя было поднимать соединения с внутренней сеткой. Пробуйте, тестируйте, критикуйте и пишите мне на мыло erasha@bsdportal.ru или стучитесь в аську 144897928.

Автор: erasha@bsdportal.ru


Настройка VPN-сервера FreeBSD с ведением статистики, шейпингом и фильтрацией

Обновлено: 13.09.2025

Для начала: данная статья не претендует на роль полноценного руководства или панацеи на все случаи жизни, посему все вопросы и пожелания по исправлению и дополнению статьи шлем на <shulik at ua.fm>.

Итак - приступим. В работе нам понадобится: FreeBSD 6.0-RELEASE (можно и другую :) ), mpd, freeradius, netams, mysql, поддержка в ядре или в виде модулей IPFW, IPDIVERT, PF, NETGRAPH. Рекомендуется включить поддержку этих компонентов в ядро. Поэтому открываем конфигурационный файл вашего ядра и добавляем, если не хватает, туда следующее:

options 	NETGRAPH	 # собственно поддержка netgraph
options 	NETGRAPH_PPP	 # поддержка PPP в netgraph
options 	NETGRAPH_PPTPGRE # поддержка gre-туннелирования

options 	IPFIREWALL			# включаем поддержку ipfw
options 	IPFIREWALL_DEFAULT_TO_ACCEPT	# политика по умолчанию - ACCEPT
options 	IPDIVERT		# включаем divert-сокеты (понадобится для статистики)

Что касается pf - то я оставил его в виде модуля. Если хотите включить в ядро - /sys/conf/NOTES вам поможет.

Теперь установим такие пакеты, как freeradius, mpd, mysql и netams. Коротко:

cd /usr/ports/net-mgmt/netams
make clean
make
make install
make clean

При сборке freeradius обязательно указываем поддержку mysql.

cd /usr/ports/databases/mysql50-server
make clean
make
make install
make clean
 
cd /usr/ports/net/freeradius
make clean
make
make install
make clean
 
cd /usr/ports/net/mpd
make clean
make
make install
make clean

Теперь необходимо отконфигурировать установленный софт. MySQL конфигурим по вкусу - задавая пароли рута и прослушку портов или ее отсутствие. Затем нужно настроить freeradius. Для начала идем в /usr/local/etc/raddb/ и переименовываем все файлики из ‘*.samples’ в ‘*’. Открываем radiusd.conf. В нем правим следующие настройки:

log_stripped_names=yes # Логируем атрибут User-Name если он найден в запросе
log_auth=yes # Логируем запросы аутентификации
log_auth_badpass=yes # Если пароль неверен - пишем его в Лог
log_auth_goodpass=no # верные пароли незачем писать в лог

Проверяем чтобы была раскоментарена строчка:

$INCLUDE ${confdir}/sql.conf

В секции authorize комментарим

files

и удаляем комментарий с

sql

В секции accounting также снимаем комментарий с

sql

Далее смотрим в sql.conf и правим:

driver="rlm_sql_mysql"
server="localhost"
login="login_k_mysql"
password="pass_k_mysql"

Осталось поправить clients.conf, задав для клиента 127.0.0.1 secret:

secret=MyOwnSecret

Кроме того нужно создать в mysql базу radius’a следующего содержания: таблица со словарями:

CREATE TABLE `dictionary` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `Type` varchar(30) DEFAULT NULL,
  `Attribute` varchar(64) DEFAULT NULL,
  `Value` varchar(64) DEFAULT NULL,
  `Format` varchar(20) DEFAULT NULL,
  `Vendor` varchar(32) DEFAULT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица с клиентами самого радиуса (вместо нее пользуем файлы)

CREATE TABLE `nas` (
  `id` int(10) NOT NULL AUTO_INCREMENT,
  `nasname` varchar(128) DEFAULT NULL,
  `shortname` varchar(32) DEFAULT NULL,
  `ipaddr` varchar(15) DEFAULT NULL,
  `type` varchar(30) DEFAULT NULL,
  `ports` int(5) DEFAULT NULL,
  `secret` varchar(60) DEFAULT NULL,
  `community` varchar(50) DEFAULT NULL,
  `snmp` varchar(10) DEFAULT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица для клиентских сессий:

CREATE TABLE `radacct` (
  `RadAcctId` bigint(21) NOT NULL AUTO_INCREMENT,
  `AcctSessionId` varchar(32) NOT NULL DEFAULT '',
  `AcctUniqueId` varchar(32) NOT NULL DEFAULT '',
  `UserName` varchar(64) NOT NULL DEFAULT '',
  `Realm` varchar(64) DEFAULT '',
  `NASIPAddress` varchar(15) NOT NULL DEFAULT '',
  `NASPortId` int(12) DEFAULT NULL,
  `NASPortType` varchar(32) DEFAULT NULL,
  `AcctStartTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `AcctStopTime` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
  `AcctSessionTime` int(12) DEFAULT NULL,
  `AcctAuthentic` varchar(32) DEFAULT NULL,
  `ConnectInfo_start` varchar(32) DEFAULT NULL,
  `ConnectInfo_stop` varchar(32) DEFAULT NULL,
  `AcctInputOctets` int(12) DEFAULT NULL,
  `AcctOutputOctets` int(12) DEFAULT NULL,
  `CalledStationId` varchar(10) NOT NULL DEFAULT '',
  `CallingStationId` varchar(10) NOT NULL DEFAULT '',
  `AcctTerminateCause` varchar(32) NOT NULL DEFAULT '',
  `ServiceType` varchar(32) DEFAULT NULL,
  `FramedProtocol` varchar(32) DEFAULT NULL,
  `FramedIPAddress` varchar(15) NOT NULL DEFAULT '',
  `AcctStartDelay` int(12) DEFAULT NULL,
  `AcctStopDelay` int(12) DEFAULT NULL,
  PRIMARY KEY  (`RadAcctId`),
  KEY `UserName` (`UserName`),
  KEY `FramedIPAddress` (`FramedIPAddress`),
  KEY `AcctSessionId` (`AcctSessionId`),
  KEY `AcctUniqueId` (`AcctUniqueId`),
  KEY `AcctStartTime` (`AcctStartTime`),
  KEY `AcctStopTime` (`AcctStopTime`),
  KEY `NASIPAddress` (`NASIPAddress`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица для проверяемых параметров:

CREATE TABLE `radcheck` (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `UserName` varchar(64) NOT NULL DEFAULT '',
  `Attribute` varchar(32) NOT NULL DEFAULT '',
  `op` char(2) NOT NULL DEFAULT '',
  `Value` varchar(253) NOT NULL DEFAULT '',
  PRIMARY KEY  (`id`),
  KEY `UserName` (`UserName`(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица для проверяемых параметров групп:

CREATE TABLE `radgroupcheck` (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `GroupName` varchar(64) NOT NULL DEFAULT '',
  `Attribute` varchar(32) NOT NULL DEFAULT '',
  `op` char(2) NOT NULL DEFAULT '',
  `Value` varchar(253) NOT NULL DEFAULT '',
  PRIMARY KEY  (`id`),
  KEY `GroupName` (`GroupName`(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица для возвращаемых параметров групп:

CREATE TABLE `radgroupreply` (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `GroupName` varchar(64) NOT NULL DEFAULT '',
  `Attribute` varchar(32) NOT NULL DEFAULT '',
  `op` char(2) NOT NULL DEFAULT '',
  `Value` varchar(253) NOT NULL DEFAULT '',
  `prio` int(10) UNSIGNED NOT NULL DEFAULT '0',
  PRIMARY KEY  (`id`),
  KEY `GroupName` (`GroupName`(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица для возвращаемых параметров:

CREATE TABLE `radreply` (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `UserName` varchar(64) NOT NULL DEFAULT '',
  `Attribute` varchar(32) NOT NULL DEFAULT '',
  `op` char(2) NOT NULL DEFAULT '',
  `Value` varchar(253) NOT NULL DEFAULT '',
  PRIMARY KEY  (`id`),
  KEY `UserName` (`UserName`(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

таблица соответствия пользователей и групп:

CREATE TABLE `usergroup` (
  `id` int(11) UNSIGNED NOT NULL AUTO_INCREMENT,
  `UserName` varchar(64) NOT NULL DEFAULT '',
  `GroupName` varchar(64) NOT NULL DEFAULT '',
  PRIMARY KEY  (`id`),
  KEY `UserName` (`UserName`(32))
) ENGINE=MyISAM DEFAULT CHARSET=latin1;

И сразу же заведем тестового пользователя:

INSERT INTO `radcheck` VALUES (1,'user_test','Password','==','qwerty');
INSERT INTO `radreply` VALUES (1,'user_test','Framed-IP-Address',':=','192.168.1.3');
INSERT INTO `radreply` VALUES (1,'user_test','Framed-IP-Netmask',':=','255.255.255.255');
INSERT INTO `radreply` VALUES (1,'user_test','Framed-Protocol',':=','PPP');

По сути ААА готова к использованию. Добавляем в /etc/rc.conf строки:

radiusd_enable="YES"
mysql_enable="YES"

и стартуем скриптами из /usr/local/etc/rc.d/

Проверим радиус на работоспособность:

radtest user_test qwerty 127.0.0.1 0 MyOwnSecret

В результате должны получить что-то вида:

Sending Access-Request of id 189 to 127.0.0.1:1812
        User-Name = "user_test"
        User-Password = "qwerty"
        NAS-IP-Address = localhost
        NAS-Port = 0
rad_recv: Access-Accept packet from host 127.0.0.1:1812, id=189, length=38
        Framed-IP-Address = 192.168.1.3
        Framed-IP-Netmask = 255.255.255.255
        Framed-Protocol = PPP

Это говорит о том, что радиус работает верно. Если нет - смотрим что он кричит в /var/log/radiusd.log

Пришло время настроить mpd. Смело идем в /usr/local/etc/mpd/ и убираем из имен конфигов samples. Открываем mpd.conf и пишем туда:

default:
	load pptp0

pptp0:
	new -i ng0 pptp0 pptp0
	load pptp_all

pptp_all:
	set ipcp ranges 192.168.1.1/32 10.0.0.0/24

	set iface disable on-demand
	set bundle disable multilink
	set link yes acfcomp protocomp
	set link no pap chap
	set link enable chap
	set link keep-alive 60 180

	set ipcp yes vjcomp
	set ipcp dns 192.168.1.1 # или любой другой доступный DNS
#    set bundle enable compression # обязательно проверяем, чтобы это было выключено.
#    иначе будем долго искать, почему пинги идут, но ничего не грузится

	set pptp enable incoming
	set pptp disable originate

# если нужно - задаем ip для открытия 1723 порта. по умолчанию - все
#    set pptp self 172.16.101.2 
	set radius timeout 10
	set radius config /usr/local/etc/mpd/radius.conf
	set radius retries 3
	set bundle enable radius-acct
	set bundle enable radius-auth
	set ipcp yes radius-ip

Нужно заметить, что для примера создан всего лишь один pptp линк. В реале их нужно создать столько, сколько вам необходимо одновременных pptp-туннелей. Создаем mpd.links:

pptp0:
	set link type pptp

И radius.conf:

acct 127.0.0.1 MyOwnSecret
auth 127.0.0.1 MyOwnSecret

Добавляем в rc.conf строку:

mpd_enable="YES"

и запускаем mpd.

Теперь нужно его проверить. Чтобы проще было вести отладку - добавим в /etc/syslog.conf:

!mpd
*.*		/var/log/mpd.log

И передергиваем syslog. Идем за клиентскую машинку и проверяем подключение по впн.

Если все прошло удачно - идем дальше, иначе ищем ошибку.

Далее нужно клиентов из внутренней сети с внутренними ip-адресами выпустить в инет. Для этого у нас есть несколько путей: воспользоваться связками ipfw+natd или ipfw+ng_nat, но мы пойдем по пути использования pf.

В /etc/rc.conf добавляем:

pf_enable="YES"
pf_rules="/etc/pf.rules"
pf_flags=""
pflog_enable="YES"
pflog_logfile="/var/log/pflog"
pflog_flags=""

Файлик pf.rules:

ext_ip="19х.1хх.хх.хх" # внешний ip-адрес сервера
int_if="rl1" # интерфейс смотрящий в локалку
int_net_vpn="xx.yy.zz.ff" # внутренняя VPN-сеть
local_net="..." # внутрення локалка
int_ip="..." # внутренний ип в локалке

nat on rl0 from $int_net_vpn to any -> $ext_ip # собсно NAT

pass quick on lo0 all # разрешаем все на lo0

pass quick from $ext_ip to any # Разрешаем траф
pass quick from any to $ext_ip # на внешнем ip

pass quick from $int_net_vpn to any # разрешаем любой траф
pass quick from any to $int_net_vpn # по впн-сети

# блокируем платные сервисы из локалки
block in quick on $int_if proto { tcp udp } from $local_net to $int_ip port { 25 110 143 3128 3306 } 
pass in quick on $int_if from $local_net to $int_ip

block in all # все осальное блокируем по умолчанию

Все. Теперь трафик должен ходить в инет. Осталось организовать логирование трафика через netams. Приведу лишь коротки отрывки конфигов - так как на сайте netams.com есть хорошая документация на русском языке с примерами настройки netams. В rc.conf привычно добавляем:

firewall_enable="YES"
firewall_script="/etc/ipfw.sh"

ipfw.sh:

#!/bin/sh
 
fwcmd="/sbin/ipfw"
 
${fwcmd} -f flush
${fwcmd} -f flush pipe
${fwcmd} -f flush queue
 
${fwcmd} pipe 1 config bw 512Kbit/s queue 50 # для обжимки трафа пользуемся pipe'ами
${fwcmd} pipe 2 config bw 512Kbit/s queue 50
 
${fwcmd} add pipe 1 ip from <vpn_net> to any in # вгоняем траф в пайпы
${fwcmd} add pipe 2 ip from any to <vpn_net> out
 
${fwcmd} add tee 100 ip from <vpn_net> to any in # копируем траф в divert-socket для netams.
${fwcmd} add tee 100 ip from any to <vpn_net> out

В netams для нас важны разделы:

service data-source 1
type ip-traffic
source tee 100

service storage 1
type mysql
user mysql_login # с правами создания БД, хотя бы на момент первого запуска
password mysql_pass
host localhost

service monitor 1
monitor to storage 1
monitor unit VPN

unit net name VPN ip <vpn-net> acct-policy ip

Теперь видимо все. Жду отзывы и пожелания на указанное выше мыло.

Copyright by Alexander Shulikov <shulik at ua.fm>


Хакеры: Приёмы взлома.

Обновлено: 13.09.2025

Согласно недавнему опросу, проведённому в США, обычные граждане боятся хакеров больше, чем обычных преступников. Интересно, что высокие технологии входят в нашу жизнь очень быстро и становятся её неотъемлемой частью. Каждый день наполнен множеством взломов, которые, как правило, не бывают зарегистрированы. Атакуют всех - от обычных пользователей до крупных правительственных организаций. Цели бывают разные, машины обычных пользователей, как правило, становятся «зомби», с которых проводятся атаки или рассылается спам, а у организаций похищается информация.


Введение в Основные моменты взлома и защиты сервера.

Обновлено: 13.09.2025

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


Источники бесперебойного питания. Общие понятия и термины

Обновлено: 13.09.2025

Система бесперебойного питания (СБП)
Автоматическое устройство, обеспечивающее нормальное питание нагрузки при полном обесточивании внешней электросети в результате аварии или недопустимо высоком отклонении параметров сетевого напряжения от номинальных значений (см. "Неполадки в сети"). Различают два основных типа СБП: источники бесперебойного питания и генераторные установки.




Принимаю заказы на настройку серверов, mikrotik и других роутеров, точек доступа, nginx и т.п. В пределах Санкт-Петербурга возможен выезд к заказчику. См. контакты.


Последние комментарии