DZone
Thanks for visiting DZone today,
Edit Profile
  • Manage Email Subscriptions
  • How to Post to DZone
  • Article Submission Guidelines
Sign Out View Profile
  • Post an Article
  • Manage My Drafts
Over 2 million developers have joined DZone.
Log In / Join
Please enter at least three characters to search
Refcards Trend Reports
Events Video Library
Refcards
Trend Reports

Events

View Events Video Library

Zones

Culture and Methodologies Agile Career Development Methodologies Team Management
Data Engineering AI/ML Big Data Data Databases IoT
Software Design and Architecture Cloud Architecture Containers Integration Microservices Performance Security
Coding Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks
Culture and Methodologies
Agile Career Development Methodologies Team Management
Data Engineering
AI/ML Big Data Data Databases IoT
Software Design and Architecture
Cloud Architecture Containers Integration Microservices Performance Security
Coding
Frameworks Java JavaScript Languages Tools
Testing, Deployment, and Maintenance
Deployment DevOps and CI/CD Maintenance Monitoring and Observability Testing, Tools, and Frameworks

Because the DevOps movement has redefined engineering responsibilities, SREs now have to become stewards of observability strategy.

Apache Cassandra combines the benefits of major NoSQL databases to support data management needs not covered by traditional RDBMS vendors.

The software you build is only as secure as the code that powers it. Learn how malicious code creeps into your software supply chain.

Generative AI has transformed nearly every industry. How can you leverage GenAI to improve your productivity and efficiency?

Related

  • Agentic AI for Automated Application Security and Vulnerability Management
  • On SBOMs, BitBucket, and OWASP Dependency Track
  • Building Secure Containers: Reducing Vulnerabilities With Clean Base Images
  • A Practical Approach to Vulnerability Management: Building an Effective Pipeline

Trending

  • DZone's Article Submission Guidelines
  • The End of “Good Enough Agile”
  • MCP Servers: The Technical Debt That Is Coming
  • Event Driven Architecture (EDA) - Optimizer or Complicator
  1. DZone
  2. Software Design and Architecture
  3. Security
  4. Detecting, Investigating, and Verifying Fixes for Security Incidents and Zero-Day Issues Using Lightrun

Detecting, Investigating, and Verifying Fixes for Security Incidents and Zero-Day Issues Using Lightrun

Cover major milestones in app security: finding the issue, evaluating a breach, proving it, and validating the fix. Lightrun shines in this unique usage.

By 
Shai Almog user avatar
Shai Almog
DZone Core CORE ·
Mar. 09, 22 · Tutorial
Likes (3)
Comment
Save
Tweet
Share
4.9K Views

Join the DZone community and get the full member experience.

Join For Free

Magnifying glass

Important: You can use Lightrun for free on your servers.

I’m not a security expert. I’d like to think of myself as a security-conscious developer, but this is a vast subject with depth and breadth. What I understand are Lightrun and Debugging. In that capacity, I can show some creative ways you can use it as a security tool. A “proper” security expert could take this to the next level.

What Is Lightrun?

Lightrun is a developer-oriented observability tool: like a debugger in your production environment, without the security risks. Lightrun is a tool that’s flexible enough to fit into multiple molds, just like the debuggers that birthed it. 

With Lightrun, you can inject logs without code changes, add snapshots (breakpoints that don’t stop the code execution), and use metrics to get observable insight at the code level.

Security Tool Use Cases

There are several reasons I would reach for Lightrun as a security tool. Here, I’ll focus on the following:

  • Verify that a security vulnerability exists.
  • Check if someone actively exploited a security vulnerability.
  • Verify that we deployed a fix correctly. 

There’s a lot more that needs to be done in order to secure your application. Lightrun is a generic tool; it isn’t a replacement for existing security tools like Snyk, etc. It’s complimentary, filling in the gaps at the code level.

Finally, I will discuss how Lightrun secures itself. We can’t have a vulnerable security tool. We can’t consider Lightrun as a security tool if it isn’t inherently secure.

Enough with the high-level theory. Let’s show the code!

Verify a Security Vulnerability

Security tools are like observability tools. They provide high-level alerts of potential risks, but they rarely communicate at the code level. As a result, a developer might have a hard time with actionable security tasks and validation. If the security issue reproduces locally, that’s great. You can often fill in the gap with a debugger.

However, some security issues are tough to reproduce outside of a production environment. 

Lightrun won’t find a vulnerability out of thin air. For that, you need a dedicated security tool. However, if you have a suspicion, Lightrun can help in the investigation and prove the vulnerability. 

E.g. let’s take this obvious bug:

This is an obvious SQL injection bug, but is it exploitable?

Do we need to be hysterical, or can we take our time adapting the code?

BTW, notice I’m using Java because that’s the platform I’m most comfortable with. This applies to all Lightrun supported platforms/languages equally. Everything here easily applies to NodeJS, JavaScript/TypeScript, Python, Kotlin, Scala, etc.

This is trivial to test in Lightrun. We can just add a log or a snapshot that will be triggered when an invalid request happens. Then we can try sending invalid values via a curl command to see if our log is triggered.

Notice that we use a regular expression to validate the name value. If we receive a log, it means the problematic value is exploitable. This also means the risk of security vulnerability is high.

Is It Actively Exploited?

We found a security vulnerability like the one above. Should we panic? Are there hackers already in the system?

What do we do?

Well, we can do something similar to what we did above and add a snapshot with a similar condition and a few “tune-ups”:

This image contains a lot, so let’s try to unpack it.

Why Snapshot and Not Log?

Logs are great to see if something happened. They’re quick and they handle high volume well. However, if someone is actively breaking into our system, we want to get all the information that’s available; possibly even things we haven’t thought about. We want to know the vector of attack, which means knowing the call stack, etc. Snapshots are an ideal security tool.

Targeting a Tag

Notice that the “Agent” entry points at “Production”. We can apply the snapshot to a group of machines based on tagging. In this case, we can target all potentially vulnerable machines with one swoop.

Max Hit Count

Unlike a log, snapshots fill up the UI and storage, so we have a default limit of snapshots we can take before expiring the snapshot. This defaults to one normally. Here, I raised it to 20, but we can probably go even higher if we’re willing.

Notice that if we see this happen and exploits are happening, we might want to switch to logs since they don’t have a hit count.

Ignore Quota

This option might not be available to you since it requires special permissions. If you’re in this situation, ask your manager for this permission.

This is a risky feature, which is why it’s guarded, but with an exploitable hack, it might be a risk worth taking.

The quota limits the amount of CPU a condition or expression can take per Lightrun action. The risk here is that an exploit might happen and some information would be “dropped” because of CPU usage. This will mean the snapshot won’t be paused at any point and we won’t “miss” a potential exploit.

This might affect your server performance though, so it isn’t without risk.

Expiry

Lightrun actions default for one hour of expiry. We want to keep your servers fast and nimble so we expire actions that aren’t needed. In this case, we want the action there until we get the fix out, so I set the expiry value to 60 hours.

With these in place, we will get actionable information on any exploit coming our way.

Verify the Fix

Verifying the fix is pretty similar. We can place a log or a snapshot in the problematic area of the code and see if that code is reached with problematic values.

You can also add additional logging to verify that attempted exploits reach the area they’re expected to reach and are handled as you would expect.

Lightrun Security

A security tool that’s vulnerable defeats its purpose. Understanding the security measures in Lightrun is an important part of this post. Following are the high-level features in Lightrun that make it so secure.

Architecture

Lightrun made several architectural decisions that significantly reduced attack vectors.

Agents only connect to the Lightrun server to fetch actions, not the other way around. That means they are hidden completely from end-users and even from the organization.

If the Lightrun server fails, an agent just does nothing. This means that even a DDoS attack that would bring down Lightrun won’t affect your servers. You won’t be able to use Lightrun, but the servers will work just fine.

Certificate Pinning and OIDC

Agents and clients of the Lightrun server use certificate pinning to prevent elaborate man-in-the-middle attacks. 

Lightrun uses OpenID Connect (OIDC) for secure proven authorization across its tools.

The Lightrun server limits user privileges based on assigned roles. Most importantly, every operation is written to an administration log. This means that a “bad actor” can’t be abusive without leaving a footprint.

Sandbox

All operations within an agent are sandboxed and have limited access. All actions are “read-only” and can’t use too much CPU as we saw in the article above.

There are exceptions to these rules, but they need higher privileges to circumvent.

Block List

A malicious developer in the organization can use a snapshot or a log to get information from a running application. For example, a snapshot can be placed in the authorization logic to steal user data before encoding. 

A block list can define files that are blocked inside Lightrun agents. These files won’t let a developer place an action within them.

PII Reduction

Personal Identifiable Information, such as credit card numbers, can be logged intentionally or unintentionally. PII reduction lets us define patterns that are risky and those will be implicitly erased from the logs. As a result, you won’t need to purge such logs and won’t expose yourself to potential regulatory liability.

TL;DR

We did not design Lightrun as a security tool. It shouldn’t replace existing security tools. However, it’s a perfect sidekick to the tools you already have. It plays to their strengths and pushes the envelope of fast response to vulnerabilities/hacks.

Lightrun’s low-level deep code observability lets us respond to potential threats faster and mitigate vulnerabilities sooner. 

I’m not a security expert. I’m sure that if you are, you can come up with even more amazing security-related use cases for Lightrun. This is very exciting, I can’t wait to hear about them!

security Snapshot (computer storage) Vulnerability

Published at DZone with permission of Shai Almog, DZone MVB. See the original article here.

Opinions expressed by DZone contributors are their own.

Related

  • Agentic AI for Automated Application Security and Vulnerability Management
  • On SBOMs, BitBucket, and OWASP Dependency Track
  • Building Secure Containers: Reducing Vulnerabilities With Clean Base Images
  • A Practical Approach to Vulnerability Management: Building an Effective Pipeline

Partner Resources

×

Comments
Oops! Something Went Wrong

The likes didn't load as expected. Please refresh the page and try again.

ABOUT US

  • About DZone
  • Support and feedback
  • Community research
  • Sitemap

ADVERTISE

  • Advertise with DZone

CONTRIBUTE ON DZONE

  • Article Submission Guidelines
  • Become a Contributor
  • Core Program
  • Visit the Writers' Zone

LEGAL

  • Terms of Service
  • Privacy Policy

CONTACT US

  • 3343 Perimeter Hill Drive
  • Suite 100
  • Nashville, TN 37211
  • support@dzone.com

Let's be friends:

Likes
There are no likes...yet! 👀
Be the first to like this post!
It looks like you're not logged in.
Sign in to see who liked this post!