慣性聚合 高效追讀感興趣之博客、新聞、科技資訊
閱原文 以慣性聚合開啟

推薦訂閱源

Google DeepMind News
Google DeepMind News
人人都是产品经理
人人都是产品经理
M
MIT News - Artificial intelligence
博客园 - 叶小钗
MyScale Blog
MyScale Blog
V
Visual Studio Blog
月光博客
月光博客
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
量子位
I
InfoQ
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
V
V2EX
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Blog — PlanetScale
Blog — PlanetScale
Last Week in AI
Last Week in AI
雷峰网
雷峰网
Stack Overflow Blog
Stack Overflow Blog
博客园 - Franky

DEV Community

Authentication Security Deep Dive: From Brute Force to Salted Hashing (With Java Examples) Why AI Systems Don’t Fail — They Drift Spilling beans for how i learn for exam😁"Reinforcement Learning Cheat Sheet" I Replaced Chrome with Safari for AI Browser Automation. Here's What Broke (and What Finally Worked) How Python Borrows Other People's Work The $40 Architecture: Processing 1 Billion API Requests with 99.99% Uptime Vibe Coding: A Workflow Guide (From Zero to SaaS) Most webhook security guides protect the wrong side. The scary part is delivery. Headless CMS for TanStack Start: Build a Blog with Cosmic EU Age Verification App "Hacked in 2 Minutes" — What Actually Happened Comfy Cloud’s delete function does not actually remove files Running AI Models on GPU Cloud Servers: A Beginner Guide Event-driven media intelligence with AWS Step Functions and Bedrock I scored 500 AI prompts across 8 quality dimensions — here's what broke How to Call Google Gemini API from Next.js (Free Tier, No Backend Needed) The Portal Protocol: Reclaiming Human Connection in the Age of AI How to Fix Your Team's Scattered Knowledge Problem With a Self-Hosted Forum Intro to tc Cloud Functors: A Graph-First Mental Model for the Modern Cloud Designing Multi-Tenant Backends With Both Ownership and Team Access I Built a Neumorphic CSS Library with 77+ Components — Here's What I Learned PostgreSQL Performance Optimization: Why Connection Pooling Is Critical at Scale Cómo construí un SaaS multi-rubro para gestionar expensas en Argentina con FastAPI + Vue 3 🚀 I Built an Ethical Hacking Scanner Tool – Open Source Project I Replaced /usage and /context in Claude Code With a Single Statusline A Pythonic Way to Handle Emails (IMAP/SMTP) with Auto-Discovery and AI-Ready Design I Collected 8.9 Million Polymarket Price Points — Here's What I Found About How Markets Really Move EcoTrack AI — Carbon Footprint Tracker & Dashboard Everyone's Using AI. No One Agrees How. 5 self-hosted ebook managers worth trying in 2026 Building Your First AI Agent with LangChain: From Chatbot to Autonomous Assistant Common SOC 2 Failures (Real World) Stop Vibe-Checking Your AI App: A Practical Guide to Evals How to Use SonarQube and SonarScanner Locally to Level Up Your Code Quality Your Next To-Do App Is Dead — I Replaced Mine with an OpenClaw AI Sign a Nostr event in 60 lines of Python using coincurve — no nostr-sdk, no nbxplorer, no rust toolchain ITGC Audit Explained Like You’re in Big 4 Patch Tuesday abril 2026: Microsoft parcha 163 vulnerabilidades y un zero-day en SharePoint Stop scraping everything: a better way to track competitor price changes Listing on MCPize + the Official MCP Registry while routing payments OUTSIDE the marketplace — how I kept 100% of my x402 revenue Building an AI-Powered Risk Intelligence System Using Serverless Architecture Why We Ripped Function Overloading Out of Our AI Toolchain Testing AI-Generated Code: How to Actually Know If It Works SaaS Churn Is Killing Your Business. Here Is What to Do About It (Without a Support Team) The Speed of AI Is No Longer Linear - And Self-Improving Models Are Why How to Implement RBAC for MCP Tools: A Practical Guide for Engineering Teams From Standard Quote to Persuasive Proposal: AI Automation for Arborists I built a CLI that scaffolds complete multi-tenant SaaS apps Axios CVE-2025–62718: The Silent SSRF Bug That Could Be Hiding in Your Node.js App Right Now The dashboard that ended our friendship Data Pipelines Explained Simply (and How to Build Them with Python)
吾以安檢器掃檢十款流行F-Droid應用,源碼安全無虞
Yehor Mamaie · 2026-05-24 · via DEV Community

Yehor Mamaiev

"其为开源,故其安。"

吾常闻此言。其理简矣:若代码公之于众,必有人审之。其弊可察。众可匡之.

吾决试此假设于实据。

余取F-Droid所载十款流行开源安卓应用——此等应用,日日为万民所使——,以吾之静态分析安全扫描器试之。复亲手动核验每项发现,与反编译之APK代码相印证。

其果:十应用中,六十处确证之漏洞。


应用

吾有意择诸类知名且勤修之应用也。

  • AntennaPod(天线Pod)播客管理器
  • 比特币钱包— 数字货币之钱袋
  • DAVx5— 日历/联系人同步
  • GNUCash 安卓— 财务会计
  • K-9 Mail(K-9邮件) — 邮件客户端
  • KeePassDX — 密码管理器
  • NewPipe — YouTube 前端
  • Nextcloud — 云存储客户端
  • Signal — 加密通讯软件
  • VLC — 媒体播放器

此非废弃之旁支,乃成熟流行之应用,有活跃开发者之社群。其中或有处理极敏感之数据——密码、加密货币、私信、财务记录等。


方法论

于每应用吾:

  1. 下载APK自F-Droid
  2. 运行吾之静态分析扫描器(自动化SAST覆盖清单分析、smali代码分析、原生库检验、污染分析及加密校验)
  3. 反编译APK以apktool取smali码、manifest及资源
  4. 亲验诸得逆观实解之码——察所标之码,果为可乘之隙,抑或虚惊耳。

此最后之步,甚为紧要。自动化扫描器能生众多候选。无人工核验,则不知何为真实,何为虚妄。


吾所发现:五常之弱

遍察十应用,手核其得,显明之迹昭然若揭。谬误屡现,循环往复——无论应用之盛衰,所涉数据之敏钝,皆然。

1. 无权守之组件外泄

见于十之九应用

安卓之组件(活动、服务、接收者、内容提供者)宣示为 exported="true" 而无需任何权限与之交互。是故,凡同器所装之应用,皆可发此组件、授之数据,或自之受数据。

何以致危:于财货之应用,此或使恶应用得启“转账”之屏。于密码之管理,此或触数据库解锁之流。于邮件之客户端,此或启草拟之屏,预填数据。

其解法直截——或为无需外通之组件设exported="false",或加android:permission 限之,使惟其人得与之交焉。

2. 文件提供者路径过泛

见于十之四应用

安卓之FileProvider,旨在安全共享文件于诸应用间。然若提供者之路径配置含<root-path path="." />,则<external-path path="." />,此实授权于全文件系统或悉外部存储,以内容URI达之。

吾尝见应用,其FileProvider之配置,可通于/storage/(悉外部存储),全应用内目录,及至极者,全设备文件系统。

虽此等提供者多不外传,然其用之。grantUriPermissions="true" — 若有导出活动转发URI权限(此乃安卓常用之模式),则广路径可被利用.

3. 明文传输许可 + 用户CA信任

见于:十之六应用

多应用在其网络安全配置中设有cleartextTrafficPermitted="true",允无加密之HTTP连接。数者亦明确信任用户所装CA证书,<certificates src="user" />.

凡应用连及自设之服务器(如CalDAV、电邮、云存储),此中或有其意——用户须连其自设之服务器,其或用HTTP,或用自签之证书。然此配置,非独适用于自设之端点,乃通用于全局。凡应用所为之连——包括API调用、分析统计、更新查验——皆默许可被截取。

尤令人忧者一事:一媒体播放器以明文HTTP下载更新文件。同网之中,中间人攻击者可诈作合法更新,供一恶毒APK。

4. 密码实现之弱

见于十之三者:

其危其古,不一而足:

  • SSL验证全然禁绝 — 有一应用,其法可直纳诸证,不验不拒。乃金融之应用,涉真金。
  • ECB密文模式 — 一播放器之遥控功能,用AES于ECB模式,同文块生同密块。此乃典籍中密术之谬误。
  • java.util.Random于密术之境 — 非也SecureRandom,故其出可预。
  • 信之先验,不固其本 — 一旦受其服务器之证,则永信不疑,纵其证易(此或示中间人攻击之兆)。

5. 亡防于覆面之攻

见于:十之八者

几无应用设之filterTouchesWhenObscured="true" 作用于敏感界面元素。此乃恶毒之应用,持覆盖权限者,可于应用之上绘制无形之层,窃取用户点击——或诱使用户误触非所愿之按钮。

此尤令人忧者:

  • 密码管理器(窃取主密码输入)
  • 加密货币钱包(确认交易)
  • 证书信任对话框(接受恶意证书)
  • OAuth登录界面(授权访问)

此意何为

开源非必即安。其意乃码之可用供审阅——然非也已矣已评。此乃流行善治之应用,有活跃社群,犹存安全之患,系统之评可察之。

此非以贬开发者。开源之持者,多志愿为之,功绩非凡。其旨在于,安全需专精专注。此乃建功能之异能,需专器专长以助之。

若汝之安卓应用掌管机要,如财货之讯、凭信之密、私语之属、康健之籍,则当受安全之察。非仅自动化扫描,数百候选即罢,实为审慎评估,每得皆核实,并明其境。


要义

  1. 自动扫描器寻得候选,未确认其漏洞。 无手验之,莫辨虚实。

  2. 同五弊之态,遍见于众应用。 导出组件,广文件供者,明文交通,弱密钥,缺叠层防护。此皆易得之果,任一安全检视当察之。

  3. 事境攸关,甚巨。 媒体播放器流式传输公共视频之明文交通,与银行应用中明文交通之风险不同。无背景之安全发现,不过报告一语耳。

  4. 开源使安全审查得以实现,非可替代之。 代码公开乃详尽分析之先决,非确保分析已行之保证。


吾乃专攻安卓应用安全之研习者。若欲论及汝应用之安危,不妨致信于yehor.mamaiev@gmail.com