互联网企业安全高级指南3.6 需要自己发明安全机制吗

3.6 需要自己发明安全机制吗


1. 安全机制的含义

首先解释一下发明安全机制这句话的意思。安全机制包括:常见的对称和非对称加密算法,操作系统自带的RBAC基于角色的访问控制,自带的防火墙Netfilter,Android的基于appid隔离的机制,kernel支持的DEP(数据段执行保护),以及各种ASLR(地址空间随机映射),各种安全函数、服务器软件的安全选项,这些都属于已经存在的安全机制,注意我用的词是“已经存在”,而这个话题是针对是不是要在已有的安全机制上再去发明新的安全机制,比如三星手机的KNOX,就是在Android基础上自己造了个轮子。

2. 企业安全建设中的需求

企业安全的日常工作是不是也会面临自己去发明安全机制的需求?会,但是不常见。实际上,在日常中发生的绝大多数问题都属于对现有安全机制的理解有误、没有启用或没有正确使用安全机制而导致的漏洞,而不是缺少安全机制,所以绝大多数场景都不需要去发明安全机制。发明安全机制是需要成本的,且需要有足够的自信,否则不健全的安全机制消耗了开发的人力又会引入新的安全问题,但此话不绝对。

3. 取舍点

那什么情况下应该发明安全机制呢,这其实非常考验判断者的技术实力。之前也提过对于很多安全漏洞的修复是否要上升层次的问题,首先要判断这是单个问题还是属于一类问题,如果是前者,用救火的方式堵上这个洞就好,没必要再去考虑更多。但假如这是一类问题,而你又没提出通杀这一类问题的手段就会永远处于救火之中,疲于奔命。如果是一类问题,分几种情况。第一种归入安全编程能力不足导致的安全问题,这类问题不需要通过导入新机制解决,而是通过加强SDL的某些环节,加强培训教育去解决。第二种情况则是属于在相应的领域还没有成熟的安全解决方案或者现有的安全机制对抗强度太弱,则可以考虑自己去造轮子。

比如有一个函数存在整形溢出,但只有在极特殊的情况下才能触发,平时开发过程中已经大量的使用了安全函数,启用了编译的安全选项,除了给这个函数加一个条件判断修复这个bug外是不是还要考虑更进一层的防护呢?大多数情况下显然是没必要的,假如这是一个公共函数,那你可以选择把修复后的代码封装成安全的API,避免其他程序员自己实现的时候发生同类问题。

换个问题,如果公司产品的某个私有协议总是被人频繁地解密和利用,而这种解密对产品的影响又较大,假设就是游戏客户端跟服务端通信的指令都能被破解和仿冒,那这种情况下就需要考虑是否更改或创建安全机制,即有没有必要通过实现更强的通信协议加密或提高客户端反调试的对抗等级来缓解这一问题。

如果你说新建安全机制也是补洞的话,其实也没错,就像DEP相对于用户态的程序而言是一种机制,而对于操作系统和冯·诺依曼体系结构而言是一个洞。当你过于勤奋地在很微观的细节上补洞却总是补不完的时候,不妨停下来看看能否在更高更抽象的层次上打个补丁。

安全工程师如果要晋升为Leader很重要的一点就是对安全事件和安全漏洞的抽象能力,没有抽象就谈不上PDCA,就意味着更高的管理者对安全KPI在你手上能否改进不一定有信心。在纵深防御体系向中高阶段发展时,实际上会比较多的遇到是否要创新安全机制的问题,但是这个场景大多数公司未必会遇到。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/258753.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

钩子方法

Class#inherited 类被继承时调用 Module#included 模块的生命周期中调用 Module#extend_object 模块扩展类时调用 Module#method_added Module#method_removed Module#method_undefined转载于:https://www.cnblogs.com/qinyan20/p/3656156.html

ember启动报错

ember[4858] (FSEvents.framework) FSEventStreamStart: register_with_server: ERROR: f2d_register_rpc() > (null) (-21) events.js:85 throw er; // Unhandled ‘error’ event ^ Error: watch EMFILE at exports._errnoException (util.js:746:11) at FSEvent.FS…

js日期比较大小_node.js 内存泄漏的秘密

每日前端夜话第276篇翻译:疯狂的技术宅作者:Giovanny Gongora来源:nodesource正文共:3955 字预计阅读时间:10分钟一直以来,跟踪 Node.js 的内存泄漏是一个反复出现的话题,人们始终希望对其复杂性…

win7+vs2015/13+caffe+matlab+python(CPU only)配置

首先声明本教程可以适用于vs2015 和vs2013 .以vs2015为例。 安装必备软件 vs 2015 /vs2013 matlab 2016a(64bit)推荐使用Anaconda 2.7 或者Miniconda 2.7这两个Python发布版本cmake 3.8.0 以上caffe-window: https://github.com/BVLC/caffe/tree/windows 可选软件&#xff1…

Performance Co-Pilot

Install Performance Co-Pilot 提前安装依赖 [rootiZrj97j6t7ih9hgz1me35hZ ~]# cat install.sh yum install -y docker yum install -y git yum install -y yum-utils-1.1.31-40.el7.noarch yum install lex yum install flex yum install -y bison yum install -y perl-ExtUt…

字符串转换整形数,结构体数组排序

#include <stdio.h> #include<string.h> #include<conio.h> #include <stdlib.h> FILE *p; #define N 3 struct hacker {char name[11];char num[20];char xingbie[3]; }z[N];//输入模块 void shuru() {char *s"网名 QQ号码 性别信息…

如何发布打包并发布自己的Android应用(APP)

第一步&#xff0c;在Eclipse中选择需要打包的项目&#xff0c;然后右键--选择Export&#xff0c;会弹出一个打包的提示框&#xff0c;如下图所示。 按Next之后&#xff0c;会继续出现一个提示框&#xff0c;这里你可以选择自己需要打包的项目&#xff08;默认是刚才选中的&…

js变量提升_一道JS变量提升题

var a 0;if(true){a 1;function a(){};a 21;console.log(a);}console.log(a);// 21 1 当前上下文代码执行之前&#xff0c;会将带var/function的进行声明/定义。当遇到“{}”时&#xff0c;新版浏览器和老版浏览器的处理不一致。老版浏览器&#xff08;IE10以下&#xff09;…

Adaboost的几个人脸检测网站

【1】基础学习笔记之opencv(1)&#xff1a;opencv中facedetect例子浅析 http://www.cnblogs.com/tornadomeet/archive/2012/03/22/2411318.html【2】OpenCV学习笔记&#xff08;二十七&#xff09;——基于级联分类器的目标检测objdect http://blog.csdn.net/yang_xian521/arti…

Caffe训练过程:test_iter test_interval等概念

转载自http://blog.csdn.net/iamzhangzhuping/article/details/49993899 先上一张图&#xff0c;大家很熟悉的一张图。 首先说明一个概念&#xff1a;在caffe中的一次迭代iteration指的是一个batch&#xff0c;而不是一张图片。 下面主要说下2个概念&#xff1a; test_ite…

R的获取和安装

R的获取和安装 一、下载 R可以在CRAN&#xff08;Comprehensive r archive network&#xff09;http://cran.r-project.org上免费下载&#xff0c;可供选择的有Linux、Mac OS X和windows对应的二进制文件&#xff1b; 我这里选择的是windows版本。打开如下页面&#xff1a; bas…

Bitmap recycle()

Bitmap调用recycle? When?Bitmap有一个recycle方法。含义很easy&#xff0c;恢复Bitmap空间。 Q 1: Bitmap有调用recycle方法的必要性&#xff1f; A: 嵌入式系统总是格外注重空间的问题&#xff0c;不小心的话就会有OOM。可是应用层使用java的android平台有其天然的优势【ja…

扩展欧几里得算法求逆元_从辗转相除法到求逆元,数论算法初体验

今天是算法和数据结构专题的第22篇文章&#xff0c;我们一起来聊聊辗转相除法。辗转相除法又名欧几里得算法&#xff0c;是求最大公约数的一种算法&#xff0c;英文缩写是gcd。所以如果你在大牛的代码或者是书上看到gcd&#xff0c;要注意&#xff0c;这不是某某党&#xff0c;…

[翻译] Fast Image Cache

https://github.com/path/FastImageCache Fast Image Cache is an efficient, persistent, and—above all—fast way to store and retrieve images in your iOS application. Part of any good iOS applications user experience is fast, smooth scrolling, and Fast Image …

centos 安装 MatConvNet (gpu)

1. 安装准备 matlab2017a &#xff0c;参考&#xff1a;《centos 安装matlab2017a(无root权限)》 GCC 4.8(支持c11) 键入&#xff1a;sudo yum install gcc gcc-c &#xff08;建议sudo装&#xff09; 至少CUDA 7.5&#xff0c;&#xff08;本人选择cuda8.0&#xff…

php练习 租房子

题目要求 1.封装类 <?php class DBDA {public $fuwuqi"localhost"; //服务器地址public $yonghuming"root";//用户名public $mima"";//密码 public $dbconnect;//连接对象//操作数据库的方法//$sql代表需要执行的SQL语句//$type代表SQL语…

【SHARE】WEB前端学习资料

参考资料&#xff1a;https://github.com/karlhorky/learn-to-program学习网站&#xff1a;http://www.codecademy.com/learn https://www.codeschool.com/ 制作网站&#xff1a;https://webmaker.org/zh-CN/explore JavaScript2015&#xff1a;https://esdiscuss.org/topic/ja…

python软件安装和使用方法_aws cli的安装及使用(内含python的安装方法)

liunx环境(使用bundled installer)&#xff1a;1.wget https://s3.amazonaws.com/aws-cli/awscli-bundle.zip //下载bundled installer2.unzip awscli-bundle.zip3.sudo ./awscli-bundle/install -i /usr/local/aws -b /usr/local/bin/aws如果你没有sudo权限或者是你想在当…

centos 安装boost(caffe需要)

安装 由于安装caffe&#xff0c;要求boost的版本在1.55以上&#xff0c;而服务器上的刚好是1.54,所以进行了重装。 参考&#xff1a;《CentOS 7下编译安装Boost_1_57_0 》 不过由于pycaffe需要boost.python,因此需要在./b2时修改为./b2 –stage debug 才可以。而不能去掉py…

JAVA正则表达式介绍和使用

本文引用自 http://www.cnblogs.com/android-html5/archive/2012/06/02/2533924.html 技术博客 1.Java中在某个字符串中查询某个字符或者某个子字串 Java代码 String s "Shang Hai Hong Qiao Fei Ji Chang";    String regEx "a|F"; //表示a或F Pat…