Skip to content

Latest commit

 

History

History
88 lines (55 loc) · 15.9 KB

silabus-info.md

File metadata and controls

88 lines (55 loc) · 15.9 KB

Загальна інформація

  • Галузь знань: 12 Інформаційні технології
  • Спеціальність: 123 Компʼютерна інженерія
  • Освітня програма: "Сучасне програмування, мобільні пристрої та комп’ютерні ігри"
  • Рівень вищої освіти: другий (магістерський)
  • Вид дисципліни: професійна підготовка; обовʼязкова
  • Форма навчання: денна
  • Лекцій: 16 годин
  • Лабораторних занять: 32 годин
  • Практичних занять: -- годин
  • Форма контролю: екзамен
  • Термін викладання для освітньо-кваліфікаційного рівня "магістр": 9 семестр

Мета навчальної дисципліни "Сучасні технології безпечного програмування" є отримання студентами загальних відомостей про сучасні технології створення безпечного програмного забезпечення; отримання знань та базових навичок практичного застосування реверс-інжинірингу для аналізу ступеню захисту існуючого "закритого" програмного продукту. Курс містить практичні вправи для ознайомлення студентів з базовими принципами криптографії та програмування для вирішення поставлених задач з використання безпечних заходів як для десктопного програмного забезпечення, так і Web-додатків.

Компетентності:

  • Z9. Здатність застосовувати методи математичного та комп’ютерного моделювання для дослідження та проектування процесів та систем в галузі інформаційних технологій.
  • Р1. Здатність проектувати комп’ютерні системи й засоби усіх рівнів складності, проводити вибір їх компонентів згідно з вимогами та умовами експлуатації, використовуючи вимоги державних стандартів та відповідних нормативних документів.
  • P9. Здатність проектувати програмні компоненти та комплекси.
  • P17. Здатність проектувати безпечні програми.

Результати навчання:

  • N6. Знати вимоги державних стандартів та нормативних документів щодо розробки й супроводження програмних засобів.
  • N9. Знати принципи побудови клієнтських та серверних додатків.

Вступ

Збільшення залежності людського суспільства від мережевих програмних систем супроводжується збільшенням кількості нападів, скоєних на ці системи. Такі напади - спрямовані проти урядів, корпорацій, навчальних закладів та приватних осіб - призводять до втрати і компрометації конфіденційних даних, пошкодженню систем, втрат продуктивності і фінансових втрат. Хоча проблема сьогоднішніх атак в Інтернеті — це не більше, ніж просто невелика незручність, велика кількість більше свідчень того, що злочинці, терористи й інші шкідники шукають і використовують уразливості в програмних системах для досягнення своїх цілей. Сьогодні швидкість відкриття вразливостей програмного забезпечення становить понад 4000 на рік. Це викликано проєктуванням і реалізацією програмного забезпечення, які не захищають системи належним чином, і поширеною практикою програмування, коли програмісти недостатньо зосереджуються на ліквідації дефектів реалізації, які призводять до появи уразливості. Спостерігається також стійкий прогрес у витонченості і ефективності атак зловмисників, що швидко розробляють нові шкідливі сценарії, які використовують виявлені в програмах уразливості. Потім ці сценарії запроваджуються для несанкціонованого доступу до інформації, а взаємообмін такими сценаріями сприяє їх широкому розповсюдженню. Ці сценарії в поєднанні з програмами, автоматично скануючими мережу в пошуках уразливих систем, і їх атаки призводять до вибухоподібного поширення нападів на обчислювальні системи.

Велика кількість виявлених щороку вразливостей призводить до перевантаженості адміністраторів роботою з виправлення існуючих систем. Виправлення для цих програм можуть бути важко застосовними або мають несподівані побічні ефекти. З того моменту, коли розробник випускає оновлення безпеки, і до моменту його установлення на 90-95 % уразливих комп'ютерів можуть пройти місяці або навіть роки. Раніше користувачі Інтернету в значній мірі спиралися на можливості інтернет-спільноти в цілому досить швидко реагувати на атаки на систему безпеки і зводити завдані збитки до мінімуму. Сьогодні, однак, стає ясно, що ми досягли межі ефективності наших реактивних рішень. Незважаючи на всі зусилля окремих організацій з раціоналізації та автоматизації процедур виправлень, кількість вразливостей в комерційних програмних продуктах сьогодні знаходиться на рівні, що не дозволяє ніяким, крім самих забезпечених будь-якими ресурсами, організаціям йти в ногу з новими виправленнями вразливостей. Є дуже мало свідчень поліпшень в області безпеки для більшості програмних продуктів. Багато розробників програмного забезпечення не засвоїли уроки з виявлених вразливостей і не застосовують належні стратегії для пом'якшення наслідків. Про це свідчить той факт, що CERT / CC1 продовжує знаходити ті ж типи вразливостей в останніх версіях продуктів, які були і в попередніх версіях. Взяті разом, ці фактори вказують, що слід очікувати значних економічних втрат від атак і збоїв в обслуговуванні навіть під час відгуку, меншому, ніж ми можемо реально сподіватися досягти. Агресивний, скоординовану відповідь як і раніше необхідний, але ми повинні удосконалені системи, зламати які буде істотно складніше.

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

Методи навчання

На лекційних, практичних та лабораторних заняттях використовуються: розповідь, пояснення, демонстрація, дискусія.

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

На лабораторних заняттях студенти виконують та демонструють індивідуальні завдання по аналізу та розробці програмних продуктів. Для цього вони використовують необхідні програмні та апаратні інструментальні засоби: середовище розробки, декомпілятори, персональні комп’ютери (або ноутбуки).

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

За джерелами знань використовуються такі методи навчання: словесні – розповідь, пояснення, інструктаж; наочні – демонстрація, ілюстрація; лабораторна робота, вправи, контрольні роботи. За характером логіки пізнання використовуються такі методи: аналітичний, синтетичний, аналітико-синтетичний, індуктивний, дедуктивний. За рівнем самостійної розумової діяльності використовуються методи: проблемний, частково-пошуковий, дослідницький.

Методи контролю

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

Контроль складової робочої програми, яка освоюється під час самостійної роботи студента, проводиться:

  • з лекційного матеріалу – шляхом перевірки контрольних робіт;
  • з лабораторних занять – за допомогою перевірки виконаних завдань.

Семестровий контроль проводиться у формі екзамену у терміни, встановлені навчальним планом.

Семестровий контроль проводиться в усній та письмовій формах по екзаменаційних білетах, які включають екзаменаційні запитання та контрольні завдання (задачі).

Результати поточного контролю (поточна успішність) можуть враховуватись як допоміжна інформація для виставлення оцінки з даної дисципліни.

Відповідно до порядку визнання результатів навчання, здобутих у неформальній та/або інформальній освіті в НТУ "ХПІ", отримані надбання можуть бути частково зарахованими у вигляді балів за лабораторні заняття.

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

Семестровий контроль проводиться у формі екзамену у терміни, встановлені навчальним планом у усній або письмовій формі за екзаменаційними білетами, які включають екзаменаційні запитання та контрольні завдання (задачі). За умови дистанційного навчання екзамени проходять за допомогою функціоналу Microsoft Teams.

Перелік рекомендованої літератури

  1. Christian Collberg, Jasvir Nagra "Surreptitious Software: Obfuscation, Watermarking, and Tamperproofing for Software Protection: Obfuscation, Watermarking, and Tamperproofing for Software Protection". ISBN 0-321-54925-2.
  2. Robert C. Seacord "Secure Coding in C and C++". ISBN: 978-0321822130
  3. Pavel Kravchenko, Bohdan Skriabin, Oksana Dubinina "Blockchain And Decentralized Systems". 2018
  4. Greg Hoglund, Gary McGraw “Exploiting Software. How to Break Code”, Addison-Wesley Publishing Company, 2004
  5. Gary McGraw “Software Security. Building Security in”, Addison-Wesley Publishing Company, 2006
  6. Jonh Viega, Gary McGraw “Building secure software. How to Avoid Security Problems the Right Way”, Addison-Wesley Publishing Company, 2005
  7. Варфоломеев А.А. Основы информационной безопасности: Учеб. пособие. – М.: РУДН, 2008. – 412 с.

Інформаційні ресурси в інтернеті