Security
Security
CVE
订阅rss
vulnerability
log4j shell
GPG的使用
准备工作
安装
linux下安装gpg软件(以debian10为例)
apt-get install -y gpg
windows下安装gpg软件 https://www.gpg4win.org/get-gpg4win.html 会提示donate,把num设置成0
生成自己的私钥公钥对
windows下, 我使用的是上面安装的客户端Kleopatra Gpg4win-3.1.14
可以在文件-新建密钥对或者文件-导入 导入之前的密钥对,这里我先创建一个,然后导入我linux里面的
选择格式选择创建个人openpgp, 在界面填写用户和邮箱,高级设置里面也有和linux差不多的选项 最后输入密码,我在创建页面备份了密钥对的副本,没有上传到目录服务
文件-签名/加密 可以增加多个人的名字或者邮箱 加密完成后会生成一个gpg文件,右击即可解密(因为有自己的私钥,当然也可以在前面加密的时候设置密码)
linux下, 这里我设置了key密码,填写了姓名邮箱等信息,选择了4096位的rsa类型
|
|
注意这里的密码一定要记得
|
|
这样别人就可以通过如下方式获取你的PUB了
|
|
我们写一个临时文件
|
|
加密文件
|
|
解密文件
|
|
有可能会让我们输入密码,记得输入创建key的时候的密码
签名要注意指定用户通过-u指定,可以写用户短名字比如liuliancao,也可以使用标记SHORT ID
|
|
表示使用本地liuliancao用户对test.txt进行签名并生成test.txt.sig文件
如果要生成ascii码类型的签名,使用–clearsign,clear这里意思是清晰明了的,否则是二进制的
|
|
签名有啥用呢,通过gpg –verify可以检查签名和实际文件是否一致,排除中间网络异常修改等操作,但是注意这里
|
|
由于我们没有分开签名(文件和签名是一个文件), 导致我们只能验证签名的内容,文件是无法验证的
创建分离签名, 如果不要二进制记得加–armor参数,如果还需要加密,则在文件签名加–encrypt
|
|
再次执行verify
|
|
我们改一下test.txt
|
|
发现这个时候签名已经损坏了
如果key的密码忘了,我们一般就无法修改密码,通常需要暴力破解等手段
|
|
注意这里也可以用gpg –edit-keys USER_ID编辑和修改,这个是相当丰富的命令行资源,类似ftp
输入 passwd,
save即可
此时我们登录另一台服务器模拟另一个小伙伴benben
|
|
需要安装一下rng-tools,安装完成以后手动执行下
|
|
此时你是gpg的管理员,要把benben加到用户组sub keys里面
继续回到我们的开始服务器
|
|
我们这边生成一个新文件进行测试
|
|
benben服务器上面进行解密
|
|
这个时候我们就完成了一次完整的数据传递
|
|
|
|
总结
- gpg通过公私钥和密码共同保证安全性
- gpg可以用于文件签名,邮件签名,文件加密等场景
- gpg可以用于多人协同 只要通过keyserver下载下来团队成员的公钥,即可通过他的pub进行加密并发送给他 他个人的key可以加入公共的sub keys链
CSRF(Cross Site Request Forgery)跨站请求攻击
说白了就是其他地方防止一个攻击请求,利用用户本地的一些cookie session等,
点击以后就会触发用户意想不到的web请求,从而导致比如转账等情况。 wiki关于跨站请求攻击
通过令牌限制
比如django默认强制form表单增加{% csrf_token %}这种,通过每次表单都需要带一个token解决
设置http请求的refer字段
通过检查校验refer来看这个请求的调用来源是否是同源网站
表单增加一个随机数token
通过表单增加一个随机数据项(这个不存在cookie中),后端每次顺便校验一下随机数,实现类似csrf_token的效果
XSS(Cross Site scripting)跨站脚本攻击
wiki XSS 说白了就是通过用户误点击xss脚本,会执行攻击者的一些命令,
比如获取:
- cookie,可以盗用信息,甚至可以转账,登录等
- 通过植入flash,和设置cross domain获取更多权限
- 利用iframe,frame,XMLHttp Request或者flash,执行一些管理员动作,比如发微博,加好友
- 用可被攻击的域受到其他域信任的特点,以受信任来源的身份请求一些平时不允许的操作,如进行不当的投票活动
- 在访问量极大的一些页面上的XSS可以攻击一些小型网站,实现DoS攻击的效果
预防方式
过滤特殊字符
调用对应库的encode函数或者检查函数
在http头指定内容的类型
渗透测试工具
扫描工具
fscan
masscan
Metasplit工具
Vault
vault是hashicorp公司针对安全数据存放和获取的一种解决方案,用于安全验证等,vault官网
部署前的安全检查 https://learn.hashicorp.com/tutorials/vault/production-hardening?in=vault/day-one-consul
配合aws和raft keepalived部署https://blog.yasithab.com/centos/hashicorp-vault-ha-cluster-with-raft-and-aws-kms-on-centos-7/
集群搭建with consul https://learn.hashicorp.com/tutorials/vault/deployment-guide
integrated storage https://learn.hashicorp.com/collections/vault/raft 安装完成以后
|
|
export VAULT_ADDR='http://127.0.0.1:8200' vault status
max 768h change to 9000h
|
|
自签证书
ca证书相关
|
|
一些安全相关的工具网站
some anti tools
rkhunter
|
|
使用方法 第一次使用需要先更新下
|
|
可以看下它的所有tests 还有支持的语言 通过–list
|
|
第一次使用建议保存好初始的数据库
|
|
然后就可以用你喜欢的语言进行检查了 不过建议加–sk 否则就要每次都要按下 enter键
|
|
radare2
反向工程工具,直接yum安装
claimav
install
|
|
update database
|
|
fail2ban
安装
|
|