feat(posimai-sc): 全単元に初学者向けブロック、ホーム案内、検索ショートカット、SW v3
Made-with: Cursor
This commit is contained in:
parent
ec51c2ed6b
commit
e6bb59df86
|
|
@ -130,6 +130,10 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
|
||||||
.home-hero h1{font-size:26px;font-weight:300;letter-spacing:-.02em;line-height:1.2}
|
.home-hero h1{font-size:26px;font-weight:300;letter-spacing:-.02em;line-height:1.2}
|
||||||
.home-hero h1 span{color:var(--accent)}
|
.home-hero h1 span{color:var(--accent)}
|
||||||
.home-hero p{font-size:13px;color:var(--text2);margin-top:8px;line-height:1.7}
|
.home-hero p{font-size:13px;color:var(--text2);margin-top:8px;line-height:1.7}
|
||||||
|
.home-hint{font-size:12px;color:var(--text3);margin-top:16px;line-height:1.65;max-width:460px;margin-inline:auto;padding:10px 14px;text-align:left;border-radius:var(--radius-sm);border:1px solid var(--border);background:var(--surface2)}
|
||||||
|
.home-hint code{font-family:'JetBrains Mono',monospace;font-size:11px;color:var(--text2);background:var(--surface);padding:2px 6px;border-radius:4px;border:1px solid var(--border)}
|
||||||
|
.home-hint strong{color:var(--text2);font-weight:600}
|
||||||
|
.home-hint kbd{font-family:'JetBrains Mono',monospace;font-size:10px;padding:2px 5px;border:1px solid var(--border);border-radius:4px;background:var(--surface)}
|
||||||
.stats-row{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}
|
.stats-row{display:flex;gap:10px;justify-content:center;margin-top:20px;flex-wrap:wrap}
|
||||||
.stat-card{background:var(--surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius);padding:14px 22px;text-align:center}
|
.stat-card{background:var(--surface);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border:1px solid var(--border);border-radius:var(--radius);padding:14px 22px;text-align:center}
|
||||||
.stat-val{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:500;color:var(--accent)}
|
.stat-val{font-family:'JetBrains Mono',monospace;font-size:22px;font-weight:500;color:var(--accent)}
|
||||||
|
|
@ -413,6 +417,7 @@ header{display:flex;align-items:center;justify-content:space-between;padding:0 1
|
||||||
<div class="home-hero">
|
<div class="home-hero">
|
||||||
<h1>情報処理<span>安全確保支援士</span></h1>
|
<h1>情報処理<span>安全確保支援士</span></h1>
|
||||||
<p>セキュリティの基礎から攻撃手法・法規まで、AM2試験に対応した31単元を体系的に学習します。開発者の視点から「なぜそうなのか」を理解しましょう。</p>
|
<p>セキュリティの基礎から攻撃手法・法規まで、AM2試験に対応した31単元を体系的に学習します。開発者の視点から「なぜそうなのか」を理解しましょう。</p>
|
||||||
|
<p class="home-hint">各単元の概念タブの先頭に<strong>初学者向け</strong>の短い用語ガイドを置いています。ブックマーク用に URL 例: <code>?unit=s01</code>(単元ID)。サイドバーが開いているとき <kbd>/</kbd> で単元検索にフォーカスできます。</p>
|
||||||
<div class="stats-row">
|
<div class="stats-row">
|
||||||
<div class="stat-card">
|
<div class="stat-card">
|
||||||
<div class="stat-val" x-text="doneCount"></div>
|
<div class="stat-val" x-text="doneCount"></div>
|
||||||
|
|
|
||||||
|
|
@ -77,6 +77,15 @@ document.addEventListener('alpine:init', () => {
|
||||||
if('serviceWorker' in navigator){
|
if('serviceWorker' in navigator){
|
||||||
navigator.serviceWorker.register('/sw.js').catch(()=>{});
|
navigator.serviceWorker.register('/sw.js').catch(()=>{});
|
||||||
}
|
}
|
||||||
|
document.addEventListener('keydown',(e)=>{
|
||||||
|
const t=e.target;
|
||||||
|
if(t&&(t.tagName==='INPUT'||t.tagName==='TEXTAREA'||t.isContentEditable)) return;
|
||||||
|
if(e.key==='/'&&!e.ctrlKey&&!e.metaKey&&!e.altKey){
|
||||||
|
e.preventDefault();
|
||||||
|
const si=document.querySelector('.search-input');
|
||||||
|
if(si) si.focus();
|
||||||
|
}
|
||||||
|
});
|
||||||
},
|
},
|
||||||
|
|
||||||
syncUnitToUrl(){
|
syncUnitToUrl(){
|
||||||
|
|
|
||||||
|
|
@ -128,7 +128,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s07', num:'S07', title:'公開鍵暗号・デジタル署名', freq:'high', diff:2,
|
{ id:'s07', num:'S07', title:'公開鍵暗号・デジタル署名', freq:'high', diff:2,
|
||||||
concept:`<p><strong>公開鍵暗号(非対称暗号)</strong>は公開鍵と秘密鍵のペアを使います。公開鍵で暗号化→秘密鍵で復号(機密性)、秘密鍵で署名→公開鍵で検証(完全性・否認防止)。</p><div class="viz-flow"><div class="vf-node">送信者<div class="vf-sub">秘密鍵で署名</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">署名付き<div class="vf-sub">メッセージ</div></div><div class="vf-arrow">→</div><div class="vf-node">受信者<div class="vf-sub">公開鍵で検証</div></div></div><div class="formula-box"><div class="formula-label">主要アルゴリズム</div>RSA:素因数分解の困難性に基づく。2048ビット以上が現在の最低基準<br>ECDSA/EdDSA:楕円曲線暗号。RSAより短い鍵で同等の安全性<br>DH/ECDH:鍵交換アルゴリズム(暗号化ではなく鍵合意)</div><p>デジタル署名の手順:①メッセージのハッシュ値を計算②秘密鍵でハッシュを暗号化(=署名)③受信側は公開鍵で署名を復号しハッシュと照合。改ざんと否認を同時に防ぎます。</p>`,
|
concept:`<p><strong>公開鍵暗号(非対称暗号)</strong>は公開鍵と秘密鍵のペアを使います。公開鍵で暗号化→秘密鍵で復号(機密性)、秘密鍵で署名→公開鍵で検証(完全性・否認防止)。</p><div class="formula-box"><div class="formula-label">初学者向け:鍵の向き</div><strong>秘密鍵</strong>:自分だけが持ち、漏らしてはいけない鍵。<br><strong>公開鍵</strong>:誰に渡してもよく、暗号化や署名の検証に使う。<br><strong>覚え方</strong>:「暗号化は相手の公開鍵」「署名は自分の秘密鍵で作る」と整理すると混同しにくい。</div><div class="viz-flow"><div class="vf-node">送信者<div class="vf-sub">秘密鍵で署名</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">署名付き<div class="vf-sub">メッセージ</div></div><div class="vf-arrow">→</div><div class="vf-node">受信者<div class="vf-sub">公開鍵で検証</div></div></div><div class="formula-box"><div class="formula-label">主要アルゴリズム</div>RSA:素因数分解の困難性に基づく。2048ビット以上が現在の最低基準<br>ECDSA/EdDSA:楕円曲線暗号。RSAより短い鍵で同等の安全性<br>DH/ECDH:鍵交換アルゴリズム(暗号化ではなく鍵合意)</div><p>デジタル署名の手順:①メッセージのハッシュ値を計算②秘密鍵でハッシュを暗号化(=署名)③受信側は公開鍵で署名を復号しハッシュと照合。改ざんと否認を同時に防ぎます。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'暗号化と署名で使う鍵の向きが逆なことを確実に理解する。暗号化は「受信者の公開鍵」、署名は「送信者の秘密鍵」。',
|
'暗号化と署名で使う鍵の向きが逆なことを確実に理解する。暗号化は「受信者の公開鍵」、署名は「送信者の秘密鍵」。',
|
||||||
'RSAの最低鍵長は2048ビット(2024年現在)。1024ビットは脆弱で不推奨。',
|
'RSAの最低鍵長は2048ビット(2024年現在)。1024ビットは脆弱で不推奨。',
|
||||||
|
|
@ -151,7 +151,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s08', num:'S08', title:'ハッシュ関数', freq:'high', diff:1,
|
{ id:'s08', num:'S08', title:'ハッシュ関数', freq:'high', diff:1,
|
||||||
concept:`<p><strong>ハッシュ関数</strong>は任意のデータから固定長のダイジェスト(ハッシュ値)を生成する一方向関数です。同じ入力から常に同じ出力が得られ、逆算は(計算量的に)不可能です。</p><div class="formula-box"><div class="formula-label">主要アルゴリズムと出力長</div>MD5:128ビット。衝突脆弱性あり。使用禁止(整合性確認のみ残存)<br>SHA-1:160ビット。衝突脆弱性あり。証明書用途では使用禁止<br>SHA-256:256ビット。現在の標準。Bitcoinでも使用<br>SHA-3:Keccakアルゴリズム。SHA-2と並行して使える代替</div><p>ハッシュの3性質:①衝突耐性(同じハッシュを持つ別データを作れない)②第二原像耐性(ハッシュ値から元データを求められない)③雪崩効果(入力が1ビット変わると出力が大きく変わる)</p><p>パスワード保存にはハッシュにソルト(ランダム値)を加えることでレインボーテーブル攻撃を防ぎます。bcrypt・Argon2が推奨。</p>`,
|
concept:`<p><strong>ハッシュ関数</strong>は任意のデータから固定長のダイジェスト(ハッシュ値)を生成する一方向関数です。同じ入力から常に同じ出力が得られ、逆算は(計算量的に)不可能です。</p><div class="formula-box"><div class="formula-label">初学者向け:ハッシュのイメージ</div>長いデータを<strong>固定長の「指紋」</strong>に圧縮したもの。元に戻せない一方向。<br>パスワード保存では平文を置かず<strong>ハッシュ+ソルト</strong>で、同じパスワードでも別の指紋にする。</div><div class="formula-box"><div class="formula-label">主要アルゴリズムと出力長</div>MD5:128ビット。衝突脆弱性あり。使用禁止(整合性確認のみ残存)<br>SHA-1:160ビット。衝突脆弱性あり。証明書用途では使用禁止<br>SHA-256:256ビット。現在の標準。Bitcoinでも使用<br>SHA-3:Keccakアルゴリズム。SHA-2と並行して使える代替</div><p>ハッシュの3性質:①衝突耐性(同じハッシュを持つ別データを作れない)②第二原像耐性(ハッシュ値から元データを求められない)③雪崩効果(入力が1ビット変わると出力が大きく変わる)</p><p>パスワード保存にはハッシュにソルト(ランダム値)を加えることでレインボーテーブル攻撃を防ぎます。bcrypt・Argon2が推奨。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'MD5・SHA-1は衝突脆弱性が実証されており現在は安全でない。SHA-256以上を使う。',
|
'MD5・SHA-1は衝突脆弱性が実証されており現在は安全でない。SHA-256以上を使う。',
|
||||||
'ハッシュは一方向(復号不可)。「ハッシュ値からパスワードを復元」はできない→レインボーテーブルは元の値のハッシュを事前計算して照合するもの。',
|
'ハッシュは一方向(復号不可)。「ハッシュ値からパスワードを復元」はできない→レインボーテーブルは元の値のハッシュを事前計算して照合するもの。',
|
||||||
|
|
@ -172,7 +172,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s09', num:'S09', title:'PKI・TLS', freq:'high', diff:2,
|
{ id:'s09', num:'S09', title:'PKI・TLS', freq:'high', diff:2,
|
||||||
concept:`<p><strong>PKI</strong>(Public Key Infrastructure)は公開鍵の正当性を証明する仕組みです。中核となるのが<strong>認証局(CA)</strong>が発行する<strong>デジタル証明書(X.509)</strong>です。</p><div class="viz-flow"><div class="vf-node">CA<div class="vf-sub">認証局</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">証明書<div class="vf-sub">公開鍵+CAの署名</div></div><div class="vf-arrow">→</div><div class="vf-node">ブラウザ<div class="vf-sub">CAの公開鍵で検証</div></div></div><p>TLS 1.3のハンドシェイク:①サーバ証明書を送る②クライアントがCAチェーンを検証③ECDHで共通鍵を合意④AES-GCMで通信開始。開発者にとってHTTPS=TLSは日常的な技術です。</p><div class="formula-box"><div class="formula-label">証明書の失効確認</div>CRL(証明書失効リスト):失効した証明書のリスト。定期更新<br>OCSP(Online Certificate Status Protocol):リアルタイムで1証明書の状態を確認<br>OCSP Stapling:サーバ自身が失効情報をキャッシュしてクライアントに渡す</div>`,
|
concept:`<p><strong>PKI</strong>(Public Key Infrastructure)は公開鍵の正当性を証明する仕組みです。中核となるのが<strong>認証局(CA)</strong>が発行する<strong>デジタル証明書(X.509)</strong>です。</p><div class="formula-box"><div class="formula-label">初学者向け:HTTPS・TLS</div>ブラウザとサーバのあいだを<strong>TLS</strong>で保護した通信が HTTPS。<strong>CA</strong>が「この公開鍵は本物のサーバのもの」と証明書で保証するイメージ。</div><div class="viz-flow"><div class="vf-node">CA<div class="vf-sub">認証局</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">証明書<div class="vf-sub">公開鍵+CAの署名</div></div><div class="vf-arrow">→</div><div class="vf-node">ブラウザ<div class="vf-sub">CAの公開鍵で検証</div></div></div><p>TLS 1.3のハンドシェイク:①サーバ証明書を送る②クライアントがCAチェーンを検証③ECDHで共通鍵を合意④AES-GCMで通信開始。開発者にとってHTTPS=TLSは日常的な技術です。</p><div class="formula-box"><div class="formula-label">証明書の失効確認</div>CRL(証明書失効リスト):失効した証明書のリスト。定期更新<br>OCSP(Online Certificate Status Protocol):リアルタイムで1証明書の状態を確認<br>OCSP Stapling:サーバ自身が失効情報をキャッシュしてクライアントに渡す</div>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'ルートCA→中間CA→サーバ証明書のチェーン(信頼の連鎖)を理解する。ブラウザはルートCAを信頼リストで持つ。',
|
'ルートCA→中間CA→サーバ証明書のチェーン(信頼の連鎖)を理解する。ブラウザはルートCAを信頼リストで持つ。',
|
||||||
'TLS1.2と1.3の違い:TLS1.3はハンドシェイクが1-RTTに短縮、前方秘匿性(PFS)がデフォルト。',
|
'TLS1.2と1.3の違い:TLS1.3はハンドシェイクが1-RTTに短縮、前方秘匿性(PFS)がデフォルト。',
|
||||||
|
|
@ -195,7 +195,7 @@ export const CATEGORIES = [
|
||||||
]},
|
]},
|
||||||
{ id:'network', label:'ネットワーク防御', icon:'network', units:[
|
{ id:'network', label:'ネットワーク防御', icon:'network', units:[
|
||||||
{ id:'s10', num:'S10', title:'ファイアウォール・DMZ', freq:'high', diff:2,
|
{ id:'s10', num:'S10', title:'ファイアウォール・DMZ', freq:'high', diff:2,
|
||||||
concept:`<p><strong>ファイアウォール</strong>はネットワーク境界でトラフィックをフィルタリングします。<strong>DMZ</strong>(非武装地帯)はインターネットと内部ネットワークの間に置く中間ゾーンで、Webサーバ等の公開サービスを置きます。</p><div class="viz-layers"><div class="layer-item layer-1">インターネット(外部)<span class="layer-sub">不特定多数のアクセス</span></div><div class="layer-item layer-2">DMZ(非武装地帯)<span class="layer-sub">Webサーバ・DNSサーバ・メールサーバ</span></div><div class="layer-item layer-3">内部ネットワーク<span class="layer-sub">社内PC・DBサーバ・ファイルサーバ</span></div></div><div class="formula-box"><div class="formula-label">ファイアウォールの種類</div>パケットフィルタリング:IPアドレス・ポートで許可/拒否。高速だがアプリ層の攻撃に弱い<br>SPI(ステートフルパケットインスペクション):コネクション状態を追跡。戻りパケットを自動許可<br>アプリケーションゲートウェイ:プロキシとして動作。アプリ層まで検査</div>`,
|
concept:`<p><strong>ファイアウォール</strong>はネットワーク境界でトラフィックをフィルタリングします。<strong>DMZ</strong>(非武装地帯)はインターネットと内部ネットワークの間に置く中間ゾーンで、Webサーバ等の公開サービスを置きます。</p><div class="formula-box"><div class="formula-label">初学者向け:DMZのイメージ</div>インターネットと社内の<strong>中間</strong>に置くゾーン。外部公開のWebだけここに置き、DBなど重要データは内側に隔離する考え方。</div><div class="viz-layers"><div class="layer-item layer-1">インターネット(外部)<span class="layer-sub">不特定多数のアクセス</span></div><div class="layer-item layer-2">DMZ(非武装地帯)<span class="layer-sub">Webサーバ・DNSサーバ・メールサーバ</span></div><div class="layer-item layer-3">内部ネットワーク<span class="layer-sub">社内PC・DBサーバ・ファイルサーバ</span></div></div><div class="formula-box"><div class="formula-label">ファイアウォールの種類</div>パケットフィルタリング:IPアドレス・ポートで許可/拒否。高速だがアプリ層の攻撃に弱い<br>SPI(ステートフルパケットインスペクション):コネクション状態を追跡。戻りパケットを自動許可<br>アプリケーションゲートウェイ:プロキシとして動作。アプリ層まで検査</div>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'DMZにはWebサーバ・メールサーバを置く。DBサーバはDMZではなく内部ネットワークに置く(頻出引っかけ)。',
|
'DMZにはWebサーバ・メールサーバを置く。DBサーバはDMZではなく内部ネットワークに置く(頻出引っかけ)。',
|
||||||
'デフォルト拒否(ホワイトリスト型)が原則。「明示的に許可されていないものは拒否」。',
|
'デフォルト拒否(ホワイトリスト型)が原則。「明示的に許可されていないものは拒否」。',
|
||||||
|
|
@ -215,7 +215,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s11', num:'S11', title:'IDS・IPS・WAF', freq:'high', diff:2,
|
{ id:'s11', num:'S11', title:'IDS・IPS・WAF', freq:'high', diff:2,
|
||||||
concept:`<p>ファイアウォールを補完するセキュリティデバイスです。<strong>IDS</strong>は検知のみ、<strong>IPS</strong>は検知して遮断します。<strong>WAF</strong>はWebアプリケーション専用でHTTPレベルの攻撃を防ぎます。</p><div class="formula-box"><div class="formula-label">検知方式</div>シグネチャ型(不正検知):既知の攻撃パターンと照合。既知攻撃に強い・ゼロデイに弱い<br>アノマリ型(異常検知):正常な行動からの逸脱を検知。未知攻撃も検知可能・誤検知が多い</div><p>WAFの導入パターン:リバースプロキシ型が最も一般的。クラウドWAFはCDNと統合されることも多い。SQLインジェクション・XSS・CSRFを主に防ぎます。誤検知(FP)のチューニングが運用上の課題です。</p>`,
|
concept:`<p>ファイアウォールを補完するセキュリティデバイスです。<strong>IDS</strong>は検知のみ、<strong>IPS</strong>は検知して遮断します。<strong>WAF</strong>はWebアプリケーション専用でHTTPレベルの攻撃を防ぎます。</p><div class="formula-box"><div class="formula-label">初学者向け:IDS / IPS / WAF</div><strong>IDS</strong>=検知して知らせる。<strong>IPS</strong>=検知して<strong>遮断もする</strong>(通信の経路上に置く)。<strong>WAF</strong>はWebアプリ専用のフィルタ(HTTPの中身を見る)。</div><div class="formula-box"><div class="formula-label">検知方式</div>シグネチャ型(不正検知):既知の攻撃パターンと照合。既知攻撃に強い・ゼロデイに弱い<br>アノマリ型(異常検知):正常な行動からの逸脱を検知。未知攻撃も検知可能・誤検知が多い</div><p>WAFの導入パターン:リバースプロキシ型が最も一般的。クラウドWAFはCDNと統合されることも多い。SQLインジェクション・XSS・CSRFを主に防ぎます。誤検知(FP)のチューニングが運用上の課題です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'IDS(検知のみ)とIPS(検知+遮断)の違いは必須。「遮断」のワードがあればIPS。',
|
'IDS(検知のみ)とIPS(検知+遮断)の違いは必須。「遮断」のワードがあればIPS。',
|
||||||
'シグネチャ型はゼロデイ脆弱性の攻撃を検知できない。アノマリ型は未知攻撃を検知できるが誤検知率が高い。',
|
'シグネチャ型はゼロデイ脆弱性の攻撃を検知できない。アノマリ型は未知攻撃を検知できるが誤検知率が高い。',
|
||||||
|
|
@ -235,7 +235,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s12', num:'S12', title:'VPN', freq:'mid', diff:2,
|
{ id:'s12', num:'S12', title:'VPN', freq:'mid', diff:2,
|
||||||
concept:`<p><strong>VPN</strong>(Virtual Private Network)はパブリックネットワーク上に暗号化された仮想トンネルを作り、安全な通信路を提供します。</p><div class="formula-box"><div class="formula-label">主なVPN方式</div>IPsec-VPN:L3でパケット全体を暗号化。ESP/AHプロトコル。拠点間接続に多い<br>SSL/TLS-VPN:L5/7でHTTPS上にトンネル。ブラウザから利用可能。リモートアクセスに多い<br>WireGuard:最新の軽量プロトコル。ChaCha20/Poly1305を使用</div><p>IPsecの2モード:トランスポートモード(ペイロードのみ暗号化)とトンネルモード(パケット全体を暗号化して新しいIPヘッダを付与)。拠点間VPNではトンネルモードが一般的です。</p>`,
|
concept:`<p><strong>VPN</strong>(Virtual Private Network)はパブリックネットワーク上に暗号化された仮想トンネルを作り、安全な通信路を提供します。</p><div class="formula-box"><div class="formula-label">初学者向け:VPN</div>公衆回線の上に<strong>仮想の専用トンネル</strong>を作り、中身を暗号化して送る。在宅から社内へ、拠点同士の接続などで使うイメージ。</div><div class="formula-box"><div class="formula-label">主なVPN方式</div>IPsec-VPN:L3でパケット全体を暗号化。ESP/AHプロトコル。拠点間接続に多い<br>SSL/TLS-VPN:L5/7でHTTPS上にトンネル。ブラウザから利用可能。リモートアクセスに多い<br>WireGuard:最新の軽量プロトコル。ChaCha20/Poly1305を使用</div><p>IPsecの2モード:トランスポートモード(ペイロードのみ暗号化)とトンネルモード(パケット全体を暗号化して新しいIPヘッダを付与)。拠点間VPNではトンネルモードが一般的です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'IPsec-VPNはL3(ネットワーク層)、SSL-VPNはL5以上(セッション/アプリ層)での動作という層の違いが問われる。',
|
'IPsec-VPNはL3(ネットワーク層)、SSL-VPNはL5以上(セッション/アプリ層)での動作という層の違いが問われる。',
|
||||||
'IPsecのESP(Encapsulating Security Payload)は暗号化と認証の両方を提供。AH(Authentication Header)は認証のみ(暗号化なし)。',
|
'IPsecのESP(Encapsulating Security Payload)は暗号化と認証の両方を提供。AH(Authentication Header)は認証のみ(暗号化なし)。',
|
||||||
|
|
@ -255,7 +255,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s13', num:'S13', title:'DNSセキュリティ・メールセキュリティ', freq:'high', diff:2,
|
{ id:'s13', num:'S13', title:'DNSセキュリティ・メールセキュリティ', freq:'high', diff:2,
|
||||||
concept:`<p>DNSとメールはインターネットの基盤であり、攻撃の標的になりやすいプロトコルです。</p><div class="formula-box"><div class="formula-label">DNS攻撃と対策</div>DNSキャッシュポイズニング:偽のDNS応答をキャッシュに送り込む→DNSSEC・ランダムポートで対策<br>DNSハイジャック:DNSサーバ自体を乗っ取る→DNSSEC・監視<br>DNSSEC:DNSレスポンスにデジタル署名を付与し改ざんを検知</div><div class="formula-box"><div class="formula-label">メール認証技術</div>SPF(Sender Policy Framework):送信元IPをDNSで検証。なりすましドメイン対策<br>DKIM(DomainKeys Identified Mail):メールヘッダにデジタル署名。改ざん検知<br>DMARC:SPF/DKIMの結果に基づいて受信側の処理ポリシーを指定(拒否・隔離)</div>`,
|
concept:`<p>DNSとメールはインターネットの基盤であり、攻撃の標的になりやすいプロトコルです。</p><div class="formula-box"><div class="formula-label">初学者向け:DNSとメール認証</div><strong>DNS</strong>は名前をIPに変える仕組み(改ざんされると偽サイトに誘導される)。<strong>SPF・DKIM・DMARC</strong>は「このメールは本当にそのドメインからか」を確認するためのセット。</div><div class="formula-box"><div class="formula-label">DNS攻撃と対策</div>DNSキャッシュポイズニング:偽のDNS応答をキャッシュに送り込む→DNSSEC・ランダムポートで対策<br>DNSハイジャック:DNSサーバ自体を乗っ取る→DNSSEC・監視<br>DNSSEC:DNSレスポンスにデジタル署名を付与し改ざんを検知</div><div class="formula-box"><div class="formula-label">メール認証技術</div>SPF(Sender Policy Framework):送信元IPをDNSで検証。なりすましドメイン対策<br>DKIM(DomainKeys Identified Mail):メールヘッダにデジタル署名。改ざん検知<br>DMARC:SPF/DKIMの結果に基づいて受信側の処理ポリシーを指定(拒否・隔離)</div>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'SPF・DKIM・DMARCはセットで覚える。SPFはIP検証、DKIMは署名、DMARCはポリシー(どう処理するか)。',
|
'SPF・DKIM・DMARCはセットで覚える。SPFはIP検証、DKIMは署名、DMARCはポリシー(どう処理するか)。',
|
||||||
'DNSキャッシュポイズニングはカミンスキー攻撃が有名。ランダムポート番号とTXID乱数化が対策。',
|
'DNSキャッシュポイズニングはカミンスキー攻撃が有名。ランダムポート番号とTXID乱数化が対策。',
|
||||||
|
|
@ -276,7 +276,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s25', num:'S25', title:'無線LAN セキュリティ', freq:'high', diff:2,
|
{ id:'s25', num:'S25', title:'無線LAN セキュリティ', freq:'high', diff:2,
|
||||||
concept:`<p>無線LANは電波を使うため盗聴・なりすましへの対策が必須です。暗号化方式は世代を経るごとに強化されてきました。</p><div class="formula-box"><div class="formula-label">無線LAN暗号化方式の変遷</div>WEP(1997):RC4暗号・IV再利用の脆弱性あり。現在は使用禁止<br>WPA(2003):TKIP採用。WEPの緊急改善版<br>WPA2(2004):CCMP/AES採用。現在の最低基準<br>WPA3(2018):SAE(Simultaneous Authentication of Equals)で辞書攻撃対策・前方秘匿性</div><div class="formula-box"><div class="formula-label">企業向け認証(802.1X)</div>個人モード(PSK):事前共有鍵。家庭・小規模向け<br>企業モード(802.1X):RADIUS サーバが各ユーザーを認証<br> EAP-TLS:証明書ベース認証。最も安全<br> PEAP:トンネル内でパスワード認証<br> EAP-TTLS:PEAPの互換版</div><div class="viz-flow"><div class="vf-node">端末<div class="vf-sub">Supplicant</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">AP<div class="vf-sub">Authenticator</div></div><div class="vf-arrow">→</div><div class="vf-node">RADIUS<div class="vf-sub">Auth Server</div></div></div><p>主な攻撃:悪意あるAP(Evil Twin・偽AP)で中間者攻撃、WPS PINブルートフォース、PMKIDを使ったオフライン辞書攻撃。対策はWPA3・証明書認証・管理フレーム保護(PMF/802.11w)。</p>`,
|
concept:`<p>無線LANは電波を使うため盗聴・なりすましへの対策が必須です。暗号化方式は世代を経るごとに強化されてきました。</p><div class="formula-box"><div class="formula-label">初学者向け:無線LAN</div>有線と違い<strong>電波は傍受されやすい</strong>。古い WEP ではなく WPA2/WPA3 など現行の暗号化を使う。企業では<strong>802.1X+RADIUS</strong>で利用者ごとに認証することもある。</div><div class="formula-box"><div class="formula-label">無線LAN暗号化方式の変遷</div>WEP(1997):RC4暗号・IV再利用の脆弱性あり。現在は使用禁止<br>WPA(2003):TKIP採用。WEPの緊急改善版<br>WPA2(2004):CCMP/AES採用。現在の最低基準<br>WPA3(2018):SAE(Simultaneous Authentication of Equals)で辞書攻撃対策・前方秘匿性</div><div class="formula-box"><div class="formula-label">企業向け認証(802.1X)</div>個人モード(PSK):事前共有鍵。家庭・小規模向け<br>企業モード(802.1X):RADIUS サーバが各ユーザーを認証<br> EAP-TLS:証明書ベース認証。最も安全<br> PEAP:トンネル内でパスワード認証<br> EAP-TTLS:PEAPの互換版</div><div class="viz-flow"><div class="vf-node">端末<div class="vf-sub">Supplicant</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">AP<div class="vf-sub">Authenticator</div></div><div class="vf-arrow">→</div><div class="vf-node">RADIUS<div class="vf-sub">Auth Server</div></div></div><p>主な攻撃:悪意あるAP(Evil Twin・偽AP)で中間者攻撃、WPS PINブルートフォース、PMKIDを使ったオフライン辞書攻撃。対策はWPA3・証明書認証・管理フレーム保護(PMF/802.11w)。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'WEP は IV(初期化ベクタ)の再利用で解読される。試験では「使用禁止」の選択肢として正答になりやすい。',
|
'WEP は IV(初期化ベクタ)の再利用で解読される。試験では「使用禁止」の選択肢として正答になりやすい。',
|
||||||
'WPA3 の SAE(ドラゴンフライ鍵交換)は辞書攻撃耐性と前方秘匿性を提供。PSK より安全な認証フロー。',
|
'WPA3 の SAE(ドラゴンフライ鍵交換)は辞書攻撃耐性と前方秘匿性を提供。PSK より安全な認証フロー。',
|
||||||
|
|
@ -299,7 +299,7 @@ export const CATEGORIES = [
|
||||||
]},
|
]},
|
||||||
{ id:'attacks', label:'攻撃手法と対策', icon:'sword', units:[
|
{ id:'attacks', label:'攻撃手法と対策', icon:'sword', units:[
|
||||||
{ id:'s14', num:'S14', title:'マルウェア', freq:'high', diff:1,
|
{ id:'s14', num:'S14', title:'マルウェア', freq:'high', diff:1,
|
||||||
concept:`<p>マルウェアはMalicious Softwareの略で、悪意のあるプログラムの総称です。種類と感染経路・対策を整理します。</p><div class="formula-box"><div class="formula-label">主なマルウェアの種類</div>ウイルス:他のプログラムに寄生して感染拡大<br>ワーム:ネットワークを自力で伝播(ホスト不要)<br>トロイの木馬:正常なソフトに見せかけて侵入<br>ランサムウェア:ファイルを暗号化し身代金を要求<br>スパイウェア:情報を窃取して送信<br>ルートキット:管理者権限を奪い存在を隠蔽<br>ボット:C&Cサーバの指令でDDoS等に悪用</div><p>検知方式:シグネチャ型(パターン照合)・ビヘイビア型(振る舞い検知)・サンドボックス(隔離環境で動作確認)。ゼロデイマルウェアにはシグネチャが効かないためビヘイビア型が重要です。</p>`,
|
concept:`<p>マルウェアはMalicious Softwareの略で、悪意のあるプログラムの総称です。種類と感染経路・対策を整理します。</p><div class="formula-box"><div class="formula-label">初学者向け:マルウェア</div><strong>マルウェア</strong>=悪意のあるプログラムの総称。ウイルス・ワーム等の名前は「<strong>どう広がるか</strong>」が違うイメージで整理すると覚えやすい。</div><div class="formula-box"><div class="formula-label">主なマルウェアの種類</div>ウイルス:他のプログラムに寄生して感染拡大<br>ワーム:ネットワークを自力で伝播(ホスト不要)<br>トロイの木馬:正常なソフトに見せかけて侵入<br>ランサムウェア:ファイルを暗号化し身代金を要求<br>スパイウェア:情報を窃取して送信<br>ルートキット:管理者権限を奪い存在を隠蔽<br>ボット:C&Cサーバの指令でDDoS等に悪用</div><p>検知方式:シグネチャ型(パターン照合)・ビヘイビア型(振る舞い検知)・サンドボックス(隔離環境で動作確認)。ゼロデイマルウェアにはシグネチャが効かないためビヘイビア型が重要です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'ランサムウェア対策の3-2-1ルール:3つのバックアップ・2種類のメディア・1つはオフライン。試験でも対策として正答になりやすい。',
|
'ランサムウェア対策の3-2-1ルール:3つのバックアップ・2種類のメディア・1つはオフライン。試験でも対策として正答になりやすい。',
|
||||||
'ルートキットは感染後にOS自体を改ざんして自分を隠す。通常のアンチウイルスで検知しにくい。',
|
'ルートキットは感染後にOS自体を改ざんして自分を隠す。通常のアンチウイルスで検知しにくい。',
|
||||||
|
|
@ -320,7 +320,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s15', num:'S15', title:'Webアプリケーション攻撃', freq:'high', diff:2,
|
{ id:'s15', num:'S15', title:'Webアプリケーション攻撃', freq:'high', diff:2,
|
||||||
concept:`<p>Webアプリ開発者が必ず知るべき攻撃パターンです。OWASP Top 10の常連が試験でも頻出です。</p><div class="formula-box"><div class="formula-label">主要な攻撃と対策</div>SQLインジェクション:DB操作を注入。→プリペアドステートメント・入力検証<br>XSS(クロスサイトスクリプティング):悪意のあるスクリプトを挿入→エスケープ・CSP<br>CSRF(クロスサイトリクエストフォージェリ):ログイン中ユーザーに意図しないリクエスト→CSRFトークン・Same-Site Cookie<br>パストラバーサル:../でディレクトリを遡り任意ファイルを読む→パス正規化・バリデーション<br>コマンドインジェクション:OSコマンドを注入→外部コマンド使用禁止</div><p>XSSの種類:反射型(URLパラメータ経由)・格納型(DBに保存されたスクリプト)・DOMベース型(クライアントサイドJS処理)。試験では格納型が最も危険とされる。</p>`,
|
concept:`<p>Webアプリ開発者が必ず知るべき攻撃パターンです。OWASP Top 10の常連が試験でも頻出です。</p><div class="formula-box"><div class="formula-label">初学者向け:Web攻撃の心構え</div>入力と出力を<strong>信頼しない</strong>。SQLは文とデータを分離、XSSは表示前にエスケープ、CSRFは偽リクエスト対策、と役割が分かれている。</div><div class="formula-box"><div class="formula-label">主要な攻撃と対策</div>SQLインジェクション:DB操作を注入。→プリペアドステートメント・入力検証<br>XSS(クロスサイトスクリプティング):悪意のあるスクリプトを挿入→エスケープ・CSP<br>CSRF(クロスサイトリクエストフォージェリ):ログイン中ユーザーに意図しないリクエスト→CSRFトークン・Same-Site Cookie<br>パストラバーサル:../でディレクトリを遡り任意ファイルを読む→パス正規化・バリデーション<br>コマンドインジェクション:OSコマンドを注入→外部コマンド使用禁止</div><p>XSSの種類:反射型(URLパラメータ経由)・格納型(DBに保存されたスクリプト)・DOMベース型(クライアントサイドJS処理)。試験では格納型が最も危険とされる。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'SQLインジェクションの対策は「プリペアドステートメント(バインド変数)」が正答になる。エスケープだけでは不十分な場合がある。',
|
'SQLインジェクションの対策は「プリペアドステートメント(バインド変数)」が正答になる。エスケープだけでは不十分な場合がある。',
|
||||||
'XSS対策:出力時のHTMLエスケープ(< > 等)+Content Security Policy(CSP)ヘッダ。',
|
'XSS対策:出力時のHTMLエスケープ(< > 等)+Content Security Policy(CSP)ヘッダ。',
|
||||||
|
|
@ -341,7 +341,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s16', num:'S16', title:'パスワード攻撃・フィッシング', freq:'high', diff:1,
|
{ id:'s16', num:'S16', title:'パスワード攻撃・フィッシング', freq:'high', diff:1,
|
||||||
concept:`<p>パスワードとフィッシングはエンドユーザーを標的にした攻撃であり、技術的対策と人的対策の両方が必要です。</p><div class="formula-box"><div class="formula-label">パスワード攻撃の種類</div>ブルートフォース:全パターンを試す。アカウントロックで緩和<br>辞書攻撃:よく使われる単語リストを試す<br>パスワードスプレー:多アカウントに対し少数のPWを試す(ロック回避)<br>クレデンシャルスタッフィング:他サービスの漏洩リストを転用<br>レインボーテーブル:事前計算ハッシュとの照合。ソルトで無効化</div><p>フィッシング:正規サービスを偽った詐欺メールやサイトで認証情報を奪う。スピアフィッシング(特定の個人・組織を狙う)はターゲットを調査して巧妙な文面を作成します。ビジネスメール詐欺(BEC)はCEOや取引先を名乗り送金指示をするものです。</p>`,
|
concept:`<p>パスワードとフィッシングはエンドユーザーを標的にした攻撃であり、技術的対策と人的対策の両方が必要です。</p><div class="formula-box"><div class="formula-label">初学者向け:この単元の焦点</div>ログイン突破の手口(総当たり等)と、<strong>人を騙してパスワードを聞き出す</strong>フィッシングは別枠で覚える。後者は教育・手続きが効く。</div><div class="formula-box"><div class="formula-label">パスワード攻撃の種類</div>ブルートフォース:全パターンを試す。アカウントロックで緩和<br>辞書攻撃:よく使われる単語リストを試す<br>パスワードスプレー:多アカウントに対し少数のPWを試す(ロック回避)<br>クレデンシャルスタッフィング:他サービスの漏洩リストを転用<br>レインボーテーブル:事前計算ハッシュとの照合。ソルトで無効化</div><p>フィッシング:正規サービスを偽った詐欺メールやサイトで認証情報を奪う。スピアフィッシング(特定の個人・組織を狙う)はターゲットを調査して巧妙な文面を作成します。ビジネスメール詐欺(BEC)はCEOや取引先を名乗り送金指示をするものです。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'クレデンシャルスタッフィングは「他サービスで漏洩したIDとPWをそのまま別サービスに使う」。パスワードの使い回しが被害を広げる。',
|
'クレデンシャルスタッフィングは「他サービスで漏洩したIDとPWをそのまま別サービスに使う」。パスワードの使い回しが被害を広げる。',
|
||||||
'パスワードスプレー攻撃:少数のPW("Spring2024!"等)を多数のアカウントに試す。アカウントロックを回避するための手法。',
|
'パスワードスプレー攻撃:少数のPW("Spring2024!"等)を多数のアカウントに試す。アカウントロックを回避するための手法。',
|
||||||
|
|
@ -362,7 +362,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s17', num:'S17', title:'DoS/DDoS・APT', freq:'high', diff:2,
|
{ id:'s17', num:'S17', title:'DoS/DDoS・APT', freq:'high', diff:2,
|
||||||
concept:`<p><strong>DoS/DDoS</strong>はサービスを停止させる攻撃(可用性の侵害)、<strong>APT</strong>(Advanced Persistent Threat)は国家レベルの高度な標的型持続攻撃です。</p><div class="formula-box"><div class="formula-label">DDoS攻撃の種類</div>Volumetric(帯域消費型):大量トラフィックで帯域を埋める(UDP flood・ICMP flood)<br>Protocol(プロトコル型):SYN floodでサーバリソースを枯渇させる<br>Application(アプリ型):HTTP floodでWebサーバのCPUを使い切る<br>Amplification(増幅型):DNSやNTPを踏み台にして大量レスポンスを標的に向ける</div><p>APTはKill Chain(偵察→侵入→水平移動→持続化→情報窃取)で進む多段階攻撃です。MITRE ATT&CK フレームワークはATTのTTPを体系化したもので、防御側が攻撃者の行動を予測するために使います。</p>`,
|
concept:`<p><strong>DoS/DDoS</strong>はサービスを停止させる攻撃(可用性の侵害)、<strong>APT</strong>(Advanced Persistent Threat)は国家レベルの高度な標的型持続攻撃です。</p><div class="formula-box"><div class="formula-label">初学者向け:DoSとAPT</div><strong>DoS/DDoS</strong>は「サービスを詰まらせて使えなくする」。<strong>APT</strong>は「狙いを定め長期で潜伏する」攻撃として試験で対比されやすい。</div><div class="formula-box"><div class="formula-label">DDoS攻撃の種類</div>Volumetric(帯域消費型):大量トラフィックで帯域を埋める(UDP flood・ICMP flood)<br>Protocol(プロトコル型):SYN floodでサーバリソースを枯渇させる<br>Application(アプリ型):HTTP floodでWebサーバのCPUを使い切る<br>Amplification(増幅型):DNSやNTPを踏み台にして大量レスポンスを標的に向ける</div><p>APTはKill Chain(偵察→侵入→水平移動→持続化→情報窃取)で進む多段階攻撃です。MITRE ATT&CK フレームワークはATTのTTPを体系化したもので、防御側が攻撃者の行動を予測するために使います。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'SYN flood:TCPのSYNパケットだけ大量送信しACKを返さない。サーバはhalf-open接続を大量保持しリソース枯渇。SYN Cookie/Proxyで対策。',
|
'SYN flood:TCPのSYNパケットだけ大量送信しACKを返さない。サーバはhalf-open接続を大量保持しリソース枯渇。SYN Cookie/Proxyで対策。',
|
||||||
'DNSアンプ攻撃:小さいDNSクエリに大きいレスポンスが返ることを悪用。送信元IPを詐称して標的に大量レスポンスを向ける。',
|
'DNSアンプ攻撃:小さいDNSクエリに大きいレスポンスが返ることを悪用。送信元IPを詐称して標的に大量レスポンスを向ける。',
|
||||||
|
|
@ -382,7 +382,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s18', num:'S18', title:'脆弱性管理', freq:'mid', diff:2,
|
{ id:'s18', num:'S18', title:'脆弱性管理', freq:'mid', diff:2,
|
||||||
concept:`<p>脆弱性管理はソフトウェアの欠陥を発見・評価・修正するサイクルです。ゼロデイ脆弱性は特に対応が難しく、多層防御が重要です。</p><div class="formula-box"><div class="formula-label">脆弱性評価・管理の仕組み</div>CVE(Common Vulnerabilities and Exposures):脆弱性の識別番号(例:CVE-2021-44228)<br>CVSS(Common Vulnerability Scoring System):脆弱性の深刻度スコア(0.0〜10.0)<br>NVD(National Vulnerability Database):米NISTが管理するCVEデータベース<br>JVN(Japan Vulnerability Notes):日本のIPAが運用する脆弱性情報データベース</div><p>脆弱性の種類:設計上の欠陥(CSRF等の仕様設計)・実装上のバグ(バッファオーバーフロー等)・設定ミス(デフォルトパスワード・不要サービスの放置)。設定ミスは最もよくある脆弱性の源です。</p>`,
|
concept:`<p>脆弱性管理はソフトウェアの欠陥を発見・評価・修正するサイクルです。ゼロデイ脆弱性は特に対応が難しく、多層防御が重要です。</p><div class="formula-box"><div class="formula-label">初学者向け:CVEとCVSS</div><strong>CVE</strong>は脆弱性の通し番号。<strong>CVSS</strong>は深刻さを点数化した指標。パッチの優先順位付けに使われるイメージ。</div><div class="formula-box"><div class="formula-label">脆弱性評価・管理の仕組み</div>CVE(Common Vulnerabilities and Exposures):脆弱性の識別番号(例:CVE-2021-44228)<br>CVSS(Common Vulnerability Scoring System):脆弱性の深刻度スコア(0.0〜10.0)<br>NVD(National Vulnerability Database):米NISTが管理するCVEデータベース<br>JVN(Japan Vulnerability Notes):日本のIPAが運用する脆弱性情報データベース</div><p>脆弱性の種類:設計上の欠陥(CSRF等の仕様設計)・実装上のバグ(バッファオーバーフロー等)・設定ミス(デフォルトパスワード・不要サービスの放置)。設定ミスは最もよくある脆弱性の源です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'CVSS v3の基本スコアは0.0〜10.0。Critical(9.0〜10.0)・High(7.0〜8.9)・Medium・Low・None。',
|
'CVSS v3の基本スコアは0.0〜10.0。Critical(9.0〜10.0)・High(7.0〜8.9)・Medium・Low・None。',
|
||||||
'ゼロデイ脆弱性:パッチが存在しない状態での攻撃。ワークアラウンド(回避策)で暫定対応するしかない。',
|
'ゼロデイ脆弱性:パッチが存在しない状態での攻撃。ワークアラウンド(回避策)で暫定対応するしかない。',
|
||||||
|
|
@ -402,7 +402,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s23', num:'S23', title:'サプライチェーン・DevSecOps', freq:'high', diff:2,
|
{ id:'s23', num:'S23', title:'サプライチェーン・DevSecOps', freq:'high', diff:2,
|
||||||
concept:`<p>ソフトウェア開発はOSSコンポーネントや外部ベンダーに依存しており、その供給経路(サプライチェーン)への攻撃が2020年代の重大な脅威となっています。<strong>DevSecOps</strong>は開発(Dev)・セキュリティ(Sec)・運用(Ops)を統合するアプローチです。</p><div class="formula-box"><div class="formula-label">サプライチェーン攻撃の代表例</div>SolarWinds 事件(2020):正規のソフトウェア更新に悪意あるコードを混入<br>Log4Shell(CVE-2021-44228):広く使われるOSSライブラリの脆弱性が多数の製品に波及<br>XZ Utils バックドア(2024):メンテナーへのソーシャルエンジニアリングでOSSにバックドアを挿入</div><div class="formula-box"><div class="formula-label">主な対策技術・フレームワーク</div>SBOM(Software Bill of Materials):ソフトウェアの部品表。依存コンポーネントを機械可読形式で管理<br>SLSA(Supply chain Levels for Software Artifacts):Googleが提唱するサプライチェーン完全性フレームワーク<br>Shift Left:セキュリティテストを開発の初期フェーズに前倒し<br>SAST/DAST:静的解析(コード)・動的解析(実行時)の自動セキュリティテスト<br>シークレット管理:認証情報をコードに書かずVault等で管理</div><p>CI/CDパイプラインはコードから本番環境への自動経路のため、悪意ある変更の大量配布リスクがあります。パイプライン自体のアクセス制御とシークレット管理が重要です。</p>`,
|
concept:`<p>ソフトウェア開発はOSSコンポーネントや外部ベンダーに依存しており、その供給経路(サプライチェーン)への攻撃が2020年代の重大な脅威となっています。<strong>DevSecOps</strong>は開発(Dev)・セキュリティ(Sec)・運用(Ops)を統合するアプローチです。</p><div class="formula-box"><div class="formula-label">初学者向け:サプライチェーン</div>自社コードだけでなく<strong>ライブラリ・ビルド・更新の経路</strong>まで含めた「ソフトの流れ」。そこを攻撃されると<strong>正規の配布経路</strong>で被害が広がる。</div><div class="formula-box"><div class="formula-label">サプライチェーン攻撃の代表例</div>SolarWinds 事件(2020):正規のソフトウェア更新に悪意あるコードを混入<br>Log4Shell(CVE-2021-44228):広く使われるOSSライブラリの脆弱性が多数の製品に波及<br>XZ Utils バックドア(2024):メンテナーへのソーシャルエンジニアリングでOSSにバックドアを挿入</div><div class="formula-box"><div class="formula-label">主な対策技術・フレームワーク</div>SBOM(Software Bill of Materials):ソフトウェアの部品表。依存コンポーネントを機械可読形式で管理<br>SLSA(Supply chain Levels for Software Artifacts):Googleが提唱するサプライチェーン完全性フレームワーク<br>Shift Left:セキュリティテストを開発の初期フェーズに前倒し<br>SAST/DAST:静的解析(コード)・動的解析(実行時)の自動セキュリティテスト<br>シークレット管理:認証情報をコードに書かずVault等で管理</div><p>CI/CDパイプラインはコードから本番環境への自動経路のため、悪意ある変更の大量配布リスクがあります。パイプライン自体のアクセス制御とシークレット管理が重要です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'SBOM は脆弱性が発覚した際に「自社製品のどのバージョンが影響を受けるか」を即座に特定できる。Log4Shell のような波及的脆弱性への対応で重要性が認識された。',
|
'SBOM は脆弱性が発覚した際に「自社製品のどのバージョンが影響を受けるか」を即座に特定できる。Log4Shell のような波及的脆弱性への対応で重要性が認識された。',
|
||||||
'Shift Left:開発の後期でなく設計・コーディング段階からセキュリティを組み込む。発見コストが最も低いフェーズで問題を潰す考え方。',
|
'Shift Left:開発の後期でなく設計・コーディング段階からセキュリティを組み込む。発見コストが最も低いフェーズで問題を潰す考え方。',
|
||||||
|
|
@ -423,7 +423,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s24', num:'S24', title:'AI セキュリティ', freq:'mid', diff:2,
|
{ id:'s24', num:'S24', title:'AI セキュリティ', freq:'mid', diff:2,
|
||||||
concept:`<p>生成AI・LLM(大規模言語モデル)の急速な普及に伴い、AI固有のセキュリティリスクが新たに生まれています。2026年現在、情報処理試験でも出題が始まっています。</p><div class="formula-box"><div class="formula-label">AI に対する主な攻撃手法</div>プロンプトインジェクション:悪意ある指示を入力に混入させ意図しない動作を誘発<br> → 直接型:ユーザーが直接モデルに悪意ある指示を入力<br> → 間接型:外部コンテンツ(Webページ・ドキュメント)経由で注入<br>データポイズニング:学習データに汚染データを混入しモデルの動作を操作<br>モデル反転攻撃:モデルの出力から学習データの情報を推測・復元<br>モデル抽出攻撃:大量のクエリを通じてモデルのロジックを盗み取る</div><div class="formula-box"><div class="formula-label">AI 利用時の情報セキュリティリスク</div>機密情報漏洩:プロンプトに機密情報・個人情報を入力すると外部に送信される<br>幻覚(Hallucination):誤情報の生成と信頼。セキュリティアドバイスの誤り<br>AIエージェントの過剰権限:自律的に行動するエージェントが不要なアクセスを取得</div><p>OWASP は LLM アプリケーション向けの「Top 10 for LLM Applications」を公開。プロンプトインジェクション・安全でないプラグイン設計・過度のエージェント自律性などがトップリスクに挙がっています。</p>`,
|
concept:`<p>生成AI・LLM(大規模言語モデル)の急速な普及に伴い、AI固有のセキュリティリスクが新たに生まれています。2026年現在、情報処理試験でも出題が始まっています。</p><div class="formula-box"><div class="formula-label">初学者向け:AI利用の前提</div>プロンプトは<strong>外部に送信される</strong>前提で扱う。機密は入れない・出力は人が検証する、が試験でも実務でも基本。</div><div class="formula-box"><div class="formula-label">AI に対する主な攻撃手法</div>プロンプトインジェクション:悪意ある指示を入力に混入させ意図しない動作を誘発<br> → 直接型:ユーザーが直接モデルに悪意ある指示を入力<br> → 間接型:外部コンテンツ(Webページ・ドキュメント)経由で注入<br>データポイズニング:学習データに汚染データを混入しモデルの動作を操作<br>モデル反転攻撃:モデルの出力から学習データの情報を推測・復元<br>モデル抽出攻撃:大量のクエリを通じてモデルのロジックを盗み取る</div><div class="formula-box"><div class="formula-label">AI 利用時の情報セキュリティリスク</div>機密情報漏洩:プロンプトに機密情報・個人情報を入力すると外部に送信される<br>幻覚(Hallucination):誤情報の生成と信頼。セキュリティアドバイスの誤り<br>AIエージェントの過剰権限:自律的に行動するエージェントが不要なアクセスを取得</div><p>OWASP は LLM アプリケーション向けの「Top 10 for LLM Applications」を公開。プロンプトインジェクション・安全でないプラグイン設計・過度のエージェント自律性などがトップリスクに挙がっています。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'プロンプトインジェクションは OWASP Top 10 for LLM(2025年版)の第1位。システムプロンプトの漏洩・安全フィルタのバイパスが典型的な攻撃結果。対策は入力検証・モデルの権限最小化。',
|
'プロンプトインジェクションは OWASP Top 10 for LLM(2025年版)の第1位。システムプロンプトの漏洩・安全フィルタのバイパスが典型的な攻撃結果。対策は入力検証・モデルの権限最小化。',
|
||||||
'社員が業務で生成 AI を使う際の情報漏洩:入力したプロンプトが学習データになる可能性・外部サービスへの送信リスク。組織は利用ガイドラインを整備し、機密情報の入力を禁止する必要がある。',
|
'社員が業務で生成 AI を使う際の情報漏洩:入力したプロンプトが学習データになる可能性・外部サービスへの送信リスク。組織は利用ガイドラインを整備し、機密情報の入力を禁止する必要がある。',
|
||||||
|
|
@ -444,7 +444,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s26', num:'S26', title:'ソーシャルエンジニアリング', freq:'high', diff:1,
|
{ id:'s26', num:'S26', title:'ソーシャルエンジニアリング', freq:'high', diff:1,
|
||||||
concept:`<p><strong>ソーシャルエンジニアリング</strong>は技術的な脆弱性ではなく、人間の心理・行動を操作して情報を騙し取る攻撃です。技術対策だけでは防げず、教育と手続きが重要です。</p><div class="formula-box"><div class="formula-label">主な攻撃手法</div>フィッシング(Phishing):偽のメール・Webサイトで認証情報を詐取<br>スピアフィッシング(Spear Phishing):特定の個人・組織を狙ったフィッシング<br>ホエーリング(Whaling):経営幹部(クジラ)を狙ったスピアフィッシング<br>ヴィッシング(Vishing):音声通話(Voice+Phishing)で情報詐取<br>スミッシング(Smishing):SMS(SMS+Phishing)で偽URLに誘導<br>BEC(Business Email Compromise):幹部・取引先を騙り振込詐欺や情報窃取<br>プリテキスティング(Pretexting):架空のシナリオを作り信頼を得る手口<br>ベイティング(Baiting):マルウェア入りUSBを置き去りにして拾わせる</div><p>テールゲーティング(ピギーバッキング):正規の入室者の後ろについて無断入場する物理的ソーシャルエンジニアリング。</p><p>対策:多層防御(MFA・DMARC)+訓練(標的型メール訓練)+手続き(電話確認・上長承認)。技術だけでは防げないため<strong>セキュリティ意識教育(Security Awareness Training)</strong>が不可欠です。</p>`,
|
concept:`<p><strong>ソーシャルエンジニアリング</strong>は技術的な脆弱性ではなく、人間の心理・行動を操作して情報を騙し取る攻撃です。技術対策だけでは防げず、教育と手続きが重要です。</p><div class="formula-box"><div class="formula-label">初学者向け:ソーシャルエンジニアリング</div>PCの穴ではなく<strong>人の心理</strong>を突く手口の総称。だから対策は<strong>技術+教育・手続き(二重確認など)</strong>のセットで問われる。</div><div class="formula-box"><div class="formula-label">主な攻撃手法</div>フィッシング(Phishing):偽のメール・Webサイトで認証情報を詐取<br>スピアフィッシング(Spear Phishing):特定の個人・組織を狙ったフィッシング<br>ホエーリング(Whaling):経営幹部(クジラ)を狙ったスピアフィッシング<br>ヴィッシング(Vishing):音声通話(Voice+Phishing)で情報詐取<br>スミッシング(Smishing):SMS(SMS+Phishing)で偽URLに誘導<br>BEC(Business Email Compromise):幹部・取引先を騙り振込詐欺や情報窃取<br>プリテキスティング(Pretexting):架空のシナリオを作り信頼を得る手口<br>ベイティング(Baiting):マルウェア入りUSBを置き去りにして拾わせる</div><p>テールゲーティング(ピギーバッキング):正規の入室者の後ろについて無断入場する物理的ソーシャルエンジニアリング。</p><p>対策:多層防御(MFA・DMARC)+訓練(標的型メール訓練)+手続き(電話確認・上長承認)。技術だけでは防げないため<strong>セキュリティ意識教育(Security Awareness Training)</strong>が不可欠です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'フィッシング系は名前と説明の組み合わせが出題される。特に「スピアフィッシング≠一般的なフィッシング」「ホエーリング=経営幹部狙い」「BEC=振込詐欺・情報漏洩」の3つを確実に区別すること。',
|
'フィッシング系は名前と説明の組み合わせが出題される。特に「スピアフィッシング≠一般的なフィッシング」「ホエーリング=経営幹部狙い」「BEC=振込詐欺・情報漏洩」の3つを確実に区別すること。',
|
||||||
'BEC(ビジネスメール詐欺):CEO や取引先に成りすまして送金指示を出す。メールの正当性確認が対策(電話で二重確認)。近年の試験で増加中。',
|
'BEC(ビジネスメール詐欺):CEO や取引先に成りすまして送金指示を出す。メールの正当性確認が対策(電話で二重確認)。近年の試験で増加中。',
|
||||||
|
|
@ -466,7 +466,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s27', num:'S27', title:'セキュアプログラミング', freq:'high', diff:2,
|
{ id:'s27', num:'S27', title:'セキュアプログラミング', freq:'high', diff:2,
|
||||||
concept:`<p>安全なソフトウェアを開発するために、コード実装レベルの脆弱性を理解し回避する技法です。支援士試験ではコードの脆弱性と対策の組み合わせが問われます。</p><div class="formula-box"><div class="formula-label">主な脆弱性とコード上の原因</div>バッファオーバーフロー:確保したメモリ領域を超えて書き込む。C言語の gets/strcpy 等で発生<br> → 対策:境界チェック関数(fgets, strncpy)・ASLR・スタックカナリア<br>整数オーバーフロー:型の最大値を超えた演算。負数化・ゼロ除算につながる<br>フォーマット文字列攻撃:printf(user_input) のように書式文字列にユーザー入力を渡す<br> → 対策:printf("%s", user_input) と固定書式を使う<br>Use-After-Free:解放済みメモリへのアクセス。ヒープ破壊・任意コード実行につながる<br>競合状態(Race Condition):TOCTOU(Time-of-Check-Time-of-Use)問題</div><div class="formula-box"><div class="formula-label">セキュアコーディングの原則</div>入力検証:信頼できない入力は全て検証(ホワイトリスト方式が原則)<br>出力エスケープ:HTML/SQL/コマンドへの出力時は適切にエスケープ<br>最小権限:プロセス・ファイル・DBアカウントは必要最小限の権限<br>エラー処理:内部情報を漏洩しないエラーメッセージ</div><p>OWASP ASVS(Application Security Verification Standard)は Webアプリのセキュリティ要件を体系化したフレームワーク。CERT Coding Standards はコードレベルのセキュアプログラミング規約です。</p>`,
|
concept:`<p>安全なソフトウェアを開発するために、コード実装レベルの脆弱性を理解し回避する技法です。支援士試験ではコードの脆弱性と対策の組み合わせが問われます。</p><div class="formula-box"><div class="formula-label">初学者向け:セキュアプログラミング</div>「入力は悪意があるかもしれない」前提で、境界チェック・エスケープ・最小権限などを<strong>コードで守る</strong>考え方。</div><div class="formula-box"><div class="formula-label">主な脆弱性とコード上の原因</div>バッファオーバーフロー:確保したメモリ領域を超えて書き込む。C言語の gets/strcpy 等で発生<br> → 対策:境界チェック関数(fgets, strncpy)・ASLR・スタックカナリア<br>整数オーバーフロー:型の最大値を超えた演算。負数化・ゼロ除算につながる<br>フォーマット文字列攻撃:printf(user_input) のように書式文字列にユーザー入力を渡す<br> → 対策:printf("%s", user_input) と固定書式を使う<br>Use-After-Free:解放済みメモリへのアクセス。ヒープ破壊・任意コード実行につながる<br>競合状態(Race Condition):TOCTOU(Time-of-Check-Time-of-Use)問題</div><div class="formula-box"><div class="formula-label">セキュアコーディングの原則</div>入力検証:信頼できない入力は全て検証(ホワイトリスト方式が原則)<br>出力エスケープ:HTML/SQL/コマンドへの出力時は適切にエスケープ<br>最小権限:プロセス・ファイル・DBアカウントは必要最小限の権限<br>エラー処理:内部情報を漏洩しないエラーメッセージ</div><p>OWASP ASVS(Application Security Verification Standard)は Webアプリのセキュリティ要件を体系化したフレームワーク。CERT Coding Standards はコードレベルのセキュアプログラミング規約です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'バッファオーバーフローは「確保した領域を超えて書き込む」ことで戻りアドレスを書き換え任意コードを実行できる。対策は境界チェック・コンパイラ保護(スタックカナリア・ASLR)。',
|
'バッファオーバーフローは「確保した領域を超えて書き込む」ことで戻りアドレスを書き換え任意コードを実行できる。対策は境界チェック・コンパイラ保護(スタックカナリア・ASLR)。',
|
||||||
'フォーマット文字列攻撃:`printf(str)` のような実装でユーザーが `%x %x` などを入力するとメモリダンプができてしまう。`printf("%s", str)` と書式文字列を固定するだけで防げる。',
|
'フォーマット文字列攻撃:`printf(str)` のような実装でユーザーが `%x %x` などを入力するとメモリダンプができてしまう。`printf("%s", str)` と書式文字列を固定するだけで防げる。',
|
||||||
|
|
@ -490,7 +490,7 @@ export const CATEGORIES = [
|
||||||
]},
|
]},
|
||||||
{ id:'management', label:'管理・法規', icon:'scale', units:[
|
{ id:'management', label:'管理・法規', icon:'scale', units:[
|
||||||
{ id:'s19', num:'S19', title:'インシデント対応・CSIRT', freq:'high', diff:2,
|
{ id:'s19', num:'S19', title:'インシデント対応・CSIRT', freq:'high', diff:2,
|
||||||
concept:`<p>インシデント対応は<strong>PDCA</strong>ではなく<strong>PICERF</strong>サイクル(準備→識別→封じ込め→根絶→復旧→事後レビュー)で考えます。<strong>CSIRT</strong>(Computer Security Incident Response Team)は組織内外のインシデントを専門に扱うチームです。</p><div class="formula-box"><div class="formula-label">インシデント対応フェーズ(NIST SP 800-61)</div>1. 準備(Preparation):体制・ツール・手順書の整備<br>2. 検知・分析(Detection & Analysis):インシデントの識別と影響範囲確認<br>3. 封じ込め(Containment):被害の拡大防止(ネットワーク切断等)<br>4. 根絶(Eradication):マルウェア除去・脆弱性修正<br>5. 復旧(Recovery):サービス再開・モニタリング<br>6. 事後レビュー(Post-incident Activity):再発防止策の策定</div><p>SIEM(Security Information and Event Management):複数のログを統合して異常を検知するプラットフォーム。SOC(Security Operations Center)はSIEMを監視する専門チームです。</p>`,
|
concept:`<p>インシデント対応は<strong>PDCA</strong>ではなく<strong>PICERF</strong>サイクル(準備→識別→封じ込め→根絶→復旧→事後レビュー)で考えます。<strong>CSIRT</strong>(Computer Security Incident Response Team)は組織内外のインシデントを専門に扱うチームです。</p><div class="formula-box"><div class="formula-label">初学者向け:インシデント</div>セキュリティ上の問題が<strong>実際に起きた事象</strong>。まず被害を広げない(封じ込め)→除去→復旧、の順序が試験でよく問われる。</div><div class="formula-box"><div class="formula-label">インシデント対応フェーズ(NIST SP 800-61)</div>1. 準備(Preparation):体制・ツール・手順書の整備<br>2. 検知・分析(Detection & Analysis):インシデントの識別と影響範囲確認<br>3. 封じ込め(Containment):被害の拡大防止(ネットワーク切断等)<br>4. 根絶(Eradication):マルウェア除去・脆弱性修正<br>5. 復旧(Recovery):サービス再開・モニタリング<br>6. 事後レビュー(Post-incident Activity):再発防止策の策定</div><p>SIEM(Security Information and Event Management):複数のログを統合して異常を検知するプラットフォーム。SOC(Security Operations Center)はSIEMを監視する専門チームです。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'封じ込め(Containment)は根絶より先に行う。まず被害を止め、その後マルウェアを除去する。',
|
'封じ込め(Containment)は根絶より先に行う。まず被害を止め、その後マルウェアを除去する。',
|
||||||
'フォレンジックス:デジタル証拠の収集・保全・分析。証拠の連鎖(Chain of Custody)を保つことが重要。',
|
'フォレンジックス:デジタル証拠の収集・保全・分析。証拠の連鎖(Chain of Custody)を保つことが重要。',
|
||||||
|
|
@ -511,7 +511,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s20', num:'S20', title:'法規・評価基準', freq:'high', diff:2,
|
{ id:'s20', num:'S20', title:'法規・評価基準', freq:'high', diff:2,
|
||||||
concept:`<p>情報セキュリティに関わる法律・制度・評価基準を整理します。試験では法律の名前と対象・罰則の組み合わせが問われます。</p><div class="formula-box"><div class="formula-label">主な法律・制度</div>不正アクセス禁止法:不正アクセス行為そのものを禁止(クラッキング・フィッシング等)<br>個人情報保護法:個人情報の取得・利用・保管・第三者提供の規制。漏洩時の報告義務<br>サイバーセキュリティ基本法:国のサイバーセキュリティ戦略の基盤。NISC設置の根拠法<br>不正競争防止法:営業秘密の保護。漏洩・横領に刑事罰<br>電子署名法:電子署名の法的効力を定める</div><div class="formula-box"><div class="formula-label">評価基準・フレームワーク</div>ISO/IEC 15408(CC:Common Criteria):製品のセキュリティ評価基準。EALレベルで評価<br>PCI DSS:クレジットカード業界のセキュリティ基準(加盟店・決済事業者向け、12要件で構成)<br>NIST SP 800シリーズ:米国のセキュリティガイドライン群<br>NIST CSF 2.0(2024年2月):Govern(統治)を追加した6機能(G-IPDRR)<br> Govern→Identify→Protect→Detect→Respond→Recover<br>ISO/IEC 27001:ISMS の国際規格(Annex A に管理策を列挙)</div>`,
|
concept:`<p>情報セキュリティに関わる法律・制度・評価基準を整理します。試験では法律の名前と対象・罰則の組み合わせが問われます。</p><div class="formula-box"><div class="formula-label">初学者向け:法令と枠組み</div>法律は<strong>守らなければならないルール</strong>。ISO や NIST CSF は<strong>良い実践の枠組み</strong>として出る(義務と自発を混同しない)。</div><div class="formula-box"><div class="formula-label">主な法律・制度</div>不正アクセス禁止法:不正アクセス行為そのものを禁止(クラッキング・フィッシング等)<br>個人情報保護法:個人情報の取得・利用・保管・第三者提供の規制。漏洩時の報告義務<br>サイバーセキュリティ基本法:国のサイバーセキュリティ戦略の基盤。NISC設置の根拠法<br>不正競争防止法:営業秘密の保護。漏洩・横領に刑事罰<br>電子署名法:電子署名の法的効力を定める</div><div class="formula-box"><div class="formula-label">評価基準・フレームワーク</div>ISO/IEC 15408(CC:Common Criteria):製品のセキュリティ評価基準。EALレベルで評価<br>PCI DSS:クレジットカード業界のセキュリティ基準(加盟店・決済事業者向け、12要件で構成)<br>NIST SP 800シリーズ:米国のセキュリティガイドライン群<br>NIST CSF 2.0(2024年2月):Govern(統治)を追加した6機能(G-IPDRR)<br> Govern→Identify→Protect→Detect→Respond→Recover<br>ISO/IEC 27001:ISMS の国際規格(Annex A に管理策を列挙)</div>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'不正アクセス禁止法:権限なしのコンピュータへの不正ログインを禁止。ポートスキャンだけでは違反にならないが、脆弱性を突いた侵入は違反。',
|
'不正アクセス禁止法:権限なしのコンピュータへの不正ログインを禁止。ポートスキャンだけでは違反にならないが、脆弱性を突いた侵入は違反。',
|
||||||
'個人情報保護法:令和4年(2022年)施行で漏洩報告義務化・個人関連情報追加。令和8年(2026年)4月改正法案で<strong>課徴金制度</strong>が新設予定(違法利得への制裁強化)。',
|
'個人情報保護法:令和4年(2022年)施行で漏洩報告義務化・個人関連情報追加。令和8年(2026年)4月改正法案で<strong>課徴金制度</strong>が新設予定(違法利得への制裁強化)。',
|
||||||
|
|
@ -533,7 +533,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s21', num:'S21', title:'クラウドセキュリティ', freq:'high', diff:2,
|
{ id:'s21', num:'S21', title:'クラウドセキュリティ', freq:'high', diff:2,
|
||||||
concept:`<p>クラウドサービスは利用形態(IaaS/PaaS/SaaS)によって、提供者とユーザーのセキュリティ責任範囲が異なります。これを<strong>責任共有モデル</strong>(Shared Responsibility Model)と呼びます。</p><div class="formula-box"><div class="formula-label">責任共有モデルの例(IaaS)</div>クラウド事業者の責任:物理インフラ・ハイパーバイザ・ネットワーク<br>ユーザーの責任:OS・ミドルウェア・アプリ・データ・IAM・暗号化設定<br><br>SaaS に近づくほどユーザーの責任は減るが、<strong>IAMとデータの責任は常にユーザー側</strong></div><p>クラウド特有のセキュリティリスクとして設定ミスが最多。S3バケット公開設定やルートアカウントのMFA無効化などが典型例です。</p><div class="formula-box"><div class="formula-label">主なクラウドセキュリティ技術</div>CASB(Cloud Access Security Broker):クラウドサービスへのアクセスを可視化・制御する中間プロキシ<br>CSPM(Cloud Security Posture Management):クラウド設定のセキュリティポリシー準拠を継続的に検証<br>SWG(Secure Web Gateway):Webアクセスをフィルタリング。ゼロトラストで境界の代替<br>CWPP(Cloud Workload Protection Platform):クラウド上のワークロードを保護</div>`,
|
concept:`<p>クラウドサービスは利用形態(IaaS/PaaS/SaaS)によって、提供者とユーザーのセキュリティ責任範囲が異なります。これを<strong>責任共有モデル</strong>(Shared Responsibility Model)と呼びます。</p><div class="formula-box"><div class="formula-label">初学者向け:クラウドの責任</div>物理・基盤は事業者側に寄せられる一方、<strong>誰がアクセスできるか(IAM)・中身のデータ</strong>は利用者側に残りやすい、と覚える。</div><div class="formula-box"><div class="formula-label">責任共有モデルの例(IaaS)</div>クラウド事業者の責任:物理インフラ・ハイパーバイザ・ネットワーク<br>ユーザーの責任:OS・ミドルウェア・アプリ・データ・IAM・暗号化設定<br><br>SaaS に近づくほどユーザーの責任は減るが、<strong>IAMとデータの責任は常にユーザー側</strong></div><p>クラウド特有のセキュリティリスクとして設定ミスが最多。S3バケット公開設定やルートアカウントのMFA無効化などが典型例です。</p><div class="formula-box"><div class="formula-label">主なクラウドセキュリティ技術</div>CASB(Cloud Access Security Broker):クラウドサービスへのアクセスを可視化・制御する中間プロキシ<br>CSPM(Cloud Security Posture Management):クラウド設定のセキュリティポリシー準拠を継続的に検証<br>SWG(Secure Web Gateway):Webアクセスをフィルタリング。ゼロトラストで境界の代替<br>CWPP(Cloud Workload Protection Platform):クラウド上のワークロードを保護</div>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'責任共有モデルは頻出。「物理層はクラウド事業者、IAMとデータはユーザー責任」を軸に理解する。SaaSでも「誰がアクセスできるか(IAM)」はユーザー責任。',
|
'責任共有モデルは頻出。「物理層はクラウド事業者、IAMとデータはユーザー責任」を軸に理解する。SaaSでも「誰がアクセスできるか(IAM)」はユーザー責任。',
|
||||||
'CASB:シャドーIT(未承認クラウド利用)の可視化にも使われる。「クラウドへのアクセスを制御する中間ブローカー」という説明で選択肢に出やすい。',
|
'CASB:シャドーIT(未承認クラウド利用)の可視化にも使われる。「クラウドへのアクセスを制御する中間ブローカー」という説明で選択肢に出やすい。',
|
||||||
|
|
@ -554,7 +554,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s22', num:'S22', title:'OAuth 2.0/OIDC/SAML', freq:'high', diff:2,
|
{ id:'s22', num:'S22', title:'OAuth 2.0/OIDC/SAML', freq:'high', diff:2,
|
||||||
concept:`<p>現代のWebサービスでIDを連携させる3つのプロトコルを整理します。<strong>OAuth 2.0</strong>は「認可(Authorization)」、<strong>OIDC</strong>は「認証(Authentication)」、<strong>SAML</strong>はエンタープライズの「フェデレーション認証」です。</p><div class="formula-box"><div class="formula-label">3プロトコルの役割</div>OAuth 2.0:リソースへのアクセス権を第三者に委譲する認可フレームワーク<br> →「Googleドライブに○○アプリのアクセスを許可する」はOAuth 2.0<br>OIDC(OpenID Connect):OAuth 2.0の上に認証レイヤーを追加<br> →「Googleアカウントで△△にログイン」はOIDC<br>SAML 2.0:XMLベースのSSO標準。企業向け(IdP/SPの概念の基盤)</div><div class="viz-flow"><div class="vf-node">ユーザー<div class="vf-sub">ブラウザ</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">IdP<div class="vf-sub">認可/認証</div></div><div class="vf-arrow">→</div><div class="vf-node">トークン<div class="vf-sub">JWT/SAML</div></div><div class="vf-arrow">→</div><div class="vf-node">SP/RP<div class="vf-sub">検証・許可</div></div></div><p>JWTはHeader.Payload.Signatureの3部構成。Payloadにsub(ユーザーID)やexp(有効期限)などのクレームを格納します。IDaaSはこれらを統合したSaaS型のID管理サービスです(Azure AD/Okta等)。</p>`,
|
concept:`<p>現代のWebサービスでIDを連携させる3つのプロトコルを整理します。<strong>OAuth 2.0</strong>は「認可(Authorization)」、<strong>OIDC</strong>は「認証(Authentication)」、<strong>SAML</strong>はエンタープライズの「フェデレーション認証」です。</p><div class="formula-box"><div class="formula-label">初学者向け:OAuth と OIDC</div><strong>OAuth</strong>=「このアプリにこのAPIへのアクセスを許す」(<strong>認可</strong>)。<strong>OIDC</strong>=その上で「誰としてログインしたか」も渡す(<strong>認証</strong>)。混同されやすいので区別する。</div><div class="formula-box"><div class="formula-label">3プロトコルの役割</div>OAuth 2.0:リソースへのアクセス権を第三者に委譲する認可フレームワーク<br> →「Googleドライブに○○アプリのアクセスを許可する」はOAuth 2.0<br>OIDC(OpenID Connect):OAuth 2.0の上に認証レイヤーを追加<br> →「Googleアカウントで△△にログイン」はOIDC<br>SAML 2.0:XMLベースのSSO標準。企業向け(IdP/SPの概念の基盤)</div><div class="viz-flow"><div class="vf-node">ユーザー<div class="vf-sub">ブラウザ</div></div><div class="vf-arrow">→</div><div class="vf-node vf-hl">IdP<div class="vf-sub">認可/認証</div></div><div class="vf-arrow">→</div><div class="vf-node">トークン<div class="vf-sub">JWT/SAML</div></div><div class="vf-arrow">→</div><div class="vf-node">SP/RP<div class="vf-sub">検証・許可</div></div></div><p>JWTはHeader.Payload.Signatureの3部構成。Payloadにsub(ユーザーID)やexp(有効期限)などのクレームを格納します。IDaaSはこれらを統合したSaaS型のID管理サービスです(Azure AD/Okta等)。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'OAuth 2.0は「認可」フレームワーク(誰が何をできるか)。OIDC は OAuth 2.0 の上に「認証(誰か)」を追加。この2層構造を混同しないこと。',
|
'OAuth 2.0は「認可」フレームワーク(誰が何をできるか)。OIDC は OAuth 2.0 の上に「認証(誰か)」を追加。この2層構造を混同しないこと。',
|
||||||
'SAMLとOIDCの使い分け:SAMLはエンタープライズSSO(人事システム・社内ポータル)、OIDCはモバイル・Web API向け(軽量・JSONベース)。',
|
'SAMLとOIDCの使い分け:SAMLはエンタープライズSSO(人事システム・社内ポータル)、OIDCはモバイル・Web API向け(軽量・JSONベース)。',
|
||||||
|
|
@ -575,7 +575,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s28', num:'S28', title:'事業継続・BCP/BCM', freq:'high', diff:2,
|
{ id:'s28', num:'S28', title:'事業継続・BCP/BCM', freq:'high', diff:2,
|
||||||
concept:`<p><strong>BCP(Business Continuity Plan)</strong>は災害・インシデント発生時でも事業を継続または迅速に復旧するための計画です。<strong>BCM(Business Continuity Management)</strong>はその計画を策定・維持・改善する継続的なマネジメント体制です。</p><div class="formula-box"><div class="formula-label">主要な指標</div>RTO(Recovery Time Objective):目標復旧時間。何時間以内に復旧するか<br>RPO(Recovery Point Objective):目標復旧時点。何時点のデータまで失って許容できるか<br>RLO(Recovery Level Objective):目標復旧レベル。どの程度の業務水準まで回復するか</div><div class="formula-box"><div class="formula-label">バックアップ戦略</div>3-2-1 ルール:3コピー・2種類のメディア・1つはオフサイト(遠隔地)保管<br>フルバックアップ:全データ。リストアが最速だが時間・容量が大きい<br>差分バックアップ:前回フルからの差分。リストアはフル+差分<br>増分バックアップ:前回バックアップからの増分。容量小だがリストアに複数必要<br>ホットサイト:即時切替可能な待機系。コスト大<br>ウォームサイト:数時間で切替可能。中程度のコスト<br>コールドサイト:設備のみ提供。立上げに時間がかかる</div><p>DRP(Disaster Recovery Plan)は IT システムの復旧に焦点を当てた計画で、BCPの一部です。ISO 22301 が BCM の国際規格です。</p>`,
|
concept:`<p><strong>BCP(Business Continuity Plan)</strong>は災害・インシデント発生時でも事業を継続または迅速に復旧するための計画です。<strong>BCM(Business Continuity Management)</strong>はその計画を策定・維持・改善する継続的なマネジメント体制です。</p><div class="formula-box"><div class="formula-label">初学者向け:RTO と RPO</div><strong>RTO</strong>=「何時間以内に直すか」(<strong>時間</strong>の目標)。<strong>RPO</strong>=「どの時点のデータまで失ってよいか」(<strong>データ</strong>の目標)。ペアで頻出。</div><div class="formula-box"><div class="formula-label">主要な指標</div>RTO(Recovery Time Objective):目標復旧時間。何時間以内に復旧するか<br>RPO(Recovery Point Objective):目標復旧時点。何時点のデータまで失って許容できるか<br>RLO(Recovery Level Objective):目標復旧レベル。どの程度の業務水準まで回復するか</div><div class="formula-box"><div class="formula-label">バックアップ戦略</div>3-2-1 ルール:3コピー・2種類のメディア・1つはオフサイト(遠隔地)保管<br>フルバックアップ:全データ。リストアが最速だが時間・容量が大きい<br>差分バックアップ:前回フルからの差分。リストアはフル+差分<br>増分バックアップ:前回バックアップからの増分。容量小だがリストアに複数必要<br>ホットサイト:即時切替可能な待機系。コスト大<br>ウォームサイト:数時間で切替可能。中程度のコスト<br>コールドサイト:設備のみ提供。立上げに時間がかかる</div><p>DRP(Disaster Recovery Plan)は IT システムの復旧に焦点を当てた計画で、BCPの一部です。ISO 22301 が BCM の国際規格です。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'RTO と RPO は混同しやすい。RTO は「時間軸(復旧まで何時間)」、RPO は「データ軸(何時点のデータまで許容するか)」。RPO が短いほど頻繁なバックアップが必要。',
|
'RTO と RPO は混同しやすい。RTO は「時間軸(復旧まで何時間)」、RPO は「データ軸(何時点のデータまで許容するか)」。RPO が短いほど頻繁なバックアップが必要。',
|
||||||
'3-2-1 ルールはランサムウェア対策でも頻出。「3つのコピー・2種類の媒体・1つはオフライン/オフサイト」の「1つはオフライン」が特に重要。',
|
'3-2-1 ルールはランサムウェア対策でも頻出。「3つのコピー・2種類の媒体・1つはオフライン/オフサイト」の「1つはオフライン」が特に重要。',
|
||||||
|
|
@ -597,7 +597,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s29', num:'S29', title:'物理・環境セキュリティ', freq:'mid', diff:1,
|
{ id:'s29', num:'S29', title:'物理・環境セキュリティ', freq:'mid', diff:1,
|
||||||
concept:`<p>情報セキュリティはデジタルだけの問題ではありません。物理的なアクセスが許可されると技術的対策の多くが無意味になります。</p><div class="formula-box"><div class="formula-label">施設・入退室管理</div>多層防護(Defense in Depth):外周フェンス→ゲート→受付→セキュリティゾーン→サーバ室<br>マンとラップ(Man Trap):二重扉で1人ずつ認証する仕組み。テールゲーティング防止<br>ICカード・生体認証:入退室を個人単位で記録・制御<br>CCTV(監視カメラ):抑止効果と証拠収集<br>テールゲーティング(ピギーバッキング):正規入室者の後ろについて無断入場</div><div class="formula-box"><div class="formula-label">情報機器・媒体の管理</div>クリーンデスクポリシー:離席時に書類・資料・PC を施錠・片付ける<br>スクリーンロック:一定時間無操作でロック<br>クリアスクリーンポリシー:画面を離れるときにロックする習慣<br>メディア廃棄<br> 上書き:NIST SP 800-88 に基づく複数回上書き<br> 消磁(デガウサー):磁気を消去。SSD には無効<br> 物理破壊:シュレッダー・溶解。確実だが復元不可</div>`,
|
concept:`<p>情報セキュリティはデジタルだけの問題ではありません。物理的なアクセスが許可されると技術的対策の多くが無意味になります。</p><div class="formula-box"><div class="formula-label">初学者向け:物理セキュリティ</div>サーバに届く前に<strong>建物・扉・人</strong>で防ぐ。画面ロックやクリーンデスクは「盗み見・持ち出し」対策として試験に出やすい。</div><div class="formula-box"><div class="formula-label">施設・入退室管理</div>多層防護(Defense in Depth):外周フェンス→ゲート→受付→セキュリティゾーン→サーバ室<br>マンとラップ(Man Trap):二重扉で1人ずつ認証する仕組み。テールゲーティング防止<br>ICカード・生体認証:入退室を個人単位で記録・制御<br>CCTV(監視カメラ):抑止効果と証拠収集<br>テールゲーティング(ピギーバッキング):正規入室者の後ろについて無断入場</div><div class="formula-box"><div class="formula-label">情報機器・媒体の管理</div>クリーンデスクポリシー:離席時に書類・資料・PC を施錠・片付ける<br>スクリーンロック:一定時間無操作でロック<br>クリアスクリーンポリシー:画面を離れるときにロックする習慣<br>メディア廃棄<br> 上書き:NIST SP 800-88 に基づく複数回上書き<br> 消磁(デガウサー):磁気を消去。SSD には無効<br> 物理破壊:シュレッダー・溶解。確実だが復元不可</div>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'テールゲーティング対策はマンとラップ(二重扉+一人ずつ認証)。物理的なソーシャルエンジニアリングの代表例として問われる。',
|
'テールゲーティング対策はマンとラップ(二重扉+一人ずつ認証)。物理的なソーシャルエンジニアリングの代表例として問われる。',
|
||||||
'メディア廃棄方法の違い:消磁は SSD に無効(フラッシュメモリは磁気と関係ない)。確実な廃棄には物理破壊が必要。',
|
'メディア廃棄方法の違い:消磁は SSD に無効(フラッシュメモリは磁気と関係ない)。確実な廃棄には物理破壊が必要。',
|
||||||
|
|
@ -618,7 +618,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s30', num:'S30', title:'脅威インテリジェンス・MITRE ATT&CK', freq:'mid', diff:3,
|
{ id:'s30', num:'S30', title:'脅威インテリジェンス・MITRE ATT&CK', freq:'mid', diff:3,
|
||||||
concept:`<p><strong>脅威インテリジェンス(CTI: Cyber Threat Intelligence)</strong>は攻撃者・攻撃手法・悪意ある活動に関する情報を収集・分析して防御に活かす実践です。</p><div class="formula-box"><div class="formula-label">情報の種類</div>IoC(Indicators of Compromise):侵害の痕跡。攻撃後に確認される具体的な証拠<br> → 悪意あるIPアドレス・ドメイン・マルウェアのハッシュ値・レジストリキー<br>IoA(Indicators of Attack):攻撃中の兆候。攻撃の予兆・進行中のパターン<br>TTP(Tactics, Techniques, Procedures):攻撃者の戦術・技法・手順の体系</div><div class="formula-box"><div class="formula-label">主なフレームワーク・標準</div>MITRE ATT&CK:実際の攻撃事例に基づくTTPsのナレッジベース。初期侵入→永続化→権限昇格→探索→横断→情報収集→流出の各フェーズをマトリクスで整理<br>STIX(Structured Threat Information eXpression):脅威情報の記述形式(XML/JSON)<br>TAXII(Trusted Automated eXchange of Indicator Information):脅威情報の自動共有プロトコル<br>ISAC(Information Sharing and Analysis Center):業界別の脅威情報共有組織</div><p>ハニーポット:攻撃者を引き付ける囮システム。実際の重要システムではなく観察・情報収集が目的です。ハニーネットは複数のハニーポットで構成されたネットワークです。</p>`,
|
concept:`<p><strong>脅威インテリジェンス(CTI: Cyber Threat Intelligence)</strong>は攻撃者・攻撃手法・悪意ある活動に関する情報を収集・分析して防御に活かす実践です。</p><div class="formula-box"><div class="formula-label">初学者向け:脅威インテリジェンス</div>攻撃の手口や痕跡の情報を集め<strong>守りに活かす</strong>活動。<strong>MITRE ATT&CK</strong>は攻撃の「辞書・地図」として覚えるとよい。</div><div class="formula-box"><div class="formula-label">情報の種類</div>IoC(Indicators of Compromise):侵害の痕跡。攻撃後に確認される具体的な証拠<br> → 悪意あるIPアドレス・ドメイン・マルウェアのハッシュ値・レジストリキー<br>IoA(Indicators of Attack):攻撃中の兆候。攻撃の予兆・進行中のパターン<br>TTP(Tactics, Techniques, Procedures):攻撃者の戦術・技法・手順の体系</div><div class="formula-box"><div class="formula-label">主なフレームワーク・標準</div>MITRE ATT&CK:実際の攻撃事例に基づくTTPsのナレッジベース。初期侵入→永続化→権限昇格→探索→横断→情報収集→流出の各フェーズをマトリクスで整理<br>STIX(Structured Threat Information eXpression):脅威情報の記述形式(XML/JSON)<br>TAXII(Trusted Automated eXchange of Indicator Information):脅威情報の自動共有プロトコル<br>ISAC(Information Sharing and Analysis Center):業界別の脅威情報共有組織</div><p>ハニーポット:攻撃者を引き付ける囮システム。実際の重要システムではなく観察・情報収集が目的です。ハニーネットは複数のハニーポットで構成されたネットワークです。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'MITRE ATT&CK はフェーズ(タクティクス)→手法(テクニック)→手順(サブテクニック)の3層構造。「攻撃者がどのフェーズで何をしたか」をマッピングするツールとして使われる。',
|
'MITRE ATT&CK はフェーズ(タクティクス)→手法(テクニック)→手順(サブテクニック)の3層構造。「攻撃者がどのフェーズで何をしたか」をマッピングするツールとして使われる。',
|
||||||
'IoC と IoA の違い:IoC は「侵害された証拠(事後)」、IoA は「攻撃中の兆候(予防)」。SIEM で IoC/IoA を検出することで対応を高速化する。',
|
'IoC と IoA の違い:IoC は「侵害された証拠(事後)」、IoA は「攻撃中の兆候(予防)」。SIEM で IoC/IoA を検出することで対応を高速化する。',
|
||||||
|
|
@ -640,7 +640,7 @@ export const CATEGORIES = [
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{ id:'s31', num:'S31', title:'コンプライアンス・証跡(ログ)入門', freq:'mid', diff:1,
|
{ id:'s31', num:'S31', title:'コンプライアンス・証跡(ログ)入門', freq:'mid', diff:1,
|
||||||
concept:`<p><strong>コンプライアンス</strong>は、法令・業界ガイドライン・社内規程に沿って業務を運営することです。情報セキュリティ分野では、個人情報保護やISMSの文脈で「記録」「監査」「証跡」がセットで問われます。</p><div class="formula-box"><div class="formula-label">初学者向け:証跡とログ</div><strong>証跡</strong>:いつ・誰が・何をしたかを後から追跡できる記録。インシデント調査や監査で事実関係を説明する根拠になる。<br><strong>システムログ</strong>:ログイン成否、設定変更、特権操作などを機械的に残したもの。<br><strong>ログの保護</strong>:攻撃者に消されたら意味がないため、権限分離・改ざん検知・外部SIEMへの転送などで<strong>改ざん耐性</strong>を高める。</div><div class="formula-box"><div class="formula-label">内部統制との関係</div>重要な処理は<strong>職務分離</strong>や承認フローと組み合わせ、ログはその実行事実を残す。保存期間・閲覧権限・マスキングは個人情報保護と両立して設計する。</div><p>クラウドではログの有効化や保管先の設計も利用者責任に含まれる場合がある(責任共有モデル)。</p>`,
|
concept:`<p><strong>コンプライアンス</strong>は、法令・業界ガイドライン・社内規程に沿って業務を運営することです。情報セキュリティ分野では、個人情報保護やISMSの文脈で「記録」「監査」「証跡」がセットで問われます。</p><div class="formula-box"><div class="formula-label">初学者向け:証跡とログ</div><strong>コンプライアンス</strong>:ルールに適合して運用すること。<strong>証跡</strong>:いつ・誰が・何をしたかを後から説明できる記録。<strong>システムログ</strong>:ログイン成否・設定変更などを機械的に残すもの。ログは攻撃者に消されると意味がないため、<strong>権限分離・改ざん検知・外部SIEM</strong>で保護する。</div><div class="formula-box"><div class="formula-label">内部統制との関係</div>重要な処理は<strong>職務分離</strong>や承認フローと組み合わせ、ログはその実行事実を残す。保存期間・閲覧権限・マスキングは個人情報保護と両立して設計する。</div><p>クラウドではログの有効化や保管先の設計も利用者責任に含まれる場合がある(責任共有モデル)。</p>`,
|
||||||
examtips:[
|
examtips:[
|
||||||
'「コンプライアンス=法令遵守だけ」と捉えない。社内規程・契約・業界基準も含む。',
|
'「コンプライアンス=法令遵守だけ」と捉えない。社内規程・契約・業界基準も含む。',
|
||||||
'監査証跡は「後から説明できること」が目的。ログを取らないより、取り方と保護が問われる。',
|
'監査証跡は「後から説明できること」が目的。ログを取らないより、取り方と保護が問われる。',
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,5 @@
|
||||||
// posimai-sc SW — same-origin の静的資産のみキャッシュ(CDN は対象外)
|
// posimai-sc SW — same-origin の静的資産のみキャッシュ(CDN は対象外)
|
||||||
const CACHE = 'posimai-sc-v2';
|
const CACHE = 'posimai-sc-v3';
|
||||||
const STATIC = [
|
const STATIC = [
|
||||||
'/',
|
'/',
|
||||||
'/index.html',
|
'/index.html',
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue