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