2021年上半年網(wǎng)信辦、工信部等部門總共發(fā)布了近10批次關(guān)于侵害用戶權(quán)益App名單的通報。App合法合規(guī)收集個人信息成為了前提條件,但是,隨著低代碼概念的興起,App的研發(fā)越來越趨向于結(jié)構(gòu)化、模塊化、低耦合化?,F(xiàn)在App的研發(fā)工作更像是搭積木,使用現(xiàn)成的SDK、開源框架、開源代碼,像搭積木一樣搭出一個App。不難看出,App中的很多代碼并不是自己研發(fā)的了,而是由無數(shù)第三方形成單一業(yè)務(wù)功能模塊,自己將這些模塊整合起來實現(xiàn)自己的業(yè)務(wù)功能。通過模塊整合方式開發(fā)的App帶來的最大問題就是無法控制各個模塊對個人信息收集的行為。
SDK對App主體來說就是相對獨立的,SDK的接口一旦初始化后,理論上App主體就無法控制它了,SDK能夠通過多線程等技術(shù)方式在后臺持續(xù)運行,從而給App主體帶來很大的合規(guī)性風(fēng)險。App開發(fā)者可以通過以下三個方面來提高自己的合規(guī)技術(shù)能力。
1、對開源框架、開源代碼進行代碼審查
代碼審查屬于靜態(tài)檢測技術(shù)的一種,合規(guī)性代碼審查不必使用專業(yè)的代碼審查工具,只需擁有對應(yīng)模塊的完整源代碼,使用普通的文本檢索工具,對所有源代碼進行文本檢索即可。
這項代碼審查工作的關(guān)鍵在于檢索關(guān)鍵詞的豐富性。檢索關(guān)鍵詞包括:getDeviceId、getSimSerialNumber、getMacAddress、getLongitude、getLatitude等與個人信息相關(guān)的API,通過關(guān)鍵詞檢索的方式檢測出開源框架、開源源代碼中是否可能存在獲取個人信息的代碼。如果檢測到源代碼中包含這些關(guān)鍵詞信息,還需要對包含代碼進行業(yè)務(wù)流程的梳理,查看這段代碼是否被真正運行,而非不運行的測試代碼、臨時代碼或冗余代碼,最后再根據(jù)實際的業(yè)務(wù)場景確定這個個人信息的收集是否為違法違規(guī)行為。
通過靜態(tài)代碼合規(guī)性審查的方式,在App開發(fā)過程中集成開源框架、開源代碼之前,判斷出待集成的開源框架、開源代碼是否存在合規(guī)性風(fēng)險,從而達到,讓App合規(guī)的目的。
2、對SDK進行黑盒安全性行為檢測
上面一種方法是能夠?qū)τ性创a的模塊進行審查,對于沒有源代碼的模塊,比如SDK,代碼審查技術(shù)就難以施展了。
SDK一般來說是已封裝完成的開發(fā)工具包,它能通過API的形式給App主體提供相應(yīng)的功能(比如導(dǎo)航等)。SDK能夠給App研發(fā)工作帶來很大的便利性,以Android為例,現(xiàn)在比較成熟和知名的SDK包括推送、導(dǎo)航、數(shù)據(jù)統(tǒng)計分析等。
SDK是沒有源代碼的,所以無法采用代碼審查的方式進行合規(guī)性審查。目前最好的合規(guī)性審查的方式是將SDK打包為App,通過動態(tài)行為檢測的技術(shù)對已完成打包的App進行檢測,間接達到SDK檢測的目的。這個App的殼需要完成對SDK所有API的調(diào)用,通過遍歷所有的API觸發(fā)SDK中所有的行為,讓動態(tài)行為檢測系統(tǒng)能夠最大化的發(fā)現(xiàn)SDK的行為并記錄下來,為進行合規(guī)性判定提供技術(shù)支撐。
通過動態(tài)行為檢測技術(shù)完成對SDK的檢測,研判出SDK的合規(guī)安全性,App在集成SDK功能的時候進行判定,不要集成有風(fēng)險的SDK,讓App自身的合規(guī)性問題得到提升。
3、采用動態(tài)行為攔截技術(shù)
動態(tài)行為攔截技術(shù)是目前已知的最能夠解決App合規(guī)性問題的一種技術(shù)。它能實現(xiàn),運行時對App中未知權(quán)限使用的攔截和App中未知個人信息收集行為的攔截,攔截率為100%。前兩項技術(shù)主要是通過技術(shù)審查的方式,完成App收集個人信息的合規(guī)性提升,此項技術(shù)的最大特點是通過攔截的方式完成合規(guī)性能力提升。
應(yīng)用了動態(tài)行為攔截技術(shù)以后,對開源模塊和SDK的集成之前,無須進行繁瑣的代碼審查和檢測,通過在觸發(fā)業(yè)務(wù)場景之前進行動態(tài)的策略配置,實現(xiàn)在業(yè)務(wù)場景過程中收集個人信息行為的可控。比如:購物下單業(yè)務(wù)場景中,按照最小必要的原則,只需要收集手機號、收貨人姓名、收貨地址,從技術(shù)層面,為了方便用戶輸入地址信息,可以采用獲取GPS信息來幫助用戶填寫地址,此場景就需要用到1次GPS定位功能。我們可以在購物下單業(yè)務(wù)場景進入時,采用配置策略的方式,實現(xiàn)業(yè)務(wù)場景只能獲取1次GPS信息,這個業(yè)務(wù)場景下,無論是SDK還是其他代碼,均不能實現(xiàn)對其他個人信息的獲?。ㄈ鏘MEI等),從而實現(xiàn)了單一業(yè)務(wù)場景只獲取對應(yīng)的最小個人信息的目的,達到對個人信息合法合規(guī)的收集。
最后,App合規(guī)技術(shù)能力主要體現(xiàn)為,集成之前的事前審查和運行時刻的動態(tài)行為攔截。事前審查除了技術(shù)需要完善以外,還需要配合管理制度才能很好地發(fā)揮審查的作用。運行時刻的動態(tài)行為攔截技術(shù),更能夠從業(yè)務(wù)場景的角度來規(guī)劃個人信息的收集,更有效和可控的掌握個人信息收集的時機、頻率,能夠讓App合理合法的收集個人信息。