はじめに
◆この記事は何?
IPA高度資格「情報処理安全確保支援士」のシラバスに掲載されている用語の備忘録です
◆対象は?
情報処理安全確保支援士の試験勉強をされる方
◆この記事のねらい
- 試験範囲の用語の階層を整理します
- 試験勉強の一助となれば幸いです
◆この記事について
- シラバスの用語を参考書等を読みながら自分なりに整理した私の暗記用のノートです
- 試験に向けて高頻度で更新しています
- ご助言、誤り等あればご指摘いただけると幸いです
試験範囲全体
- 試験範囲の分解
- 暗号
- 認証
- ネットワークセキュリティ
- データベースセキュリティ
- クライアントセキュリティ
- httpセキュリティ
- メールセキュリティ
- 攻撃と対策
- 注目技術
※参考文献の目次をベースに、試験範囲を分解
暗号技術
- 共通鍵暗号方式
- ブロック暗号
- ECBモード
- CBCモード
- CTRモード(Counterモード)
- ストリーム暗号
- ブロック暗号
- 公開鍵暗号方式
- RSA暗号
- ハイブリッド暗号方式
- セッション鍵を安全に届ける手段の一つがDH法
- ハッシュ関数
- 特徴
- 衝突発見困難性
- ハッシュ値が一致する2つの元データの検索が難しい。H(M)が既知のとき、H(M')を見つけるのが難しい
- ハッシュ値はなんでもいいと解釈しておく
- 第二原像計算困難性
- 特定のハッシュ値と同じハッシュ値を持つファイルをつくるのが難しい。H(M)=H(M')となるような別のメッセージM'を探索することが困難
- ハッシュ値は既知と解釈しておく
- 原像計算困難性
- ハッシュ値から元の入力値を検索することが難しい
- 衝突発見困難性
- フィンガープリント
- ハッシュ値の計算結果
- 特徴
- HMAC(Hash Based Message Authentication Code)
- 入力データに共通鍵の情報を含めてハッシュ値を計算する手法
- CRYPTREC暗号リスト
- 電子政府推奨暗号リスト
- 共通鍵暗号
- ブロック暗号
- AES(128ビット)
- Camelia
- ストリーム暗号
- KCipher-2
- ブロック暗号
- 公開鍵暗号
- RSA
- ハッシュ関数
- SHA256
- 共通鍵暗号
- 推奨候補暗号リスト
- 運用監視暗号リスト
- 電子政府推奨暗号リスト
- 前方秘匿性
- PFS
- Perfect Forward Secrecy
- 暗号化鍵の共有に使われている秘密鍵が漏えいしたとしても、過去に暗号化された通信データは解読されないという鍵交換プロトコルに求められる性質
- 量子
- 乱数
- 疑似乱数
- 数列のように見えるが、実際には確定的な計算によって求めている擬似乱数列による乱数
- 疑似乱数生成器
- PRNG
- pseudo random number generator
- pythonだとrandom
- 疑似乱数
- 危殆化
- 盗難、漏えい等、他人によって使用され得る状態になること
- ゼロ知識証明
- 何かを証明したい人が「自分はある事柄を知っている」という事実を、それを確かめたい人に、その事実以外の知識を何も与えることなく証明する技術
- SSL/TLS 暗号設定ガイドライン
- TLSサーバの構築者や運営者が適切なセキュリティを考慮した暗号設定ができるようにするためのガイドライン
認証・認可
認証
- 認証の対象
- 人
- メッセージ
- 人とモノ
- 人を認証する
- パスワード認証
- 同じパスワードでの認証
- ベーシック認証
- チャレンジ&レスポンス認証
- ワンタイムパスワード方式
- S/Key
- 時刻同期方式
- 同じパスワードでの認証
- パスワードレス認証
- FIDO認証
- 代表的なのが生体認証
- WebAuthn
- Passkeys
- FIDO認証
- パスワード認証
- メッセージを認証する
- MAC
- Message Authentication Code
- MAC
- 人とメッセージを認証する
- デジタル署名
- 署名鍵
- 検証鍵
- デジタル署名
- 電子メールに電子署名や公開鍵暗号処理をする仕組み
- PGP
- Pretty Good Privacy
- S/MIME
- Secure/Multipurpose internet Mail Extensions
- PGP
- 署名
- 署名を実現するアルゴリズム
- 鍵生成アルゴリズム
- 署名アルゴリズム
- 検証アルゴリズム
- XMLデジタル署名
- XML形式のデータにくっつける電子署名のこと
- ブラインド署名
- 署名対象文書の作成者と署名者を分離し,署名者には署名する文書の内容が分からないようにする方式
- 例:封筒に入れ封をした書類に封筒の上から署名をすると,中の書類に被せられたカーボン紙を通して中の書類にも署名が写るイメージである. このとき,署名者には中の書類の内容は分からない
- グループ署名
- 自分をアイデンティティを隠しながら,自分がその組織に含まれていることを証明する電子署名方式
- 所属だけ認証したいときに使う
- トランザクション署名
- マルウェアの影響が及ばないハードウェアトークンで生成したワンタイムパスワードを認証情報として使用する方法
- 中間者攻撃の対策になる方法
- コードサイニング
- ソフトウェアのバイナリまたはファイルにデジタル署名を付与するプロセス
- 署名を実現するアルゴリズム
- AAAフレームワーク(認証,認可,アカウンティング)
- ネットワークアクセスに対してルーターがサポートするすべての認証、許可、アカウンティング、アドレス割り当て、動的要求サービスに対して単一の連絡先を提供します
- Diameter
- RADIUSの後継となるAAA(Authentication, Authorization, Accounting)サービスを実装する認証プロトコル
- CMAC
- Cipher-based MAC
- ブロック暗号を用いてメッセージ認証コードを構成する方式
- エンティティ認証
- 人や物の正体が本当に主張している人や物であるかを検証する技術
- 参考
その他
- リスクベース認証
- 普段と異なる環境からアクセスした場合に追加で認証を行う仕組み
- LDAPサーバでの認証
- LDAP(Lightweight Directory Access Protocol)に基づいてディレクトリサービスを提供するサーバ
- エルダップ
- ネットワーク機器やユーザーなどの情報を管理するディレクトリサービスへ接続するためのプロトコル
- Active Directoryのようなディレクトリサービスに アクセスするためのプロトコル
- 参考:https://infraexpert.com/study/security19.html
- エルダップ
- LDAP(Lightweight Directory Access Protocol)に基づいてディレクトリサービスを提供するサーバ
- 認証プロトコル
- SMTP-AUTH
- クライアントから送信側メールサーバへ通信をする際にクライアントに対して認証情報を元に認証を取る方法
- SMTP-AUTH
↓書いた記事
◆暗記のための補足
- MACは共通鍵を用いる
- デジタル署名は公開鍵であり、処理速度を優先するときはMACを用いることもある
証明書
- デジタル証明書
- 目的:公開鍵が正規に相手のものであることを確認するため
- 呼び方がさまざまある
- 公開鍵証明書
- 電子証明書
- サーバー証明書
- クライアント証明書
- サーバー証明書
- サーバーが正しいことを証明する
- webブラウザが確認している
- 種類
- DV証明書
- Domain Validation
- ドメインの所有
- OV証明書
- Organization Validation
- ドメインの所有、企業の実在性
- EV証明書
- Extended Validation
- ドメインの所有、企業の実在性、企業の業務実態
- DV証明書
- クライアント証明書
- クライアントが正しいことを証明する
- PCに入れる
PKI(Public Key Infrastructure)
全体像
- PKI
- GPKI
- BCA
- PKI
- CA
- CP
- CPS
- VA
- CA
- 証明書
- X.509
- サブジェクト
- 証明書パス検証
詳細
- PKI
- 目的
- 公開鍵と秘密鍵の対応を保証するため
- 信頼できる第三者が公開鍵と秘密鍵の対応関係を保証する
- 目的
- 認証局
- CA
- Certificate Authority
- 公開鍵の信頼性を保証する機関
- VA
- Validation Authority
- デジタル証明書の失効リスト(CRL)を集中管理して、証明書の有効性をチェックする機関を検証局という
- RA
- Registration Authority
- 登録局
- 認証局の業務のうち、デジタル証明書の発行申請書に記載された申請者の本人確認を行い、審査結果に基づき申請の承認または却下を行うことです。承認された申請情報を登録する役割も担います。
- IA
- Issuing Authority
- 確認が行われたデジタル証明書にデジタル署名を付与するのは認定局(CA)ですが、認定局内の業務分担にまで細分化して考える場合は発行局(IA)となります。
- AA
- Attribute Authority
- 電子商取引を行う場合など、デジタル証明書の保有者本人の身元確認だけでなく、保有者が持つ肩書、権利や資格などの属性確認が必要になることがあります。この本人の属性を証明する属性証明書を発行するのが属性認証局(AA)です。
- GPKI
- Government Public Key Infrastructure:政府認証基盤
- 政府が運営するPKI
- BCA
- BridgeCertification Authority:ブリッジ認証局
- 複数の認証局と相互認証証明書を交換し、相互接続を可能とする認証局
- X.509
- デジタル証明書(電子証明書)および証明書失効リスト(CRL)のデータ形式を定めた標準規格の一つ
- 証明書パス検証
- 利用者は証明書を検証する必要がある
- サブジェクト
- 主体者
- 公開鍵に紐づく組織の識別名(Distinguished Name)
- 証明書を発行するエンティティーのID情報が含まれる識別名(DN)
- CP/CPS
- Certificate Policy/Certification PracticeStatement
- CP
- CA(Certification Authority:認証局)が発行する証明書の種類、用途、申込手続など、証明書に関する事項を規定する文書
- CPS(Certification Practices Statement:認証運用規定)
- CA(Certification Authority:認証局)を運用する上での諸手続、セキュリティ基準など、CAの運用を規定する文書
- CAA
- Certificate Authority Authorization
- CAAとは、ドメイン名の所有者/管理者がDNSサーバを用いて、自らが所有/管理するドメイン名に対して証明書の発行を許可する認証局を指定することが可能になる仕組み
- 参考
- 証明書自動発行
- CA/Browser Forum
- 電子証明書を使った通信の安全性やその利便性を向上させるためのガイドラインを策定している会員制の任意団体
- CA/Browser Forumとは
参考
シングルサインオン
一度の認証で複数のサーバーやアプリケーションを利用できる仕組み。
- リバースプロキシ
- ケルベロス認証
認証 | 認可 | 標準化団体 | |
---|---|---|---|
SAML | ⚪︎ | ⚪︎ | OASIS |
OpenID | ⚪︎ | IEFT | |
OAuth | ⚪︎ | IEFT |
IEFT:The internet Engineering Task Force
- OpenID Connect
↓書いた記事
認可
- OAuth2.0
ネットワーク
- ネットワークの全体像
- 通信そのもの
- TCP/UDP
- 外から内への通信
- ファイアウォール
- IDS/IPS
- WAF
- プロキシサーバ
- 内と内の通信
- VPN
- 無線LAN
- 通信そのもの
↓書いた記事
↓必要に応じて詳細化していく
- ファイアウォール
- パケットフィルタリング方式
- IPパケットごとに条件に合致するか否かを確認する
- 高速
- アプリケーションゲートウェイ方式
- ファイアウォールの1つの方式で、通信を中継するプロキシ(代理)プログラムを使い、社内ネットワークとインターネットを切り離す方式
- 通信の中身を見て制御することに向いている
- パケットフィルタリング方式
- IDS
- ホスト型
- 監視対象の機器にインストールする
- httpsなどの暗号化通信も監視できる
- ネットワーク型
- インラインモード
- IDS本体を、監視対象の通信が通過する
- プロミスキャスモード
- IDSをスイッチのミラーポートに接続する
- インラインモード
- ホスト型
- 不正検知の方法
- シグネチャ型
- パターンを管理しておく
- アノマリ型
- 正常な状態と比較して異常な振る舞いを検知
- シグネチャ型
VPN
- VPN
- インターネットVPN
- IPsec-VPN:主にインターネットVPNで使用される
- 構成
- AH:認証、改ざん検知を行うプロトコル
- ESP:認証、改ざん検知、暗号化を行うプロトコル
- IKE:鍵交換を行うためのプロトコル
- バージョン1
- フェーズ1:認証、ISAKMP SA
- メインモード:認証情報にIPアドレスを用いる
- アグレッシブモード:IPアドレスを用いずに認証
- フェーズ2:暗号通信、IPsecSA
- フェーズ1:認証、ISAKMP SA
- バージョン2
- バージョン1
- IPsecのモード
- トンネルモード
- VPN機器を使用する。
- 新しいIPヘッダをつける
- オリジナルのipヘッダは暗号化される
- トランスポートモード
- VPN機器を使用しないことが多い。主にモバイル端末で利用される。
- オリジナルのipヘッダは暗号化されない
- 覚え方
- 「トンネル」と「トランスポート」の画像イメージで覚えておく(トンネルの中を通ってトランスポートするイメージ)
- 参考:
- トンネルモード
- 構成
- SSL-VPNの方式
- リバースプロキシ方式
- SSLを使って、VPN装置にアクセス
- VPN装置から、企業イントラネットのサーバーにアクセス
- ポートフォワーディング方式
- ポートフォワーディング用モジュールで、VPN装置間のSSLトンネル確立
- ポートフォワーディング
- FWを通過できないアプリのデータのポート番号を、通過できるアプリのポート番号に変換することで、企業イントラネットとインターネットの間の通信を可能にする
- 任意のアプリケーションの通信をHTTPSのポート番号に変換し、ファイアウォールを通過させることでSSL-VPNを実現します
- L2フォワーディング方式
- L2フォワーディング用のモジュールをダウンロードする必要がある
- モジュールの中に仮装NICがある
- アプリケーションのデータをHTTPのパケットに入れてカプセル化、SSLで暗号化する方式
- L2:OSI参照モデルの第二層
- サーバのポート番号やIPアドレスなどが含まれたデータ(L2)をカプセル化する
- L2フォワーディング用のモジュールをダウンロードする必要がある
- リバースプロキシ方式
- IPsec-VPN:主にインターネットVPNで使用される
- IP-VPN:通信事業者によって準備された専用回線
- インターネットVPN
参考:「SSL-VPN入門」
無線LAN
- 無線LANの全体像
- 無線LANそのものについて
- 暗号化通信
- アクセス制御
- 認証
- 隠れ端末問題
- 無線LANそのものについて
- 周波数
- 2.4GHz:障害物に強い
- 5GHz:他機器の電波の影響を受けにくい
- 主要な無線LANの規格
- IEEE802.11n(Wi-Fi4)
- IEEE802.11ac(Wi-Fi5)
- IEEE802.11ax(Wi-Fi6)
- 周波数
- 暗号化通信
- セキュリティ規格
- WEP(Wired Equivalent Privacy):非推奨
- WPA(Wi-Fi Protected Access):非推奨
- WPA2:推奨
- WPA3:推奨
- 暗号化プロトコル:暗号化通信するための一連の枠組み
- 暗号化規格:実際に暗号化を行う規格(決まりごと)
- 無線LANで使用される暗号化規格
- RC4(Rivest's Cipher 4):ストリーム暗号
- AES(Advanced Encryption Standard):ブロック暗号
- 無線LANで使用される暗号化規格
- 暗号化規格:実際に暗号化を行う規格(決まりごと)
- 無線ネットワーク規格で使われている暗号化プロトコル(無線LANの暗号化のやり方)
- TKIP:Temporal Key Integrity Protocol
- CCMP:Counter mode with CBC-MAC Protocol:AESを使う
- セキュリティ規格
名称 | 暗号化規格 | 暗号化プロトコル | 背景 |
---|---|---|---|
WEP | RC4 | WEP | RC4の脆弱性が見つかった |
WPA | RC4 | TKIP(ティーキップ) | WEPとの互換性あり、RC4も利用可能 |
WPA2 | AES | CCMP | 脆弱性が見つかったが十分な安全性 |
WPA3 | AES | CCMP | WPA2にも脆弱性が見つかったので進化、さらに安全性が高い |
- 無線LANのアクセス制御方法
- パーソナルモード
- 事前共有鍵(PSK,Pre-Shared Key)を設定して認証する。喫茶店のフリーWiFiのパスワードなど。クライアント単位で設定できない。
- PSK
- Pre-Shared Key
- あらかじめ共有された秘密の文字列
- 認証が簡素になる
- もしPSKがないと
- 認証のプロセスが複雑化する
- 事前共有鍵(PSK,Pre-Shared Key)を設定して認証する。喫茶店のフリーWiFiのパスワードなど。クライアント単位で設定できない。
- エンタープライズモード
- 認証サーバ(IEEE802.1X)を利用する。クライアント単位での制御が可能。
- IEEE802.1X認証:ネットワークに接続するユーザを認証するための仕組み
- サプリカント(クライアント)
- オーセンティケータ(アクセスポイント)
- 認証サーバ(RADIUSサーバ)
- IEEE802.1Xで用いられるプロトコル
- EAP
- (イープ、Extensible Authentication Protocol):認証情報を配送するためのプロトコル。どの認証方式を用いるかを指定する。
- EAPOL
- (EAP over LAN):サプリカントとオーセンティケータの間。EAPのメッセージをLAN上で伝送するため。
- RADIUS
- (Remote Authentication Dial In User Service):オーセンティケータと認証サーバの間。認証するためのプロトコル。
- EAP
- EAP(イープ)を使った認証方式
- EAP-PEAP(Protected Extensible Authentication Protoco):クライアント認証がID/PASS
- EAP-TLS(Transport Layer Security):クライアント認証がデジタル証明書
- 絶対に安全とは言えない無線LANのアクセス制御機能
- MACアドレスフィルタリング
- MACアドレス(Media Access Control address)をホワイトリストに登録してアクセス制御する。MACアドレスを暗号化できないので(手紙の文書は隠せるが、配送先は隠せないのと同じ理由)、攻撃者は通信を盗聴できる。そのためMACアドレスを偽装でき、セキュリティ強度を上げることができない。
- SSIDステルス
- SSID(Service Set Identifier、Wi-Fi通信で利用するネットワークを識別する名前)を知らせるためのビーコンを停止させ、SSID一覧に表示させないようにする。通信を暗号化できないため、攻撃者はSSIDを盗聴できる。
- MACアドレスフィルタリング
- パーソナルモード
認証方式 | クライアント認証 | サーバ認証 |
---|---|---|
EAP-PEAP | ID/PASS | デジタル証明書 |
EAP-TLS | デジタル証明書 | デジタル証明書 |
- 隠れ端末問題
- 背景
- CSMA/CA(Carrier Sense Multiple Access with Collision Avoidance):無線LANのアクセス制御、送信前に電波の電波の空き状況を確認して、空いているときに送信データを送ることで衝突を避ける
- 問題
- 障害物によってお互いの通信が検出できず、同時に送信フレームをアクセスポイントに送り衝突が発生すること
- 隠れ端末問題の解決策
- RTS/CTS
- Request To Send/Clear To Send)
- 常時利用すると効率が悪いため、何度か失敗したときにRTS/CTSによる通信制御が開始される
- RTS:「これから送ります」という合図
- CTS:「他の端末が利用中です」または「送っていいですよ」という合図
- 参考:https://milestone-of-se.nesuke.com/nw-basic/wireless/csma-ca-cts-rts-hidden-exposed-node-problem/
- RTS/CTS
- 背景
ネットワーク系の用語整理
- NAT
- Network Address Translation
- IPアドレスを別のIPアドレスに変換する技術
- 目的:グローバルIPアドレスの数を減らせるため
- もしNATがないと、IPアドレスが枯渇する
- VLAN
- Virtual Local Area Network
- 仮想的なLANセグメントを作る技術
- もしVLANがないと
- セキュリティの低下
- ネットワークが過負荷
- https://www.infraexpert.com/study/vlanz1.html
- DHCP
- Dynamic Host Configuration Protocol
- コンピュータがネットワークに接続して通信する際に必要な設定情報を自動的に割り当てる機能
- もしDHCPがないと
- 手動でのIPアドレスの設定が必要
- FQDN
- Fully Qualified Domain Name
- ネットワークトラフィック分析
- ネットワークの可用性とアクティビティを監視して異常を特定し、パフォーマンスを最大化し、攻撃を監視するための重要な方法
- グローバルIPアドレス
- グローバルIPアドレスはインターネットに接続された機器に割り当てられるIPアドレス。一意になる。
- IPマスカレード
- 1つのグローバルIPアドレスを利用して、LAN内のプライベートIPアドレスを持つ複数のパソコンをインターネットに接続できる機能
- マスカレードは「仮想」という意味
- 認証VLAN
- VLANとユーザ認証機能を組み合わせた方式
- DNSBL
- DNS Black List
- インターネット上で(一部の人々が)防ぎたいIPアドレスの一覧をソフトウェアが扱いやすい形式で公表したもの
- DHCPスヌーピング
- DHCPサーバとDHCPクライアントでやりとりする「DHCP要求とDHCP応答」を
スヌーピング(のぞき見)することで、DHCPサーバのなりすましや、DHCPサーバへの攻撃を防げます。
- DHCPサーバとDHCPクライアントでやりとりする「DHCP要求とDHCP応答」を
- ネットワーク脆弱性検査
- 診断対象のサーバーやネットワーク機器に対して擬似攻撃を行い、それらが適切な設定状態にあるかを動的に診断
- CDN
- Contents Delivery Network
- 数多くのキャッシュサーバーなどで構成されたプラットフォームを用いることにより、Webサイト上のコンテンツを迅速にエンドユーザーに届けるための仕組み
- DDoS攻撃の対策となる
- SNI
- Server Name Indication
- 一つのサーバーで複数のドメイン名を使用する場合に、複数のSSL証明書を運用できるようにするSSL/TLSの拡張仕様
- 参考:https://www.stream.co.jp/blog/blogpost-38236/
- ドメインフロンティング攻撃
- httpのHostヘッダで、偽装先のドメインを指定する
IPアドレス
- ネットワークの住所
- 表現方法
- 32ビットの数値で表される
- 11000000101010000000000100000011
- 8ビットずつに区切る
- 192.168.1.3
- 32ビットの数値で表される
- IPアドレス
- ネットワーク部
- どのネットワークかを表す
- ホスト部
- どのコンピュータかを表す
- ネットワーク部
- IPアドレスのクラス
- ネットワークの規模によって変わる
- クラスA
- 大規模ネットワーク
- ネットワーク部8ビット、ホストアドレス24ビット
- 先頭ビットは0と決まっている
- クラスB
- ネットワーク部16ビット、ホストアドレス16ビット
- 先頭2ビットは10と決まっている
- 128.0.0.0 - 191.255.255.255
- クラスC
- ネットワーク部24ビット、ホストアドレス8ビット
- 先頭3ビットは110
- 192.0.0.0
- ホストアドレス部
- 全て0
- ネットワークアドレスで予約
- 全て1
- ブロードキャストアドレスで予約
- 全て0
- サブネット
- ねらい
- もし分割せずに一つのネットワークにしてしまうと、通信トラフィックが多くなりすぎて、通信効率が悪くなってしまう
- ネットワークを分割する
- ねらい
- サブネットマスク
- どこまでをネットワークアドレスとみなすか?を指定するのがサブネットマスク
サーバーセキュリティ
DNS
- DNSサーバ
- キャッシュDNSサーバ
- コンテンツDNSサーバ
- DNSに関する攻撃と対策
- DNSキャッシュポイズニング
- DNSキャッシュポイズニングの対策
- オープンリゾルバにしない
- ポート番号をランダムにする
- 更新までの時間を長くして、攻撃の機会を減らす
- DoH(DNS over HTTPS)
- DNSSEC
- カミンスキー攻撃(DNSキャッシュポイズニングの一つ)
- DNSキャッシュポイズニングの対策
- DNSキャッシュポイズニング
- DNSSEC
- コンテンツDNSサーバの応答にデジタル署名をつけて正当性を確認する仕組み
- DNSKEY
- コンテンツDNSサーバーの公開鍵
- RRSIG(Resource Record digital SIGnature)
- リソースレコードに対するデジタル署名
- DNSのレコード
- Aレコード
- Adressレコード
- ホスト名をどのようにIPv4アドレスに変換するかを指定する
- CNAMEレコード
- Canonical NAMEレコード
- ホストに別名(エイリアス)をつける際に利用される。
- MXレコード
- Mail Exchangeレコード
- メールサーバーのホスト名を登録する
- TXTレコード
- ドメインやホスト名の付加情報を記述する
- SPFにも利用される
- Aレコード
↓書いた記事
参考
ログ
- ログ取得時の注意点3つ
- 必要十分に取得すること
- NTP(Network Time Protocol,ネットワーク・タイム・プロトコル)を利用して時刻同期すること
- プロキシサーバーを利用するとき、IPアドレスを残すためにはX-Forwarded-Forを使ってクライアントのIPアドレスをログに残す
- ログに関するプロトコル
- SYSLOG
- ログサーバーにログを送信するためのプロトコル
- SNMP(Simple Network Management Protocol)
- MIB(Management Infomation Base、階層構造で構成された機器情報を管理しているデータベース)を使って情報を管理(設定確認、通知、設定変更)するプロトコル
- 構成要素
- マネージャ
- エージェント
- 機能
- ポーリング(設定確認)
- マネージャからのGetリクエスト
- 設定変更
- マネージャからのSetリクエスト
- 通知
- Trap:エージェントからの自発的な情報の送信。監視対象機器の状態をリアルタイムに把握できる。
- ポーリング(設定確認)
- SYSLOG
クライアントセキュリティ
↓書いた記事
メールセキュリティ
- メールの仕組み
- メールの構造
- メールヘッダ
- Return-Path:エラー発生時に送り返すアドレス
- Received:経由してきたメールサーバを表す情報
- From:メール送信者のメールアドレス
- To:メール宛先のメールアドレス
- Subject:件名
- メールボディ
- メールヘッダ
- アドレス
- エンベロープアドレス:配送で参照する
- ヘッダアドレス:郵便でいう便箋の「XXさんへ」 配送には影響しない。送信者が自由に設定できる。
- メール送信の仕組み
- MUA(Mail User Agent)
- MSA(Message Submission Agent)
- MTA(Message Transfer Agent)
- MDA(Message Delivery Agent)
- MRA(Message Retrieval Agent)
- プロトコル
- 受信
- POP(Post Office Protocol)
- IMAP(Internet Message Access Protocol)
- 送信
- SMTP(Simple Mail Transfer Protocol)
- 受信
- メールの構造
- メールのセキュリティ
- 認証技術
- SPF
- Sender Policy Framework
- メールアドレスのIPアドレスを利用する送信元ドメイン認証技術
- DKIM
- DomainKeys Identified Mail
- デジタル署名によって認証する送信元ドメイン認証技術
- SPF
- 認証失敗したときのポリシー
- DMARC
- Domain-based Message Authentication, Reporting, and Conformance
- 送信側ドメインがポリシーをDNSサーバーを通じて公開する技術
- DMARC
- 迷惑メール対策
- OP25B(Outbound Port 25 Blocking)
- 自分のネットワークから外部のネットワークへのポート番号25(SMTP)の通信を遮断することです。
- SMTP-AUTHを使って、587番ポート(サブミッションポート)に接続
- OP25B(Outbound Port 25 Blocking)
- 認証技術
メール送信の仕組みは「YOU STANDARD」で覚える。
U,S,T,D,Rを想起させる。
↓書いた記事
↓参考:メールヘッダを可視化できる
↓参考:エンベロープアドレスについて理解が深まる
HTTP
httpの仕組みを学ぶ。httpの使い方を学ぶ。そうすると、httpセキュリティについて学ぶ必要がある。
- HTTPで学ぶこと
- HTTPの仕組み5つ
- プロトコル
- メソッド
- ステータスコード:メッセージの意味
- メッセージ
- ヘッダ:メタデータ
- Cookie:httpはステートレスなので、連続性のある動作を管理するためにcookieが必要
- TLS:セキュアな通信(webブラウザ間とWebサーバー間の通信)
- HTTPセキュリティ
- HTTPS
- 常時SSL/TLS化
- TLSアクセラレータ
- HSTS
- HTTPの仕組み5つ
- HTTP
- HTTP/2:TCPを使う
- HTTP/3:UDPを使う
- 代表的なメソッド
- GET:URLの一部にデータを入れてリクエストを送る
- POST:送りたいデータをボディ部に入れる
- CONNECT:プロキシサーバにトンネリングを要求する
- ステータスコード
- 200:リクエストの成功
- 300:リクエストが複数存在する
- 301:webサイトが恒久的に移転している
- 401:ユーザー認証が必要
- 404:指定されたファイルが見つからない
- 500:サーバーの内部エラー
- HTTPメッセージの構造
- クライアント→Webサーバ
- リクエストライン
- HTTPヘッダ
- 空行
- HTTPボディ
- WEBサーバ→クライアント
- ステータスライン
- HTTPヘッダ
- 空行
- HTTPボディ
- クライアント→Webサーバ
- HTTPヘッダの情報:開発者ツールで見れる
- リクエスト
- Authorization
- 認証情報
- User-Agent
- ユーザーのブラウザに関する情報
- Referer
- どこから遷移してきたのかを表す情報
- Cookie
- Cookie情報
- Authorization
- レスポンス
- Set-Cookie
- サーバーからクライアントへクッキーを送信
- Location
- リダイレクト先のURL
- Sever
- レスポンスを生成したサーバーで使用されたソフトウェア
- Set-Cookie
- リクエスト
- Cookie
- 目的:セッションIDを保持して、利便性を向上するため
- Webサーバー、Webブラウザ間で状態を管理するための仕組み
- ユーザーは利便性を高めることができる
- cookieの取り扱いには注意する
- 属性
- Expires
- Cookieの有効期限
- Secure
- httpsで通信しているときにだけCookieの情報を送る
- HttpOnly
- CookieにアクセスするのはHTTPのみ
- JavaScriptを使ったアクセスを禁止することでXSS対策になる
- Expires
↓HTTPを視覚的に理解できる
TLS
- プロトコルの観点
- SSL/TLSは、セッション層に位置する。そのため、アプリケーション層ごとにセキュリティ確保のための仕組みを実装する必要がない
- できること
- 通信の暗号化、データの完全性の確保、サーバ(場合によってはクライアント)の認証
- TLS(Transport Layer Security)
- 利用されるのが多いのはTLS1.2、TLS1.3に移行が進む
- HTTPS
- HTTP over TLS
- 機能
- 暗号化機能
- サーバ認証
- クライアント認証
- 改ざん検出機能
- TLSハンドシェイク
- 常時SSL/TLS化
- WebサイトのすべてのページをSSLまたはTLS化すること
- TLSアクセラレータ
- 目的:webサーバの負荷を下げる
- 背景:TLSの利用によりクライアント・サーバー間で負荷が増える
- TLSアクセラレータがないと、Webサーバの負荷が高くなる
- HSTS(HTTP Strict Transport Security)
- HTTPS接続を強制させる機能
- サーバーに設定する
- 問題点
- 初回のHTTP通信を制限できないこと
- 有効期限後の初回も制限できない
- 初回から登録したい場合は、プリロードHSTSを使う
- セキュアプロトコル
- STARTTLS
- 暗号化されていない平文での通信を、SSL/TLSを利用した暗号化通信に切り替える仕組み
- SMTP over TLS
- TLSでSMTPを暗号化する
- STARTTLS
- 認証暗号
- AEAD
- Authenticated Encryption with Associated Data
- 認証付き暗号
- データの秘匿性、完全性、および認証性を同時に提供する暗号利用モード
- TLS1.3で用いる
マルウェア
マルウェアと攻撃ツール
- マルウェア(Malware, Malicious Software)5つ
- コンピュータウイルス
- 意図的に被害を及ぼすように作られたプログラム
- ボット
- 攻撃者が不正にコンピュータを操作するためのプログラム
- RAT
- Remote Access Trojan
- 遠隔操作ウイルス
- C&Cサーバ
- ワーム
- 単独で存在、自ら増殖する
- ランサムウェア
- Ransom :身代金
- コンピュータを使えない状態にして身代金を要求する
- トロイの木馬
- 正常なプログラムを装って存在するプログラム
- ギリシャ神話で、中に兵士の潜んだ木馬を招き入れてしまいトロイアが陥落したことが名前の由来
- コネクトバック
- 外部の攻撃者が端末へ侵入する時の通信方式として、端末側が接続元となって通信を発し、それに応答する形で攻撃者が端末に接続する通信
- 参考
- リバースシェル
- 侵害したシステムから攻撃者に対し接続を行うシェル
- 参考
- コンピュータウイルス
- 攻撃ツール3つ
- バックドア
- 攻撃者が自由にアクセスするためのプログラム
- 直訳すると、裏口
- ルートキット
- ログの改ざん、不正アクセスの証拠を削除する
- キーロガー
- キーボードの入力内容を記録する
- バックドア
シラバスに掲載されている用語
- ファイルレスマルウェア
- パソコンのOSに組み込まれた正規のツールや機能を悪用する攻撃です。 ファイルがディスク上に保存されるのではなく、メモリ上に書き込まれて動作するため、従来のアンチウイルスソフトでは検知が難しいという特徴があります。
- スパイウェア
- コンピュータに不正侵入し、ユーザの個人情報や行動を監視して、ユーザが気づかないうちに外部に情報を送信するプログラム
- ステルス技術
- ポリモーフィック型
- Polymorphic
- 感染時に自身を毎回異なる暗号鍵で暗号化することでパターンマッチングによる検出を防ぐ仕組み
- 新しい暗号化解除ルーチンを使用して、その外観やシグネチャファイルを繰り返し変更するようにプログラムされているマルウェア
- メタモーフィック型
- metamorphic
- プログラムのパターンを変更して検出を免れる仕組み
- 暗号鍵を使用しない場合がある。
- コードを変更したり書き換えたりする
- ポリモーフィック型
- ウイルス検出方法
- パターンマッチング方式
- 定義ファイルに基づく検出
- ヒューリスティックスキャン方式
- プログラムの動きで検出
- 動的ヒューリスティックスキャン方式(ビヘイビア法)
- サンドボックスで実際に動かして判断する
- パターンマッチング方式
- 検疫ネットワーク
- DHCP方式
- 検疫サーバのDHCP機能を使用する方式
- 注意
- 手動設定したIPアドレス
- クライアントPCが手動で社内LANのIPアドレスを設定した場合、検疫ネットワークに接続されず、LANに接続される
- 手動で設定した場合は社内LANに接続できないように、DHCPスヌーピングなどでDHCPの通信を監視する
- まずPCに対して検疫ネットワークへ接続するためのIPアドレスが割り当てられ、検疫ネットワークへ接続されます。検査・隔離・治療が行われた後、問題が解決したら、次は社内ネットワークに接続するためのIPアドレスを割り当てられることで、社内ネットワークに接続されます。
- 認証スイッチ方式
- 認証スイッチ方式は、802.1X認証やWeb認証などの認証方法に対応したスイッチと呼ばれる複数のデバイス同士を接続する機器を利用し、ユーザー認証を行った後で、検疫を行う方式です。検査に合格したPCは社内ネットワークに、不合格のクライアントは検疫ネットワークに接続され、治療が行われます。
- https://www.hcnet.co.jp/column/detail52.html
- DHCP方式
マルウェア解析
- ハニーポット
- 不正なアクセスを受けることを前提として意図的に設置される「罠」のようなシステム・ネットワークのこと
- ハニーネット
- ハニーポットのネットワーク
- エクスプロイトコード
- コンピュータのOSやソフトウェアなどのセキュリティの脆弱性をつく悪意あるコードやプログラム
- 参考
- エクスプロイトキット
- サイバー犯罪者がPCやデバイスの脆弱性を利用する際に用いるハッキングツール
- 参考
- パケットキャプチャ
- ネットワークを流れるパケットを収集すること
- バイナリ解析
- 製品や実行ファイルなどソフトウェアの内部の詳細を分析し、一般に公開されてないシステム設計や仕様を明確化し調査すること
- 逆アセンブル
- 逆アセンブラとは、0と1で表現される機械語によって書かれたプログラム記述(オブジェクトコード)を、より人間の言語に近い英数字記述であるアセンブリ言語による記述(ソースコード)に変換するためのプログラムのこと。 逆アセンブラを行うことを、逆アセンブル
- アンパック
- 暗号化されたマルウェアをもとに戻すこと
- マルウェアが解析を避けるために使用するパッキング(コードの圧縮や暗号化)を解除する
- 解析の回避
- パッカー
- 難読化
- デバガの検知
- コードインジェクション
- マルウェア対策ソフトの停止
- PEファイル
- Portable Executable
- PEヘッダー
脆弱性
- セキュリティホール
- ソフトウェアやOSの開発段階で発生したセキュリティ上の弱点のこと
- シャドーIT
- 情報システム部門などが関知せず、ユーザー部門が独自に導入したIT機器やシステム、クラウドサービスなどのこと
- 逆に許可しているものは「サンクションIT」という
- 参考
- バッファエラー
- 悪意のあるユーザーがサーバー・パソコンに処理能力を超える大量のデータや悪意のあるコードを送り、メモリ領域内のバッファの許容量を超えて溢れてしまう(オーバーフロー)脆弱性
- レースコンディション(競合状態)
- 複数の処理が同じデータに同時にアクセスした場合に、機能停止など予期しない処理結果が生じてしまうこと
- OWASP top10
- Open Worldwide Application Security Project(OWASP)
- Webアプリケーション・セキュリティに関する最も重大な10のリスクについてのランキングと修正のガイダンス
- ペリル
- 損害を発生させる要因
- ハザード
- 損害を拡大する要因
- 脆弱性評価
- CVSS
- Common Vulnerability Scoring System
- 共通脆弱性評価システム
- 情報システムの脆弱性に対するオープンで汎用的な評価手法
- https://www.ipa.go.jp/security/vuln/scap/cvssv3.html
- CVE
- Common Vulnerabilities and Exposures
- 共通脆弱性識別子
- 個別製品中の脆弱性を対象として、米国政府の支援を受けた非営利団体のMITRE社が採番している識別子
- 個別製品中の脆弱性に一意の識別番号「CVE識別番号(CVE-ID)」を付与することにより、組織Aの発行する脆弱性対策情報と、組織Xの発行する脆弱性対策情報とが同じ脆弱性に関する対策情報であることを判断したり、対策情報同士の相互参照や関連付けに利用したりできます。
- https://www.ipa.go.jp/security/vuln/scap/cve.html
- CWE
- Common Weakness Enumeration
- Enumeration:列挙
- 共通脆弱性タイプ一覧
- ソフトウェアにおけるセキュリティ上の弱点(脆弱性)の種類を識別するための共通の基準
- https://www.ipa.go.jp/security/vuln/scap/cwe.html
- Common Weakness Enumeration
- CVSS
- 日本では、脆弱性を見つけたらIPAに届出することになっている
攻撃
攻撃者の種類
- スクリプトキディ(Script kiddie)
- インターネット上で公開されているクラックツールを利用して、システムの脆弱性を利用して攻撃やいたずらを行う人のこと
- ボットハーダー
- ボット(ボットネット)に命令を送り、サイバー攻撃をおこなうもののこと。ハーダー(Herder)は、牧畜民の意で、支配下に置くボットを家畜に見立て、それらを支配し、統率する者、指令者としての意味を持つ。
- ダークウェブ
- インターネット上の小さな領域のことで、インターネットからIPアドレスを隠すウェブサイトから構成されています
- ハクティビズム
- ハック+アクティビズム
- 政治的または社会的動機のある目的でハッキングしたり、コンピューターシステムに侵入したりする行為
- サイバーキルチェーン
- 攻撃者が攻撃を達成するまでの活動を7ステップに分けることで、敵の戦術・技術・手順を分析し、攻撃を可視化することを可能にします。
- MITRE ATT&CK
- Adversarial Tactics, Techniques, and Common Knowledge
- 脆弱性を悪用した実際の攻撃を戦術と技術または手法の観点で分類したナレッジベース
- https://attack.mitre.org/
- MITRE CAPEC
- Common Attack Pattern Enumeration and Classification
- セキュリティ攻撃パターンを網羅的に分類・カタログ化したもの
- 目的は「攻撃パターンを理解することで脆弱な箇所を特定し、より効果的な防御策を取ること」
- https://capec.mitre.org/about/index.html
攻撃の準備
- フットプリンティング
- Footprinting
- 足で目印をつけるという意味
- 目標としているコンピュータに攻撃を行う前に行う情報収集
- ポートスキャン
- ネットワークに接続されているサーバー上のサービスに対して、外部から特定のデータを送信し、それに対する応答状況を調べること
- RaaS
- Ransomware as a Service
- ラテラルムーブメント
- 外部の攻撃者やマルウェアが企業の内部ネットワークの侵入に成功した後、ネットワーク内を横移動し侵害範囲を拡大していく攻撃手法
- ラテラルムーブメント
攻撃
主に情報を盗む目的
- 特に利用者として気を付ける
- メールベースの攻撃
- 標的型攻撃
- APT攻撃
- 水飲み場型攻撃
- 特定分野の企業・組織のユーザーなどの攻撃対象が日頃からアクセスするWebサイトを改ざんし、閲覧するだけでマルウェアに感染させる標的型攻撃
- https://www.ntt-west.co.jp/business/glossary/words-00302.html
- フィッシング
- 標的型攻撃
- パスワードクラッキング
- ブルートフォース攻撃
- リバースブルートフォース攻撃
- 辞書攻撃
- パスワードリスト攻撃
- ソーシャルエンジニアリング
- ショルダーハック
- 何?:攻撃者がユーザーの背後から盗み見ること
- 対策:ディスプレイ盗み見防止フィルタ
- スキャベジング(ゴミ箱あさり:scavenge)
- 何?:ゴミ箱から機密情報を取得する
- 対策:高機能なシュレッダーで復元できないようにする
- 電話
- 何?:上司やシステム管理者を装って電話をかけて機密情報を聞き出す
- 対策:電話では重要情報を伝えない、というルールを決めておく必要がある
- 警告詐欺
- 何?:偽の対策サイトに誘導する手法
- 対策:「不安を煽る警告画面は偽物であること」などの教育
- 盗み聞き
- 何?:公共の場所で盗み聞きすること
- 教育:重要な打ち合わせは公共の場では行わない
- ショルダーハック
- SEOポイズニング
- 脅威アクターが悪意のあるWebサイトの検索順位を高め、消費者にとってより本物に見えるようにするために使用する手法
- 参考:https://www.crowdstrike.jp/cybersecurity-101/attack-types/seo-poisoning/
- Webベースの攻撃(クライアントサイド)
- クロスサイトスクリプティング
- クロスサイトリクエストフォージェリ
- クリックジャッキング
- Webサイト上に隠蔽・偽装したリンクやボタンを設置し、サイト訪問者を視覚的に騙してクリックさせるなど意図しない操作をするよう誘導させる手法
- jack:俗語で、盗む
- オープンリダイレクト
- Webアプリケーションの脆弱性の一種で、攻撃者が特定のWebサイトに偽装したリンクを作成し、そのリンクをクリックすることで、別の危険なWebサイトに誘導するもの
- メールベースの攻撃
- 特に開発者として気を付ける
- サーバーに関する攻撃
- HTTPヘッダインジェクション
- 攻撃者は、レスポンス内容に任意のヘッダフィールドを追加したり、任意のボディを作成したり、複数のレスポンスを作り出すような攻撃を仕掛ける場合があります
- https://www.ipa.go.jp/security/vuln/websecurity/http-header.html
- OSコマンドインジェクション
- ウェブサーバのOSコマンドを不正に実行されてしまう問題を持つものがあります。このような問題を「OSコマンド・インジェクションの脆弱性」と呼び、問題を悪用した攻撃手法を、「OSコマンド・インジェクション攻撃」と呼びます。
- https://www.ipa.go.jp/security/vuln/websecurity/os-command.html
- HTTPヘッダインジェクション
- 中間者攻撃
- MITB攻撃
- ARPポイズニング
- 対策
- DAI
- Dynamic ARP Inspection
- DAI
- 対策
- サイドチャネル攻撃
- タイミング攻撃
- 様々な命令を出して、命令を処理する時間差を分析して情報を盗む
- 故障利用攻撃
- エラーを発生させて、挙動を確認する
- テンペスト攻撃
- 電磁波を取得して、他の画面で再現する
- プローブ攻撃
- 攻撃対象の機器のICにプローブ(ケーブルの先に針のようなものが付いている検査用の器具)を接続して、機器上を流れる信号を取得する
- 参考
- タイミング攻撃
- 認証に関連する攻撃
- レインボーテーブル攻撃
- レインボーテーブルとは平文とハッシュ値の対応表
- 対策:ソルト、ストレッチング
- セッションIDの固定化(Session Fixation)攻撃
- 攻撃者の用意したセッションIDを正規利用者に強制使用させる攻撃手法
- セッションの固定化が可能な場合はセッションハイジャックを引き起こす一つの原因
- https://www.ubsecure.jp/blog/session_fixation
- リプレイ攻撃
- 標的が送信した認証やアクセス情報を窃取し、攻撃者がこの情報を再送信することで不正なアクセスを実現するハッキング手法
- レインボーテーブル攻撃
- なりすましに関する攻撃
- 第三者中継
- 多くのスパムメールが行っている方法で、メール送信者がその本人とは無関係の第三者のメールサーバを不正に中継し、身元を偽ってメールを送信すること
- IPスプーフィング
- IP通信において、送信者のIPアドレスを詐称して別のIPアドレスに「なりすまし」(英:spoofing)を行う攻撃手法
- 第三者中継
- サーバーに関する攻撃
負荷をかける目的
- DoS攻撃の種類
- DDoS攻撃(Distributed Denial of Service attack/分散型サービス拒否攻撃)
- 踏み台を利用して、ターゲットに大量のアクセスやデータを送り、負荷をかける
- DRDoS攻撃(Distributed Reflective Denial of Service attack/DoSリフレクション攻撃)
- ターゲットのIPアドレスになりすまし、不必要な応答を送りつける
- EDoS攻撃(Economic Denial of service attack)
- 金銭的な負担をかける攻撃
- Smurf攻撃
- 対策
- 各機器でブロードキャストアドレス宛のICMPリクエストを破棄
- 対策
- ICMP Flood 攻撃
- サービス妨害攻撃(DoS 攻撃)の一種
- DDoS攻撃(Distributed Denial of Service attack/分散型サービス拒否攻撃)
- DNS関連
- DNSアンプ攻撃
- DNS水責め攻撃
- 電子メール爆弾(メールボム)
- 大量の無意味あるいは同一内容のメールを送りつけたり、巨大なサイズのファイルを添付したメールなどを送りつける攻撃手法
AIを悪用した攻撃
- ディープフェイク
- 深層学習(ディープラーニング)を使用して、2つの画像や動画の一部を結合させ元とは異なる動画を作成する技術
- 参考
- 敵対的サンプル
- モデルに誤分類を引き起こさせるために、人間にはわからないようなわずかなノイズ(一般的に摂動と呼ばれます)を加えた画像などを指す
- 参考
- プロンプトインジェクション
- 生成AIを意図的に誤作動を起こさせるような指令入力を与え、提供側が出力を禁止している情報(開発に関する情報、犯罪に使われうる情報等)を生成させる攻撃
- 参考
- データポイズニング
- 攻撃者または悪意のある内部関係者が、意図的に破損したサンプル、虚偽のサンプル、誤解を招くサンプル、または誤ったサンプルをトレーニング・データ・セットまたは微調整データ・セットに注入する攻撃の一種
- 参考
- モデルインバージョン攻撃
- 学習データを復元する攻撃
- モデルの入力と出力を反転させる手法
- 例
- 「画像から人名を予測するモデル」から「人名から画像を予測する」
- 参考
- メンバーシップ推測攻撃
- トレーニングされたモデルとデータ・サンプルが与えられると、攻撃者は入力スペースを適切にサンプリングし、出力を観察して、そのサンプルがモデルのトレーニングの一部であったかどうかを推測
- 参考
脆弱性に関する攻撃
- ゼロデイ攻撃
- 発見された脆弱性を解消するための対策が提供される前に行われるサイバー攻撃
- https://www.ntt.com/bizon/glossary/j-s/0day-attack.html
- バージョンロールバック攻撃
- 標的はTLS
- TLSプロトコルは、サーバーとクライアントの間で通信を確立するための「ハンドシェイク」プロセスを通じてセキュリティレベルを確立します。バージョンロールバック攻撃では、このハンドシェイクプロセスを悪用します。具体的には、攻撃者はこのハンドシェイクの途中で通信を傍受し、サーバーからクライアントへのメッセージ内のTLSバージョン情報を改ざんします。
- https://www.netattest.com/version-rollback-attack-2023_mkt_tst
クライアントサイドでの攻撃
- ドライブバイダウンロード
- 攻撃者が気付かれぬよう、ユーザーの端末にマルウェアのダウンロードとインストールを試みる攻撃
- RLO(Right-to-Left Override)
- 右から左に向かって文字を読むアラビア語などの言語に対応するため、文字の流れを右から左の向きに書き換える制御記号。 この機能を利用して拡張子を偽装する手法が増えている。
- 参考
ウェブアプリケーションのセキュリティ実装
- インジェクション系
- SQLインジェクション
- 根本的解決
- SQL文の組み立ては全てプレースホルダで実装する
- プレースホルダ:正式な値が入るまで一時的に場所を確保しておくために入れておく値
- 参考:https://qiita.com/sudo00/items/eaa87db36007ee8b0bd5
- SQL文の組み立てを文字列連結により行う場合は、エスケープ処理(サニタイジング)等を行うデータベースエンジンのAPIを用いて、SQL文のリテラルを正しく構成する
- ウェブアプリケーションに渡されるパラメータにSQL文を直接指定しない
- SQL文の組み立ては全てプレースホルダで実装する
- 保険的対策
- エラーメッセージをそのままブラウザに表示しない
- データベースアカウントに適切な権限を与える
- 根本的解決
- OSコマンドインジェクション
- 根本的解決
- シェルを起動できる言語機能の利用を避ける
- 保険的対策
- シェルを起動できる言語機能を利用する場合は、その引数を構成する全ての変数に対してチェックを行い、あらかじめ許可した処理のみを実行する
- 根本的解決
- HTTPヘッダインジェクション
- 注意が必要なサイトの特徴
- HTTP レスポンスヘッダのフィールド値(Location ヘッダ、Set-Cookie ヘッダ等)を、外部から渡されるパラメータの値から動的に生成する実装のウェブアプリケーション
- レスポンスヘッダやレスポンスボディが改ざんされうる
- HTTP レスポンスヘッダのフィールド値(Location ヘッダ、Set-Cookie ヘッダ等)を、外部から渡されるパラメータの値から動的に生成する実装のウェブアプリケーション
- 根本的解決
- ヘッダの出力を直接行わず、ウェブアプリケーションの実行環境や言語に用意されているヘッダ出力用APIを使用する
- 改行コードを適切に処理するヘッダ出力用APIを利用できない場合は、改行を許可しないよう、開発者自身で適切な処理を実装する*
- 保険的対策
- 外部からの入力の全てについて、改行コードを削除する
- 参考
- 注意が必要なサイトの特徴
- メールヘッダインジェクション
- 根本的解決
- メールヘッダを固定値にして、外部からの入力はすべてメール本文に出力する
- メールヘッダを固定値にできない場合、ウェブアプリケーションの実行環境や言語に用意されているメール送信用APIを使用する
- HTMLで宛先を指定しない。
- 保険的対策
- 外部からの入力全てについて、改行コードを削除する
- 参考
- 根本的解決
- SQLインジェクション
- クロスサイト系
- クロスサイトスクリプティング
- HTMLテキストの入力を許可しない場合の対策
- 根本的
- ウェブページに出力する全ての要素に対して、エスケープ処理をする
- URLを出力する時は、「http://」や「https://」のみを許可する
- 「javascript:」の形式を防ぐ
-
script.../script要素の内容を動的に生成しない。
- ※Qiitaも入力できないようになっている。
-
スタイルシートを任意のサイトから取り込めるようにしない
- スタイルシートには、expression() 等を利用してスクリプトを記述することができます。このため任意のサイトに置かれたスタイルシートを取り込めるような設計をすると、生成するウェブページにスクリプトが埋め込まれてしまう可能性があります。
- 保険的
- 入力値の内容チェックを行う
- 根本的
- HTMLテキストの入力を許可する場合の対策
- 根本的
- 入力された HTML テキストから構文解析木を作成し、スクリプトを含まない必要な要素のみを抽出する
- 複雑なコーディングになるので注意が必要
- 入力された HTML テキストから構文解析木を作成し、スクリプトを含まない必要な要素のみを抽出する
- 保険的
- 入力された HTML テキストから、スクリプトに該当する文字列を排除する。
- 例:「javascript:」を「xjavascript:」にする
- 入力された HTML テキストから、スクリプトに該当する文字列を排除する。
- 根本的
- 全てのウェブアプリケーションに共通の対策
- HTTPレスポンスヘッダのContent-Typeフィールドに文字コードを指定する
- 指定しないと、ブラウザが別の文字コードで処理してしまう。
- 保険的
- Cookie 情報の漏えい対策として、発行する CookieにHttpOnly属性を加え、TRACEメソッドを無効化する
- クロスサイト・スクリプティングの潜在的な脆弱性対策として有効なブラウザの機能を有効にするレスポンスヘッダを返す。
- ユーザーが無効にしている場合がある
- HTTPレスポンスヘッダのContent-Typeフィールドに文字コードを指定する
- HTMLテキストの入力を許可しない場合の対策
- クロスサイトリクエストフォージェリ
- 根本的解決
- 処理を実行するページをPOSTメソッドでアクセスするようにし、その「hiddenパラメータ」に秘密情報が挿入されるよう、前のページを自動生成して、実行ページではその値が正しい場合のみ処理を実行する
- 処理を実行する直前のページで再度パスワードの入力を求め、実行ページでは再度入力されたパスワードが正しい場合のみ処理を実行する
- Refererが正しいリンク元かを確認し、正しい場合のみ処理を実行する
- 保険的対策
- 重要な操作を行なった後に、その旨を登録済みのメールアドレスに自動送信する
- 根本的解決
- クロスサイトスクリプティング
- その他
- ディレクトリトラバーサル
- 根本的
- 外部からのパラメータWEBサーバ内のファイル名を直接指定する実装を避ける
- ファイルを開く際、固定のディレクトリを指定し、かつファイル名にディレクトリ名が含まれないようにする
- △:open(filename)
- △:open(dirname+filename)
- ⚪︎:open(dirname+basename(filename))
- 保険的対策
- ウェブサーバ内のファイルへのアクセス権限の設定を正しく設定する
- ファイル名のチェックを行う
- 「/」などのディレクトリを指定できる文字列を検出した場合は処理を中止する
- 根本的
- クリックジャッキング
- 根本的解決
- HTTPレスポンスヘッダに、X-Frame-Optionsヘッダフィールドを出力し、他ドメインのサイトからのframe要素やiframe要素による読み込みを制限する
- 処理を実行する直前のページで再度パスワードの入力を求め、実行ページでは、再度入力されたパスワードが正しい場合のみ処理を実行する
- 保険的対策
- 重要な処理は、一連の操作をマウスのみで実行できないようにする
- 根本的解決
- セッション管理の不備
- 根本的解決
- セッションIDを推測が困難なものにする
- 時刻によるものなどの簡単なアルゴリズムにはしない
- セッションIDをURLパラメータに格納しない
- Cookie に格納するか、POSTメソッドのhiddenパラメータに格納する
- HTTPS通信で利用するCookieにはsecure属性を加える
- ログイン成功後に、新しくセッションを開始する
- ログイン成功後に既存のセッションIDとは別に秘密情報を発行し、ページの遷移ごとにその値を確認する
- セッションIDとは別に、ログイン成功時に秘密情報を作成して Cookieにセットし、この秘密情報とCookieの値が一致することを全てのページで確認するようにします。なお、この秘密情報の作成には、前述の根本的解決の「セッションIDを推測が困難なものにする」と同様の生成アルゴリズムや、暗号処理を用います
- セッションIDを推測が困難なものにする
- 保険的解決
- セッションIDを固定値にしない
- セッションIDをCookieにセットする場合、有効期限の設定に注意する
- 根本的解決
- バッファオーバーフローの対策
- 直接メモリにアクセスできない言語で記述する
- 直接メモリにアクセスできる言語で記述する部分を最小限にする
- 脆弱性が修正されたバージョンのライブラリを使用する
- ディレクトリトラバーサル
参考
セキュリティ対策
- ハード系
- SED
- Self Encrypting Drive
- 自己暗号化ドライブ
- 自身を暗号化する機能を持つハードディスクドライブ
- 例:BitLocker
- WORM
- Write Once Read Many
- 書き込みは一回限りだが読み取りは何度も可能な記録方式
- SED
- ネットワーク系
- TNC
- Trusted Network Communications
- 高信頼ネットワーク
- オープンスタンダードのアーキテクチャ
- SASE
- Secure Access Service Edge
- セキュリティとネットワークの融合と捉える
- SASEとは、VPNやリモートアクセス、SD-WANといったネットワーク、ファイアウォールやIDS/IPS、ウイルス対策などを統合したUTM(Unified Threat Management)といったセキュリティの機能をクラウド上で包含的に提供する考えかた
- 参考:https://www.ntt.com/bizon/glossary/e-s/sase.html
- TNC
- アプリケーションおよびデータセキュリティ技術
- DLP
- Data Loss Prevention
- 機密情報や重要データを自動的に特定し、データを常に監視・保護する機能
- 例えば、従業員が企業の機密情報を含むファイルを外部のメールアドレスに送信しようとした場合、DLPシステムはこの行動を検知し、送信をブロックするか警告を発することで、データの不正な流出を防ぎます。
- RASP
- Runtime Application Self-Protection
- アプリケーションおよびそのランタイム実行環境に組み込まれるセキュリティ技術。アプリケーションに対する不正な入力や攻撃を検知し阻止する機能
- 参考:「サーバーレス環境をサイバー攻撃から守れ、「RASP」の実力と課題とは」
- DLP
- セキュリティ管理技術
- UTM
-
Unified Threat Management
- Unified:一つにまとめられた
- 統合脅威管理
- ファイアウォールとか機能盛りだくさんと考える
- IPSとIDSを含む
-
Unified Threat Management
- UTM
- デバイス管理技術
- MDM
- Mobile Device Management
- 企業・組織が所有するモバイル端末やPC、タブレット端末を一元管理するための仕組み
- MDM
◆「高信頼ネットワーク」について深掘り
「情報セキュリティ白書2019」より
TCG(Trusted Computing Group)は、信頼性の高いコンピューティング環境の実現のため、機器やネットワーク等のセキュリティ技術に関して統一的な標準仕様を開発、策定、普及させることを目的とし、世界各国 81の企業、30 以上の政府機関、業界団体、大学、専門家で構成される国際的非営利団体(NPO)である(数字は 2019 年 1 月時 点 )。セキュリティチップ Trusted Platform Module(TPM)、自己暗号化ドライブ Self Encrypting Drive(SED)、高信頼ネットワークTrusted Network Communications(TNC)の三つを基本的な標準仕様と位置付けている。
TRUSTED NETWORK COMMUNICATIONS ARCHITECTUREより
- オープンスタンダードのアーキテクチャ
- できること
- 動的なセキュリティの強化
- 異なるセキュリティシステム間の通信をサポート
- 何?
- ネットワークとエンドポイントの可視性
- アクセス制御の強化
- セキュリティの自動化
OSのセキュリティ
- MAC
- Mandatory Access Control
- 強制アクセス制御
- ユーザはプロセス、ファイル、システムデバイスといったリソースへアクセスする権限を全て自由に制御できず管理者から一定の強制を受ける。
- RBAC
- Role-Based Access Control
- ロールベースアクセス制御
- 企業のITシステム内でユーザーができることを制御する方法です。 RBACは、1つまたは複数の「ロール(役割)」を各ユーザーに割り当てて、各ロールに異なる権限を付与することで、アクセスを制御します。
アプリケーションセキュリティ
- ソースコード静的検査
- SAST:Static Application Security Testing
- アプリケーションのソースコード、バイトコード、バイナリコードに対して脆弱性が内在するか否かを確認するテスト手法
- ホワイトボックステストに相当する
- プログラムの動的検査
- DAST:Dynamic Application Security Testing
- アプリケーション内部の相互作用や設計をシステム・レベルで認識せず、ソース・プログラムにアクセスしたり、ソース・プログラムを可視化することなく、アプリケーションの実行中にアプリケーションを検査するAppSecテスト手法
- インタラクティブアプリケーションセキュリティ検査
- IAST : Interactive Application Security Testing
- 話型アプリケーションセキュリティテストとも訳され、静的なセキュリティ評価手法であるSAST (Static Application Security Testing)と、動的なセキュリティ評価であるDAST (Dynamic Application Security Testing)を組み合わせて、より効果的な評価を行うためのテスト手法である。
- ソフトウェア構成分析
- SCA:Software Composition Analysis
- オープンソース・コンポーネントの利用に関する管理を扱う分野
- ソフトウェア・コンポジション解析(SCA)は、コードベース内のオープンソース・ソフトウェアを識別する自動化されたプロセスです。
- この解析は、セキュリティ、ライセンス・コンプライアンス、コード品質を評価するために実行されます。
- 参考:https://www.synopsys.com/ja-jp/glossary/what-is-software-composition-analysis.html
- コンテナセキュリティ
- コンテナセキュリティとは、組織のインフラを攻撃から守ると同時に、コンテナを脅威から守り、セキュアな環境で運用するためのツール活用とポリシー設定のプロセス
Webアプリケーションのセキュリティ
- ファジング
- ファズ(fuzz)と呼ばれる通常想定されていない「不正データ」「予期せぬデータ」「ランダムなデータ」を対象の製品・システムに与え意図的に例外を発生させ、潜在的なバグ・脆弱性を検出する手法です
- 同一オリジンポリシー(Same Origin Policy)
- あるオリジンから読み込まれた文書やスクリプトが、どのように他のオリジンからのリソースと対話することができるかを制限するもの
- ブラウザが使うポリシー
- オリジン
- スキーム、ホスト、ポート番号の組み合わせ
- ブラウザが持っているデータは、そのデータをやりとりしているサーバーしか取得できない
- 例
- https://www.example.com/page1.html のページにあるJavaScriptが、https://www.example.com/data.json にはアクセスできますが、https://data.example.com/anotherpage.html にはアクセスできないということ
- 目的:XSSやクロスサイトリクエストフォージェリの対策になる
- CORS(Cross-Origin Resource Sharing)
- クロスサイトリクエストフォージェリ(CSRF)などのセキュリティ攻撃を防止するために、ブラウザは「同一生成元ポリシー(Same-Origin Policy)」という仕組みを実装し、異なるオリジンのリソースへのアクセスに制約をかけています。
- CORS (Cross-Origin Resource Sharing)は、この制約を一部解除し、異なるオリジン間でリソースを共有するための仕組みです。
- https://www.tohoho-web.com/ex/cors.html
- パスワードクラック対策
- ソルト
- SALT
- ランダムな文字列のこと
- パスワードをハッシュ化する際にランダムな値を加えることで、パスワードを破られることを防ぐ技術におけるランダム文字列を意味する用語です。 パスワードごとに個別のランダム値が加えられることで、ハッシュからパスワードを推測するレインボーテーブル攻撃などを防ぐことができます
- ストレッチング
- ストレッチングとは、パスワードのハッシュ値を総当り攻撃(ブルートフォース攻撃)などから推測されないようにするために、ハッシュ値への計算を数千回~数万回繰り返し行うこと
- ソルト
- HSTS
- HSTSプリロード
- 初回アクセス時からhttps接続させるようにブラウザに通知する仕組み
- CSP
- Content Security Policy
- ブラウザ上でのコンテンツ読み込みを制限して、XSSやデータインジェクションなどのリスクを軽減する仕組み
- 参考
ソフトウェア構成分析
注目の技術
- NOTICE
- 日本政府による、サイバー攻撃に悪用される恐れのあるIoT機器を調査し、管理者・利用者へ注意を促す事業
- 参考:https://e-words.jp/w/NOTICE.html
- デジタルフォレンジックス
- ブロックチェーン
- ゼロトラスト
- 社内のアクセスも信頼しない、と解釈する
- 構成要素
- IAM
- Identity and Access Management
- AWS IAMのIAM
- IAP
- Identity-Aware proxy
- VPNはネットワーク単位で接続するが、アプリケーション単位で接続できる
- 例:社内ネットワーク内の業務アプリケーションを利用する場合に、IAPを経由して業務アプリケーションを利用させる
- VPNよりも接続先が限定される
- CASB
- Cloud Access Security Brocker
- クラウドサービスの利用状況を管理・制御する仕組み
- プロキシ型
- 利用者はエージェントをインストールする
- API型
- 利用者はエージェントレスで利用できる
- IAM
- SWG
- Secure Web Gateway
- webトラフィック全般を監視することで、インターネット上の脅威からユーザーを守る
- 主な機能
- 遮断
- 不正なWebサイトにアクセスしようとしたとき遮断される
- マルウェア対策
- 利用制御
- アップロードの禁止など
- DLPの役割もある
- ユーザーが社外にアップロードしようとしたときブロックする
- 遮断
- SIEM(シーム)
- Security Information and Event Management
- 不審な動きをリアルタイムで検出する仕組み
- 相関関係をもとにログを分析する
- EPP
- Endpoint Protection Platform
- エンドポイント保護プラットフォーム
- マルウェア感染を防止する
- EDR
- Endpoint Detection and Respnse
- エンドポイントで不審な動きを検知し、被害の拡大を防ぐ仕組み(感染後の被害拡大を防ぐのが目的)
- XDR
- Extended Detection and Response
- 複数のセキュリティ製品をネイティブに統合し、ライセンスされたすべてのコンポーネントを統一した一貫性のあるセキュリティ運用システムを実現する、SaaSベースでベンダーに特化した、セキュリティ脅威の検知およびインシデント対応ツール
- 参考
- MDR
- Managed Detection and Response
- マルウェア検知から解析、インシデントの初動対応まで、EDRの各種機能および運用サービスを提供するマネージドサービス
- 参考
- CSPM
- Cloud Security Posture Management
- クラウドセキュリティの構成ミス、管理不備などへ対応するための仕組み
- 参考
- SSPM
- SaaS Security Posture Management
- SaaSアプリケーションの設定不備によるインシデント(不正アクセス、機密情報流出、etc)を予防するためのソリューション
- 参考
- CWPP
- Cloud Workload Protection Platform
- セキュリティ確保のためのさまざまな機能を、クラウドサービス上のサーバや仮想マシン、ひいてはそこで動作しているソフトウェアといったワークロードに対して提供するセキュリティソリューション
- 参考
- Webアイソレーション
- ブラウザ分離ともいわれ、Webサイトの閲覧活動をエンドポイントから切り離し、悪意のあるコードやマルウェアなどからユーザーを守る技術
- 参考
- SOAR
- Security Orchestration, Automation and Response
- 組織内の各種セキュリティ機器及び外部サービスから収集された脅威情報を一つのプラットフォームに統合
- 参考
- MSS
- Managed Security Service
- 企業や組織の情報セキュリティシステムの運用管理を、社外のセキュリティ専門企業などが請け負うサービス
- 参考
その他
JISシリーズ
- JIS Q 27000:要求
- JIS Q 27001:ベストプラクティス
- JIS Q 27014:ガバナンス
- JIS Q 27017:クラウド
↓書いた記事
セキュリティの基本
- CIA
- 機密性
- 完全性
- 可用性
- セキュリティの追加要素4つ
- 真正性
- 利用者が適正であることやデータが改ざんされていないこと
- 責任追及性
- ログなどを用いて追跡できること
- 否認防止
- 発生事象が後でなかったことにされないようにすること
- 信頼性
- 情報システムの処理が適切であり、矛盾なく動作できるような構成であること
- 真正性
- 不正のメカニズム
- 不正のトライアングル
- 機会
- 動機
- 正当化
- 状況的犯罪予防
- 割れ窓理論
- 1枚の割られた窓ガラスをそのままにしていると、さらに割られる窓ガラスが増え、いずれ街全体が荒廃してしまう、という理論
- 防犯環境設計
- 不正のトライアングル
情報セキュリティに関する基準
- コンピュータウイルス対策基準
- コンピュータ不正アクセス対策基準
- ソフトウエア製品等の脆弱性関連情報に関する取扱規程
- 政府機関等の情報セキュリティ対策のための統一基準群
- サイバーセキュリティ経営ガイドライン
- 中小企業の情報セキュリティ対策ガイドライン
- IoTセキュリティガイドライン
- サイバー・フィジカル・セキュリティ対策フレームワーク
- 金融機関等コンピュータシステムの安全対策基準・解説書
- PCI DSS
- サイバーセキュリティフレームワーク(CSF)
- NIST SP 800 シリーズ
おわりに
この記事では、情報処理安全確保支援士の試験範囲の用語について体系的に整理しました。
試験勉強の参考になれば幸いです。
参考
「ゼロからスタート! 教育系YouTuberまさるの情報処理安全確保支援士1冊目の教科書」