軟體測試實務:業界成功案例與高效實踐 II《Chapter 10

Android 應用程式弱點檢測

陳坤裕    鄧宇翔    呂昇峰

財團法人電信技術中心

近年來,多起資安攻擊事件,造成許多隱私資訊洩漏或財物損失等問題。顯然,資訊安全議題現已是不容忽視之問題!然而,會發生如此問題的關鍵因素之一,便是程式具有資安漏洞。資安漏洞之產生,問題在開發者以開發出功能為導向,而忽視在開發時須考量到「基於安全的設計」(Security by Design )。

然而,即使開發者具備資安觀念,也難免會有漏網之魚。為此,我們簡介兩套行動應用程式弱掃工具,分別是 CodeQL 與 Quark Script ,協助開發者捕捉遺漏之資安問題。其中,CodeQL 為 GitHub 上被廣泛使用之資安漏洞掃描工具,其特色在於使用類似 SQL 語法,定義與搜尋程式原始碼中之漏洞範圍與特徵。此外,我們亦介紹 Quark Script ,這套工具為開放原始碼專案,與 CodeQL 最大差別在於 Quark Script 可在僅有二進制檔案(Binary)的情況下,針對該程式進行資安漏洞掃描。

兩套工具由於其理念不同,偵測之切入與脈絡亦會不同。在欲偵測同一漏洞時,便可提供開發者不同的偵測維度,從不同角度驗證程式碼安全無虞。本章將著重在偵測流程與方法之探討上,選定一種類型之資安漏洞(Common Weakness Enumeration, CWE )進行介紹,並使用 1 個 Android 樣本作為範例進行說明,請讀者與我們一同享受漏洞偵測之過程。


章節大綱

CH10 Android 應用程式弱點檢測

10.1 前言

10.2 行動裝置應用程式之弱點掃描概述

10.3 CodeQL 介紹與基本操作

  10.3.1 工具介紹

  10.3.2 環境準備與基本操作

  10.3.3 社群貢獻之弱點偵測腳本

10.4 Quark Script 介紹與基本操作

  10.4.1 工具介紹

  10.4.2 環境準備與基本操作

  10.4.3 社群貢獻之弱點偵測腳本

10.5 偵測腳本開發-以 CWE-749 為例

  10.5.1 資安漏洞之定義與影響

  10.5.2 具資安漏洞之程式碼解釋

  10.5.3 CodeQL 偵測流程

  10.5.4 CodeQL 偵測腳本解說

  10.5.5 Quark Script 偵測流程

  10.5.6 Quark Script 偵測腳本解說

10.6 結語

內容預覽

作者簡介

陳坤裕

Quark-Engine 創辦人,同時也是 Quark-Engine Team Lead,曾於 DEFCON 28 BlueTeam Village、BlackHat Asia Arsenal 2021、HITB LOCKDOWN 002 與 HITCON CMT 101 2019 等各大知名國際資安研討會擔任講者,目前於財團法人電信技術中心資通安全組擔任經理。

鄧宇翔

Quark-Engine CWE Team Lead,曾於 BlackHat Asia Arsenal 2021、PyCon India 2020 與 COSCUP 2018 等各大知名研討會擔任講者,目前於財團法人電信技術中心資通安全組擔任工程師。

呂昇峰

Quark-Engine Triage Team Lead,曾於 PyCon TW 2022 研討會擔任講者,目前任職財團法人電信技術中心資通安全組。

作者所屬機構

專章引用

陳坤裕、鄧宇翔、呂昇峰,〈Android 應用程式弱點檢測〉。《軟體測試實務:業界成功案例與高效實踐 II》,博碩文化,2023年5月,ISBN 978-626-333-486-1。