博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
安全篇 ━━ 整改mysql数据库及windows服务器(根据安全等级保护评估、渗透测试报告)
阅读量:4116 次
发布时间:2019-05-25

本文共 5007 字,大约阅读时间需要 16 分钟。

安全计算环境-服务器

操作系统当前密码为弱口令,且密码未定期更换

解决参考:

位置 :控制面板 - 管理工具 - 本地安全策略 - 账户策略 - 密码策略

配置 :密码必须符合复杂性要求、密码长度最小值、密码最长使用期限
在这里插入图片描述

操作系统未配置密码复杂度策略、登录失败处理策略、超时策略

解决参考:

位置1 :控制面板 - 管理工具 - 本地安全策略 - 账户策略 - 账户锁定策略(密码策略)

配置1 :密码必须符合复杂性要求、密码长度最小值、密码最长使用期限、账户锁定时间、账户锁定阈值


可能存在账户策略-账户锁定策略下的锁定阈值和锁定时间无法修改的问题

位置2 :控制面板 - 管理工具 - 本地安全策略 - 本地策略 - 安全选项

配置2 :交互式登录:计算机不活动限制;交互式登录:计算机账户锁定阈值
在这里插入图片描述

Windows操作系统未重命名administrator账号

解决参考:

位置 :计算机管理 - 本地用户和组 - 用户

配置 :选中administrator,右键重命名,左上角菜单:文件 - 退出,最后重新登录


虚拟机可能更名用户需要授权才能使用。

Windows操作系统统一通过administrator进行管理,未建立其他账户进行分权管理

位置 :计算机管理 - 本地用户和组 - 用户

配置 :右键新增用户,设置账号、密码,创建后选择用户右键-属性,将隶属于改为 administrators


虚拟机可能新用户需要授权才能使用。

Windows操作系统审计内容不完善未启用关键审核策略

解决参考:

位置 :控制面板 - 管理工具 - 本地安全策略 - 本地策略 - 审核策略

配置 :各项策略依次在成功、失败上打勾确定
在这里插入图片描述

未对操作系统日志进行集中收集和保存

定期每天将本地操作系统及iis的日志文件上传到到异地备份

@echo offtitle copy backupnet use * /del /ynet use \\10.44.47.21\sjj-gcsj$ "qwert123" /user:"zhao.jb"echo startxcopy /s /d /e /y "C:\Windows\System32\winevt\Logs\*.*" "\\10.0.0.3\temp\log\win\"echo copy successecho endxcopy /s /d /e /y "C:\inetpub\logs\*.*" "\\10.0.0.3\temp\log\iis\"echo copy successecho endpause

Windows操作系统存在不必要的服务(print spooler、server)和端口(135、445等)

解决参考:

位置 :控制面板 - 检查防火墙状态 - 高级设置 - 入站规则

配置 :新建规则 - 端口 - [TCP - 特定本地端口:135,139,445]、[UDP - 特定本地端口:137,138] - 阻止连接 - 名称自定义 - 完成
在这里插入图片描述

操作系统未限制远程登录服务器的地址

解决参考:

位置 :控制面板 - 管理工具 - 本地安全策略 - IP安全策略 - 创建IP安全策略

配置 :创建允许通过的ip地址

Windows操作系统未安装杀毒软件

免费的有 安全狗 小红伞

服务器安全狗或者网站安全狗安装后可以修复很多内容,比如不常用端口

无可信验证设备对操作系统进行可信验证

???

未对虚拟机操作系统采取备份措施


未提供虚拟机异地数据定时批量备份功能


Windows操作系统未配置启用“开机不显示上次用户名”功能

解决参考:

位置 :控制面板 - 管理工具 - 本地安全策略 - 本地策略 - 安全选项 - 交互式登录:不显示上次的用户名

配置 :选择“已启用”,确定完成。
在这里插入图片描述


安全计算环境-数据库

MySQL数据库密码未定期更换

解决参考:

可以在MySQL的配置文件中设置一个默认值,这会使得所有MySQL用户的密码过期时间都为90天,MySQL会从启动时开始计算时间。my.cnf配置如下:

[mysqld]default_password_lifetime=90

如果要设置密码永不过期的全局策略,可以这样:(注意这是默认值,配置文件中可以不声明)

[mysqld]default_password_lifetime=0

在MySQL运行时可以使用超级权限修改此配置:

mysql> SET GLOBAL default_password_lifetime = 90;//Query OK, 0 rows affected (0.00 sec)

还可以使用ALTER USER命令为每个具体的用户账户单独设置特定的值,它会自动覆盖密码过期的全局策略。要注意ALTER USER语句的

//INTERVAL的单位是“天”。ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE INTERVAL 30 DAY;

禁用密码过期:

ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE NEVER;

让用户使用默认的密码过期全局策略:

ALTER USER 'testuser'@'localhost' PASSWORD EXPIRE DEFAULT;

从MySQL 5.7.6版开始,还可以使用ALTER USER语句修改用户的密码:

mysql> ALTER USER USER() IDENTIFIED BY '637h1m27h36r33K';//Query OK, 0 rows affected (0.00 sec)

在这里插入图片描述

MySQL数据库未启用登录失败处理策略

解决参考:

安装插件( CONNECTION_CONTROLCONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS

按需修改配置文件( /etc/my.cnf ),并重新登录数据库,查看配置是否生效

connection-control-failed-connections-threshold=5   #登陆失败次数限制connection-control-min-connection-delay=1800000    #限制重试时间,此处为毫秒,注意按需求换算

或者打命令

mysql> INSTALL PLUGIN CONNECTION_CONTROL SONAME 'connection_control.dll';mysql> install plugin CONNECTION_CONTROL_FAILED_LOGIN_ATTEMPTS soname 'connection_control.dll';mysql> show plugins;mysql> show variables like '%connection_control%';

mysql8的插件是connection_control.dll,而以前的版本插件名是connection_control.so

在这里插入图片描述

MySQL未开启general_log日志功能,且数据库日志都未通过数据库审计系统集中收集存放

解决参考:

// 先执行sql指令:show variables like '%log%';// 如果发现genery_log为off,则使用下一句set global general_log = ON;// 永久修改需要在my.cnf的【mysqld】中添加:general_log = 1

顺便写一下如何开启binlog

windows打开my.ini,找到 server_id 一行,增加:

server_id=1log_bin=mysql-binbinlog_format=ROW#expire_logs_days自动过期清理binlogexpire_logs_days=7

在这里插入图片描述

  • 无可信验证设备对数据库进行可信验证

???

数据库未采取措施对重要数据在传输过程中的完整性进行监控

解决参考:

查看是否已开启ssl,然后再配置mysql为ssl,同时修改程序连接方式

show global variables like '%ssl%';

未提供数据库异地数据定时批量备份功能

解决参考:

位置 :计算机管理 - 任务计划程序

配置 :每天计划执行navicat批量备份,文件存储在指定目录,然后再利用计划执行一个bat文件,定期拷贝指定目录下所有文件到客户提供的共享目录。

@echo off title copy backupnet use  \\10.0.0.3\Downloads\temp\2\ "password" /user:"admin"echo startxcopy /s /y "F:\Downloads\temp\1\*.*" "\\10.0.0.3\Downloads\temp\2\" echo copy successdel F:\Downloads\temp\1\*.* /qecho endpause

实际使用删除最后一句,如果需要账号密码,则password是密码位置,admin是账号位置。

任务计划如果选择无论是否登录都执行bat复制拷贝文件,很可能会失败,但如果选择登录后方可执行成功。

数据库未采取相关技术对用户鉴别信息所在的存储空间进行剩余信息保护管理

解决参考:

剩余信息(Residual Information)是说用户使用过的信息,当该用户不再使用或不再存在时。

在GB/T 22239-2008 《信息技术信息系统安全等级保护基本要求》中,剩余信息保护是对三级以上的系统的要求,
在GB/T 22239-2008的修订版本中,即《信息安全技术网络安全等级保护基本要求》(征求意见稿)(20170813版)中,剩余信息保护变为对二级以上的系统的要求,可见剩余信息保护的重要性逐渐被得到重视。

剩余信息中的保护对象有很多种,其中一种叫鉴别信息

鉴别信息 :操作系统用户的鉴别信息主要指用户名和密码。

Windows操作系统通常保存在 C:\WINDOWS\system32\config 目录下的 sam 文件中;
Linux操作系统一般保存在 /etc/passwd(或者 /etc/shadow );
AIX系统保存在 /etc/security/passwd
HP-UX保存在 /etc/passwd(或者 /etc/shadow)。

数据库系统层面,用户信息主要包括:鉴别信息、数据表、数据文件等。

Oracle数据库,鉴别信息存放于 DBA_USERS 视图的 Password列 中。如果采用口令文件验证,对于Oracle 10.2.0.1,鉴别信息保存在 /oracle/app/product/10.2.0.1/dbs 目录下的 Orapwsid 文件(或者 ORACLE_HOME/dbs/PWDsid.ora )中。数据文件保存在 /oracle/app/oradata/ 目录下,每个实例都有自己的数据文件,属于 dbf文件类型

总结

近年来,Web应用得到了飞速发展,但绝大部分Web应用存在安全漏洞。攻击者出于经济、政治等目的,利用RCE、SQL注入、网站挂马、跨站脚本、弱口令等漏洞对Web站点实施篡改、挂马、攻击、数据窃取等恶意行为,严重威胁着网站管理者和网络用户的数据安全。针对应用系统的整体安全建设,提出以下安全建议,仅供参考:

  1. 请专业的安全研究人员或安全公司对架构平台的程序和代码做全面的代码审计,修补所有发现的安全漏洞,这种白盒安全测试比较深入全面。
  2. 对平台的开发人员进行安全编码方面的培训,在开发过程避免漏洞的引入能起到事半功倍的效果。
  3. 采用专业的Web安全防火墙产品和主机安全产品,可以在不修改网站本身的情况下对大多数的Web攻击起到有效的阻断作用。
  4. 建议网络管理员、系统管理员、安全管理员关注安全信息、安全动态及最新的严重漏洞,特别是影响到Web站点所使用的系统和软件的漏洞,应该在事前设计好应对规划,一旦发现系统受漏洞影响及时采取措施。

参考:

转载地址:http://dxkpi.baihongyu.com/

你可能感兴趣的文章
day-03JavaSE_循环
查看>>
Mysql初始化的命令
查看>>
day_21_0817_Mysql
查看>>
day-22 mysql_SQL 结构化查询语言
查看>>
MySQL关键字的些许问题
查看>>
浅谈HTML
查看>>
css基础
查看>>
HTML&CSS进阶
查看>>
Servlet进阶和JSP基础
查看>>
servlet中的cookie和session
查看>>
过滤器及JSP九大隐式对象
查看>>
软件(项目)的分层
查看>>
菜单树
查看>>
MySQL-分布式架构-MyCAT
查看>>
设计模式六大原则(6):开闭原则
查看>>
阿里面试总结--JAVA
查看>>
Servlet的生命周期
查看>>
JAVA八大经典书籍,你看过几本?
查看>>
《读书笔记》—–书单推荐
查看>>
【设计模式】—-(2)工厂方法模式(创建型)
查看>>