Static Analysis (Security scanner) for Terraform Code

in DevOps , DevSecOps , Cloud Computing

    What is Terraform?

    Terraform is an open-source infrastructure as code software tool that provides a consistent CLI workflow to manage hundreds of cloud services. Terraform codifies cloud APIs into declarative configuration files. (Source →Terraform.io)

    Basically, we use terraform tool to provision cloud services from CLI using the code.

    But can we check if our terrafrom code has some security flaws??

    YES. We can. Using TFsec tool.

    TFsec uses HCL parser to understand the terraform code and have many default checks in place already. They also give you freedom to write your own custom checks.

    You can run this tool in you CI pipeline (also in github actions) and check your code before making changes to cloud. And the best thing it is supported in all the mostly used OS.. and they have a docker container as well (which I love btw).

    You can download yourself one form here → https://www.tfsec.dev/docs/home/

    And they are also Open Source. That means you can read the code and make changes to it that suits you best. And also you can help to make it better. Just like tons of people who are making it better everyday.


    “Gettign Hands Dirty” Time

    I already had some test code for Terraform and I intentionally added a default secret key variable (which I know is a bad idea from a security point of view).

    variable file with default secret key variable file with default secret key

    I am now expecting any security scanner to detect this type of behavior and report it.
    After the code was ready… I pulled and created a container for tfsec and mounted my code repository in that to perform scanning.

    docker run --rm -it -v $PWD:/src tfsec/tfsec /src

    And as expected,

    scan report from tfsec scan report from tfsec

    It gave me a good human readable report with all the highlighted potential issues along with the time taken for everything. Since it is using HCL parser to parse every thing.. It also gives me warning/errors in my code.


    Resources


    Get similar stories in your inbox weekly, for free



    Share this story:
    ayedaemon
    Rishabh Umrao, Information Security Engineer @ Sophos

    Another Computer Science and Engineering Graduate (B.Tech) from india with a strong interest in Devops, Security and Automation.

    Latest stories


    Best Cloud Hosting in the USA

    This article explores five notable cloud hosting offers in the USA in a detailed way.

    Best Dedicated Hosting in the USA

    In this article, we explore 5 of the best dedicated hosting providers in the USA: …

    The best tools for bare metal automation that people actually use

    Bare metal automation turns slow, error-prone server installs into repeatable, API-driven workflows by combining provisioning, …

    HIPAA and PCI DSS Hosting for SMBs: How to Choose the Right Provider

    HIPAA protects patient data; PCI DSS protects payment data. Many small and mid-sized businesses now …

    The Rise of GPUOps: Where Infrastructure Meets Thermodynamics

    GPUs used to be a line item. Now they're the heartbeat of modern infrastructure.

    Top Bare-Metal Hosting Providers in the USA

    In a cloud-first world, certain workloads still require full control over hardware. High-performance computing, latency-sensitive …

    Top 8 Cloud GPU Providers for AI and Machine Learning

    As AI and machine learning workloads grow in complexity and scale, the need for powerful, …

    How ManageEngine Applications Manager Can Help Overcome Challenges In Kubernetes Monitoring

    We tested ManageEngine Applications Manager to monitor different Kubernetes clusters. This post shares our review …

    AIOps with Site24x7: Maximizing Efficiency at an Affordable Cost

    In this post we'll dive deep into integrating AIOps in your business suing Site24x7 to …

    A Review of Zoho ManageEngine

    Zoho Corp., formerly known as AdventNet Inc., has established itself as a major player in …