日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 軟件

面向DevSecOps的開源持續安全測試方案--secureCodeBox

來源: 責編: 時間:2024-02-29 14:40:33 245觀看
導讀譯者 | 陳峻審校 | 重樓在現代開發環境中,持續集成(CI)和持續交付(CD)管道對于向最終用戶交付軟件的變更已是“家常便飯”。這導致了過去在部署之后才執行安全測試的傳統方法,對于每天可能要進行數十甚至數百次部署的場景而

譯者 | 陳峻n2E28資訊網——每日最新資訊28at.com

審校 | 重樓n2E28資訊網——每日最新資訊28at.com

在現代開發環境中,持續集成(CI)和持續交付(CD)管道對于向最終用戶交付軟件的變更已是“家常便飯”。這導致了過去在部署之后才執行安全測試的傳統方法,對于每天可能要進行數十甚至數百次部署的場景而言,已不再有效。n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

安全測試人員為了能夠輕松地自動運行和協調一系列開箱即用的安全測試工具,也往往需要一個模塊化的工具鏈。而secureCodeBox正是這樣一個基于Kubernetes(又稱 K8s)的、可被用于對軟件項目進行持續安全掃描的工具。它能夠被集成到CI/CD管道中,自動掃描變更,并向開發人員提供測試結果,以便他們在部署之前修復軟件問題。n2E28資訊網——每日最新資訊28at.com

架構

總的說來,secureCodeBox的架構如下圖所示:n2E28資訊網——每日最新資訊28at.com

secureCodeBox的架構圖secureCodeBox的架構圖n2E28資訊網——每日最新資訊28at.com

我們可以看到,其主要掃描活動是由步驟 2 中的Kubernetes作業(Job)在掃描容器(Scanner Container)內執行的。該容器成為了運行各項掃描活動的環境。此處的Kubernetes作業表示使用pod來實現即用即停的一次性任務。而pod是在K8s生態系統中運行的一到多個容器。同時,Kubernetes作業也使用到了Lurker容器。它負責從掃描容器中提取結果,并將其傳遞給步驟 3 的解析器容器(Parser Container,另一個Kubernetes作業)。一旦結果被解析為正確的格式,它們就會被發送到步驟 4 5 中的另兩個Kubernetes作業處,以修改和持久化掃描的結果。n2E28資訊網——每日最新資訊28at.com

而且,由于Kubernetes作業可以按需啟動,并只在需要時才使用資源,因此它能夠在掃描活動之間節省大量資源。同時,其另一個優勢在于,所有不必要的掃描工件或元數據都會在Kubernetes作業執行之間被刪除。n2E28資訊網——每日最新資訊28at.com

如圖所示,負責處理這一流程的主要組件便是secureCodeBox操作器(Operator)。該操作器通過為每個步驟觸發相應的Kubernetes作業來協調掃描,即:從掃描活動開始,到解析結果,再到修改和持久化結果。整個過程無需依賴人工安全審查,而且具有可擴展性,可以輕松添加更多的掃描器作為新的Kubernetes對象。n2E28資訊網——每日最新資訊28at.com

部署secureCodeBox

SecureCodeBox可以使用Helm圖表在Kubernetes中進行部署。畢竟HelmK8s中不需要太多的部署工作,而且部署的對象可以通過Helm變量輕松調整。n2E28資訊網——每日最新資訊28at.com

下面,我將使用Minikube創建一個本地Kubernetes集群。這里,Minikube并不是為生產環境的用例而設計的,不過您可以用它來測試性部署在K8s中。n2E28資訊網——每日最新資訊28at.com

首先,我們使用如下命令,以 4 CPU2048 MB內存的方式啟動Minikuben2E28資訊網——每日最新資訊28at.com

minikube start --cpus=4 --memory=2048m

啟動Minikube之后,我們便可以使用如下命令添加Helm資源庫:n2E28資訊網——每日最新資訊28at.com

helm repo addsecureCodeBoxhttps://charts.securecodebox.io

接著,我們可以使用以下命令創建新的K8s命名空間。在此,我強烈建議您創建一個單獨的Kubernetes命名空間,將secureCodeBox對象與其他K8s對象分離開來,尤其是在K8s中已部署了其他服務的情況下。據此,我們可以更方便地管理新創建的、專用于該平臺的對象。n2E28資訊網——每日最新資訊28at.com

kubectl create namespacesecureCodeBox-system

命令成功執行后,我們就可以在新創建的名為securecodebox-system 的命名空間中,使用如下命令安裝secureCodeBox了:n2E28資訊網——每日最新資訊28at.com

helm --namespacesecureCodeBox-system upgrade --installsecureCodeBox-operatorsecureCodeBox/operator

至此,secureCodeBox操作器已部署完畢,可隨時進行掃描管理了。下圖展示了上述各項命令:n2E28資訊網——每日最新資訊28at.com

啟動Minikube并部署secureCodeBox啟動Minikube并部署secureCodeBoxn2E28資訊網——每日最新資訊28at.com

如下圖所示,您可以通過執行kubectl get pods -nsecureCodeBox-system來驗證pod是否正常運行。n2E28資訊網——每日最新資訊28at.com

在K8s中運行secureCodeBoxPods在K8s中運行secureCodeBoxPodsn2E28資訊網——每日最新資訊28at.com

使用secureCodeBox進行掃描

SecureCodeBox集成了許多適用于各種場景的流行掃描組件。其官方文檔就提及了 20 多種掃描集成,其中包括但不限于:n2E28資訊網——每日最新資訊28at.com

  1. 靜態應用安全測試(SAST),如:Semgrep
  2. 動態應用安全測試(DAST),如:ZAP、Nikto、Nuclei
  3. 軟件構成分析(SCA),如:用于容器掃描的Trivy

外,SecureCodeBox還集成了各種常用工具,如:用于Web掃描的nmap、用于密鑰檢測的Gitleaks等。n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

SecureCodeBox的掃描集成SecureCodeBox的掃描集成n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

由于secureCodeBox中的掃描器是由ScanTypes表示的,而ScanTypes在Kubernetes中屬于定制資源定義(CustomResourceDefinition),因此在運行掃描之前,我們必須通過如下Helm命令,將Semgrep安裝到secureCodeBox中:n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

helm upgrade --install semgrepsecureCodeBox/semgrep -nsecureCodeBox-system

下圖展示了該命令的截圖:n2E28資訊網——每日最新資訊28at.com

安裝Semgrep掃描器安裝Semgrep掃描器n2E28資訊網——每日最新資訊28at.com

安裝好Semgrep掃描類型(ScanType)之后,我們就可以針對所選的存儲庫開始配置掃描器了。以下是Semgrep配置的示例,您可以參見其官方文檔。該配置實際上是一個描述性的掃描(Scan)YAML文檔,即在K8s中secureCodeBox使用的一個自定義對象。n2E28資訊網——每日最新資訊28at.com

apiVersion: "execution.securecodebox.io/v1"kind: Scanmetadata: name: "semgrep-vulnerable-flask-app"spec: # Specify aKubernetesvolume that will be shared between the scanner and the initContainer volumes: - name: repository emptyDir: {} # Mount the volume in the scan container volumeMounts: - mountPath: "/repo/" name: repository # Specify an init container to clone the repository initContainers: - name: "provision-git" # Use an image that includes git image: bitnami/git # Mount the same volume we also use in the main container volumeMounts: - mountPath: "/repo/" name: repository # Specify the clone command and clone into the volume, mounted at /repo/ command: - git - clone - "https://github.com/we45/Vulnerable-Flask-App" - /repo/flask-app # Parameterize the semgrep scan itself scanType: "semgrep" parameters: - "-c" - "p/ci" - "/repo/flask-app"

在上述配置中,您可以看到,作為容器的prosision-git被用于執行git clone,以下載所選的存儲庫。在本例中,它克隆了Vulnerable Flask App,以便對其執行掃描。此處的Vulnerable Flask App是一個使用Python Flask框架創建的Web應用。當然,通過自定義的git參數,您也可以改變命令參數,以克隆任何選定的存儲庫。n2E28資訊網——每日最新資訊28at.com

在上例中,存儲庫被克隆到了/repo/flask-app目錄中,該目錄也是在provision-gitsemgrep容器之間共享的Kubernetes卷。一旦存儲庫被克隆,Semgrep就會使用參數配置來啟動掃描。這些參數,尤其是使用到的規則,都是可以被調整的。而且,由于Semgrep的規則是公開的,因此您可以在規則注冊表中輕松找到。n2E28資訊網——每日最新資訊28at.com

下面,讓我們將YAML文檔保存為semgrep-vulnerable-flask-app.yaml,然后使用如下kubectl命令啟動掃描:n2E28資訊網——每日最新資訊28at.com

kubectl apply -f semgrep-vulnerable-flask-app.yaml -nsecureCodeBox-system

該命令的輸出結果如下圖所示:n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

針對存在漏洞的Flask App運行Semgrep掃描針對存在漏洞的Flask App運行Semgrep掃描n2E28資訊網——每日最新資訊28at.com

我使用了kubectl get scan命令來檢查掃描狀態。由于secureCodeBox使用K8s對象來表示掃描,因此它們的訪問方式與其他K8s對象類似。n2E28資訊網——每日最新資訊28at.com

后續,您可以再次執行相同的get命令,來驗證掃描是否成功完成。n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

如上圖所述,Done狀態表示掃描已完成,且包含了1項發現。n2E28資訊網——每日最新資訊28at.com

獲取結果詳情

在默認配置下,掃描結果不會保存在數據庫中。您可以使用如下kubectl describe命令來訪問掃描的輸出:n2E28資訊網——每日最新資訊28at.com

kubectl describe scan semgrep-vulnerable-flask-app -nsecureCodeBox-system

kubectl的輸出中,我們可以看到如下內容:n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

n2E28資訊網——每日最新資訊28at.com

Semgrep執行掃描后的輸出Semgrep執行掃描后的輸出n2E28資訊網——每日最新資訊28at.com

在上圖中,我們可以通過“發現下載鏈接(Finding Download Link)”來下載報告。我據此訪問了指向Kubernetes服務的URL,并收到了作為響應的、JSON格式的Semgrep報告。下面,讓我們來查看這份報告:n2E28資訊網——每日最新資訊28at.com

{... "results": [ { "check_id": "python.jwt.security.jwt-hardcode.jwt-python-hardcoded-secret", "end": { "col": 193, "line": 184, "offset": 6227 }, "extra": { "engine_kind": "OSS", "fingerprint": "221138ec7d837ea33e1e3346821e6bf50d3f21bf8600de705b7831ef2fe9139023f1f58202a21034ac06a54a67236bd9a41624ac7960e173627cb6298a92c5c6_0", "is_ignored": false, "lines": " auth_token = jwt.encode({'user': username, 'exp': get_exp_date(), 'nbf': datetime.datetime.utcnow(), 'iss': 'we45', 'iat': datetime.datetime.utcnow()}, app.config['SECRET_KEY_HMAC'], algorithm='HS256')", "message": "Hardcoded JWT secret or private key is used. This is a Insufficiently Protected Credentials weakness: https://cwe.mitre.org/data/definitions/522.html Consider using an appropriate security mechanism to protect the credentials (e.g. keeping secrets in environment variables)", "metadata": { "category": "security", "confidence": "HIGH", "cwe": [ "CWE-522: Insufficiently Protected Credentials" ], "cwe2021-top25": true, "impact": "MEDIUM", "license": "Commons Clause License Condition v1.0[LGPL-2.1-only]", "likelihood": "HIGH", "owasp": [ "A02:2017 - Broken Authentication", "A04:2021 - Insecure Design" ], "references": [ "https://semgrep.dev/blog/2020/hardcoded-secrets-unverified-tokens-and-other-common-jwt-mistakes/" ], "semgrep.dev": { "rule": { "origin": "community", "rule_id": "X5U8P5", "url": "https://semgrep.dev/playground/r/l4T4vPA/python.jwt.security.jwt-hardcode.jwt-python-hardcoded-secret", "version_id": "l4T4vPA" } },...}

在上述報告中,我們可以看到:規則python.jwt.security.jwt-hardcode.jwt-python-hardcoded-secret識別出了存儲庫中的一個硬編碼密鑰。其問題就出現在第 184行,與創建JWT令牌有關。作為令牌的密文,它使用了存儲在app.config['SECRET_KEY_HMAC']變量中的值。為了弄清楚這個值到底是硬編碼,還是從環境變量等中獲取的,我們搜索了設置該密鑰的位置,并最終確定了該變量定義的確源于硬編碼。n2E28資訊網——每日最新資訊28at.com

...app.config['SECRET_KEY_HMAC'] = 'secret'app.config['SECRET_KEY_HMAC_2'] = 'am0r3C0mpl3xK3y'app.secret_key = 'F12Zr47j/3yX R~X@H!jmM]Lwf/,?KT'... if auth_user: auth_token = jwt.encode({'user': username, 'exp': get_exp_date(), 'nbf': datetime.datetime.utcnow(), 'iss': 'we45', 'iat': datetime.datetime.utcnow()}, app.config['SECRET_KEY_HMAC'], algorithm='HS256') resp = Response(json.dumps({'Authenticated': True, "User": username})) #resp.set_cookie('SESSIONID', auth_token) resp.headers['Authorization'] = "{0}".format(auth_token) resp.status_code = 200 resp.mimetype = 'application/json' return resp...

此外,為了加快漏洞報告的訪問效率,我們可以使用DefectDojo作為與secureCodeBox集成的漏洞管理平臺,以通過其友好的用戶界面和更高效的漏洞管理,來改進流程。目前,SecureCodeBox允許我們將發現結果以持久方式傳遞給Azure Monitor、DefectDojo、Dependency-Track、以及ElasticSearch等服務。n2E28資訊網——每日最新資訊28at.com

小結

secureCodeBox作為一個獨立的掃描器,配置起來非常簡單。在上文中,我們介紹了secureCodeBox的架構、可用的掃描器、各種配置示例、以及典型用例。n2E28資訊網——每日最新資訊28at.com

在我看來,secureCodeBox既是一個非常有前途的持續安全測試方案,也是為數不多的此類開源項目之一。通過將其集成到CI/CD中,并根據代碼庫相關事件觸發掃描,它不但提供了在Kubernetes中執行安全測試的能力,而且提供了許多開源掃描器的集成,因此覆蓋了持續安全測試的大部分方面。同時,它也可以被用作一體化的掃描服務,針對代碼庫和已部署的應用定期執行自動化的安全評估。n2E28資訊網——每日最新資訊28at.com

此外,secureCodeBox還可以直接向CI或專用開發人員提供報告,使之能夠在將代碼合并到主分支之前,修復已發現的漏洞。當然,應該指出的是,由滲透測試人員進行人工安全測試的傳統方法仍然十分重要,畢竟自動化可能無法檢測到復雜的安全問題。n2E28資訊網——每日最新資訊28at.com

總之,如果您正在尋找一個一體化的開源掃描儀,且愿意使用KubernetesYAML文件去自定義掃描的話,secureCodeBox會是持續安全測試中最好、最被低估的開源項目之一。n2E28資訊網——每日最新資訊28at.com

譯者介紹

陳峻(Julian Chen),51CTO社區編輯,具有十多年的IT項目實施經驗,善于對內外部資源與風險實施管控,專注傳播網絡與信息安全知識與經驗。n2E28資訊網——每日最新資訊28at.com

原文標題:Exploring secureCodeBox— An Open-Source Continuous Security Testing Solution for DevSecOps,作者:Krzysztof Pranczkn2E28資訊網——每日最新資訊28at.com

本文鏈接:http://m.www897cc.com/showinfo-26-75314-0.html面向DevSecOps的開源持續安全測試方案--secureCodeBox

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: Git 不用背,這篇文章幫助你簡化 Git 的學習過程

下一篇: 在DDD集成支付寶支付,看這篇文章就夠了!

標簽:
  • 熱門焦點
  • 跑分安卓第一!Redmi K60至尊版8月發布!盧偉冰:目標年度性能之王

    8月5日消息,Redmi K60至尊版將于8月發布,在此前舉行的戰略發布會上,官方該機將搭載搭載天璣9200+處理器,安兔兔V10跑分超177萬分,是目前安卓陣營最高的分數
  • 從 Pulsar Client 的原理到它的監控面板

    背景前段時間業務團隊偶爾會碰到一些 Pulsar 使用的問題,比如消息阻塞不消費了、生產者消息發送緩慢等各種問題。雖然我們有個監控頁面可以根據 topic 維度查看他的發送狀態,
  • 多線程開發帶來的問題與解決方法

    使用多線程主要會帶來以下幾個問題:(一)線程安全問題  線程安全問題指的是在某一線程從開始訪問到結束訪問某一數據期間,該數據被其他的線程所修改,那么對于當前線程而言,該線程
  • 為什么你不應該使用Div作為可點擊元素

    按鈕是為任何網絡應用程序提供交互性的最常見方式。但我們經常傾向于使用其他HTML元素,如 div span 等作為 clickable 元素。但通過這樣做,我們錯過了許多內置瀏覽器的功能。
  • 使用AIGC工具提升安全工作效率

    在日常工作中,安全人員可能會涉及各種各樣的安全任務,包括但不限于:開發某些安全工具的插件,滿足自己特定的安全需求;自定義github搜索工具,快速查找所需的安全資料、漏洞poc、exp
  • 拼多多APP上線本地生活入口,群雄逐鹿萬億市場

    Tech星球(微信ID:tech618)文 | 陳橋輝 Tech星球獨家獲悉,拼多多在其APP內上線了“本地生活”入口,位置較深,位于首頁的“充值中心”內,目前主要售賣美食相關的
  • 中國家電海外掘金正當時|出海專題

    作者|吳南南編輯|胡展嘉運營|陳佳慧出品|零態LT(ID:LingTai_LT)2023年,出海市場戰況空前,中國創業者在海外紛紛摩拳擦掌,以期能夠把中國的商業模式、創業理念、戰略打法輸出海外,他們依
  • 消息稱小米汽車開始篩選交付中心:需至少120個車位

    IT之家 7 月 7 日消息,日前,有微博簡介為“汽車行業從業者、長三角一體化擁護者”的微博用戶 @長三角行健者 發文表示,據經銷商集團反饋,小米汽車目前
  • 電博會上海爾智家模擬500平大平層,還原生活空間沉浸式體驗

    電博會為了更好地讓參展觀眾真正感受到智能家居的絕妙之處,海爾智家的程傳嶺先生同樣介紹了展會上海爾智家的模擬500平大平層,還原生活空間沉浸式體驗。程傳
Top 日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不
国产精品久在线观看| 欧美日韩成人激情| 玖玖综合伊人| 亚洲先锋成人| 亚洲国产精品激情在线观看| 国产日本欧美一区二区三区在线| 欧美国产日韩一区二区在线观看 | 国产精品久久精品日日| 免费亚洲电影在线观看| 久久精品一区二区三区不卡牛牛| 亚洲午夜精品在线| 久久精品2019中文字幕| 午夜一区二区三区在线观看| 一区二区三区高清视频在线观看| 亚洲黄色视屏| 亚洲欧美日韩天堂一区二区| 亚洲一级在线观看| 久久久美女艺术照精彩视频福利播放| 久久九九热re6这里有精品| 欧美电影免费观看| 欧美成人一区在线| 国产精品久久久久毛片大屁完整版 | 久久午夜电影网| 久久免费偷拍视频| 欧美日韩国产大片| 欧美激情中文不卡| 欧美日韩午夜剧场| 欧美午夜精品伦理| 国产精品久久久久久久久久尿 | 久久久久久久999精品视频| 午夜精品国产更新| 亚洲欧美在线免费观看| 久久夜色精品国产欧美乱| 久久免费视频这里只有精品| 卡通动漫国产精品| 另类激情亚洲| 国产精品拍天天在线| 国产精品成人在线观看| 欧美视频在线观看免费网址| 国产精品久久久91| 国产模特精品视频久久久久| 国产三级精品三级| 精品成人一区二区三区| 国语自产精品视频在线看抢先版结局| 韩国欧美国产1区| 亚洲一区二区三区免费在线观看| 午夜精品福利一区二区三区av| 亚洲伊人一本大道中文字幕| 男女激情久久| 久久综合狠狠综合久久激情| 欧美成人中文字幕在线| 欧美日韩国产综合网| 国产精品99免视看9| 国产美女诱惑一区二区| 一区二区视频在线观看| 亚洲国产综合在线看不卡| 欧美制服丝袜| 欧美激情在线播放| 极品尤物av久久免费看| 91久久精品国产91久久性色| 亚洲最新在线视频| 午夜欧美不卡精品aaaaa| 欧美日韩成人综合在线一区二区| 影音先锋一区| 久久精品一区二区三区四区| 欧美激情精品久久久久| 国产精品久久久久久久7电影 | 亚洲综合精品四区| 久久亚洲二区| 国产精品videossex久久发布| 国产日产高清欧美一区二区三区| 亚洲午夜性刺激影院| 欧美日韩三区四区| 日韩一区二区高清| 久久精品视频免费观看| 欧美日韩成人| 日韩视频一区二区三区在线播放免费观看 | 国产精品ⅴa在线观看h| 日韩午夜在线| 欧美日韩国语| 中文亚洲免费| 麻豆精品精品国产自在97香蕉| 国产精品久久国产三级国电话系列 | 1769国内精品视频在线播放| 亚洲一区二区精品| 欧美视频日韩视频| 在线观看日韩精品| 亚洲免费在线电影| 欧美日本一区二区视频在线观看| 国产视频欧美| 99国产精品视频免费观看| 欧美精品日韩| 好吊妞**欧美| 久久久噜噜噜久久| 国产精品嫩草影院一区二区| 亚洲国产成人高清精品| 欧美影院成年免费版| 欧美日韩国产综合视频在线观看 | 日韩天堂在线观看| 久久天天狠狠| 亚洲国产日韩欧美在线99 | 亚洲午夜一区二区三区| 欧美大胆成人| 99国产精品视频免费观看一公开| 久久免费午夜影院| 亚洲国产黄色| 久久久久国色av免费观看性色| 伊人成人在线视频| 欧美大色视频| 中文欧美字幕免费| 国产一区二区三区丝袜 | 亚洲欧美一区在线| 国产精品麻豆va在线播放| 香蕉av福利精品导航| 国内综合精品午夜久久资源| 欧美伊人久久| 国产精品女人毛片| 久久成人av少妇免费| 国产精品国产三级国产普通话蜜臀 | 国产亚洲激情视频在线| 亚洲女ⅴideoshd黑人| 国产一区二区欧美日韩| 久久精品国产成人| 亚洲狠狠丁香婷婷综合久久久| 欧美日韩xxxxx| 午夜精品久久久久久久蜜桃app | 亚洲日韩第九十九页| 久久天堂精品| 99精品免费网| 国产一区导航| 欧美久久久久久久久| 亚洲精品国产精品乱码不99| 国产精品成人一区二区三区吃奶| 欧美中文在线观看国产| 国产婷婷97碰碰久久人人蜜臀| 老牛嫩草一区二区三区日本| 国产午夜精品久久久| 欧美成人免费在线观看| 亚洲欧美韩国| 国产喷白浆一区二区三区| 蘑菇福利视频一区播放| 亚洲欧美欧美一区二区三区| 亚洲第一在线综合网站| 美女久久网站| 午夜影院日韩| 日韩视频一区二区三区| 国产一区二区三区av电影| 欧美日韩亚洲一区二区三区在线| 亚洲视频视频在线| 狠狠色狠狠色综合日日91app| 另类激情亚洲| 午夜久久久久| 99综合精品| 国产精品r级在线| 美女视频黄a大片欧美| 亚洲欧美日韩国产成人精品影院| 亚洲激情一区二区三区| 欧美日韩国产成人| 久久久精彩视频| 亚洲综合精品四区| 国产视频观看一区| 欧美日韩精品一区| 亚洲欧美国产高清| 亚洲美女一区| 1024欧美极品| 激情五月综合色婷婷一区二区| 欧美成年人视频| 欧美一区二区三区在线| 亚洲手机成人高清视频| 91久久综合亚洲鲁鲁五月天| 欧美日韩在线视频观看| 欧美mv日韩mv国产网站| 99视频在线精品国自产拍免费观看| 精品91免费| 国产午夜精品理论片a级探花| 国产精品xxxav免费视频| 欧美精品国产一区| 老司机aⅴ在线精品导航| 久久精品国产亚洲高清剧情介绍| 亚洲欧美另类国产| 亚洲视频在线二区| 一本久道综合久久精品| 最新中文字幕亚洲| 亚洲福利视频一区二区| 狠狠综合久久av一区二区小说 | 久久国产精品久久久久久| 亚洲欧美日韩精品久久| 亚洲视频在线一区| 一本到12不卡视频在线dvd| 国内精品久久久久伊人av| 国产精品一区久久| 欧美成人免费大片| 老鸭窝毛片一区二区三区| 久久免费的精品国产v∧| 久久精品国产亚洲一区二区三区| 欧美诱惑福利视频| 欧美一区二区三区免费在线看| 亚洲欧美在线看| 香蕉视频成人在线观看| 欧美一区二区国产| 一本一本大道香蕉久在线精品| 尤物精品国产第一福利三区| 激情久久五月| 在线播放豆国产99亚洲|