Програмні продукти та комп'ютерні бази даних є предметом інтелектуальної праці фахівців високої кваліфікації. Процес проектування та реалізації програмних продуктів характеризується значними матеріальними та трудовими витратами, заснований на використанні наукомістких технологій та інструментарію, вимагає застосування та відповідного рівня дорогої обчислювальної техніки. Це зумовлює необхідність вжиття заходів щодо захисту інтересів розробника програм та творців комп'ютерних баз даних від несанкціонованого їх використання [56]. Програмне забезпечення є об'єктом захисту також у зв'язку зі складністю та трудомісткістю відновлення його працездатності, значимістю програмного забезпечення для роботи інформаційної системи. Програмний продукт та бази даних повинні бути захищені за декількома напрямками від впливу: Найпростіший і найдоступніший спосіб захисту програмних продуктів і баз даних обмеження доступу. Контроль доступу до програмного продукту та бази даних встановлюється за допомогою: Можуть також використовуватись криптографічні методи захисту інформації бази даних чи головних програмних модулів. Безпека програмного забезпечення у сенсі є властивістю даного програмного забезпечення функціонувати без прояви різних негативних наслідків конкретної комп'ютерної системи. Під рівнем безпеки програмного забезпечення (ПЗ) розуміється ймовірність того, що за заданих умов у процесі його експлуатації буде отримано функціонально придатний результат. Причини, що призводять до функціонально непридатного результату можуть бути різними: збої комп'ютерних систем, помилки програмістів і операторів, дефекти в програмах. При цьому дефекти прийнято розглядати двох типів: навмисні та ненавмисні. Перші є, зазвичай, результатом зловмисних дій, другі - помилкових дій людини. При дослідженні проблем захисту від навмисних дефектів неминуча постановка наступних питань: · хто потенційно може здійснити практичне впровадження програмних дефектів деструктивного впливу на програмний код, що виконується? · які можливі мотиви дій суб'єкта, який здійснює розробку таких дефектів? · як можна визначити наявність програмного дефекту? · як можна відрізнити умисний програмний дефект програмної помилки? · Які найімовірніші наслідки активізації деструктивних програмних засобів під час експлуатації комп'ютерних систем? При відповіді перше питання слід зазначити, що це - безпосередні розробники алгоритмів і програм для комп'ютерних систем. Вони добре знайомі з технологією розробки програмних засобів, мають досвід розробки алгоритмів та програм для конкретних прикладних систем, знають тонкощі існуючої технології відпрацювання та випробувань програмних компонентів та представляють особливості експлуатації та цільового застосування комп'ютерної системи (КС). Крім того, при експлуатації програмних комплексів можливий наступний зразковий алгоритм внесення програмного дефекту: дизассемблювання виконуваного програмного коду, отримання вихідного тексту, привнесення до нього деструктивної програми, повторна компіляція, коригування ідентифікаційних ознак програми (у зв'язку з необхідністю отримання програми «подібної») . Таким чином, такі маніпуляції можуть зробити сторонні висококласні програмісти, які мають досвід розробки та налагодження програм на асемблерному рівні. Як припущення при відповіді на друге питання слід зазначити, що алгоритмічні та програмні закладки можуть бути реалізовані у складі програмного компонента внаслідок таких факторів: · В результаті ініціативних зловмисних дій безпосередніх розробників алгоритмів та програм; · В результаті штатної діяльності спеціальних служб та організацій, а також окремих зловмисників; · В результаті застосування інструментальних засобів проектування ПЗ, що несуть шкідливе властивість автоматичної генерації деструктивних програмних засобів. Для опису мотивів зловмисних дій розробки програмних компонентів необхідний психологічний «портрет» зловмисника, що вимагає проведення спеціальних досліджень психологів і кримінологів у сфері психології програмування (психології кримінального програмування, див. главу 15). Однак деякі мотиви очевидні вже зараз і можуть диктуватись таким: · Нестійким психологічним станом алгоритмістів і програмістів, зумовленим складністю взаємовідносин у колективі, перспективою втратити роботу, різким зниженням рівня добробуту, відсутністю впевненості у завтрашньому дні тощо, внаслідок чого може виникнути, а згодом бути реалізована думка помсти; · незадоволеністю особистих амбіцій безпосереднього розробника алгоритму чи програми, вважає себе невизнаним талантом, у результаті може виникнути прагнення довести і показати комусь (зокрема й собі) у такий спосіб свої високі інтелектуальні можливості; · Перспективою виїзду за кордон на постійне місце проживання (перспективної переходу в іншу організацію, наприклад, конкуруючу) з надією отримати винагороду за відомості про програмну закладку та механізм її активізації, а також можливістю у такий спосіб заблокувати застосування певного класу програмних засобів за обраним місцем проживання ( місця роботи); · Потенційною можливістю отримати винагороду за усунення виниклого при випробуваннях або експлуатації системи «програмної відмови» і т.п. Крім того, необхідно мати на увазі, що в конструюванні шкідливої програми так чи інакше присутній привабливий творчий початок, який сам собою може стати метою.При цьому сам «творець» може слабко представляти всі можливі результати та наслідки застосування своєї «конструкції», або взагалі не замислюватись про них. Таким чином, правомірно стверджувати, що шкідливі програми, на відміну від широко застосовуваних електронних закладок, є більш витонченими об'єктами, що мають більшу скритність та ефективність застосування. Відповіді на три останні питання можна знайти в рамках методології забезпечення безпеки програмних засобів, що швидко розвивається, і оцінки рівня їх захищеності (розділи 2-14). До цього часу ми розглядали захист програмного забезпечення від руйнівних програмних засобів. Однак застосування зловмисником лише цих деструктивних засобів не вичерпує всього кола проблем, пов'язаних з проблематикою забезпечення безпеки програм. Існує широкий спектр загроз, віднесених до несанкціонованого копіювання, незаконного отримання, розповсюдження та використання програмних продуктів. "Програмне піратство" є, у зв'язку з великими ймовірними втратами, однією з основних проблем для фірм-розробників, так чи інакше, пов'язаних зі створенням та реалізацією програмного забезпечення. Програмні пірати купують або «беруть на прокат» необхідне програмне забезпечення і, якщо в ньому немає відповідного захисту, вони можуть скопіювати програми та використовувати їх без відповідної оплати (реєстрації, підтвердження ліцензійних угод, авторських прав тощо) на власний розсуд.Таким чином, питання захисту ПЗ від несанкціонованого копіювання, розповсюдження та використання є одним із найважливіших у комп'ютерній практиці.Усі відомі методи захисту ПЗ від несанкціонованого копіювання та поширення відносяться до організаційно-правових та інженерно-технічних методів. Під час вирішення зазначених завдань захисту сьогодні практично повністю відсутні теоретичні підстави. Зокрема, немає чіткого визначення власне проблеми та визначення того, що власне має бути її задовільним рішенням. Завдання захисту програм від несанкціонованого копіювання, на наш погляд, полягає у забезпеченні неможливості знаходження жодного ефективного методу створення здійснюваних копій програм, у той час як завдання захисту програм від несанкціонованого поширення полягає у забезпеченні того факту, що тільки виробник ПЗ зміг би довести в суді, що саме він розробив це ПЗ. При відповіді на питання про несанкціоноване копіювання програм необхідно відповісти на такі запитання: · що може зробити зловмисник («пірат») під час спроб вивчення програми? · що є суттєвими знаннями про програму? · що специфікація програми? Для того щоб відповісти на вищезазначені питання, необхідно розглядати найбільш зловмисну поведінку зловмисника. Тобто необхідно розглядати сценарій найгіршого випадку, коли передбачається, що зловмисник може виконувати перетворену програму на довільних даних на власний розсуд і може модифікувати дані, що циркулюють у обчислювальній системі, довільним чином. Таким чином, виходячи із загального розуміння проблеми необхідності захисту програм сучасних комп'ютерних систем від цілого набору зловмисних дій, можна перейти до сукупного визначення джерел загроз безпеці програмного забезпечення та узагальнених сценаріїв дій потенційного зловмисника, до детального опису та визначення загального характеру захисних дій. Сподобалася стаття? Додай її в закладку (CTRL+D) і не забудь поділитися з друзями: Безпека програмного забезпечення - це створення захищеного програмного забезпечення з властивим йому захистом, щоб воно продовжувало функціонувати під зловмисними атаками, до задоволення користувачів та власників програмного забезпечення. Ця стаття пояснює погрози та рішення, із загальної точки зору. Стандартний словник інформаційної безпеки також пояснюється. Ви повинні бути добре знайомі з комп'ютером та Інтернетом, щоб зрозуміти цю статтю; Ви повинні також вивчити комп'ютерну мову, наприклад, Perl, C, C ++, PHP і т.д. Захищені інформаційні та програмні пакети (додатки та документи). Інформація - це будь-яке повідомлення, яке комусь знадобиться. "Інформація" - це розпливчасте слово. Контекст, у якому він використовується, дає сенс. Це може означати новини, лекцію, підручник (або урок) чи рішення. Програмний пакет зазвичай є вирішенням деяких проблем або пов'язаних із ними проблем. У минулому вся не сказана інформація була написана на папері. Сьогодні програмне забезпечення можна розглядати як підмножину інформації. Програмне забезпечення може перебувати на комп'ютері або передаватися з одного комп'ютера до іншого.Файли, дані, електронні листи, записані голоси, записані відео, програми та програми знаходяться на комп'ютері. Перебуваючи на комп'ютері, він може бути пошкоджений. Перебуваючи у дорозі, він може бути пошкоджений. Будь-який пристрій із процесором та пам'яттю - це комп'ютер. Отже, у цій статті калькулятор, смартфон чи планшет (наприклад, iPad) – це комп'ютер. Кожен із цих пристроїв та їх мережеві середовища передачі мають програмне забезпечення або програмне забезпечення в дорозі, яка має бути захищена. Користувачеві може бути надано привілей для запуску файлу на комп'ютері. Користувачеві може бути надано привілей для читання коду файлу на комп'ютері. Користувачеві може бути надано привілей для зміни (запису) коду файлу на комп'ютері. Користувачеві можуть бути надані один, два або всі три з цих привілеїв. Є інші привілеї для операційної системи чи бази даних. Користувачі мають різні суми чи рівні привілеїв у системі. Щоб захистити програмне забезпечення, потрібно знати його загрози. Програмне забезпечення має бути захищене від несанкціонованого доступу до його даних. Він має бути захищений від незаконного використання (наприклад, заподіяти шкоду). Програмне забезпечення має бути захищене від розкриття конкурентам. Програмне забезпечення не повинно бути пошкоджене. Програмне забезпечення не повинно видалятися випадково. Програмне забезпечення не повинно бути порушене. Програмне забезпечення не повинно мати жодних змін, для яких не потрібно.Дані (програмне забезпечення) не повинні перевірятись без поважної причини, особливо сторонніми особами. Програмне забезпечення має бути скопійоване (піратське). Одна чи кілька цих баз, що призводять до певного типу класичної загрози. Це ситуація, коли людина (або програма) успішно представляє іншу людину (або програму) у певній програмній діяльності. Це робиться з використанням неправдивих даних, щоб отримати перевагу, яка є незаконною. Це ситуація, в якій хтось робить щось не так і відмовляється від того, що він не той, хто це зробив. Людина може використовувати підпис іншу людину, щоб вчинити неправильно. Порушення даних відбувається, коли безпечна чи особиста інформація навмисно чи ненавмисно передається до недовіреного середовища. Програмна мережа має програмне забезпечення, що працює на комп'ютерах мережі. Кожен користувач зазвичай використовує свій комп'ютер перед собою і зазвичай запитує послуги інших комп'ютерів в мережі. Зловмисник може вирішити залити сервер зайвими запитами. Сервер має обмежену кількість запитів, які може обробити за час. У цій схемі затоплення законні користувачі не можуть використовувати сервер так часто, як слід, оскільки сервер зайнятий, відповідаючи на запити злочинця. Це перевантажує сервер, тимчасово чи невизначений термін порушуючи роботу служб сервера.У ході цього вузол (сервер) уповільнюється в роботі для законних користувачів, тоді як зловмисник виконує своє зло, яке залишається непоміченим, тому що законні користувачі, які чекають на службу, не можуть знати, що відбувається в сервер. Добрим користувачам відмовляють в обслуговуванні, доки йде атака. Різні користувачі операційної системи чи програми мають різні привілеї. Таким чином деякі користувачі отримують більше користі від системи, ніж інші. Використання вразливості у програмному забезпеченні або упущення конфігурації для отримання підвищеного доступу до ресурсів або неавторизованої інформації – підвищення привілеїв. Наведені вище схеми класифікації можуть бути використані виявлення комп'ютерних вірусів і черв'яків. Одна або кілька наведених вище схем класифікації можуть використовуватися для програмних атак, які включають: крадіжку інтелектуальної власності, пошкодження бази даних, крадіжку особистих даних, саботаж і здирництво інформації. Якщо людина використовує одну або кілька схем для деструктивної зміни сайту, тому клієнти сайту втрачають довіру, це саботаж. Здирництво інформації - це крадіжка комп'ютера компанії або хибне отримання секретної інформації про компанію. Викрадений комп'ютер може мати секретну інформацію. Це може призвести до здирства, коли злодій вимагатиме оплату в обмін на вкрадену власність або інформацію. Коли щось є чутливим або притаманним вам за своєю суттю, тоді це особисте для вас. Це також стосується групи людей. Людина має виразити себе вибірково. Щоб досягти такої вибірковості, людина має планувати себе або планувати інформацію про себе; це конфіденційність.Група людей має висловлювати свою думку вибірково. Щоб досягти такої вибірковості, група має планувати себе або планувати інформацію про себе; це конфіденційність. Людина має захищати себе вибірково. Щоб отримати такий вибірковий захист, людина повинна захищати себе або захищати інформацію про себе вибірково; тобто конфіденційність. Група людей має захищати себе вибірково. Щоб досягти такого виборчого захисту, група має захищати себе або захищати інформацію про себе вибірково; тобто конфіденційність. Коли ви подорожуєте до іншої країни, ви дістанетеся до порту цієї країни. У порту співробітник поліції попросить вас ідентифікувати себе. Ви пред'явите паспорт. З паспорта співробітник поліції дізнається ваш вік (з дати народження), вашу стать і вашу професію, і він подивиться на вас (ваша особа); це ідентифікація. Поліцейський порівняє ваше справжнє обличчя та фотографію у паспорті. Він також оцінить ваш вік за тим, що зазначено у паспорті, щоб дізнатися, чи це ви. Дивитися на вас і пов'язувати свій вік, стать та професію з вами - це ідентифікація. Перевірка справжності вашої особи та вашої фотографії та оцінка відповідності вашої презентації вашому віку – це автентифікація. Ідентифікація асоціює людину чи щось із певними атрибутами. Вказівка особи також є ідентифікацією. Аутентифікація – це підтвердження того, що особистість (ідентифікація) є істинною. Іншими словами, автентифікація – це акт підтвердження твердження. У обчислювальної техніки найпоширенішим способом аутентифікації є використання пароля. Наприклад, на сервері багато користувачів.При вході в систему ви вказуєте свою особу (ідентифікуєте себе) з вашим іменем користувача. Ви підтверджуєте свою особу за допомогою пароля. Ваш пароль має бути відомий лише вам. Аутентифікація може йти далі; ставлячи вам запитання на кшталт «У якому місті чи місті ви народилися?» Цілі безпеки в інформації: конфіденційність, цілісність та доступність. Ці три функції відомі як тріада CIA: C для конфіденційності, I для цілісності та A для доступності. Інформація не повинна розкриватися неуповноваженим особам, неавторизованим особам чи неавторизованим процесам; це конфіденційність інформації в галузі інформаційної безпеки (а також безпеки програмного забезпечення). Крадіжка паролів або відправлення конфіденційних листів неправильній особі порушує конфіденційність. Конфіденційність є компонентом конфіденційності, який захищає інформацію від неуповноважених осіб, неавторизованих осіб чи несанкціонованих процесів. Інформація чи дані мають життєвий цикл. Іншими словами, інформація або дані мають час початку та час закінчення. У деяких випадках після закінчення життєвого циклу інформація (або дані) має бути стерта (юридично). Цілісність складається з двох функцій: 1) підтримання та забезпечення точності інформації (або даних) протягом усього життєвого циклу та 2) повнота інформації (або даних) протягом усього життєвого циклу. Таким чином, інформація (або дані) не повинна бути скорочена або змінена несанкціонованим або невиявленим способом. Щоб будь-яка комп'ютерна система могла виконувати свої завдання, інформація (або дані) має бути доступна за потреби.Це означає, що комп'ютерна система та середовище її передачі повинні працювати правильно. Доступність може бути скомпрометована оновленнями системи, збоями обладнання та перебоями живлення. Доступність може бути скомпрометована атаками типу «відмова в обслуговуванні». Коли хтось використовує вашу особу та ваш підпис для підписання контракту, який він ніколи не виконував, безвідмовність – це коли ви не можете успішно заперечувати в суді, що ви не створили договір. Наприкінці контракту сторона, яка пропонує послугу, мала запропонувати послугу; сторона, яка сплачувала, повинна була зробити платіж. Щоб зрозуміти, як застосовна безвідмовність до цифрового зв'язку, ви повинні спочатку дізнатися значення ключа і значення цифрового підпису. Ключ – це шматок коду. Цифровий підпис - це алгоритм, який використовує ключ для створення іншого коду, який порівнюється з письмовим підписом відправника. У сфері цифрової безпеки невідмовність забезпечується (не обов'язково гарантується) цифровим підписом. У сфері безпеки програмного забезпечення (або інформаційної безпеки) відсутність заперечення стосується цілісності даних. Шифрування даних (яке ви, можливо, чули) у поєднанні з цифровим підписом також сприяє конфіденційності. Цілі безпеки в інформації: конфіденційність, цілісність та доступність. Проте, відмова від авторства є ще однією функцією, яку ви повинні враховувати під час роботи з інформаційною безпекою (або безпекою програмного забезпечення). На погрози можна реагувати одним або декількома з наступних трьох способів: В інформаційній безпеці, частиною якої є безпека програмного забезпечення, управління доступом є механізмом, який гарантує, що тільки правомочні користувачі можуть отримати доступ до захищених ресурсів у цій системі з різними заслуженими привілеями. В даний час популярним способом забезпечення інформаційної безпеки є забезпечення контролю доступу. Це включає такі заходи, як перевірка вхідних даних для програми, встановлення антивіруса, використання брандмауера в локальній мережі та використання безпеки транспортного рівня. Коли ви очікуєте дату як введення для програми, але користувач вводить число, таке введення має бути відхилено. Це перевірка введення. Встановлений на вашому комп'ютері антивірус запобігає пошкодженню файлів на вашому комп'ютері вірусами. Це допомагає у доступності програмного забезпечення. Правила можуть бути зроблені для моніторингу та контролю вхідного та вихідного трафіку локальної мережі, щоб захистити мережу. Коли такі правила реалізовані як програмне забезпечення в локальній мережі, це брандмауер. Безпека транспортного рівня (TLS) – це протокол безпеки, розроблений для забезпечення конфіденційності та безпеки даних при передачі через Інтернет. Це включає шифрування зв'язку між відправляючим хостом і приймаючим хостом. Забезпечення інформаційної безпеки шляхом забезпечення контролю доступу називається програмним забезпеченням безпеки, яке відрізняється від програмного забезпечення безпеки, як описано нижче. Обидва підходи мають ту саму мету, але вони різні. Програми, як вони написані сьогодні, мають багато програмних уразливостей, які програмісти дедалі більше усвідомлювали за останні 20 років. Більшість атак здійснюються з використанням цих уразливостей, а не шляхом подолання чи обходу контролю доступу. Буфер нагадує масив, але без нав'язаної довжини. Коли програміст записує в буфер, можна несвідомо перезаписати його надто довго. Ця вразливість є переповнення буфера. Програмне забезпечення сьогодні усунулося з наслідками безпеки, включаючи помилки реалізації, такі як переповнення буфера, та недоліки проектування, такі як непослідовна обробка помилок. Це вразливість. Можливо, ви чули про читання на комп'ютерній мові, таких як чіти PHP, чіти Perl і чіти C++. Це вразливість. Безпека програмного забезпечення, на відміну від програмного забезпечення безпеки, долає ці вразливості шляхом написання захисного коду, в якому ці вразливості можна було б запобігти. У той час як програма використовується, так як виявляється більше вразливостей, розробники (програмісти) повинні шукати способи, щоб захисно перекодувати вразливості. Загроза, атака типу «відмова в обслуговуванні», не може бути зупинена контролем доступу, тому що для того, щоб виконавець міг це зробити, він уже повинен мати доступ до хоста (сервера).Його можна зупинити, увімкнувши деяке внутрішнє програмне забезпечення, яке відстежує дії користувачів на хості. Безпека програмного забезпечення – це надійна конструкція зсередини, яка ускладнює програмні атаки. Програмне забезпечення має бути самозахисним і, як мінімум, не мати вразливості. Таким чином, запуск безпечної мережі стає простіше та економічнішим. Програмне забезпечення безпеки розробляє захисний код зсередини програми, тоді як програмне забезпечення безпеки забезпечує (розробляє) контроль доступу. Іноді ці дві проблеми перетинаються, але це часто не так. Безпека програмного забезпечення вже досить розвинена, хоча вона все ще розробляється, вона не така розвинена, як програмне забезпечення безпеки. Погані хакери досягають своїх цілей більше, використовуючи вразливість у програмному забезпеченні, ніж долаючи або оминаючи захисне програмне забезпечення. Є надія, що в майбутньому інформаційна безпека більше захищатиме програмне забезпечення, ніж програмне забезпечення безпеки. На даний момент має бути запущено як програмне забезпечення безпеки, так і програмне забезпечення безпеки. Безпека програмного забезпечення не буде ефективною, якщо наприкінці розробки програмного забезпечення не буде проведено ретельного тестування. Програмісти мають бути навчені виконання програмування захисного коду. Користувачі також повинні навчатися, як використовувати програми для захисту. У сфері безпеки програмного забезпечення розробник повинен переконатися, що користувач не отримує більше привілеїв, ніж він заслуговує. Безпека програмного забезпечення - це розробка програми із захисним кодуванням від уразливостей, що ускладнюють програмні атаки. З іншого боку, програмне забезпечення безпеки є виробництвом програмного забезпечення, яке забезпечує контроль доступу. Безпека програмного забезпечення все ще розробляється, але вона є більш перспективною для забезпечення інформаційної безпеки, ніж програмне забезпечення безпеки. Він уже використовується і його популярність зростає. У майбутньому знадобиться і те, й інше, але з програмним забезпеченням безпеки потрібно більше.Захист програмних продуктів
Навіщо та від кого потрібно захищати програмне забезпечення комп'ютерних систем
Про безпеку програмного забезпечення
Привілеї
Загрози#
Основи програмних загроз
Класи програмної загрози
Спуфінгова атака
Зречення#
Дані порушення #
Атака відмови в обслуговуванні
Підвищення привілеїв
Конфіденційність#
Ідентифікація та Аутентифікація#
Цілі безпеки #
Конфіденційність#
Цілісність #
Доступність #
Невідмовність #
Відповіді на погрози
Контроль доступу #
Поточне рішення для інформаційної безпеки
Власна безпека програмного забезпечення
Висновок