<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:content="http://purl.org/rss/1.0/modules/content/"><channel><title>Security on Wilson Wu</title><link>https://wilsonwu.me/en/tags/security/</link><description>Recent content in Security on Wilson Wu</description><generator>Hugo -- 0.127.0</generator><language>en-US</language><lastBuildDate>Fri, 14 Aug 2026 00:00:00 +0000</lastBuildDate><atom:link href="https://wilsonwu.me/en/tags/security/index.xml" rel="self" type="application/rss+xml"/><item><title>Use Azure Managed PostgreSQL to Reduce the Security Risks of Self-Hosted Databases</title><link>https://wilsonwu.me/en/blog/2026/azure-managed-postgresql-vs-self-hosted-security/</link><pubDate>Fri, 14 Aug 2026 00:00:00 +0000</pubDate><guid>https://wilsonwu.me/en/blog/2026/azure-managed-postgresql-vs-self-hosted-security/</guid><description>Background Recently, a Linux server deployed on Azure suddenly started showing sustained 100% CPU usage. After investigation, I found a malicious program running as the postgres user, with persistence maintained through a cron scheduled task.
The PostgreSQL installation on this server had the following characteristics:
Port 5432 was not exposed to the public internet through Azure NSG; PostgreSQL was not used by the current business workload; The actual business workload used local MySQL; However, the PostgreSQL service was still installed and running; The system still retained the postgres user, home directory, cron jobs, and historical scripts.</description></item></channel></rss>