После прохождения курса Стандарты инфрмационной безопасности мне предложено получение Удостоверения о повышении квалификации от НИУ ВШЭ по программе Менеджмент информационной безопасности. Программа включает в себя ряд курсов которые я уже ранее проходил. Какой порядок действий в данном случае? Как прозводится перезачет результатов? И какие экщамены мне надо еще доздать чтобы получить удостоверение? |
Средства анализа и управления
Платформы для NCC
С самого начала мы решили, что будем писать программу для ряда платформ, называемого LAMP (Linux, Apache, MySQL и Perl).
- Linux: По очевидным причинам Linux предлагает наибольшую мобильность и наименьшую стоимость использования. Однако нет причин, которые препятствуют системе выполняться на других разновидностях UNIX с небольшими модификациями. Ее можно также перенести на платформу на базе Windows, такую как Perl for Windows.
- Apache: Сервер Apache был также выбран в связи с открытостью исходных текстов и потому, что он является одним из наиболее популярных web-серверов. Он явился самым логичным выбором, поскольку web-сервер должен использоваться и для других средств. Кроме него, эта система будет выполняться на любом поддерживающем PHP web-сервере, включая IIS.
- MySQL: Имеется несколько хороших баз данных с открытыми исходными текстами, включая Postgresql и другие. Мы выбрали MySQL, потому что были лучше всего с ней знакомы, а требования в лицензии были самыми простыми. Как и Apache, мы уже применяли MySQL для своих баз данных ACID.
- Perl: Конечно, существует множество интерпретируемых языков, но мы выбрали Perl потому, что он один из самых мобильных, не требует компиляции и легко модифицируем для третьих сторон.
Основываясь на архитектуре LAMP, мы начали создавать средство, удовлетворяющее нашим потребностям. Сначала мы написали план проекта, детализировавший задуманную работу. Затем мы разбили задачу на подзадачи с учетом имеющихся у нас навыков. Мы определили программные элементы, которые потребуются для нашей системы, включая процедуры Perl, PHP и MySQL, командные файлы, а также текстовые файлы документации. Табл. 8.6 содержит список всех необходимых элементов проекта вместе с описанием их назначения.
Нам предстояло также спроектировать схему базы данных с таблицами, которые будут заполняться нашей программой. Программа NPI была отличным подспорьем в этом отношении, хотя мы добавили новые таблицы, обслуживающие планирование.
Несмотря на то, что потоки данных были аналогичны NPI, имелись и некоторые существенные различия. Мы разработали диаграмму этих потоков, чтобы можно было проследить все логические связи между системами. На рис. 8.11 показана логическая архитектура NCC.
Для проекта мы создали также web-сайт и страницу Sourceforge. Web-страница расположена по адресу http://www.netsecuritysvcs.com/ncc. Хотя мы решили, что в нашей группе достаточно талантов для завершения проекта, никогда не мешает познакомить других людей из сообщества открытого ПО с тем, что вы делаете. Кроме того, когда проект будет закончен, может понадобиться помощь при переносе на другие платформы и при добавлении новых возможностей.
Когда все приготовления были закончены, мы начали работу, как правило, проводя еженедельные встречи для отслеживания продвижений. Поскольку это было не основное занятие и у всех имелась другая работа, потребовалось около года для завершения программы в стадии бета-версии. Тем не менее, ее уже можно использовать и теперь, с помощью сетевого сообщества разработчиков, NCC можно расширять и улучшать. Написание NCC как проекта с открытыми исходными текстами, несомненно, требует несколько больше усилий для внешних взаимодействий, чем выполнение его как частного проекта, поскольку необходимо выполнить исследование существующих программ и интегрировать базы исходных текстов, но зато мы смогли воспользоваться существующими исходными текстами, что значительно сократило общее время разработки. Мы также знали, что если наша система станет популярной, ее можно будет перенести на другие платформы или даже использовать в качестве основы для более развитой программы, что нам только помогло бы. В конце концов, как показал опыт, в выигрыше осталась как моя компания, так и внешние пользователи.
Установка NCC
Предварительные требования NCC примерно те же, что и у средства NPI, описанного выше в этой лекции. Необходим поддерживающий PHP web-сервер (такой как Apache), база данных MySQL, клиент и сервер Nessus. Предполагается, что все это уже установлено и работает. Если вы еще этого не сделали, то обратитесь к предыдущим разделам этой лекции, посвященным настройке Apache и MySQL, и к "Сканеры уязвимостей" за инструкциями по установке Nessus.
Когда все будет на месте, можно приступать к установке NCC.
- Загрузите программу или возьмите ее с прилагаемого к книге компакт-диска.
- Распакуйте программу в отдельном каталоге, проверив, что он включен в ваш список поиска.
- Перейдите в каталог NCC и наберите ./install.pl. Запустится процедура установки NCC. (NCC не требует компиляции, поскольку он запрограммирован на интерпретируемых языках, таких как Perl и PHP.)
Программа установки сначала проверит присутствие модулей Perl, необходимых NCC. Если она их не найдет, то придется загрузить соответствующие модули либо с дистрибутивных дисков, либо с помощью утилит CPAN, описанных в разделе "Установка Swatch" выше в этой лекции.
- Программа автоматически инициализирует базу данных и скопирует все файлы в подходящие места. Во время установки будет предложено ввести дополнительную информацию. В табл. 8.7 описаны эти параметры установки.
- Затем будет запрошена комбинация имени и пароля административного пользователя NCC. Этот пользователь будет администратором всей системы, поэтому тщательно выбирайте имя и пароль.
- Создайте символьную ссылку в каком-либо из общедоступных web-каталогов, откуда вы хотите иметь доступ к NCC. Направьте ее на подкаталог html в корневом каталоге установки NCC. Это свяжет вас с основной страницей NCC и вашими общедоступными Web-каталогами и защитит от доступа другие файлы NCC.
- Теперь вы готовы к запуску NCC. Убедитесь, что база данных и web-сервер работают, откройте web-навигатор и введите имя хоста для сервера NCC вместе с именем созданной на предыдущем шаге символьной ссылки. Например, если вы назвали символьную ссылку ncc и создали ее в корневом каталоге Web, а сервер NCC имеет имя ncc.example.com, то URL будет выглядеть следующим образом:
- Введите имя пользователя и пароль, заданные в процессе установки.
Теперь можно применять NCC для автоматизации и планирования сканирований.
Применение NCC
После входа отображается основной экран NCC (см. рис. 8.12). Здесь можно управлять всеми группами, организациями, целями сканирования и расписаниями.
NCC построен как модульная и расширяемая программа. Например, можно применять NCC для управления несколькими сканированиями одной организации. Однако, если вы работаете консультантом, то можете определить сканирования для нескольких организаций с разными профилями. Давайте сделаем еще один шаг и предположим, что вы хотите стать поставщиком услуг приложений безопасности. NCC позволяет задать несколько групп (каждая со своими элементами-организациями) для всех ваших индивидуальных агентов и консультантов, продающих услуги анализа защищенности. (Со временем будут созданы настраиваемые интерфейсы для управления группами, но в бета-версии эти средства отсутствуют.)
Вы можете выбирать из четырех основных опций.
- System admin. Эти опции доступны только системному администратору. Здесь можно создавать группы и выполнять другие функции системного уровня.
- Group admin: Эти опции доступны только администраторам групп, которые могут добавлять, редактировать или удалять групповые профили организаций. Вы будете применять эти функции, например, при задании различных организаций с набором целей, каждой из которых можно управлять. Каждый администратор групп будет видеть только те организации, к которым он имеет доступ.
- Company admin: Здесь вы управляете пользователями, целевыми файлами и расписаниями для каждой организации. Например, вы можете пожелать, чтобы администратор более низкого уровня выполнял сканирование для одного подразделения, но не для другого. Подобные параметры можно задавать здесь.
- User functions: Этот раздел доступен всем пользователям. Здесь отдельные пользователи могут редактировать данные своего профиля и выполнять действия со своими счетами, такие как изменение пароля. Они могут также получить доступ к данным выполненного сканирования.
Возьмем простой пример и пройдемся по всем этапам добавления пользователей, добавления целей и составления расписания сканирований. Для простоты предположим, что вам не требуются средства поддержки нескольких организаций и нескольких групп.
Добавление пользователей
- Во-первых, необходимо добавить пользователя (отличного от системного администратора, который был добавлен ранее). В разделе Company Admin щелкните мышью на Add под строкой User Mgmt, чтобы добавить пользователя, который может запускать сканирования.
- Выберите организацию, которой он будет принадлежать, из выпадающего списка, и щелкните мышью на Add.
- На экране управления пользователями впишите информацию о новом пользователе (рис. 8.13).
Здесь можно выбрать имя пользователя и пароль. Пароль при вводе заменяется звездочками и сохраняется как хэш-значение MD5, а не как обычный текст. Выберите здесь также тип пользователя: System admin, Group admin, Company admin или User. Отметим, что вы можете создавать пользователей, которые находятся на том же или нижележащем уровне, что и вы. Например, администраторы организаций не могут создавать пользователей уровня системного администратора.
Если вы хотите отредактировать или удалить существующего пользователя, щелкните мышью на Edit/delete на основном экране в разделе управления организациями (Company Management).
- Щелкните мышью на Add, и NCC добавит в базу данных пользователя, который может теперь входить в систему и добавлять сканирования как сотрудник организации, к которой он был приписан.
Добавление целей
В NCC цель определяется как произвольный набор IP-адресов и ассоциированных настроек сканирования для этих адресов. При проектировании программы мы приняли сознательное решение разделить объекты целей и объекты расписаний. Это делает программу более модульной и повышает ее гибкость. Например, вы можете запланировать определенное сканирование на начало каждого месяца. Однако, если возникает новая уязвимость, вы можете пожелать однократно просканировать данную цель в середине месяца, чтобы проверить выявленную уязвимость. NCC позволяет добавлять событие одноразового сканирования для данной цели, вместо того, чтобы изменять, а затем восстанавливать ежемесячное сканирование в прежнем виде.
- Чтобы добавить цель, щелкните мышью на Target Mgmt в разделе Company Admin основного экрана.
- Раскройте контекстное меню, чтобы увидеть все цели, к которым вы имеете доступ. Если вы являетесь администратором группы, то вам покажут все цели для каждой организации, которой вы принадлежите.
- Щелкните мышью на Add, появится экран управления целями (рис. 8.14). Здесь можно выбрать организацию, для которой добавляется цель.
Задайте для цели текстовое описание, например "серверы в демилитаризованной зоне". Это описание появится в раскрывающемся меню, поэтому оно должно быть достаточно содержательным.
- Выберите тип сканирования: будет ли сканироваться один адрес, подсеть или диапазон адресов.
- В поле Scan Value введите цепочку целевых IP-адресов в синтаксисе, который поддерживает Nessus. Напомним (см. "Сканеры уязвимостей" ) допустимые в Nessus форматы адресов:
- Выберите конфигурацию сканирования. По умолчанию используется сканирование Nessus. Имеется до четырех других типов сканирования. (В последующих версиях будет разрешена выгрузка файла индивидуальной конфигурации и вставка его в текстовый файл.)
- Щелкните мышью на Add, и цель будет добавлена. Теперь все готово для составления расписания сканирований.
Составление расписания сканирований
Когда созданы объекты целей, для них можно определить расписание сканирований.
- В основном меню в разделе Company Admin щелкните мышью на Schedule Management. Появится экран управления расписанием (рис. 8.15).
- Выберите организацию и цель в этой организации. Здесь также доступно раскрывающееся меню выбора, отражающее уровень пользователя, под именем которого вы вошли в систему.
- Выберите дату сканирования, время, частоту, число повторов.
Можно выполнять сканирование один раз, ежедневно, еженедельно, ежемесячно, раз в два месяца, ежеквартально (в последующих версиях будут поддерживаться индивидуальные последовательности повторений в формате cron или I-cat). Можно также задать, чтобы повторение происходило только определенное количество раз, например, для заказчика, который подписал годовой контракт на ежемесячное сканирование. Допускается неограниченное число повторов, например, регулярное ежемесячное сканирование вашей собственной сети.
- Щелкните мышью на Add, и расписание для данного сканирования будет сформировано.
Теперь можно спокойно сидеть и ждать отчетов. Пользователь, создавший сканирование, будет уведомляться по электронной почте за день до его выполнения (за исключением ежедневных сканирований, для которых уведомление происходит за час до начала). Еще одно электронное сообщение он получит, когда отчет будет готов для просмотра.
- Когда сканирование выполнено, можно просмотреть его результаты, выбирая View reports в разделе User Functions основного меню. Отобразится экран базы данных сканирований NCC (рис. 8.16).
Можно просматривать данные сканирований и генерировать индивидуализированные отчеты для заказчиков.
Заметим, что этот интерфейс похож на интерфейс NPI, который был рассмотрен выше в этой лекции. Это объясняется тем, что при создании данного раздела мы использовали фрагменты NPI. NPI имеет открытые исходные тексты с лицензией GPL, поэтому, если мы выпускаем программу с лицензией GPL и включаем информацию об авторских правах, то мы имеем право заимствовать эти тексты. При использовании открытых исходных текстов вы имеете полный доступ к любым их продвижениям и усовершенствованиям.
Может показаться, что для простого сканирования требуется слишком много работы, и это действительно так, если оно выполняется только один раз. Но когда вы управляете десятками сканирований при участии нескольких пользователей, то NCC может оказаться бесценным инструментом для контроля всей этой деятельности.
И так, у вас есть средства и знания для создания законченной системы обнаружения вторжений и сканирования уязвимостей с развитыми аналитическими возможностями. Применяя этот инструментарий, вы сможете существенно повысить безопасность вашей внутренней сети и внешних серверов. В совокупности эти средства позволяют наиболее эффективно использовать время, затрачиваемое на повышение безопасности сети. Теперь мы приступаем к рассмотрению средств шифрования, помогающих обеспечивать безопасность ваших данных внутри и вне вашей сети.