Glossary

Upwind Glossary

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

Best Practices

G-124 AWS Security Issues, Risks & Concerns
June 18, 2025

AWS Security Issues, Risks, and Concerns

All cloud providers have their own defaults within the shared responsibility model, and Amazon is no different. But how is Amazon Web Services (AWS) unique? And what are AWS security issues, risks, and concerns that go a step deeper than “open Amazon S3 buckets” but really get to the heart of the second-level tech challenges…
Diagram of four rectangular blocks connected to a central lock icon, representing security or protected data; Upwind logo appears in the top right corner on a soft orange background.
May 7, 2025

AWS Shared Responsibility Model

When cloud security breaches happen, teams are inevitably faced with one key question: Whose fault was it? On Amazon Web Services (AWS), the answer depends on how well you understand the platform’s Shared Responsibility Model, a foundational, but often oversimplified, framework that outlines who secures what in the cloud. We’ve already explored how to secure…
An illustration of a smiling sandcastle with two small towers on a circular sandy area, set against a pink background. The word Upwind appears in the top right corner.
May 7, 2025

What is Risk Posture Management?

As organizations scale across cloud, SaaS, AI, and hybrid infrastructure, tech leaders are being asked a deceptively simple question: “How much risk are we actually carrying right now — and how well are we managing it?” The problem is, most security programs still operate in silos. Companies track misconfigurations, vulnerabilities, or identity exposures independently without…
A padlock icon with code brackets in the center, symbolizing secure coding, on a peach gradient background. The word upwind appears in the top right corner.
May 7, 2025

What is Security Posture?

It’s a deceptively simple question: How strong is our cybersecurity program right now? And the ability to answer the question, let alone to quantify it with receipts, grows more challenging as organizations expand into cloud-native workloads, AI models, and hybrid environments. As tools, teams, and threat vectors multiply, so too does the difficulty of answering…
Four green gear icons with plus signs surround a central circle containing a checkmark, connected by lines, on a light blue background. The word upwind appears in the top right corner.
May 7, 2025

What is AI SPM? AI security posture management explained

Updated on October 5, 2026AI services often reach production before anyone inventories them, and AI SPM (AI security posture management) exists to close that gap. It is the practice of continuously discovering every AI asset in your environment and assessing its configuration, permissions and exposure so you can fix risk before attackers use it. Those…
G-127 What is AI Data Security?
May 7, 2025

How to Secure AI Services

We know artificial intelligence (AI) services from their models. But AI services also include pipelines, APIs, and cloud-native apps. And those systems need to be secured, even while allowing models to do what they do best — giving and taking data from users. Elsewhere, we’ve looked into Dark AI (using AI to break down systems’…
A cartoon penguin sits on a floating piece of ice against a pale orange background, with the upwind logo in the top right corner—a playful nod to “What is the Linux Kernel.”.
May 7, 2025

What is the Linux Kernel?

As organizational infrastructures shift toward more complex hybrid cloud or containerized environments, the Linux kernel might be brought into hyperfocus. After all, its kernel-level vulnerabilities can be the most critical entry points for attackers. And with the growing adoption of microservices and containers, how the Linux kernel handles them can become a critical point of…
A white starburst icon with two sparkles is centered on a pink gradient background, evoking innovation in AI Threat Detection. The word Upwind appears in white text at the top right corner.
May 7, 2025

AI Threat Detection

Artificial intelligence (AI) is everywhere, so it’s logical that machine learning models are being deployed to recognize patterns that indicate cyber threats — alerting organizations to anomalies that could indicate attacks in real time. Of course, AI can’t solve all cybersecurity problems, especially when adversaries employ it just as defenders do. And secondary challenges task…
Illustration of binoculars on a light purple background with upwind in the top right corner. The lenses feature a stylized U logo, symbolizing clear vision when exploring SAST vs DAST approaches.
May 7, 2025

SAST vs DAST: Understanding Security Testing Approaches

Security testing is a vital component of the software development lifecycle (SDLC), both for organizations that develop software to sell and those that develop for in-house use. Two of the most common security testing methods are static application security testing (SAST) and dynamic application security testing (DAST). But in the head-to-head world of SAST vs DAST,…
Three stylized figures with padlock symbols float on separate platforms against a pink background, representing Cloud Security Assessment. The Upwind logo appears in the top right corner.
May 7, 2025

What is a Cloud Security Assessment? (And How Do We Do One?)

Cloud security assessments measure the effectiveness of existing security controls so teams get a complete picture of their gaps in misconfiguration detection, access management, and threat monitoring. These assessments should benchmark real-world attack paths — from privilege escalation to overly permissive IAM policies and lateral movement enabled by unsecured workloads. How do those issues stand…
Illustration of binoculars on a light purple background with upwind in the top right corner. The lenses feature a stylized U logo, symbolizing clear vision when exploring SAST vs DAST approaches.

SAST vs DAST: Understanding Security Testing Approaches

<?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;
}
}
Security testing is a vital component of the software development lifecycle (SDLC), both for organizations that develop software to sell and those that develop for in-house use. Two of the most common security testing methods are static application security testing (SAST) and dynamic application security testing (DAST). But in the head-to-head world of SAST vs DAST,…
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);
    }    
});
Three stylized figures with padlock symbols float on separate platforms against a pink background, representing Cloud Security Assessment. The Upwind logo appears in the top right corner.

What is a Cloud Security Assessment? (And How Do We Do One?)

<?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;
}
}
Cloud security assessments measure the effectiveness of existing security controls so teams get a complete picture of their gaps in misconfiguration detection, access management, and threat monitoring. These assessments should benchmark real-world attack paths — from privilege escalation to overly permissive IAM policies and lateral movement enabled by unsecured workloads. How do those issues stand…
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 circular icon with a pink background displays three symbols: a padlock, code bracket, and gear—illustrating the best DevSecOps tools for security, coding, and settings. Upwind is elegantly inscribed in the top right corner.

Secure Your Private Cloud: Best Practices & Tools

<?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;
}
}
Organizations often require greater security and control than public cloud providers can offer — especially when handling highly sensitive data or operating in heavily regulated industries. In such cases, private clouds provide an ideal solution, offering superior control, customization, and enhanced security by eliminating the shared infrastructure of public clouds. However, this increased level of…
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);
    }    
});
An illustration of a padlock at the center, symbolizing container architecture for security, is connected to four rectangular shapes in a cross pattern on a light blue background. The upwind logo is prominently displayed at the top right corner.

Secure Your Container Architectures: Best Practices & Kubernetes

<?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;
}
}
From monolithic to hybrid architectures and beyond, part of ensuring that containerized applications remain secure is how they’re constructed. And while it’s common for DevOps teams to implement containers without considering how to protect them against compromise or ensure high availability, it often leads to a mix of cloud architectures and security concerns. We’ve discussed…
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 padlock featuring a brain symbol at its center, representing AI security, stands out against a light purple background. The logo upwind is elegantly positioned in the top right corner.

AI Security: Comprehensive Guide to Protecting AI Models & Data

<?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;
}
}
Artificial intelligence (AI) is transforming industries, but it also introduces new security risks that traditional security measures don’t tackle. For example, AI models can be poisoned, manipulated, stolen, or exploited through adversarial techniques or unauthorized access. That makes AI security critical. It protects business assets that rely on AI and secures AI itself from emerging…
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 padlock adorned with the European Union flag stands prominently on a blue gradient background, symbolizing security. In the top right corner, Upwind invites you to explore further, perhaps asking, What is the Digital Operational Resilience Act (DORA)?.

Understand & Achieve DORA Compliance

<?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;
}
}
The European Union’s (EU) Digital Operational Resilience Act (DORA) is fully operational as of January 17, 2025, requiring financial institutions to follow risk management practices, report incidents, and have a plan for digital resiliency in case of breaches. But DORA isn’t just binding for banks and insurers — it regulates many third-party providers that offer…
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 blue and white image showcases a circle split into three segments, each with an icon: a lock, coding brackets, and a gear. The term upwind graces the top right corner, echoing core DevSecOps principles.

Mastering DevSecOps: Best Practices for Secure Development

<?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;
}
}
One of the most significant trends in the modern technology landscape, the DevSecOps blends development, security, and operations into a unified continuous development and security analysis pipeline. DevSecOps practices integrate security into the development lifecycle, enabling companies to release software with fewer known vulnerabilities and greater overall stability. But it’s not a perfect union.  This…
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 blue padlock icon inside a white circle with a swirling design on a light blue background. The word upwind is in the top-right corner, subtly hinting at the importance of security measures like CIS Benchmarks.

Understanding & Implementing CIS Benchmarks for Enhanced Security

<?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;
}
}
Companies voluntarily align with frameworks like CIS Benchmarks to meet customer expectations, ensure audit readiness, and build trust. These Benchmarks provide prescriptive guidelines for hardening systems, but their adoption isn’t just about ticking boxes — it’s about proving that security controls meet the highest standards in increasingly competitive and regulated markets. Aligning with CIS Benchmarks…
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 stylized yellow key inside a circular badge with scalloped edges set against a soft orange background subtly hints at the concepts like SAST vs SCA. The word Upwind is visible in the top right corner, adding an air of mystery.

SAST vs SCA: The Key Differences

<?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;
}
}
Layering these two approaches to code security might seem like a non-negotiable part of a more secure development lifecycle. However, when considering security tools like static application security testing (SAST) and software composition analysis (SCA), it’s easy to get caught in high-level definitions that don’t answer the real question: What do they actually solve, where…
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 cartoon penguin, resembling the Linux mascot, sits on an ice floe clutching a padlock. Upwind: Your Essential Linux Security Guide graces the top right corner. The backdrop is a soothing light blue gradient.

Essential Guide to Linux Security Best Practices

<?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;
}
}
Architectural patterns. Advanced kernel-level mitigations. Continuous integrity management. Supply chain security. There’s a lot that goes into Linux security. And all those pieces need to be coupled with strategic initiatives, like zero-trust architectures and scaling security policies.  This essential guide to Linux security topics starts with the common hardening basics, but also touches on more…
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 blue and white circular icon featuring a padlock in the center, representing security or privacy. The word upwind is visible in the top right corner on a light blue background.

SOC 2 Compliance: A Practical 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;
}
}
While not legally required, SOC 2 has become a de facto standard for service organizations aiming to demonstrate their commitment to security and build trust with enterprise clients, partners, and regulated industries. For those tasked with managing modern cloud environments, the process of mapping compliance controls to dynamic workloads and sprawling infrastructure can feel like…
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);
    }    
});
Illustration of a pink flower and a bee inside a blue base glass dome on a light green background, with the word upwind subtly integrated in the top right corner. Also, for those curious minds asking, What is EBPF Security? it’s not found under this dome but within tech marvels!.

Understand eBPF Security: Deep Visibility & Real-Time Threat

<?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;
}
}
Extended Berkeley Packet Filter (eBPF) isn’t an agent. And it doesn’t exactly function like one, either. What is it? What does it do, and what security gaps does it close that agents can’t? What about performance? We’re breaking down what eBPF security includes, but then going deeper into visibility tradeoffs, operational overhead, and compliance concerns…
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