Материал: Розробка підсистеми взаємодії адміністратора безпеки з системою виявлення вторгнень Prelude

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Серед основних її переваг можна назвати такі:

чистий синтаксис (для виділення блоків слід використовувати відступи);

переносимість програм (що властиве більшості інтерпретованих мов);

стандартний дистрибутив має велику кількість корисних модулів (включно з модулем для розробки графічного інтерфейсу);

можливість використання Python в діалоговому режимі (дуже корисне для експериментування та розв'язання простих задач);

стандартний дистрибутив має просте, але разом із тим досить потужне середовище розробки, яке зветься IDLE і яке написане на мові Python;

зручний для розв'язання математичних проблем (має засоби роботи з комплексними числами, може оперувати з цілими числами довільної величини, у діалоговому режимі може використовуватися як потужний калькулятор).має ефективні структури даних високого рівня та простий, але ефективний підхід до об'єктно-орієнтованого програмування. Елегантний синтаксис Python, динамічна обробка типів, а також те, що це інтерпретована мова, роблять її ідеальною для написання скриптів та швидкої розробки прикладних програм у багатьох галузях на більшості платформ.

Інтерпретатор мови Python і багата стандартна бібліотека (як вихідні тексти, так і бінарні дистрибутиви для всіх основних операційних систем) можуть бути отримані з сайту Pythonwww.python.org, і можуть вільно розповсюджуватися. Цей самий сайт має дистрибутиви та посилання на численні модулі, програми, утиліти та додаткову документацію.

Інтерпретатор мови Python може бути розширений функціями та типами даних, розробленими на C чи C++ (або на іншій мові, яку можна викликати із C). Python також зручна як мова розширення для прикладних програм, що потребують подальшого налагодження. Python портований та працює майже на всіх відомих платформах - від ПК до мейнфреймів. Існують порти під Microsoft Windows, всі варіанти UNIX (включаючи FreeBSD та GNU/Linux), Plan 9, Mac OS та Mac OS X, iPhoneOS 2.0 і вище, Palm OS, OS/2, Amiga, AS/400 та навіть OS/390, Symbian та Android.Python - стабільна та поширена мова. Він використовується в багатьох проектах та в різних якостях: як основна мова програмування або для створення розширень та інтеграції застосувань. На Python реалізована велика кількість проектів, також він активно використовується для створення прототипів майбутніх програм.

Потужність і гнучкість мови програмування Python це його найбільша перевага від інших мов [16].

Отже, Python має простий і ясний синтаксис, його бібліотеки містять лаконічну документацію, а процес тестування та кодування - досить комфортний. Перенесення коду з однієї платформи на іншу - майже безболісний.

Для розробри підсистеми взаємодії адміністратора безпеки з системою виявлення вторгнень Prelude було обрано програмне середовище Virtual Studio з безкоштовним розширенням Python Tools for Virtual Studio (PTVS) як Integrated Development Environments (IDE) для Python. Studio допомагає писати код швидше, підтримуючи безліч засобів і можливостей, які підвищують продуктивність праці: технологію IntelliSense, автозавершення операторів, автоматичне виділення кольором синтаксичних конструкцій, пошук методів, перевірку синтаксису і типів, оптимізацію (рефакторінг) коду, управління фрагментами коду і багато іншого.

Пакет PTVS додає в IDE VS можливість повноцінної підтримки мови програмування Python, редагування коду з підсвічуванням, навігацією по коду, налагодженням, профілюванням і т.п. Virtual Studio у поєднанні PythonTools становить повноцінне безкоштовне середовище розробки на мові Python. Вибором PTVS для розробки підсистеми також послужила його відносна простота в установці та налаштуванні.підтримуємо практично всі реалізації Python в тій чи іншій мірі - CPython, IronPython, Jython, PyPy, Stackless - але пріоритетним є підтримка стандартного, і використовуваного більшістю розробників інтерпретатора CPython.

2.5 Проектування бази даних підсистеми

Обґрунтування вибору моделі «сутність-зв'язок»

Основою бази даних є модель даних - фіксована система понять і правил для представлення даних структури, стану і динаміки проблемної області в базі даних. Подання інформації про предметну область пов'язане з моделюванням даних. Нині існують різні моделі даних зі своїми перевагами й недоліками, і кожна з них має сферу застосування.

Дослідження в галузі моделювання даних розпочались у 80-ті рр. минулого сторіччя, коли Е. Кодд уперше ввів поняття моделі даних [17]. Моделі даних за можливостями побудови опису предметної області в термінах, близьких до термінів предметної області, можна поділити на дві групи. До першої належать універсальні моделі даних: ієрархічна, мережева, реляційна, об'єктно-орієнтована, що дозволяють розв'язувати широке коло задач, але елементи даних цих моделей мають порівняно малу інформативність. До другої групи належать моделі, що забезпечують подання інформації на рівні, близькому до уявлень спеціалістів предметної області, яких не цікавлять способи подання даних та їх взаємозв'язків. Моделі другої групи використовують для побудови концептуальних моделей, які потім можна транслювати в моделі першої групи. До даної групи можна віднести, наприклад, модель "сутність-зв'язок" [18], семантичну об'єктну модель. Однією з найпопулярніших концептуальних мод модель "cутність-зв'язок", або ER-модель (англ. - Entity Relationship model). На використанні різновидів даної моделі базуються більшість сучасних підходів до проектування моделей даних (головним чином - реляційних або об'єктно-орієнтованих). Модель "сутність-зв'язок" є простою візуальною моделлю даних (графічною нотацією). Можна провести аналогію між елементами реляційної моделі даних і елементами моделі «сутність-зв’язок». Реляційні відносини відповідають наборам сутностей, а кортежі - сутностям. Тому, також як і в моделі «сутність-зв’язок» стовпці в таблиці, що представляє реляційне відношення, називають атрибутами.

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

Іменоване безліч пар «ім’я атрибута - ім’я домену» називається схемою відношення. Потужність цієї множини - називають ступенем чи «арністю» відносини. Набір іменованих схем відносин представляє із себе схему бази даних.

Атрибут, значення якого однозначно ідентифікує кортежі, називається ключовим (або просто ключем). У нашому випадку ключем є атрибут «Табельний номер», оскільки його значення унікально для кожного працівника підприємства. Якщо кортежі ідентифікуються тільки зчепленням значень декількох атрибутів, то говорять, що відношення має складовий ключ. Ставлення може містити кілька ключів. Завжди один із ключів оголошується первинним, його значення не можуть обновлятися. Всі інші ключі відносини називаються можливими ключами.

Модель "сутність-зв'язок" - це модель даних, що використовується при проектуванні різноманітних моделей (інформаційних систем, баз даних, архітектур комп'ютерних додатків та інших систем) і є високорівневою концептуальною моделлю. Вона ґрунтується на деякій важливій семантичній інформації про реальний світ і є графічною нотацією, за допомогою якої можна описувати об'єкти логічних моделей даних і відношення між об'єктами. У даному контексті модель "сутність-зв'язок" є мета моделлю даних, тобто засобом специфікації логічних моделей даних, що будуються на основі вихідної концептуальної моделі даних. Модель "сутність-зв'язок" використовують при концептуальному моделюванні для отримання концептуальної моделі, яку потім транслюють у логічні моделі, зазвичай реляційні або об'єктно-орієнтовані [19]. Модель "сутність-зв'язок" запропонував П. Чен із метою впорядкування задачі проектування моделей, її проект був опублікований у 1976 р.[20]. Дана модель задовольняє дві важливі умови:

потужність її засобів дозволяє досить адекватно описувати структуру різноманітних предметних областей;

розрив між можливостями моделі та CASE-засобів (Computer Aided Sof ftware Engineering1), що її підтримують, не надто великий.

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

Базовими елементами моделі "сутність-зв'язок" є сутності, атрибути і зв'язки. У цьому підрозділі розглядаються й уточнюються дані елементи. З об'єктами моделі "сутність-зв'язок" пов'язані поняття: тип - набір однорідних предметів, явищ, що виступають як єдине ціле; екземпляр - конкретний елемент набору, який (набір) визначає деякий тип; множина - конкретний набір екземплярів типу в деякий момент часу.

Очевидно, що ототожнення понять типу та множини є помилкою, особливо під час розгляду моделей, пов'язаних із часовими аспектами. При розгляді сутностей і зв'язків необхідно розрізняти, з одного боку, поняття сутності (екземпляра сутності), типу сутності й множини сутності, з іншого - поняття зв'язку (екземпляра зв'язку), типу зв'язку та множини зв'язку.

Виходячи з наведеного зробити висновок, що найбільш сприятлива модель подання даних в розроблюваній базі даних є модель «сутність - зв'язок», яка є простою, доступною для розуміння розробника і користувача та збільшує швидкість розробки поставленої задачі оперативного аналізу.

2.7 Обґрунтування вибору системи керування базами даних

Без використання баз даних не обходиться створення практично жодного динамічного web-додатку. Всі сучасні системи управління контентом (CMS) працюють з використанням баз даних. При комп'ютерній обробці інформації впорядковані-якимось чином дані прийнято зберігати в базах даних. База даних являє собою набір інформації, організованої тим чи іншим способом. У базі даних можуть зберігатися тексти статей, посилання на графічні файли, аудіо, відео і т.д. Для роботи з базами даних передбачено спеціальне програмне забезпечення - СКБД, яке використовуються для зберігання і обробки великих обсягів інформації: додавання інформації, її редагування, перегляд, копіювання, видалення, пошук, сортування і т.д. [21]. MySQL - це система керування реляційними базами даних. До відмінних рис фізичної організації збереження і обробки даних, наявними в СКБД MySQL, можна віднести наступні:

програмний код написаний на мові С + +;

СКБД MySQL є кросплатформеним додатком з інтерфейсами С, C + +, Eiffel, Java, Perl, PHP, Python, Ruby і Tel.

можливість роботи в багатопроцесорних системах;

забезпечення транзакційних і нетранзакційних механізмів зберігання;

використання дуже швидких дискових таблиць (MylSAM) із стисненням індексів на основі бінарних дерев (В-дерев);

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

швидкодію системи розподілу пам'яті, заснованої на потоках;

можливість зберігання в пам'яті хеш-таблиць як тимчасових;

функції SQL реалізовані з використанням високо оптимізованої бібліотеки класів і повинні виконуватися гранично швидко. Як правило, будь-якого розподілу пам'яті після ініціалізації запиту не виконується;

код MySQL протестований за допомогою інструментів пошуку витоку пам'яті;

сервер доступний як окрема програма для використання в клієнт-серверної мережевий середовищі. Крім того, він також поставляється у вигляді бібліотеки, яка може бути вбудована в окремі автономні програми. Такі програми можуть застосовуватися в ізольованому середовищі або середовищі, що не має доступу до мережі;

На синтаксичному рівні даних виділяються наступні переваги:

безліч типів даних для стовпців таблиць: знакові табез знакові, цілі і просторові типи OpenGIS;

записи фіксованої і змінної довжини;

повна підтримка операцій і функцій в конструкціях SELECT і WHERE запитів, підтримка псевдонімів для таблиць і стовпців, як вимагає стандарт SQL.

повна підтримка конструкцій GROUP BY і ORDER BY. Підтримка групових функцій (COUNT (), COUNT (DISTINCT ), AVG (), STD (), SUM (), ІGROUP_CONCAT () MAX (), MIN (),);

підтримка LEFT OUTER JOIN і RIGHT OUTER JOIN як з синтаксисом SQL, так і з синтаксисом ODBC;

оператори DELETE, insert, REPLACE і UPDATE повертають кількість рядків, які були змінені. Авангард-чемпіон. Замість цього можна задати повернення кількості рядків, які відповідають запиту, для чого буде потрібно встановити відповідний прапор при підключенні до сервера;

специфічна для MySQL команда SHOW може бути використана для добування інформації про бази даних, таблицях і індексах. Команда EXPLAIN дозволяє переглянути, як оптимізатор виконує запит;

клієнтам надано можливість підключатися до сервера MySQL, використовуючи сокети TCP / IP на будь-якій платформі. У Windows-системах сімейства NT (NT, 2000 або ХР) клієнти можуть підключатися з використанням іменованих каналів. У системах на базі UNIX клієнти можуть підключатися через файли сокетів UNIX-доменів;

інтерфейс Connector / ODBC дозволяє MySQL підтримувати клієнтські програми, які використовують ODBC-з'єднання. Наприклад, для підключення до сервера MySQL можна використовувати MS Access. Клієнтське програмне забезпечення може виконуватися під управлінням Windows або UNIX. Вихідні тексти інтерфейсу Connector / ODBC доступні. Підтримуються всі функції ODBC 2.5, так само як і безліч інших;

сервер MySQL має вбудовану підтримку SQL-операторів для перевірки, оптимізації і відновлення таблиць. Ці оператори можна виконувати в режимі командного рядка, використовуючи клієнтський додаток mysqlcheck. MySQL включає також myisamchk - дуже швидку утиліту командного рядка для реалізації тих же операцій над таблицями MylSAM.

Таким чином, СУБД MySQL є досить потужним інструментом для розробки додатків, різних за структурою і призначенням. Притаманні СКБД MySQL особливості та можливості дозволяють реалізувати досить складні за своєю структурою, об'ємні бази даних, що складаються з безлічі таблиць з даними певних типів. Характер зв'язку між таблицями також може бути повною мірою вказаний для всіх відносин. Специфічні команди дозволяють швидко виконувати ряд операцій з таблицями, полями та даними, що в них знаходиться.

.8 Концептуальне проектування бази даних

Виходячи з поставленого завдання була розроблена база даних розташована на сервері mysql та складається з набору таблиць, зв’язаних між собою. Концептуальну схему створеної бази даних зображено на рис.2.4. та складається з шести таблиць, де Prewikka _ Filter, Prewikka _ Filter_ Criterion, Prewikka _ Permission, Prewikka_Session, Prewikka_Version- таблиці вимірів та Prewikka_User - таблиця фактів.

Рис.2.4. Концептуальна схема бази даних

          Кожна таблиця створеної бази даних необхідна для збереження інформації, що фіксуюється розроблюваною системою підтримки прийняття рішень в системою виявлення вторгнень. Так, як приклад, таблиця Prewikka_User призначена для збереження даних про налаштування обліковіого запису користувача, таблиця Prewikka_Permission- для збереження привілеїв, що надані користувачам у використанні розроблюваної системи, таблиця Prewikka_Version призначена для зберігання версії СППР, для подальшого оновлення її налаштувань.

.8 Фізичне проектування бази даних підсистеми

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