安全性战术包括抵抗攻击的战术、检测攻击的战术和从攻击从恢复的战术。

安全性是衡量系统在向合法用户提供服务的同时,阻止非授权使用的能力。试图突破安全防线的行为被称为攻击,它可以是未经授权试图访问数据或服务,或试图修改数据,也可能是试图使系统拒绝向合法用户提供服务。

 

抵抗攻击:

1.对用户进行身份验证,保证用户的合法身份,比如在设计系统时,我们通常会加入登录注册帐号的环节,这就是为了检测用户的身份。

2..对用户进行授权,限制用户的使用权限,这点我在使用虚拟机时感受较多,有好多命令行在执行不了时,需要在命令行最前面加一个sudo,赋予管理员权限便可执行

3.维护数据的机密性,对传输数据进行加密,这点我记忆最深的时在一个与同学合作的项目里,对数据库密码进行了加密,使用了md5算法进行了加密,多亏了那次机会,我才对加密算法有了更深的了解

import java.math.BigInteger;
import java.security.MessageDigest;
 
public class MD5 {
    
    
     /**
     * 对字符串md5加密(小写字母+数字)
     *
     * @param str 传入要加密的字符串
     * @return  MD5加密后的字符串
     */
    
    public static String getMD5(String str) {
        try {           
            MessageDigest md = MessageDigest.getInstance("MD5");        
            md.update(str.getBytes());  
            return new BigInteger(1, md.digest()).toString(16);
        } catch (Exception e) {
           e.printStackTrace();
           return null;
        }
    }
    
    
    /**
     * 对字符串md5加密(大写字母+数字)
     *
     * @param str 传入要加密的字符串
     * @return  MD5加密后的字符串
     */
    
    public static String MD5(String s) {
        char hexDigits[]={'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};       
 
        try {
            byte[] btInput = s.getBytes();
          
            MessageDigest mdInst = MessageDigest.getInstance("MD5");            
            mdInst.update(btInput);            
            byte[] md = mdInst.digest();          
            int j = md.length;
            char str[] = new char[j * 2];
            int k = 0;
            for (int i = 0; i < j; i++) {
                byte byte0 = md[i];
                str[k++] = hexDigits[byte0 >>> 4 & 0xf];
                str[k++] = hexDigits[byte0 & 0xf];
            }
            return new String(str);
        } catch (Exception e) {
            e.printStackTrace();
            return null;
        }
    }
 
}

 

4.维护数据的完整性,对数据进行检验,输入数据无法在数据库中查询到时报错

5.防止暴露的信息,攻击者通常会利用暴露的某个弱点来攻击主机上的所有数据和 服务。设计师可以设计服务在主机上的分配,以使只能在每个主机上获得受限的 服务

6.限制访问,比如防火墙,防火墙根据消息源或目的地端口来限制访问。来自未知源的消息可能 是某种形式的攻击。限制对已知源的访问并不总是可行的。例如,一个公共网站 上可能会有来自未知源的请求。这种情况中使用的一个配置就足所谓的解除管制 区(DMZ)。当必须对Internet服务而非专有网提供访问时使用DMZ。它位于 Internet和内部网前面的防火墙之间。DMZ包含预计会从任意源接收消息的设备, 这些信息源包括Web服务、e-mail和域名服务等。

检测攻击:

一般通过“入侵检测”系统进行过滤、比较通信模式与历史基线等方法

以下是查的资料

检测攻击检测通常通过“入侵检测”系统进行。此类系统的工作方式是比较网络通信模式与数据库系统。在误检测的情况下,将通信模式与已知攻击的历史模式进行比较。在 异常检测的情况下,将通信模式与其本身的历史基线进行比较。通常,必须对数据包进行 过滤,以进行比较。可以根据协议、TCP标记、有效负荷大小、源或目的地地址以及端口 ,进行过滤。
 
入侵检测器必须有某种检测攻击的传感器,进行传感器融合的管理器.存储事件供以后进行分析的数据库,用于离线报告和分析的工具以及一个控制台,以使分析员能够修改 入侵检测操作。

从攻击中恢复:

恢复:检查点/回滚:检查点就是使状态一致的同步点,它或者是定期进行,或者是对具体事件做出响应。当在两检查点之间发生故障时,则以这个一致状态的检查点(有快照)和之后发生的事务日志来恢复系统(数据库中常使用)。

识别攻击者:作为审计追踪,用于预防性或惩罚性目的。