# Security Policy / 安全政策

**Languages:** [English](#english) | [中文](#中文)

---

# English

## 🛡️ Security Overview

NOFX is an AI-powered trading system that handles real funds and API credentials. We take security seriously and appreciate the security community's efforts to responsibly disclose vulnerabilities.

**Critical Areas:**
- 🔑 API key storage and handling
- 💰 Trading execution and fund management
- 🔐 Authentication and authorization
- 🗄️ Database security (SQLite)
- 🌐 Web interface and API endpoints

---

## 📋 Supported Versions

We provide security updates for the following versions:

| Version | Supported          | Notes                |
| ------- | ------------------ | -------------------- |
| 3.x     | ✅ Fully supported | Current stable release |
| 2.x     | ⚠️ Limited support | Security fixes only |
| < 2.0   | ❌ Not supported   | Please upgrade       |

**Recommendation:** Always use the latest stable release (v3.x) for best security.

---

## 🔒 Reporting a Vulnerability

### ⚠️ Please DO NOT Publicly Disclose

If you discover a security vulnerability in NOFX, please **DO NOT**:
- ❌ Open a public GitHub Issue
- ❌ Discuss it on social media (Twitter, Reddit, etc.)
- ❌ Share it in Telegram/Discord groups
- ❌ Post it on security forums before we've had time to fix it

Public disclosure before a fix is available puts all users at risk.

### ✅ Responsible Disclosure Process

**Step 1: Report Privately**

Contact core team directly:
- **Tinkle:** [@Web3Tinkle on Twitter](https://x.com/Web3Tinkle) (DM)

**Alternative:** Encrypted communication via [Keybase](https://keybase.io/) (if available)

**Step 2: Include These Details**

```markdown
Subject: [SECURITY] Brief description of vulnerability

## Vulnerability Description
Clear explanation of the security issue

## Affected Components
- Which parts of the system are affected?
- Which versions are vulnerable?

## Reproduction Steps
1. Step-by-step instructions
2. Sample code or commands (if applicable)
3. Expected vs actual behavior

## Potential Impact
- Can funds be stolen?
- Can API keys be leaked?
- Can accounts be compromised?
- Rate the severity: Critical / High / Medium / Low

## Suggested Fix (Optional)
If you have ideas for fixing it, please share!

## Your Information
- Name (or pseudonym)
- Contact info for follow-up
- If you want public credit (yes/no)
```

**Step 3: Wait for Our Response**

We will:
- ✅ Acknowledge receipt within **24 hours**
- ✅ Provide initial assessment within **72 hours**
- ✅ Keep you updated on fix progress
- ✅ Notify you before public disclosure

---

## ⏱️ Response Timeline

| Stage | Timeline | Action |
|-------|----------|--------|
| **Acknowledgment** | 24 hours | Confirm we received your report |
| **Initial Assessment** | 72 hours | Verify vulnerability, rate severity |
| **Fix Development** | 7-30 days | Depends on complexity and severity |
| **Testing** | 3-7 days | Verify fix doesn't break functionality |
| **Public Disclosure** | After fix deployed | Publish security advisory |

**Critical vulnerabilities** (fund theft, credential leaks) are prioritized and may be fixed within 48 hours.

---

## 💰 Security Bounty Program (Optional)

We offer rewards for valid security vulnerabilities:

| Severity | Criteria | Reward |
|----------|----------|--------|
| **🔴 Critical** | Fund theft, API key extraction, RCE | **$500-1000 USD** |
| **🟠 High** | Authentication bypass, unauthorized trading | **$200-500 USD** |
| **🟡 Medium** | Information disclosure, XSS, CSRF | **$100-200 USD** |
| **🟢 Low** | Security improvements, minor issues | **$50-100 USD or Recognition** |

**Note:** Bounty amounts are at maintainers' discretion based on:
- Severity and impact
- Quality of report
- Ease of exploitation
- Number of affected users

**Out of Scope (No Bounty):**
- Issues in third-party libraries (report to them directly)
- Social engineering attacks
- DoS/DDoS attacks
- Issues requiring physical access
- Previously known/reported vulnerabilities

---

## 🔐 Security Best Practices (For Users)

To keep your NOFX deployment secure:

### 1. API Key Management
```bash
# ✅ DO: Use environment variables
export BINANCE_API_KEY="your_key"
export BINANCE_SECRET_KEY="your_secret"

# ❌ DON'T: Hardcode in source files
api_key = "abc123..."  # NEVER DO THIS
```

### 2. Database Security
```bash
# ✅ Set proper permissions
chmod 600 nofx.db
chmod 600 config.json

# ❌ DON'T: Leave files world-readable
chmod 777 nofx.db  # NEVER DO THIS
```

### 3. Network Security
```bash
# ✅ Use firewall to restrict API access
# Only allow localhost to access API server
iptables -A INPUT -p tcp --dport 8080 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j DROP

# ❌ DON'T: Expose API to public internet without authentication
```

### 4. Use Subaccounts
- Create dedicated Binance subaccount for trading
- Limit maximum balance
- Restrict withdrawal permissions
- Use IP whitelist

### 5. Test on Testnet First
- Hyperliquid: Use testnet mode
- Binance: Use testnet API (https://testnet.binancefuture.com)
- Never test with real funds initially

### 6. Regular Updates
```bash
# Check for updates regularly
git pull origin main
go build -o nofx

# Subscribe to security advisories
# Watch GitHub releases: https://github.com/tinkle-community/nofx/releases
```

---

## 🚨 Security Advisories

Past security advisories will be published here:

### 2025-XX-XX: [Title]
- **Severity:** [Critical/High/Medium/Low]
- **Affected Versions:** [x.x.x - x.x.x]
- **Fixed in:** [x.x.x]
- **Description:** [Brief description]
- **Mitigation:** [How to protect yourself]

*No security advisories have been published yet.*

---

## 🙏 Security Researchers Hall of Fame

We thank the following security researchers for responsibly disclosing vulnerabilities:

*No reports have been submitted yet. Be the first!*

---

## 📚 Additional Resources

**Security Documentation:**
- [OWASP Top 10](https://owasp.org/www-project-top-ten/)
- [CWE Top 25](https://cwe.mitre.org/top25/)
- [Binance API Security Best Practices](https://www.binance.com/en/support/faq/360002502072)

**Audit Reports:**
- No third-party audits completed yet
- Self-audit checklist: [TODO: Add link]

---

## 📞 Contact

**For security issues ONLY:**
- 🐦 **Twitter DM:** [@Web3Tinkle](https://x.com/Web3Tinkle)

**For general questions:**
- See [CONTRIBUTING.md](CONTRIBUTING.md)
- Join [Telegram Community](https://t.me/nofx_dev_community)

---

**Thank you for helping keep NOFX secure!** 🔒

---

# 中文

## 🛡️ 安全概述

NOFX 是一个处理真实资金和 API 凭证的 AI 交易系统。我们非常重视安全，并感谢安全社区负责任地披露漏洞的努力。

**关键领域：**
- 🔑 API 密钥存储和处理
- 💰 交易执行和资金管理
- 🔐 身份验证和授权
- 🗄️ 数据库安全（SQLite）
- 🌐 Web 界面和 API 端点

---

## 📋 支持的版本

我们为以下版本提供安全更新：

| 版本 | 支持状态 | 说明 |
| ------- | ------------------ | -------------------- |
| 3.x     | ✅ 完全支持 | 当前稳定版本 |
| 2.x     | ⚠️ 有限支持 | 仅安全修复 |
| < 2.0   | ❌ 不支持 | 请升级 |

**建议：** 始终使用最新的稳定版本（v3.x）以获得最佳安全性。

---

## 🔒 报告漏洞

### ⚠️ 请勿公开披露

如果您在 NOFX 中发现安全漏洞，请**不要**：
- ❌ 公开创建 GitHub Issue
- ❌ 在社交媒体上讨论（Twitter、Reddit 等）
- ❌ 在 Telegram/Discord 群组中分享
- ❌ 在我们有时间修复之前发布到安全论坛

在修复可用之前公开披露会使所有用户面临风险。

### ✅ 负责任的披露流程

**步骤 1：私下报告**

直接联系核心团队：
- **Tinkle:** [@Web3Tinkle on Twitter](https://x.com/Web3Tinkle)（私信）

**替代方案：** 通过 [Keybase](https://keybase.io/) 加密通信（如果可用）

**步骤 2：包含这些详细信息**

```markdown
主题：[SECURITY] 漏洞简要描述

## 漏洞描述
清楚解释安全问题

## 受影响的组件
- 系统的哪些部分受到影响？
- 哪些版本存在漏洞？

## 复现步骤
1. 逐步说明
2. 示例代码或命令（如果适用）
3. 预期行为 vs 实际行为

## 潜在影响
- 资金是否可能被盗？
- API 密钥是否可能泄露？
- 账户是否可能被入侵？
- 严重程度评级：严重 / 高 / 中 / 低

## 建议修复（可选）
如果您有修复的想法，请分享！

## 您的信息
- 姓名（或化名）
- 后续联系信息
- 是否希望公开致谢（是/否）
```

**步骤 3：等待我们的回复**

我们将：
- ✅ 在 **24 小时**内确认收到
- ✅ 在 **72 小时**内提供初步评估
- ✅ 告知您修复进展
- ✅ 在公开披露前通知您

---

## ⏱️ 响应时间表

| 阶段 | 时间线 | 行动 |
|-------|----------|--------|
| **确认** | 24 小时 | 确认我们收到了您的报告 |
| **初步评估** | 72 小时 | 验证漏洞，评估严重程度 |
| **修复开发** | 7-30 天 | 取决于复杂性和严重程度 |
| **测试** | 3-7 天 | 验证修复不会破坏功能 |
| **公开披露** | 修复部署后 | 发布安全公告 |

**严重漏洞**（资金盗窃、凭证泄露）会优先处理，可能在 48 小时内修复。

---

## 💰 安全奖励计划（可选）

我们为有效的安全漏洞提供奖励：

| 严重程度 | 标准 | 奖励 |
|----------|----------|--------|
| **🔴 严重** | 资金盗窃、API 密钥提取、RCE | **$500-1000 USD** |
| **🟠 高** | 认证绕过、未授权交易 | **$200-500 USD** |
| **🟡 中** | 信息泄露、XSS、CSRF | **$100-200 USD** |
| **🟢 低** | 安全改进、小问题 | **$50-100 USD 或致谢** |

**注意：** 奖励金额由维护者根据以下因素酌情决定：
- 严重性和影响
- 报告质量
- 利用难易度
- 受影响用户数量

**不在范围内（无奖励）：**
- 第三方库的问题（直接向他们报告）
- 社会工程攻击
- DoS/DDoS 攻击
- 需要物理访问的问题
- 已知/已报告的漏洞

---

## 🔐 安全最佳实践（用户指南）

保护您的 NOFX 部署安全：

### 1. API 密钥管理
```bash
# ✅ 正确：使用环境变量
export BINANCE_API_KEY="your_key"
export BINANCE_SECRET_KEY="your_secret"

# ❌ 错误：在源文件中硬编码
api_key = "abc123..."  # 永远不要这样做
```

### 2. 数据库安全
```bash
# ✅ 设置适当的权限
chmod 600 nofx.db
chmod 600 config.json

# ❌ 不要：让文件全局可读
chmod 777 nofx.db  # 永远不要这样做
```

### 3. 网络安全
```bash
# ✅ 使用防火墙限制 API 访问
# 仅允许本地访问 API 服务器
iptables -A INPUT -p tcp --dport 8080 -s 127.0.0.1 -j ACCEPT
iptables -A INPUT -p tcp --dport 8080 -j DROP

# ❌ 不要：在没有身份验证的情况下将 API 暴露到公共互联网
```

### 4. 使用子账户
- 为交易创建专用的 Binance 子账户
- 限制最大余额
- 限制提现权限
- 使用 IP 白名单

### 5. 先在测试网上测试
- Hyperliquid：使用测试网模式
- Binance：使用测试网 API (https://testnet.binancefuture.com)
- 最初永远不要用真实资金测试

### 6. 定期更新
```bash
# 定期检查更新
git pull origin main
go build -o nofx

# 订阅安全公告
# 关注 GitHub 发布：https://github.com/tinkle-community/nofx/releases
```

---

## 🚨 安全公告

过去的安全公告将在此发布：

### 2025-XX-XX: [标题]
- **严重程度：** [严重/高/中/低]
- **受影响版本：** [x.x.x - x.x.x]
- **已修复版本：** [x.x.x]
- **描述：** [简要描述]
- **缓解措施：** [如何保护自己]

*尚未发布任何安全公告。*

---

## 🙏 安全研究员名人堂

我们感谢以下安全研究员负责任地披露漏洞：

*尚未收到任何报告。成为第一个！*

---

## 📞 联系方式

**仅限安全问题：**
- 🐦 **Twitter 私信：** [@Web3Tinkle](https://x.com/Web3Tinkle)

**一般问题：**
- 加入 [Telegram 社区](https://t.me/nofx_dev_community)

---

**感谢您帮助保持 NOFX 的安全！** 🔒
