<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      【領域專家系列】Qunar風控安全產品的探索之路

      李建威。2017年7月以春招暑期實習生的身份加入去哪兒網,畢業后一直在從事抓取與反抓取相關工作,先后負責搭建過智能打碼、設備指紋以及環境檢測等服務。目前主要負責反爬風控的基礎安全產品建設。對各類作弊原理感興趣。文章首發于公眾號《Qunar技術沙龍》

      0x01-前言

      本文主要介紹反爬風控相關基礎安全產品演變過程中的思考。

      文章以總-分的形式講述,主要分為三部分:(1)產品演變;(2)環境檢測;(3)檢測分析。

      希望其中一些思考能夠給大家帶來啟發。

      懂的不多,做的太少。歡迎批評、指正。

      0x02-基礎安全產品

      產品演變

      一、問題

      ? 在19年之前Qunar的反爬蟲、反作弊等場景是業務線各自為戰。作為機票反爬最早期的參與者之一,在負責機票App反爬期間就有一個問題一直在困擾我,我的工作一直在不斷、重復地編寫識別策略,工作量的多少完全取決于爬蟲量的多少,防御完全陷入被動局面。是否有辦法從根本上解決這類重復性勞動問題。

      image-20211106203425261

      二、例子

      舉個例子。下圖中藍色(CRITICAL)代表已識別為疑似用戶。黃色(ATTACK)代表已識別為異常用戶。

      image-20211106200845458

      每一次藍黃交替,就代表一次攻防對抗,就意味著需要進行一次策略的調整。策略例子:

      (1)發現某個參數拼寫錯誤;

      ?(2)發現某個設備信息缺失;

      ?(3)發現某個賬號對應的IP數量過多。

      ?類似的一次策略調整就需要投入0.5-1pd的人力進行代碼編寫、發布和驗證。

      三、思考

      ? 重復性勞動注定會使團隊陷入被動忙碌且無積累的狀態,如何破解這一局面?

      ? 比較幸運的是,我在剛畢業的第一年在負責智能打碼平臺時有研究過幾大安全廠商的三代驗證碼,在此過程中使我具備了一定的逆向技能,讓我在解決這一問題上有些新的想法和思路。

      1、現象看本質

      以上例子舉例:

      我們的問題是發現某個參數拼寫錯誤,現象是拼寫錯誤,但其實我們本質最應該關注的問題是為什么參數會被篡改通過什么方式進行篡改的

      image-20211113164036024

      解決方法:

      (1)方法一:解決現象問題。寫判斷策略識別拼寫錯誤的異常請求。這種解決方案只能夠解決單次問題,下次同類型問題出現還是得通過編寫類似策略來解決。

      (2)方法二:解決本質問題。弄清楚為什么會被篡改,用什么方式進行篡改的。進行針對性的檢測就可以一次性解決類似問題。

      2、提升作弊門檻

      image-20211113164036024

      ? 如同社會金字塔結構,作弊人群金字塔也一樣,原理、工具的創造者是少數。如果能夠從作弊工具和作弊原理層面去識別作弊者,就可以提升作弊門檻,從根本上解決重復且被動防御的問題。

      四、解決

      ? 從上述思考的兩點出發,“本質”其實就是將問題特征梳理出來,“作弊門檻”的提升方式就是找到問題背后的原理。

      以反爬場景為例

      ? 我大概將爬蟲特征分為四類。

      1、問題特征分類一

      (1)具有一定規模的數據才有價值;

      (2)抓取設備出于成本考慮,需要控制設備數量。

      結合以上特征點,我們需要解決的問題是:如何標記真實的設備。

      2、問題特征分類二

      (1)防護代碼會被分析;

      (2)安全數據會被篡改。

      結合以上特征點,我們需要解決的問題是:如何保證數據的真實性。

      3、問題特征分類三

      (1)機器自動化抓取;

      (2)攔截數據與模擬請求。

      結合以上特征點,我們需要解決的問題是:如何更高效準確地識別異常設備環境。

      4、問題特征分類四

      (1)容器外模擬請求。

      結合以上特征點,我們需要解決的問題是:如何識別脫離容器請求。

      image-20211106214029593

      最后我們將需要解決的問題去孵化安全產品,通過安全產品的方式識別某一類型作弊者,這樣即使出現了新的“現象”,我們也能通過最“本質”的原理將他們識別出來。

      環境檢測

      因為這中間涉及到的點非常多,篇幅有限,我覺得可以拿比較有意思的安全產品中的環境檢測來詳細聊聊。

      一、是什么

      基于應用當前運行環境,檢測設備是否存在作弊風險。

      二、為什么

      原因有以下兩點:

      (1)作弊機器一定會篡改應用運行環境;

      (2)通過對作弊原理的檢測,能從根本上解決作弊問題,將被動防御轉換為主動防御。

      三、怎么做

      我總結為以下三點:

      (1)作弊原理分析;

      (2)作弊特征提取;

      (3)特征檢測服務化。

      四、作弊原理分析

      我把作弊分析分為兩部分。分別是作弊設備分析作弊方式分析

      image-20211107182332924

      1、作弊設備分析

      ? 通過作弊設備分析應用外部運行環境風險。

      ? 我把作弊設備大致分為三種:真機、模擬器以及云手機。

      image-20211107182930633
      真機-應用多開

      通過修改應用名稱或運行于多開容器中,使得可以在同一臺設備內同時運行多個相同的應用。(常見多開應用有VirtualApp、小米分身等)。

      模擬器

      通過軟件模擬移動設備硬件操作,使得App可以直接運?在PC上。(常見模擬器有騰訊模擬器、夜神模擬器等)

      云手機

      通過ARM服務器以及虛擬化技術,在云端虛擬的原生手機實例。(常見有百度云手機、紅手指云手機等)

      2、作弊方式分析

      ? 作弊方式分析應用內部被篡改的風險。我把作弊方式大致分為兩種:篡改和非篡改。

      image-20211107192630856
      重打包

      ? 重打包是指將應用反編譯后,修改或添加代碼后從新打包,將其安裝至設備上,應用運行時就會被加載。

      HOOK

      ? 當程序在執行某段代碼時,控制其執行惡意代碼。這種篡改就被稱為HOOK。

      自動化工具

      ? 基于Google/蘋果發布的自動化測試框架,進行一些列如點擊、滑動、鍵盤輸入等操作。

      檢測分析

      ? 由于篇幅關系,不能對其中細節過多展開講。我選擇比較有意思的作弊方式中的動態篡改進行詳細分析。

      一、介紹

      ? 無論是Android還是iOS端,不同分層的代碼都有不同的HOOK框架及其對應的原理。

      image-20211107193436925

      二、分析

      ? 框架和原理有很多,框架以Xposed為例,HOOK原理以Inline HOOK為例來進行分析。

      image-20211107193502558

      1、框架檢測-Xposed

      (1)要了解Xposed框架,需要先來學習下什么是Zygote。

      image-20211107193611276

      ? Init是內核啟動的第一個用戶進程,zygote是由init創建的進程。zygote所對應的具體可執行程序是app-process,所對應的源文件是app-main.cpp。所有的app進程都是由zygote進程fork出來的。

      (2)接下來了解一下Xposed的初始化過程

      image-20211107201531854

      (3)Xposed代碼分析

      ? 疑問1:Xposed到底修改了什么?

      image-20211107215258353

      ? 答案1:

      a. Xposed為了在系統啟動時優先加載xposed模塊和hook系統資源。會將原本的ZygoteInit類替換為XposedBridge類。

      image-20211107215258353

      b. 函數執行順序的變化,就會在堆棧中體現出來。

      ? 疑問2:Xposed到底加載了什么?

      image-20211107215258353

      ? 答案2:

      a. 加載核心代碼libxposed_art.so。

      image-20211107215258353

      b. 其核心代碼對應的特征就必定會出現在運行內存中。

      2、原理檢測-INLINE HOOK

      (1)Android Inline Hook框架源碼

      image-20211107215258353

      (2)Inline Hook原理分析

      核心代碼含義

      ? 1)LDR PC, [PC, 4] :將地址為PC + 4的連續4個字節的數據讀入PC寄存器;

      ? 2)[PC, 4] :以PC寄存器為錨點,加上一個偏移量來標識絕對地址。(PC相對尋址);

      ? 3)LDR PC, hook函數地址:將hook函數地址讀入PC寄存器中,實現函數跳轉;

      ? 4)指令偏移量變化原因:三級流水線取值與執行之間相差2條指令,所以偏移量需要調整。

      匯編指令

      image-20211107215258353

      ? ARM架構下CPU三級流水線:CPU運行被拆分為三個步驟分別為取址、轉義、執行,步驟可以近似理解為三個并行線程。取址與執行之間相差2條指令。例如:執行到0x00006004時,pc寄存器取值0x00006012。

      (3)Inline Hook流程

      image-20211107220010415

      了解原理之后,只需要在必經之路埋下檢測點就可以達到對作弊方式進行原理性檢測的目的。

      3、服務化

      ? 通過場景分析問題,根據問題提出解決方案,根據方案孵化出目標安全產品。將孵化出的基礎安全產品提供給上游業務風控使用。由基礎安全產品提供專業能力,能夠降低業務安全參與人員的門檻,上游系統能夠更加聚焦于業務防護本身。

      image-20211114224135730

      0x03-思考

      (1)以攻促防。從業務安全場景出發,從作弊者角度思考問題,從數據、原理發現解決問題。不斷進行攻防對抗,才能使研發人員和系統不斷成長。

      (2)真人化。真人化的演變過程是從協議破解到模擬器,再到真機,目前正在朝真人眾包方向發展。如何定義與識別真實用戶和作弊者是新的難題。

      0x04-結尾

      軟件工程沒有銀彈,逆向工程永遠勝利。

      懂的不多,做的太少。歡迎批評、指正。

      posted @ 2022-03-01 00:21  碼頭工人  閱讀(1267)  評論(2)    收藏  舉報
      主站蜘蛛池模板: 国产精品视频第一第二区| 欧美人与zoxxxx另类| 亚洲欭美日韩颜射在线二| 精品少妇无码一区二区三批| 国产日产亚洲系列最新| 色丁香一区二区黑人巨大| 高密市| 亚洲一线二线三线品牌精华液久久久| 国产高清自产拍av在线| 国产精品天天看天天狠| 国产成人午夜在线视频极速观看| 国产精品VA尤物在线观看| 亚洲中文字幕一区二区| 亚洲精品日韩在线观看| 天堂v亚洲国产v第一次| 亚洲免费网站观看视频| 久久精品久久黄色片看看| 国产中文字幕精品免费| 欧美日韩精品一区二区三区高清视频| 国产精品人成视频免费播放| 噜噜噜亚洲色成人网站∨| 男女爽爽无遮挡午夜视频| 亚洲在线一区二区三区四区| 肉大榛一进一出免费视频| 播放灌醉水嫩大学生国内精品| 国产精品久久久久久久久鸭| 亚洲人成网线在线播放VA| 国产激情免费视频在线观看| 日韩精品卡一卡二卡三卡四| 亚洲色偷偷色噜噜狠狠99| caoporn免费视频公开| 人妻精品动漫H无码中字| 国产AV影片麻豆精品传媒| 欧美大胆老熟妇乱子伦视频| 日韩精品亚洲精品第一页| 国产精品色哟哟成人av| 国产蜜臀在线一区二区三区| 和黑人中出一区二区三区| 69人妻精品中文字幕| 亚洲自偷自拍熟女另类| 亚洲美女被黑人巨大在线播放|