軟體公司都是如何防止源碼泄露的?

簽訂保密協議,發保密金是一方面,但還是不能夠杜絕此現象。


主要有以下措施:

1 代碼與互聯網物理隔離,禁止使用USB存儲、光碟等設備

2 只能在單位coding,回家禁止從事工作

3 對設計師進行定密,簽訂保密協議,定期開展保密檢查

4 編碼自帶混淆

5 做好產品庫出庫管理,對代碼進行加密壓縮,存儲介質和解密密碼由不同人管理,使用結束後回收存儲介質,並進行集中銷毀

6單位門口武警把門,對從單位向外攜帶設備進行檢查

7 由國家安全部門追究泄密人員刑事責任


基本上靠自覺,畢竟開發人員如果不接觸代碼那還開發個啥。既然接觸到了代碼,泄密不泄密就是自己選擇的事情了,遠程伺服器代碼不能FTP下來我就複製粘貼回來,不讓複製粘貼我就截圖下來,不讓截圖我就拍照,不讓拍照我就手抄,根本不可能杜絕。

有的公司會用一些保密軟體,基本上就是說開闢一個保密盤空間作為所有開發人員的地盤,可以拷出去,這個空間裡面所有數據的流出都會被加密,你再拷回來又給解密了。

哦對了,我們公司比這種燒錢的公司聰明多了,直接用IBM全套系統,開發測試機所有文件傳輸共享服務關閉只留telnet,無外網,軟體下載不能,只有自帶的vi,連vim都沒有,遠程登錄過去撐死你一次就看到30行,整個機器上百兆源代碼都是碼農們一個字一個字打上去的,機器上滿地都是大家寫的各式各樣開發shell腳本...同事外派出去幹活看到別的碼農用花花綠綠大屏幕分屏IDE神馬的敲代碼就嘩嘩淌哈喇子。

俺公司如果真的泄漏了,要在碩大的顯示屏上的一個小黑框中複製千百萬行代碼的源碼竊賊絕對是史上最敬業特工了。


查出泄露法庭見,就這樣。

Windows 源碼實際上放在公網上,http://visualstudio.com 里,你在家裡都可以看,但是只要查出來給別人看到了,直接告不含糊。


大多數軟體公司是依靠程序員的自尊心…泄露出去了實在特么丟人啊


我司的代碼,所有能接觸到的人都一致認為,泄漏出去也沒關係,自帶混淆不說,搞懂的effort遠大於再造一套新的代碼的effort


就我司而言,表面上看靠的是保密合同的威懾力和員工的自覺性,本質是靠代碼技術的陳舊和業務邏輯的紊亂不堪,開發人員自己寧願重寫一個功能都不想花大量時間看原來的垃圾。


寫得爛就行,寫得爛泄漏出去別人也沒辦法用/嘿


區分不同行業,比如Web和網遊區別就很大。

之前工作過幾家公司,對於Web類創業公司,大家基本都不在乎。有工程師離職直接帶走源碼也無所謂。畢竟在這些領域,就幾乎沒什麼演算法和技術門檻,大家值得拼的是執行力。

至於網遊等領域,因為代碼更新不便。同時私服的出現就相當於軟體被盜版了。所以是非常注重代碼安全性的。實際的解決辦法就是所有辦公電腦都不接入網路。將電腦主機鎖在鐵箱子里,鍵盤滑鼠都用PS2介面的。如果要上網查資料,則辦公室里有幾台只接入外網的機器,供使用。任何需要內外網拷貝數據的行為,只能找IT去打開鐵箱子用U盤解決,甚至IT會為此刻錄光碟來傳遞數據。

這樣內外網完全隔離,所有人都無法接觸電腦主機的任何介面,可以在一定程度上防止代碼泄露。雖然說用屏幕拍照之類的還能帶出點代碼,但是考慮到搭建開發環境、特定的閉源依賴庫等問題,想把整個系統帶走已經近乎不可能了。


很多爛代碼、多少年的老代碼拿過來也沒用的,文檔寫的shi一樣,各種難用,只有負責的那幾個人能整明白。與其盜過來整明白(踩坑),還不如重新開發來的省力。


第一類是知名度太高而且複雜度很高的軟體,你搞到源代碼也不可能由此賺錢。比如 Windows 源代碼,最近版雖然沒有,但是 XP 版的源碼肯定有比較完整的流出。但是誰也不可能由此賺錢。

第二類是專業軟體,客戶需要長期的改進和技術支持。即使源碼流出也沒什麼用處。


我做過有客戶案例,採用桌面虛擬化將用戶數據集中管控到數據中心,終端無數據也就無從泄密了!


1.網路白名單

2.u盤接入警告

3.只使用正版軟體(防止盜版後門,企業買單

4.域控管理

5.企業npm,maven鏡像

6.禁用admin賬戶,系統支持部門也不完全需要

7.安全教育

8.匹配的薪金

9.購買安全軟體服務

10.強制休假(帶薪

11.法務部

12.入職背景調查

排名不分先後,只針對成熟的大企業,網路白名單針對特殊行業,如銀行金融等。

一句話,該花的錢千萬別想著省。


根本沒那麼玄乎,你說西雅圖那麼多雙碼農家庭,兩口子一個微軟的一個亞馬遜的。回家兩台電腦vpn一開,什麼代碼看不到?完全就是互相透明的,但兩大巨頭還不是相安無事嗎?

說到底讓你看到了又怎樣?正常情況下代碼本身不是什麼資源,代碼運行的目的才是資源。這些東西你偷不走的,偷走了也不一定能用。

國內惡性競爭太嚴重,所以才要防賊一樣防著吧?


開源


我所知道的措施有:

1.用配置管理工具設許可權,每個人只能接觸到自己負責那一部分的代碼,要動了偷的心思也只能偷這一點代碼。

2.研發區域網與互聯網物理隔離,研發用電腦一律封死USB口。我去拜訪過的一家企業更誇張,他們的電腦主機都鎖在鐵箱子里。當然更靠譜的方式是採用桌面雲的方式,大家連電腦主機都沒有了,拷貝文件基本不可能。

3.用加密工具對代碼加密,偷出去代碼了沒有加密工具配合也看不了。

有人說代碼寫得爛就不怕偷,這純粹是是搞笑的說法。

首先不管代碼爛不爛,如果客戶知道乙方代碼泄露了就會擔心自身信息安全,進而會不信任乙方。

另外同行競爭對手如果拿到了泄露的代碼,代碼寫得越爛競爭對手越高興,因為可以在招標商那裡添油加醋說壞話了,


我覺得代碼保密的意義不大,只要做個軟著就可以了,如果你的代碼被人家拿走去也不敢明目張胆的用,只能改改弄一個新的程序,那他的編程技術也差不多能自己寫一個了,個人認為要拼的不是軟體會不會被破解,而是拼的研發思路和用戶體驗!


如何把代碼搞亂

====================

6個變態的C語言Hello World程序

記得以前PB開發時有個工具是負責把代碼搞亂但不影響執行的, 只是把代碼定義搞得很難懂另外加些沒用的代碼夾在中間就大功告成了!


大多數公司其實用不著,就像我在這家跳槽之後去下家做差不多的東西的時候寫出來的代碼也基本一樣。因為。。特么都是我寫的,差別再大又能大到哪去?

至於不是自己負責的模塊?我又看不懂來著,就算拷貝一份對我幫助也不大。有些還是半吊子代碼,讀了只會影響自己的思路,還不如自己去網上找找呢。

話說我們寫的代碼也本來就一大半都是去網上複製粘貼的。


做WEB的根本不考慮泄漏問題

想看就看嘛,反正源碼都在那放著


現在很多公司的系統都是超級複雜,各種系統調用,各種通訊協議,各種初始化數據,不了解整個系統的話,想編譯出來一個能跑的起來的系統都是很困難的

另外,大部分的系統和軟體拿出來也沒什麼用,根本賣不到錢

即使想學習競爭對手的一些東西,更好的方式還是分析是產品本身,而不是代碼

Github、sourceforge、apache、linux上各種牛逼到飛起的源代碼,能熟悉與自己工作相關的3-5個著名來源項目的源代碼,已經是碼農中的戰鬥機了


推薦閱讀:

99年保密協議什麼事件,外星入侵的別瞎扯?
一份完善的保密協議需要哪些條款與程序?
競業禁止協議和保密協議有什麼不同?
如何看待一加5T提前曝光開箱視頻?

TAG:企業信息化管理 | 源碼泄露 | 保密協議 |