Вплив Log4j на розробку програмного забезпечення за допомогою Delphi та C++Builder

Думки про проблеми безпеки Log4j, що вони означають для спільноти розробників загалом, а також специфічний вплив на розробників RAD Studio.

Якщо ви не живете на віддаленому острові без підключення до Інтернету, ви напевно чули про проблеми Log4j, які вплинули на таку кількість програм та інтернет-сервісів протягом останніх 10 днів. Випадкове виявлення цієї критичної помилки в контексті повідомлень консолі Minecraft (введення повідомлення на клієнті гри Minecraft може дозволити комусь виконати код на сервері Minecraft) через використання надзвичайно популярної бібліотеки журналів Java під назвою Log4j, змусило кожну ІТ-компанію, яка використовує цю програму, перевірити, чи проблема вплинула на програмне забезпечення компанії, розміщені послуги, внутрішні веб-сайти та будь-який інший сценарій використання.

Список програмних додатків, які постраждали (наприклад, тут є одна) досить вражаюча, тому що, незважаючи на те, що він втратив частину реклами та маркетингового поштовху, Java є і залишається однією з найпопулярніших мов у світі, а JVM — однією з найпопулярніших мов середовища виконання.

Власний код RAD Studio і відсутність залежності від Java
Що це означає для Embarcadero загалом і RAD Studio зокрема? Безпосередньо, не дуже. Програмне забезпечення, створене в Delphi або C++Builder, не використовує Java і жодним чином не покладається на неї (за винятком додатків Android) і, отже, не використовує Log4j. Загалом, Delphi та C++Builder створюють скомпільовані додатки, які менш схильні до проблем із середовищем виконання (тут я маю на увазі середовища виконання Java, .NET або JavaScript). Однак у цьому випадку проблема була не в середовищі виконання, а в популярній бібліотеці, і розробники RAD Studio використовують додаткові компоненти та сторонні бібліотеки, як і будь-яка інша спільнота розробників.

Дозвольте мені ще раз уточнити: на веб-сервер або веб-службу, вбудовані в Delphi або C++Builder (або C++ загалом), проблема Log4j не впливає. Те саме стосується, звичайно, веб-додатків, створених на ASP.NET, Python або PHP. Проблема стосується програмного забезпечення, написаного на Java, і існує багато програмного забезпечення Java, як зазначено вище.

Повертаючись до Delphi та C++Builder, компіляція коду допомагає з безпекою, але цього недостатньо. Також важливо вибирати лише бібліотеки та компоненти, яким ви можете повністю довіряти (як мінімум, вимагаючи включення вихідного коду). Крім того, для розробника також важливо писати код, зосереджений на безпеці. Як згадувалося минулого тижня, кодування копіювання та вставлення (хоча й не відповідає безпосередньо за проблему Log4j) є стилем кодування на зворотному боці написання безпечних програм.

Повернення до Open Source
Є також ще одна ключова проблема, яку проблеми Log4j зробили очевидною: існують багатомільйонні проекти, якими керують великі корпорації, які покладаються на проекти з відкритим кодом без фінансування, якими керують розробники у вільний час (за межами їхньої звичайної роботи). Ідея про те, що ви можете використовувати відкритий код, щоб заощадити витрати, не витрачаючи час, ресурси чи гроші на проекти, які ви використовуєте, стає величезною проблемою в галузі.

Це також стосується екосистеми Delphi та C++Builder: Embarcadero почала фінансувати та дарувати кілька бібліотек з відкритим кодом, але ми повинні зробити більше. Ми також заохочуємо всі бізнес-додатки, які в значній мірі використовують бібліотеки та інструменти Delphi з відкритим кодом, щоб допомогти їм – у тому числі шляхом оцінки безпеки!

Безпека багатогранна
Безпека — це безперервний процес, який вимагає кількох ракурсів, і кожен із наведених нижче пунктів може допомогти:

  • Вбудовані програми
  • Немає залежності від середовища виконання
  • Використання перевірених і надійних сторонніх бібліотек і компонентів
  • Взяття на себе зобов’язань робити внесок у проекти з відкритим кодом, які ви використовуєте
  • Зосередженість на безпеці під час написання коду (без копіювання та вставки коду)
  • Інструменти для перевірки вихідного коду програми
  • Безпечне зберігання вихідного коду (щоб уникнути ін’єкції вихідного коду)
  • Безпечне середовище збірки (щоб уникнути ін’єкції двійкового коду)
  • Підписання виконуваного додатка

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

Приємного кодування з вашою RAD Studio без Log4j 😉

Істочник: blogs.embarcadero.com

Дати оцінку данній статті

Про автора

Додати коментар

Недавні записи