.NET — бесплатная платформа Microsoft с открытым исходным кодом для создания и запуска приложений на C#, F# и Visual Basic в Windows, Linux и macOS.
Как устроен .NET
Исходный код компилируется в промежуточный язык (IL). Во время работы среда выполнения CLR (Common Language Runtime) превращает IL в машинный код, управляет памятью с помощью сборщика мусора и контролирует типобезопасность. Большая библиотека классов покрывает работу с сетью, криптографию, файлы и веб-разработку (ASP.NET Core).
- .NET Framework — исходная версия только для Windows (последняя — 4.8.1), по-прежнему поставляется с Windows.
- .NET (ранее .NET Core) — кроссплатформенный преемник, объединённый с .NET 5 в 2020 году. Новая версия выходит каждый ноябрь; чётные релизы (.NET 8, .NET 10) получают три года долгосрочной поддержки (LTS).
Чем .NET важен для безопасности
Управляемый код избавляет от целых классов ошибок работы с памятью, но в .NET-приложениях остаются логические уязвимости, инъекции и прежде всего небезопасная десериализация: BinaryFormatter оказался настолько опасным, что Microsoft удалила его в .NET 9. Злоумышленники тоже любят .NET: IL легко декомпилировать и загружать прямо в память, поэтому многие стилеры и трояны удалённого доступа написаны на C# и скрыты обфускаторами и упаковщиками. Вредоносные пакеты NuGet, маскирующиеся под популярные библиотеки, — регулярная угроза цепочке поставок.
Рекомендации
- Используйте поддерживаемую версию .NET и устанавливайте ежемесячные обновления безопасности.
- Не десериализуйте недоверенные данные сериализаторами, которые сохраняют типы; используйте
System.Text.Jsonс фиксированными типами. - Фиксируйте версии и проверяйте подписи пакетов NuGet.
- Относитесь к неподписанным .NET-файлам из неизвестных источников с подозрением; декомпиляторы вроде ILSpy или dnSpy покажут, что они делают на самом деле.