Розробка програмного забезпечення

Розробляє та створює/програмує нові (або модифікує існуючі) комп’ютерні додатки, програмне забезпечення або спеціальні програми-утиліти та гарантує безпеку програмного забезпечення.

Нижче наведені ролі для цього спеціального простору. Клацніть кожну роль, щоб побачити KSA (Знання, навички та здібності) та Завдання.

(SP-DEV-001)
Розробляє, створює, обслуговує та пише/програмує нові (або модифікує існуючі) комп’ютерні програми, програмне забезпечення або спеціальні утиліти.

Завдання

  • T0009: Аналізувати інформацію з метою визначення, рекомендацій та планування розробки нової програми або модифікації існуючої програми.
  • T0011: Аналізувати потреби користувачів і вимоги до програмного забезпечення з метою визначення доцільності проекту в рамках обмеженого часу та витрат.
  • T0013: Застосовувати стандарти програмування та тестування, використовувати засоби тестування безпеки, зокрема інструменти сканування коду методом статичного аналізу «фаззінг» та здійснювати перевірку кодів.
  • T0014: Застосовувати документацію про код безпеки.
  • T0022: Здійснювати управління засобами контролю безпеки, які використовуються на етапі визначення вимог з метою інтеграції системи безпеки в процес, визначення ключових цілей безпеки, максимізації безпеки програмного забезпечення та мінімізації порушень планів і графіків.
  • T0026: Готувати та писати документацію про розробку програми, а також формувати нові редакції, додаючи коментарі до інструкцій, щоб користувачі могли зрозуміти як функціонує програма.
  • T0034: Співпрацювати із системними аналітиками, інженерами, програмістами тощо, з метою розробки додатків та отримання інформації про обмеження та можливості проекту, вимог до продуктивності та інтерфейсів.
  • T0040: Консультуватись з інженерним персоналом для оцінки інтерфейсу між апаратним та програмним забезпеченням.
  • T0046: Виправляти помилки, вносити відповідні зміни та здійснювати повторну перевірку програми для забезпечення отримання бажаних результатів.
  • T0057: Проектувати, розробляти та модифікувати програмні системи, використовуючи науковий аналіз та математичні моделі для прогнозування та вимірювання результатів та наслідків проекту.
  • T0077: Розробляти код безпеки та засоби усунення помилок.
  • T0100: Оцінювати такі фактори, як формати звітів, обмеження вартості та необхідність обмеження безпеки для визначення конфігурації апаратного забезпечення.
  • T0111: Визначати основні загальні недоліки кодування на високому рівні.
  • T0117: Визначати наслідки порушення безпеки та застосовувати методології в рамках централізованого та децентралізованого середовища в комп’ютерних системах підприємства в процесі розробки програмного забезпечення.
  • T0118: Визначати проблеми безпеки у процесі стабільної роботи та управління програмним забезпеченням та вживати заходи безпеки, коли життєвий цикл продукт закінчується.
  • T0171: Здійснювати інтегральні процедури тестування якості та надійності з метою підтвердження функціональності і відмовостійкості в разі злочинного нападу на систему безпеки.
  • T0176: Здійснювати безпечне програмування і визначати потенційні помилки в програмних кодах з метою зменшення негативних наслідків від шкідливого використання вразливостей.
  • T0181: Проводити аналіз ризиків (наприклад, загрози, уразливості та вірогідності подій), коли додаток або система переживають значні зміни.
  • T0189: Готувати детальні графіки та діаграми робочих процесів, які описують вхідні/вихідні дані та логічну операцію, та перетворювати їх у набір інструкцій, кодованих за допомогою комп’ютерної мови.
  • T0217: Усувати наслідки порушення безпеки на етапі прийому в експлуатацію програмного забезпечення, враховуючи критерії завершеності, допустимість ризиків і документацію про ризики, загальні критерії та методи незалежного тестування.
  • T0228: Зберігати, добувати та обробляти дані, призначені для аналізу системних характеристик і вимог.
  • T0236: Відображати вимоги безпеки в елементах розробки додатків, включаючи документування елементів зовнішніх атак на програмне забезпечення, моделювання загроз та визначення будь-яких характерних критеріїв безпеки.
  • T0267: Розробляти контрзаходи і заходи щодо пом’якшення негативних наслідків від можливого протиправного використання слабкостей і вразливостей мов програмування в системі і елементах.
  • T0303: Визначати і використовувати корпоративну систему контролю версій ПЗ при проектуванні і розробці захищених додатків.
  • T0311: Проводити консультації з замовниками щодо проектування та супроводу системи програмного забезпечення..
  • T0324: Керувати розробкою програмного забезпечення і відповідної документації.
  • T0337: Контролювати та призначати задачі для програмістів, проектувальників, технологів і техніків, а також для інших інженерно-технічних та наукових працівників.
  • T0416: Впроваджувати додатки, що використовують відкриті ключі, шляхом використання існуючих архівів інфраструктури відкритих ключів (PKI), а також системи обслуговування сертифікатів та криптографічних функцій, за необхідності.
  • T0417: Визначати та ефективно використовувати послуги із забезпечення безпеки в масштабах всього підприємства в ході проектування і розробки захищених додатків (наприклад, інфраструктури відкритих ключів підприємства, серверу федеративної ідентифікаційної інформації, системи антивірусного захисту підприємства), за необхідності.
  • T0436: Випробовувати програми і програмні додатки з метою забезпечення отримання всієї необхідної інформації і правильності інструкцій та рівнів захищеності.
  • T0455: Розробляти процедури тестування і перевірки автентичності системного ПЗ, а також його програмування і документування.
  • T0500: Модифікувати і обслуговувати наявне програмне забезпечення з метою виправлення помилок, адаптації в нових програмно-апаратних комплексах або з метою поновлення інтерфейсів і підвищення продуктивності.
  • T0553: Застосовувати функції кібербезпеки (наприклад, шифрування, контроль доступу і управління ідентифікацією) з метою зниження ймовірності шкідливого використання вразливостей.
  • T0554: Визначати і документувати програмні коригування або версії програми, які можуть містити уразливості.

Знання

  • K0001: Знання концепцій і протоколів комп’ютерних мереж, а також методології забезпечення мережевої безпеки.
  • K0002: Знання процесів аналізу і зниження ризиків (наприклад, методів аналізу та зниження негативних наслідків від реалізації ризиків).
  • K0003: Знання законів, нормативних правових актів, політик і етичних норм, і як вони пов’язані з забезпеченням кібербезпеки і конфіденційності.
  • K0004: Знання принципів забезпеченням кібербезпеки і конфіденційності.
  • K0005: Знання кіберзагроз та вразливостей.
  • K0006: Знання конкретних функціональних наслідків в результаті помилок в системі безпеки.
  • K0014: Знання складних структур даних.
  • K0016: Знання принципів комп’ютерного програмування.
  • K0027: Знання корпоративної архітектури інформаційної безпеки організації.
  • K0028: Знання вимог до процедур оцінки і підтвердження автентичності, прийнятих в організації.
  • K0039: Знання принципів і методів кібербезпеки та конфіденційності, застосовуваних при розробці програмного забезпечення.
  • K0044: Знання принципів і методів кібербезпеки та конфіденційності, а також організаційних вимог (щодо забезпечення конфіденційності, цілісності, доступності, автентифікації і неспростовності).
  • K0050: Знання принципів і концепцій побудови локальних і глобальних систем інформаційних технологій, включаючи управління потоками даних (трафіком).
  • K0051: Знання мов програмування низького рівня (наприклад, асемблер).
  • K0060: Знання операційних систем.
  • K0066: Знання оцінки наслідків з точки зору збереження конфіденційності (PIA).
  • K0068: Знання структур і логіки мов програмування.
  • K0070: Знання загроз і вразливостей безпеки систем і прикладних процесів (наприклад, перевищення допустимого завантаження буферної пам’яті, мобільний код, процедурна мова/мова структурованих запитів [PL/SQL] і вторгнення, уразливості типу «стан гонки», незахищений канал, повторна передача, повторно-орієнтовані атаки, шкідливий код).
  • K0073: Знання способів управління конфігурацією захищеності (наприклад, керівництв з технічного впровадження системи безпеки (STIGs), найкращі методики забезпечення кібербезпеки на сайті «cisecurity.org»).
  • K0079: Знання принципів усунення недоліків в програмному забезпеченні.
  • K0080: Знання засобів, методів і способів проектування програмного забезпечення.
  • K0081: Знання моделей розробки ПЗ (наприклад, каскадна модель, спіральна модель).
  • K0082: Знання технології розробки ПЗ.
  • K0084: Знання принципів і методів структурного аналізу.
  • K0086: Знання засобів, методів і способів проектування систем, включаючи аналіз автоматизованих систем і засобів проектування.
  • K0105: Знання Web-послуг (наприклад, архітектура надання послуг, простий протокол доступу до об’єкта і мова опису Web-послуг).
  • K0139: Знання інтерпретованих і компільованих комп’ютерних мов.
  • K0140: Знання безпечних способів кодування.
  • K0152: Знання принципів і методів забезпечення безпеки інформаційних технологій (ІТ), які пов’язані з ПЗ (наприклад, модуляризація, розбивка на рівні, абстрагування, приховування даних, простота/мінімізація).
  • K0153: Знання процесу гарантованого забезпечення якості ПЗ.
  • K0154: Знання стандартів, процесів і методик аналізу та зниження ризиків системи постачання/закупівлі.
  • K0170: Знання критично важливих інфраструктурних систем, що використовують технології обміну інформацією, проекти яких не передбачали застосування підсистеми забезпечення безпеки.
  • K0179: Знання концепцій архітектури безпеки мережі, включаючи топологію, протоколи, компоненти і принципи (наприклад, прикладна система ешелонованої захисту).
  • K0199: Знання концепцій архітектури безпеки і еталонних моделей архітектури підприємства (наприклад, Загальна схема архітектури підприємства Дж. Захмана [FEA]).
  • K0202: Знання концепцій і функцій прикладних мережевих екранів (наприклад, одна точка доступу для проходження процедури автентифікації/аудиту/реалізації політики, сканування повідомлень на предмет виявлення шкідливого ПЗ, знеособлення даних з метою задоволення вимог стандарту безпеки даних в сфері платіжних карт PCI та стандарту безпеки даних DSS, сканування захисту від втрати даних, прискорення криптографічних операцій, протокол захисту інформації SSL, REST/JSON-обробка).
  • K0260: Знання стандартів безпеки Особистих ідентифікаційних даних (PII).
  • K0261: Знання стандартів безпеки даних в сфері платіжних карт PCI.
  • K0262: Знання стандартів безпеки медичних персональних даних (PHI).
  • K0263: Знання політик, вимог і процедур системи управління ризиками в сфері ІТ.
  • K0322: Знання вбудованих систем.
  • K0332: Знання мережевих протоколів, таких, як TCP/IP, динамічного конфігурування вузлів, системи доменних імен (DNS) і послуг, що надаються Службою єдиного каталогу.
  • K0342: Знання принципів, засобів і способів тестування на проникнення.
  • K0343: Знання методів аналізу основних причин.
  • K0624: Знання ризиків безпеки додатків (рейтинг Відкритого проекту з безпеки прикладних програм Інтернету).

Навички

  • S0001: Навичка пошуку вразливостей і розпізнання вразливостей в системах безпеки.
  • S0014: Навичка пошуку і усунення несправностей в ПЗ.
  • S0017: Навичка розробки і застосування математичних або статистичних моделей.
  • S0019: Навичка складання програми, які перевіряють і обробляють вхідні дані, включаючи параметри командного рядка, інфраструктурні змінні і вхідні потоки.
  • S0022: Навичка обробки контрзаходів проти виявлених ризиків безпеки.
  • S0031: Навичка розробки і застосування засобів контролю доступу в системах безпеки.
  • S0034: Навичка визначення потреби в забезпеченні безпеки систем інформаційних технологій (тобто засобів контролю захищеності).
  • S0060: Навичка написання програм на сучасних мовах програмування (наприклад, «Java», C ++).
  • S0135: Навичка розробки плану тестування системи безпеки (наприклад, окремого компонента, процесу інтеграції, системи, процесу приймання системи).
  • S0138: Навичка використання шифрування інфраструктури відкритих ключів (PKI) та можливостей цифрового підпису в програмних додатках (наприклад, ел. пошта S/MIME, SSL-трафік ).
  • S0149: Навичка розробки програмних додатків, які можуть реєструвати і обробляти помилки, винятки і збої в додатках, а також вести журнали реєстрації.
  • S0174: Навичка застосування безпечних способів кодування
  • S0175: Навичка аналізу першопричин.
  • S0367: Навичка застосування принципів кібербезпеки і конфіденційності при формуванні організаційних вимог (що торкаються забезпечення конфіденційності, цілісності, доступності, автентифікації і неспростовності).

Вміння

  • A0007: Вміння адаптувати кодовий аналіз в інтересах конкретної прикладної системи ІТ.
  • A0021: Вміння використовувати і сприймати складні математичні концепції (наприклад, дискретна математика).
  • A0047: Вміння розробляти безпечне ПЗ відповідно до методологій, засобів і методик розробки безпечного ПЗ.
  • A0123: Вміння застосовувати принципи кібербезпеки і конфіденційності при формуванні організаційних вимог (що торкаються забезпечення конфіденційності, цілісності, доступності, автентифікації і неспростовності).
  • A0170: Вміння визначати критично важливі інфраструктурні системи, в яких використовуються інформаційно-телекомунікаційні технології, але які були спроектовані без системи безпеки.

(SP-DEV-002)
Аналізує безпеку нових або існуючих комп’ютерних програм, програмного забезпечення або спеціалізованих програм-утилітів, що призводить до цінних з точки зору практики результатів.

Завдання

  • T0013: Застосовувати стандарти програмування та тестування, використовувати засоби тестування безпеки, зокрема інструменти сканування коду методом статичного аналізу «фаззінг» та здійснювати перевірку кодів.
  • T0014: Застосовувати документацію про код безпеки.
  • T0022: Здійснювати управління засобами контролю безпеки, які використовуються на етапі визначення вимог з метою інтеграції системи безпеки в процес, визначення ключових цілей безпеки, максимізації безпеки програмного забезпечення та мінімізації порушень планів і графіків.
  • T0038: Розробляти модель загрози, основуючись на опитуваннях та вимогах клієнтів.
  • T0040: Консультуватись з інженерним персоналом для оцінки інтерфейсу між апаратним та програмним забезпеченням.
  • T0100: Оцінювати такі фактори, як формати звітів, обмеження вартості та необхідність обмеження безпеки для визначення конфігурації апаратного забезпечення.
  • T0111: Визначати основні загальні недоліки кодування на високому рівні.
  • T0117: Визначати наслідки порушення безпеки та застосовувати методології в рамках централізованого та децентралізованого середовища в комп’ютерних системах підприємства в процесі розробки програмного забезпечення.
  • T0118: Визначати проблеми безпеки у процесі стабільної роботи та управління програмним забезпеченням та вживати заходи безпеки, коли життєвий цикл продукт закінчується.
  • T0171: Здійснювати інтегральні процедури тестування якості та надійності з метою підтвердження функціональності і відмовостійкості в разі злочинного нападу на систему безпеки.
  • T0181: Проводити аналіз ризиків (наприклад, загрози, уразливості та вірогідності подій), коли додаток або система переживають значні зміни.
  • T0217: Усувати наслідки порушення безпеки на етапі прийому в експлуатацію програмного забезпечення, враховуючи критерії завершеності, допустимість ризиків і документацію про ризики, загальні критерії та методи незалежного тестування.
  • T0228: Зберігати, добувати та обробляти дані, призначені для аналізу системних характеристик і вимог.
  • T0236: Відображати вимоги безпеки в елементах розробки додатків, включаючи документування елементів зовнішніх атак на програмне забезпечення, моделювання загроз та визначення будь-яких характерних критеріїв безпеки.
  • T0266: Проводити необхідні тестування на можливість проникнення в систему нових або оновлених додатків.
  • T0311: Проводити консультації з замовниками щодо проектування та супроводу системи програмного забезпечення..
  • T0324: Керувати розробкою програмного забезпечення і відповідної документації.
  • T0337: Контролювати та призначати задачі для програмістів, проектувальників, технологів і техніків, а також для інших інженерно-технічних та наукових працівників.
  • T0424: Аналізувати та надавати інформацію зацікавленим сторонам, які будуть підтримувати розробку або модифікацію існуючих захищених прикладних додатків.
  • T0428: Аналізувати потреби у забезпеченні безпеки і вимог до програмного забезпечення з метою визначення доцільності проекту з урахуванням часових і цінових обмежень, а також вимог безпеки.
  • T0436: Випробовувати програми і програмні додатки з метою забезпечення отримання всієї необхідної інформації і правильності інструкцій та рівнів захищеності.
  • T0456: Проводити процедури тестування і перевірки автентичності безпечного ПЗ.
  • T0457: Розробляти процедури тестування і перевірки автентичності систем, а також їх програмування і документування.
  • T0516: Проводити тестування, аналіз та/або оцінку безпечних програм з метою визначення потенційних помилок в кодах і зниження негативних наслідків від шкідливого використання вразливостей.
  • T0554: Визначати і документувати програмні коригування або версії програми, які можуть містити уразливості.

Знання

  • K0001: Знання концепцій і протоколів комп’ютерних мереж, а також методології забезпечення мережевої безпеки.
  • K0002: Знання процесів аналізу і зниження ризиків (наприклад, методів аналізу та зниження негативних наслідків від реалізації ризиків).
  • K0003: Знання законів, нормативних правових актів, політик і етичних норм, і як вони пов’язані з забезпеченням кібербезпеки і конфіденційності.
  • K0004: Знання принципів забезпеченням кібербезпеки і конфіденційності.
  • K0005: Знання кіберзагроз та вразливостей.
  • K0006: Знання конкретних функціональних наслідків в результаті помилок в системі безпеки.
  • K0014: Знання складних структур даних.
  • K0016: Знання принципів комп’ютерного програмування.
  • K0027: Знання корпоративної архітектури інформаційної безпеки організації.
  • K0028: Знання вимог до процедур оцінки і підтвердження автентичності, прийнятих в організації.
  • K0039: Знання принципів і методів кібербезпеки та конфіденційності, застосовуваних при розробці програмного забезпечення.
  • K0044: Знання принципів і методів кібербезпеки та конфіденційності, а також організаційних вимог (щодо забезпечення конфіденційності, цілісності, доступності, автентифікації і неспростовності).
  • K0050: Знання принципів і концепцій побудови локальних і глобальних систем інформаційних технологій, включаючи управління потоками даних (трафіком).
  • K0051: Знання мов програмування низького рівня (наприклад, асемблер).
  • K0060: Знання операційних систем.
  • K0066: Знання оцінки наслідків з точки зору збереження конфіденційності (PIA).
  • K0068: Знання структур і логіки мов програмування.
  • K0070: Знання загроз і вразливостей безпеки систем і прикладних процесів (наприклад, перевищення допустимого завантаження буферної пам’яті, мобільний код, процедурна мова/мова структурованих запитів [PL/SQL] і вторгнення, уразливості типу «стан гонки», незахищений канал, повторна передача, повторно-орієнтовані атаки, шкідливий код).
  • K0073: Знання способів управління конфігурацією захищеності (наприклад, керівництв з технічного впровадження системи безпеки (STIGs), найкращі методики забезпечення кібербезпеки на сайті «cisecurity.org»).
  • K0079: Знання принципів усунення недоліків в програмному забезпеченні.
  • K0080: Знання засобів, методів і способів проектування програмного забезпечення.
  • K0081: Знання моделей розробки ПЗ (наприклад, каскадна модель, спіральна модель).
  • K0082: Знання технології розробки ПЗ.
  • K0084: Знання принципів і методів структурного аналізу.
  • K0086: Знання засобів, методів і способів проектування систем, включаючи аналіз автоматизованих систем і засобів проектування.
  • K0105: Знання Web-послуг (наприклад, архітектура надання послуг, простий протокол доступу до об’єкта і мова опису Web-послуг).
  • K0139: Знання інтерпретованих і компільованих комп’ютерних мов.
  • K0140: Знання безпечних способів кодування.
  • K0152: Знання принципів і методів забезпечення безпеки інформаційних технологій (ІТ), які пов’язані з ПЗ (наприклад, модуляризація, розбивка на рівні, абстрагування, приховування даних, простота/мінімізація).
  • K0153: Знання процесу гарантованого забезпечення якості ПЗ.
  • K0154: Знання стандартів, процесів і методик аналізу та зниження ризиків системи постачання/закупівлі.
  • K0170: Знання критично важливих інфраструктурних систем, що використовують технології обміну інформацією, проекти яких не передбачали застосування підсистеми забезпечення безпеки.
  • K0178: Знання методології, засобів і методик впровадження захищеного ПЗ.
  • K0179: Знання концепцій архітектури безпеки мережі, включаючи топологію, протоколи, компоненти і принципи (наприклад, прикладна система ешелонованої захисту).
  • K0199: Знання концепцій архітектури безпеки і еталонних моделей архітектури підприємства (наприклад, Загальна схема архітектури підприємства Дж. Захмана [FEA]).
  • K0202: Знання концепцій і функцій прикладних мережевих екранів (наприклад, одна точка доступу для проходження процедури автентифікації/аудиту/реалізації політики, сканування повідомлень на предмет виявлення шкідливого ПЗ, знеособлення даних з метою задоволення вимог стандарту безпеки даних в сфері платіжних карт PCI та стандарту безпеки даних DSS, сканування захисту від втрати даних, прискорення криптографічних операцій, протокол захисту інформації SSL, REST/JSON-обробка).
  • K0260: Знання стандартів безпеки Особистих ідентифікаційних даних (PII).
  • K0261: Знання стандартів безпеки даних в сфері платіжних карт PCI.
  • K0262: Знання стандартів безпеки медичних персональних даних (PHI).
  • K0263: Знання політик, вимог і процедур системи управління ризиками в сфері ІТ.
  • K0322: Знання вбудованих систем.
  • K0342: Знання принципів, засобів і способів тестування на проникнення.
  • K0343: Знання методів аналізу основних причин.
  • K0624: Знання ризиків безпеки додатків (рейтинг Відкритого проекту з безпеки прикладних програм Інтернету).

Навички

  • S0001: Навичка пошуку вразливостей і розпізнання вразливостей в системах безпеки.
  • S0022: Навичка обробки контрзаходів проти виявлених ризиків безпеки.
  • S0031: Навичка розробки і застосування засобів контролю доступу в системах безпеки.
  • S0034: Навичка визначення потреби в забезпеченні безпеки систем інформаційних технологій (тобто засобів контролю захищеності).
  • S0083: Навичка інтегрування засобів тестування безпеки методом «чорного ящика» в процес забезпечення якості різних версій ПЗ.
  • S0135: Навичка розробки плану тестування системи безпеки (наприклад, окремого компонента, процесу інтеграції, системи, процесу приймання системи).
  • S0138: Навичка використання шифрування інфраструктури відкритих ключів (PKI) та можливостей цифрового підпису в програмних додатках (наприклад, ел. пошта S/MIME, SSL-трафік ).
  • S0174: Навичка застосування безпечних способів кодування
  • S0175: Навичка аналізу першопричин.
  • S0367: Навичка застосування принципів кібербезпеки і конфіденційності при формуванні організаційних вимог (що торкаються забезпечення конфіденційності, цілісності, доступності, автентифікації і неспростовності).

Вміння

  • A0021: Вміння використовувати і сприймати складні математичні концепції (наприклад, дискретна математика).
  • A0123: Вміння застосовувати принципи кібербезпеки і конфіденційності при формуванні організаційних вимог (що торкаються забезпечення конфіденційності, цілісності, доступності, автентифікації і неспростовності).
  • A0170: Вміння визначати критично важливі інфраструктурні системи, в яких використовуються інформаційно-телекомунікаційні технології, але які були спроектовані без системи безпеки.