Have an amazing solution built in RAD Studio? Let us know. Looking for discounts? Visit our Special Offers page!
Новости

Еще раз про выбор С++ или Delphi с точки зрения безопасности

Последнее время часто приходится сталкиваться с темой: «что выбрать для разработки: С++ или Delphi». Не будем обращать внимание на несколько «религиозный» фон такого обсуждения — наши граждане привыкли к бескомпромиссным холиварам по самым разным вопросам. Это заметно и по идолопоклонничеству индексу Tiobe, и по обсуждениям на форумах.

Есть вполне адекватные аргументы в пользу разных мнений, вот очередной из них.

На прошлой неделе правительство США опубликовало отчет «Назад к строительным блокам: путь к безопасному и измеримому программному обеспечению». Этот отчет является частью Стратегии кибербезопасности США и сосредоточен на нескольких областях, включая уязвимости безопасности памяти и показатели качества. Несмотря на отношение в нашей стране, США по-прежнему являются лидером в вопросах развития ИТ и построения программных продуктов, а в последнее время особенно тщательно рассматривают различные аспекты обеспечения максимальной безопасности ПО.

Этот отчет был прокомментирован многими интернет-журналами, которые подчеркнули значительное сопротивление использованию языков программирования C и C++, например: «Белый дом призывает разработчиков отказаться от C и C++ от InfoWorld [White House urges developers to dump C and C++]

Не остался безразличным и менеджер по продуктам RAD Studio компании Embarcadero — известный автор и специалист по Delphi Марко Канту. Он опубликовал [пост] на сайте blogs.embarcadero.com, с которым я рекомендую познакомиться.

В отчете много внимания уделяется «уязвимостям безопасности памяти» и выделяются «языки программирования, которым не хватает характеристик, связанных с безопасностью памяти, а также которые имеют широкое распространение в критических системах». Он по-прежнему рекомендует «с самого начала использовать языки программирования, безопасные для памяти, как рекомендовано Агентством по кибербезопасности и безопасности инфраструктуры (CISA) «Дорожная карта безопасности программного обеспечения с открытым исходным кодом». Документ ссылается на отчет АНБ [«Информационный бюллетень по кибербезопасности о безопасности памяти программного обеспечения»], в котором более подробно объясняется, что такое безопасность памяти, представляя ее как сочетание безопасности типов, безопасного выделения и освобождения (возможно, с помощью сборщика мусора).

Присущие перечисленным ниже языкам особенности защищают программиста от непреднамеренного внесения ошибок в управлении памятью. Примеры языков, безопасных для памяти, включают Python®, Java®, C#, Go, Delphi/Object Pascal, Swift®, Ruby™, Rust® и Ada.

Delphi внесен в список языков, безопасных для памяти. Однако, следует рассматривать безопасность памяти как одну из целей, а не абсолют. Например, в основном отчете подчеркивается, что существуют типы приложений, в которых предсказуемость времени выполнения имеет решающее значение (имеется в виду аэрокосмическая отрасль). Это сценарии, в которых сборщик мусора, запускаемый в непредсказуемое время, может повлиять на выполнение кода программы в критические моменты времени. Именно по этой причине Delphi имеет значительное преимущество по сравнению с другими популярными языками в области промышленной автоматизации. Он обеспечивает прямое управление, оставаясь при этом на более высоком и простом уровне по сравнению с C++.

Еще одна обширная область относится к проблеме безопасности цепочки зависимостей библиотек, которая может встречаться даже для некоторых языков из приведенного выше списка безопасных по памяти.

В заключении процитирую Марко Канту:

«Мы продолжаем концентрироваться на инвестировании и улучшении поддержки в Delphi современных методов обеспечения безопасности и подкрепляем это четким и свободным от шумихи обучением реальным рискам и доступным способам их снижения.»

RAD Studio 13.2 Florence Now Available! Kai 1.1.1 Now Available! What's Coming in RAD Studio 13.2 Florence

Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder.
Design. Code. Compile. Deploy.

Start Free Trial   Upgrade Today

   Free Delphi Community Edition   Free C++Builder Community Edition

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.

IN THE ARTICLES