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 современных методов обеспечения безопасности и подкрепляем это четким и свободным от шумихи обучением реальным рискам и доступным способам их снижения.»

See What's New in 12.2 Athens See What's New in 12.2 Athens Dev Days of Summer 2-24

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

Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.

IN THE ARTICLES