日志脱敏
链接1 日志脱敏需求
链接2 日志脱敏需求
链接3 日志脱敏需求
链接4
数据脱敏
链接1
链接2
2018年9月19日星期三
2018年8月30日星期四
2018年8月20日星期一
docker学习过程
0x00 背景
最近要部署一套安全应急中心系统,需要使用docker进行部署安装,以前经常听过docker,也了解过,但是就是没用过,其实只是使用docker部署环境,其实没什么太大的难度,只要掌握基本的命令,就可以操作了。
0x01 我理解的docker
容器有运行的概念。
1. run,创建容器运行命令
2. start/stop/restart ,容器创建后可以通过docker ps -a 查看已经创建的容器
docker start [容器id],就可以启动容器
3. stats , 可以查看容器的运行状态,内存使用情况,cpu使用情况,磁盘网络IO
4. kill & rm,关闭docker / 删除容器
进入容器的shell有两种方法:
docker attach [容器ID] # 这是进入docker run时的交互shell
docker exec -it [容器ID] bash # 这是打开一个新的shell
如果想直接在终端中查看启动命令的输出,用 attach;其他情况使用 exec。
当然,如果只是为了查看启动命令的输出,可以使用
docker logs -f 的作用与
0x02 docker仓库配置
各个版本的docker仓库配置不一样
中国科学技术大学的开源镜像
docker images -- 查看本地已经下载的镜像
0x03 如何解决Docker容器和宿主机时间同步问题
把时区设置加入到Dockerfile中
# CentOS
RUN echo "Asia/shanghai" > /etc/timezone;
# Ubuntu
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
0x04 查看容器的启动命令
在容器外部,物理机上,可以用
如果在容器内部。可以用
查看共享文件的映射关系
docker inspect 1cb8e758f58e | grep -A10 HostConfig
"HostConfig": {
"Binds": [
"/opt/xunfeng_8000:/data"
参考链接:
1. 用docker实现微服务的便捷运维
最近要部署一套安全应急中心系统,需要使用docker进行部署安装,以前经常听过docker,也了解过,但是就是没用过,其实只是使用docker部署环境,其实没什么太大的难度,只要掌握基本的命令,就可以操作了。
0x01 我理解的docker
容器有运行的概念。
1. run,创建容器运行命令
2. start/stop/restart ,容器创建后可以通过docker ps -a 查看已经创建的容器
docker start [容器id],就可以启动容器
3. stats , 可以查看容器的运行状态,内存使用情况,cpu使用情况,磁盘网络IO
4. kill & rm,关闭docker / 删除容器
进入容器的shell有两种方法:
docker attach [容器ID] # 这是进入docker run时的交互shell
docker exec -it [容器ID] bash # 这是打开一个新的shell
如果想直接在终端中查看启动命令的输出,用 attach;其他情况使用 exec。
当然,如果只是为了查看启动命令的输出,可以使用
docker logs 命令:docker logs -f 的作用与
tail -f 类似,能够持续打印输出。0x02 docker仓库配置
各个版本的docker仓库配置不一样
中国科学技术大学的开源镜像
docker images -- 查看本地已经下载的镜像
0x03 如何解决Docker容器和宿主机时间同步问题
把时区设置加入到Dockerfile中
# CentOS
RUN echo "Asia/shanghai" > /etc/timezone;
# Ubuntu
RUN cp /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
0x04 查看容器的启动命令
在容器外部,物理机上,可以用
docker inspect查看。如果在容器内部。可以用
ps -fe 查看。其中1号进程就是启动命令。查看共享文件的映射关系
docker inspect 1cb8e758f58e | grep -A10 HostConfig
"HostConfig": {
"Binds": [
"/opt/xunfeng_8000:/data"
参考链接:
1. 用docker实现微服务的便捷运维
2018年7月5日星期四
2018年6月19日星期二
php代码审计与YII框架
php代码审计
工具:phpstorm + seay源代码审计系统
phpstorm 高效审计快捷键:
Ctrl + G 行号跳转
Ctrl + Alt + <-/-> 跳转返回/前进
Ctrl + 点击 查找函数/类/变量,定义或者使用
Ctrl + Shift + F 全局搜索字符串
Ctrl + Shift + N 全局搜索文件名
url路由:
1. apache,nginx等web服务器的配置实现路由,例如:
rewrite ^/([^/]+)/([^/]+)/.* /$1/$2/index.php last;
^/ : 以/开头
([^/]+):分组$1,不是/的任意多个字符
([^/]+):分组$2,不是/的任意多个字符
.* : 任意多个字符
2. 通过程序代码进行url路由
sql注入防御:
1. PDO需要对用户输入参数进行bind
2. AR
参考链接:
1. YII框架的sql注入测试,与防范方法
2. Yii2中如果你这么写,可能造成sql注入漏洞
3. YII2安全之SQL注入和XSS攻击
4. Class yii\db\Connection,YII 2.0官方文档,有防注入的介绍
5. YII源码分析
6. 深入理解Yii2.0
-----------------------
7. Yii防止sql注入、xxs方法
8. 活动记录(Active Record)
-----------------------
9. 高级PHP应用程序漏洞审核技术
工具:phpstorm + seay源代码审计系统
phpstorm 高效审计快捷键:
Ctrl + G 行号跳转
Ctrl + Alt + <-/-> 跳转返回/前进
Ctrl + 点击 查找函数/类/变量,定义或者使用
Ctrl + Shift + F 全局搜索字符串
Ctrl + Shift + N 全局搜索文件名
url路由:
1. apache,nginx等web服务器的配置实现路由,例如:
rewrite ^/([^/]+)/([^/]+)/.* /$1/$2/index.php last;
^/ : 以/开头
([^/]+):分组$1,不是/的任意多个字符
([^/]+):分组$2,不是/的任意多个字符
.* : 任意多个字符
2. 通过程序代码进行url路由
sql注入防御:
1. PDO需要对用户输入参数进行bind
2. AR
参考链接:
1. YII框架的sql注入测试,与防范方法
2. Yii2中如果你这么写,可能造成sql注入漏洞
3. YII2安全之SQL注入和XSS攻击
4. Class yii\db\Connection,YII 2.0官方文档,有防注入的介绍
5. YII源码分析
6. 深入理解Yii2.0
-----------------------
7. Yii防止sql注入、xxs方法
8. 活动记录(Active Record)
-----------------------
9. 高级PHP应用程序漏洞审核技术
2018年5月21日星期一
数据库审计
其实我们IT人员工作,经常会积累大量文档,如果不经常管理,你可能读完一篇文章或者文档,当时觉得受益很深,但是看完就过去了,久了有时候很难找到,或者放在一堆文件里面,需要逐个的打开看才能找到。我觉得,以后要养成一个好的习惯,创建一个【受益文档】的文件夹,里面放各种看过的文档,并且进行分类。这样以后要复习某一个知识点,就可以快速找到。
1. 数据库审计,首先需要知道需求,如果全部增删查改都审计,日志将会非常庞大,而select的审计量是占比最高的。
2. 数据库的审计方式,分为两种,一种是数据库自带的审计功能,另外一种是外部的数据库安全审计解决方案。自带的审计对服务器本身的消耗比较大,所以实际生产环境中主要采用外部的审计方式
根据需求进行审计是必要的,因为大量的无用的审计,只会消耗大量的资源,有针对性以及符合合规的审计需求,可保证不会浪费大量资源。
3. 根据需求,可分为
登录事件 (IP地址、用户名、客户端程序,时间),分为两类,成功登录、登录失败
登录失败可以实施警告或者账户锁定
审计正常操作时间之外的数据库使用,因为下班时间所进行的操作活动都是可疑的
审计DDL(数据描述语言)的活动
从安全的观点来看,DDL命令都是潜在的最具破坏力的命令,已被攻击者利用从而破坏系统。
DDL活动的审计是为了清除开发者和数据库管理员所引起的错误,以及一些可能会引起灾难影响的错误
审计数据库错误
攻击者可以使用基于union攻击,他需要猜测表的正确栏数,直到他得到正确的数字,数据库将不断的返回一个错误代码,表明select语句所选择的栏数不匹配。
审计特权、用户、登录定义
增加删除用户,角色
特权变更
口令变更
审计敏感数据的变更
对DML的审计也是一种常见的需求,使用这种审计方式,仍需小心,这很容易产生巨大的数据量。
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. 证书的那些事儿
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. 证书的那些事儿
订阅:
博文 (Atom)








