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

65



Реферат



Пояснювальна записка дипломної роботи в об'ємі ____ сторінок, містить ____ рисунків та _____ літературних джерел.

Об'єктом розробки даної дипломної роботи є банківська комп’ютерна мережа.

Метою роботи є розробка автоматизованої технології захисту системи доступу до банківської комп’ютерної мережі.

У поданій дипломні роботі розглянуто різноманітні схеми підключення брандмауерів, що відрізняються як економічними показниками, так і ступенем захисту банківської комп’ютерної мережі.

Наведено, що найбільш оптимальною, с точки зору безпеки та надійності захисту, є схема підключення через зовнішній маршрутизатор. Крім цього, обґрунтовано, що важливим компонентом брандмауера є система збору статистики та попереджень про атаку.

Розроблено алгоритм роботи та програму контролю доступу користувачів до банківської мережі, яку виконано на мові програмування Perl. Також розроблено платформо-незалежний WEB-інтерфейс.

адміністрування, банківська система, локальна КОМП’ЮТЕРНА мережа, точка доступу, брандмауер, проксі-сервер, маршрутизатор, WEB-технології, алгоритм захисту, протокол обробки.


Abstract



The explanatory slip to degree work in volume ____ of sheets, contains ____ of figures and ____ of the references.

Plant of development of the given degree work is the bank computer network.

The purpose of degree work is the development of an automated process engineering of a guard of a system of access to a bank computer network.

In the given degree work the various schemes of connection Brynmawr’s are considered which differ both economic indexes, and degree of a guard a bank computer network.

Is shown, that most preferable, from a point of view of safety and reliability of a guard, is the scheme of connection through exterior router. Besides is shown, that the important component Brynmawr is the system of gathering of a statistician and warning about attack.

The algorithm of work and control program of access of the users to a bank web is developed which is carried out on the programming language Perl. The interface also was developed platform-independent WEB.

Administration, bank system, local COMPUTER network, point to access, BRYNMAWR, proxy-server, router, WEB-process engineering, algorithm of a guard, protocol of handling.


Содержание



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

Введение

1. Анализ исходной информации и требований технического задания

1.1 Основные виды и источники атак на информацию

1.2 Обзор наиболее распространенных методов "взлома"

1.3 Получение пароля на основе ошибок в реализации

1.3 Атакуемые сетевые компоненты

1.4 Рабочие станции

1.5 Среда передачи информации

1.6 Узлы коммутации сетей

1.7 Уровни сетевых атак согласно модели OSI

1.8 Предварительные выводы

2. Разработка технологии защиты банковской компьютерной сети

2.1 Архитектуры брандмауэра

2.2 Сервера уровня соединения

2.3 Сравнительные характеристики

2.4 Виртуальные сети

2.5 Схемы подключения

2.6 Предварительные выводы

3. Разработка алгоритма программы контроля доступа пользователей к банковской сети

3.1 Описание алгоритма работы программы

3.2 Предварительные выводы

4. Разработка программы контроля доступа пользователей к банковской сети

4.1 Описание работы программы

4.2 Предварительные выводы

Выводы

Перечень ссылок

Приложения




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



БС - банковская система

ОС - операционная система

ПО - программное обеспечение

ЭВМ - электронная вычислительная машина

ASCDII - American Standard Code for Information Interchange

DNS - Domain Name System

FTP - File Transfer Protocol

IP - Internet Protocol

IPS - Internet Protocol Suite

LAN - Local Area Networks

OSI - Open Systems Interconnection

RPC - Remote Procedure Call

SYN - Synchronization

TCP - Transmission Control Protocol

UDP - User Datagram Protocol

VPN - Virtual Private Network


Введение



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

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

Сегодня неотъемлемым элементом деятельности многих банков становится осуществление электронных транзакций по Internet и другим публичным сетям. Прогнозируемое превращение, в недалеком будущем, Internet в новую публичную сеть (New Public Network), предоставляющую массовому пользователю все виды информационных услуг и переносящую все виды трафика в глобальном масштабе, должно превратить эту тенденцию в норму жизни. Электронная коммерция, продажа информации, оказание консультационных услуг в режиме on-line и многие другие услуги становятся для предприятий в новых условиях основными видами деятельности, поэтому разрушение информационного ресурса, его временная недоступность или несанкционированное использование могут нанести банку значительный материальный ущерб. В связи с этим информационные ресурсы и средства осуществления электронных сетевых транзакций (серверы, маршрутизаторы, серверы удаленного доступа, каналы связи, операционные системы, базы данных и приложения) нужно защищать особенно надежно и качественно - цена каждой бреши в средствах защиты быстро растет и этот рост будет в ближайшем будущем продолжаться.

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

Трансформация Internet в глобальную публичную сеть означает для средств безопасности банка не только резкое увеличение количества внешних пользователей и разнообразие типов коммуникационных связей, но и сосуществование с новыми сетевыми и информационными технологиями. Для создания прочной основы массовой глобальной сети IP-технологии быстро приобретают такие новые свойства как поддержка дифференцированного по пользователям и приложениям качества обслуживания (QoS), управление сетью на основе централизованной политики, групповое вещание и т.д., и т.п. Постоянно появляются и новые информационные сервисы, например, сервис передачи голоса - VoIP, сервис поиска и доставки новостей PointCast и другие. Средства безопасности должны учитывать эти изменения, так как каждая новая технология и новый сервис могут потребовать своих адекватных средств защиты, а также оказать влияние на уже применяемые. Например, дифференцированное обслуживание трафика на основе признаков, находящихся в заголовке и поле данных IP-пакета, может быть затруднено работой средств инкапсуляции и шифрации IP-пакетов, применяемых в защищенных каналах VPN и закрывающих доступ к нужным признакам. На средства защиты может оказать значительное влияние и появление новых отдельных продуктов, особенно в том случае, когда ожидается массовое применение такого продукта (свежий пример этого рода - выход в свет Windows Vista).

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

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

2. Обеспечивать интегрированные решения. Интеграция требуется в разных аспектах:

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

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

3. Допускать масштабирование в широких пределах, то есть обеспечивать эффективную работу при наличии у банка многочисленных филиалов, десятков банков-партнеров, сотен удаленных сотрудников и миллионы потенциальных клиентов.

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

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

Для достижения поставленной цели необходимо выполнить ряд взаимосвязанных задач:

определение возможных направлений атак на локальную сеть банка со стороны Интернет;

разработка технологии защиты банковской;

разработка алгоритма контроля доступа пользователей к банковской сети;

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

В первой главе дипломной работы производится обзор основных видов и источников атак на информацию локальной компьютерной сети банка. Также произведен обзор наиболее распространенных методов "взлома".

Рассмотрены возможные цели злоумышленников, которые можно классифицировать как:

получение доступа к информации,

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

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

попытка изменения информации или услуг, как вспомогательный этап какой-либо более крупной атаки.

Произведена постановка задачи исследования.

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

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

Показано, что наиболее предпочтительной с точки зрения безопасности и надежности защиты, является схема, изображенная на рис.2.3

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

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

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

режим контроля за работой пользователя в сети;

режим администрирования.

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

удаленное администрирование прокси-сервера при помощи WEB-интерфейса;

просмотр списка пользователей;

добавление/удаление пользователей;

выбор пользователя для изменения его свойств;

определение размера получаемой информации для каждого пользователя в отдельности;

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


1. Анализ исходной информации и требований технического задания



1.1 Основные виды и источники атак на информацию



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

Каковы возможные последствия атак на информацию? В первую очередь, конечно, нас будут интересовать экономические потери:

1. Раскрытие коммерческой информации может привести к серьезным прямым убыткам банка

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

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

4. Подмена информации, как на этапе передачи, так и на этапе хранения в банке может привести к огромным убыткам

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

Естественно, компьютерные атаки могут принести и огромный моральный ущерб.

Категории информационной безопасности.

Информация с точки зрения информационной безопасности обладает следующими категориями:

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

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

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

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

В отношении информационных систем применяются иные категории:

надежность - гарантия того, что система ведет себя в нормальном и внештатном режимах так, как запланировано

точность - гарантия точного и полного выполнения всех команд

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

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

контроль идентификации - гарантия того, что клиент, подключенный в данный момент к системе, является именно тем, за кого себя выдает

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


1.2 Обзор наиболее распространенных методов "взлома"



Комплексный поиск возможных методов доступа.

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

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

Примерно та же проблема существует в сети Novell NetWare 3.11 - в ней сервер может поддерживать одновременно до 254 станций, и при этом при наличии мощной системы идентификации аутентификация пакета ведется только по номеру станции. Это позволяло проводить следующую атаку - в присутствии в сети клиента-супервизора злоумышленнику достаточно послать 254 пакета с командой серверу, которую он хочет исполнить, перебрав в качестве псевдо-отправителя все 254 станции. Один из отправленных пакетов совпадет с номером соединения, на котором сейчас действительно находится клиент-супервизор, и команда будет принята сервером к исполнению, а остальные 253 пакета просто проигнорированы.

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

Все это заставляет разработчиков защищенных систем постоянно помнить и о самых простых и очевидных способах проникновения в систему и предупреждать их в комплексе.

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

Перебор паролей по словарю являлся некоторое время одной из самых распространенных техник подбора паролей. В настоящее время, как хоть самый малый результат пропаганды информационной безопасности, он стал сдавать свои позиции. Хотя развитие быстродействия вычислительной техники и все более сложные алгоритмы составления слов-паролей не дают "погибнуть" этому методу. Технология перебора паролей родилась в то время, когда самым сложным паролем было скажем слово "brilliant", а в русифицированных ЭВМ оно же, но для "хитрости" набранное в латинском режиме, но глядя на русские буквы (эта тактика к сожалению до сих пор чрезвычайно распространена, хотя и увеличивает информационную насыщенность пароля всего на 1 бит). В то время простенькая программа со словарем в 5000 существительных давала положительный результат в 60% случаев. Огромное число инцидентов со взломами систем заставило пользователей добавлять к словам 1-2 цифры с конца, записывать первую и/или последнюю букву в верхнем регистре, но это увеличило время на перебор вариантов с учетом роста быстродействия ЭВМ всего в несколько раз. Так в 1998 году было официально заявлено, что даже составление двух совершенно не связанных осмысленных слов подряд, не дает сколь либо реальной надежности паролю. К этому же времени получили широкое распространение языки составления паролей, записывающие в абстрактной форме основные принципы составления паролей среднестатистическими пользователями ЭВМ.

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

Основные требования к информационной безопасности, основанные на анализе данного метода, следующие:

1. Вход всех пользователей в систему должен подтверждаться вводом уникального для клиента пароля.

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

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

4. Все ошибочные попытки войти в систему должны учитываться, записываться в файл журнала событий и анализироваться через "разумный" промежуток времени. Если в системе предусмотрена возможность блокирования клиента либо всей системы после определенного количества неудачных попыток входа, этой возможностью необходимо воспользоваться. Если же Вы являетесь разработчиком системы безопасности, данную возможность несомненно необходимо предусмотреть, так как она является основным барьером к подбору паролей полным перебором. Разумно блокировать клиента после 3-ей подряд неправильной попытки набора пароля, и, соответственно, блокировать систему после K=max (int (N*0.1*3) +1,3) неудачных попыток входа за некоторый период (час, смену, сутки). В данной формуле N - среднее количество подключающихся за этот период к системе клиентов, 0.1 - 10% -ный предел "забывчивости пароля", 3 - те же самые три попытки на вспоминание пароля. Естественно, информация о блокировании клиента или системы должна автоматически поступать на пульт контроля за системой.

5. В момент отправки пакета подтверждения или отвержения пароля в системе должна быть установлена разумная задержка (2-5 секунд). Это не позволит злоумышленнику, попав на линию с хорошей связью до объекта атаки перебирать по сотне тысяч паролей за секунду.

6. Все действительные в системе пароли желательно проверять современными программами подбора паролей, либо оценивать лично администратору системы.

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

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

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


1.3 Получение пароля на основе ошибок в реализации



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

Первая группа методов основана на том, что любой системе приходится где-либо хранить подлинники паролей всех клиентов для того, чтобы сверять их в момент регистрации. При этом пароли могут храниться как в открытом текстовом виде, как это имеет место во многих клонах UNIX, так и представленные в виде малозначащих контрольных сумм (хеш-значений), как это реализовано в ОС Windows, Novell NetWare и многих других. Проблема в том, что в данном случае для хранения паролей на носителе не может быть использована основная методика защиты - шифрование. Действительно, если все пароли зашифрованы каким-либо ключом, то этот ключ тоже должен храниться в самой системе для того, чтобы она работала автоматически, не спрашивая каждый раз у администратора разрешение "Пускать или не пускать пользователя Anton, Larisa, Victor и т.д.?". Поэтому, получив доступ к подобной информации, злоумышленник может либо восстановить пароль в читабельном виде (что бывает довольно редко), либо отправлять запросы, подтвержденные данным хеш-значением, не раскодируя его. Все рекомендации по предотвращению хищений паролей состоят в проверке не доступен ли файл с паролями, либо таблица в базе данных, хранящая эти пароли, кому-либо еще кроме администраторов системы, не создается ли системой резервных файлов, в местах доступных другим пользователям и т.п. В принципе, поскольку кража паролей является самым грубым вторжением в систему, разработчики уделяют ей довольно пристальное внимание, и соблюдения всех рекомендаций по использованию системы обычно достаточно для предотвращения подобных ситуаций.

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

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

1. Работа программы-перехватчика паролей (так называемого "троянского коня") на рабочей станции незаметна.

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

Двумя основными методами борьбы с копированием паролей являются:

адекватная защита рабочих станций от запуска сторонних программ:

а) отключение сменных носителей информации (гибких дисков),

б) специальные драйверы, блокирующие запуск исполнимых файлов без ведома оператора, либо администратора,

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

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

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

Следующий метод получения паролей относится только к сетевому программному обеспечению. Проблема заключается в том, что во многих программах не учитывается возможность перехвата любой информации, идущей по сети - так называемого сетевого трафика. Первоначально, с внедрением локальных компьютерных сетей так оно и было. Сеть располагалась в пределах 2-3 кабинетов, либо здания с ограниченным физическим доступом к кабелям. Однако, стремительное развитие глобальных сетей затребовало на общий рынок те же версии программного обеспечения без какого-либо промедления для усиления безопасности. Теперь мы пожинаем плоды этой тенденции. Более половины протоколов сети Интернет передают пароли в нешифрованном виде - открытым текстом. К ним относятся протоколы передачи электронной почты SMTP и POP3, протокол передачи файлов FTP, одна из схем авторизации на WWW-серверах.

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

1) это может сделать служащий компании со своего рабочего компьютера,

2) злоумышленник, подключившийся к сегменту с помощью портативной ЭВМ или более мобильного устройства. Наконец, трафик, идущий от Вас к Вашему партнеру или в другой офис по сети Интернет, технически может прослушиваться со стороны Вашего непосредственного провайдера, со стороны любой организации, предоставляющей транспортные услуги для сети Интернет (переписка внутри страны в среднем идет через 3-4 компании, за пределы страны - через 5-8). Кроме того, если в должной мере будет реализовываться план СОРМ (система оперативно-розыскных мероприятий в компьютерных сетях), то возможно прослушивание и со стороны силовых ведомств страны.

Для комплексной защиты от подобной возможности кражи паролей необходимо выполнять следующие меры:

1. Физический доступ к сетевым кабелям должен соответствовать уровню доступа к информации.

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

3. Ко всем информационным потокам, выходящим за пределы фирмы, должны применяться те же правила, что и только что описанные выше для объединения разноуровневых терминалов.



1.4 Атакуемые сетевые компоненты



Серверы.

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

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

получение доступа к информации,

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

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

попытка изменения информации или услуг, как вспомогательный этап какой-либо более крупной атаки.

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

А вот проблема вывода из строя (нарушения нормального функционирования) сервисов довольно актуальна в современном компьютерном мире. Класс подобных атак получил название атака "отказ в сервисе" (англ. deny of service - DoS). Атака "отказ в сервисе" может быть реализована на целом диапазоне уровней модели OSI: физическом, канальном, сетевом, сеансовом.

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

DNS-служба (англ. Domain Name System - служба доменных имен) в сетях Intra - и Inter - Net отвечает за сопоставление "произносимых" и легко запоминаемых доменных имен (например, www.intel.com или mail. metacom.ru) к их IP-адресам (например, 165.140.12.200 или 194.186.106.26). Пакеты между станциями всегда передаются только на основании IP-адресов (маршрутизаторы ориентируются только на их значения при выборе направления отправки пакета - доменное имя вообще не включается в отправляемый пакет), а служба DNS была создана в основном для удобства пользователей сети. Как следствие и во многих сетевых программах имя удаленного компьютера для большей гибкости или для удобства операторов заносится не в виде 4-байтного IP-адреса, а в виде доменного имени. Да, действительно, два указанных преимущества будут достигнуты в этом случае, а вот безопасность пострадает.

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



1.5 Рабочие станции



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

Для борьбы с троянскими программами используется как обычное антивирусное ПО, так и несколько специфичных методов, ориентированных исключительно на них. В отношении первого метода как и с компьютерными вирусами необходимо помнить, что антивирусное ПО обнаруживает огромное количество вирусов, но только таких, которые широко разошлись по стране и имели многочисленные прецеденты заражения. В тех же случаях, когда вирус или троянская программа пишется с целью получения доступа именно к конкретной ЭВМ или корпоративной сети, то она практически с вероятностью 90% не будет обнаружена стандартным антивирусным ПО.

Те троянские программы, которые постоянно обеспечивают доступ к зараженной ЭВМ, а, следовательно, держат на ней открытый порт какого-либо транспортного протокола, можно обнаруживать с помощью утилит контроля за сетевыми портами. Например, для операционных систем клона Microsoft Windows такой утилитой является программа NetStat. Запуск ее с ключом "netstat - a" выведет на экран все активные порты ЭВМ. От оператора в этом случае требуется знать порты стандартных сервисов, которые постоянно открыты на ЭВМ, и тогда, любая новая запись на мониторе должна привлечь его внимание. На сегодняшний день существует уже несколько программных продуктов, производящих подобный контроль автоматически.

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

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



1.6 Среда передачи информации



Основным видом атак на среду передачи информации является ее прослушивание. В отношении возможности прослушивания все линии связи делятся на:

широковещательные с неограниченным доступом

широковещательные с ограниченным доступом

каналы "точка-точка"

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

К широковещательной категории сетей относятся сеть TokenRing, сеть EtherNet на коаксиальной жиле и на повторителях (хабах - англ. hub). Целенаправленную (защищенную от прослушивания другими рабочими станциями) передачу данных в сетях EtherNet производят сетевые коммутаторы типа свич (англ. switch) и различного рода маршрутизаторы (роутеры - англ. router). Сеть, построенная по схеме с защитой трафика от прослушивания смежными рабочими станциями, почти всегда будет стоить дороже, чем широковещательная топология, но за безопасность нужно платить.

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

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

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

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

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

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



1.7 Узлы коммутации сетей



Узлы коммутации сетей представляют для злоумышленников 1) как инструмент маршрутизации сетевого трафика, и 2) как необходимый компонент работоспособности сети.

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

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

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



1.8 Уровни сетевых атак согласно модели OSI



Эталонная модель взаимодействия открытых систем OSI (англ. Open Systems Interconnection) была разработана институтом стандартизации ISO с целью разграничить функции различных протоколов в процессе передачи информации от одного абонента другому. Подобных классов функций было выделено 7 - они получили название уровней. Каждый уровень выполняет свои определенные задачи в процессе передачи блока информации, причем соответствующий уровень на приемной стороне производит преобразования, точно обратные тем, которые производил тот же уровень на передающей стороне. В целом прохождение блока данных от отправителя к получателю показано на рис.1.1 Каждый уровень добавляет к пакету небольшой объем своей служебной информации - префикс (на рисунке они изображены как P1... P7). Некоторые уровни в конкретной реализации вполне могут отсутствовать.





Рисунок 1.1 - Прохождение блока данных от отправителя к получателю


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

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

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

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

Транспортный уровень отвечает за доставку больших сообщений по линиям с коммутацией пакетов. Так как в подобных линиях размер пакета представляет собой обычно небольшое число (от 500 байт до 5 килобайт), то для передачи больших объемов информации их необходимо разбивать на передающей стороне и собирать на приемной. Транспортными протоколами в сети Интернет являются протоколы UDP и TCP. Реализация транспортного протокола - довольно сложная задача, а если еще учесть, что злоумышленник придумывает самые разные схемы составления неправильных пакетов, то проблема атак транспортного уровня вполне объяснима.

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

Сеансовый уровень отвечает за процедуру установления начала сеанса и подтверждение (квитирование) прихода каждого пакета от отправителя получателю. В сети Интернет протоколом сеансного уровня является протокол TCP (он занимает и 4, и 5 уровни модели OSI). В отношении сеансового уровня очень широко распространена специфичная атака класса "отказ в сервисе", основанная на свойствах процедуры установления соединения в протоколе TCP. Она получила название SYN-Flood (зд. flood - англ. "большой поток").

При попытке клиента подключиться к серверу, работающему по протоколу TCP (а его используют более 80% информационных служб, в том числе HTTP, FTP, SMTP, POP3), он посылает серверу пакет без информации, но с битом SYN, установленным в 1 в служебной области пакета - запросом на соединение. По получении такого пакета сервер обязан выслать клиенту подтверждение приема запроса, после чего с третьего пакета начинается собственно диалог между клиентом и сервером. Одновременно сервер может поддерживать в зависимости от типа сервиса от 20 до нескольких тысяч клиентов.

При атаке типа SYN-Flood злоумышленник начинает на своей ЭВМ создавать пакеты, представляющие собой запросы на соединение (то есть SYN-пакеты) от имени произвольных IP-адресов (возможно даже несуществующих) на имя атакуемого сервера по порту сервиса, который он хочет приостановить. Все пакеты будут доставляться получателю, поскольку при доставке анализируется только адрес назначения. Сервер, начиная соединение по каждому из этих запросов, резервирует под него место в своем буфере, отправляет пакет-подтверждение и начинает ожидать третьего пакета клиента в течение некоторого промежутка времени (1-5 секунд). Пакет-подтверждение уйдет по адресу, указанному в качестве ложного отправителя в произвольную точку Интернета и либо не найдет адресата вообще, либо чрезмерно "удивит" операционную систему на этом IP-адресе (поскольку она никаких запросов на данный сервер не посылала) и будет просто проигнорирован. А вот сервер при достаточно небольшом потоке таких запросов будет постоянно держать свой буфер заполненным ненужными ожиданием соединений и даже SYN-запросы от настоящих легальных пользователей не будут помещаться в буфер: сеансовый уровень просто не знает и не может узнать, какие из запросов фальшивые, а какие настоящие и могли бы иметь больший приоритет.

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



1.9 Предварительные выводы



В данном разделе дипломной работы произведен обзор существующих основных видов и источников атак на информацию. Выполнена постановка задачи работы.

Таким образом разрабатываемая система должна обеспечивать:

ограничение доступа пользователей в сеть Internet;

ведение журнал доступа пользователей в сеть Internet;

одновременная работа многих пользователей по одному коммутируемому соединению;

защита от прямой видимости машин локальной сети в Internet;

удаленное администрирование.


2. Разработка технологии защиты банковской компьютерной сети



2.1 Архитектуры брандмауэра



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

Одна из самых надежных моделей защиты используемая во многих продуктах такова:

1. Разрешать любому пользователю локальной сети доступ к любому ресурсу в Internet;

2. Разрешать каждому компьютеру в сети иметь доступ к административным утилитам системы защиты, при условии, что он предоставляет верный пароль доступа;

3. Никому из Internet не разрешать доступ в локальную сеть и к системе защиты банковской сети.

Несмотря на кажущуюся тривиальность, такая схема является наиболее надежной. Система защиты и компьютеры локальной сети защищены от неавторизованного доступа в основном третьим правилом. Это правило говорит, что любой пакет из Internet отвергается, если не выполняется следующее:

1. Пакет не должен являться попыткой инициировать соединение с системой защиты или с компьютером в локальной сети.

2. Пакет не должен иметь активизированный блок маршрутизации от источника.

3. Пакет не может быть направлен к какому-либо TCP/IP порту приложения любого компьютера в сети.

4. Пакет не может быть перенаправлен к любому компьютеру в сети до тех пор, пока не приняты все его фрагменты и все они проверены по правилам защиты.

5. Пакет всегда должен быть ответом на запрос любого текущего соединения инициированного системой защиты или компьютеров из вашей локальной сети.

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



Брандмауэр

Банковская сеть



Рисунок 2.1 - Деление сети на несколько частей



Как правило, брандмауэры функционируют на какой-либо UNIX платформе - чаще всего это BSDI, SunOS, AIX, IRIX и т.д., реже - DOS, VMS, WNT, Windows NT. Из аппаратных платформ встречаются INTEL, Sun SPARC, RS6000, Alpha, HP PA-RISC, семейство RISC процессоров R4400-R5000. Помимо Ethernet, многие брандмауэры поддерживают FDDI, Token Ring, 100Base-T, 100VG-AnyLan, различные серийные устройства. Требования к оперативной памяти и объему жесткого диска зависят от количества машин в защищаемом сегменте сети, но чаще всего рекомендуется иметь не менее 32Мб ОЗУ и 500 Мб на жестком диске.

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

Все брандмауэры можно разделить на три типа:

пакетные фильтры (packet filter)

сервера прикладного уровня (application gateways)

сервера уровня соединения (circuit gateways)

Все типы могут одновременно встретиться в одном брандмауэре.

Пакетные фильтры.

Брандмауэры с пакетными фильтрами принимают решение о том, пропускать пакет или отбросить, просматривая IP-адреса, флаги или номера TCP портов в заголовке этого пакета. IP-адрес и номер порта - это информация сетевого и транспортного уровней соответственно, но пакетные фильтры используют и информацию прикладного уровня, т.к все стандартные сервисы в TCP/IP ассоциируются с определенным номером порта.

Для описания правил прохождения пакетов составляются таблицы типа (см. табл.2.1):



Таблица 2.1

Описания правил прохождения пакетов

Действие

тип пакета

адрес источн. 

порт источн. 

адрес назнач. 

порт назнач. 

флаги



Поле "действие" может принимать значения пропустить или отбросить.

Тип пакета - TCP, UDP или ICMP.

Флаги - флаги из заголовка IP-пакета.

Поля "порт источника" и "порт назначения" имеют смысл только для TCP и UDP пакетов.

Сервера прикладного уровня

Брандмауэры с серверами прикладного уровня используют сервера конкретных сервисов - TELNET, FTP и т.д. (proxy server), запускаемые на брандмауэре и пропускающие через себя весь трафик, относящийся к данному сервису. Таким образом, между клиентом и сервером образуются два соединения: от клиента до брандмауэра и от брандмауэра до места назначения.

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

терминалы (Telnet, Rlogin)

передача файлов (Ftp)

электронная почта (SMTP, POP3)

WWW (HTTP)

Gopher

Wais

X Window System (X11)

Принтер

Rsh

Finger

новости (NNTP) и т.д.

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

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



2.2 Сервера уровня соединения



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

Как правило, пункт назначения задается заранее, в то время как источников может быть много (соединение типа один - много). Используя различные порты, можно создавать различные конфигурации.

Такой тип сервера позволяет создавать транслятор для любого определенного пользователем сервиса, базирующегося на TCP, осуществлять контроль доступа к этому сервису, сбор статистики по его использованию.



2.3 Сравнительные характеристики



Ниже приведены основные преимущества и недостатки пакетных фильтров и серверов прикладного уровня относительно друг друга.

К положительным качествам пакетных фильтров следует отнести следующие:

относительно невысокая стоимость

гибкость в определении правил фильтрации

небольшая задержка при прохождении пакетов

Недостатки у данного типа брандмауэров следующие:

локальная сеть видна (маршрутизируется) из INTERNET

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

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

аутентификацию с использованием IP-адреса можно обмануть использованием IP-спуфинга (атакующая система выдает себя за другую, используя ее IP-адрес)

отсутствует аутентификация на пользовательском уровне

К преимуществам серверов прикладного уровня следует отнести следующие:

локальная сеть невидима из INTERNET

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

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

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

Недостатками этого типа являются:

более высокая, чем для пакетных фильтров стоимость;

невозможность использовании протоколов RPC и UDP;

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



2.4 Виртуальные сети



Ряд брандмауэров позволяет также организовывать виртуальные корпоративные сети (Virtual Private Network), т.е. объединить несколько локальных сетей, включенных в INTERNET в одну виртуальную сеть. VPN позволяют организовать прозрачное для пользователей соединение локальных сетей, сохраняя секретность и целостность передаваемой информации с помощью шифрования. При этом при передаче по INTERNET шифруются не только данные пользователя, но и сетевая информация - сетевые адреса, номера портов и т.д.



2.5 Схемы подключения



Для подключения брандмауэров используются различные схемы. Брандмауэр может использоваться в качестве внешнего роутера, используя поддерживаемые типы устройств для подключения к внешней сети (см рис.2.1). Иногда используется схема, изображенная на рис.2.2, однако пользоваться ей следует только в крайнем случае, поскольку требуется очень аккуратная настройка роутеров и небольшие ошибки могут образовать серьезные дыры в защите.

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





Рисунок 2.2 - Схема подключения брандмауэров





Рисунок 2.3 - Подключение через внешний маршрутизатор



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

Другая схема представлена на рис.2.4




Рисунок 2.4 - Защита только одной подсети из нескольких выходящих из роутера



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

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

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




Рисунок 2.5 - Организация третьей сети



Администрирование.

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

Системы сбора статистики и предупреждения об атаке.

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



2.6 Предварительные выводы



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

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

Показано, что наиболее предпочтительной с точки зрения безопасности и надежности защиты, является схема, изображенная на рис.2.3

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


3. Разработка алгоритма программы контроля доступа пользователей к банковской сети



3.1 Описание алгоритма работы программы



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

Для эффективного управления

Основные задачи, выполняемые разрабатываемой программой:

ведение списка пользователей сетью Internet;

аутентификация;

назначение и контроль за использованием ресурсов Internet;

учет входящего трафика;

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

генерация отчетности.

Алгоритм работы программы контроля доступа к банковской сети можно разделить на два режима. Режим контроля и режим администрирования.

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

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

Режим контроля. 

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

Как правило, используется принцип, получивший название "что он знает" - т.е. пользователь знает некоторое секретное слово, которое он посылает серверу аутентификации в ответ на его запрос.

Одной из схем аутентификации является использование стандартных UNIX паролей. Эта схема является наиболее уязвимой, с точки зрения безопасности - пароль может быть перехвачен и использован другим лицом.

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

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

Если доступ запрещен, то доступ во внешнюю сеть для данного пользователя закрывается, а ему передается соответствующее предупреждение.

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

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

Алгоритм, реализующий указанный принцип работы программы, приведен на рисунке 3.1.




Начало

Аутентификация

Доступ

разрешен?

Проверка превышения лимита

Лимит исчерпан?

Ведение протокола

Учет трафика

Отказ в

предоставлении ресурсов



Конец

Да

Нет

Да

Нет

Рисунок 3.1 – Алгоритм работы программы в режиме контроля



В режиме администрирования обеспечивается управление пользователями сети, выделение ресурсов, запрещение или разрешение использования Internet. 

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

Алгоритм работы программы в режиме администрирования приведен га рисунке 3.2.





Начало

Показать список пользователей

Назначение ресурсов

Генерация отчета

Выбор пользователя

выделение ресурсов

Изменение данных

2

Да

Нет

Да

Нет

1

Рисунок 3.2 – Режим администрирования






Выбор пользователя

Сбор информации о клиенте

Генерация 

отчета

2

1

Просмотр протокола работы пользователей в сети Internet и выбор сведений за указанный период 

Рисунок 3.2 – Лист 2



3.2 Предварительные выводы



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

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

режим контроля за работой пользователя в сети;

режим администрирования.


4. Разработка программы контроля доступа пользователей к банковской сети



4.1 Описание работы программы



Программа выполнена на языке Perl и предназначена для работы на серверах под управление операционной системы Linux.

Perl - интерпретируемый язык, приспособленный для обработки произвольных текстовых файлов, извлечения из них необходимой информации и выдачи сообщений. Perl также удобен для написания различных системных программ. Этот язык прост в использовании, эффективен. Perl сочетает в себе лучшие черты C, shell, sed и awk. Cинтаксис выражений Perl-а близок к синтаксису C. В отличие от большинства утилит ОС UNIX Perl не ставит ограничений на объем обрабатываемых данных и если хватает ресурсов, то весь файл обрабатывается как одна строка. Рекурсия может быть произвольной глубины. Хотя Perl приспособлен для сканирования текстовых файлов, он может обрабатывать так же двоичные данные и создавать. dbm файлы, подобные ассоциативным массивам. Perl позволяет использовать регулярные выражения, создавать объекты, вставлять в программу на С или C++ куски кода на Perlе, а также позволяет осуществлять доступ к базам данных, в том числе Oracle.

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

Для создания и тестирования Perl-программ необходимы:

любой текстовый редактор, позволяющий сохранять файлы в ASCII-коде (например, встроенный редактор из оболочки FAR Commander);

программа конвертации ACSII-файлов в формат Unix-систем (в частности, редактор Castillo TextEditor);

интерпретатор Perl для отладки;

Web-сервер, поддерживающий работу Perl-программ (для проверки интерфейсных программ был применен Web-сервер OmniHTTPd 2.0 Professional);

FTP-клиент для загрузки файлов на сервер (больше всего для этого подходит CuteFTP 2.0, позволяющий устанавливать права доступа к файлам);

любой Web-браузер (был использован MS IE 4.0).

Программы на языке Perl с расширениями. cgi или. pl должны находиться в специальном каталоге на Web-сервере, обычно называемом CGI-BIN. Размещая в нем свои программы, пользователи могут создавать там собственные папки для обеспечения иерархичности. Если сервер работает в среде Unix, то необходимо придать ему определенные права для доступа. Для исполняемых Perl-программ следует задать атрибут 755. Если в них существует какой-либо каталог, в котором будут производиться запись и удаление файлов, то предпочтительнее поставить атрибут 777 (полный доступ). Когда сервер работает под управлением операционной системы Windows XP/Vista, то не следует преобразовывать созданные файлы в формат систем Unix. А операционные системы семейства Windows не позволяют выставлять атрибуты доступа подобно Unix-системам - в них используется другая методика.

Как было отмечено в предыдущем разделе в работе программы предусмотрено два режима: контроля и администрирования.

Режим контроля работы пользователей.

После обращения пользователя локальной сети к какому-либо внешнему ресурсу он получает приглашение ввести свое имя и пароль. Вид окна, отображаемого на машине клиента, приведен на рисунке 4.1

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




Рисунок 4.1 - Приглашение ввести имя пользователя и пароль





Рисунок 4.2 - Запрет доступа к сети



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

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

Ниже приводится фрагмент такого протокола:

1005144301.524 292 192.168.59.42 TCP_DENIED/407 1329 GET http://www.rambler.ru/ - NONE/ -

1005144351.251 616 192.168.59.42 TCP_MISS/200 573 GET http://top. list.ru/counter? mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144356.139 4885 192.168.59.42 TCP_MISS/200 11659 GET http://www.images. auto.ru/banners/paint2. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144381.452 30817 192.168.59.42 TCP_MISS/200 1252 GET http://images. rambler.ru/logo-r. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144387.328 31187 192.168.59.42 TCP_MISS/200 2395 GET http://images. rambler.ru/upl/info/adv145x60-6 [1]. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144403.545 84960 192.168.59.42 TCP_MISS/000 23466 GET http://www.rambler.ru/ mcdulcimer DEFAULT_PARENT/iserv. kture -

1005144403.689 53053 192.168.59.42 TCP_MISS/000 0 GET http://counter. rambler.ru/top100. cnt? mcdulcimer DEFAULT_PARENT/iserv. kture -

1005144403.689 16357 192.168.59.42 TCP_MISS/000 0 GET http://images. rambler.ru/n/sonet-200x20. gif mcdulcimer DEFAULT_PARENT/iserv. kture -

1005144403.689 22233 192.168.59.42 TCP_MISS/000 0 GET http://images. rambler.ru/other/narod_190_012. gif mcdulcimer DEFAULT_PARENT/iserv. kture -

1005144407.269 2386 192.168.59.42 TCP_MISS/200 572 GET http://top. list.ru/counter? mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144410.282 6551 192.168.59.42 TCP_MISS/200 58746 GET http://search. rambler.ru/cgi-bin/rambler_search? mcdulcimer DEFAULT_PARENT/iserv. kture text/html

1005144412.022 4752 192.168.59.42 TCP_MISS/200 5630 GET http://images. rambler.ru/upl/clients/narod_468_016. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144415.390 5043 192.168.59.42 TCP_MISS/200 13961 GET http://images. rambler.ru/upl/clients/2citroen_150_80_2. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144417.085 1692 192.168.59.42 TCP_MISS/200 492 GET http://images. rambler.ru/i-s-site1. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144447.872 42981 192.168.59.42 TCP_MISS/200 1241 GET http://images. rambler.ru/newd/logo-r. gif mcdulcimer DEFAULT_PARENT/iserv. kture image/gif

1005144463.935 59059 192.168.59.42 TCP_MISS/000 0 GET http://counter. rambler.ru/top100. cnt?

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

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

Следующий фрагмент отражает эту ситуацию:

serg. tr

192.168.59.16 1390 http://www.mail.ru/

192.168.59.16 12875 http://r. mail.ru/b1062. swf

192.168.59.16 23071 http://www.mail.ru/

192.168.59.16 23393 http://www.rambler.ru/

192.168.59.16 9080 http://search. rambler.ru/cgi-bin/rambler_search?

192.168.59.16 47352 http://search. rambler.ru/cgi-bin/rambler_search?

192.168.59.16 33726 http://search. rambler.ru/cgi-bin/rambler_search?

192.168.59.16 750 http://search. rambler.ru/click?

192.168.59.16 714 http://search. rambler.ru/click?

192.168.59.16 726 http://search. rambler.ru/click?

192.168.59.16 724 http://search. rambler.ru/click?

192.168.59.16 2001 http://www.citforum.ru/css/forum. css

192.168.59.16 2674 http://www.citforum.ru/ssi/ms_proc/y1ie. js

192.168.59.16 33333 http://www.citforum.ru/ssi/ms_proc/processor03. swf?

192.168.59.16 714 http://search. rambler.ru/click?

192.168.59.16 1039 http://www.computerinform.ru/main. css

192.168.59.16 17443 http://www.computerinform.ru/inform05_00/p_04asb. htm

192.168.59.16 1849 http://www.computerinform.ru/index.html

192.168.59.16 810 http://www.computerinform.ru/mainl. css

192.168.59.16 4001 http://www.computerinform.ru/left. htm

192.168.59.16 90 http://www.computerinform.ru/main. css

192.168.59.16 18876 http://www.computerinform.ru/praft. htm

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

Для управления работой пользователей сети в программе предусмотрен режим администрирования.

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

удаленное администрирование прокси-сервера при помощи WEB-интерфейса;

просмотр списка пользователей;

добавление - удаление пользователей;

выбор пользователя для изменения его свойств;

определение размера получаемой информации для каждого пользователя в отдельности;

предоставление расширенного отчета о работе пользователя за определенны период.

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

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

Для проверки имени пользователя и пароля ему открывается следующее окно (см. рис.4.3)





Рисунок 4.3 - Проверка имени и пароля пользователя



Внешний вид программы в режиме администрирования приведен на рисунке 4.4




Рисунок 4.4 - Внешний вид программы в режиме администрирования



4.2 Предварительные выводы



В данном разделе дипломной работы была разработана программа контроля доступа пользователей к банковской сети через internet. В качестве языка программирования был выбран язык Perl, что позволило гибко управлять работой прокси-сервера. Для достижения поставленной задачи - возможности удаленного управления сервером, был разработан платформо-независимый WEB интерфейс. Таким образом разработанное программное средство выполняет следующие функции:

удаленное администрирование прокси-сервера при помощи WEB-интерфейса;

просмотр списка пользователей;

добавление - удаление пользователей;

выбор пользователя для изменения его свойств;

определение размера получаемой информации для каждого пользователя в отдельности;

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


Выводы



В результате выполнения данной дипломной работы получены следующие результаты:

Производен обзор основных видов и источников атак на информацию компьютерной сети банка. Также произведен обзор наиболее распространенных методов "взлома".

Рассмотрены возможные цели злоумышленников, которые можно классифицировать как:

получение доступа к информации,

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

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

попытка изменения информации или услуг, как вспомогательный этап какой-либо более крупной атаки.

Произведена постановка задачи исследования.

Разработана технология защиты компьютерной банковской сети от атак на информацию со стороны Интернет.

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

Показано, что наиболее предпочтительной с точки зрения безопасности и надежности защиты, является схема, изображенная на рис.2.3

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

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

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

режим контроля за работой пользователя в сети;

режим администрирования.

Разработана программа контроля доступа пользователей к банковской сети. В качестве языка программирования был выбран язык Perl, что позволило гибко управлять работой прокси-сервера. Для достижения поставленной задачи - возможности удаленного управления сервером, был разработан платформо-независимый WEB интерфейс. Таким образом, разработанное программное средство выполняет следующие функции:

удаленное администрирование прокси-сервера при помощи WEB-интерфейса;

просмотр списка пользователей;

добавление - удаление пользователей;

выбор пользователя для изменения его свойств;

определение размера получаемой информации для каждого пользователя в отдельности;

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


Перечень ссылок



Сервер Red Had Linux для Windows: Пер. с англ. / Пол Сэри - К.: Издательство "Диа Софт", 2001. - 400с.

Освой самостоятельно Perl за 24 часа: Пер. с англ.: Уч. пос. - М.: Издательский дом "Вильямс", 2000. - 384с.: ил. - Парал. тит. англ.

Компьютерные сети. Принципы, технологии, протоколы / В.Г. Олифер, Н.А. Олифер. - СПб: Издательство "Питер", 1999. - 672 с.: ил.

Фоминов О. "Диагностика сетей как средство выживания" - Компьютер Пресс 1996, №4, с 72-76.

Михаил Федотов. "Системы сетевого/системного управления: принципы создания".

Нессер Д. Дж. Оптимизация и поиск неисправностей в сетях. - К.: "Диалектика", 1996. - 384 с., ил.

Фаронов В.В. Delphi 4. Учебный курс. - М.: "Нолидж", 1998. - 464 с., ил.

Клепчинов И. "Произвол в локальной сети. Кнуты и пряники системного администратора". - Компьютеры + программы, 1999, №9.

Галушка С. "Введение в локальные сети", - Компьютерное обозрение, 1996, №7 (31).

ДСТУ 3008-95. Документация. Отчеты в сфере науки и техники. Структура и правила оформления.


Приложения



Приложение А



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

#! /usr/bin/perl

$passwd_file = ". /passwd";

$squid_copylog_file = ". /access. log";

$passwdnew_file = ">. /passwd. new";

$squid_file = "/etc/init. d/squid reload";

$users_cvota_file = ". /users";

init_cvota ();

sum_traf ();

razbor_passwd ();

$i = @cnames;

$j = 0;

print_traf ();

$j = 0;

$flag = 0;

open (PASLISTNEW, $passwdnew_file) || die "can't open file users";

while ($j<$i) {

# print $cnames [$j]," ", $traf {$cnames [$j] },"\n";

$a=index ($passwd {$cnames [$j] },"*");

if ( ($cvota {$cnames [$j] } < $traf {$cnames [$j] }) && ($a==-1)) {

print PASLISTNEW ($cnames [$j],": *",$passwd {$cnames [$j] },"\n");

$flag = 1;

}

else

{

print PASLISTNEW $cnames [$j],": ",$passwd {$cnames [$j] },"\n";

};

$j = $j + 1;

};

close (PASLISTNEW) || die "can't close file users";

if ($flag == 1) {

rename (". /passwd. new",$passwd_file);

system ($squid_file);

};

sub razbor_passwd {

open (PASLIST, $passwd_file) || die "can't open file users";

while (defined ($pas = <PASLIST>)) {

chomp ($pas);

$pname = $pas;

$pname =~ s/:. * //;

$ppas = $pas;

$ppas =~ s/\w*: //;

$passwd {$pname} = $ppas;

# print $pname," ",$passwd {$pname},"\n";

};

close (PASLIST) || die "can't close file users";

};

sub init_cvota {

open (USERLIST, $users_cvota_file) || die "can't open file users";

while (defined ($fname = <USERLIST>)) {

chomp ($fname);

$fcvota = <USERLIST>;

chomp ($fcvota);

$cvota {$fname} = $fcvota;

@cnames = (@cnames, $fname);

};

close (USERLIST) || die "can't close file users";

};

sub razbor_str {

$date = $str;

$date =~ s/. * //;

#print $date," ";

$date =~s/^\d+\. \d+/localtime $&/e;

#print $date,"\n";

$s2 = $str;

$s2 =~ s/\S* * //;

$s2 =~ s/. * //;

$IP = $str;

$IP =~ s/\S* *\S* * //;

$IP =~ s/. * //;

$rez = $str;

$rez =~ s/\S* *\S* *\S* * //;

$rez =~ s/. * //;

$raz = $str;

$raz =~ s/\S* *\S* *\S* *\S* * //;

$raz =~ s/. * //;

$metod = $str;

$metod =~ s/\S* *\S* *\S* *\S* *\S* * //;

$metod =~ s/. * //;

$addr = $str;

$addr =~ s/\S* *\S* *\S* *\S* *\S* *\S* * //;

$addr =~ s/. * //;

$name = $str;

$name =~ s/\S* *\S* *\S* *\S* *\S* *\S* *\S* * //;

$name =~ s/. * //;

};

sub sum_traf {

open (LOG, $squid_copylog_file) || die "can't open file users";

while (defined ($str = <LOG>)) {

chomp ($str);

razbor_str ();

if (! ($name eq "-")) {

$traf {$name} = $traf {$name} + $raz;

};

};

close (LOG) || die "can't close file users";

};

sub print_traf {

open (SUMTRAF,">. /sumtraf. log") || die "can't open sum-log file";

$j=0;

while ($j<$i) {

print SUMTRAF $cnames [$j]," ", $traf {$cnames [$j] },"\n";

$j++;

};

close (SUMTRAF) || die "can't close sum-log file";

};