一、医疗行业:患者隐私与系统可用性
1. 业务特点与攻击风险
- 核心数据:电子病历、诊断报告
- 主要威胁:
- 勒索软件加密医疗设备
- 病历数据库泄露
- 挂号系统DDoS攻击
2. 防御方案与代码实现
① 数据库字段加密(防拖库)
# Django模型字段加密
from django.db import models
from cryptography.fernet import Fernet
key = Fernet.generate_key()
cipher = Fernet(key)
class Patient(models.Model):
name = models.BinaryField() # 存储加密数据
def set_name(self, plaintext):
self.name = cipher.encrypt(plaintext.encode())
def get_name(self):
return cipher.decrypt(self.name).decode()
② API访问鉴权(OAuth2.0)
# 使用curl测试受保护API
curl -X POST "https://api.medical.com/records" \
-H "Authorization: Bearer ACCESS_TOKEN" \
-d '{"patient_id": "123"}'
二、教育行业:在线考试与课程保护
1. 业务特点与攻击风险
- 核心场景:在线考试、视频课程
- 主要威胁:
- 考试系统答案篡改
- 录屏盗版课程传播
- 报名系统CC攻击
2. 防御方案与代码实现
① 防录屏技术(动态水印)
<!-- 前端:Canvas生成用户ID水印 -->
<canvas id="video-overlay"></canvas>
<script>
function drawWatermark(userId) {
const canvas = document.getElementById('video-overlay');
const ctx = canvas.getContext('2d');
ctx.font = '20px Arial';
ctx.fillStyle = 'rgba(255,0,0,0.3)';
ctx.rotate(-20 * Math.PI / 180);
ctx.fillText(userId, 50, 50);
}
// 调用示例:drawWatermark('user_123@2024-06-20');
</script>
② 考试答案加密(防篡改)
// Java示例:使用HMAC签名答案
import javax.crypto.Mac;
import javax.crypto.spec.SecretKeySpec;
public class AnswerSign {
public static String sign(String answer, String secret) throws Exception {
Mac sha256 = Mac.getInstance("HmacSHA256");
SecretKeySpec key = new SecretKeySpec(secret.getBytes(), "HmacSHA256");
sha256.init(key);
byte[] hash = sha256.doFinal(answer.getBytes());
return bytesToHex(hash);
}
private static String bytesToHex(byte[] bytes) {
StringBuilder sb = new StringBuilder();
for (byte b : bytes) sb.append(String.format("%02x", b));
return sb.toString();
}
}
三、物联网(IoT)行业:设备控制与数据安全
1. 业务特点与攻击风险
- 核心设备:智能家居、工业传感器
- 主要威胁:
- 设备固件被恶意刷写
- MQTT协议未加密导致指令劫持
- 海量设备被控发起DDoS
2. 防御方案与代码实现
① MQTT通信加密(TLS双向认证)
# Python Paho MQTT示例
import paho.mqtt.client as mqtt
client = mqtt.Client()
client.tls_set(
ca_certs="/path/to/ca.crt",
certfile="/path/to/client.crt",
keyfile="/path/to/client.key"
)
client.connect("mqtt.iot.com", 8883)
② 固件签名验证(防篡改)
// C示例:RSA验证固件签名
#include <openssl/rsa.h>
int verify_firmware(unsigned char *fw, int fw_len, unsigned char *sig) {
RSA *rsa = RSA_publickey_from_file("public_key.pem");
int result = RSA_verify(
NID_sha256,
fw, fw_len,
sig, RSA_size(rsa),
rsa
);
RSA_free(rsa);
return result; // 1=验证成功
}
总结:高危业务防御清单
行业 | 必做防御措施 | 核心代码示例 |
---|---|---|
金融 | HTTPS全站加密、API签名 | 请求签名中间件 |
游戏 | 协议加密、登录频率限制 | AES加密消息体 |
电商 | 动态页面元素、人机验证 | 滑动验证码集成 |
医疗 | 数据库字段加密、OAuth2.0 | Fernet加密模型字段 |
教育 | 动态水印、答案签名 | HMAC签名答案 |
IoT | MQTT TLS加密、固件签名 | OpenSSL固件验证 |
防御建议:
- 业务上线前进行渗透测试(推荐工具:Burp Suite、Nmap)
- 关键服务部署高防IP隐藏源站
- 建立安全事件响应SOP(如自动化封禁脚本)