# Static code analysis

Static code analysis is a software development practice that examines source code without executing it to identify bugs, security vulnerabilities, and coding-style issues.

This is one page of public article previews, not the complete archive. Follow Next page to continue. Summaries are not the original full articles.

## Neo Security: Securing Infrastructure in the Agentic Era

DevFeed: [Neo Security: Securing Infrastructure in the Agentic Era](<https://devfeed.tech/articles/neo-security-securing-infrastructure-in-the-agentic-era-19024.md>)

Original publisher: [Read original article](<https://www.pulumi.com/blog/pulumi-neo-security/>)

Author: Joe Duffy

Published: 2026-08-28T00:00:00Z

Content type: release

Language: en

Sources: [Pulumi](<https://devfeed.tech/sources/pulumi.md>)

Topics: [pulumi-neo](<https://devfeed.tech/topics/pulumi-neo.md>), [Security](<https://devfeed.tech/topics/security.md>), [cloud-infrastructure](<https://devfeed.tech/topics/cloud-infrastructure.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>)

Tags: [agent](<https://devfeed.tech/tags/agent.md>), [agentic](<https://devfeed.tech/tags/agentic.md>), [ai](<https://devfeed.tech/tags/ai.md>), [aws](<https://devfeed.tech/tags/aws.md>), [azure](<https://devfeed.tech/tags/azure.md>), [cloud-infrastructure](<https://devfeed.tech/tags/cloud-infrastructure.md>), [infrastructure-as-code](<https://devfeed.tech/tags/infrastructure-as-code.md>), [kubernetes](<https://devfeed.tech/tags/kubernetes.md>), [product](<https://devfeed.tech/tags/product.md>), [pulumi](<https://devfeed.tech/tags/pulumi.md>), [pulumi-neo](<https://devfeed.tech/tags/pulumi-neo.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

Pulumi is opening a research preview of Neo Security, an agent that analyzes cloud infrastructure for exploitable flaws. It builds a threat model, maps attack paths, and produces an actionable security posture report, including for infrastructure provisioned across AWS, Azure, Google Cloud, and Kubernetes.

### Source excerpt

Recently, AI systems have started turning up exploitable flaws in code that survived decades of human review. The frontier labs have released useful tools to help uncover many of these flaws through agent-led static code analysis. This is a huge leap ahead, but cloud infrastructure has many exploitable flaws that code analysis alone cannot find. These flaws are often as severe as the ones in code, or worse, and they await discovery by malicious agents on offense. We realized recently we can uniquely help here. At Pulumi, we have complete visibility into your entire cloud estate: infrastructure resources, their semantics, connections and dependencies between them, runtime logs and information, and more -- and have built an entire context graph out of them that is accessible to agents. Thanks to large language models, the cost of analyzing that full context graph is no longer prohibitive. As a result, today we're opening a research preview of Pulumi Neo Security. Neo Security is an agent that can find exploitable flaws in your cloud infrastructure. It starts with a threat model of your cloud estate, and then works systematically through every potential point of attack. The result is a security posture report that is immediately actionable thanks to Pulumi's infrastructure as code technology. Neo Security works on your existing infrastructure regardless of how it was provisioned, across any of our thousands of cloud providers including AWS, Azure, Google Cloud, and Kubernetes. We're releasing it in research preview to begin, so we can work closely with customers to run and address any findings. If you'd like to give it a try, contact us. How it finds attack paths Neo Security's aim is to provide a high-confidence, actionable security posture report. It gets there in three passes. The first builds a threat model, before it looks for anything. It works out what your crown jewels are, which resources are accessible to outside actors, which accounts hold production data, wh

## Reduce SAST false positives with agentic evaluation and Bits Memories

DevFeed: [Reduce SAST false positives with agentic evaluation and Bits Memories](<https://devfeed.tech/articles/reduce-sast-false-positives-with-agentic-evaluation-and-bits-memories-2307.md>)

Original publisher: [Read original article](<https://www.datadoghq.com/blog/sast-triage-agentic-evaluation-bits-memories/>)

Author: Cole Maring

Published: 2026-07-06T00:00:00Z

Content type: article

Language: en

Sources: [Datadog | The Monitor blog](<https://devfeed.tech/sources/datadog-the-monitor-blog.md>)

Topics: [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [Artificial Intelligence](<https://devfeed.tech/topics/ai.md>), [bits ai](<https://devfeed.tech/topics/bits-ai.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Security](<https://devfeed.tech/topics/security.md>)

Tags: [agentic](<https://devfeed.tech/tags/agentic.md>), [ai](<https://devfeed.tech/tags/ai.md>), [analysis](<https://devfeed.tech/tags/analysis.md>), [application-security](<https://devfeed.tech/tags/application-security.md>), [bits-ai](<https://devfeed.tech/tags/bits-ai.md>), [code](<https://devfeed.tech/tags/code.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devsecops](<https://devfeed.tech/tags/devsecops.md>), [learn](<https://devfeed.tech/tags/learn.md>), [post](<https://devfeed.tech/tags/post.md>), [security](<https://devfeed.tech/tags/security.md>), [threat-detection](<https://devfeed.tech/tags/threat-detection.md>), [tools](<https://devfeed.tech/tags/tools.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>), [vulnerability-management](<https://devfeed.tech/tags/vulnerability-management.md>)

### AI overview

Datadog's Static Code Analysis uses Bits AI agentic evaluation to investigate SAST findings across a repository, combining related code paths, callers, and validators with organization-specific knowledge from Bits Memories. The goal is to distinguish true vulnerabilities from false positives and speed security triage.

### Source excerpt

Learn how Bits AI in Datadog Static Code Analysis uses repository-wide reasoning and custom context to help make security triage faster and more accurate.

## Identifying insecure C Code with Valgrind and fixing with Snyk Code

DevFeed: [Identifying insecure C Code with Valgrind and fixing with Snyk Code](<https://devfeed.tech/articles/identifying-insecure-c-code-with-valgrind-and-fixing-with-snyk-code-7966.md>)

Original publisher: [Read original article](<https://snyk.io/blog/identifying-insecure-c-code-valgrind/>)

Author: Liran Tal

Published: 2024-09-24T05:00:00Z

Content type: tutorial

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [C](<https://devfeed.tech/topics/c.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Memory Leaks](<https://devfeed.tech/topics/memory-leaks.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [C++](<https://devfeed.tech/topics/c-plus-plus.md>), [Security](<https://devfeed.tech/topics/security.md>), [snyk-code](<https://devfeed.tech/topics/snyk-code.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [awareness](<https://devfeed.tech/tags/awareness.md>), [blog](<https://devfeed.tech/tags/blog.md>), [c](<https://devfeed.tech/tags/c.md>), [c-cpp](<https://devfeed.tech/tags/c-cpp.md>), [c-plus-plus](<https://devfeed.tech/tags/c-plus-plus.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devops](<https://devfeed.tech/tags/devops.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [docker](<https://devfeed.tech/tags/docker.md>), [how-to](<https://devfeed.tech/tags/how-to.md>), [memory-leaks](<https://devfeed.tech/tags/memory-leaks.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [programming](<https://devfeed.tech/tags/programming.md>), [security](<https://devfeed.tech/tags/security.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

This tutorial explains how insecure C and C++ code can introduce memory leaks and other vulnerabilities, and describes using Valgrind and Snyk Code's static code analysis to identify and fix them. It also discusses dynamic memory allocation, memory exhaustion, and relevant MISRA guidance.

### Source excerpt

Discover how to secure your C and C++ code with Snyk. Learn about common vulnerabilities like memory leaks and buffer overflows in C and C++ and how Snyk's static code analysis tool can help you identify and fix them. Protect your critical software from security threats.

## How Axel Springer National Media and Tech achieved continuous security with Snyk

DevFeed: [How Axel Springer National Media and Tech achieved continuous security with Snyk](<https://devfeed.tech/articles/how-axel-springer-national-media-and-tech-achieved-continuous-security-with-snyk-7838.md>)

Original publisher: [Read original article](<https://snyk.io/blog/axel-springer-national-media-and-tech/>)

Author: Nina McClure

Published: 2024-09-03T05:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [snyk-open-source](<https://devfeed.tech/topics/snyk-open-source.md>), [Application Security](<https://devfeed.tech/topics/application-security.md>), [snyk-code](<https://devfeed.tech/topics/snyk-code.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Infrastructure as code](<https://devfeed.tech/topics/infrastructure-as-code.md>), [Development](<https://devfeed.tech/topics/development.md>), [Amazon Web Services](<https://devfeed.tech/topics/aws.md>), [Containers](<https://devfeed.tech/topics/containers.md>), [Open Source](<https://devfeed.tech/topics/open-source.md>)

Tags: [application-security](<https://devfeed.tech/tags/application-security.md>), [awareness](<https://devfeed.tech/tags/awareness.md>), [aws](<https://devfeed.tech/tags/aws.md>), [blog](<https://devfeed.tech/tags/blog.md>), [ciso](<https://devfeed.tech/tags/ciso.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [containers](<https://devfeed.tech/tags/containers.md>), [customer](<https://devfeed.tech/tags/customer.md>), [customer-featured](<https://devfeed.tech/tags/customer-featured.md>), [development](<https://devfeed.tech/tags/development.md>), [devops](<https://devfeed.tech/tags/devops.md>), [executive](<https://devfeed.tech/tags/executive.md>), [iac](<https://devfeed.tech/tags/iac.md>), [interest](<https://devfeed.tech/tags/interest.md>), [megawatt](<https://devfeed.tech/tags/megawatt.md>), [open-source-security](<https://devfeed.tech/tags/open-source-security.md>), [security](<https://devfeed.tech/tags/security.md>), [shift-left](<https://devfeed.tech/tags/shift-left.md>), [snyk](<https://devfeed.tech/tags/snyk.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [snyk-open-source](<https://devfeed.tech/tags/snyk-open-source.md>), [vulnerabilities](<https://devfeed.tech/tags/vulnerabilities.md>)

### AI overview

This customer story describes how Axel Springer National Media and Tech adopted Snyk after Log4Shell to help developers find and fix vulnerabilities earlier. It covers the implementation of Snyk Code and Snyk Open Source within existing development processes, alongside developer-managed IaC on AWS and security responsibilities shared across teams.

### Source excerpt

Find out how Axel Springer's National Media & Tech business division uses Snyk to empower its developers to find and fix vulnerabilities in their own code.

## Getting started with PHP static analysis in 2024

DevFeed: [Getting started with PHP static analysis in 2024](<https://devfeed.tech/articles/getting-started-with-php-static-analysis-in-2024-7939.md>)

Original publisher: [Read original article](<https://snyk.io/blog/getting-started-php-static-analysis-2024/>)

Author: Liran Tal

Published: 2024-03-21T05:00:00Z

Content type: article

Language: en

Sources: [Blog RSS Feed | Snyk](<https://devfeed.tech/sources/blog-rss-feed-snyk.md>)

Topics: [PHP](<https://devfeed.tech/topics/php.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Code quality](<https://devfeed.tech/topics/code-quality.md>), [Security](<https://devfeed.tech/topics/security.md>), [Vulnerabilities](<https://devfeed.tech/topics/vulnerabilities.md>), [Refactoring](<https://devfeed.tech/topics/refactoring.md>), [Back end](<https://devfeed.tech/topics/backend.md>), [debug](<https://devfeed.tech/topics/debug.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [awareness](<https://devfeed.tech/tags/awareness.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [developer](<https://devfeed.tech/tags/developer.md>), [devrel](<https://devfeed.tech/tags/devrel.md>), [engineering](<https://devfeed.tech/tags/engineering.md>), [metrics](<https://devfeed.tech/tags/metrics.md>), [php](<https://devfeed.tech/tags/php.md>), [production](<https://devfeed.tech/tags/production.md>), [readability](<https://devfeed.tech/tags/readability.md>), [refactoring](<https://devfeed.tech/tags/refactoring.md>), [security](<https://devfeed.tech/tags/security.md>), [security-vulnerabilities](<https://devfeed.tech/tags/security-vulnerabilities.md>), [snyk-code](<https://devfeed.tech/tags/snyk-code.md>), [web-development](<https://devfeed.tech/tags/web-development.md>)

### AI overview

This article introduces static analysis for PHP development. It explains how examining PHP source code without executing it can detect errors, security vulnerabilities, coding-standard violations, and complex code early, helping developers improve code quality before deployment.

### Source excerpt

In this post, we cover the basics of static analysis and how to secure your PHP code in 2024.

## Automating Code Analysis in Android Projects

DevFeed: [Automating Code Analysis in Android Projects](<https://devfeed.tech/articles/automating-analyzing-of-code-in-android-projects-25963.md>)

Original publisher: [Read original article](<https://proandroiddev.com/automating-analyzing-of-code-in-android-projects-a60313569c53?source=rss-7a0a233f88a2------2>)

Author: Kirill Rozov

Published: 2021-09-20T18:11:42Z

Content type: tutorial

Language: en

Sources: [Stories by Kirill Rozov on Medium](<https://devfeed.tech/sources/stories-by-kirill-rozov-on-medium.md>)

Topics: [Android](<https://devfeed.tech/topics/android.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Code](<https://devfeed.tech/topics/code.md>), [Java](<https://devfeed.tech/topics/java.md>), [Kotlin](<https://devfeed.tech/topics/kotlin.md>), [ci](<https://devfeed.tech/topics/ci.md>), [ide](<https://devfeed.tech/topics/ide.md>)

Tags: [also](<https://devfeed.tech/tags/also.md>), [android](<https://devfeed.tech/tags/android.md>), [ci](<https://devfeed.tech/tags/ci.md>), [code](<https://devfeed.tech/tags/code.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [code-quality](<https://devfeed.tech/tags/code-quality.md>), [code-quality-tools](<https://devfeed.tech/tags/code-quality-tools.md>), [development](<https://devfeed.tech/tags/development.md>), [ide](<https://devfeed.tech/tags/ide.md>), [java](<https://devfeed.tech/tags/java.md>), [kotlin](<https://devfeed.tech/tags/kotlin.md>)

### AI overview

This tutorial explains how to automate code analysis in Android projects. It distinguishes static analysis, which can run during development or in CI, from dynamic analysis, which runs the application to detect issues such as memory leaks. It also introduces IDE inspections as a code-analysis tool.

### Source excerpt

Source unsplash.com/photos/Tjbk79TARiEAutomation of code analysis in Android projectsHello. My name is Kirill Rozov, and if you are interested in Android development, then most likely you have heard about the Android ResId Telegram channel with daily news for Android developers.https://medium.com/media/ff8acd16dd7b4b03a485bf9baab3c9d6/href Modern mobile applications are already quite serious enterprise projects that are developed by hundreds of developers, contain thousands of lines of code and are constantly changing and developing. The process of automating code checking and application work helps to deal with such a huge codebase. Today I will tell you what tools you can use to improve the stability of your project and avoid mistakes, as well as save time for colleagues during a pull request. Are you developing a project with a small team or alone? Then this article is even more important to you, since you most likely didn't configure any checks for yourself, and I will tell you why this needs to be done. Types of code checking Code analyzers is divided on two types: static code analysis (without starting the application) code analysis while the application is running Android development uses statically typed compiled languages: Java and Kotlin. These are important requirements for languages that allow them to analyze code without having to run it, and they can do it right at the time of writing the code. This type of analysis is called static. This makes it easy to run analyzing on any CI and automate checking for simple errors, such as not closing a stream after reading/writing code. The disadvantage of such checks is that if your code deviates from the template embedded in it, then the code will not work or will work incorrectly. Also, such analyzers can't understand complex code execution scenarios and their effect. More serious checks of your code can be done by automatically analyzing it while the application is running (dynamic). For example, you can tra

## Escape-Analysis Flaws

DevFeed: [Escape-Analysis Flaws](<https://devfeed.tech/articles/escape-analysis-flaws-22131.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2018/01/escape-analysis-flaws.html>)

Published: 2018-01-22T00:00:00Z

Content type: article

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [toolchain](<https://devfeed.tech/topics/toolchain.md>)

Tags: [analysis](<https://devfeed.tech/tags/analysis.md>), [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [benchmark](<https://devfeed.tech/tags/benchmark.md>), [blog](<https://devfeed.tech/tags/blog.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [escape-analysis](<https://devfeed.tech/tags/escape-analysis.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [memory-management](<https://devfeed.tech/tags/memory-management.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [programming](<https://devfeed.tech/tags/programming.md>), [series](<https://devfeed.tech/tags/series.md>)

### AI overview

This article examines unresolved flaws in Go's escape analysis, a compiler analysis that enables memory-management optimizations. It identifies five flaws that had not been fixed at the time of writing and explores their potential impact on existing Go programs, based on the Go 1.9 compiler.

### Source excerpt

Prelude It will be helpful to read this four-part series first on escape analysis and data semantics. Details on how to read an escape analysis report and pprof output have been outlined here. https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-stacks-and-pointers.html Introduction Even after working with Go for 4 years, I am continually amazed by the language. Thanks to the static code analysis the compiler performs, the compiler can apply interesting optimizations to the code it produces. One type of analysis the compiler performs is called escape analysis. This produces optimizations and simplifications around memory management.

## Language Mechanics On Escape Analysis

DevFeed: [Language Mechanics On Escape Analysis](<https://devfeed.tech/articles/language-mechanics-on-escape-analysis-22124.md>)

Original publisher: [Read original article](<https://www.ardanlabs.com/blog/2017/05/language-mechanics-on-escape-analysis.html>)

Published: 2017-05-26T00:00:00Z

Content type: tutorial

Language: en

Sources: [William Kennedy](<https://devfeed.tech/sources/william-kennedy.md>)

Topics: [Go Language](<https://devfeed.tech/topics/go-language.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [Compiler](<https://devfeed.tech/topics/compiler.md>), [Code](<https://devfeed.tech/topics/code.md>), [cpu](<https://devfeed.tech/topics/cpu.md>)

Tags: [ardan-labs](<https://devfeed.tech/tags/ardan-labs.md>), [blog](<https://devfeed.tech/tags/blog.md>), [compiler](<https://devfeed.tech/tags/compiler.md>), [cpu](<https://devfeed.tech/tags/cpu.md>), [escape-analysis](<https://devfeed.tech/tags/escape-analysis.md>), [gc](<https://devfeed.tech/tags/gc.md>), [go](<https://devfeed.tech/tags/go.md>), [go-programming](<https://devfeed.tech/tags/go-programming.md>), [golang](<https://devfeed.tech/tags/golang.md>), [memory](<https://devfeed.tech/tags/memory.md>), [pointers](<https://devfeed.tech/tags/pointers.md>), [programming](<https://devfeed.tech/tags/programming.md>)

### AI overview

This tutorial explains heaps and escape analysis in Go. It describes how the compiler uses static code analysis to decide whether values remain on a function's stack or move to the heap, and discusses the resulting garbage-collection costs and possible latency.

### Source excerpt

Prelude This is the second post in a four part series that will provide an understanding of the mechanics and design behind pointers, stacks, heaps, escape analysis and value/pointer semantics in Go. This post focuses on heaps and escape analysis. Index of the four part series: Language Mechanics On Stacks And Pointers Language Mechanics On Escape Analysis Language Mechanics On Memory Profiling Design Philosophy On Data And Semantics Introduction In the first post in this four part series, I taught the basics of pointer mechanics by using an example in which a value was shared down a goroutine's stack. What I did not show you is what happens when you share a value up the stack. To understand this, you need to learn about another area of memory where values can live: the "heap". With that knowledge, you can then begin to learn about "escape analysis".

## Static code analysis for free

DevFeed: [Static code analysis for free](<https://devfeed.tech/articles/static-code-analysis-for-free-21225.md>)

Original publisher: [Read original article](<https://juri.dev/blog/2014/10/static-code-analyis-for-free/>)

Published: 2014-10-20T00:00:00Z

Content type: tutorial

Language: en

Sources: [Juri Strumpflohner](<https://devfeed.tech/sources/juri-strumpflohner.md>)

Topics: [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [JavaScript](<https://devfeed.tech/topics/javascript.md>), [Tooling](<https://devfeed.tech/topics/tooling.md>), [Jenkins](<https://devfeed.tech/topics/jenkins.md>), [Web Development](<https://devfeed.tech/topics/web-development.md>)

Tags: [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [javascript](<https://devfeed.tech/tags/javascript.md>), [jenkins](<https://devfeed.tech/tags/jenkins.md>), [npm](<https://devfeed.tech/tags/npm.md>), [report](<https://devfeed.tech/tags/report.md>), [reports](<https://devfeed.tech/tags/reports.md>), [tooling](<https://devfeed.tech/tags/tooling.md>)

### AI overview

This article introduces Plato, a free tool for static JavaScript analysis and reporting. It explains how to install Plato from npm, run it against a codebase, generate visual reports, and publish those reports through a Jenkins job.

### Source excerpt

Lorem ipsum dolor sit amet

## Using Heartbleed as a starting point

DevFeed: [Using Heartbleed as a starting point](<https://devfeed.tech/articles/using-heartbleed-as-a-starting-point-20667.md>)

Original publisher: [Read original article](<http://antirez.com/news/76>)

Published: 2014-04-10T09:06:18Z

Content type: opinion

Language: en

Sources: [Antirez](<https://devfeed.tech/sources/antirez.md>)

Topics: [openssl](<https://devfeed.tech/topics/openssl.md>), [Security](<https://devfeed.tech/topics/security.md>), [code security](<https://devfeed.tech/topics/code-security.md>), [Static code analysis](<https://devfeed.tech/topics/static-code-analysis.md>), [C](<https://devfeed.tech/topics/c.md>)

Tags: [c](<https://devfeed.tech/tags/c.md>), [code-analysis](<https://devfeed.tech/tags/code-analysis.md>), [code-security](<https://devfeed.tech/tags/code-security.md>), [open-source](<https://devfeed.tech/tags/open-source.md>), [openssl](<https://devfeed.tech/tags/openssl.md>), [security](<https://devfeed.tech/tags/security.md>)

### AI overview

The article uses the Heartbleed vulnerability in OpenSSL as a starting point for discussing how to improve system software security. It argues for greater investment in security audits, open-source software development, and static and dynamic checks, while noting that changing languages or specifications is unlikely in the near term.

### Source excerpt

The strong reactions about the recent OpenSSL bug are understandable: it is not fun when suddenly all the internet needs to be patched. Moreover for me personally how trivial the bug is, is disturbing. I don't want to point the finger to the OpenSSL developers, but you just usually think at those class of issues as a bit more subtle, in the case of a software like OpenSSL. Usually you fail to do sanity checks *correctly*, as opposed to this bug where there is a total *lack* of bound checks in the memcpy() call. However sometimes in the morning I read the code I wrote the night before and I'm deeply embarrassed. Programmers sometimes fail, I for sure do often, so my guess is that what is needed is a different process, and not a different OpenSSL team. There is who proposes a different language safer than C, and who proposes that the specification is broken because it is too complex. Probably there is some truth in both arguments, however it is unlikely that we move to a different specification or system language soon, so the real question is, what we can do now to improve system software security? 1) Throw money at it. Making system code safer is simple if there are investments. If different companies hire security experts to do code auditings in the OpenSSL code base, what happens is that the probability of discovering a bug like heartbleed is greater. I've seen very complex bugs that are triggered by a set of non-trivial conditions being discovered by serious code auditing efforts. A memcpy() without bound checks is something that if you analyze the code security-wise, will stand out in the first read. And guess how heartbleed was discovered? Via security auditings performed at Google. Probably the time to consider open source something that mostly we take from is over. Many companies should follow the example of Google and other companies, using workforce for OSS software development and security. 2) Static and dynamic checks. Static code analysis is, as a side ef