zoukankan      html  css  js  c++  java
  • 安全性战术

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

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

    抵抗攻击:

    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标记、有效负荷大小、源或目的地地址以及端口 ,进行过滤。
     
    入侵检测器必须有某种检测攻击的传感器,进行传感器融合的管理器.存储事件供以后进行分析的数据库,用于离线报告和分析的工具以及一个控制台,以使分析员能够修改 入侵检测操作。

    从攻击中恢复:

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

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

  • 相关阅读:
    微信JS SDK Demo
    两种方法实现在HTML页面加载完毕后运行某个js
    JS 页面加载触发事件 document.ready和onload的区别
    Thinkphp3.2添加QQ互联和新浪微博一键登录功能
    bootstrap-select实现下拉框多选效果
    Sass (Syntactically Awesome StyleSheets)
    常见MFC UI界面库[转]
    VTK序列图像的读取[转][改]
    c语言-格式控制字符 %XXd 用法
    3DSlicer源代码编译过程vs2008+windows xp [转]
  • 原文地址:https://www.cnblogs.com/baixiaoli/p/12389673.html
Copyright © 2011-2022 走看看