资讯专栏INFORMATION COLUMN

程序员与黑客

qieangel2013 / 2448人阅读

摘要:记录自余弦在上的演讲程序员与黑客防御就是提高攻击的成本架构思想一黑客思维应该贯穿整个公司的业务架构研发运维理想状态技术团队每个人都有黑客思维思想二优美的架构一定是健壮的想象下生态系统有漏洞被黑很正常快速自愈是关键思想三优美的架构一定

记录自余弦在qcon上的演讲

程序员与黑客(1)

防御就是提高攻击的成本

架构

思想一:黑客思维应该贯穿整个公司的业务[..->架构->研发->运维->..](理想状态技术团队每个人都有黑客思维)

思想二:优美的架构一定是健壮的

想象下生态系统

有漏洞/被黑很正常

快速自愈是关键

思想三:优美的架构一定是处处优美的(金刚狼)

...
文档(小注释,大系统,接替)
代码(代码龊漏洞也多)
逻辑(逻辑不能混乱)
人->团队(人是万恶之源)

思想四:安全的本质是信任(信任能)
[紧內聚,松耦合]设计思想
紧內聚->最小单元->一段逻辑代码(不是函数)
松耦合->分离->不信任任何输入
关键词:单元,分离

理解透了单元,才能知道分离的艺术(对象,各个属性,方法)

漏洞产生的本质
黑客通过输入[提交特殊数据],特殊数据在数据流的每个单元处理,如果某个单元没处理好,在单元输出的时候,就会出现单元的安全问题

例子:

操作系统层的单元,特殊数据当指令执行 ;rm -rf;

储存层,数据库SQL解析引擎把特殊数据当指令执行, "union select user, pwd, 1, 2, from users--"

web容器层如nginx单元没处理好,可能产生远程溢出,DoS等安全问题

架构思想 分离的艺术

人员职权的分离

人是万恶之源

每个角色的职权应该清晰

保证[生态系统]可以稳定运行的基础上,尽可能限制目标角色的权限

小心内鬼或被内鬼

服务器的分离

研发与线上服务器分离

杜绝在线上调试

杜绝把不成熟的代码发布到线上

线上服务器各司其职

按业务分离

主站,子站等业务不一样

按服务器类型分离

web、数据库、缓存

例子:MYSQL数据库的分离:

配置绑定IP,10.1.1.10, 127.0.0.1, 0.0.0.0

最小单元原则,数据库授权we访问

杜绝infile/outfile等特殊权限的可能性(load data infile "/etc/pass" into table foo;select * from foo into outfile "...")

写恶意代码在web可执行目录下,是常见的

web与数据库服务器分离了会更好

帐号权限分离
*帐号权限和认证授权模型的关系

认证和授权的关系?

认证(1/0)
授权(rwx)

认证方式

密码、公私匙、两次认证

认证授权部署一定要全面

如何安全登陆linux服务器

禁止密码的方式登陆

私钥文件丢了怎么办

私钥本身可以设置密码
可以放在安全的加密磁盘(truecrypy)

人员离职要及时和删除公钥

服务器实在太关键:vpn到内网

文件目录分离

文件目录设计关键

命名风格要求

命名风格乱七八糟患处是看到也难意识到

目录各司其职&RWX权限分配好(能R就坚决不给WX)

代码分离

代码设计的关键

命名风格

紧內聚、松耦合(系统、包、文件、类、函数、逻辑代码)

线上不应该出现svn/git权限

能提交遍以后的文件就提交遍以后的(php config 配置)

Cookie分离

  Cookie name(一看就要悲剧的isLogin)

Cookie value hack
和身份认证有关系的值是不是可以被预测
是否可以被获取

Cookie domain hack
HTTPS协议的wx.qq.com Cookie设置到.qq.com
关键Cookie: wxuin,wxsid
任意子域出现XSS都可以拿到这个Cookie

Cookie path hack

没的防

Cookie expires hack

过期时间,用户体验和安全做个平衡
永不过起或过期算法有问题(会永久劫持)

Cookie httponly hack

Cookie有这个信息就不能被Js获取
bypass方式 如 phpinfo()信息,部署不完备

Cookie secure hack

强制https传输,bypass方式 部署不完备

子域分离

子域设计的关键

不同业务放到不同子域下

松耦合的公共模块可以考虑放在其他域名下(参考google)

 击破方式

proxy.html很多网站为了夸域方便就设置 document.domain="foo.com",设置后就可以跨子域

crossdomain.xml文件,可以通过flash文件夸域获取

技术选型

第三方内容
前端框架
web应用
开发框架
语言
web容器
存储
操作系统

任何组件都有漏洞

越流行的开元组件越靠谱

越靠谱的团队打造的组件越靠谱

时刻做好被黑个头的准备

优美的架构重要性

分离设计大大提高入侵门槛

快速应急->快速自愈

千里之堤溃于蚁穴

程序员用不靠谱的组件、工具

模块/代码直接copy自不靠谱的地方

研发、运维工具下载自不靠谱的地方

升级中心的相关程序被植入后门

用靠谱的源

正确的md5校验(md5文件也可能被篡改)

绝大多数情况比较无奈

高保密机构不允许轻易升级

不要放在github上

邮箱hack

安全过程

黑客思维要贯穿(意识有限,经验培养)

优美的架构(少bug更少漏洞)

透彻理解:安全本质是信任(单元与分离重要性)

部署全面(否则形同虚设)

定期备份(出问题快速deff排查)

code review

响应争分夺秒(黄金24)

专业团队把脉

安全辅助工具

类型 工具清单
日志分析 splunk, logcheck, logwatch
入侵检测/防御 snort, iptables, ipfw, fail2ban, portsentry, tripwire, ossec
后面检测 rkhunter, chkrootkit, lynis
流量监控 nagios, cacti, zabbix
环境隔离 chroot
web抗D/CC jiasule.com

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/11184.html

相关文章

  • SegmentFault Hackathon 2018 —— 探索区块链,见证 geek 盛会!

    摘要:年,黑客马拉松由引进国内,首次举办便引起了开发者的狂热响应。今年,将一如既往地致力于扩大黑客马拉松的影响力,向开发者们传递黑客精神。,不容错过区块链技术自年以来备受关注。将在北京广州及杭州举办,和开发者们共同探索区块链,见证这场盛会。 Hackathon —— 程序员的狂欢 黑客马拉松( hackthon ),也叫编程马拉松。以下是维基百科的定义: 编程马拉松(英语:hackathon...

    wizChen 评论0 收藏0
  • 二鱼和我,武汉,黑客马拉松

    摘要:文中提到的每一位,都是为武汉黑客马拉松,为武汉的互联网贡献着自己的那份热情。武汉公司员工基本全体出动,全程参与,提供支持。今年的武汉黑客马拉松是第二届,因为有二鱼的这份执着,第二届武汉黑客马拉松才得以举办。 这个标题,不讲章法,我想从个人的视角来还原一下,一周前的黑客马拉松和我们对她的那份执着。文中提到的每一位,都是为武汉黑客马拉松,为武汉的互联网贡献着自己的那份热情。 我们我(吉佳盛...

    RobinQu 评论0 收藏0
  • 二鱼和我,武汉,黑客马拉松

    摘要:文中提到的每一位,都是为武汉黑客马拉松,为武汉的互联网贡献着自己的那份热情。武汉公司员工基本全体出动,全程参与,提供支持。今年的武汉黑客马拉松是第二届,因为有二鱼的这份执着,第二届武汉黑客马拉松才得以举办。 这个标题,不讲章法,我想从个人的视角来还原一下,一周前的黑客马拉松和我们对她的那份执着。文中提到的每一位,都是为武汉黑客马拉松,为武汉的互联网贡献着自己的那份热情。 我们我(吉佳盛...

    Jonathan Shieber 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<