V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
• 请不要在回答技术问题时复制粘贴 AI 生成的内容
v2girl
V2EX  ›  程序员

大家公司里都有什么样的措施来防止代码泄漏?

  •  
  •   v2girl · 2017-03-01 08:33:19 +08:00 · 15653 次点击
    这是一个创建于 2859 天前的主题,其中的信息可能已经有所发展或是发生改变。
    我想知道目前防代码泄漏的措施都到什么地步了。
    93 条回复    2017-03-18 08:57:02 +08:00
    lusyoe
        1
    lusyoe  
       2017-03-01 08:46:30 +08:00 via iPhone
    一大堆手段,比如什么不接外网,不给 USB 接口,远程登陆服务器虚拟机开发,代码后缀名文件如·java 创建的时候直接加密,即使上传了也是乱码。这些都经历过。求补充…
    paulagent
        2
    paulagent  
       2017-03-01 08:51:34 +08:00   ❤️ 1
    大公司指的是 google FB 这类还是老牌 ms , ibm , hp 之类,或者混合型如 apple 。 起码我看到的新闻, google 并没什么特别措施,他们家 20 亿行代码存在一个 repo 里。工程师都能访问,只有极少数代码是需要高级别人员才能访问。 你想偷先得花时间研究明白代码到底在哪里。 另外投了这种代码又有什么用? map reduce 这个代码你拿到 google 原版和 hadoop 来跑有什么区别?如果有兴趣可以看看 acm 的文章,讲 google 家代码的

    至于 ibm 和 hp 这类有硬件类的,防止泄密的都差不多,物理隔绝,不让带移动存储等等。发现有人泄密,花巨额律师费也要把这人送进监狱,以儆效尤。 总之就是胡萝卜加大棒。
    apple 家不懂

    http://cacm.acm.org/magazines/2016/7/204032-why-google-stores-billions-of-lines-of-code-in-a-single-repository/fulltext
    sagaxu
        3
    sagaxu  
       2017-03-01 08:51:37 +08:00
    没保护,笔记本都可以带回家
    paulagent
        4
    paulagent  
       2017-03-01 08:52:28 +08:00
    看错了,请忽略我的回复
    hnbcinfo
        5
    hnbcinfo  
       2017-03-01 08:53:05 +08:00   ❤️ 1
    让大家把代码写的奇烂无比,泄露了也看不懂。
    janxin
        6
    janxin  
       2017-03-01 09:00:21 +08:00 via iPhone
    除了部分核心安全代码,其他所有代码公司内均可查阅 review
    stormpeach
        7
    stormpeach  
       2017-03-01 09:05:39 +08:00
    保密协议,底层代码对应用层只提供接口
    mringg
        8
    mringg  
       2017-03-01 09:06:24 +08:00 via iPhone   ❤️ 3
    说的就像那么多垃圾代码有人用似的
    v2girl
        9
    v2girl  
    OP
       2017-03-01 09:07:12 +08:00
    @lusyoe 不接外网如果要 yum install 怎么解决?
    acvrock
        10
    acvrock  
       2017-03-01 09:09:05 +08:00
    没什么特别的保护,只有一些关键账号证书不公开,只有少数人知道
    nicevar
        11
    nicevar  
       2017-03-01 09:09:08 +08:00
    核心部分代码能看到的就那几个人,其他的人都没有权限,只有接口可用
    Citrus
        12
    Citrus  
       2017-03-01 09:11:05 +08:00 via iPhone
    各种蛋疼措施。唉。。。
    keinx
        13
    keinx  
       2017-03-01 09:12:18 +08:00
    泄露了又能怎么样,不是你拿到人家代码就能颠覆人家的,所以没啥用
    yuyongji1987
        14
    yuyongji1987  
       2017-03-01 09:12:35 +08:00
    随便拿,弄明白那些垃圾代码是干啥的,算你厉害
    yohole
        15
    yohole  
       2017-03-01 09:14:22 +08:00
    规则都是防君子,防不了小人
    changwei
        16
    changwei  
       2017-03-01 09:18:04 +08:00 via Android
    @v2girl yun install 以及其他的依赖管理工具可以做内网镜像,速度也比国内直连快。
    v2girl
        17
    v2girl  
    OP
       2017-03-01 09:26:28 +08:00
    @changwei ,不接外网和杜绝 USB 是根本办法,但有时候难免要查网上的资料,如何解决?另外蓝牙有些人要用鼠标,不禁用也可以通过蓝牙传。
    lusyoe
        18
    lusyoe  
       2017-03-01 09:29:03 +08:00 via iPhone
    @v2girl 你是说服务器安装软件是吧?一样不能 yum 不过可以插 USB ,自己下 RPM 包或者源码编译解决
    v2girl
        19
    v2girl  
    OP
       2017-03-01 09:31:15 +08:00
    @lusyoe ,我说的是员工自己在个人电脑上安装软件,毕竟每个人要用的工具偏好不同。如何让员工拿到自己想要的工具但又把外网给断掉,这是矛盾的。
    xbotter
        20
    xbotter  
       2017-03-01 09:31:16 +08:00
    多分几个代码仓库而已。
    j4fun
        21
    j4fun  
       2017-03-01 09:32:50 +08:00
    垃圾代码谁用谁知道。。。工作做的是经验,不是那点垃圾代码。。现在随便一个弄的好的开源程序都比公司的代码好一百万倍。
    viator42
        22
    viator42  
       2017-03-01 09:33:11 +08:00
    @v2girl 可以在内网自己创建源
    ivvei
        23
    ivvei  
       2017-03-01 09:35:58 +08:00
    @v2girl 多几台电脑就行了。一台连外网查资料,一台只能内网开发。工具?你要什么工具?
    paulagent
        24
    paulagent  
       2017-03-01 09:36:08 +08:00
    @v2girl 我知道的是搞一台机器能上网,谁需要上网就去那个屋子里单独上网,查完资料再回到自己的机器
    LINAICAI
        25
    LINAICAI  
       2017-03-01 09:36:37 +08:00
    除了 git 、 svn 的账户、权限,都不设限,得靠职业道德,另外没有服务端,拿了没用啊。
    rocksolid
        26
    rocksolid  
       2017-03-01 09:44:52 +08:00
    @v2girl 一般都是禁掉邮箱,网盘
    tonghuashuai
        27
    tonghuashuai  
       2017-03-01 09:49:17 +08:00
    没保护,甚至上家公司的代码完全开源在 github (除核心业务)
    recall704
        28
    recall704  
       2017-03-01 09:50:53 +08:00   ❤️ 1
    大家都那么忙,谁有时间看你的烂代码。 逃
    depress
        29
    depress  
       2017-03-01 09:51:44 +08:00
    云开发平台,除了照相,无解╮(╯▽╰)╭
    forestyuan
        30
    forestyuan  
       2017-03-01 10:01:51 +08:00
    技术上控制是一方面,还要来点法律措施,比如签个保密协议之类的
    anheiyouxia
        31
    anheiyouxia  
       2017-03-01 10:20:47 +08:00 via Android
    全公司 Windows ,域管理。
    不能用 U 盘,不能直接上网,必须要 3389 到 4 台服务器上才能上网,这 4 台服务器每个星期随机分配。上传下载都必须通过 NAS 中转,而 NAS 上有扫描程序,每分钟扫描备份,发现特定后缀都会报警(发邮件通知部门主管、老板[香港人]、运维、安全部门主任),运维每个星期都会复查这类文件。

    安装或者使用任何软件必须写一个备案表,每个星期检查电脑上面装了什么用了什么。以前还不允许使用盗版软件、破解版、绿色版、各种修改版,现在买不起太多,就不理了。

    电脑断网监控、想通过接自己的路由的话,断网就被发现了(因为太多人有事没事重启电脑,现在这条没用了)。

    到处都是摄像头,不能带电脑、笔记本等东西进出公司,
    如果京东买的那些到公司的,必须要到前台写放行条(●°u°●)​ 」,还要说明为什么
    darrenfang
        32
    darrenfang  
       2017-03-01 10:28:19 +08:00 via iPhone
    今天刚有同事离职,我还没告诉他不要把代码泄漏了,后来想想这些代码写得很烂,无所谓了,有空闲时间我整理下传 GitHub😅
    itqls
        33
    itqls  
       2017-03-01 10:36:29 +08:00
    我们小公司没怎么管。。。
    现在我想想,这代码我拿出去也没什么卵用,太小众了。
    laiyingdong
        34
    laiyingdong  
       2017-03-01 10:42:02 +08:00
    理论上来说只要你能接触到代码就没有办法完全阻止泄露的可能性,但提高相关操作的成本还是可行的 要不你把代码背下来?
    hfl1995
        35
    hfl1995  
       2017-03-01 10:54:06 +08:00
    so
    hekunhotmail
        36
    hekunhotmail  
       2017-03-01 10:56:09 +08:00
    代码不值钱, 还有你入职签的保密协议你以为没啥约束效果吗?
    zuotech
        37
    zuotech  
       2017-03-01 10:56:59 +08:00
    开发人员远程虚拟机开发, 虚拟机的的东西只能进不能出, 要出必须通过高层审核通过,全员机器加密, 所有拷出的东西加密
    irenicus
        38
    irenicus  
       2017-03-01 11:16:45 +08:00
    物理隔离,不只是因为代码要保密 :-)
    半导体行业软件的 license 比较贵,所以绝大部分公司都用的盗版,如果被 EDA 软件公司的人发现了要给钱,哈哈

    据说海思之类的大公司也是买几个正版 license ,然后自己搞一大堆盗版的 license 用,有问题了还能找技术支持
    supermaxisme
        39
    supermaxisme  
       2017-03-01 11:19:47 +08:00
    @irenicus AD 么哈哈哈~~
    我们的硬件图纸什么的都在内网, PCBdoc 可以拷出来给厂家制作。
    剩下的基本上都是各种报告和验证之类的。。。现在都在自己的电脑里。
    虽然第一页上都有版权声明吧。。。。。
    HmyBmny
        40
    HmyBmny  
       2017-03-01 11:21:36 +08:00 via Android
    @v2girl 建个源就行了
    HmyBmny
        41
    HmyBmny  
       2017-03-01 11:23:38 +08:00 via Android   ❤️ 1
    @v2girl 用手机浏览看到就直接点回复了,楼上的同学已经回答了
    curiosity1901
        42
    curiosity1901  
       2017-03-01 11:23:56 +08:00
    把代码写的要多烂有多烂,一般人都望而却步,以此达到放泄露的目的。
    zkd8907
        43
    zkd8907  
       2017-03-01 11:27:45 +08:00
    给的钱够多+劳动合同
    jarnanchen
        44
    jarnanchen  
       2017-03-01 11:55:50 +08:00
    以前公司,外企,靠法律。泄露机密的人会被告到底。
    treedon
        45
    treedon  
       2017-03-01 11:56:50 +08:00
    只有一款软件 EIS 终端
    代码不能复制到 QQ 聊天框里
    anthow
        46
    anthow  
       2017-03-01 11:57:23 +08:00
    云内开发,只能进不能出,代码垃圾得成狗屎,谁有病才要这代码,不行了,我先吐一会
    TuxcraFt
        47
    TuxcraFt  
       2017-03-01 12:16:47 +08:00
    除了核心代码 其他代码 各种限制 我觉得是老板或者管理有心理疾病……
    这些垃圾代码谁会看?
    hasbug
        48
    hasbug  
       2017-03-01 12:54:03 +08:00
    目前没保护(但他们应该想保护),我用自己的笔记本。
    公司电脑配置不给力,怪我咯。
    chairuosen
        49
    chairuosen  
       2017-03-01 13:02:25 +08:00
    严格来讲,回答了这问题,也算泄密吧
    dalynama22123
        50
    dalynama22123  
       2017-03-01 13:10:27 +08:00
    垃圾代码,除了安全相关的,几乎没有价值
    vttc
        51
    vttc  
       2017-03-01 13:16:57 +08:00
    没办法 , 不怕贼偷,就怕贼惦记
    Juwan
        52
    Juwan  
       2017-03-01 13:42:27 +08:00
    @darrenfang 你必须得整理下才能上传到 github 上呀,这个可是你的 github 门面呀
    diffworld
        53
    diffworld  
       2017-03-01 13:47:41 +08:00
    @v2girl 只能下载不能上传
    wupher
        54
    wupher  
       2017-03-01 14:41:00 +08:00
    不防止,其实真心没意义。

    在上上家公司时,还说服同事,直接把项目代码打包送给兄弟部门(他们也做类似业务)。结果呢?谁愿意看啊,还指望大家一起完善成一个标准项目框架呢。

    可重用性高的系统级代码(不牵涉具体商业业务与安全),尽量考虑开源,没准还能碰上爱好者帮助审计和完善。当然,了了无已也是事实。

    据说全 Google 用一个大 Repo ,作为 Google 的雇员你能看所有的公司代码。 So, what. 这样你就自己 copy 个搜索引擎公司,然后打败 Google 么?
    tilv37
        55
    tilv37  
       2017-03-01 14:45:45 +08:00
    @lusyoe 我司与你说的一模一样。。。尤其是后缀名相关文件加密,搞得有时候我 IDE 都打不开代码文件
    dongoo
        56
    dongoo  
       2017-03-01 14:48:02 +08:00 via Android
    @diffworld 貌似这不可能吧,发送下载请求也是上传数据啊?
    kxind
        57
    kxind  
       2017-03-01 14:52:05 +08:00
    代码像坨屎就自然不用泄露了 。。。。 233333
    v2girl
        58
    v2girl  
    OP
       2017-03-01 14:59:02 +08:00
    @zuotech ,如果 100 个员工就开 100 个虚拟机么?
    v2girl
        59
    v2girl  
    OP
       2017-03-01 15:06:19 +08:00
    @anheiyouxia ,既然 3389 到远程桌面,我登陆一个网页邮箱发送文件,你如何能知道?
    scratbai
        60
    scratbai  
       2017-03-01 15:08:40 +08:00
    真不需要保护呢
    meathill
        61
    meathill  
       2017-03-01 15:09:36 +08:00
    这种事情没法一概而论的。

    比如前司,对代码产品化不是很在意,我离职前,领着交接人把代码在新机器上装了好几遍,每次都得好几天才能跑顺。这还是我自己写的代码,我自己去装。这种代码,给大家大家都懒得看。

    但是有些公司,尤其是做金融军工之类的,他们不是怕代码被别人用,而是怕被攻击。所以只能登录到开发机,不能上网不让插 U 盘都是很正常的。
    otakustay
        62
    otakustay  
       2017-03-01 15:20:27 +08:00
    除非核心如加密算法之类的,其它的我们根本不怕代码泄露,拿了你也跑不起来,跑得起来你也没客户
    mysterin
        63
    mysterin  
       2017-03-01 15:33:00 +08:00
    啊,代码需要保密?就我这水平接触的代码基本都是靠网上搜索东拼西凑来的,根本不存在是否泄密,一般来说要保护的是数据
    zuotech
        64
    zuotech  
       2017-03-01 15:34:36 +08:00
    @v2girl 有个虚拟机平台, 要开多少台都没问题的
    Phariel
        65
    Phariel  
       2017-03-01 15:43:27 +08:00 via Android
    无保护,靠保密条款
    cnZary
        66
    cnZary  
       2017-03-01 15:59:11 +08:00
    @v2girl MultiPoint 可以让多个用户远程到同一个机器,在不同用户里面
    darrenfang
        67
    darrenfang  
       2017-03-01 16:21:01 +08:00
    @Juwan 用 Hibernate 实现的 Repository, 后来写 C#, 用 NHibernate 也实现了一下, 因为 C# 语言的优势, NHibernate 使用起来更方便
    huson
        68
    huson  
       2017-03-01 16:23:46 +08:00
    其实代码不重要 数据才是重要的
    zpvip
        69
    zpvip  
       2017-03-01 16:28:30 +08:00
    保密协议。

    公司三十年源码随便访问。每个工作位都有百兆光纤网络,全靠法律意识。
    cheng12308
        70
    cheng12308  
       2017-03-01 17:13:12 +08:00
    一般代码确实没卵用,有代码你能跑起来?跑起来你就干倒老东家了?数据库里面那东西拷出来才牛逼,光卖信息也能发一笔横财,只不过危险系数也高。
    cheng12308
        71
    cheng12308  
       2017-03-01 17:14:06 +08:00
    还有那些什么破公共库,轮子啥的,开源的比那垃圾代码好好多倍。
    XDA
        72
    XDA  
       2017-03-01 17:24:50 +08:00 via iPhone
    看了上面的回复就放心了,原来不止一家的代码写的跟屎一样,哈哈
    anheiyouxia
        73
    anheiyouxia  
       2017-03-01 17:34:57 +08:00 via Android
    @v2girl 你在远程只能发你远程上面的东西
    公司内网的资源你是没办法偷出去的,因为公司内网跟外面联通的唯一方式就是那个 nas ,你必须把文件复制到上面去才能在远程上面找到这个文件。而 nas 上面你只有写权限,没有删除权限,并且后台有系统扫描你的目录,只要发现你上传了东西到 nas ,就会报警。
    不过原来的权限系统有漏洞,导致部分人是可以删除自己上传的文件的,唔使曾经就有两个人不怕死,把两个模型文件复制上去,通过邮件发到外网去,马上被公司发现,然后报警了。
    最后这两个人到公证处去做了公证,保证文件已经删除说以后只要发现有任何人在任何地方出现这个模型文件,将承担经济损失之类的。然后据说老板觉得还不够,又给这两个模型申请了专利。
    c4fun
        74
    c4fun  
       2017-03-01 17:47:35 +08:00
    SPES
    killerv
        75
    killerv  
       2017-03-01 17:53:23 +08:00
    代码没那么重要,数据才重要,基本上你能写出来的别人也能写出来。
    pyufftj
        76
    pyufftj  
       2017-03-01 18:14:18 +08:00
    @hnbcinfo 哈哈,我也是这么想的。大家都这么忙,谁有空看那么烂的代码
    xhwdy26
        77
    xhwdy26  
       2017-03-01 18:16:17 +08:00 via Android
    办公不用物理机,用虚拟桌面办公
    sumuu
        78
    sumuu  
       2017-03-01 18:24:21 +08:00
    哈哈,防止不了的,开发和运维合伙的话,数据库都可以拿走.
    shayuvpn0001
        79
    shayuvpn0001  
       2017-03-01 18:44:55 +08:00
    必须是物理隔离,做 air gap 啊,然后所有的项目文件放到配置管理服务器上,冷备,热备,专线连通的异地容灾各种齐全。干活之前都是先从配置库里面 pull 下来,然后做一点, commit 一点,也方便统计工作量,本地电脑炸了都没关系,所有的资料都在服务器,重新部署也简单,最坏情况下即便丢失也就丢失上一个 commit 到现在的内容(基本不可能)。本地干活儿的电脑随时都可以换,任意机器都可以。所有 U 口,串口全部封掉,交换机做端口管理,必须要装了客户端授权才可以接入网络,未授权的电脑一旦用网线连接, MAC 地址自动记录,然后立刻召唤与该该端口挂钩的责任人,二级泻秘事故处理。
    kokutou
        80
    kokutou  
       2017-03-01 18:49:15 +08:00 via Android
    nda ...
    shakoon
        81
    shakoon  
       2017-03-01 20:14:23 +08:00
    网络物理隔离,禁 USB ,禁无线网卡,除了手机拍屏幕外我也想不到什么其他办法了
    billwang
        82
    billwang  
       2017-03-01 22:18:20 +08:00
    物理隔离,安全审计,关键操作全程录像
    yuxuan
        83
    yuxuan  
       2017-03-01 22:22:26 +08:00
    新鲜的 下午刚刚全员发的消息 说公司代码被人放到 GitHub 了 然后 下午下班后 公司大墙加高了一层 所有即时通讯都上不去了 包括公司办公的 rtx 以及公司的邮件 访问个别存储类网站 会出现提示 说访问的内容涉及存储啥的 按规定不让上
    snnn
        84
    snnn  
       2017-03-01 22:26:20 +08:00
    硅谷一些大公司,在家就能访问所有代码,还不用拨 VPN ,直接公网就可以。
    cwing
        85
    cwing  
       2017-03-02 09:17:31 +08:00
    @yuxuan 不会这么 6 直接都被上传到 github 上了吧
    JeffreyZhuang
        86
    JeffreyZhuang  
       2017-03-02 09:50:01 +08:00
    没卵用,不是 google 给你代码, 你就能再建立一个 google ,公司的价值在于人
    hahiru
        87
    hahiru  
       2017-03-02 10:47:34 +08:00
    我感觉业务代码值得保密的也就是加密算法之类的烧脑代码了吧。。。普通流程代码要来干蛤。莫不是用来找 bug?
    yuxuan
        88
    yuxuan  
       2017-03-02 10:56:42 +08:00
    @cwing 估计是有人传上去了 具体情况没说
    qyz0123321
        89
    qyz0123321  
       2017-03-02 11:07:21 +08:00
    代码就算是泄漏了,没有对应的环境依赖什么的,也未必能运行起来啊。。。
    Jimrussell
        90
    Jimrussell  
       2017-03-03 12:39:20 +08:00
    @shayuvpn0001

    金融量化类相关的么? 还是军厂之类?
    一般行业的业务代码要这么搞,心疼贵司码农的心理健康。
    Jimrussell
        91
    Jimrussell  
       2017-03-03 12:43:21 +08:00
    表演的各位都不报行业、不说业务,我也是服了……

    这帖子里的一些鸡贼手段被外行 manager 看到照葫芦画瓢就问将来你们怕不怕。
    shayuvpn0001
        92
    shayuvpn0001  
       2017-03-05 19:07:59 +08:00
    @Jimrussell 习惯就好了。最要命的是不让上外网,手机没有摄像头,要上网查个什么东西用的老 wap 上网 baidu 的。。。
    cwing
        93
    cwing  
       2017-03-18 08:57:02 +08:00
    @JeffreyZhuang 对的,代码本身就不值几个钱~ 就算给你看你也不定会看辣鸡代码~ 偏底层看不看得懂还是个问题~ UE4 都开源了,你看了又有何用呢~
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2817 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 85ms · UTC 07:12 · PVG 15:12 · LAX 23:12 · JFK 02:12
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.