1
Takamine 2019-08-20 22:14:07 +08:00 via Android
如果造轮子的收益远大于突然死一片的几率和从死掉到修复正常之间的损失,那才会选择自己从头造轮子吧,最多重构部分。
而且注重安全性的话肯定会从多方面做防护体系,不依赖单一框架做保证。 另外也肯定是会选一些社区活跃,经过一定时间生产验证的框架。 |
2
SuperMild 2019-08-20 22:19:23 +08:00 via iPhone 13
自己做的轮子漏洞更多,如果自己做的轮子更高质量,有这能力完全可以直接审查和改进开源代码,反哺社区,也比自己做轮子省力。
|
3
icy37785 2019-08-20 22:42:21 +08:00 1
为什么会觉得自己造轮子比开源框架漏洞少。
|
4
tomczhen 2019-08-20 23:38:00 +08:00 2
是否开源并非是否安全的充要条件,工程代码的可靠性是需要各种“成本”覆盖来保障的,其中有一条就是快速响应修复。
当然,有些人觉得只要没暴露出来安全问题就没有安全问题,我只能说,看看牙膏厂这两年的 CPU 安全漏洞,是不是要打算从 CPU 开始造轮子? |
5
whoami9894 2019-08-20 23:38:21 +08:00 via Android
临时造轮子漏洞更多+1,比如某些 PHP CMS 自己做 SQL 安全过滤,不去用现成的 ORM 或参数化查询
|
6
chinvo 2019-08-20 23:41:32 +08:00 via iPhone 1
安全领域切忌闭门造车
|
7
agdhole 2019-08-20 23:49:46 +08:00 via Android
用 lts 版本
|
8
lshero 2019-08-20 23:59:33 +08:00 via Android 1
先把安全部署做好,框架暴露的特征消除再说
免得被人一扫描就知道你用的是有漏洞的框架 |
9
coloz 2019-08-21 01:09:40 +08:00
和开源有毛关系,闭源的就不会有 bug ?
通常不是觉得开源的 bug 修复更快么? |
10
areless OP @icy37785 @coloz @chinvo 因为我发现,现在的快速入侵一般从开源的已知的漏洞,通过摸热门开源框架的版本号下手。几乎没人能快速对闭源自造轮子下手,哪怕你写的再糟糕,人家也没那个耐心去渗透了。
@whoami9894 实际情况恰恰相反吧……看不懂规则的简单 SQL 安全过滤远远比开源的 ORM 更安全。虽然漏洞更多,却不容易被入侵。 |
11
zjsxwc 2019-08-21 06:33:50 +08:00 via Android
闭源比开源更安全?
Windows 比 Linux 病毒更少? 作为用户更信任闭源软件会比开源软件不作恶? 闭源软件会更小几率比开源软件携带官方编写的恶意代码? |
12
zjsxwc 2019-08-21 06:37:27 +08:00 via Android
@zjsxwc #11 原文:“闭源比开源更安全? Windows 比 Linux 病毒更少?作为用户更信任闭源软件会比开源软件不作恶?闭源软件会更小几率比开源软件携带官方编写的恶意代码?”
回复: 试问如果一个闭源软件员工,他在入职后就获得了该闭源软件源码,并发现了漏洞(甚至就是故意恶意写了一个无法发现的漏洞),然后通过漏洞不断获利,你还会觉得闭源比开源更加安全? |
13
zeroDev 2019-08-21 07:10:07 +08:00 via Android
感觉楼主可能需要多了解一下开源社区的运行模式
|
14
msg7086 2019-08-21 07:20:05 +08:00 via Android
就拿 rails 框架来说。这框架本来就是某个互联网公司的系统里分离出来的。每一个漏洞都是他自己公司产品的漏洞,每个自己产品中的问题被修复,也会同样应用到开源框架中。
现代的有名的轮子都有很多大公司在用,发现的漏洞都会很快修复。至于你用了别人的轮子又不升级,这怪谁。 而且现在像是 GitHub 都支持扫描开源组件列表并自动提示你新发现的漏洞,这还能成为不用轮子的借口吗。 |
15
martinsu 2019-08-21 07:26:39 +08:00 via iPhone 4
大家好像没明白楼主的意思。
拿网站开源框架来说。因为使用的开发多,而源代码全部暴露,黑客更容易找漏洞,找到一个漏洞后还可以攻限一片网站。 个人独立开发虽然也有漏洞,但黑客看不到源代码,相对提高了破解的难度。而黑客破解后也只有收获一个网站,相当于降低了奖励。 虽然开源过程中,社区会纠正错误,但这个纠正是滞后的。好比是黑客还是社区先发现漏洞。 现实情况也正是如此,针对 wordpress 的类似情况的攻击发生不少。 |
16
whoami9894 2019-08-21 07:35:26 +08:00 via Android
@areless
自己的过滤很大可能有遗漏的过滤,并不能因为觉得攻击者不熟悉就认为更安全,CTF 里多的是黑盒注入的极限绕过。 就比如密码学中的常识,不要用算法的保密性来保证密码系统的安全,而应该用那些公开算法并经过检验的密码算法 而且你说的这个"漏洞更多却不容易被入侵"我是没太理解 ORM 一般没爆 CVE 基本就是安全的,毕竟是庞大基数开发者使用的,假如爆出 0day 就只能关注着及时更新了 |
17
wweir 2019-08-21 07:46:23 +08:00 via Android
@martinsu 这个成立的一大前提就是:网站太小,没有竞争力,攻击者无利可图。
这样的话,针对开源框架稍作定制,远比从头撸靠谱 |
18
TangMonk 2019-08-21 07:48:55 +08:00
PHP 只认准 Symfony
|
19
murmur 2019-08-21 08:09:01 +08:00
做好备份,别无他法,如果按照规定一行一行审计代码公司都凉了
|
20
areless OP @whoami9894 但是大部分都是工具使用者,不是专业黑客。打个比方就是使用了枪这种武器的很多,爆破专家不会很多。
@wweir 能对框架进行订制~~~基本都能自己写框架了,那是将现有框架私有分叉的行为了。 |
21
likaka 2019-08-21 08:55:32 +08:00
java 是世界上最好的语言
|
22
way2create 2019-08-21 08:59:38 +08:00
与其考虑这些,不如做好相应安全措施,选择更适合的框架,当然你要造轮子也随意,反正不是我造,我除非有必要,不然不会盲目造轮子
|
23
passerbytiny 2019-08-21 09:05:52 +08:00
买锁容易串钥匙,于是摸索自制了一把锁,殊不知小偷真正的开锁手段是板砖砸。鉴于楼主开启了“装睡”模式,此贴忽略了。
|
24
default7 2019-08-21 09:07:31 +08:00
不用 tp !!!
|
26
no1xsyzy 2019-08-21 09:31:20 +08:00
|
27
qsbaq 2019-08-21 09:55:30 +08:00
我现在在的公司就是自己造轮子。我一来就发现了注入漏洞。。。
个人感觉还是用开源靠谱,及时更新轮子靠谱。比较是集大成的东西。 |
28
liprais 2019-08-21 10:04:40 +08:00 via iPhone
一两年经验写 orm?
你知道 orm 是啥么..... |
29
alphatoad 2019-08-21 10:22:31 +08:00 via iPhone
计算机安全问题绝大部分都是糟糕的配置和没有安全意识造成的
自己造轮子也是复刻已有的协议和算法,还更不安全 |
30
qq565999484 2019-08-21 10:33:47 +08:00
为什么。。很多人都认为自己的半吊子水平写的东西 比人家好几万 star 的开源代码要牛逼?
|
31
ben1024 2019-08-21 10:47:32 +08:00
开源更安全,假装自己的项目没有 BUG,跟闭关锁国没什么区别。
我大清乃泱泱大国 |
32
cmonkey 2019-08-21 10:52:23 +08:00
全部自研,怕是需要先拿出几个亿再说
|
33
Raymon111111 2019-08-21 11:01:46 +08:00
这么讲的
你说的"用自己的东西就算差也没人有耐心去找漏洞"这个肯定是站不住脚的 比如 SQL 注入这种可是框架无关的 |
34
gaigechunfeng 2019-08-21 11:32:49 +08:00
有轮子用还挑安全问题。信不信自己写的脸基本功能都会有问题。
哈哈哈,反正我是不会自己造轮子的。当然主要是水平不够 |
35
2kCS5c0b0ITXE5k2 2019-08-21 11:38:49 +08:00
掩耳盗铃 zzz
|
36
tabris17 2019-08-21 11:39:36 +08:00
人家微软都自己造轮子
|
37
ipwx 2019-08-21 11:40:54 +08:00
无利可图的网站,用开源框架即使有漏洞也没人关心。
有利可图的网站,即使没代码,也会分分钟被人挖出漏洞(甚至是内部人员作案)。 楼主你别乱想了,认清现实吧。 |
38
wukongkong 2019-08-21 11:45:38 +08:00 via iPhone
密码学的发展其实和这个类似,一开始都是私有协议,算法加密,后面无一例外都被攻破了
现在的主流方式都是算法公开,依靠严密的数学运算保证 |
39
james122333 2019-08-21 12:37:21 +08:00
因为框架要考量很多东西 自己写没这个包袱 再加上自己如果有点简洁癖
比较容易可以写出较优雅的代码 其实很多东西都是属于鸡肋类型的 除非讨厌公司 否则写出来多半没问题的 |
40
shuimugan 2019-08-21 13:52:36 +08:00 via Android
如果你懂安全,自己用框架的时候顺便审计下就行了。
如果你不懂安全,自己造一个轮子,挖你的漏洞是很简单的事情 |
41
leafre 2019-08-21 14:14:40 +08:00
你自己造轮子难道 bug 少?
|
42
MrUser 2019-08-21 14:29:39 +08:00
公式:用框架带来的收益 - 用框架带来的损失(风险) > 0 ? 用 : 不用
公司发展:小公司大多不重视安全,怎么赚钱快怎么来,等公司大了就自己开发个框架重构原来的项目。 可以用备份来转移风险。 |
43
charlie21 2019-08-21 17:33:37 +08:00
诶,一开始就不用开源软件不就没有这个问题了?
|
44
qwerthhusn 2019-08-21 17:48:28 +08:00
自己造的轮子可黑客懒得去黑,除非这个系统里面有价值的东西
公共的轮子,黑客黑完之后,骇客开始用肉鸡去撒网捕捞,逮到一个是一个 |
45
cuzfinal 2019-08-21 18:03:28 +08:00
看大厂怎么处理
|
46
areless OP @cuzfinal 哪个大厂没有被脱裤过?何况脱裤了,大厂给的起钱,法务、黑涩会一起干,顶级黑客也顶不住啊。所以大厂的处理方案根本没有参考性。
@wukongkong salt 的原理就是服务端存 KEY 去混淆,然后用 KEY 去解。成本低,安全性高,就跟闭源是一个思路。而真正解决拜占庭将军问题的,成本高的一塌糊涂,就是区块链…… @likaka java 漏洞更多,只是背后有公司在摆平 @liprais 一两年还写不了 orm,都是项目做傻了。where id=3,update 哔哔哔,CRUD boy …… @Raymon111111 SQL 注入是框架有关的,功能强大恰恰并不是框架的精髓,约定成俗才是,就是设计模式及理念。 @qq565999484 @shuimugan 因为熟悉,你知道哪里怎么运行的。几百几千甚至几万 star 的框架,使用者知道每个部分怎么运行的吗? @msg7086 rails 的理念是好的,内部约定成俗。 @passerbytiny 板砖砸也怕联防报警器,早在 02 年就可以对互联网入侵进行报警举证了。 |
47
cabing 2019-08-21 22:02:13 +08:00
开源漏洞少,开源有漏洞也你也可以修复,回报给社区啊~~
|
48
ready 2019-08-21 22:08:31 +08:00
楼上都带歪了;
楼主是问如何妥善处理; 结果回答的都是该自己造还是用开源。 |
49
expy 2019-08-21 22:13:36 +08:00
楼主意思是自己造可以避免脚本小子批量自动扫描攻击?
大点的开源软件一般有功能性更新的大版本和安全性更新的小版本,选择长期支持版本够撑几年了,安全性更新一般不会打破兼容性。 旧项目如果要多年完全不动,用什么也没办法保证安全吧。 |
50
w9ay 2019-08-21 22:20:56 +08:00
首先一条定理,没有安全的系统。然后就看黑客攻击的成本以及是否值得攻击了。对于小网站来说,自己写未尝不是选择,间接提高了黑客攻击的成本而已。当然解决方案可以是试试各大安全公司的防护产品,哈哈
|
51
shuimugan 2019-08-21 22:45:24 +08:00
你提到的"因为熟悉,你知道那里怎么运行的"和安全问题其实没有很大的关联,安全问题主要是和人员的安全能力以及安全意识有很大的关系.
我就用回 PHP 举例,"根据用户输入的 url 发起请求"这个需求,不用轮子,只用内置 curl 函数,你可能觉得几行代码写出来的,然后呢? 对于这个 url 的检测,问题可多了. 先从协议开始,如果没校验协议,dict 协议可以用来探测内网无密码 redis,而 gopher 则可以构造出 FastCGI 协议,攻击 PHP-FPM,使其执行任意代码. 当 url 的域名指向内网的时候,则可以探测内网无保护的 http 服务,比如探测 Elasticsearch. 当你尝试先校验一下域名是否指向内网的时候,DNS-rebinding 了解一下? 在你没有安全技能和安全意识的情况下,就算你对自己的代码很熟悉,你也完全不知道漏洞在哪里.而当你有安全技能和安全意识的时候,你在开发对应功能的代码时,你就会自然而然地做很多防御手法,以及 review 你依赖的轮子它的内部实现. 最后,OpenRASP 的实现方式可以了解一下,通过和 runtime 结合的形式,对于函数的入参做检测,可以在 runtime 层做防御 |
52
no1xsyzy 2019-08-22 09:20:36 +08:00
@areless SQL 注入是框架有关还行?请先自己写一个 PHP 拼接 SQL 字符串的页面,然后直接把地址给进 sqlmap,看看没框架注入存在不? SQL 语法有改变不?
/*!union*/ 绕过 WAF 试试?如果你不进行 AST 等级操作靠字符串拼接不可能存在没有漏洞的情况。 salt 和 闭源 和 拜占庭将军问题 三个完全根本没有关系的东西也能扯一起说? 你闭源的信息量能超过 salt 这个密码学安全随机数的? 你闭源但对所有人用同一个程序…… 你知道 salt 必须对每个账户重新生成吗?不重新生成知道了 salt 值又可以做彩虹表了。 拜占庭将军 这种容错性问题(信息一致性问题)还能和渗透安全性混为一谈? |
53
areless OP |
54
no1xsyzy 2019-08-23 09:52:31 +08:00
@areless https://jwt.io/ 这里哪里有 salt ?
你以为用 int 传参就没事了? string->int 都存在过任意代码执行漏洞。 DNS 约定用 UDP 请求 TCP 同步,现在不还是随意污染? HTTP 约定 cache-control 不还是一大堆瞎缓存的 ISP ?约定 DNT:1 结果不还是一堆无视 DNT 头进行跟踪的? 不要和任何无法保证永远的利益一致者进行约定。你要约定不如直接约定:黑客不要来黑我的网站。 |