<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: OWASP Foundation</title>
    <description>The latest articles on Forem by OWASP Foundation (@owasp_foundation).</description>
    <link>https://forem.com/owasp_foundation</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1576475%2F1da6021a-e642-4dea-b694-25d718947c11.jpg</url>
      <title>Forem: OWASP Foundation</title>
      <link>https://forem.com/owasp_foundation</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/owasp_foundation"/>
    <language>en</language>
    <item>
      <title>[Boost]</title>
      <dc:creator>OWASP Foundation</dc:creator>
      <pubDate>Thu, 02 Apr 2026 21:09:41 +0000</pubDate>
      <link>https://forem.com/owasp_foundation/-40bl</link>
      <guid>https://forem.com/owasp_foundation/-40bl</guid>
      <description>&lt;div class="ltag__link--embedded"&gt;
  &lt;div class="crayons-story "&gt;
  &lt;a href="https://dev.to/owaspblt/first-pr-get-paid-for-it-3k3e" class="crayons-story__hidden-navigation-link"&gt;🎉First PR? Get paid for it&lt;/a&gt;


  &lt;div class="crayons-story__body crayons-story__body-full_post"&gt;
    &lt;div class="crayons-story__top"&gt;
      &lt;div class="crayons-story__meta"&gt;
        &lt;div class="crayons-story__author-pic"&gt;
          &lt;a class="crayons-logo crayons-logo--l" href="/owaspblt"&gt;
            &lt;img alt="OWASP BLT logo" src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F12465%2Fd2237075-139f-4711-81f7-136fab749d1b.png" class="crayons-logo__image" width="800" height="761"&gt;
          &lt;/a&gt;

          &lt;a href="/ananya-09" class="crayons-avatar  crayons-avatar--s absolute -right-2 -bottom-2 border-solid border-2 border-base-inverted  "&gt;
            &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3772012%2Fb41bba08-e494-4878-9c34-0524ccaeb9fe.jpg" alt="ananya-09 profile" class="crayons-avatar__image" width="800" height="602"&gt;
          &lt;/a&gt;
        &lt;/div&gt;
        &lt;div&gt;
          &lt;div&gt;
            &lt;a href="/ananya-09" class="crayons-story__secondary fw-medium m:hidden"&gt;
              Ananya
            &lt;/a&gt;
            &lt;div class="profile-preview-card relative mb-4 s:mb-0 fw-medium hidden m:inline-block"&gt;
              
                Ananya
                
              
              &lt;div id="story-author-preview-content-3441995" class="profile-preview-card__content crayons-dropdown branded-7 p-4 pt-0"&gt;
                &lt;div class="gap-4 grid"&gt;
                  &lt;div class="-mt-4"&gt;
                    &lt;a href="/ananya-09" class="flex"&gt;
                      &lt;span class="crayons-avatar crayons-avatar--xl mr-2 shrink-0"&gt;
                        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3772012%2Fb41bba08-e494-4878-9c34-0524ccaeb9fe.jpg" class="crayons-avatar__image" alt="" width="800" height="602"&gt;
                      &lt;/span&gt;
                      &lt;span class="crayons-link crayons-subtitle-2 mt-5"&gt;Ananya&lt;/span&gt;
                    &lt;/a&gt;
                  &lt;/div&gt;
                  &lt;div class="print-hidden"&gt;
                    
                      Follow
                    
                  &lt;/div&gt;
                  &lt;div class="author-preview-metadata-container"&gt;&lt;/div&gt;
                &lt;/div&gt;
              &lt;/div&gt;
            &lt;/div&gt;

            &lt;span&gt;
              &lt;span class="crayons-story__tertiary fw-normal"&gt; for &lt;/span&gt;&lt;a href="/owaspblt" class="crayons-story__secondary fw-medium"&gt;OWASP BLT&lt;/a&gt;
            &lt;/span&gt;
          &lt;/div&gt;
          &lt;a href="https://dev.to/owaspblt/first-pr-get-paid-for-it-3k3e" class="crayons-story__tertiary fs-xs"&gt;&lt;time&gt;Apr 1&lt;/time&gt;&lt;span class="time-ago-indicator-initial-placeholder"&gt;&lt;/span&gt;&lt;/a&gt;
        &lt;/div&gt;
      &lt;/div&gt;

    &lt;/div&gt;

    &lt;div class="crayons-story__indention"&gt;
      &lt;h2 class="crayons-story__title crayons-story__title-full_post"&gt;
        &lt;a href="https://dev.to/owaspblt/first-pr-get-paid-for-it-3k3e" id="article-link-3441995"&gt;
          🎉First PR? Get paid for it
        &lt;/a&gt;
      &lt;/h2&gt;
        &lt;div class="crayons-story__tags"&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/100daysofcode"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;100daysofcode&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/github"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;github&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/beginners"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;beginners&lt;/a&gt;
            &lt;a class="crayons-tag  crayons-tag--monochrome " href="/t/opensource"&gt;&lt;span class="crayons-tag__prefix"&gt;#&lt;/span&gt;opensource&lt;/a&gt;
        &lt;/div&gt;
      &lt;div class="crayons-story__bottom"&gt;
        &lt;div class="crayons-story__details"&gt;
          &lt;a href="https://dev.to/owaspblt/first-pr-get-paid-for-it-3k3e" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left"&gt;
            &lt;div class="multiple_reactions_aggregate"&gt;
              &lt;span class="multiple_reactions_icons_container"&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/exploding-head-daceb38d627e6ae9b730f36a1e390fca556a4289d5a41abb2c35068ad3e2c4b5.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/multi-unicorn-b44d6f8c23cdd00964192bedc38af3e82463978aa611b4365bd33a0f1f4f3e97.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
                  &lt;span class="crayons_icon_container"&gt;
                    &lt;img src="https://assets.dev.to/assets/sparkle-heart-5f9bee3767e18deb1bb725290cb151c25234768a0e9a2bd39370c382d02920cf.svg" width="24" height="24"&gt;
                  &lt;/span&gt;
              &lt;/span&gt;
              &lt;span class="aggregate_reactions_counter"&gt;13&lt;span class="hidden s:inline"&gt; reactions&lt;/span&gt;&lt;/span&gt;
            &lt;/div&gt;
          &lt;/a&gt;
            &lt;a href="https://dev.to/owaspblt/first-pr-get-paid-for-it-3k3e#comments" class="crayons-btn crayons-btn--s crayons-btn--ghost crayons-btn--icon-left flex items-center"&gt;
              Comments


              2&lt;span class="hidden s:inline"&gt; comments&lt;/span&gt;
            &lt;/a&gt;
        &lt;/div&gt;
        &lt;div class="crayons-story__save"&gt;
          &lt;small class="crayons-story__tertiary fs-xs mr-2"&gt;
            2 min read
          &lt;/small&gt;
            
              &lt;span class="bm-initial"&gt;
                

              &lt;/span&gt;
              &lt;span class="bm-success"&gt;
                

              &lt;/span&gt;
            
        &lt;/div&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/div&gt;
&lt;/div&gt;

&lt;/div&gt;


</description>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>OWASP Foundation</dc:creator>
      <pubDate>Mon, 17 Feb 2025 19:41:39 +0000</pubDate>
      <link>https://forem.com/owasp_foundation/-352m</link>
      <guid>https://forem.com/owasp_foundation/-352m</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/owasp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F3468%2F0b3561bb-9ac3-413f-baaa-5014181e4b4d.jpg" alt="OWASP® Foundation" width="400" height="400"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1603787%2F6be93ba3-b2fd-4da5-a217-8ee7d88bf1e6.png" alt="" width="800" height="800"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/owasp/how-to-pass-the-owasp-masvs-verification-by-design-2cf9" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to pass the OWASP MASVS verification by design&lt;/h2&gt;
      &lt;h3&gt;johan sydseter for OWASP® Foundation ・ Feb 14&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#appsec&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#mobile&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cybersecurity&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#security&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>appsec</category>
      <category>mobile</category>
      <category>cybersecurity</category>
      <category>security</category>
    </item>
    <item>
      <title>[Boost]</title>
      <dc:creator>OWASP Foundation</dc:creator>
      <pubDate>Mon, 17 Feb 2025 16:44:08 +0000</pubDate>
      <link>https://forem.com/owasp_foundation/-841</link>
      <guid>https://forem.com/owasp_foundation/-841</guid>
      <description>&lt;div class="ltag__link"&gt;
  &lt;a href="/owasp" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__org__pic"&gt;
      &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Forganization%2Fprofile_image%2F3468%2F0b3561bb-9ac3-413f-baaa-5014181e4b4d.jpg" alt="OWASP® Foundation" width="400" height="400"&gt;
      &lt;div class="ltag__link__user__pic"&gt;
        &lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F1603787%2F6be93ba3-b2fd-4da5-a217-8ee7d88bf1e6.png" alt="" width="800" height="800"&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
  &lt;a href="https://dev.to/owasp/how-to-do-threat-modeling-for-agile-mobile-app-development-28ki" class="ltag__link__link"&gt;
    &lt;div class="ltag__link__content"&gt;
      &lt;h2&gt;How to do threat modeling for agile mobile app development?&lt;/h2&gt;
      &lt;h3&gt;johan sydseter for OWASP® Foundation ・ Feb 6&lt;/h3&gt;
      &lt;div class="ltag__link__taglist"&gt;
        &lt;span class="ltag__link__tag"&gt;#agile&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#mobile&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#appsec&lt;/span&gt;
        &lt;span class="ltag__link__tag"&gt;#cybersecurity&lt;/span&gt;
      &lt;/div&gt;
    &lt;/div&gt;
  &lt;/a&gt;
&lt;/div&gt;


</description>
      <category>agile</category>
      <category>mobile</category>
      <category>appsec</category>
      <category>cybersecurity</category>
    </item>
    <item>
      <title>The Case for Standards in Mobile App Security</title>
      <dc:creator>OWASP Foundation</dc:creator>
      <pubDate>Wed, 31 Jul 2024 17:01:03 +0000</pubDate>
      <link>https://forem.com/owasp/the-case-for-standards-in-mobile-app-security-6mh</link>
      <guid>https://forem.com/owasp/the-case-for-standards-in-mobile-app-security-6mh</guid>
      <description>&lt;p&gt;&lt;strong&gt;by Carlos Holguera and Sven Schleier&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;In cyber security staying ahead of potential threats and vulnerabilities is key; adherence to industry standards is not just a best practice; it's a necessity. In this article, we will explore why it's crucial to follow an industry standard like the &lt;a href="https://mas.owasp.org/MASVS/" rel="noopener noreferrer"&gt;OWASP Mobile Application Security Verification Standard (MASVS)&lt;/a&gt;, both from the perspective of those developing tools and services to assess mobile apps and those seeking compliance.&lt;/p&gt;

&lt;h2&gt;
  
  
  The Benefits of Industry Standards
&lt;/h2&gt;

&lt;p&gt;Thanks to industry standards like the OWASP MASVS, which provide comprehensive coverage of the attack surface, testing remains consistent and reliable over time, instilling trust in the quality of vendor services.&lt;/p&gt;

&lt;p&gt;Standards like the OWASP MASVS are backed by a large community of security professionals who ensure that any new threats, or best practices are quickly integrated into the standard, keeping it relevant and effective. Established standards also promote transparency in the testing process, allowing customers to clearly understand the scope and coverage, preventing hidden gaps in security assessments.&lt;/p&gt;

&lt;p&gt;Vendors adhering to recognized industry standards demonstrate professionalism, build trust, and simplify compliance efforts for organizations, ensuring credibility in delivering high-quality services. When comparing different vendors, having a known standard as a reference point makes it easier to evaluate the quality and scope of their services. It provides a common benchmark to assess their capabilities.&lt;/p&gt;

&lt;p&gt;Additionally, by testing mobile apps against recognized standards, organizations can proactively manage and identify vulnerabilities early in the development lifecycle, minimizing the risk of costly post-release fixes.&lt;/p&gt;

&lt;h2&gt;
  
  
  The OWASP MAS Project and its Standards
&lt;/h2&gt;

&lt;p&gt;The &lt;a href="https://mas.owasp.org/" rel="noopener noreferrer"&gt;OWASP Mobile Application Security (MAS)&lt;/a&gt; flagship project provides a robust security standard for mobile apps, known as the OWASP MASVS, along with a comprehensive testing guide (OWASP MASTG). These resources cover the processes, techniques, and tools used during a mobile app security test, ensuring consistent and complete results.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna8zfapwl3mizixjevyd.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/cdn-cgi/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fna8zfapwl3mizixjevyd.png" alt="Two blue cards, side-by-side: MASVS - Mobile Application Security Verification Standard, and MASTG: Mobile Application Security Testing Guide" width="800" height="544"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;The OWASP MASVS standard is divided into various groups of security controls, representing critical areas of the mobile attack surface, including:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;MASVS-STORAGE: Secure storage of sensitive data on a device (data-at-rest).&lt;/li&gt;
&lt;li&gt;MASVS-CRYPTO: Cryptographic functionality used to protect sensitive data.&lt;/li&gt;
&lt;li&gt;MASVS-AUTH: Authentication and authorization mechanisms used by the mobile app.&lt;/li&gt;
&lt;li&gt;MASVS-NETWORK: Secure network communication between the mobile app and remote endpoints (data-in-transit).&lt;/li&gt;
&lt;li&gt;MASVS-PLATFORM: Secure interaction with the underlying mobile platform and other installed apps.&lt;/li&gt;
&lt;li&gt;MASVS-CODE: Security best practices for data processing and app maintenance.&lt;/li&gt;
&lt;li&gt;MASVS-RESILIENCE: Resilience to reverse engineering and tampering attempts.&lt;/li&gt;
&lt;li&gt;MASVS-PRIVACY: Privacy controls to protect user privacy.&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  A Standard Backed by Standards
&lt;/h3&gt;

&lt;p&gt;To complement the MASVS, the OWASP MAS project also provides the &lt;a href="https://mas.owasp.org/MASTG/" rel="noopener noreferrer"&gt;OWASP Mobile Application Security Testing Guide (MASTG)&lt;/a&gt; and the &lt;a href="https://mas.owasp.org/checklists/" rel="noopener noreferrer"&gt;OWASP MAS Checklist&lt;/a&gt;. Together, these resources are the perfect companion for verifying the controls listed in the OWASP MASVS and demonstrating compliance.&lt;/p&gt;

&lt;p&gt;The Mobile Application Security Verification Standard (MASVS) is intertwined with various industry standards, underpinning its robustness and effectiveness. MASVS-CRYPTO relies on &lt;a href="https://csrc.nist.gov/pubs/sp/800/175/b/r1/final" rel="noopener noreferrer"&gt;NIST.SP.800-175B&lt;/a&gt; and &lt;a href="https://csrc.nist.gov/pubs/sp/800/57/pt1/r5/final" rel="noopener noreferrer"&gt;NIST.SP.800-57&lt;/a&gt;, which provide established cryptographic guidelines and assurance, ensuring that sensitive data within mobile apps remains secure.&lt;/p&gt;

&lt;p&gt;While MASVS-AUTH comprehensively covers app-side authentication and authorization, it recognizes the importance of validating security on the remote endpoint, referencing industry standards like the &lt;a href="https://owasp.org/www-project-application-security-verification-standard/" rel="noopener noreferrer"&gt;OWASP Application Security Verification Standard (ASVS)&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;MASVS-CODE encourages developers to follow best practices from &lt;a href="https://owasp.org/www-project-samm/" rel="noopener noreferrer"&gt;OWASP Software Assurance Maturity Model (SAMM)&lt;/a&gt; and &lt;a href="https://csrc.nist.gov/pubs/sp/800/218/final" rel="noopener noreferrer"&gt;NIST.SP.800-218 Secure Software Development Framework (SSDF)&lt;/a&gt; to prevent vulnerabilities during development.&lt;/p&gt;

&lt;p&gt;MASVS-PRIVACY draws inspiration from essential privacy regulations like GDPR, COPPA, CCPA, and ENISA, providing a foundation for privacy considerations.&lt;/p&gt;

&lt;h2&gt;
  
  
  Conclusion
&lt;/h2&gt;

&lt;p&gt;The importance of following industry standards like the OWASP MASVS in mobile app security cannot be overstated. It ensures consistency, comprehensiveness, and up-to-date protection against evolving threats. For vendors and customers alike, adherence to these standards is not just a matter of trust; it's a strategic choice that enhances security, credibility, and long-term cost-effectiveness in an increasingly mobile-centric world. So, choose your mobile app security provider wisely, and together, let's build a more secure mobile future.&lt;/p&gt;

&lt;p&gt;OWASP Mobile Application Security - &lt;a href="https://mas.owasp.org/" rel="noopener noreferrer"&gt;https://mas.owasp.org/&lt;/a&gt;&lt;br&gt;
OWASP MASVS - &lt;a href="https://mas.owasp.org/MASVS/" rel="noopener noreferrer"&gt;https://mas.owasp.org/MASVS/&lt;/a&gt;&lt;br&gt;
OWASP MASTG - &lt;a href="https://mas.owasp.org/MASTG/" rel="noopener noreferrer"&gt;https://mas.owasp.org/MASTG/&lt;/a&gt;&lt;br&gt;
OWASP MAS Checklist - &lt;a href="https://mas.owasp.org/checklists/" rel="noopener noreferrer"&gt;https://mas.owasp.org/checklists/&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;&lt;a href="https://owasp.org" rel="noopener noreferrer"&gt;OWASP&lt;/a&gt; is a non-profit foundation that envisions a world with no more insecure software. Our mission is to be the global open community that powers secure software through education, tools, and collaboration. We maintain hundreds of open source projects, run industry-leading educational and training conferences, and meet through over 250 chapters worldwide.&lt;/p&gt;

</description>
      <category>mobile</category>
      <category>security</category>
    </item>
    <item>
      <title>Security for Citizen Developers: Low-Code/No-Code Cybersecurity Threats</title>
      <dc:creator>OWASP Foundation</dc:creator>
      <pubDate>Tue, 07 May 2024 14:10:16 +0000</pubDate>
      <link>https://forem.com/owasp/security-for-citizen-developers-low-codeno-code-cybersecurity-threats-1f6f</link>
      <guid>https://forem.com/owasp/security-for-citizen-developers-low-codeno-code-cybersecurity-threats-1f6f</guid>
      <description>&lt;p&gt;&lt;strong&gt;by Ziv Daniel Hagbi&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Hello to all Citizen Developers out there!&lt;/p&gt;

&lt;p&gt;Are you using Low-Code/No-Code platforms to accelerate your digital adoption? That is a question I would ask if this was 2021. 2024 has proven that it is no longer a question of “If”, but of volume (how much do you use it) and depth (how much do you depend on it for your business process)? While this monumental leap in productivity is great for business, and you personally, you should be mindful of the responsibility you now have securing your application and business.&lt;/p&gt;

&lt;p&gt;As low-code/no-code platforms become the go-to solution for many companies, security isn’t always the first thing on the minds of business users. Yet, the simplicity of drag-and-drop functionalities and minimal to no coding requirement does not eliminate the risks associated with application development. It just hides it. This is even heightened with the introduction of generative AI as an enabler for citizen developers. Today, more than ever, citizen developers should ask themselves, “Is my app secured?”&lt;/p&gt;

&lt;p&gt;The OWASP Low-Code/No-Code Top 10 can help you navigate major cybersecurity risks and how to mitigate them. Here's an overview:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt; Account Impersonation (LCNC-SEC-01): Be vigilant about who can act as whom within your applications.&lt;/li&gt;
&lt;li&gt; Authorization Misuse (LCNC-SEC-02): Ensure proper controls are in place to prevent unauthorized access.&lt;/li&gt;
&lt;li&gt; Data Leakage (LCNC-SEC-03): Secure your data from unintentional exposure due to misconfigurations or errors.&lt;/li&gt;
&lt;li&gt; Authentication and Communication Security (LCNC-SEC-04): Strengthen your authentication processes and secure all communications.&lt;/li&gt;
&lt;li&gt; Security Misconfiguration (LCNC-SEC-05): Avoid default settings and configure all security settings appropriately.&lt;/li&gt;
&lt;li&gt; Injection Handling Failures (LCNC-SEC-06): Be careful with data input and outputs that could be manipulated.&lt;/li&gt;
&lt;li&gt; Vulnerable Components (LCNC-SEC-07): Use trusted and up-to-date components in your applications.&lt;/li&gt;
&lt;li&gt; Data and Secret Handling (LCNC-SEC-08): Manage sensitive data and secrets securely.&lt;/li&gt;
&lt;li&gt; Asset Management Failures (LCNC-SEC-09): Keep a tight inventory and control over your digital assets.&lt;/li&gt;
&lt;li&gt;Security Logging and Monitoring (LCNC-SEC-10): Implement robust logging and monitoring to enable auditing while securely handling sensitive data in logs.&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://owasp.org/www-project-top-10-low-code-no-code-security-risks/"&gt;Read the whole OWASP Low-Code/No-Code Top 10 here.&lt;/a&gt; &lt;/p&gt;

&lt;p&gt;Understanding these risks is just the beginning. You should integrate security best practices into your development process, and make sure you keep your knowledge and applications up-to-date. Remember, security is a moving target. Exploring resources from OWASP can help you stay in the know. By adopting a security-minded approach, you not only protect your apps but also enhance the overall security posture of your organization.&lt;/p&gt;

&lt;p&gt;Welcome to the world of secure application development!&lt;/p&gt;

&lt;p&gt;&lt;iframe width="710" height="399" src="https://www.youtube.com/embed/NoDMVRkmWTM"&gt;
&lt;/iframe&gt;
&lt;/p&gt;

&lt;p&gt;--&lt;/p&gt;

&lt;p&gt;&lt;a href="https://owasp.org"&gt;OWASP&lt;/a&gt; is a non-profit foundation that envisions a world with no more insecure software. Our mission is to be the global open community that powers secure software through education, tools, and collaboration. We maintain hundreds of open source projects, run industry-leading educational and training conferences, and meet through over 250 chapters worldwide.&lt;/p&gt;

</description>
      <category>security</category>
      <category>lowcode</category>
      <category>nocode</category>
    </item>
    <item>
      <title>SQL Injection Isn't Dead Yet</title>
      <dc:creator>OWASP Foundation</dc:creator>
      <pubDate>Mon, 15 Apr 2024 12:51:14 +0000</pubDate>
      <link>https://forem.com/owasp/sql-injection-isnt-dead-yet-48ic</link>
      <guid>https://forem.com/owasp/sql-injection-isnt-dead-yet-48ic</guid>
      <description>&lt;p&gt;&lt;strong&gt;by Erlend Oftendal and Naane Baars&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;SQL injection was introduced in an &lt;a href="http://phrack.org/issues/54/8.html" rel="noopener noreferrer"&gt;article by Rain Forrest Puppy (Jeff Forristal) in Phrack&lt;/a&gt; 25 years ago. Even though it is a well-known bug with a well-known remedy, it still frequently occurs even in today's products.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgs.xkcd.com%2Fcomics%2Fexploits_of_a_mom.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fimgs.xkcd.com%2Fcomics%2Fexploits_of_a_mom.png" alt="XKCD: Explits of a Mom"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;If we look at the &lt;a href="https://owasp.org/Top10/" rel="noopener noreferrer"&gt;OWASP Top 10&lt;/a&gt;, injection risk started in the 6th position in the initial 2003 version, and then moved across the top three spots in the later versions.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgji4xdhvqssj2w8q6bre.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fgji4xdhvqssj2w8q6bre.png" alt="A timeline of SQL injection's rank in the OWASP Top 10"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;SQL injection is also number 3 on the &lt;a href="https://www.sans.org/top25-software-errors/" rel="noopener noreferrer"&gt;SANS CWE Top 25 Most Dangerous Software Errors&lt;/a&gt;, and is still frequently on the reports from penetration tests and bug bounty programs, although there is a declining trend. If we look at &lt;a href="https://www.cvedetails.com/vulnerability-list/year-2023/opsqli-1/sql-injection.html" rel="noopener noreferrer"&gt;CVE details of 2023&lt;/a&gt; we get a list of 2159 of 29065 vulnerabilities found.&lt;/p&gt;

&lt;p&gt;CISA, together with the FBI, recently released a Design Alert called &lt;a href="https://www.cisa.gov/resources-tools/resources/secure-design-alert-eliminating-sql-injection-vulnerabilities-software" rel="noopener noreferrer"&gt;Eliminating SQL Injection Vulnerabilities in Software&lt;/a&gt;, asking for all call to action to remediate this vulnerability once and for all.&lt;/p&gt;

&lt;p&gt;That begs the question: why, after all these years, does SQL injection still crop up? It should be a thing of the past.&lt;/p&gt;

&lt;h2&gt;
  
  
  What Is an SQL Injection?
&lt;/h2&gt;

&lt;p&gt;SQL injection typically occurs where attacker-controlled data is concatenated with strings to build SQL queries. The classic example is logins where the application attempts to look up a username and password in the database:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="n"&gt;query&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;SELECT * FROM users WHERE username=&lt;/span&gt;&lt;span class="sh"&gt;'"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="sh"&gt;"'&lt;/span&gt;&lt;span class="s"&gt; AND password=&lt;/span&gt;&lt;span class="sh"&gt;'"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="sh"&gt;"'"&lt;/span&gt;
&lt;span class="n"&gt;result&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;query&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;This type of query is not very common in modern applications for various reasons. Passwords are not stored verbatim, but hashed with a fitting hashing algorithm as per the &lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/Password_Storage_Cheat_Sheet.html" rel="noopener noreferrer"&gt;OWASP Password Storage Cheat Sheet&lt;/a&gt;. Additionally, this specific type of bug is often quickly found in penetration tests and scans. As a result, developers might falsely assume that they have avoided the risk of SQL injection.&lt;/p&gt;

&lt;p&gt;In practice, SQL injection can take many forms and attacker-controlled data can come from many different locations in the code. We typically think of attacker-controlled data as form inputs, parameters from the URL, or data from a JSON body of an HTTP request, but input can come from all parts of an incoming request. This includes header values and encoded values in tokens such as JWT, embedded in image EXIF data, or even in encrypted data, among many other forms. There are even examples of SQL injection in door entry systems where the input is coming from proprietary wire protocols.&lt;/p&gt;

&lt;p&gt;The most common approach to avoiding SQL injection is the use of parameterized queries (or prepared statements), where the data inputs are replaced with placeholders and separated from the query itself:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;users&lt;/span&gt; &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;username&lt;/span&gt; &lt;span class="k"&gt;AND&lt;/span&gt; &lt;span class="n"&gt;password&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;:&lt;/span&gt;&lt;span class="n"&gt;password&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;With this an attacker is no longer able to change the meaning of the query. However, there are cases where using parameterized queries alone is not enough. Suppose we have an application where the user is allowed to change the sort order of the data. The query could look something like:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;servers&lt;/span&gt; &lt;span class="k"&gt;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="n"&gt;hostname&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;In the code that is generating this statement, the &lt;code&gt;order_by&lt;/code&gt; column may be added by the code like this.&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight python"&gt;&lt;code&gt;

&lt;span class="k"&gt;def&lt;/span&gt; &lt;span class="nf"&gt;fetchServers&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;order_by&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="nb"&gt;str&lt;/span&gt;&lt;span class="p"&gt;):&lt;/span&gt;
  &lt;span class="n"&gt;db&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nf"&gt;execute&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt;&lt;span class="s"&gt;select * from servers order by &lt;/span&gt;&lt;span class="sh"&gt;"&lt;/span&gt; &lt;span class="o"&gt;+&lt;/span&gt; &lt;span class="n"&gt;orderBy&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt;
  &lt;span class="bp"&gt;...&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;One thing to note is that you cannot use a parameterized query for the &lt;code&gt;order by&lt;/code&gt; clause. The order by clause will normally be a column name, however if we look at the SQL grammar definition it can be a complete expression. This would also be a valid statement:&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight sql"&gt;&lt;code&gt;

&lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="o"&gt;*&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;servers&lt;/span&gt;
&lt;span class="k"&gt;order&lt;/span&gt; &lt;span class="k"&gt;by&lt;/span&gt; &lt;span class="k"&gt;case&lt;/span&gt; &lt;span class="k"&gt;when&lt;/span&gt; &lt;span class="p"&gt;(&lt;/span&gt;
    &lt;span class="k"&gt;select&lt;/span&gt; &lt;span class="n"&gt;ip&lt;/span&gt; &lt;span class="k"&gt;from&lt;/span&gt; &lt;span class="n"&gt;servers&lt;/span&gt;
    &lt;span class="k"&gt;where&lt;/span&gt; &lt;span class="n"&gt;substr&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="n"&gt;ip&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;&lt;span class="mi"&gt;1&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="s1"&gt;'9'&lt;/span&gt;
&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="k"&gt;IS&lt;/span&gt; &lt;span class="k"&gt;NOT&lt;/span&gt; &lt;span class="k"&gt;NULL&lt;/span&gt;
&lt;span class="k"&gt;then&lt;/span&gt; &lt;span class="n"&gt;hostname&lt;/span&gt;
&lt;span class="k"&gt;else&lt;/span&gt; &lt;span class="n"&gt;id&lt;/span&gt; &lt;span class="k"&gt;end&lt;/span&gt;


&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;

&lt;p&gt;The attacker can look at the ordering of the results and tell you whether the query sent to the database is matching something. Again we end up with a SQL injection. This manual process can be easily accelerated with SQLMap, for example. To fix this you need to validate the column passed to our function above, preferably against a strict allow-list.&lt;/p&gt;

&lt;p&gt;In short, many SQL injection risks can be avoided with a combination of parameterized queries and validation. For all possible mitigations have a look at the &lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html" rel="noopener noreferrer"&gt;OWASP SQL Injection Cheat Sheet&lt;/a&gt;.&lt;/p&gt;

&lt;h2&gt;
  
  
  Remain Vigilant
&lt;/h2&gt;

&lt;p&gt;One reason SQL injections remain a threat is a persistent lack of awareness and due diligence. Many developers use platforms like StackOverflow and tools like GitHub Copilot to quickly find answers, but end up with code vulnerable to SQL injection. A simple copy-and-paste or autocomplete, and you introduce that vulnerability inside your own code. Even if someone in the answers section on StackOverflow points out the SQL injection, it often isn't the top answer or comment.&lt;/p&gt;

&lt;p&gt;Code scanners (SAST) and application scanners (DAST) can certainly find many of the SQL injection issues, but may miss some due to lack of framework support or because they don’t scan all the possible injection points. Maybe AI will one day be able to flawlessly detect SQL injections, and we will get rid of this threat forever. In the meantime, we must remain vigilant.&lt;/p&gt;

&lt;h2&gt;
  
  
  Misplaced Trust
&lt;/h2&gt;

&lt;p&gt;Another source of SQL injection can be the libraries used to communicate with the database. Many developers assume that the libraries have done things right, but that trust is too often misplaced. There are cases where even if you as a developer have done everything right in your code, the application is still vulnerable to SQL injection.&lt;/p&gt;

&lt;p&gt;One such example is the recent &lt;a href="https://www.cve.org/CVERecord?id=CVE-2024-1597" rel="noopener noreferrer"&gt;CVE-2024-1597&lt;/a&gt; in the Java postgresql driver (although this had some really specific preconditions). Another example is &lt;a href="https://www.cve.org/CVERecord?id=CVE-2019-14900" rel="noopener noreferrer"&gt;CVE-2019-14900&lt;/a&gt; which was a flaw in Hibernate ORM.&lt;/p&gt;

&lt;p&gt;WordPress plugins have also been a running source of SQL injection. Some examples from 2023 alone include &lt;a href="https://www.cve.org/CVERecord?id=CVE-2023-23488" rel="noopener noreferrer"&gt;CVE-2023-23488&lt;/a&gt;, &lt;a href="https://www.cve.org/CVERecord?id=CVE-2023-23489" rel="noopener noreferrer"&gt;CVE-2023-23489&lt;/a&gt;, &lt;a href="https://www.cve.org/CVERecord?id=CVE-2023-23490" rel="noopener noreferrer"&gt;CVE-2023-23490&lt;/a&gt;, &lt;a href="https://www.cve.org/CVERecord?id=CVE-2023-26325" rel="noopener noreferrer"&gt;CVE-2023-26325&lt;/a&gt;, &lt;a href="https://www.cve.org/CVERecord?id=CVE-2023-28659" rel="noopener noreferrer"&gt;CVE-2023-28659&lt;/a&gt; and &lt;a href="https://www.cve.org/CVERecord?id=CVE-2023-28660" rel="noopener noreferrer"&gt;CVE-2023-28660&lt;/a&gt; released last year. This year, &lt;a href="https://www.cve.org/CVERecord?id=CVE-2024-1071" rel="noopener noreferrer"&gt;CVE-2024-1071&lt;/a&gt; was published.&lt;/p&gt;

&lt;p&gt;To detect these types of vulnerabilities, we should first and foremost know our dependencies and versions, and which of them have vulnerabilities. The OWASP Top 10 2021 identifies this need as &lt;a href="https://owasp.org/Top10/A06_2021-Vulnerable_and_Outdated_Components/" rel="noopener noreferrer"&gt;A06:2021-Vulnerable and Outdated Components&lt;/a&gt;. OWASP has several tools for this, including  &lt;a href="https://owasp.org/www-project-dependency-check/" rel="noopener noreferrer"&gt;Dependency Check&lt;/a&gt; and &lt;a href="https://dependencytrack.org/" rel="noopener noreferrer"&gt;Dependency Track&lt;/a&gt;. These tools will warn about the use of components with vulnerabilities.&lt;/p&gt;

&lt;p&gt;If the SQL injection vulnerabilities are not known, there are chances they can be detected by scanning the code, scanning the applications, or running a manual penetration test. Although these are not guaranteed to find the bugs, there is an increased chance of finding the vulnerabilities before attackers do.&lt;/p&gt;

&lt;h2&gt;
  
  
  Learn More About SQL Injection
&lt;/h2&gt;

&lt;p&gt;It is essential that developers learn to spot, prevent, and fix SQL injections. OWASP has several resources to enable you to do just that, and have some fun in the process!&lt;/p&gt;

&lt;p&gt;&lt;a href="https://owasp.org/www-project-webgoat/" rel="noopener noreferrer"&gt;WebGoat&lt;/a&gt; and &lt;a href="https://owasp.org/www-project-juice-shop/" rel="noopener noreferrer"&gt;Juice Shop&lt;/a&gt; are two "deliberately insecure" applications containing hundreds of security vulnerabilities for you to find and exploit, including SQL injections. Both projects provide extensive educational material to guide you.&lt;/p&gt;

&lt;p&gt;The &lt;a href="https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html" rel="noopener noreferrer"&gt;SQL Injection Prevention Cheat Sheet&lt;/a&gt; is an indispensible reference for defending against SQL injection in your own project. You can also find some more interesting examples on the &lt;a href="https://owasp.org/www-community/attacks/SQL_Injection" rel="noopener noreferrer"&gt;OWASP community page for SQL injection&lt;/a&gt;.&lt;/p&gt;

&lt;p&gt;Remember: only &lt;em&gt;you&lt;/em&gt; can prevent SQL injection!&lt;/p&gt;




&lt;p&gt;&lt;a href="https://owasp.org" rel="noopener noreferrer"&gt;OWASP&lt;/a&gt; is a non-profit foundation that envisions a world with no more insecure software. Our mission is to be the global open community that powers secure software through education, tools, and collaboration. We maintain hundreds of open source projects, run industry-leading educational and training conferences, and meet through over 250 chapters worldwide.&lt;/p&gt;

</description>
      <category>security</category>
      <category>sql</category>
    </item>
  </channel>
</rss>
