以前的认知

以前刚接触IT行业,而我身为运维,我以为我所需要做的安全就是修改服务器密码为复杂的,ssh端口改为非22,还有就是不让人登录服务器就可以保证我维护的东西安全。

现在的认知

工作也好几年了,在这摸爬滚打中,遇到了服务器被黑,网站被人DDOS攻击,数据库被篡改等等。服务器也不是你说不让人上就不让人上的,所以IT安全这个话题还是比较沉重的,涉及的东西很多,只有你了解得更多,你才会知道你所了解的安全其实是那么少。

网络安全

很多的公司和环境并未使用第三方审计系统,未能根据记录数据进行分形,并生成审计报表。其实审计系统是很重要的,可以进行操作溯源,这可比你一张嘴说的话有用多了。我所在的公司其实是买了一台日志审计系统,但是然并卵,在运维方面,我搭建了ELK,用于对服务器的操作溯源以及监控系统日志和安全日志,这个已经完全达到我想要的效果,另外的系统相关的日志,开发人员自己也有ELK系统,他们是用来监控app里面的行为操作,也是用于审计的。

其实网络安全范围很广,还有比如说你可以将设备惊醒ARP绑定,那就可以避免arp攻击等,也可以购买入侵检测设备、入侵防御设备,防火墙等,网络设备定期修改密码,网络设备配置鉴别失败登录处理功能,配置操作超时等功能,尽量使用https协议加密传输。

除上述以外,应定期自检(漏洞扫描、弱口令扫描、基线配置信息等),对主机的端口、弱口令、安全漏洞进行扫描和发现,对已知业务应用漏洞进行扫描和发现,对已知木马进行扫描和发现,对扫描结果进行分析和提交,促进业务安全性管理和安全问题的解决。

主机安全

在现在大多数的公司中,操作系统未安装主机入侵检测系统,未能检测到对重要服务器进行入侵的行为,能够记录攻击者的源IP、攻击类型、攻击目标、攻击时间等,未能够在发生严重入侵事件时提供报警。很多人说,这个需要购买硬件WAF或者入侵防御设备,这个的确是个不小的花销,一般的公司估计也买不起,像我们,也买不起。但是并不是说我们毫无办法。我们可以在操作系统安装实时检测与查杀恶意代码的软件产品,对恶意代码实时检测与查杀,如OSSEC和 HIDS等,这些产品都是免费开源的。

主机安全还包括系统配置安全、验证安全等等。就比如操作系统提供身份鉴别措施、配置鉴别失败处理功能(也就是登录尝试失败次数,这个可以有效防止恶意破解)、加强口令复杂度要求,在原基础上还应不含有常用字符组合、数字组合、键盘顺序等可预测密码组合、重要服务器用使用资源强制访问控制策略(如用户、进程、文件内核级保护)、应限制默认账户的访问权限,修改这些账户的默认口令,条件允许下,应重命名默认账户;

应用安全

1)建议应用系统采用了两种或两种以上的组合机制进行用户身份鉴别;

2)建议应用系统对账号口令复杂度进行限制,口令长度限制为8-20位;要求口令为数字、字母字符至少两种组合,限制口令周期不大于半年;

3)建议应用系统启用登录失败处理功能,限制次数不大于5次,并且对登录失败用户进行帐号处理;

4)建议应用系统应启用用户身份鉴别信息复杂度要求和登录失败处理功能;

5)建议应用系统对重要信息资源设置敏感标记,系统不支持设置敏感标记的,应采用专用安全设备生成敏感标记,用以支持强制访问控制机制;

6)建议应用系统开启安全审计功能,安全审计范围覆盖到每个用户以及其相关操作;

7)建议应用系统开启安全审计功能,且审计功能不能中断和安全记录非管理员无法删除、修改或覆盖;

8)建议限制应用系统一段时间的并发会话连接数;

9)建议应用系统限制一个访问账号或一个请求进程的最大限额;

10)建议应用系统提供服务优先级设定功能,根据安全策略设定访问帐户或请求进程的优先级,根据优先级分配系统资源;

数据安全及备份恢复

1)建议提供异地数据备份功能,利用通信网络将关键数据定时批量传送到备用场地;

2)建议提供主要网络设备、通信线路和数据处理系统的硬件冗余,保证系统的高可用性;

3)数据的开发、测试环境如果要导入生产数据,则需要指定数据脱敏流程,将敏感的个人信息,如银行卡、手机号等信息做脱敏;

4)数据的访问要有严格的流程,非运维人员如要访问数据,在走完权限申请流程后,可以给予他读取的权限,但是不能给他将数据备份至本地的权限,该操作可以通过windows堡垒机进行权限限制,通过管理员将该人员的剪贴板禁用即可;

5)数据库一年要升级一次,即使你的数据库是放在内网的,但是你不能保证你们开发人员的代码不会被入侵,只要代码被入侵,或者被植入后门,就可以通过你的程序扫描到数据库。数据库的漏洞可不止一两个,基本上一年下来,一个稳定版本的数据库可以有30个左右的高危漏洞,50个左右的中危漏洞,这些个漏洞,你靠打补丁的方式根本不是解决办法,最好的方式还是升级到数据库最新版本前一个稳定版;

Web业务安全

1)应设置合理的会话超时阀值,在合理范围内尽可能减小会话超时阀值,可以降低会话被劫持和重复攻击的风险,超过会话超时阀值后立刻销毁会话,清除会话的信息;

2)应限制会话并发连接数,限制同一用户的会话并发连接数,避免恶意用户创建多个并发的会话来消耗系统资源,影响业务可用性;

3)应确保敏感信息通信信道的安全,建议在客户端与web服务器之间使用SSL。并正确配置SSL,建议使用SSL3.0/TLS1.0以上版本,对称加密密钥长度不少于128位,非对称加密密钥长度不少于1024位,单向散列值位数不小于128位;

4)日志记录范围应覆盖到每个用户的关键操作、重要行为、业务资源使用情况等重要事件。如普通用户异常登录、发布恶意代码、异常修改账号信息等行为,以及管理员在业务功能及账号控制方面的关键操作;

5)Web程序上线前或升级后应进行代码审计,形成报告,并对审计出的问题进行代码升级完善;

6)应禁止明文传输用户密码,建议采用SSL加密隧道确保用户密码的传输安全;

7)应对关键业务操作,例如修改用户认证鉴权信息(如密码、密码取回问题及答案、绑定手机号码等),需要经过二次鉴权,以避免因用户身份被冒用,给用户造成损失;

8)应避免认证错误提示泄露信息,在认证失败时,应向用户提供通用的错误提示信息,不应区分是账号错误还是密码错误,避免这些错误提示信息被攻击者利用;

9)应支持密码策略设置,从业务系统层面支持强制的密码策略,包括密码长度、复杂度、更换周期等,特别是业务系统的管理员密码;

10)应支持账号锁定功能,系统应限制连续登录失败次数,在客户端多次尝试失败后,服务器端需要对用户账号进行短时锁定,且锁定策略支持配置解锁时长;

11)应采取会话保护措施防止软件与服务器之间的会话不可被篡改、伪造、重放等;

作者:运维人生

来源:http://www.ywadmin.com/?id=75

更多精选文章,可通过扫描下方二维码关注进行查看~

做IT,必备的安全知识!的更多相关文章

  1. 如何学习FPGA?FPGA学习必备的基础知识

    如何学习FPGA?FPGA学习必备的基础知识 时间:2013-08-12 来源:eepw 作者: 关键字:FPGA   基础知识       FPGA已成为现今的技术热点之一,无论学生还是工程师都希望 ...

  2. Android开发学习必备的java知识

    Android开发学习必备的java知识本讲内容:对象.标识符.关键字.变量.常量.字面值.基本数据类型.整数.浮点数.布尔型.字符型.赋值.注释 Java作为一门语言,必然有他的语法规则.学习编程语 ...

  3. 前端开发者必备的Nginx知识

    摘要: 最常用的Web服务器 -- Nginx 原文:前端开发者必备的Nginx知识 作者:ConardLi Fundebug经授权转载,版权归原作者所有. Nginx在应用程序中的作用 解决跨域 请 ...

  4. 装机、做系统必备:秒懂MBR和GPT分区表____转载网络

    装机.做系统必备:秒懂MBR和GPT分区表 科技美学 2016-10-17 16:36:23 阅读(3835) 评论(4) 很多网友询问MBR和GPT的问题,涉及到硬盘操作系统的安装,其实除了MBR和 ...

  5. [转帖]java必备的开发知识和技能

    java必备的开发知识和技能 https://blog.csdn.net/qq_34405062/article/details/89389646 学习一下java 其实上学那会儿学的 早就过时加落伍 ...

  6. 大疆M3508、M2006必备CAN总线知识与配置方法

    使用大疆M3508.M2006的CAN总线知识与配置方法 目录 使用大疆M3508.M2006的CAN总线知识与配置方法 前言: 0x00 需要额外的CAN收发器!!! 0x01 硬件层面分析 为什么 ...

  7. 《DirectX 9.0 3D游戏开发编程基础》必备的数学知识 读书笔记

    最近在看游戏导航源码,但是看了几天感觉看不懂.里面全是一些几何运算,以及一些关于3d方面的知识.发现自己缺少3d这方面的知识,正好也想研究一下3d游戏开发的基本原理,于是决定买本书看看了,后来在ope ...

  8. Android系统--输入系统(一)必备的Linux知识_inotify和epoll

    Android系统--输入系统(一)必备的Linux知识_inotify和epoll 引入 1. 笔记本电脑插入外接键盘,两个键盘都可以使用 a. 键盘即插即用--如何检测键盘的接入和拔出 hotpl ...

  9. 软件测试人必备的 Python 知识图

    之前发过蛮多不少关于 Python 学习的文章,收到大家不少的好评,不过大家也有许多困惑: 现在测试不好做,是不是真的该重新去学一门热门的语言? 入门 Python 该学哪些知识点?该看哪些书? 可以 ...

随机推荐

  1. C# EF使用SqlQuery直接操作SQL查询语句或者执行过程

    Entity Framework是微软出品的高级ORM框架,大多数.NET开发者对这个ORM框架应该不会陌生.本文主要罗列在.NET(ASP.NET/WINFORM)应用程序开发中使用Entity F ...

  2. codeforces-1132 (div2)

    A.发现b的个数没有意义,a不等于d一定不可行,c不管多少都算一个,如果只有c没有ad也不可行 #include <map> #include <set> #include & ...

  3. docker学习------centos7.5下的swarm集群可视化构建

    1.swarm集群 manager : 192.168.211.175 agent1    : 192.168.211.176    agent2    :  192.168.211.177 2.环境 ...

  4. java基础 关于转换流

    转换流有两种:InputStreamReader:将字节流转换为字符流 OutputStreamWriter:将字符流转换为字节流 什么时候使用转换流?由以下分析: 流对象很多,首先要明确那个流对象. ...

  5. GDB程序调试工具

    GDB程序调试工具 GDB主要完成下面三个方面的功能: 启动被调试程序 让被调试程序在指定的位置停住 当程序被停住时,可以检查程序状态 GDB快速入门 编译生成可执行文件 gcc -g test.c ...

  6. Hibernate 分页

    public EmailBean[] findByPage(Date begin, Date end, String emailreference, int pageNo, final int pag ...

  7. java字符串转为Map类型:split()方法的应用

    方法一: package com.thinkgem.jeesite.modules.socketTest.demo2; import java.util.HashMap; import java.ut ...

  8. Grunt 一个专为JavaScript提供的构建工具

    新手最好找个视频来看看, Grunt的配置及使用(压缩合并js/css) - 每天都记录一点点! - CSDN博客https://blog.csdn.net/playboyanta123/articl ...

  9. STL--sort源码分析

    SGI STL sort源码 temlate <class RandowAccessIterator> inline void sort(RandowAccessIterator firs ...

  10. MySql8.0+全新身份验证方式

    我们在安装MySql8.0+的版本时MySql将会询问我们是否选择全新的身份验证方式,如下图 ⒈第一个是MySql推荐我们使用的强密码加密模式来进行身份验证 MySql8支持基于SHA256改进的更强 ...