<?xml version="1.0" encoding="UTF-8"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:media="http://search.yahoo.com/mrss/"><channel><title><![CDATA[Juan Embid - Garbo's Blog]]></title><description><![CDATA[Posts by Juan Embid on Garbo's Blog.]]></description><link>https://blog.garbo.dev/author/juan-embid/</link><language>en</language><image><url>https://blog.garbo.dev/brand/mark-256.png</url><title>Garbo&apos;s Blog</title><link>https://blog.garbo.dev/</link></image><generator>garbo-blog (static, built from the Logicode CRM snapshot)</generator><lastBuildDate>Thu, 13 Aug 2026 19:38:15 GMT</lastBuildDate><atom:link href="https://blog.garbo.dev/author/juan-embid/rss/" rel="self" type="application/rss+xml"/><ttl>60</ttl><item><title><![CDATA[How to Analyze Mobile Apps: A Researcher's Deep-Dive]]></title><description><![CDATA[What tools and techniques do security researchers need to analyze mobile applications effectively? This guide covers setup, techniques, and best practices.]]></description><link>https://blog.garbo.dev/how-to-analyze-mobile-apps-a-researchers-deep-dive/</link><guid isPermaLink="true">https://blog.garbo.dev/how-to-analyze-mobile-apps-a-researchers-deep-dive/</guid><category><![CDATA[App vulnerability research]]></category><category><![CDATA[Malware analysis]]></category><category><![CDATA[Mobile forensics]]></category><category><![CDATA[Mobile security analysis]]></category><category><![CDATA[Security research tools]]></category><dc:creator><![CDATA[Juan Embid]]></dc:creator><pubDate>Mon, 27 Apr 2026 11:49:34 GMT</pubDate><content:encoded><![CDATA[<p>Mobile application analysis has become a critical skill for security professionals, vulnerability researchers, and organizations seeking to understand the software landscape. Whether you're conducting security assessments, researching potential threats, or performing forensic analysis, having the right approach matters more than having the right tools.</p>
<h2 id="why-analyzing-mobile-applications-matters">Why Analyzing Mobile Applications Matters</h2>
<p>The mobile ecosystem handles sensitive data across financial services, healthcare, communications, and enterprise workflows. Security researchers need to examine how applications interact with device resources, handle user data, and implement cryptographic protections. Understanding these mechanisms helps identify vulnerabilities before attackers do.</p>
<p>A robust analysis environment gives researchers the ability to inspect application behavior without the constraints of physical hardware. You can snapshot system states, rewind execution to examine earlier conditions, and manipulate runtime environments to test edge cases.</p>
<h2 id="setting-up-your-analysis-environment">Setting Up Your Analysis Environment</h2>
<p>Creating an effective mobile research setup requires several key capabilities:</p>
<ol><li><strong>Instrumented Execution Environment</strong> - You need the ability to pause, inspect, and modify system states at will. This means having low-level access to kernel structures, memory mappings, and process interactions.</li><li><strong>Isolated Sandboxing</strong> - Malware analysis demands complete isolation. Your environment must prevent malicious code from affecting your host system while allowing full observation of the sample's behavior.</li><li><strong>Flexible Instrumentation</strong> - Static analysis has limits. Dynamic analysis requires the ability to hook functions, intercept system calls, and modify return values without disrupting execution flow.</li><li><strong>State Management</strong> - The ability to capture and restore system snapshots enables efficient testing. You can explore multiple analysis paths from a single baseline without lengthy re-setup.</li></ol>
<h2 id="core-analysis-techniques">Core Analysis Techniques</h2>
<h3 id="runtime-inspection">Runtime Inspection</h3>
<p>Dynamic analysis lets you observe application behavior as it executes. You can attach to running processes, dump memory contents, and trace system calls. This reveals functionality that might be hidden in static builds—network communications, encryption implementations, and data handling routines that only activate under specific conditions.</p>
<h3 id="memory-manipulation">Memory Manipulation</h3>
<p>Sometimes you need to go beyond observation. The ability to modify memory contents and function return values during execution allows you to test error handling, bypass client-side checks, and explore alternative code paths. This is particularly valuable for understanding authentication mechanisms and input validation.</p>
<h3 id="snapshot-based-forensics">Snapshot-Based Forensics</h3>
<p>Taking snapshots of the system at different execution points enables thorough forensic analysis. You can examine what data applications write to storage, how they respond to different inputs, and what network communications they attempt—all without permanently altering the analysis environment.</p>
<h2 id="building-your-research-capability">Building Your Research Capability</h2>
<p>Organizations serious about mobile security should consider investing in analysis infrastructure that provides full system control. The right platform enables researchers to focus on finding vulnerabilities rather than fighting their tools.</p>
<p>Advanced research environments offer the depth needed for meaningful security work. When evaluating options, prioritize environments that provide complete visibility into system internals, flexible instrumentation capabilities, and efficient workflow features like snapshot management.</p>
<p>The mobile security landscape evolves constantly. Researchers need environments that can keep pace—supporting new OS versions, adapting to architectural changes, and providing the reliability required for thorough analysis. Investing in capable infrastructure today pays dividends in the security insights you'll gain tomorrow.</p>
<hr />
<p>Ready to explore what advanced mobile research capabilities can do for your organization? Our platform provides the depth and control security researchers need.</p>
<p><a href="https://es.linkedin.com/company/logicode-spain?ref=blog.garbo.dev" rel="nofollow noopener ugc">LinkedIn</a> | <a href="https://x.com/projectgarbo?ref=blog.garbo.dev" rel="nofollow noopener ugc">X</a></p>]]></content:encoded></item><item><title><![CDATA[Data Governance by Design]]></title><description><![CDATA[In regulated environments, governance is not something you “add” once software is already in motion. The moment controls become retrofitted, they turn into…]]></description><link>https://blog.garbo.dev/data-governance-by-design/</link><guid isPermaLink="true">https://blog.garbo.dev/data-governance-by-design/</guid><dc:creator><![CDATA[Juan Embid]]></dc:creator><pubDate>Wed, 12 Nov 2025 10:54:34 GMT</pubDate><content:encoded><![CDATA[<h2 id="governance-is-not-an-afterthought">Governance Is Not an Afterthought</h2>
<p>In regulated environments, governance is not something you “add” once software is already in motion. The moment controls become retrofitted, they turn into operational debt: duplicated processes, inconsistent policies, and blind spots that appear precisely where guarantees should have existed from day one. Governance by design avoids this spiral by treating trust principles (confidentiality, integrity and traceability) as core architectural constraints. Instead of being external requirements, they shape how data moves, how systems communicate, and how responsibilities are defined.</p>
<h2 id="encryption-beyond-storage">Encryption Beyond Storage</h2>
<p>Encryption is often reduced to a storage feature, but real governance demands continuity. Data should remain cryptographically accounted for throughout its entire lifecycle: in transit, in memory, during transformations, and across service boundaries.</p>
<p>That continuity depends on treating encryption as an evolving context rather than a static configuration. Per-tenant key rotation prevents long-lived secrets from becoming systemic risks. Hardware-backed roots of trust ensure that keys originate from environments that cannot be forged in software. Cryptographic proofs tied to API operations allow systems to validate the authenticity of what they receive rather than trusting the infrastructure around them.</p>
<p>When encryption becomes contextual, every transformation is implicitly verifiable. Instead of retroactively asserting that data was handled correctly, the system carries the proof with it.</p>
<h2 id="the-trifecta-of-trust-logging-access-transparency">The Trifecta of Trust: Logging, Access, Transparency</h2>
<p>Logs are only useful when they describe intent and consequence with clarity. Modern governance architectures distinguish between audit, operational and debug streams because each serves a fundamentally different purpose. Audit logs form an immutable timeline of accountability. Operational logs describe system behaviour without revealing sensitive content. Debug logs support development but are intentionally ephemeral to avoid leaking unnecessary detail.</p>
<p>Access control reinforces this structure. Role-based models enforce separation of duties, while contextual MFA ties authentication to the risk profile of each action. Together they provide traceability without degrading usability. Systems can prove that an action occurred, under the right identity and conditions, without revealing confidential data in the process.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Data governance by design is not about passing audits; it’s about constructing systems that produce their own evidence of correctness. Compliance becomes a natural byproduct of architecture rather than a burden imposed on top of it. When confidentiality, integrity and traceability shape the foundations of a platform, trust stops being an external requirement and becomes an inherent property of the system itself.</p>]]></content:encoded></item><item><title><![CDATA[What Full-Stack Introspection Really Means]]></title><description><![CDATA[During the last decade, we’ve become exceptionally good at generating telemetry. Logs, metrics, spans, flame graphs and distributed traces have helped…]]></description><link>https://blog.garbo.dev/what-full-stack-introspection-really-means/</link><guid isPermaLink="true">https://blog.garbo.dev/what-full-stack-introspection-really-means/</guid><dc:creator><![CDATA[Juan Embid]]></dc:creator><pubDate>Wed, 12 Nov 2025 10:51:40 GMT</pubDate><content:encoded><![CDATA[<h2 id="the-blind-spots-of-modern-observability">The Blind Spots of Modern Observability</h2>
<p>During the last decade, we’ve become exceptionally good at generating telemetry. Logs, metrics, spans, flame graphs and distributed traces have helped engineers understand systems that would otherwise be unmanageable. Yet even with these tools, critical behaviours still occur in places where conventional observability has no reach.</p>
<p>A system may appear healthy on dashboards while subtle timing anomalies accumulate at the scheduler level. An application may produce clean logs while a resource-contention issue unfolds beneath the runtime. Between a syscall and the packet that eventually leaves a network interface, layers of logic can mutate the original intent, introduce non-deterministic latency, or change priority decisions in ways invisible to traditional tooling. These are the regions where modern infrastructures still behave like opaque black boxes.</p>
<p>True introspection begins where monitoring stops, at the boundary where high-level semantics collapse into low-level execution paths. It doesn’t aim to replace dashboards, but to extend vision into the mechanisms that produce those dashboards in the first place.</p>
<h2 id="from-black-boxes-to-transparent-systems">From Black Boxes to Transparent Systems</h2>
<p>Full-stack introspection assumes that every layer (kernel, runtime, libraries, containers, orchestration engines and the application itself) participates in a single continuous flow of events.</p>
<p>Kernel probes and eBPF hooks reveal how the system handles threads, memory and I/O. Runtime telemetry exposes how languages schedule work and allocate resources. Service-level signals add context by showing user-level behaviour and performance perception. When combined, these sources produce a unified event graph that describes not just what happened, but how each layer contributed to the outcome.</p>
<p>This approach changes the nature of debugging. Instead of staring at symptoms (like a peak in CPU usage or a stalled queue) you can follow the causal chain backward to the syscall that triggered the cascade. A memory leak no longer manifests as an abstract slowdown: you can watch its origin, trace how allocators attempted to compensate, observe how GC cycles or thread schedulers reacted, and finally see how the ripple surfaced at API level.</p>
<h2 id="building-a-unified-observation-plane">Building a Unified Observation Plane</h2>
<p>Modern infrastructure is inherently fragmented. Languages with their own runtimes coexist with sandboxed environments, kernel-level protections, hypervisors, and distributed orchestration layers. Each of these layers emits data using different formats, assumptions and semantics. The challenge is not collecting this data but understanding what the data <em>means</em> when examined together.</p>
<p>A unified observation plane requires more than aggregation. It demands normalisation: a way to represent heterogeneous events using a shared semantic model so they can be correlated without losing the meaning of the original signal. Lightweight agents and in-kernel telemetry pipelines gather events at their source, enrich them with contextual metadata (timestamps, thread identifiers, resource lineage), and emit them as components of the same timeline rather than independent streams.</p>
<p>Once these timelines merge, cross-domain analysis becomes natural. A latency spike can be mapped to a specific contention on a kernel lock. A stalled service can be tied to a runtime allocator degrading under fragmentation pressure. A network anomaly can be linked to a scheduler decision taken milliseconds earlier.</p>
<h2 id="the-growing-importance-of-temporal-precision">The Growing Importance of Temporal Precision</h2>
<p>As systems become more concurrent and distributed, time itself becomes the ultimate source of truth. When hundreds of micro-decisions occur every millisecond, understanding the <em>ordering</em> of events matters more than their aggregate values.</p>
<p>Full-stack introspection treats time as a first-class element. It preserves microsecond resolution even when signals originate at different layers. Without this temporal precision, root-cause analysis becomes probabilistic; with it, it becomes deterministic.</p>
<p>This is what enables engineers to move from “it seems like X causes Y” to “here is the exact point where X triggered Y.”</p>
<h2 id="conclusion">Conclusion</h2>
<p>Full-stack introspection bridges the gap between the abstractions engineers work with and the mechanisms their systems actually execute. It replaces reactive debugging with proactive understanding. And more importantly, it lets teams observe not just the symptoms of failure, but the physics of failure itself.</p>]]></content:encoded></item><item><title><![CDATA[Infrastructure-Agnostic Deployments That Deliver]]></title><description><![CDATA[On-prem, private cloud, or hybrid while preserving performance and governance.]]></description><link>https://blog.garbo.dev/infrastructure-agnostic-deployments/</link><guid isPermaLink="true">https://blog.garbo.dev/infrastructure-agnostic-deployments/</guid><category><![CDATA[Agnostic]]></category><category><![CDATA[Cloud]]></category><category><![CDATA[Deployment]]></category><category><![CDATA[Hybrid]]></category><category><![CDATA[Infrastructure]]></category><category><![CDATA[News]]></category><category><![CDATA[On-premise]]></category><dc:creator><![CDATA[Juan Embid]]></dc:creator><pubDate>Mon, 10 Nov 2025 07:40:41 GMT</pubDate><content:encoded><![CDATA[<p><em>On-prem, private cloud, or hybrid while preserving performance and governance.</em></p>
<h2 id="the-freedom-to-choose-without-compromise">The Freedom to Choose Without Compromise</h2>
<p>Modern teams are no longer defined by a single infrastructure. What truly matters today isn’t <em>where</em> workloads run—it’s <em>how consistently</em> they perform, how well they’re governed, and how easily they can scale. The new generation of infrastructure-agnostic deployments has redefined flexibility: <strong>run anywhere, behave the same everywhere</strong>.</p>
<h2 id="understanding-the-landscape-on-prem-private-cloud-and-hybrid">Understanding the Landscape: On-Prem, Private Cloud and Hybrid</h2>
<p>Before discussing what it means to be infrastructure-agnostic, it’s worth understanding the terrain we’re abstracting from.</p>
<p><strong>On-premises</strong> deployments represent the oldest and most controlled model. Every element—from the hardware to the hypervisor—is owned and managed by the organization itself. The advantage lies in <em>absolute governance</em> and <em>predictable latency</em>, since data never leaves the internal network. Yet this control comes with trade-offs: hardware refresh cycles, capital expenditure, and slower elasticity. Scaling means purchasing, installing, and maintaining more metal.</p>
<p>The <strong>private cloud</strong>, on the other hand, introduces abstraction and elasticity without relinquishing sovereignty. Whether hosted internally or by a trusted provider, it offers automated provisioning, programmable infrastructure, and centralized identity management. Teams gain speed and flexibility, but often at the cost of deeper visibility into the underlying hardware. Governance is strong but slightly mediated—secured by APIs rather than physical walls.</p>
<p>Between these two extremes lies the <strong>hybrid model</strong>, a pragmatic synthesis where workloads shift between local and cloud environments depending on compliance, cost, or performance requirements. Hybrid systems excel in adaptability: an application might store sensitive data on-prem while running compute-intensive analytics in the cloud. The complexity here is not architectural but operational—ensuring consistent security policies, monitoring, and versioning across boundaries. Without a unifying orchestration layer, hybrid can quickly become “half-managed everywhere.”</p>
<p><img src="https://blog.garbo.dev/images/posts/inline-hybrid-topology.png" alt="Infrastructure-Agnostic Deployments That Deliver" /></p>
<h2 id="bridging-governance-and-performance">Bridging Governance and Performance</h2>
<p>A common misconception is that flexibility leads to loss of control. In reality, when architectures are designed with abstraction layers for identity, observability, and resource orchestration, <em>governance becomes portable too</em>.</p>
<p>Underneath, the key is <strong>policy federation</strong> — centralized control with <strong>distributed enforcement</strong>. This ensures compliance frameworks (ISO 27001, ENS, SOC2) remain intact regardless of environment.</p>
<h2 id="latency-isnt-the-enemy-but-fragmentation-is">Latency Isn’t the Enemy but Fragmentation Is</h2>
<p>Many hybrid architectures suffer not from latency but from architectural drift: different configurations, inconsistent versions, manual provisioning.
The solution is to treat infrastructure as <strong>code-first</strong>, leveraging reproducible templates and declarative pipelines that enforce identical baselines across environments. When the deployment process itself is versioned, <strong>governance becomes auditable</strong>.</p>
<h2 id="conclusion">Conclusion</h2>
<p>Infrastructure agnosticism isn’t about being everywhere; it’s about <strong>being identical everywhere</strong>.</p>
<p>Whether workloads reside on-prem, in a private cloud, or across a hybrid mesh, the goal remains the same: predictable behavior, unified governance, and effortless portability. When control, compliance, and speed coexist, deployment choices stop being technical constraints and become strategic ones.</p>]]></content:encoded></item></channel></rss>