Detection of security smells in IaC scripts through semantics-aware code and language processing

2509.18790v1 cs.CR, cs.AI, cs.LG, cs.SE 2025-09-25
Авторы:

Aicha War, Adnan A. Rawass, Abdoul K. Kabore, Jordan Samhi, Jacques Klein, Tegawende F. Bissyande

Резюме на русском

## Контекст Infrastructure as Code (IaC) представляет собой методологию автоматизации развертывания и управления инфраструктурой IT с помощью скриптов и инструментов. Она позволяет упростить процесс развертывания программного обеспечения, гаранитируя его консистентность и повторяемость. Однако, существуют серьезные проблемы с безопасностью в IaC-скриптах. Ранее проведенные исследования показали, что многие IaC-скрипты содержат повторяющиеся конфигурационные ошибки, которые могут привести к серьезным атакам. Несмотря на то, что существуют множество методов для обнаружения и устранения этих ошибок, большинство из них основываются на статическом анализе, который часто не учитывает семантические свойства кода и естественного языка. Это включает в себя использование статистических кодовых представлений и машинного обучения. Наша работа посвящена разработке нового подхода к обнаружению этих ошибок, который улучшает статический анализ, используя семантическую информацию из естественного языка и кода. ## Метод Мы предлагаем метод, который объединяет статический анализ с помощью двух моделей машинного обучения: CodeBERT и LongFormer. CodeBERT используется для понимания семантики программного кода и естественного языка, тогда как LongFormer обеспечивает представление длинных IaC-скриптов с сохранением контекста. Наш подход представляет собой семантический анализ, который дополняет статический анализ стандартного кода. Мы также вводим подход для обнаружения сигнатур безопасности, который использует глубокое обучение, чтобы обнаруживать сигнатуры в обнаруженных ошибках. Для того чтобы проверить эффективность нашего подхода, мы использовали две выборки данных, содержащие ошибки в IaC-скриптах, связанных с Ansible и Puppet. ## Результаты Мы провели несколько экспериментов, чтобы проверить эффективность нашего подхода. Мы проводили анализ того, как наш метод работает на двух разных наборах данных, связанных с Ansible и Puppet. Мы также проводили исследования, в которых отключали естественный язык или сокращали контекст в IaC-скриптах, чтобы оценить вклад каждого компонента. Наша методика показала значительные улучшения в обнаружении ошибок в сравнении с существующими подходами. Например, на наборе данных Ansible, мы повысили точность (precision) и полноту (recall) с 0.46 и 0.79 до 0.92 и 0.88, соответственно. На наборе данных Puppet, точность и полнота улучшились с 0.55 и 0.97 до 0.87 и 0.75. ## Значимость Наш подход может быть применен в сфере безопасности IaC, чтобы обнаруживать и устранять безопасностные ошибки в IaC-скриптах. Он предлагает существенные пре

Abstract

Infrastructure as Code (IaC) automates the provisioning and management of IT infrastructure through scripts and tools, streamlining software deployment. Prior studies have shown that IaC scripts often contain recurring security misconfigurations, and several detection and mitigation approaches have been proposed. Most of these rely on static analysis, using statistical code representations or Machine Learning (ML) classifiers to distinguish insecure configurations from safe code. In this work, we introduce a novel approach that enhances static analysis with semantic understanding by jointly leveraging natural language and code representations. Our method builds on two complementary ML models: CodeBERT, to capture semantics across code and text, and LongFormer, to represent long IaC scripts without losing contextual information. We evaluate our approach on misconfiguration datasets from two widely used IaC tools, Ansible and Puppet. To validate its effectiveness, we conduct two ablation studies (removing code text from the natural language input and truncating scripts to reduce context) and compare against four large language models (LLMs) and prior work. Results show that semantic enrichment substantially improves detection, raising precision and recall from 0.46 and 0.79 to 0.92 and 0.88 on Ansible, and from 0.55 and 0.97 to 0.87 and 0.75 on Puppet, respectively.

Ссылки и действия

Связанные статьи

Security smells in infrastructure as code: a taxonomy update beyond the seven si...

## Контекст Современное управление программным обеспечением сильно зависит от Infrastructure as Code (IaC), которая позв...

2025-09-25

Your Compiler is Backdooring Your Model: Understanding and Exploiting Compilatio...

## Контекст Deep learning (DL) compilers являются ключевой частью современных DL-систем, обеспечивая гибкость и масштаб...

2025-09-17