10.6K Views
June 17, 22
スライド概要
次のイベントの講演資料です。
https://sciencepark.connpass.com/event/246432/
サイエンスパークの勉強会の資料を公開します。勉強会は2022/3現在、connpassで公開しています。 https://sciencepark.connpass.com
WDDDS 2022 Code QLで始めるソースコードの静的解析 デバイスドライバ課 SP2206-E22
WDDDS 2022 目次 1. CodeQLとは 2. 動かしてみる 3. Queryをカスタムしてみる 4. Gihtubとの連携 5. WDKとCodeQL 6. 脆弱性あれこれ 7. まとめ
WDDDS 2022 1. CodeQLとは 1.1 CodeQLはこんなやつ 静的解析のエンジン ツールではなく技術自体 https://codeql.github.com/docs/ Semmleが開発 LGTMという静的解析フレームワークで使用 Microsoft傘下のGithubがSemmleを買収した https://lgtm.com/ 3
WDDDS 2022 1. CodeQLとは 1.2 なぜCodeQLなのか WHCPの要件になった 認証取得においてCodeQLの検査が必須になった https://docs.microsoft.com/en-us/windowshardware/drivers/devtest/static-tools-and-codeql 4
WDDDS 2022 1. CodeQLとは 1.3 特徴は? CodeQLは静的解析のエンジン 解析手法そのもの。DBを作りこれにQueryを行うという方式が革 新的(らしい) OSSで解析Queryが増え続けている 独自言語で拡張可能 5
WDDDS 2022 1. CodeQLとは 1.4 CodeQLって無料? 学習や研究用途で使用する? NO YES YES OSSで使用する? 無料 NO WHCPで使用する? YES NO 有料 6
WDDDS 2022 2. 動かしてみる 2.1 前提知識 CodeQLはCLI(Comand Line Interface)を使います 基本Stepは、DB作成→Query実行、のみ 7
WDDDS 2022 2. 動かしてみる 2.2 Microsoftの手順をやってみる 癖がある(感想) not foundエラーなど Cloneするだけのリポジトリを作ってみた! https://github.com/mkado-spc/wddds-2022-codeql 8
WDDDS 2022 2. 動かしてみる 2.3 create database 9
WDDDS 2022 2. 動かしてみる 2.4 analyze database 10
WDDDS 2022 2. 動かしてみる 2.5 結果を確認する 11
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
WDDDS 2022 3. Queryをカスタムしてみる 3.2 hogeのQueryを実装してみた 13
WDDDS 2022 3. Queryをカスタムしてみる 3.3 hogeを検出できた 14
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
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
WDDDS 2022 6. 脆弱性あれこれ 6.1 Log4j 問題-勃発 https://scan.netsecurity.ne.jp/article/2021/12/16/46826.html 17
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
WDDDS 2022 7. まとめ WHCPにはCodeQL必須 Queryの自作はハードル高い OSSを効果的に活用していきましょう 19
WDDDS2022 ご清聴ありがとうございました 20