Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Устранение уязвимостей Delphi: защита от загрузки недопустимых DLL и настройка флагов компиляции

Delphi , Файловая система , DLL и PlugIns

Статья посвящена вопросам устранения уязвимостей в приложениях, разработанных с использованием Delphi. Мы рассмотрим две основные проблемы, выявленные в ходе тестирования безопасности приложения: загрузку небезопасного DLL и настройку флагов компиляции. Для каждой проблемы мы предложим решение и альтернативные варианты.

Загрузка небезопасного DLL

Проблема заключается в том, что приложение может загружать небезопасный DLL, такой как avrt.dll, если один или несколько мест в поисковом пути ресурсов находятся под контролем непредвиденных акторов. Чтобы устранить эту уязвимость, мы можем предпринять следующие шаги:

  1. Удалить ненужные модули и единицы: В нашем случае, inclusion of the unit FMX.Media был причиной загрузки avrt.dll. Чтобы предотвратить это, убедитесь, что все единицы и модули, включенные в ваше приложение, действительно используются. Удалите ненужные единицы и модули, чтобы минимизировать риск загрузки небезопасных DLL.
// Удаление ненужной единицы
uses
  // ...
  // FMX.Media; // Удаляем эту строку
  // ...
  1. Использовать безопасные поисковые пути: Убедитесь, что все поисковые пути ресурсов находятся под вашим контролем и защищены от непредвиденных акторов. Вы можете сделать это, ограничив поисковые пути только доверенными каталогами.
{$APPTYPE CONSOLE}

uses
  System.SysUtils;

var
  SearchPath: string;
begin
  SearchPath := 'C:\Path\to\Trustworthy\Folder';
  SetLength(SearchPath, 0);
  if not TPath.IsDirectory(SearchPath) then
    Exit;

  // Добавить другие доверенные каталоги в SearchPath
  // ...
end.
  1. Использовать защищенные загрузчики DLL: Вместо того, чтобы позволять операционной системе загружать DLL, вы можете использовать защищенные загрузчики DLL, такие как Windows API LoadLibraryEx или LoadPackedLibrary, которые позволяют указать флаг загрузки, например, LOAD_LIBRARY_AS_DATAFILE | LOAD_LIBRARY_AS_IMAGE_RESOURCE. Это поможет предотвратить загрузку недопустимых DLL.

Настройка флагов компиляции

Проблема заключается в том, что приложение не использует определенные флаги компиляции, которые могут повысить безопасность, такие как Authenticode, cfg, forceIntegrity, gs и rfg. Чтобы устранить эту проблему, мы можем предпринять следующие шаги:

  1. Использование Authenticode: Authenticode - это цифровая подпись, которую можно добавить к исполняемому файлу для верификации подлинности и целостности приложения. Чтобы использовать Authenticode, вам понадобится цифровой сертификат, выпущенный доверенным центром сертификации. Вы можете подписать свой исполняемый файл с помощью утилиты подписи, такой как signtool, предоставляемой Microsoft.
signtool sign /f "C:\Path\to\Your\Certificate.pfx" /p YourPassword /t http://timestamp.digicert.com "C:\Path\to\Your\Application.exe"
  1. Использование EurekaLog для GS: Еще один способ защитить приложение от атак, нацеленных на стек, - это использовать EurekaLog. EurekaLog - это набор инструментов для анализа и отладки приложений, который может добавить защиту стека в ваше приложение. Однако, как отметил Kas Ob., это может ухудшить производительность приложения.
  2. Перевод приложения на Visual Studio: Как отметил Kas Ob., некоторые флаги компиляции, такие как cfg и rfg, в настоящее время поддерживаются только Visual Studio. Если безопасность является приоритетом, а использование этих флагов является обязательным требованием, вам может потребоваться перевести ваше приложение на Visual Studio. Тем не менее, это может быть дорогостоящим и трудоемким процессом, учитывая время и ресурсы, необходимые для переноса приложения с одного компилятора на другой.

В заключение, устранение уязвимостей в приложениях, разработанных с использованием Delphi, требует тщательного подхода к настройке поисковых путей, удалению ненужных модулей и единиц, а также настройке флагов компиляции. Хотя некоторые флаги компиляции могут быть доступны только в Visual Studio, существуют альтернативные варианты, которые можно использовать для повышения безопасности приложения.

Создано по материалам из источника по ссылке.

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


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




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


:: Главная :: DLL и PlugIns ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-04-09 16:24:02/0.0020139217376709/0