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