2018年5月21日星期一

数据库审计

其实我们IT人员工作,经常会积累大量文档,如果不经常管理,你可能读完一篇文章或者文档,当时觉得受益很深,但是看完就过去了,久了有时候很难找到,或者放在一堆文件里面,需要逐个的打开看才能找到。我觉得,以后要养成一个好的习惯,创建一个【受益文档】的文件夹,里面放各种看过的文档,并且进行分类。这样以后要复习某一个知识点,就可以快速找到。

1. 数据库审计,首先需要知道需求,如果全部增删查改都审计,日志将会非常庞大,而select的审计量是占比最高的。

2. 数据库的审计方式,分为两种,一种是数据库自带的审计功能,另外一种是外部的数据库安全审计解决方案。自带的审计对服务器本身的消耗比较大,所以实际生产环境中主要采用外部的审计方式

根据需求进行审计是必要的,因为大量的无用的审计,只会消耗大量的资源,有针对性以及符合合规的审计需求,可保证不会浪费大量资源。
3. 根据需求,可分为
           登录事件 (IP地址、用户名、客户端程序,时间),分为两类,成功登录、登录失败
           登录失败可以实施警告或者账户锁定

           审计正常操作时间之外的数据库使用,因为下班时间所进行的操作活动都是可疑的

           审计DDL(数据描述语言)的活动
           从安全的观点来看,DDL命令都是潜在的最具破坏力的命令,已被攻击者利用从而破坏系统。
          DDL活动的审计是为了清除开发者和数据库管理员所引起的错误,以及一些可能会引起灾难影响的错误
         
           审计数据库错误
                  攻击者可以使用基于union攻击,他需要猜测表的正确栏数,直到他得到正确的数字,数据库将不断的返回一个错误代码,表明select语句所选择的栏数不匹配。

           审计特权、用户、登录定义
                  增加删除用户,角色
                  特权变更
                  口令变更

           审计敏感数据的变更
                  对DML的审计也是一种常见的需求,使用这种审计方式,仍需小心,这很容易产生巨大的数据量。























         

2018年5月7日星期一

基于OpenSSL自建CA和颁发SSL证书

浏览器是怎么验证,证书是来自权威CA发布的?

1.客户端向服务器端发起client hello,服务器端把证书发给客户端
2.证书包含:
         a.域名的相关信息
         b.站点的公钥
         c.数字签名= CA_private_key( hash(a+b) )
3.浏览器在信任的权威CA里面寻找对应的颁发者证书,找出公钥,解密数字签名得到hash值
4.浏览器将证书包含的信息做一次hash,相当于 hash(a+b),与3的hash值做对比,如果一样,就证明是正确的。
5.取出证书里面,站点使用的公钥,继续后面协商对称密钥的事务。





参考链接:
1. 基于OpenSSL自建CA和颁发SSL证书 
2. OpenSSL 与 SSL 数字证书概念贴
3. SSL/TLS原理详解
4. 有关SSL证书的一些事儿
5. 证书的那些事儿