整理安扫漏洞及修复记录

维护系统项目验收前需要做安全扫描,检测主机、web等安全漏洞,现把发现的漏洞修复整理记录一下

主机漏洞

1. ICMP timestamp请求响应漏洞

描述:
远程主机会回复ICMP_TIMESTAMP查询并返回它们系统的当前时间。这可能允许攻击者攻击一些基于时间认证的协议。

修复:
在您的防火墙上过滤外来的ICMP timestamp(类型 13)报文以及外出的ICMP timestamp回复报文。

sudo iptables -A INPUT -p ICMP --icmp-type timestamp-request -j DROP
sudo iptables -A INPUT -p ICMP --icmp-type timestamp-reply -j DROP
sudo iptables -A OUTPUT -p ICMP --icmp-type timestamp-reply -j DROP

2. 允许Traceroute探测

描述:
本插件使用Traceroute探测来获取扫描器与远程主机之间的路由信息。攻击者也可以利用这些信息来了解目标网络的网络拓扑。

修复:
在防火墙出站规则中禁用echo-reply(type 0)、time-exceeded(type 11)、destination-unreachable(type 3)类型的ICMP包。

 sudo iptables -A INPUT -p ICMP --icmp-type time-exceeded -j DROPsudo iptables -A OUTPUT -p ICMP --icmp-type time-exceeded -j DROPsudo iptables -A INPUT -p ICMP --icmp-type echo-reply -j DROPsudo iptables -A OUTPUT -p ICMP --icmp-type echo-reply -j DROPsudo iptables -A INPUT -p ICMP --icmp-type destination-unreachable -j DROPsudo iptables -A OUTPUT -p ICMP --icmp-type destination-unreachable -j DROP

3. 远端WEB服务器上存在/robots.txt文件

描述:
一些WEB服务器通过设置/robots.txt使得一些搜索引擎或者索引工具更方便有效地工作。但/robots.txt中往往存在一些系统信息,可能使攻击者获得该系统的额外信息。

修复:
如果您的robots.txt中包含敏感信息,删除该文件。

#查找文件位置
find / -name robots.txt
#以下是我自己系统文件所在的为主
/usr/share/cups/www/robots.txt
/usr/share/nginx/html/robots.txt
#分别进入目录后删除文件:
cd /usr/share/cups/www/
rm -rf robots.txt
cd /usr/share/nginx/html/
rm -rf robots.txt

4. SSH版本信息可被获取

描述:
SSH服务允许远程攻击者获得ssh的具体信息,如版本号等等。这可能为攻击者发动进一步攻击提供帮助。

修改:
修改源代码或者配置文件改变SSH服务的缺省banner。

#创建banner文件;如果有就不需要创建了
touch /etc/ssh/ssh_banner
#写入登陆时要显示的banner信息
echo "Wecome to use system" > /etc/ssh/ssh_banner
#编辑文件,添加banner文件路径
vim /etc/ssh/sshd_config
#找到 #Banner none在下面添加路径;
#Banner none
Banner /etc/ssh/ssh_banner
#重启ssh
systemctl restart sshd

5. 21端口 SolarWinds Serv-U FTP Server漏洞,高危14、中危12、低危3

这个端口的漏洞比较多,我是每天同步数据到模拟环境的所以防火墙只需要放行单一的IP地址即可;我自己的服务器只允许119访问本机21端口

#放行地址策略
sudo iptables -A INPUT -s x.x.x.119 -p tcp --dport 21 -j ACCEPT
sudo iptables -A OUTPUT -d x.x.x.119 -p tcp --sport 21 -j ACCEPT
#拒绝所有流量访问本机的21端口
sudo iptables -A INPUT -p tcp --dport 21 -j DROP
#保存配置
service iptables save

注:以上凡是添加的iptables策略完成以后,最后记得保存配置,否则重启服务器配置就没有了;或者也可以自己编辑iptables文件,直接在文件里写配置,然后重启iptables服务;

web漏洞

我这边使用的是Nginx,因此所有的配置都是在nginx.conf文件中做配置。

1. Host头攻击

描述:
弱点描述: 很多场景下,开发者都相信HTTP Host header传递的参数值用来更新链接导出脚本或者一些敏感操作。但该参数是可控的,若没有对其进行处理,就有可能造成恶意代码的传入。

建议:
一般性的建议: 使用SERVER_NAME代替host header

修复:
编辑nginx.conf文件,在对应的server下添加配置内容:

if ($host != "10.144.117.194") {return 403;
}

如图:

2. 不安全的Referrer Policy

描述:
Referrer Policy控制 Referer 头的行为,该请求头指示发出请求的来源或网页 URL。 Web 应用程序使用不安全的 Referrer Policy 配置,可能会将用户信息泄露给第三方站点

建议:
建议将 Referrer-Policy 标头设置为"strict-origin-when-cross-origin"或更严格的值

修复:

add_header Referrer-Policy "strict-origin-when-cross-origin";

3. 不安全的Referrer Policy

描述:
Web 服务器对于 HTTP 请求的响应头中缺少 Referrer-Policy,这将导致浏览器提供的安全特性失效。 当用户在浏览器上点击一个链接时,会产生一个 HTTP 请求,用于获取新的页面内容,而在该请求的报头中,会包含一个 Referrer,用以指定该请求是从哪个页面跳转页来的,常被用于分析用户来源等信息。但是也成为了一个不安全的因素,所以就有了 Referrer-Policy,用于过滤 Referrer 报头内容,其可选的项有: no-referrer no-referrer-when-downgrade origin origin-when-cross-origin same-origin strict-origin strict-origin-when-cross-origin unsafe-url 漏洞危害: Web 服务器对于 HTTP 请求的响应头中缺少 Referrer-Policy,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。

建议:
1)修改服务端程序,给 HTTP 响应头加上 Referrer-Policy 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“Referrer-Policy”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“Referrer-Policy:value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头Response.AddHeader “Referrer-Policy”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse()response[“Referrer-Policy”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response()response.headers[“Referrer-Policy”] = “value”;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 Referrer-Policy 如果使用Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header Referrer-Policy value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header addReferrer-Policy “value”。

修复:

add_header Referrer-Policy "strict-origin-when-cross-origin";

4. HTTP Content-Security-Policy缺失

描述:
内容安全策略 (CSP) 是一个额外的安全层,用于检测并削弱某些特定类型的攻击,包括跨站脚本 (XSS) 和数据注入攻击等。无论是数据盗取、网站内容污染还是散发恶意软件,这些攻击都是主要的手段。CSP 的实质就是白名单制度,开发者明确告诉客户端,哪些外部资源可以加载和执行,等同于提供白名单。它的实现和执行全部由浏览器完成,开发者只需提供配置。CSP 大大增强了网页的安全性。攻击者即使发现了漏洞,也没法注入脚本,除非还控制了一台列入了白名单的可信主机。CSP开启可能会导致js、css出现报错。

建议:启用 CSP方法:一种是通过 HTTP 头信息的Content-Security-Policy的字段,另一种是通过网页的meta标签。

修复:
后面的网址和地址写自己的

add_header Content-Security-Policy "connect-src 'self'  '*.sh.ctc.com' '10.144.117.194'";

5. HTTP X-Content-Type-Options缺失

描述:
通过设置"X-Content-Type-Options: nosniff"响应标头,对 script 和 styleSheet 在执行是通过MIME 类型来过滤掉不安全的文件。设置X-Content-Type-Options,可能导致IE9、IE11拒绝加载没有返回Content-Type的相关资源。

建议:
响应中添加X-Content-Type-Options: nosniff。

修复:

add_header X-Content-Type-Options nosniff always;

6. HTTP X-XSS-Protection缺失

描述:
HTTP X-XSS-Protection 响应头是 Internet Explorer,Chrome 和 Safari 的一个特性,当检测到跨站脚本攻击 (XSS)时,浏览器将停止加载页面。若网站设置了良好的 Content-Security-Policy 来禁用内联 JavaScript (‘unsafe-inline’),现代浏览器不太需要这些保护, 但其仍然可以为尚不支持 CSP 的旧版浏览器的用户提供保护。

建议:
将您的服务器配置X-XSS-Protection头。 X-XSS-Protection值为: 0 禁止XSS过滤。 1 启用XSS过滤(通常浏览器是默认的)。 如果检测到跨站脚本攻击,浏览器将清除页面(删除不安全的部分)。 1;mode=block 启用XSS过滤。 如果检测到攻击,浏览器将不会清除页面,而是阻止页面加载。 1; report= (Chromium only) 启用XSS过滤。 如果检测到跨站脚本攻击,浏览器将清除页面并使用CSP report-uri指令的功能发送违规报告。

修复:

add_header X-XSS-Protection 1 always;

7. HTTP X-Download-Options缺失

描述:
Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效。Web 服务器对于 HTTP 请求的响应头中缺少 X-Download-Options,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。

建议:
1)修改服务端程序,给 HTTP 响应头加上 X-Download-Options 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“X-Download-Options”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“X-Download-Options: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “X-Download-Options”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“X-Download-Options”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“X-Download-Options”] = “value”;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Download-Options 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Download-Options value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Download-Options “value”。

修复:

add_header X-Download-Options noopen;

8. HTTP X-Permitted-Cross-Domain-Policies缺失

描述:
Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效。 当一些在线的 Web Flash 需要加载其他域的内容时,很多 Web 会通过设置一个 crossdomain.xml 文件的方式来控制其跨域方式。很有可能有些开发者并没有修改 crossdomain.xml 文件的权限,但是又有和跨域的 Flash 共享数据的需求,这时候可以通过设置 X-Permitted-Cross-Domain-Policies 头的方式来替代 crossdomain.xml 文件,其可选的值有: none master-only by-content-type by-ftp-filename all。Web 服务器对于 HTTP 请求的响应头中缺少 X-Permitted-Cross-Domain-Policies,这将导致浏览器提供的安全特性失效,更容易遭受 Web 前端黑客攻击的影响。

建议:
1)修改服务端程序,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果是 java 服务端,可以使用如下方式添加 HTTP 响应头 response.setHeader(“X-Permitted-Cross-Domain-Policies”, “value”) 如果是 php 服务端,可以使用如下方式添加 HTTP 响应头 header(“X-Permitted-Cross-Domain-Policies: value”) 如果是 asp 服务端,可以使用如下方式添加 HTTP 响应头 Response.AddHeader “X-Permitted-Cross-Domain-Policies”, “value” 如果是 python django 服务端,可以使用如下方式添加 HTTP 响应头 response = HttpResponse() response[“X-Permitted-Cross-Domain-Policies”] = “value” 如果是 python flask 服务端,可以使用如下方式添加 HTTP 响应头 response = make_response() response.headers[“X-Permitted-Cross-Domain-Policies”] = “value”;
2)修改负载均衡或反向代理服务器,给 HTTP 响应头加上 X-Permitted-Cross-Domain-Policies 如果使用 Nginx、Tengine、Openresty 等作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: add_header X-Permitted-Cross-Domain-Policies value; 如果使用 Apache 作为代理服务器,在配置文件中写入如下内容即可添加 HTTP 响应头: Header add X-Permitted-Cross-Domain-Policies “value”。

修复:

 add_header X-Permitted-Cross-Domain-Policies none;

9. 错误页面Web应用服务器版本泄露

描述:
弱点描述: Web服务器未能正确处理异常请求导致Web服务器版本信息泄露,攻击者收集到服务器信息后可进行进一步针对性攻击。

建议:
一般性的建议:
[1]关闭Web服务器错误提示。
[2]关闭运行平台的错误提示。
[3]建立错误机制,不要把真实的错误反馈给访问者。

修复:
这里我只做了隐藏nginx的版本信息;

server_tokens off;  #关闭显示Nginx版本号

10. X-Frame-Options Header未配置

描述:
弱点描述: X-Frame-Options HTTP响应头可以指示浏览器是否允许当前网页在“frame”或“iframe”标签中显示,以此使网站内容不被其他站点引用和免于点击劫持攻击。

建议:
一般性的建议: 给您的网站添加X-Frame-Options响应头,赋值有如下三种,
1、DENY:无论如何不在框架中显示;
2、SAMEORIGIN:仅在同源域名下的框架中显示;
3、ALLOW-FROM uri:仅在指定域名下的框架中显示。如Apache修改配置文件添加“Header always append X-Frame-Options SAMEORIGIN”;Nginx修改配置文件“add_header X-Frame-Options SAMEORIGIN;”。

修复:

add_header X-Frame-Options SAMEORIGIN;

11. 点击劫持:CSP frame-ancestors未设置

描述:
点击劫持(UI 覆盖攻击)是一种恶意技术,它诱使Web用户点击与用户认为他们正在点击的内容不同的内容,从而可能泄露机密信息或控制他们的计算机,同时点击看似无害的网页。服务器没有在Content-Security-Policy标头中返回frame-ancestors指令,这意味着该网站可能面临点击劫持攻击的风险。frame-ancestors 指令可用于指示是否应允许浏览器在框架内呈现页面。网站可以使用它来避免点击劫持攻击,确保他们的内容没有嵌入到其他网站中。

建议:
配置您的Web服务器以包含带有frame-ancestors指令和X-Frame-Options头的CSP标头。

修复:

add_header Content-Security-Policy "frame-ancestors 'none'";

到此漏洞修复完成;
以下两个漏洞是需要部署HTTPS,因我们服务器所在的环境为内网环境,无需外网访问,不需要买证书部署HTTPS,因此以下两个漏洞未做修复,安装和部署HTTPS可自行百度;
12. 无HTTP重定向
13. 未加密的连接

主机、web漏洞修复整理相关推荐

  1. 网络安全-记录web漏洞修复

    网络安全-记录web漏洞修复 背景介绍 最近政府部门都在组织网络系统安全检测,我们公司开发的某一个系统前端也被检出了漏洞,需要解决一下 前端使用vue框架开发,使用nginx进行部署 漏洞 如图所示总 ...

  2. 应用安全-操作系统安全-漏洞修复整理

    FTP弱密码 将FTP服务器的密码更改为强密码 vi /etc/vsftpd/vsftpd.conf anonymous_enable=NO #禁止匿名登录 重启ftp服务 Windows匿名用户整改 ...

  3. 浅谈漏洞修复的方法论

    序言 大人,时代变了 面临的场景不同 技术的不同 应该怎么做 战略 组织 技术 策略 未来的发展 是否是创业的方向 序言 近日在看到安全牛发布的<漏洞管理的八大趋势>,其中提到了" ...

  4. Web常见漏洞修复建议

    一.SQL注入修复建议 1.过滤危险字符,例如:采用正则表达式匹配union.sleep.and.select.load_file等关键字,如果匹配到则终止运行. 2.使用预编译语句,使用PDO需要注 ...

  5. html 设置响应X-frame,X-Frame-Options(点击劫持)漏洞分析及web配置修复

    漏洞描述: 点击劫持(ClickJacking)是一种视觉上的欺骗手段.攻击者使用一个透明的iframe,覆盖在一个网页上,然后诱使用户在网页上进行操作,此时用户将在不知情的情况下点击透明的ifram ...

  6. WEB漏洞渗透测试靶场整理资源

    WEB漏洞渗透测试靶场整理资源 在所有人目光之外,一个人无声的坍塌下去,像是被什么火烧尽了,只余下灰烬 整理了一些WEB漏洞本地靶场资源,包括针对性的漏洞专题如SQL注入,XSS等-以及合集类的如DV ...

  7. 织梦漏洞修复大全(使用织梦建站,有许多漏洞)现在整理了一些

    文章目录 使用织梦建站,阿里云中反馈了许多漏洞 1.member文件夹下的漏洞 2.dedecms /include/payment/alipay.php支付模块注入漏洞修复方案 3./include ...

  8. web常用的漏洞修复建议

    Web应用漏洞原理 Web应用攻击是攻击者通过浏览器或攻击工具,在URL或者其它输入区域(如表单等),向Web服务器发送特殊请求,从中发现Web应用程序存在的漏洞,从而进一步操纵和控制网站,查看.修改 ...

  9. 2014年信息安全产品及厂家分类-漏洞扫描类(主机web)安全厂商

    http://www.srxh1314.com/2014-sec-company-hostweb.html 准备统计目录 防火墙类(UTM&FW&NGFW)厂商 WAF(web应用防火 ...

最新文章

  1. Linux下“/”和“~”的区别
  2. [BZOJ1072][SCOI2007]排列perm
  3. 用漫画的方式理解共享锁和排他锁
  4. UE4学习-材质快捷键及材质帮助手册
  5. 项目进度计划甘特图_项目管理进度计划表制作及甘特图绘制方法
  6. 在python中可以使用for作为变量名对吗_python能用一个变量的值作为另一个变量的变量名吗?...
  7. Windows7 Xp Mode部署与讲解
  8. win7美化_桌面美化之 windows10
  9. agv车辆调度系统-技术篇
  10. 现代JS名词概念系列——函数的纯洁性【龟速翻译】
  11. vue-cli3打包时图片压缩处理
  12. Linux_标准IO
  13. 窗口分析函数_12_生成累计百分比排名
  14. 什么是静态网站生成器
  15. spo2数据集_氧仪主要测量指标分别为脉率、血氧饱和度、灌注指数(PI)
  16. pcie gen3 bios设置_公版RX5700刷RX 5700XT 显卡BIOS 的教程
  17. java开发项目经验怎么写,最全指南
  18. echarts echarts-gl对应得版本
  19. C# 操作Office带密码文件
  20. STM32F767ZI-NUCLEO移植运行micropython过程记录

热门文章

  1. 同声传译系统matlab,知到网课答案英语基础口译课后作业答案
  2. H265(HEVC)视频下载 测试专用
  3. Redis学习(三)redis的持久化
  4. H.264笔记整理3
  5. 数据库 之创建新用户
  6. iOS 监听耳机插入和拔出[检索]
  7. 戴尔台式机修复计算机,dell电脑win10启动修复无法修复你的电脑的解决方法
  8. Drools学习笔记4-第一个例子
  9. Docker国内镜像源设置
  10. nginx入门-个人总结