At MAK Platform, security is our top priority. We're committed to protecting user assets, data, and privacy. This document outlines our security practices and how to report vulnerabilities responsibly.
- Supported Versions
- Reporting a Vulnerability
- Security Measures
- Smart Contract Security
- Bug Bounty Program
- Security Best Practices
- Incident Response
- Compliance
We actively support and provide security updates for the following versions:
Version | Supported | End of Support |
---|---|---|
1.x.x | β Yes | TBD |
0.x.x | Upon 1.0 release |
Note: We strongly recommend always using the latest stable version.
DO NOT create public GitHub issues for security vulnerabilities.
If you discover a security vulnerability, please report it responsibly:
Primary: Email security issues to andrewk529@protonmail.com
Subject Line Format: [SECURITY] Brief description
Please provide as much information as possible:
-
Vulnerability Type
- Smart contract vulnerability
- Frontend/backend security issue
- Authentication/authorization bypass
- Data exposure
- Other (specify)
-
Severity Assessment (your opinion)
- Critical (immediate threat to user funds/data)
- High (significant security risk)
- Medium (limited impact)
- Low (minimal risk)
-
Detailed Description
- Clear explanation of the vulnerability
- Affected components/contracts
- Potential impact and attack scenarios
-
Reproduction Steps
- Step-by-step instructions to reproduce
- Required conditions or setup
- Expected vs. actual behavior
-
Proof of Concept
- Code snippets (if applicable)
- Screenshots or videos
- Test environment details
-
Suggested Remediation
- Proposed fix (if you have one)
- Alternative solutions
- Mitigation strategies
Subject: [SECURITY] Reentrancy vulnerability in PropertyMarketplace
**Vulnerability Type:** Smart Contract Vulnerability
**Severity:** Critical
**Description:**
The PropertyMarketplace.purchaseShares() function is vulnerable to
reentrancy attacks. An attacker can drain funds by recursively calling
the function before state updates complete.
**Affected Component:**
- Contract: PropertyMarketplace.sol
- Function: purchaseShares()
- Lines: 145-160
**Reproduction Steps:**
1. Deploy malicious contract with fallback function
2. Call purchaseShares() with malicious contract
3. Fallback function calls purchaseShares() again
4. Repeat until target funds are drained
**Proof of Concept:**
[Attach PoC code or link to private repository]
**Impact:**
- Complete drainage of marketplace funds
- Loss of user assets
- Platform reputation damage
**Suggested Fix:**
Implement ReentrancyGuard from OpenZeppelin and follow
checks-effects-interactions pattern:
```solidity
function purchaseShares(uint256 listingId, uint256 shares)
external
payable
nonReentrant {
// Checks
require(shares > 0, "Invalid shares");
// Effects
listing.shares -= shares;
// Interactions
propertyToken.safeTransferFrom(seller, buyer, propertyId, shares);
payable(seller).transfer(payment);
}
---
## Response Timeline
We take all security reports seriously and aim to:
- **Acknowledge receipt:** Within 24 hours
- **Initial assessment:** Within 48 hours
- **Regular updates:** Every 3-5 days
- **Resolution timeline:** Depends on severity
- Critical: 24-48 hours
- High: 3-7 days
- Medium: 1-2 weeks
- Low: 2-4 weeks
### Our Process
1. **Triage:** Assess severity and impact
2. **Investigation:** Reproduce and analyze vulnerability
3. **Patch Development:** Create and test fix
4. **Security Review:** Internal audit of fix
5. **Deployment:** Deploy patch to production
6. **Disclosure:** Coordinate public disclosure (if applicable)
7. **Recognition:** Credit reporter (with permission)
---
## Security Measures
### Infrastructure Security
#### Smart Contract Security
β
**Multi-Signature Wallets**
- All critical operations require multiple signatures
- Prevents single point of failure
- Time-delayed execution for major changes
β
**Access Control**
- Role-based permissions (OpenZeppelin AccessControl)
- Principle of least privilege
- Regular permission audits
β
**Upgrade Mechanisms**
- Transparent proxy pattern for upgradability
- Time-locked upgrades with community notification
- Emergency pause functionality
β
**Circuit Breakers**
- Emergency pause in case of security incidents
- Gradual unpause mechanisms
- Protected by multi-sig
#### Frontend/Backend Security
β
**Authentication & Authorization**
- Secure wallet connection (WalletConnect, MetaMask)
- JWT token-based API authentication
- Rate limiting on all endpoints
β
**Data Protection**
- HTTPS/TLS encryption for all communications
- Input validation and sanitization
- SQL injection prevention
- XSS protection (Content Security Policy)
β
**API Security**
- API key rotation
- Request signing
- Rate limiting and throttling
- DDoS protection
#### Infrastructure
β
**Monitoring & Alerts**
- 24/7 system monitoring
- Anomaly detection
- Real-time security alerts
- Automated incident response
β
**Backup & Recovery**
- Regular automated backups
- Disaster recovery plan
- Geographic redundancy
---
## Smart Contract Security
### Security Audits
**Audit Schedule:**
- Pre-launch: Full security audit by reputable firm
- Quarterly: Ongoing security reviews
- Before major updates: Comprehensive audit
**Past Audits:**
- Q1 2025: Initial audit (scheduled)
- Audit reports published at: `docs/audits/`
### Security Practices
```solidity
// β
Good Security Practices
// 1. Reentrancy Protection
import "@openzeppelin/contracts/security/ReentrancyGuard.sol";
contract SecureMarketplace is ReentrancyGuard {
function purchaseShares() external nonReentrant {
// Protected against reentrancy
}
}
// 2. Access Control
import "@openzeppelin/contracts/access/AccessControl.sol";
contract SecureProperty is AccessControl {
bytes32 public constant ADMIN_ROLE = keccak256("ADMIN_ROLE");
function sensitiveOperation() external onlyRole(ADMIN_ROLE) {
// Only admins can execute
}
}
// 3. SafeMath (Solidity 0.8+ built-in)
function calculate(uint256 a, uint256 b) external pure returns (uint256) {
return a + b; // Automatic overflow protection
}
// 4. Checks-Effects-Interactions Pattern
function withdraw() external {
uint256 amount = balances[msg.sender]; // Check
balances[msg.sender] = 0; // Effect
payable(msg.sender).transfer(amount); // Interaction
}
// 5. Input Validation
function setPrice(uint256 price) external {
require(price > 0, "Price must be positive");
require(price <= MAX_PRICE, "Price exceeds maximum");
propertyPrice = price;
}
Vulnerability | Prevention Method |
---|---|
Reentrancy | ReentrancyGuard, CEI pattern |
Integer Overflow | Solidity 0.8+ or SafeMath |
Access Control | OpenZeppelin AccessControl |
Front-running | Commit-reveal schemes |
Timestamp Manipulation | Block.timestamp only for long periods |
DoS with Revert | Pull payment pattern |
Tx.origin Authentication | Always use msg.sender |
We will launch a bug bounty program to reward security researchers who help us keep MAK Platform secure.
Planned Rewards (Tentative):
Severity | Reward Range | Examples |
---|---|---|
Critical | $5,000 - $25,000 | Fund drainage, unauthorized token minting |
High | $2,000 - $5,000 | Access control bypass, data exposure |
Medium | $500 - $2,000 | DoS vulnerabilities, logic errors |
Low | $100 - $500 | Information disclosure, minor issues |
Scope:
- Smart contracts on mainnet
- Frontend application
- Backend APIs
- Infrastructure components
Out of Scope:
- Testnet deployments
- Third-party dependencies (report to vendors)
- Social engineering attacks
- Physical attacks
Security researchers who report valid vulnerabilities will be:
- Credited in our security hall of fame (with permission)
- Acknowledged in security advisories
- Invited to test new features early
β Protect Your Private Keys
- Never share your private keys or seed phrases
- Use hardware wallets for large holdings
- Enable all available security features (2FA, biometrics)
β Verify Transactions
- Always review transaction details before signing
- Check recipient addresses carefully
- Verify contract addresses match official ones
β Stay Informed
- Follow official MAK Platform channels
- Be aware of phishing attempts
- Verify URLs (official: makplatform.com)
β Red Flags - Potential Scams
- Unsolicited messages requesting private keys
- "Too good to be true" investment promises
- Urgent requests to take action immediately
- Unofficial websites or apps
// β
Secure Coding Examples
// 1. Input Validation
function validatePropertyId(id: number): boolean {
if (!Number.isInteger(id) || id < 0) {
throw new Error('Invalid property ID');
}
return true;
}
// 2. Error Handling
async function fetchProperty(id: number) {
try {
validatePropertyId(id);
const property = await contract.getProperty(id);
return property;
} catch (error) {
logger.error('Failed to fetch property', { id, error });
throw new Error('Property fetch failed');
}
}
// 3. Safe External Calls
async function callExternalContract(address: string) {
if (!ethers.utils.isAddress(address)) {
throw new Error('Invalid address');
}
// Proceed with call
}
// 4. Rate Limiting
const rateLimiter = new RateLimit({
windowMs: 15 * 60 * 1000, // 15 minutes
max: 100 // limit each IP to 100 requests per window
});
# β
Secure .env practices
# Never commit sensitive data
# Use different keys for dev/staging/prod
# Rotate keys regularly
# .env.example (safe to commit)
NEXT_PUBLIC_NETWORK=sepolia
NEXT_PUBLIC_CHAIN_ID=11155111
# .env (never commit - in .gitignore)
PRIVATE_KEY=your_actual_private_key_here
INFURA_API_KEY=your_actual_api_key_here
Our Response Plan:
- Detection β Automated monitoring alerts team
- Assessment β Evaluate severity and impact
- Containment β Pause affected systems if necessary
- Investigation β Analyze root cause
- Remediation β Deploy fixes
- Recovery β Restore normal operations
- Communication β Notify affected users
- Post-Mortem β Document lessons learned
Security Incidents: andrewk529@protonmail.com
Response Time: < 1 hour for critical issues
In case of a security incident affecting users:
- Email notification to all affected users
- Public announcement on official channels
- Detailed post-mortem report (after resolution)
- Compensation plan (if applicable)
We maintain compliance with:
β Securities Regulations
- SEC compliance (US)
- FCA compliance (UK)
- Local jurisdiction requirements
β Data Protection
- GDPR (European Union)
- CCPA (California)
- Privacy by design principles
β AML/KYC
- Know Your Customer verification
- Anti-Money Laundering procedures
- Sanctions screening
β Smart Contract Standards
- ERC-1155 token standard
- OpenZeppelin security guidelines
- Ethereum best practices
- Quarterly security audits
- Annual penetration testing
- Continuous compliance monitoring
- Third-party security assessments
Email: andrewk529@protonmail.com
PGP Key: [Available on request]
Response Times:
- Critical: < 1 hour
- High: < 4 hours
- Medium: < 24 hours
- Low: < 48 hours
Follow our security advisories:
- GitHub Security Advisories
- Official blog (coming soon)
- Twitter @makplatform (coming soon)
- v1.0 (October 2025) - Initial security policy
- Updates published with each major release
Last Updated: October 13, 2025
Next Review: January 2026
Thank you for helping keep MAK Platform secure! π‘οΈ