Glossary

Upwind Glossary

Your hub to learn about the future of cloud security and runtime.
Feed
Grid

Containers/K8s

A red and white lifebuoy featuring a lightning bolt symbol at its center is enclosed by a dotted line square with blue capsule corners on a pink gradient background. In the upper right corner, the intriguing question What is Runtime Security? complements the design above the word upwind.
December 23, 2024

Understand & Implement Effective Runtime Security for Cloud Workloads

We’ve talked about container runtime security, but not all runtime security involves containers. In this article, we’re broadly exploring runtime security on its own, asking questions like: Is it effective in hybrid and multi-cloud environments? How can you integrate it into your larger security stack? Is it possible to get more out of runtime security…
Illustration of a container icon on a blue background, featuring a blue toolbox with a wrench beside it. The container is adorned with vertical blue stripes, and Upwind is written in white in the top right corner, subtly hinting at Kubernetes security tools.
December 23, 2024

Top Open-Source Kubernetes Security Tools

Kubernetes is a multi-layered environment. Highly dynamic clusters can be spun up and taken down quickly, making it difficult to track potential threats in real time. But Kubernetes doesn’t exist in a vacuum — it orchestrates containers that run on a complex infrastructure, where misconfigurations, Identity and Access Management (IAM), and network security all come…
Illustration of a brown planter box with orange flowers and bees, subtly hinting at innovation in Kubernetes. A Kubernetes logo graces the side, harmonizing with the light beige background. The word upwind appears in the top right corner, inviting you to explore what is eBPF for Kubernetes.
December 16, 2024

Master eBPF for Enhanced Kubernetes Security and Performance

Extended Berkeley Packet Filter (eBPF) is emerging as a cornerstone of cloud-native management, enhancing observability and enabling sandboxed programs to operate directly within the Linux kernel. For Kubernetes, where managing distributed, ephemeral workloads at scale is inherently complex, eBPF offers a solution to some of the platform’s biggest challenges. By working directly at the kernel…
A blue background features a white outline of a lightning bolt, filled with rows of orange carrots, encapsulating an energetic juxtaposition. The phrase upwind graces the top right corner—a nod to innovative solutions akin to asking, What is AWS Lambda Runtime?.
December 11, 2024

Securing AWS Lambda Runtimes: Best Practices and Vulnerabilities

Amazon Web Services (AWS) Lambda runtimes are more than just an execution environment — they shape how applications scale, integrate, and remain secure in a serverless architecture. While developers often view them as technical enablers for event-driven workloads, runtimes come with broader impacts, influencing outcomes like operational agility and security posture. We’ve discussed AWS Lambda…
The image features an orange lambda symbol crafted from carrot illustrations against a light blue backdrop. In the top right corner, the word "upwind" appears, subtly hinting at concepts like "What is AWS Lambda Security?" through its artistic design.
November 19, 2024

Securing AWS Lambda: Best Practices & Challenges

AWS (Amazon Web Services) Lambda is a serverless compute service that manages infrastructure so clients can run code in response to events without provisioning servers. Its ephemeral nature means that each instance is stateless and disposed of after execution — but what does that mean for organizational security? We’re talking about best practices and how…
An illustration of a colorful surfboard with geometric patterns on a blue background. The word "upwind" floats in the top right corner, reminiscent of open-source creativity.
November 19, 2024

The Top 6 Open-Source SBOM Tools

Choosing the right open-source Software Bill of Materials (SBOM) tool requires balancing multiple considerations, from long-term support to compliance, data accuracy, and compatibility. For those in highly regulated industries or with complex dependency trees, balancing these considerations can feel like an even greater challenge. Is there a “top” tool? For whom? We’re reviewing the current…
Diagram illustrating a central organized structure with one large and one small orange box, akin to AWS Fargate's efficient orchestration. Dotted lines connect three smaller units, each having two boxes. The Upwind logo is in the top right corner against a peach background.
November 19, 2024

Understanding AWS Fargate: A Comprehensive Guide

With the wide adoption of containerized applications, there’s an increasing demand for solutions that simplify container management in cloud environments. Amazon Web Services (AWS) Fargate aims to fill this gap by offering a serverless computing platform that streamlines container deployment without requiring developers to manage the underlying infrastructure. While AWS Fargate can make life easier…
A diagram on a pink background features a central padlock icon linked to four rectangular elements, suggesting a secure system. The word Upwind is in the top right corner, subtly hinting at AWS Fargate security explained through its design.
November 12, 2024

Securing AWS Fargate: Best Practices for Containerized Workloads 

Amazon Web Services (AWS) Fargate, a container-as-a-service (CaaS) solution, has simplified container management by transferring infrastructure security to AWS, while customers retain responsibility for security within the container layer — application, data, and container configurations. That division is central to Fargate’s model and is at the core of specialized security practices that will need to…
_container-scanning
October 1, 2024

Container Vulnerability Scanning: A Comprehensive Guide

Ninety-six percent of 3rd-party container applications contain vulnerabilities. While that rate may seem high, containerization comes with its own benefits that can give DevOps teams a competitive edge. Containers are here to stay. In this article, we’re diving into container scanning features and related tools so you can get the most out of this flexible…
Diagram illustrating a central organized structure with one large and one small orange box, akin to AWS Fargate's efficient orchestration. Dotted lines connect three smaller units, each having two boxes. The Upwind logo is in the top right corner against a peach background.

Understanding AWS Fargate: A Comprehensive Guide

<?php

$post_id = get_the_ID();
$author_terms = get_the_terms( $post_id, 'author_tax' );
$authors = [];

if ( $author_terms && ! is_wp_error( $author_terms ) ) {
    foreach ( $author_terms as $term ) {
        $photo_id = get_field(
            'author_photo',
            'author_tax_' . $term->term_id
        );

        $authors[] = [
            'name'  => $term->name,
            'url'   => get_term_link( $term->term_id ),
            'photo' => $photo_id
                ? wp_get_attachment_image_url( $photo_id, 'author-image' )
                : '',
        ];
    }
}

?>

<div class="uw-bf-card__meta">
    <?php if ( count( $authors ) > 0 ) { ?>
        <div class="uw-bf-card__author-photos">

            <?php foreach ( $authors as $author ) { ?>
                <a
                    href="<?php echo esc_url( $author['url'] ); ?>"
                    class="uw-bf-card__author-photo-link"
                >
                    <img
                        class="uw-bf-card__author-photo"
                        src="<?php echo esc_url( $author['photo'] ); ?>"
                        alt="<?php echo esc_attr( $author['name'] ); ?>"
                    >
                </a>
            <?php } ?>

        </div>
    <?php } ?>

    <div class="uw-bf-card__meta-sub">
        <span class="uw-bf-card__author-names">
            <?php echo getAuthorNames( $authors ); ?>
        </span>

        <span class="uw-bf-card__date">
            <?php echo get_the_date( 'F d, Y', $post_id ); ?>
        </span>
    </div>
</div>
.brxe-qhtnal{
  .uw-bf-card__author-photo, .uw-bf-card__author-photo-link {
  width: 53px;
  height: 53px;
}
}
With the wide adoption of containerized applications, there’s an increasing demand for solutions that simplify container management in cloud environments. Amazon Web Services (AWS) Fargate aims to fill this gap by offering a serverless computing platform that streamlines container deployment without requiring developers to manage the underlying infrastructure. While AWS Fargate can make life easier…
Read More
<?php $url = get_permalink(); ?>
<?php $title = get_the_title(); ?>

<div class="uw-bf-card__share">
  <a class="uw-bf-share-btn" href="https://www.linkedin.com/shareArticle?mini=true&url=<?php echo urlencode($url) . '&title=' . urlencode($title); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn"><svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.51819 10.9373H0.185826V3.63501H2.51819V10.9373ZM1.35075 2.63892C0.604939 2.63892 0 2.03833 0 1.31323C5.33822e-09 0.964941 0.142311 0.630916 0.395626 0.384637C0.648942 0.138358 0.992511 0 1.35075 0C1.709 0 2.05256 0.138358 2.30588 0.384637C2.5592 0.630916 2.70151 0.964941 2.70151 1.31323C2.70151 2.03833 2.09632 2.63892 1.35075 2.63892ZM11.2475 10.9373H8.92015V7.38257C8.92015 6.5354 8.90257 5.44897 7.70751 5.44897C6.49487 5.44897 6.30904 6.36938 6.30904 7.32153V10.9373H3.97919V3.63501H6.21613V4.6311H6.24877C6.56016 4.05737 7.32079 3.4519 8.45558 3.4519C10.8161 3.4519 11.25 4.96313 11.25 6.92603V10.9373H11.2475Z" fill="#75808E"/></svg></a>
  
  <a class="uw-bf-share-btn" href="https://twitter.com/intent/tweet?url=<?php echo rawurlencode($url) . '&text=' . urlencode($title); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on X"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.3319 5.92804L13.5437 0H12.3087L7.78327 5.14724L4.16883 0H0L5.46574 7.78354L0 14H1.2351L6.01406 8.56434L9.83117 14H14L8.3316 5.92804H8.3319ZM6.64026 7.85211L6.08647 7.07705L1.68013 0.909776H3.57717L7.13314 5.88696L7.68693 6.66202L12.3093 13.1316H10.4122L6.64026 7.85241V7.85211Z" fill="#75808E"/></svg></a>
  
  <a class="uw-bf-share-btn" href="https://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode($url); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook"><svg width="7" height="14" viewBox="0 0 7 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.00586 7.73438L6.33914 5.24595H4.25531V3.63113C4.25531 2.95034 4.54641 2.28674 5.47969 2.28674H6.42703V0.168115C6.42703 0.168115 5.56734 0 4.74539 0C3.0293 0 1.90758 1.19185 1.90758 3.34941V5.24595H0V7.73438H1.90758V13.75H4.25531V7.73438H6.00586Z" fill="#75808E"/></svg></a>
  
  <div class="uw-bf-copy-wrap">
    <button class="uw-bf-share-btn uw-bf-copy-btn" data-url="<?php echo get_permalink(); ?>" aria-label="Copy link">
      <svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.1713 5.42406C14.4955 4.18261 14.4955 2.17211 13.1713 0.930656C11.9994 -0.167977 10.1525 -0.310799 8.80488 0.592277L8.76738 0.616447C8.42988 0.842765 8.35254 1.28222 8.59394 1.59643C8.83535 1.91064 9.3041 1.98534 9.63926 1.75902L9.67676 1.73485C10.4291 1.23168 11.458 1.31078 12.1096 1.92382C12.8479 2.61596 12.8479 3.73656 12.1096 4.4287L9.47988 6.89843C8.7416 7.59057 7.54629 7.59057 6.80801 6.89843C6.1541 6.28539 6.06973 5.32079 6.60645 4.61767L6.63223 4.58251C6.87363 4.26611 6.79394 3.82665 6.45879 3.60253C6.12363 3.37841 5.65254 3.45092 5.41348 3.76513L5.3877 3.80028C4.42207 5.06152 4.57441 6.79296 5.74629 7.89159C7.07051 9.13305 9.21504 9.13305 10.5393 7.89159L13.1713 5.42406ZM0.993164 4.9099C-0.331055 6.15136 -0.331055 8.16186 0.993164 9.40331C2.16504 10.5019 4.01191 10.6448 5.35957 9.74169L5.39707 9.71752C5.73457 9.4912 5.81191 9.05175 5.57051 8.73754C5.3291 8.42333 4.86035 8.34863 4.5252 8.57494L4.4877 8.59911C3.73535 9.10229 2.70645 9.02319 2.05488 8.41015C1.3166 7.71581 1.3166 6.59521 2.05488 5.90307L4.68457 3.43554C5.42285 2.7434 6.61816 2.7434 7.35645 3.43554C8.01035 4.04858 8.09473 5.01318 7.55801 5.7185L7.53223 5.75365C7.29082 6.07006 7.37051 6.50951 7.70566 6.73363C8.04082 6.95776 8.51191 6.88525 8.75098 6.57104L8.77676 6.53588C9.74238 5.27245 9.59004 3.54101 8.41816 2.44237C7.09395 1.20092 4.94941 1.20092 3.6252 2.44237L0.993164 4.9099Z" fill="#75808E"/></svg>
      <div class="uw-bf-copy-notify">Link copied</div>
    </button>
  </div>
</div>
.uw-bf-copy-notify {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.uw-bf-copy-btn.is-copied .uw-bf-copy-notify {
  opacity: 1;
  visibility: visible;
}
document.addEventListener('click', async (event) => {
    const button = event.target.closest('.uw-bf-copy-btn');

    if (!button) {
        return;
    }

    const url = button.dataset.url;

    try {
        await navigator.clipboard.writeText(url);

        button.classList.add('is-copied');

        setTimeout(() => {
            button.classList.remove('is-copied');
        }, 2000);

    } catch (error) {
        console.error('COPY ERROR:', error);
    }    
});
A diagram on a pink background features a central padlock icon linked to four rectangular elements, suggesting a secure system. The word Upwind is in the top right corner, subtly hinting at AWS Fargate security explained through its design.

Securing AWS Fargate: Best Practices for Containerized Workloads 

<?php

$post_id = get_the_ID();
$author_terms = get_the_terms( $post_id, 'author_tax' );
$authors = [];

if ( $author_terms && ! is_wp_error( $author_terms ) ) {
    foreach ( $author_terms as $term ) {
        $photo_id = get_field(
            'author_photo',
            'author_tax_' . $term->term_id
        );

        $authors[] = [
            'name'  => $term->name,
            'url'   => get_term_link( $term->term_id ),
            'photo' => $photo_id
                ? wp_get_attachment_image_url( $photo_id, 'author-image' )
                : '',
        ];
    }
}

?>

<div class="uw-bf-card__meta">
    <?php if ( count( $authors ) > 0 ) { ?>
        <div class="uw-bf-card__author-photos">

            <?php foreach ( $authors as $author ) { ?>
                <a
                    href="<?php echo esc_url( $author['url'] ); ?>"
                    class="uw-bf-card__author-photo-link"
                >
                    <img
                        class="uw-bf-card__author-photo"
                        src="<?php echo esc_url( $author['photo'] ); ?>"
                        alt="<?php echo esc_attr( $author['name'] ); ?>"
                    >
                </a>
            <?php } ?>

        </div>
    <?php } ?>

    <div class="uw-bf-card__meta-sub">
        <span class="uw-bf-card__author-names">
            <?php echo getAuthorNames( $authors ); ?>
        </span>

        <span class="uw-bf-card__date">
            <?php echo get_the_date( 'F d, Y', $post_id ); ?>
        </span>
    </div>
</div>
.brxe-qhtnal{
  .uw-bf-card__author-photo, .uw-bf-card__author-photo-link {
  width: 53px;
  height: 53px;
}
}
Amazon Web Services (AWS) Fargate, a container-as-a-service (CaaS) solution, has simplified container management by transferring infrastructure security to AWS, while customers retain responsibility for security within the container layer — application, data, and container configurations. That division is central to Fargate’s model and is at the core of specialized security practices that will need to…
Read More
<?php $url = get_permalink(); ?>
<?php $title = get_the_title(); ?>

<div class="uw-bf-card__share">
  <a class="uw-bf-share-btn" href="https://www.linkedin.com/shareArticle?mini=true&url=<?php echo urlencode($url) . '&title=' . urlencode($title); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn"><svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.51819 10.9373H0.185826V3.63501H2.51819V10.9373ZM1.35075 2.63892C0.604939 2.63892 0 2.03833 0 1.31323C5.33822e-09 0.964941 0.142311 0.630916 0.395626 0.384637C0.648942 0.138358 0.992511 0 1.35075 0C1.709 0 2.05256 0.138358 2.30588 0.384637C2.5592 0.630916 2.70151 0.964941 2.70151 1.31323C2.70151 2.03833 2.09632 2.63892 1.35075 2.63892ZM11.2475 10.9373H8.92015V7.38257C8.92015 6.5354 8.90257 5.44897 7.70751 5.44897C6.49487 5.44897 6.30904 6.36938 6.30904 7.32153V10.9373H3.97919V3.63501H6.21613V4.6311H6.24877C6.56016 4.05737 7.32079 3.4519 8.45558 3.4519C10.8161 3.4519 11.25 4.96313 11.25 6.92603V10.9373H11.2475Z" fill="#75808E"/></svg></a>
  
  <a class="uw-bf-share-btn" href="https://twitter.com/intent/tweet?url=<?php echo rawurlencode($url) . '&text=' . urlencode($title); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on X"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.3319 5.92804L13.5437 0H12.3087L7.78327 5.14724L4.16883 0H0L5.46574 7.78354L0 14H1.2351L6.01406 8.56434L9.83117 14H14L8.3316 5.92804H8.3319ZM6.64026 7.85211L6.08647 7.07705L1.68013 0.909776H3.57717L7.13314 5.88696L7.68693 6.66202L12.3093 13.1316H10.4122L6.64026 7.85241V7.85211Z" fill="#75808E"/></svg></a>
  
  <a class="uw-bf-share-btn" href="https://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode($url); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook"><svg width="7" height="14" viewBox="0 0 7 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.00586 7.73438L6.33914 5.24595H4.25531V3.63113C4.25531 2.95034 4.54641 2.28674 5.47969 2.28674H6.42703V0.168115C6.42703 0.168115 5.56734 0 4.74539 0C3.0293 0 1.90758 1.19185 1.90758 3.34941V5.24595H0V7.73438H1.90758V13.75H4.25531V7.73438H6.00586Z" fill="#75808E"/></svg></a>
  
  <div class="uw-bf-copy-wrap">
    <button class="uw-bf-share-btn uw-bf-copy-btn" data-url="<?php echo get_permalink(); ?>" aria-label="Copy link">
      <svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.1713 5.42406C14.4955 4.18261 14.4955 2.17211 13.1713 0.930656C11.9994 -0.167977 10.1525 -0.310799 8.80488 0.592277L8.76738 0.616447C8.42988 0.842765 8.35254 1.28222 8.59394 1.59643C8.83535 1.91064 9.3041 1.98534 9.63926 1.75902L9.67676 1.73485C10.4291 1.23168 11.458 1.31078 12.1096 1.92382C12.8479 2.61596 12.8479 3.73656 12.1096 4.4287L9.47988 6.89843C8.7416 7.59057 7.54629 7.59057 6.80801 6.89843C6.1541 6.28539 6.06973 5.32079 6.60645 4.61767L6.63223 4.58251C6.87363 4.26611 6.79394 3.82665 6.45879 3.60253C6.12363 3.37841 5.65254 3.45092 5.41348 3.76513L5.3877 3.80028C4.42207 5.06152 4.57441 6.79296 5.74629 7.89159C7.07051 9.13305 9.21504 9.13305 10.5393 7.89159L13.1713 5.42406ZM0.993164 4.9099C-0.331055 6.15136 -0.331055 8.16186 0.993164 9.40331C2.16504 10.5019 4.01191 10.6448 5.35957 9.74169L5.39707 9.71752C5.73457 9.4912 5.81191 9.05175 5.57051 8.73754C5.3291 8.42333 4.86035 8.34863 4.5252 8.57494L4.4877 8.59911C3.73535 9.10229 2.70645 9.02319 2.05488 8.41015C1.3166 7.71581 1.3166 6.59521 2.05488 5.90307L4.68457 3.43554C5.42285 2.7434 6.61816 2.7434 7.35645 3.43554C8.01035 4.04858 8.09473 5.01318 7.55801 5.7185L7.53223 5.75365C7.29082 6.07006 7.37051 6.50951 7.70566 6.73363C8.04082 6.95776 8.51191 6.88525 8.75098 6.57104L8.77676 6.53588C9.74238 5.27245 9.59004 3.54101 8.41816 2.44237C7.09395 1.20092 4.94941 1.20092 3.6252 2.44237L0.993164 4.9099Z" fill="#75808E"/></svg>
      <div class="uw-bf-copy-notify">Link copied</div>
    </button>
  </div>
</div>
.uw-bf-copy-notify {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.uw-bf-copy-btn.is-copied .uw-bf-copy-notify {
  opacity: 1;
  visibility: visible;
}
document.addEventListener('click', async (event) => {
    const button = event.target.closest('.uw-bf-copy-btn');

    if (!button) {
        return;
    }

    const url = button.dataset.url;

    try {
        await navigator.clipboard.writeText(url);

        button.classList.add('is-copied');

        setTimeout(() => {
            button.classList.remove('is-copied');
        }, 2000);

    } catch (error) {
        console.error('COPY ERROR:', error);
    }    
});
_container-scanning

Container Vulnerability Scanning: A Comprehensive Guide

<?php

$post_id = get_the_ID();
$author_terms = get_the_terms( $post_id, 'author_tax' );
$authors = [];

if ( $author_terms && ! is_wp_error( $author_terms ) ) {
    foreach ( $author_terms as $term ) {
        $photo_id = get_field(
            'author_photo',
            'author_tax_' . $term->term_id
        );

        $authors[] = [
            'name'  => $term->name,
            'url'   => get_term_link( $term->term_id ),
            'photo' => $photo_id
                ? wp_get_attachment_image_url( $photo_id, 'author-image' )
                : '',
        ];
    }
}

?>

<div class="uw-bf-card__meta">
    <?php if ( count( $authors ) > 0 ) { ?>
        <div class="uw-bf-card__author-photos">

            <?php foreach ( $authors as $author ) { ?>
                <a
                    href="<?php echo esc_url( $author['url'] ); ?>"
                    class="uw-bf-card__author-photo-link"
                >
                    <img
                        class="uw-bf-card__author-photo"
                        src="<?php echo esc_url( $author['photo'] ); ?>"
                        alt="<?php echo esc_attr( $author['name'] ); ?>"
                    >
                </a>
            <?php } ?>

        </div>
    <?php } ?>

    <div class="uw-bf-card__meta-sub">
        <span class="uw-bf-card__author-names">
            <?php echo getAuthorNames( $authors ); ?>
        </span>

        <span class="uw-bf-card__date">
            <?php echo get_the_date( 'F d, Y', $post_id ); ?>
        </span>
    </div>
</div>
.brxe-qhtnal{
  .uw-bf-card__author-photo, .uw-bf-card__author-photo-link {
  width: 53px;
  height: 53px;
}
}
Ninety-six percent of 3rd-party container applications contain vulnerabilities. While that rate may seem high, containerization comes with its own benefits that can give DevOps teams a competitive edge. Containers are here to stay. In this article, we’re diving into container scanning features and related tools so you can get the most out of this flexible…
Read More
<?php $url = get_permalink(); ?>
<?php $title = get_the_title(); ?>

<div class="uw-bf-card__share">
  <a class="uw-bf-share-btn" href="https://www.linkedin.com/shareArticle?mini=true&url=<?php echo urlencode($url) . '&title=' . urlencode($title); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on LinkedIn"><svg width="12" height="11" viewBox="0 0 12 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M2.51819 10.9373H0.185826V3.63501H2.51819V10.9373ZM1.35075 2.63892C0.604939 2.63892 0 2.03833 0 1.31323C5.33822e-09 0.964941 0.142311 0.630916 0.395626 0.384637C0.648942 0.138358 0.992511 0 1.35075 0C1.709 0 2.05256 0.138358 2.30588 0.384637C2.5592 0.630916 2.70151 0.964941 2.70151 1.31323C2.70151 2.03833 2.09632 2.63892 1.35075 2.63892ZM11.2475 10.9373H8.92015V7.38257C8.92015 6.5354 8.90257 5.44897 7.70751 5.44897C6.49487 5.44897 6.30904 6.36938 6.30904 7.32153V10.9373H3.97919V3.63501H6.21613V4.6311H6.24877C6.56016 4.05737 7.32079 3.4519 8.45558 3.4519C10.8161 3.4519 11.25 4.96313 11.25 6.92603V10.9373H11.2475Z" fill="#75808E"/></svg></a>
  
  <a class="uw-bf-share-btn" href="https://twitter.com/intent/tweet?url=<?php echo rawurlencode($url) . '&text=' . urlencode($title); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on X"><svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M8.3319 5.92804L13.5437 0H12.3087L7.78327 5.14724L4.16883 0H0L5.46574 7.78354L0 14H1.2351L6.01406 8.56434L9.83117 14H14L8.3316 5.92804H8.3319ZM6.64026 7.85211L6.08647 7.07705L1.68013 0.909776H3.57717L7.13314 5.88696L7.68693 6.66202L12.3093 13.1316H10.4122L6.64026 7.85241V7.85211Z" fill="#75808E"/></svg></a>
  
  <a class="uw-bf-share-btn" href="https://www.facebook.com/sharer/sharer.php?u=<?php echo urlencode($url); ?>" target="_blank" rel="noopener noreferrer" aria-label="Share on Facebook"><svg width="7" height="14" viewBox="0 0 7 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M6.00586 7.73438L6.33914 5.24595H4.25531V3.63113C4.25531 2.95034 4.54641 2.28674 5.47969 2.28674H6.42703V0.168115C6.42703 0.168115 5.56734 0 4.74539 0C3.0293 0 1.90758 1.19185 1.90758 3.34941V5.24595H0V7.73438H1.90758V13.75H4.25531V7.73438H6.00586Z" fill="#75808E"/></svg></a>
  
  <div class="uw-bf-copy-wrap">
    <button class="uw-bf-share-btn uw-bf-copy-btn" data-url="<?php echo get_permalink(); ?>" aria-label="Copy link">
      <svg width="15" height="11" viewBox="0 0 15 11" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M13.1713 5.42406C14.4955 4.18261 14.4955 2.17211 13.1713 0.930656C11.9994 -0.167977 10.1525 -0.310799 8.80488 0.592277L8.76738 0.616447C8.42988 0.842765 8.35254 1.28222 8.59394 1.59643C8.83535 1.91064 9.3041 1.98534 9.63926 1.75902L9.67676 1.73485C10.4291 1.23168 11.458 1.31078 12.1096 1.92382C12.8479 2.61596 12.8479 3.73656 12.1096 4.4287L9.47988 6.89843C8.7416 7.59057 7.54629 7.59057 6.80801 6.89843C6.1541 6.28539 6.06973 5.32079 6.60645 4.61767L6.63223 4.58251C6.87363 4.26611 6.79394 3.82665 6.45879 3.60253C6.12363 3.37841 5.65254 3.45092 5.41348 3.76513L5.3877 3.80028C4.42207 5.06152 4.57441 6.79296 5.74629 7.89159C7.07051 9.13305 9.21504 9.13305 10.5393 7.89159L13.1713 5.42406ZM0.993164 4.9099C-0.331055 6.15136 -0.331055 8.16186 0.993164 9.40331C2.16504 10.5019 4.01191 10.6448 5.35957 9.74169L5.39707 9.71752C5.73457 9.4912 5.81191 9.05175 5.57051 8.73754C5.3291 8.42333 4.86035 8.34863 4.5252 8.57494L4.4877 8.59911C3.73535 9.10229 2.70645 9.02319 2.05488 8.41015C1.3166 7.71581 1.3166 6.59521 2.05488 5.90307L4.68457 3.43554C5.42285 2.7434 6.61816 2.7434 7.35645 3.43554C8.01035 4.04858 8.09473 5.01318 7.55801 5.7185L7.53223 5.75365C7.29082 6.07006 7.37051 6.50951 7.70566 6.73363C8.04082 6.95776 8.51191 6.88525 8.75098 6.57104L8.77676 6.53588C9.74238 5.27245 9.59004 3.54101 8.41816 2.44237C7.09395 1.20092 4.94941 1.20092 3.6252 2.44237L0.993164 4.9099Z" fill="#75808E"/></svg>
      <div class="uw-bf-copy-notify">Link copied</div>
    </button>
  </div>
</div>
.uw-bf-copy-notify {
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.2s ease, visibility 0.2s ease;
}

.uw-bf-copy-btn.is-copied .uw-bf-copy-notify {
  opacity: 1;
  visibility: visible;
}
document.addEventListener('click', async (event) => {
    const button = event.target.closest('.uw-bf-copy-btn');

    if (!button) {
        return;
    }

    const url = button.dataset.url;

    try {
        await navigator.clipboard.writeText(url);

        button.classList.add('is-copied');

        setTimeout(() => {
            button.classList.remove('is-copied');
        }, 2000);

    } catch (error) {
        console.error('COPY ERROR:', error);
    }    
});
Add the Upwind RSS Feed to Slack
Connect the Upwind RSS Feed to your Slack.
Follow the how-to here.
Threat RSS
Add the Upwind RSS Feed to Slack
Connect the Upwind RSS Feed to your Slack.
Follow the how-to here.
Main RSS