📅  最后修改于: 2023-12-03 15:33:27.395000             🧑  作者: Mango
Pharming 攻击指的是通过改变域名系统(DNS)的解析结果,将用户发送到恶意网站上。这种攻击相对于传统的网络欺诈手段更为隐蔽,可以直接窃取用户的敏感信息,例如账户、密码等。
为了防止 Pharming 攻击,我们需要采取以下措施:
安装防病毒软件或防火墙可以有效防止恶意软件的侵入,从而减少 Pharming 攻击的风险。
某些浏览器和社交媒体平台已经开启了网址验证功能,可以提高网站访问的安全性。但如果你需要访问可信的第三方网站,则需要谨慎开启这个功能,以免出现 false positive(误报)的情况。
定期清除操作系统和浏览器的 DNS 缓存可以帮助及时发现和排除受感染的 DNS 污染问题。
HTTPS 是一种安全的通信协议,可以帮助对抗 Phishing,MitM 等攻击。访问银行、电商等网站时,务必确认 URL 地址中是否包含 HTTPS。
商业邮箱、社交媒体等平台的密码恢复操作可能会暴露用户密码。此外,由于 SMS 能够伪造发送号码和内容,黑客可以通过短信伪装成银行、电商等身份来实施诈骗行为。因此,接收到的未经验证的邮件和短信应予以警惕。
公共 Wi-Fi 存在被劫持的风险。黑客可以通过篡改 DNS,使用户访问被修改的页面。在外出时,尽量使用自己的移动数据网络或VPN网络,避免使用公共 Wi-Fi 接入网络。
将 DNS 改为公共 DNS 或网络运营商提供的 DNS 可以增加 DNS 解析的安全性。此外,DNSPOD 和阿里云等服务商也提供了防DDoS攻击和防DNS劫持的服务,注意开启。
DNSSEC 是一种利用数字签名来保护 DNS 信息的安全机制。使用 DNSSEC 可以有效防范 Pharming 攻击,提高 DNS 解析的安全性。
在以下示例中,一个恶意攻击者通过欺诈、篡改、转发等方式将目标用户的 DNS 解析到恶意网站上,从而获取用户的敏感信息。
为此,我们可以通过以下方式来防止此类攻击:
// 防止 DNS 污染攻击
if (dns_resolved_ip !== expected_ip) {
throw new Error('DNS resolution error');
}
// 校验 HTTPS 协议
if (!/https:(?:\d+)\/\//i.test(url)) {
throw new Error('The URL must use HTTPS protocol');
}
// 配置防 DNS 劫持
dns.config({
dnsServers: [
'8.8.8.8',
'8.8.4.4',
'208.67.222.222',
'208.67.220.220'
],
timeout: 8000,
worker: 4,
// 防止 DNS 劫持
onResolved: function (ip) {
if (ip !== 'Expected IP address') {
throw new Error('DNS resolution error');
}
}
});
// 配置 DNSSEC
dns.resolveSec(domainName, function (err, result) {
if (err) {
throw new Error('DNSSEC verification failed');
}
});
以上代码片段通过防止 DNS 污染攻击、校验 HTTPS 协议、配置防 DNS 劫持和 DNSSEC 来确保网络传输的安全性。