Создание программного продукта, реализующего избирательный метод управления доступа к данным
Организационно-технические и режимные методы защиты информации. Средства обеспечения безопасности Windows. Интерфейс прикладного программирования. Программа администрирования "Net Programm Administrator". Расчет затрат на разработку программного продукта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 11.11.2012 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Современное общество все в большей степени становится информационно-обусловленным, успех любого вида деятельности все сильней зависит от обладания определенными сведениями и от отсутствия их у конкурентов. И чем сильней проявляется указанный эффект, тем больше потенциальные убытки от злоупотреблений в информационной сфере, и тем больше потребность в защите информации.
В связи с широким использованием информационно-вычислительных сетей проявляется повышенный интерес к проблеме информационной безопасности. Потеря или утечка информации могут повлечь за собой огромный ущерб для предприятия. Одной из основных причин утечки или потери информации становятся действия работников компании - простых пользователей. Чаще всего проблемы связаны с запуском запрещенного программного обеспечения, изменением настроек системы, а также подключение носителей информации, на которых находятся вирусные программы.
Проблема потери информации и сбоев стоит очень остро, особенно в крупных организациях. Неопытные пользователи очень часто некорректными действиями нарушают работу системы. Наибольшую опасность представляют вирусы и троянские программы, проносимые пользователем через все уровни защиты от внешних угроз. Политика безопасности Windows частично решает проблему, но детальная настройка каждого компьютера отнимает огромное количество времени.
Задача определения эффективности средств защиты зачастую более трудоемкая, чем их разработка, требует наличия специальных знаний и, как правило, более высокой квалификации, чем задача разработки. Это обстоятельства приводят к тому, что на рынке появляется множество средств защиты информации, про которые никто не может сказать ничего определенного.
Данная квалификационная работа направлена на изучение теоретического материала по информационной безопасности и реализации программного продукта, удовлетворяющего требованиям заказчика.
Цель работы: изучение теоретических основ методов защиты информации и создание программного продукта, реализующего избирательный метод управления доступа к данным.
Задачи исследования:
изучение научно-технической литературы по методам защиты информации;
проанализировать различные средства по защите информации;
создание и поддержка интерфейса, обеспечивающего для пользователя ограничение доступа к неразрешенному программному обеспечению, функциям системы и к самой программе
произвести расчет экономических затрат на создание и эксплуатацию программного продукта;
удовлетворение современным требованиям по быстродействию, эргономичности.
В работе:
дается полное описание работы с методами защиты информации;
приведено множество иллюстраций, помогающих понять работу программы;
приведен экономический расчет разработанной программы;
К дипломной работе прилагается демонстрационная программа, выполненная на Delphi 7.0.
1. ТЕОРЕТИЧЕСКИЕ ОСНОВЫ РАЗРАБОТКИ ИНФОРМАЦИОННЫХ СИСТЕМ
1.1 Система обеспечения информационной безопасности
Целью реализации информационной безопасности какого-либо объекта является построение Системы обеспечения информационной безопасности данного объекта (СОИБ).
Для построения и эффективной эксплуатации СОИБ необходимо:
выявить требования защиты информации, специфические для данного объекта защиты;
учесть требования национального и международного Законодательства;
использовать наработанные практики (стандарты, методологии) построения подобных СОИБ;
определить подразделения, ответственные за реализацию и поддержку СОИБ;
распределить между подразделениями области ответственности в осуществлении требований СОИБ;
на базе управления рисками информационной безопасности определить общие положения, технические и организационные требования, составляющие Политику информационной безопасности объекта защиты;
реализовать требования Политики информационной безопасности, внедрив соответствующие программно-технические способы и средства защиты информации;
реализовать Систему менеджмента (управления) информационной безопасности (СМИБ);
используя СМИБ организовать регулярный контроль эффективности СОИБ и при необходимости пересмотр и корректировку СОИБ и СМИБ.
Как видно из последнего этапа работ, процесс реализации СОИБ непрерывный и циклично (после каждого пересмотра) возвращается к первому этапу, повторяя последовательно все остальные. Так СОИБ корректируется для эффективного выполнения своих задач защиты информации и соответствия новым требованиям постоянно обновляющейся информационной системы.
1.2 Организационно-технические и режимные меры и методы защиты информации
Под защитой информации понимается совокупность мероприятий, методов и средств, обеспечивающих решение следующих основных задач:
проверка целостности информации;
исключение несанкционированного доступа к ресурсам ПЭВМ и хранящимся в ней программам и данным (с целью сохранения трех основных свойств защищаемой информации: целостности, конфиденциальности, готовности);
исключение несанкционированного использования хранящихся в ПЭВМ программ (то есть защита программ от копирования).
Возможные каналы утечки информации, позволяющие нарушителю получить доступ к обрабатываемой или хранящейся в ПЭВМ информации, принято классифицировать на три группы, в зависимости от типа средства, являющегося основным при получении информации. Различают 3 типа средств: человек, аппаратура, программа [2, с. 138].
С первой группой, в которой основным средством является человек, связаны следующие основные возможные утечки:
чтение информации с экрана посторонним лицом;
расшифровка программой зашифрованной информации;
хищение носителей информации (магнитных дисков, дискет, лент и так далее).
Ко второй группе каналов, в которых основным средством является аппаратура, относятся следующие возможные каналы утечки:
подключение к ПЭВМ специально разработанных аппаратных средств, обеспечивающих доступ к информации;
использование специальных технических средств для перехвата электромагнитных излучений технических средств ПЭВМ.
несанкционированный доступ программы к информации;
расшифровка программой зашифрованной информации;
копирование программой информации с носителей.
Для описания технологии защиты информации конкретной информационной системы обычно строится так называемая Политика информационной безопасности.
Политика безопасности - совокупность документированных правил, процедур, практических приемов или руководящих принципов в области безопасности информации, которыми руководствуется организация в своей деятельности.
Политика безопасности информационно-телекоммуникационных технологий - правила, директивы, сложившаяся практика, которые определяют, как в пределах организации и ее информационно-телекоммуникационных технологий управлять, защищать и распределять активы, в том числе критичную информацию.
Для построения Политики информационной безопасности рекомендуется отдельно рассматривать следующие направления защиты информационной системы:
Защита объектов информационной системы;
Защита процессов, процедур и программ обработки информации;
Защита каналов связи;
Подавление побочных электромагнитных излучений;
Управление системой защиты.
При этом, по каждому из перечисленных выше направлений Политика информационной безопасности должна описывать следующие этапы создания средств защиты информации:
Определение информационных и технических ресурсов, подлежащих защите;
Выявление полного множества потенциально возможных угроз и каналов утечки информации;
Проведение оценки уязвимости и рисков информации при имеющемся множестве угроз и каналов утечки;
Определение требований к системе защиты;
Осуществление выбора средств защиты информации и их характеристик;
Внедрение и организация использования выбранных мер, способов и средств защиты;
Осуществление контроля целостности и управление системой защиты.
Политика информационной безопасности оформляется в виде документированных требований на информационную систему. Документы обычно разделяют по уровням описания (детализации) процесса защиты.
Документы верхнего уровня Политики информационной безопасности отражают позицию организации к деятельности в области защиты информации, ее стремление соответствовать государственным, международным требованиям и стандартам в этой области. Подобные документы могут называться "Концепция ИБ", "Регламент управления ИБ", "Политика ИБ", "Технический стандарт ИБ" и т.п. Область распространения документов верхнего уровня обычно не ограничивается, однако данные документы могут выпускаться и в двух редакциях - для внешнего и внутреннего использования. Согласно ГОСТ Р ИСО/МЭК 17799-2005, на верхнем уровне Политики информационной безопасности должны быть оформлены следующие документы: "Концепция обеспечения ИБ", "Правила допустимого использования ресурсов информационной системы", "План обеспечения непрерывности бизнеса".
К среднему уровню относят документы, касающиеся отдельных аспектов информационной безопасности. Это требования на создание и эксплуатацию средств защиты информации, огранизацию информационных и бизнесс-процессов организации по конкретному направлению защиты информации. Например: безопасности данных, безопасности коммуникаций, Использования средств криптографической защиты, контентная фильтрация и т.п. Подобные документы обычно издаются в виде внутренних технических и организационных политик (стандартов) организации. Все документы среднего уровня политики информационной безопасности конфиденциальны.
В политику информационной безопасности нижнего уровня входят регламенты работ, руководства по администрированию, инструкции по эксплуатации отдельных сервисов информационной безопасности [5, с. 69].
1.3 Программно-технические способы и средства обеспечения защиты информации
Рассмотрим следующую классификацию средств защиты информации:
средства защиты от несанкционированного доступа (НСД):
средства авторизации;
мандатное управление доступом;
избирательное управление доступом;
управление доступом на основе ролей;
Журналирование (так же называется Аудит);
Системы анализа и моделирования информационных потоков Системы мониторинга сетей:
системы обнаружения и предотвращения вторжений (IDS/IPS);
анализаторы протоколов;
антивирусные средства;
межсетевые экраны;
Криптографические средства:
шифрование;
цифровая подпись;
системы резервного копирования;
Системы бесперебойного питания:
источники бесперебойного питания;
резервирование нагрузки;
генераторы напряжения;
Системы аутентификации:
пароль;
сертификат;
биометрия;
Средства предотвращения взлома корпусов и краж оборудования;
Средства контроля доступа в помещения;
Инструментальные средства анализа систем защиты:
мониторинговый программный продукт.
1.4 Средства защиты от несанкционированного доступа
Одним из средств защиты от несанкционированного доступа является избирательное управление доступом.
Избирательное управление доступом - управление доступом субъектов к объектам на основе списков управления доступом или матрицы доступа.
Так же называется Дискреционное управление доступом, Контролируемое управление доступом и Разграничительное управление доступом
Для каждой пары (субъект - объект) должно быть задано явное и недвусмысленное перечисление допустимых типов доступа (читать, писать и т. д.), то есть тех типов доступа, которые являются санкционированными для данного субъекта (индивида или группы индивидов) к данному ресурсу (объекту)
Возможны несколько подходов к построению дискреционного управления доступом:
каждый объект системы имеет привязанного к нему субъекта, называемого владельцем. Именно владелец устанавливает права доступа к объекту.
система имеет одного выделенного субъекта - суперпользователя, который имеет право устанавливать права владения для всех остальных субъектов системы.
субъект с определенным правом доступа может передать это право любому другому субъекту.
Возможны и смешанные варианты построения, когда одновременно в системе присутствуют как владельцы, устанавливающие права доступа к своим объектам, так и суперпользователь, имеющий возможность изменения прав для любого объекта и (или) изменения его владельца. Именно такой смешанный вариант реализован в большинстве операционных систем, например, в классических UNIX-системах или в системах Windows семейства NT.
Избирательное управление доступом является основной реализацией разграничительной политики доступа к ресурсам при обработке конфиденциальных сведений, согласно требованиям к системе защиты информации.
Управление доступом на основе ролей - развитие политики избирательного управления доступом, при этом права доступа субъектов системы на объекты группируются с учетом специфики их применения, образуя роли.
Формирование ролей призвано определить четкие и понятные для пользователей компьютерной системы правила разграничения доступа. Ролевое разграничение доступа позволяет реализовать гибкие, изменяющиеся динамически в процессе функционирования компьютерной системы правила разграничения доступа.
Такое разграничение доступа является составляющей многих современных компьютерных систем. Как правило, данный подход применяется в системах защиты СУБД, а отдельные элементы реализуются в сетевых операционных системах. Ролевой подход часто используется в системах, для пользователей которых четко определен круг их должностных полномочий и обязанностей.
Несмотря на то, что Роль является совокупностью прав доступа на объекты компьютерной системы, ролевое управление доступом отнюдь не является частным случаем избирательного управления доступом, так как его правила определяют порядок предоставления доступа субъектам компьютерной системы в зависимости от имеющихся (или отсутствующих) у него ролей в каждый момент времени, что является характерным для систем мандатного управления доступом. С другой стороны, правила ролевого разграничения доступа являются более гибкими, чем при мандатном подходе к разграничению.
Так как привилегии не назначаются пользователям непосредственно, и приобретаются ими только через свою роль (или роли), управление индивидуальными правами пользователя, по сути, сводится к назначению ему ролей. Это упрощает такие операции, как добавление пользователя или смена подразделения пользователем.
Мандатное управление доступом - разграничение доступа субъектов к объектам, основанное на назначении метки конфиденциальности для информации, содержащейся в объектах, и выдаче официальных разрешений (допуска) субъектам на обращение к информации такого уровня конфиденциальности. Так же иногда переводится как Принудительный контроль доступа. Это способ, сочетающий защиту и ограничение прав, применяемый по отношению к компьютерным процессам, данным и системным устройствам и предназначенный для предотвращения их нежелательного использования.
Мандатная модель управления доступом, помимо дискреционной и ролевой, является основой реализации разграничительной политики доступа к ресурсам при защите секретной информации. При этом данная модель доступа практически не используется «в чистом виде», обычно на практике она дополняется элементами других моделей доступа.
Для файловых систем, оно может расширять или заменять дискреционный контроль доступа и концепцию пользователей и групп.
Самое важное достоинство заключается в том, что пользователь не может полностью управлять доступом к ресурсам, которые он создаёт.
Политика безопасности системы, установленная администратором, полностью определяет доступ, и обычно пользователю не разрешается устанавливать более свободный доступ к его ресурсам, чем тот, который установлен администратором пользователю. Системы с дискреционным контролем доступа разрешают пользователям полностью определять доступность их ресурсов, что означает, что они могут случайно или преднамеренно передать доступ неавторизованным пользователям.
Такая система запрещает пользователю или процессу, обладающему определённым уровнем доверия, получать доступ к информации, процессам или устройствам более защищённого уровня. Тем самым обеспечивается изоляция пользователей и процессов, как известных, так и неизвестных системе (неизвестная программа должна быть максимально лишена доверия, и её доступ к устройствам и файлам должен ограничиваться сильнее).
Очевидно, что система, которая обеспечивает разделение данных и операций в компьютере, должна быть построена таким образом, чтобы её нельзя было «обойти». Она также должна давать возможность оценивать полезность и эффективность используемых правил и быть защищённой от постороннего вмешательства.
1.5 Средства обеспечения безопасности Windows
В дипломном проекте используются методы ограничения доступа к информации путем редактирования значений реестра Windows.
Реестр Windows- иерархически построенная база данных параметров и настроек в большинстве операционных систем Microsoft Windows.
Реестр содержит информацию и настройки для аппаратного обеспечения, программного обеспечения, профилей пользователей, предустановки. Большинство изменений в Панели управления, ассоциации файлов, системные политики, список установленного ПО фиксируются в реестре.
Реестр Windows был введён для упорядочения информации, хранившейся до этого во множестве INI-файлов, которые использовались для хранения настроек до того, как появился реестр.
Реестр в том виде, как его использует Windows и как видит его пользователь в процессе использования программ работы с реестром, некоторым образом «нигде не хранится». Чтобы получилось то, что видит пользователь, редактируя реестр, происходит следующее.
Вначале, в процессе установки и настройки Windows, на диске формируются файлы, в которых хранится часть данных относительно конфигурации системы.
Затем, в процессе каждой загрузки системы, а так же в процессе каждого входа и выхода каждого из пользователей, формируется некая виртуальная сущность, называемая «реестром». Данные для формирования «реестра» берутся из тех самых файлов и из других мест.
То есть часть данных реестра хранится в файлах, а часть данных порождается в процессе загрузки Windows.
Для редактирования, просмотра и изучения реестра стандартными средствами Windows (программы regedit.exe и regedt32.exe) доступны именно ветки реестра. После редактирования реестра и/или внесения в него изменений эти изменения сразу записываются в файлы.
Однако, есть программы сторонних разработчиков, которые позволяют работать непосредственно с файлами.
Описание разделов реестра windows xp
HKEY_CURRENT_USER
Данный раздел содержит настройки текущего активного пользователя, вошедшего в систему. Здесь хранятся папки пользователя, цвета экрана и параметры панели управления. Эти сведения сопоставлены с профилем пользователя. Вместо полного имени раздела иногда используется аббревиатура HKCU
HKEY_USERS
Данный раздел содержит все активные загруженные профили пользователей компьютера. Раздел HKEY_CURRENT_USER является подразделом раздела HKEY_USERS. Вместо полного имени раздела иногда используется аббревиатура HKU
HKEY_LOCAL_MACHINE
Раздел содержит параметры конфигурации, относящиеся к данному компьютеру (для всех пользователей). Вместо полного имени раздела иногда используется аббревиатура HKLM.
HKEY_CLASSES_ROOT
Является подразделом HKEY_LOCAL_MACHINE\Software\Classes. В основном, содержит информацию о зарегистрированных типах файлов и объектах COM и ActiveX. Вместо полного имени раздела иногда используется аббревиатура HKCR. Начиная с Windows 2000, эти сведения хранятся как в HKEY_LOCAL_MACHINE, так и в HKEY_CURRENT_USER. Раздел HKEY_LOCAL_MACHINE\Software\Classes содержит параметры по умолчанию, которые относятся ко всем пользователям локального компьютера. Параметры, содержащиеся в разделе HKEY_CURRENT_USER\Software\Classes, переопределяют принятые по умолчанию и относятся только к текущему пользователю. Раздел HKEY_CLASSES_ROOT включает в себя данные из обоих источников. Кроме того, раздел HKEY_CLASSES_ROOT предоставляет объединённые данные программам, написанным под ранние версии Windows. Изменения настроек текущего пользователя выполняются в разделе HKEY_CURRENT_USER\Software\Classes. Модификация параметров по умолчанию должна производиться в разделе HKEY_LOCAL_MACHINE\Software\Classes. Данные из разделов, добавленных в HKEY_CLASSES_ROOT, будут сохранены системой в разделе HKEY_LOCAL_MACHINE\Software\Classes. Если изменяется параметр в одном из подразделов раздела HKEY_CLASSES_ROOT и такой подраздел уже существует в HKEY_CURRENT_USER\Software\Classes, то для хранения информации будет использован раздел HKEY_CURRENT_USER\Software\Classes, а не HKEY_LOCAL_MACHINE\Software\Classes.
HKEY_CURRENT_CONFIG
Данный раздел содержит сведения о профиле оборудования, используемом локальным компьютером при запуске системы.
С помощью реестра можно изменять любые настройки системы и программ, даже те, которые недоступные из оболочки windows. Именно через реестр осуществляется решение групповой политики безопасности windows.
1.6 Протокол UDP и принцип работы
Протокол UDP (User Datagram Protocol, RFC-768) является одним из основных протоколов, расположенных непосредственно над IP. Он предоставляет прикладным процессам транспортные услуги, немногим отличающиеся от услуг протокола IP. Протокол UDP обеспечивает доставку дейтограмм, но не требует подтверждения их получения. Протокол UDP не требует соединения с удаленным модулем UDP ("бессвязный" протокол). К заголовку IP-пакета UDP добавляет поля порт отправителя и порт получателя, которые обеспечивают мультиплексирование информации между различными прикладными процессами, а также поля длина UDP-дейтограммы и контрольная сумма, позволяющие поддерживать целостность данных. Таким образом, если на уровне IP для определения места доставки пакета используется адрес, на уровне UDP - номер порта.
Область использования UDP
Примерами сетевых приложений, использующих UDP, являются NFS (Network File System), TFTP (Trivial File Transfer protocol, RFC-1350), RPC (Remote Procedure Call, RFC-1057) и SNMP (Simple Network Management Protocol, RFC-1157). Малые накладные расходы, связанные с форматом UDP, а также отсутствие необходимости подтверждения получения пакета, делают этот протокол наиболее популярным при реализации приложений мультимедиа, но главное его место работы - локальные сети и мультимедиа.
Прикладные процессы и модули UDP взаимодействуют через UDP-порты. Эти порты нумеруются, начиная с нуля. Прикладной процесс, предоставляющий некоторые услуги (сервер), ожидает сообщений, направленных в порт, специально выделенный для этих услуг. Программа-сервер ждет, когда какая-нибудь программа-клиент запросит услугу.
Например, сервер SNMP всегда ожидает сообщения, адресованного в порт 161. Если клиент snmp желает получить услугу, он посылает запрос в UDP-порт 161 на машину, где работает сервер. На каждой машине может быть только один агент SNMP, т.к. существует только один порт 161. Данный номер порта является общеизвестным, т.е. фиксированным номером, официально выделенным в сети Internet для услуг SNMP. Общеизвестные номера портов определяются стандартами Internet (см. табл. 1.7.1).
Данные, отправляемые прикладным процессом через модуль UDP, достигают места назначения как единое целое. Например, если процесс-отправитель производит 5 записей в порт, то процесс-получатель должен будет сделать 5 чтений. Размер каждого записанного сообщения будет совпадать с размером каждого прочитанного. Протокол UDP сохраняет границы сообщений, определяемые прикладным процессом. Он никогда не объединяет несколько сообщений в одно и не делит одно сообщение на части. Формат UDP-сообщений представлен ниже на рис. 1.1:
Формат UDP-дейтограмм
Рис. 1.1 - Формат UDP-дейтограмм
Длина сообщения равна числу байт в UDP-дейтограмме, включая заголовок. Поле UDP контрольная сумма содержит код, полученный в результате контрольного суммирования UDP-заголовка и поля данные. Не трудно видеть, что этот протокол использует заголовок минимального размера (8 байт). Таблица номеров UDP-портов приведена ниже (1.7.1). Номера портов от 0 до 255 стандартизованы и использовать их в прикладных задачах не рекомендуется. Но и в интервале 255-1023 многие номера портов заняты, поэтому прежде чем использовать какой-то порт в своей программе, следует заглянуть в RFC-1700. Во второй колонке содержится стандартное имя, принятое в Internet, а в третей - записаны имена, принятые в UNIX.
Таблица 1.7.1 Номера UDP-портов (более полный перечень в RFC-1700; Если какой-то номер порта в перечне отсутствует, это не означает, что он не зарезервирован и его можно использовать.
Схема вычисления контрольных сумм
Модуль IP передает поступающий IP-пакет модулю UDP, если в заголовке этого пакета указан код протокола UDP. Когда модуль UDP получает дейтограмму от модуля IP, он проверяет контрольную сумму, содержащуюся в ее заголовке. Если контрольная сумма равна нулю, это означает, что отправитель ее не подсчитал. ICMP, IGMP, UDP и TCP протоколы имеют один и тот же алгоритм вычисления контрольной суммы (RFC-1071). Но вычисление контрольной суммы для UDP имеет некоторые особенности. Во-первых, длина UDP-дейтограммы может содержать нечетное число байт, в этом случае к ней добавляется нулевой байт, который служит лишь для унификации алгоритма и никуда не пересылается. Во-вторых, при расчете контрольной суммы для UDP и TCP добавляются 12-байтные псевдо-заголовки, содержащие IP-адреса отправителя и получателя, код протокола и длину дейтограммы (см. рис. 1.2). Как и в случае IP-дейтограммы, если вычисленная контрольная сумма равна нулю, в соответствующее поле будет записан код 65535.
Рис. 1.2 - Псевдозаголовок, используемый при расчете контрольной суммы
Если контрольная сумма правильная (или равна 0), то проверяется порт назначения, указанный в заголовке дейтограммы. Если прикладной процесс подключен к этому порту, то прикладное сообщение, содержащиеся в дейтограмме, становится в очередь к прикладному процессу для прочтения. В остальных случаях дейтограмма отбрасывается. Если дейтограммы поступают быстрее, чем их успевает обрабатывать прикладной процесс, то при переполнении очереди сообщений поступающие дейтограммы отбрасываются модулем UDP. Следует учитывать, что во многих посылках контрольное суммирование не охватывает адреса отправителя и места назначения. При некоторых схемах маршрутизации это приводит к зацикливанию пакетов в случае повреждения его адресной части (адресат не признает его "своим").
Так как максимальная длина IP-дейтограммы равна 65535 байтам, максимальная протяженность информационного поля UDP-дейтограммы составляет 65507 байт. На практике большинство систем работает с UDP-дейтограммами с длиной 8192 байта или менее. Детальное описание форматов, полей пакетов и пр. читатель может найти в RFC-768.
1.7 Интерфейс прикладного программирования
Интерфейс прикладного программирования - набор готовых констант, структур и функций, используемых при программировании пользовательских приложений и обеспечивающих правильное взаимодействие между пользовательским приложением и операционной системой
API(Attachment Programming Interface) определяет функциональность, которую предоставляет программа (модуль, библиотека), при этом API позволяет абстрагироваться от того, как именно эта функциональность реализована.
Если программу (модуль, библиотеку) рассматривать как чёрный ящик, то API - это множество «ручек», которые доступны пользователю данного ящика, которые он может вертеть и дёргать.
Программные компоненты взаимодействуют друг с другом посредством API. При этом обычно компоненты образуют иерархию - высокоуровневые компоненты используют API низкоуровневых компонентов, а те, в свою очередь, используют API ещё более низкоуровневых компонентов.
По такому принципу построены протоколы передачи данных по Internet. Стандартный протокол Internet (сетевая модель OSI) содержит 7 уровней (от физического уровня передачи пакетов бит до уровня протоколов приложений, подобных протоколам HTTP и IMAP). Каждый уровень пользуется функциональностью предыдущего уровня передачи данных и, в свою очередь, предоставляет нужную функциональность следующему уровню.
Важно заметить, что понятие протокола близко по смыслу к понятию API. И то и другое является абстракцией функциональности, только в первом случае речь идёт о передаче данных, а во втором - о построении компьютерных приложений.
API библиотеки функций и классов включает в себя описание сигнатур и семантики функций.
Сигнатура функции - часть общего объявления функции, позволяющая средствам трансляции идентифицировать функцию среди других. В различных языках программирования существуют разные представления о сигнатуре функции, что также тесно связано с возможностями перегрузки функции в этих языках.
Иногда различают сигнатуру вызова и сигнатуру реализации функции. Сигнатура вызова обычно составляется по синтаксической конструкции вызова функции с учётом сигнатуры области видимости данной функции, имени функции, последовательности фактических типов аргументов в вызове и типе результата. В сигнатуре реализации обычно участвуют некоторые элементы из синтаксической конструкции объявления функции: спецификатор области видимости функции, её имя и последовательность формальных типов аргументов.
Например, в языке программирования Си++ простая функция однозначно опознаётся компилятором по её имени и последовательности типов её аргументов, что составляет сигнатуру функции в этом языке. Если функция является методом некоторого класса, то в сигнатуре будет участвовать и имя класса.
В языке программирования Java сигнатуру метода составляет его имя и последовательность типов параметров; тип значения в сигнатуре не участвует.
Семантика функции - это описание того, что данная функция делает. Семантика функции включает в себя описание того, что является результатом вычисления функции, как и от чего этот результат зависит. Обычно результат выполнения зависит только от значений аргументов функции, но в некоторых модулях есть понятие состояния. Тогда результат функции может зависеть от этого состояния, и, кроме того, результатом может стать изменение состояния. Логика этих зависимостей и изменений относится к семантике функции. Полным описанием семантики функций является исполняемый код функции или математическое определение функции.
Практически все операционные системы (Unix, Windows, Mac OS, и т. д.) имеют API, с помощью которого программисты могут создавать приложения для этой операционной системы. Главный API операционных систем - это множество системных вызовов.
В индустрии программного обеспечения общие стандартные API для стандартной функциональности имеют важную роль, так как они гарантируют, что все программы, использующие общий API, будут работать одинаково хорошо или, по крайне мере, типичным привычным образом. В случае API графических интерфейсов это означает, что программы будут иметь похожий пользовательский интерфейс, что облегчает процесс освоения новых программных продуктов.
С другой стороны, отличия в API различных операционных систем существенно затрудняют перенос приложений между платформами. Существуют различные методы обхода этой сложности - написание «промежуточных» API (API графических интерфейсов Qt, Gtk, и т. п.), написание библиотек, которые отображают системные вызовы одной ОС в системные вызовы другой ОС (такие среды исполнения, как Wine, cygwin, и т. п.), введение стандартов кодирования в языках программирования (например, стандартная библиотека языка C), написания интерпретируемых языков, реализуемых на разных платформах (sh, python, perl, php, tcl, Java, и т.д.).
Также необходимо отметить, что в распоряжении программиста часто находится несколько различных API, позволяющих добиться одного и того же результата. При этом каждый API обычно реализован с использованием API программных компонент более низкого уровня абстракции.
Например: для того, чтобы увидеть в браузере строчку «Hello, world!» достаточно лишь создать HTML-документ с минимальным заголовком, и простейшим телом, содержащим данную строку. Что произойдёт, когда браузер откроет этот документ? Программа-браузер передаст имя файла (или уже открытый дескриптор файла) библиотеке, обрабатывающей HTML-документы, та, в свою очередь, при помощи API операционной системы прочитает этот файл, и разберётся в его устройстве, затем последовательно вызовет через API библиотеки стандартных графических примитивов операции типа «очистить окошко», «написать выбранным шрифтом Hello, world!», при этих операциях библиотека графических примитивов обратится к библиотеке оконного интерфейса с соответствующими запросами, уже эта библиотека обратится к API операционной системы с запросами вида «а положи-ка мне в буфер видеокарты вот это».
При этом практически на каждом из уровней реально существует несколько возможных альтернативных API. Например: мы могли бы писать исходный документ не на HTML, а на LaTeX, для отображения могли бы использовать любой браузер. Различные браузеры, вообще говоря, используют различные HTML-библиотеки, и, кроме того, всё это может быть (вообще говоря) собрано с использованием различных библиотек примитивов и на различных операционных системах.
Основными сложностями существующих многоуровневых систем API, таким образом, являются:
Сложность портирования программного кода с одной системы API на другую (например, при смене ОС);
Потеря функциональности при переходе с более низкого уровня на более высокий.
Грубо говоря, каждый «слой» API создаётся для облегчения выполнения некоторого стандартного набора операций. Но при этом реально затрудняется, либо становится принципиально невозможным выполнение некоторых других операций, которые предоставляет более низкий уровень API.
1.8 Пакетный файл
Пакетный файл (англ. batch file) - текстовый файл в MS-DOS, OS/2 или Windows, содержащий последовательность команд, предназначенных для исполнения командным интерпретатором. После запуска пакетного файла, программа - интерпретатор (как правило COMMAND.COM или CMD.EXE) читает его строка за строкой и последовательно исполняет команды. Пакетный файл - аналог shell script в Unix-подобных операционных системах.
Пакетные файлы полезны для автоматического запуска приложений. Основная область применения - автоматизация наиболее рутинных операций, что регулярно приходится совершать пользователю компьютера. Примерами таких операций могут служить - обработка текстовых файлов; копирование, перемещение, переименование, удаление файлов; работа с папками; архивация; создание резервных копий баз данных и т. п. Пакетные файлы поддерживают операторы if и goto (а в системах семейства Windows NT и расширенный оператор for), что позволяет обрабатывать результаты выполнения предыдущих команд или приложений и в зависимости от этого выполнять дальше тот или иной блок команд (как правило, в случае удачного завершения приложение возвращает 0 в переменной errorlevel; в случае неудачного - 1 или большее значение).
Пакетные файлы в DOS имеют расширение.bat; для других операционных систем они могут иметь другие расширения - например,.CMD в Windows NT и OS/2, или.BTM в 4DOS или подобных оболочках.
Пакетные файлы могут содержать как внутренние команды, обрабатываемые непосредственно COMMAND.COM или CMD.EXE, так и обращения к внешним утилитам, существующим в виде отдельных программ (.EXE файлов). Данные программы значительно расширяют возможности пакетных файлов.
Программирование пакетных файлов появилось в MS-DOS и Windows с самого зарождения этих операционных систем. Командные интерпретаторы этих систем предлагают два режима работы: интерактивный режим (когда пользователь непосредственно вводит команды в командной строке и немедленно их исполняет) и пакетный режим (когда пользователь запускает предварительно записанную последовательность команд). Концепция обоих режимов была почерпнута из различных Unix-оболочек, равно как и из других текстовых интерфейсов командной строки начала 1980-х годов, таких как CP/M.
Командный интерпретатор в MS-DOS имеет название COMMAND.COM. Эволюция этой ветви пакетного программирования прошла через различные версии MS-DOS к Windows 95, Windows 98 и, наконец, к Windows Me. Наиболее известным пакетным файлом в этих системах является AUTOEXEC.BAT, специальный пакетный файл, который исполняется во время загрузки операционной системы.
Новые версии Windows - Windows 2000, XP и Vista основаны не на MS-DOS, а на Windows NT. NT-подобные системы включают интерпретатор cmd.exe, который частично совместим с COMMAND.COM. Некоторые старые возможности MS-DOS недоступны, однако вместо них появились дополнительные возможности и команды. COMMAND.COM до сих пор включается в NT-подобные системы для обеспечения лучшей обратной совместимости.
Существуют различные другие командные интерпретаторы, разработанные не компанией Microsoft и предоставляющие расширенный синтаксис команд для пакетного программирования. Примером может служить 4DOS.
Также имеются различные компиляторы пакетных файлов, превращающие пакетные файлы в исполняемые программы.
В настоящее время в связи с широким использованием информационно-вычислительных сетей проявляется повышенный интерес к проблеме информационной безопасности. Один из наиболее распространенных и опасных видов угроз безопасности - это осознанные или не осознанные действия внутри организации, приводящие к потере информации. Одна из самых распространенных проблем заключается в запуске и использовании запрещенного программного обеспечения пользователем, несанкционированному подключению носителей информации, а также изменении рекомендуемых настроек системы. Это приводит к нарушению рабочего распорядка, снижению производительности труда, а иногда к потере важной информации и занесении вирусных программ.
В данной главе было рассмотрено: понятие информационной безопасности, понятие системы обеспечения информационной безопасности объектов, организационно-технические и режимные меры и методы защиты информации, программно-технические способы и средства обеспечения защиты информации, подробно рассмотрены средства защиты от несанкционированного доступа, средства обеспечения безопасности Windows, а также сокеты и принцип их работы. Анализируя данную главу, можно сделать вывод, что разрабатываемый программный продукт должен соответствовать функциональному назначению и придерживаться следующих принципов: системность, гибкость, устойчивость, эффективность. Рассмотренный теоретический материал был изучен и успешно применен при реализации программного продукта.
2. Разработка программного продукта
2.1 Понятие и обоснование выбора языка программирования
Язык программирования - формальная знаковая система, предназначенная для записи программ. Программа обычно представляет собой некоторый алгоритм в форме, понятной для исполнителя (например, компьютера). Язык программирования определяет набор лексических, синтаксических и семантических правил, используемых при составлении компьютерной программы. Он позволяет программисту точно определить то, на какие события будет реагировать компьютер, как будут храниться и передаваться данные, а также какие именно действия следует выполнять над этими данными при различных обстоятельствах.
В последнее время резко возрос интерес к программированию. Это связано с развитием и внедрением в повседневную жизнь информационно-коммуникационных технологий. Если человек имеет дело с компьютером, то рано или поздно у него возникает желание, а иногда и необходимость, программировать.
Среди пользователей персональных компьютеров в настоящее время наиболее популярно семейство операционных систем Windows и, естественно, что тот, кто собирается программировать, стремится писать программы, которые будут работать в этих системах.
Несколько лет назад рядовому программисту оставалось только мечтать о создании собственных программ, работающих в среде Windows, т. к. единственным средством разработки был Borland C++ for Windows, явно ориентированный на профессионалов, обладающих серьезными знаниями и опытом.
Delphi - это среда быстрой разработки, в которой в качестве языка программирования используется язык Delphi. Язык Delphi - строго типизированный объектно-ориентированный язык, в основе которого лежит хорошо знакомый программистам Object Pascal.
При выборе языка программирования к нему предъявлялись следующие требования:
стоимость;
качество исполняемого кода, под которой понимается эффективность использования современных процессоров, скорость работы, размер исполняемого файла;
время компиляции исходного кода;
распространенность, то есть доступность исходных кодов и компонентов сторонних разработчиков для изучения и применения в своих целях;
скорость разработки программы при использовании данного языка программирования.
Данный программный продукт создан в сфере разработки программ Delphi, так как он соответствовал всем вышеперечисленным требованиям.
информация защита программа администрирование
2.2 Анализ технического задания
Наименование программы
Полное наименование продукта: программа администрирования «Net Programm Administrator».
Краткое наименование: «Net Admin.».
Краткая характеристика области применения программы
Программа предназначена к применению для внутреннего использования на ГОУ НПО «Профессиональное училище № 32 г. Челябинска» одел IT.
Назначение разработки
Функциональное назначение программы
Функциональным назначением программы является ограничение запуска программ, не разрешенных корпоративной политикой предприятия-заказчика, отключение возможности подсоединения flash-накопителей, отключение доступа и изменения настроек системы, сетевое управление программным продуктом.
Эксплуатационное назначение программы
Программа должна эксплуатироваться в ГОУ НПО «Профессиональное училище № 32 г. Челябинска».
Конечными пользователями программы должны являться сотрудники отдела IT.
2.3 Требования к программе
Требования к функциональным характеристикам
Программа должна обеспечивать возможность выполнения перечисленных ниже функций:
Хранение, занесение и добавление списка pазрешенного/запрешенного программного обеспечения.
Отключение возможности запуска flash-накопителей.
Ограничение доступа пользователя к настройкам системы.
Требования к обеспечению надежного (устойчивого) функционирования программы
Надежное (устойчивое) функционирование программы должно быть обеспечено выполнением совокупности организационно-технических мероприятий, перечень которых приведен ниже:
организацией бесперебойного питания технических средств;
регулярным выполнением рекомендаций Министерства труда и социального развития РФ, изложенных в Постановлении от 23 июля 1998 г. «Об утверждении межотраслевых типовых норм времени на работы по сервисному обслуживанию ПЭВМ и оргтехники и сопровождению программных средств»;
регулярным выполнением требований ГОСТ 51188-98. Защита информации. Испытания программных средств на наличие компьютерных вирусов;
необходимым уровнем квалификации сотрудников профильных подразделений.
Время восстановления после отказа
Время восстановления после отказа, вызванного сбоем электропитания технических средств (иными внешними факторами), не фатальным сбоем (не крахом) операционной системы, не должно превышать времени, необходимого на перезагрузку операционной системы и запуск программы, при условии соблюдения условий эксплуатации технических и программных средств.
Время восстановления после отказа, вызванного неисправностью технических средств, фатальным сбоем (крахом) операционной системы, не должно превышать времени, требуемого на устранение неисправностей технических средств и переустановки программных средств.
Системный программист должен иметь минимум среднее техническое образование.
В перечень задач, выполняемых системным программистом, должны входить:
задача поддержания работоспособности технических средств;
задачи установки (инсталляции) и поддержания работоспособности системных и программных средств - операционной системы;
задача установки (инсталляции) программы.
Конечный пользователь программы (оператор) должен обладать практическими навыками работы с графическим пользовательским интерфейсом операционной системы.
Персонал должен быть аттестован минимум на 4 квалификационную группу по электробезопасности.
Требования к составу и параметрам технических средств
В состав технических средств должен входить IBM-совместимый персональный компьютер (ПЭВМ), включающий в себя:
процессор Pentium - 4 с тактовой частотой, 1.2 ГГц, не менее;
оперативную память объемом, 128 Mб, не менее;
жесткий диск объемом 10 Гб, и выше;
Требования к программным средствам, используемым программой
Системные программные средства, используемые программой, должны быть представлены локализованной версией операционной системы Windows ХР или Windows 2003.
2.4 Стадии и этапы разработки
Стадии разработки
Разработка должна быть проведена в три стадии:
разработка технического задания;
рабочее проектирование;
внедрение.
Этапы разработки
На стадии разработки технического задания должен быть выполнен этап разработки, согласования и утверждения настоящего технического задания.
На стадии рабочего проектирования должны быть выполнены перечисленные ниже этапы работ:
разработка программы;
разработка программной документации;
испытания программы.
На стадии внедрения должен быть выполнен этап разработки - подготовка и передача программы.
Содержание работ по этапам
На этапе разработки технического задания должны быть выполнены перечисленные ниже работы:
постановка задачи;
определение и уточнение требований к техническим средствам;
определение требований к программе;
определение стадий, этапов и сроков разработки программы и документации на неё;
выбор языков программирования;
согласование и утверждение технического задания.
На этапе разработки программы должна быть выполнена работа по программированию и отладке программы.
На этапе разработки программной документации должна быть выполнена разработка программных документов в соответствии с требованиями ГОСТ 19.101-77 и требованием п. «Предварительный состав программной документации» настоящего технического задания.
На этапе испытаний программы должны быть выполнены перечисленные ниже виды работ:
разработка, согласование и утверждение программы и методики испытаний;
проведение приемо-сдаточных испытаний;
корректировка программы и программной документации по результатам испытаний.
На этапе подготовки и передачи программы должна быть выполнена работа по подготовке и передаче программы и программной документации в эксплуатацию.
2.5 Руководство пользователя
Руководство клиента
Для запуска программы пользователю необходимо запустить файл sv.exe, после чего в трее появится иконка программы. При двойном щелчке по иконке, появится окно авторизации, в которое необходимо ввести логин и пароль.
Рис. 2.1 Основное окно
После ввода пароля появится главное окно программы. Основное окно состоит из нескольких блоков:
информационный блок - имя, ip-адрес.
контроль запрета программ - включение\отключение.
запуск flash-накопителей - включение\отключение запуска.
дополнительный блок - контроль над второстепенными настройками системы.
Рис. 2.2 Основное окно
При обращении к пункту меню «Настройка» «список запрещенных программ» откроется окно управления списком запрещенных программ. В этом окне происходит редактирование списка.
Рис. 2.3 Окно управления списком
При обращении к пункту меню «Лог операций» откроется окно операций, которые были произведены с помощью клиента или сервера.
Рис. 2.4 Окно Лог операций
При получении сообщения от администратора откроется окно MessageBox. В окне будет написано дата сообщения и текст сообщения
Рис. 2.5 Окно MessageBox
Руководство администратора
Для запуска программы пользователю необходимо запустить файл NetProgrammAdministrator.exe, после чего в трее появится иконка программы. При двойном щелчке по иконке, появится основное окно.
Рис. 2.6 Основное окно
Основное окно состоит из нескольких блоков:
Подключение - ip-адрес, Подсеть, порт.
Список компьютеров которые в сети.
Сохранение\Загрузка - сохраняет список копьютеров.
Рис. 2.7 Основное окно
При обращении к пункту меню «Сообщения» откроется окно управления сообщениями. В этом окне происходит отправка сообщений клиенту.
Окно состоит из нескольких блоков:
Сообщение - отправка сообщений "Ошибка, Предупреждение, Информация, Опастность" пользователю, который выбран в пункте «Подключения».
Сообщение в MessageBox - Отправляет сообщение в MessageBox.
Рис. 2.8 Окно управления сообщениями
При обращении к пункту меню «Монитор» откроется окно управления монитором. В этом окне происходит настройка разрешения монитор, работа с окнами и работа с рабочим столом клиента.
Окно состоит из нескольких блоков:
Окна - Содержит имя окон, которые открыты на клиенте.
Разрешение - В этом блоке можно устанавливать разрешение на клиенте.
Рис. 2.9 Окно управления монитором
При обращении к пункту меню «Процессы» откроется окно управления процессами. В этом окне можно узнать какие процессы запущенны и завершить процесс на компьютере клиента.
окно состоит из:
Списка процессов - Имя процесса, Имени пользователя под которым он запущен и PID уникального номера.
Кнопок обновить и завершить.
Рис. 2.10 Окно управления процессами
При обращении к пункту меню «CMD» откроется окно командной строки. В этом окне можно:
Создание на удалённом компьютере в указанном месте *.BAT (*.txt, *.ini) файла, с введённым содержимым.
Редактирование уже созданного файла.
Запуск *.BAT (*.txt, *.ini) файлов в скрытом от пользователя режиме.
Запуск любого файла на удалёном компьютере на исполнение.
Запуск файлов в скрытом от пользователя режиме.
Запуск с использованием дополнительных параметров запуска.
Рис. 2.11 Окно управления сообщениями
При обращении к пункту меню «Управление» откроется окно управления компьютером. В этом окне можно открывать и закрывать CD-Rom, работать с програмой Winamp, работать с системой “Заблокировать, Перезагрузить, Выключить, Спящий режим”на компьютере клиента.
Рис. 2.12 Окно управления
При обращении к пункту меню «Администратирование» откроется окно запрета программ. В этом окне можно запрещать запуск программ на компьютере клиента.
Подобные документы
Понятие базового и прикладного программного обеспечения. Информация, ее свойства и виды. Интерфейс ОС Windows. Программа управления файлами "Проводник". Windows-редакторы Paint и MS Word. MS Excel: расчет амортизации. Программа Internet Explorer.
практическая работа [1,1 M], добавлен 16.01.2011Характеристика программного продукта и стадий разработки. Расчет затрат на разработку и договорной цены, эксплуатационных расходов, связанных с использованием нового программного продукта. Оценка конкурентоспособности. Изучение, оценка рыночного спроса.
курсовая работа [139,0 K], добавлен 22.09.2008Возможности среды программирования delphi при разработке приложения с визуальным интерфейсом. Разработка спецификации программного обеспечения и на ее основе кода программного продукта. Отладка программы "трассировкой", ее тестирование и оптимизация.
курсовая работа [501,4 K], добавлен 07.12.2016Методика исследования и анализа средств аудита системы Windows с целью обнаружения несанкционированного доступа программного обеспечения к ресурсам вычислительных машин. Анализ угрозы информационной безопасности. Алгоритм работы программного средства.
дипломная работа [2,9 M], добавлен 28.06.2011Задачи, решаемые малым предприятием с использованием Интернет-ресурсов. Способы и схемы подключения к сети Интернет. Организация доступа к информации и требования к технологии управления сетью. Расчет суммарных затрат на разработку программного продукта.
дипломная работа [2,0 M], добавлен 17.10.2013Принципы создания программ в среде программирования Delphi 7.0. Реализация программного продукта, выполняющего решение задач по дисциплине "Численные методы". Разработка интерфейса программного продукта. Методы тестирования по стратегии "черного ящика".
курсовая работа [4,3 M], добавлен 18.06.2012Обзор существующих решений и обоснование выбора языка программирования. Разработка структурной схемы, интерфейса программного продукта. Технические требования к оборудованию, тест программного продукта, руководство системного программиста и оператора.
дипломная работа [2,0 M], добавлен 10.07.2012Особенности алгоритмов, критерии качества. Создание и применение программного продукта на языке Delphi. Тип операционной системы. Внутренняя структура программного продукта. Руководство пользователя и программиста, расчет себестоимости и цены программы.
дипломная работа [1,5 M], добавлен 12.06.2009Разработка программного обеспечения для микропроцессорных систем МК51, интерфейсы в системах связи, основы асинхронной связи. Этапы решения задачи на ЭВМ, принципы тестирования программ и их отладка. Расчет затрат на разработку программного продукта.
дипломная работа [270,6 K], добавлен 19.06.2010Краткая характеристика программного средства и стадии ее разработки, предъявляемые требования и функциональные особенности. Определение трудоемкости и состава группы исполнителей. Вычисление затрат на разработку программного продукта и договорной цены.
курсовая работа [464,5 K], добавлен 05.02.2016