Code QLで始めるソースコードの静的解析
スライド概要
次のイベントの講演資料です。
https://sciencepark.connpass.com/event/246432/
作者について:
サイエンスパークの勉強会の資料を公開します。勉強会は2022/3現在、connpassで公開しています。 https://sciencepark.connpass.com
スライド一覧各ページのテキスト
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