新闻资讯

新闻资讯 / SAD DNS缓存中毒:Linux服务器和台式机的临时修补程序

SAD DNS缓存中毒:Linux服务器和台式机的临时修补程序

时间 : 2020-11-18 15:50:14

网络上出现了新的DNS缓存中毒威胁,其名称为Side-channel AttackeD DNS(SAD DNS)。这种新攻击的工作方式如下:SAD DNS使黑客有可能将发往特定域的流量重新路由到受其控制的服务器。通过这种攻击,他们可以轻松监视您的流量。这是一种武器化的网络侧通道攻击,对用户和企业都具有严重的安全隐患。

此新漏洞影响操作系统Linux(内核3.18-5.10),Windows Server 2019(版本1809)和更高版本,macOS 10.15和更高版本以及FreeBSD 12.1.0和更高版本。

软件驱动的DDI解决方案BlueCat就此问题向我提出了建议-主要是因为建议的暂时禁用ICMP数据包的临时解决方法更加细微。关于此问题,BlueCat代表说:

“如果DNS服务器的ICMP被完全阻止,则区域传输可能会失败,如果它与另一台服务器之间的跃点具有较小的MTU(阻止ICMP会导致PMTUD黑洞)。”

BlueCat表示IPv6分段会出现问题。

BlueCat还通知我有关Linux服务器和台式机的临时修复程序。该修补程序采用易于使用的简单脚本的形式。我已经对其进行了测试,并且可以正常工作。 

让我向您展示如何将其部署到Linux台式机和服务器,以便在DNS服务器提供商解决该问题之前可以避免出现问题。

你需要什么

  1. 访问网络上使用DNS的所有Linux机器

  2. 具有sudo特权的用户

如何使用脚本

BlueCat编写的脚本实际上非常简单,看起来像:

#!/usr/bin/env bash
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
# OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
# THE SOFTWARE.
###########################################################################  
#
# Three options for installation. Choose one of the following:
#
# 1. Copy to /etc/cron.minutely
#
# 2. Copy the script to the DNS server. Create a file in /etc/cron.d with
#    the following syntax:
#
#    * * * * *root    /path/to/icmp_ratelimit.sh >/dev/null 2>&1
#
# 3. Create a user cron entry while using `crontab -e`
#
#    * * * * * /path/to/icmp_ratelimit.sh >/dev/null 2>&1
#
# - Change "/path/to" to match the exact location of the script.
# - Finally, make sure it is executable: chmod +x /path/to/icmp_ratelimit.sh
#
seconds="60"
while [[ ${seconds} -gt 0 ]]
do
     echo $((500 + ${RANDOM} % 1500)) > /proc/sys/net/ipv4/icmp_ratelimit
     echo $((500 + ${RANDOM} % 1500)) > /proc/sys/net/ipv6/icmp_ratelimit
    sleep .95
done

注意: BlueCat可能正在更新脚本以包括IPv6。确保检查其官方GitHub页面以获取对该脚本的任何进一步更新。

该脚本将完全执行即将发布的Linux补丁程序的工作,并随机化速率限制。更具体而言,BlueCat软件安全总监David Maxwell表示:

“该脚本大致相当于10月16日提交的Linux内核更改。每秒一次,它将对ICMP响应设置一个新的随机限制,介于500-1500 / s之间。它将在Linux内核版本为2.4.10的系统上运行。或更高版本。” 

使用以下命令创建此脚本:

sudo nano /usr/local/bin/icmp_ratelimit.sh

将脚本的内容粘贴到新文件中,然后保存/关闭文件。使用以下命令授予文件可执行权限:

sudo chmod u + x /usr/local/bin/icmp_ratelimit.sh

准备好脚本后,我们现在创建一个cron作业来使用它。使用以下命令创建新的日常cron作业:

sudo crontab -e

在该文件的底部,粘贴以下内容:

* / 10 * * * * flock -xn /root/.icmpratelimit-lock -c /usr/local/bin/icmp_ratelimit.sh

保存并关闭文件。 

确保在所有Linux机器上都注意上述事项。

这里的所有都是它的。您的Linux服务器和台式机应该在SAD DNS之前是安全的,因为DNS提供商已进行了永久性修复,或者Linux内核已针对该攻击进行了正式修补。