Скачать презентацию
Идет загрузка презентации. Пожалуйста, подождите
Презентация была опубликована 11 лет назад пользователемashmanov.com
1 WEB-ФИЛЬТР СЕРВЕРНАЯ ТЕХНОЛОГИЯ ФИЛЬТРАЦИИ WEB-РЕСУРСОВ
2 ПОЧЕМУ WEB-ФИЛЬТР? ИСТОРИЯ ВОПРОСА Задача - защитить детей и подростков от нежелательной и опасной информации, размещенной в Интернете (порнография, насилие, наркотики, нежелательные знакомства и т.п.)
3 ЧТО САМОЕ ВАЖНОЕ В WEB-ФИЛЬТРЕ Где фильтруется серверное решение клиентское решение Как фильтруется определение тематической категории ресурса анализ содержания в момент обращения предварительно составленные списки URL поиск ключевых слов Объем обработки производительность масштабируемость
4 ТЕХНОЛОГИИ КАТЕГОРИЗАЦИИ Критерии сравненияАнализ содержанияСписки URL Количество категоризированных ресурсов Анализируются все страницы, запрашиваемые пользователями Содержат лишь небольшую часть интернет-ресурсов Изменение содержания сайтов Не имеет значения, содержание анализируется в момент обращения Необходимо периодически проверять актуальность Миграция сайтов на другие адреса Контент, создаваемый пользователями, социальные сети, блоги и т.п.
5 СЕРВЕРНАЯ ТЕХНОЛОГИЯ ФИЛЬТРАЦИИ Web-фильтр – http-proxy сервер на уровне провайдера gateway в локальной сети Продукты Cluster – для провайдеров (обслуживание от тысяч до десятков миллионов узлов) Appliance – корпоративные сети, интернет-кафе, образовательные учреждения
6 РОДИТЕЛЬСКИЙ КОНТРОЛЬ решение серверное web-интерфейс пользователь может создавать индивидуальное расписание из политик, предоставляемых администратором можно просматривать логи аутентификация, само собой
7 Прозрачный (transparent) прокси: подразумевается, что весь http-трафик на уровне gateway в локальной сети или на уровне провайдера перенаправляется на нас на уровне клиента неотключаем Явный (explicit) прокси требует явной конфигурации клиента (браузера или конфигурация прокси Windows) неинтересно, потому что легко отключается на клиенте Умеем оба варианта КАК ЭТО СДЕЛАНО
8 Apache Traffic Server (далее TS) (Сверх)скоростной - ~10Ktps, 1Gbps на i5 в режиме чистого прокси (без расширений) Комбинированная модель (конечный автомат + многонитка) Отлично расширяемый, специально для этого приспособленный, богатый API Качественная документация Прекрасный код Очень приятно и продуктивно работать с главным разработчиком (Leif Hedstrom) WebFilter расширение для Apache TS и немного патчей
9 SCL – Solver Configuration Language Правила Сенсоры Детекторы Конвертеры Pass(): UserGroup("admin", "pass_all") || URLMatchAny("", "search-engines", "govbiz") ; Redirect(" UserGroup("preschool") && (URLMatchAny("", "porno", "obscene") || ContentClass("/Leisure/PersonalLife", "/Abuse", "/Accidents") && !ContentClass("/Accidents/ActOfGod")) ; Deny(): UserGroup("preschool", "children") && ContentClass("/Abuse, "/Leisure/Games/Gambling") ; Deny(): ContentClass("/Abuse/Obscene", "/Leisure/PersonalLife/Adult") ; // Запретить игры кроме викторин с 22:00 до 8:00 HtmlTemplate("bedtime"): InDayTime("22:00", "8:00", "local") && ContentClass("/Leisure/Games") && !ContentClass("/Leisure/Games/Quiz") ; Warn("gambling-is-dangerous"): ContentClass("/Leisure/Games/Gambling") ; // Pass the remaining content untouched Pass(): True() ;
10 Детекторы ContentClass(str categories...) - Detect if the content text matches the specified semantic category/categories. Keywords(str categories...) - Detect if the content text matches the specified keyword category/categories. URLMatchAll(str field, str lists...) - Detect if the value of an HTTP request field matches with ALL given URL lists. URLMatchAny(str field, str lists...) - Detect if the value of an HTTP request field with ANY of given URL lists. ClientGeoIP(str...) - Detect if client IP belongs to a specified country or/and region. ServerGeoIP(str...) - Detect if server IP belongs to a specified country or/and region. UserGroup(str...) - Detect if client IP belongs to one of the specified user groups. InDayTime(str begin, str end, str tz = "") - Check if the current time falls into the specified daytime interval. IsDayOfWeek(str tz, int days...) - Check if the current time falls into the specified day(s) of week. ContentType(str mimetypes...) - Detect if response content mime-type matches one of the detector arguments. HttpStatus(int statlist...) - Detect if HTTP response status matches one of the detector arguments. False() - Return an unsuccessfull result True() - Return a successfull result
11 Конвертеры Deny() - Block access to content with status 403 (HTTP_STATUS_FORBIDDEN). Pass() - Pass content to the client as is. Redirect(str url, int wait = 0, str name = "", str values...) - Redirect client to a specified URL. TextMessage(str message) - Show a plain text message. Warn(str name = "", str values...) - Output a page with a warning message and a link to the original resource. HtmlTemplate(str name, int status = 200, str reason = "", str values...) - Output html template with substituted parameters Policy(str name, str description = "") - Declare a webfilter policy. ApplyPolicy(str policies...) - Make active a specified set of policies.
12 ЛОГИКА ФИЛЬТРАЦИИ
13 ContentClass(str categories...) определяет, принадлежит ли текстовое содержимое ресурса какой-либо категории из списка Анализ текстового содержания web-страниц (технология "Семантическое зеркало") Текст извлекается из HTML, Flash; элементарно расширяется, можно подключать модули для извлечения текста из чего угодно, в чём есть намёк на текст Результат анализа – набор иерархических категорий из предопределённого рубрикатора Каждая категория из приписанных к тексту выдаётся с уровнем релевантности, т.е. отвечается на вопрос не только о чём текст, но и в какой степени именно об этом >3000 категорий (рубрик) в русской базе Русский, английский, вьетнамский, украинский, немецкий, французский, испанский языки Фильтрация по содержимому: анализ текста, Семантическое зеркало 3000 категорий (рубрик) в русской базе Русский, английский, вьетнамский, украинский, немецкий, французский, испанский языки Фильтрация по содержимому: анализ текста, Семантическое зеркало">
14 /Leisure:95 /Leisure/PersonalLife:95 /Leisure/PersonalLife/Adult:95 /Leisure/PersonalLife/Adult/EroPorno:95 /Leisure/PersonalLife/Adult/EroPorno/Pornography:95 /Abuse:3 /SciTech:29 /Family:68 /Family/Children:36 /Health:95 /Health/Med:95 /Health/Med/Sexual:70 /Society:95 /Society/JobAndEducation:82 /Society/JobAndEducation/Education:80 /Leisure:81 /Leisure/PersonalLife:79 /Leisure/PersonalLife/Adult:73 /Leisure/PersonalLife/Adult/AboutSex:53 /World:59 /Types:61 /Types/Wiki:56 Пример рубрикации
15 Пользователь (администратор) может создавать собственную базу ключевых слов База ключевых слов строится по тому же иерархическому принципу, что и база Семантического Зеркала, т.е. пользователь создаёт собственную иерархию категорий (рубрик) и приписывает к категориям ключевые слова Одно и то же ключевое слово может быть привязана к нескольким категориям При поиске ключевых слов в тексте используется лингвистические средства, применяемые в Семантическом Зеркале (учёт словоизменения, где это применимо, нормализация и т.д.) Поиск ключевых слов ведётся с учётом языка документа. Каждому ключевому слову должен быть (пользователем) приписан язык при добавлении в базу. Это важно: см. например mist (англ.) и Mist (нем.) Результат сканирования текста – набор иерархических категорий из пользовательского рубрикатора без уровней релевантности - вхождение ключевого слово в текст автоматически полностью включает все категории, к которому оно привязано. В этом коренное отличие от полноценного семантического анализа, проводимого с помощью баз Семантического Зеркала. Keywords(str categories...), определяет, есть ли в тексте вхождения ключевых слов, приписанных какой-либо из перечисленных категорий База ключевых слов, задаваемых пользователем
16 Policy("Any", "For all users"): True() ; Deny(): URLMatchAny("", "black") ; Pass(): UserGroup("allowed") || URLMatchAny("", "white", "search-engines", "govbiz") ; Policy("Admin", "For administrator"): UserGroup("admin") ; Pass(): URLMatchAny("", "config") ; DemoFrame("OK", 1): True() ; Policy("Parent", ""): True() ; Pass(): ContentClass("/Leisure/PersonalLife") ; Policy("Child", ""): True() ; Deny(): ContentClass("/Leisure/PersonalLife/Adult") || ContentClass("/Leisure/Games/Gambling") ; Policy("NoGames", ""): True() ; Deny(): ContentClass("/Leisure/Games") ; ApplyPolicy("Admin", "Any"): True() ; ApplyPolicy("Parent"): UserGroup("parents") ; ApplyPolicy("Child"): UserGroup("children") ; ApplyPolicy("NoGames"): UserGroup("children") && InDayTime("22:00", "8:00", "local"); ПОЛИТИКИ
17 ПРОИЗВОДИТЕЛЬНОСТЬ 20Mbit/s: 200 HTTP tps: Intel Core i3, 4GB RAM 100Mbit/s: 1K HTTP tps: Intel Core i5 (4 cores), 4GB RAM 1Gbit/s: 10K HTTP tps: 2xXeon 4 ядра 8 нитей (например, E5507), 16GB RAM
18 WebAdmin Поколения (версии) конфигурации Можно откатиться на предыдущую версию Если фильтр не принял конфигурацию, автоматически восстанавливается последняя удачная Конфигурации в кластере хранятся в распределённой БД (MongoDB) КОНФИГУРАЦИЯ
19 СПАСИБО! Яков Маркович Ведущий программист, Департамент разработок Информация о компании, услугах и технологиях
Еще похожие презентации в нашем архиве:
© 2024 MyShared Inc.
All rights reserved.