PR:この記事にはアフィリエイトリンクが含まれます。
静的解析の本では、CodeQLやSemgrepの操作と検査結果の扱いを押さえたいところです。ソースコード検査は、実行前に危険な書き方や不具合の兆しを探す手段。道具と現場の両面を知ると、学びを実務に結び付けやすくなります。
CodeQLのクエリ作成を試したい場合、Semgrepをサーバーレス環境で使いたい場合、日本語で検査ルールの背景を学びたい場合では、合う本が変わります。早見表には、各書のテーマと主な読者をまとめました。
早見表
| 書名 | 扱うテーマ | 読者の目安 |
|---|---|---|
Javaコードアンチパターン 初級からプロまで知っておきたいミスと回避策 | Javaの欠陥パターンと静的解析 | Javaのコード品質を高めたい人 |
Googleのソフトウェアエンジニアリング | Googleの静的解析基盤Tricorderと開発フロー | チーム導入の実例を知りたい人 |
セキュアで信頼性のあるシステム構築 | 自動検査、抽象解釈、セキュリティ | 検査を安全な設計・運用と結びたい人 |
Introduction to Static Analysis | 抽象解釈と解析の理論 | 原理を深く学びたい人 |
Accelerate DevOps with GitHub | GitHub上のCodeQLとCI連携 | CodeQLの運用や独自クエリを試したい人 |
Learning Serverless Security | サーバーレス環境でのSemgrep | クラウドのセキュリティ経験がある人 |
CodeQLのクエリ作成やGitHub連携を学ぶなら、その実務を扱う本が近道です。Semgrepをクラウドの検査に使う人には、サーバーレスの脅威も扱う本が役立つでしょう。
チームへの導入を考える人は、解析結果がレビューや修正につながる実例にも目を向けてください。警告を誰がいつ確認するのかが分かると、導入後の作業を想像しやすくなります。
解析の基本
静的解析とは、プログラムを実行せずにソースコードを調べ、問題の兆しを探す方法です。危険な関数の使い方や、外部入力が不適切な処理へ渡る経路などを検査します。
警告が出ても、すべてがそのまま不具合とは限りません。ルールが幅広く適用され、実際には安全な箇所に反応することもあります。該当コードの役割や入力元を見て、指摘が当てはまるか確かめる必要があります。
実務では警告の数より、重要な指摘を開発者が修正できる形で届けられるかが大切です。理由の分からない通知が続けば、見落とされたり無視されたりすることもありますよね。
実行時のテストや依存パッケージの検査とは役割が異なります。コードの書き方やデータの流れを見る検査を軸に、リリース前後の確認も組み合わせれば、対象にできる問題が広がります。
CodeQLを読む
CodeQLは、コードを解析用のデータとして扱い、クエリで特定の構造や問題につながる経路を探すツールです。既成の検査に加え、組織固有のルールもクエリで表現できます。
英語の『Accelerate DevOps with GitHub』では、GitHubのコードスキャンやアラート、プルリクエスト連携と独自CodeQLクエリの作成を扱います。540ページのペーパーバックで、GitHub ActionsとGitHub Advanced Securityを含むDevOps運用も取り上げています。
本書は独自クエリの作成と、検出結果をプルリクエストやCIへつなぐ流れを扱います。CodeQLを試す段階からチームで運用するまで、作業のつながりを追いたい人におすすめです。
英語の本に抵抗がなく、GitHub上でコードスキャンやクエリ作成を具体的に進めたい人には、実務の題材がそろう一冊です。
Semgrepを読む
Semgrepは、コードの構造に沿ったルールで危険なパターンを見つけます。ルールには変数や式の形を含められ、一部の機能では入力値が危険な処理へ渡る流れも検査できます。
『Learning Serverless Security』はAWS・Azure・Google Cloudのサーバーレスアプリを扱う英語の専門書です。2026年刊の531ページのペーパーバックで、Semgrepによるコードインジェクションなどの検出と対策も取り上げています。
本書ではSemgrepに加え、依存関係の検査やOSV-Scannerによる脆弱なパッケージの検出も扱います。アプリのコードとクラウド環境の両面からセキュリティを学べます。
対象レベルは中級から上級で、クラウドやセキュリティの基礎知識がある人に合います。サーバーレスで起きる問題に検査をどう当てるか、具体的に学べる本です。
理論を補う
『Introduction to Static Analysis: An Abstract Interpretation Perspective』は320ページのハードカバーです。プログラムの意味の抽象化や、不変条件を計算する考え方を体系的に解説します。
抽象解釈は、実行時に起こり得る状態を解析しやすい形に置き換えて調べ、解析の精度と計算コストの釣り合いを取る枠組みです。
この本は、解析ツールが見逃しや誤検知を起こす理由や、ルールの範囲を決める考え方をつかむ手がかりになります。まずCodeQLやSemgrepを動かしたい初学者は、実践書から読み始め、必要になった段階で本書を開くとよいでしょう。
結論
CodeQLの利用が目的なら、『Accelerate DevOps with GitHub』がおすすめです。コードスキャンや独自クエリに加え、プルリクエスト連携も一冊で追えます。Semgrepをサーバーレス環境で使う人には、『Learning Serverless Security』が具体的な題材になります。
日本語で検査の運用を学ぶなら、Tricorderの実例を扱う『Googleのソフトウェアエンジニアリング』を選びましょう。
セキュリティ設計まで学ぶ人には『セキュアで信頼性のあるシステム構築』、Javaの欠陥パターンからルールの背景を知りたい人には『Javaコードアンチパターン』がおすすめです。
参考価格は『Javaコードアンチパターン』が3,960円、『Googleのソフトウェアエンジニアリング』が6,160円、『セキュアで信頼性のあるシステム構築』が5,280円です。すべて税込の定価で、実売価格は時期や販売店によって変わるため購入時に確認してください。
Amazon の PC をスコア化してみた
Amazonにある8〜14インチの小型WindowsタブレットやノートPCを、スペック別にスコア化して比較・ランキング。







