Code QLで始めるソースコードの静的解析

10.8K Views

June 17, 22

スライド概要

次のイベントの講演資料です。
https://sciencepark.connpass.com/event/246432/

profile-image

サイエンスパークの勉強会の資料を公開します。勉強会は2022/3現在、connpassで公開しています。 https://sciencepark.connpass.com

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

WDDDS 2022 Code QLで始めるソースコードの静的解析 デバイスドライバ課 SP2206-E22

2.

WDDDS 2022 目次 1. CodeQLとは 2. 動かしてみる 3. Queryをカスタムしてみる 4. Gihtubとの連携 5. WDKとCodeQL 6. 脆弱性あれこれ 7. まとめ

3.

WDDDS 2022 1. CodeQLとは 1.1 CodeQLはこんなやつ  静的解析のエンジン ツールではなく技術自体 https://codeql.github.com/docs/  Semmleが開発 LGTMという静的解析フレームワークで使用 Microsoft傘下のGithubがSemmleを買収した https://lgtm.com/ 3

4.

WDDDS 2022 1. CodeQLとは 1.2 なぜCodeQLなのか  WHCPの要件になった 認証取得においてCodeQLの検査が必須になった https://docs.microsoft.com/en-us/windowshardware/drivers/devtest/static-tools-and-codeql 4

5.

WDDDS 2022 1. CodeQLとは 1.3 特徴は?  CodeQLは静的解析のエンジン 解析手法そのもの。DBを作りこれにQueryを行うという方式が革 新的(らしい)  OSSで解析Queryが増え続けている 独自言語で拡張可能 5

6.

WDDDS 2022 1. CodeQLとは 1.4 CodeQLって無料? 学習や研究用途で使用する? NO YES YES OSSで使用する? 無料 NO WHCPで使用する? YES NO 有料 6

7.

WDDDS 2022 2. 動かしてみる 2.1 前提知識  CodeQLはCLI(Comand Line Interface)を使います  基本Stepは、DB作成→Query実行、のみ 7

8.

WDDDS 2022 2. 動かしてみる 2.2 Microsoftの手順をやってみる  癖がある(感想) not foundエラーなど  Cloneするだけのリポジトリを作ってみた! https://github.com/mkado-spc/wddds-2022-codeql 8

9.

WDDDS 2022 2. 動かしてみる 2.3 create database 9

10.

WDDDS 2022 2. 動かしてみる 2.4 analyze database 10

11.

WDDDS 2022 2. 動かしてみる 2.5 結果を確認する 11

12.

WDDDS 2022 3. Queryをカスタムしてみる 3.1 Write Queryするには?  QL languageという独自言語を使用  suites, packs といった単位で管理できる  言語としての学習コストはそれなりに高い! https://codeql.github.com/docs/ https://lab.github.com/githubtraining/codeql-u-boot-challenge-(cc++) 12

13.

WDDDS 2022 3. Queryをカスタムしてみる 3.2 hogeのQueryを実装してみた 13

14.

WDDDS 2022 3. Queryをカスタムしてみる 3.3 hogeを検出できた 14

15.

WDDDS 2022 4. GitHubとの連携 4.1 Code Scanning  CodeQLを使うならGithub GitHub上でのCI/CDが用意されている  ドライバでやろうとすると障壁が。。。 WDK導入必要 HLK向けは特定バージョンのCodeQLを使用が必要 https://github.com/microsoft/Windows-Driver-Developer-Supplemental-Tools 15

16.

WDDDS 2022 5. WDKとCodeQL 5.1 HLKとの関係  すでに22H2のブランチがある https://github.com/microsoft/Windows-Driver-DeveloperSupplemental-Tools/tree/WHCP_22H2  CodeQLのバージョンは更新していく模様 OSごとにQueryを行う環境を作らないといけない  Queryした後にもう1Stepファイル変換! 16

17.

WDDDS 2022 6. 脆弱性あれこれ 6.1 Log4j 問題-勃発 https://scan.netsecurity.ne.jp/article/2021/12/16/46826.html 17

18.

WDDDS 2022 6. 脆弱性あれこれ 6.2 Log4j 問題-どうなった?  SPCにも問い合わせが続々と来ました お宅の製品で(略  もちろん対策済みです 最初に火がついたのが2021/12/10頃 日本で周知され始めたのが12/12~12/14頃 検知するQLが作成されたのが12/11で初版が12/14に完成! https://github.com/github/codeql/blob/main/java/ql/src/experimental/Securi ty/CWE/CWE-020/Log4jJndiInjection.ql 18

19.

WDDDS 2022 7. まとめ  WHCPにはCodeQL必須  Queryの自作はハードル高い  OSSを効果的に活用していきましょう 19

20.

WDDDS2022 ご清聴ありがとうございました 20