LPIC-3 Exam 303: Security
試験のバージョン: 3.0
試験コード: 303-300
目的別の重さについて: 各項目には、重み付けの値が割り当てられています。重みは、試験における各目標の相対的な重要性を示しています。重みが高い目標は、より多くの問題で試験に取り上げられます。
バウチャーを購入するContents
はじめに
これは、LPIC-3 認定試験に必要な項目です。
バージョン情報
の試験範囲は、バージョン3.0.0です。
試験範囲の翻訳
このwikiに、以下の試験範囲の翻訳があります:
- 英語
- 日本語
試験範囲
課題 331: 暗号化
331.1 X.509証明書と公開鍵基盤 (総重量: 5)
総重量 | 5 |
説明 | X.509証明書と公開鍵基盤を理解している必要がある。認証局/CAを実装するのために、OpenSSLを設定し利用したり、様々な目的のために、SSL証明書を発行することを知っている必要があります。 |
主な知識分野:
- X.509証明書、X.509証明書のライフサイクル、X.509証明書のフィールドとX.509v3証明書拡張を理解している。
- 証明書の透明性(CT: certificate transparency)を含む、信頼の連鎖(trust chains)と公開鍵基盤を理解している。
- 公開鍵と秘密鍵の生成と管理。
- 認証局/CAを作成・操作・厳重に管理する。
- サーバ・クライアント証明書を、要求・署名・管理する。
- 証明書と認証局/CAを無効にする。
- Let's Encrypt, ACME, certbotの基本的な特徴の知識。
- CFSSLの基本的な特徴の知識。
用語とユーティリティ:
- openssl (関連するサブコマンドを含む)
- OpenSSLの設定
- PEM, DER, PKCS
- CSR
- CRL
- OCSP
331.2 暗号化・署名・認証のためのX.509証明書 (総重量: 4)
総重量 | 4 |
説明 | サーバ・クライアント認証両方のために、X.509証明書を利用することができる。 これには、Apache HTTPDのユーザとサーバ認証の実装が含まれる。Apache HTTPDのバージョンは2.4以上を対象としている。 |
主な知識分野:
- プロトコルバージョンと暗号(cipher)を含む、SSL, TLSの理解。
- Apache HTTPDのmod_sslを利用して、SNI, HSTSを含む、HTTPSサービスを提供できるように設定する。
- 証明書の連鎖を提供し、cipherの設定を調節して、Apache HTTPDのmod_sslを設定する(cipherに特化した知識ではない)。
- 証明書を利用して、ユーザ認証をするようにApache HTTPDのmod_sslをせっていする。
- OCSPを提供するように、Apache HTTPDのmod_sslを設定する。
- OpenSSLを、SSL/TLSクライアントとサーバのテストに利用する。
用語とユーティリティ:
- httpd.conf
- mod_ssl
- openssl (関連するサブコマンドを含む)
331.3 暗号化ファイルシステム (総重量: 3)
総重量 | 3 |
説明 | 暗号化ファイルシステムを構築し設定できる。 |
主な知識分野:
- ブロックデバイスとファイルシステム暗号化を理解する。
- ブロックデバイスを暗号化するために、LUKS1によるdm-cryptを利用する。
- ファイルシステムを暗号化するために、eCryptfsを利用する。これには、ホームディレクトリとPAM統合を含まれる。
- plainモードのdm-cryptの知識
- LUKS2機能の知識
- LUKSデバイスのClevisと、TMP2とNetwork Bound Disk Encryption (NBDE)/TangのClevis PINの概念的な理解。
用語とユーティリティ:
- cryptsetup (関連するサブコマンドを含む)
- cryptmount
- /etc/crypttab
- ecryptfsd
- ecryptfs-* commands
- mount.ecryptfs, umount.ecryptfs
- pam_ecryptfs
331.4 DNSと暗号化 (総重量: 5)
総重量 | 5 |
説明 | BINDを利用した際の、DNSの背景と実装について、暗号化の知識と経験がある。BINDのバージョンは9.7とそれ以上を対象としている。 |
主な知識分野:
- DNS・ゾーン・リソースレコードの概念を理解している。
- 鍵署名鍵、ゾーン署名鍵、DS, DNSKEY, RRSIG, NSEC, NSEC3, NSEC3PARAMなどの関連するDNSレコードを含み、DNSSECを理解している。
- DNSSECセキュアゾーンを提供している権威のあるネームサーバとしての、BINDの設定をトラブルシューティング。
- DNSSECの署名されたゾーンを管理する。これには、キー生成・キーのロールオーバー・ゾーンの再署名が含まれます。
- クライアントの振る舞いがDNSSECバリデーションとして機能する、再帰ネームサーバとしてBINDを設定する。
- CAAやTLSAのようなDNSレコードに関連する、CAAとDANEの理解。
- DNSで、X.509証明書と認証局/CAの情報を発行する、CAAとDANEを利用する。
- BINDでセキュアな接続を行うため、TSIGを利用する。
- DNS over TLSとDNS over HTTPSの知識。
- マルチキャストDNSの知識。
用語とユーティリティ:
- named.conf
- dnssec-keygen
- dnssec-signzone
- dnssec-settime
- dnssec-dsfromkey
- rndc (関連するサブコマンドを含む)
- dig
- delv
- openssl (関連するサブコマンドを含む)
課題 332: ホストセキュリティ
332.1 ホストハーデニング (総重量: 5)
総重量 | 5 |
説明 | 一般的な脅威に対して、Linuxが稼働しているコンピュータをよりセキュアにする。 |
主な知識分野:
- BIOSとboot loader(GRUB 2)セキュリティの設定。
- 利用していないソフトウエアとサービスを無効化する。
- 特定のsystemdユニットと全体システムに対して、不必要な機能を理解し削除する。
- アドレス空間のランダム化(ASLR: Address Space Layout Randomization )、Data Execution Prevention (DEP) 、 Exec-Shieldを理解し設定する。
- ブラックリスト・ホワイトリストに分けられたUSBデバイスを、USBGuardを利用して、コンピュータに接続する。
- CAを利用してホストとユーザーキーのSSH CA、SSH証明書を作成し、OpenSSHがSSH証明書を利用するように設定する。
- chroot環境での作業
- システムコールとプロセスに対して有効な機能を制限するために、systemdユニットを利用する。
- 特定のファイルやデバイスに、アクセスを制限したりアクセスさせないようにして、プロセスを起動するようにsystemdユニットを利用する。
- 専用のテンポラリディレクトリや/devディレクトリがあり、ネットワークアクセスができない状態のプロセスを起動するように、systemdユニットを利用する。
- プロセスが消費することができるシステムリソースを制限するように、systemdユニットを利用することができる。
- Linux MeltdownとSpectreの回避策の影響の理解と、回避策の有効化・無効化。
- polkitの知識
- 仮想化とコンテナ化のセキュリティの利点の知識
用語とユーティリティ:
- grub.cfg
- systemctl
- getcap
- setcap
- capsh
- sysctl
- /etc/sysctl.conf
- /etc/usbguard/usbguard-daemon.conf
- /etc/usbguard/rules.conf
- usbguard
- ssh-keygen
- /etc/ssh/
- ~/.ssh/
- /etc/ssh/sshd_config
- chroot
332.2 ホストの侵入検知 (総重量: 5)
総重量 | 5 |
説明 | 一般的なのホスト侵入検知ソフトウエアの利用と設定の知識がある必要がある。これには、Linux Auditシステムとシステムの一貫性の検証が含まれる。 |
主な知識分野:
- Linux Auditシステムの設定と利用
- chkrootkitの利用
- rkhunterの、利用・設定・アップデート
- Linux Malware Detect(マルウェア検出ツール)の利用。
- cronを利用したホストのスキャンの自動化。
- インストールされたファイルの一貫性の検証のため、RPMやDPKGのパッケージ管理ツールの利用。
- ルール管理を含んだAIDEの設定と利用。
- OpenSCAPの知識
用語とユーティリティ:
- auditd
- auditctl
- ausearch, aureport
- auditd.conf
- audit.rules
- pam_tty_audit.so
- chkrootkit
- rkhunter
- /etc/rkhunter.conf
- maldet
- conf.maldet
- rpm
- dpkg
- aide
- /etc/aide/aide.conf
332.3 リソース制御 (総重量: 3)
総重量 | 3 |
説明 | サービスとプログラムが利用可能なリソースを制限できる。 |
主な知識分野:
- ulimitsの理解と設定
- クラス・リミット・アカウンティングを含むcgroupsの理解。
- cgroupsの管理と、cgroup associationの加工。
- スライスを含む、systemdリソース制御の理解
- systemdユニットのリソース制限の設定。
- cgmanagerとlibcgroupユーティリティーの知識。
用語とユーティリティ:
- ulimit
- /etc/security/limits.conf
- pam_limits.so
- /sys/fs/group/
- /proc/cgroups
- systemd-cgls
- systemd-cgtop
課題 333: Access Control
333.1 任意アクセス制御 (総重量: 3)
総重量 | 3 |
説明 | 任意アクセス制御(DAC: discretionary access control)を理解していて、アクセス制御リスト(ACL: access control list)を利用してどのように実装するかの知識があります。さらに、拡張された属性をどのように利用するかを理解しているひつようがあります。 |
主な知識分野:
- SetUID, SetGIDビットを含む、ファイルの所有権・パーミッションの管理と理解。
- アクセス制御リスト(ACL)の管理と理解。
- 拡張属性と属性クラスの管理と理解。
用語とユーティリティ:
- getfacl
- setfacl
- getfattr
- setfattr
333.2 強制アクセス制御 (総重量: 5)
総重量 | 5 |
説明 | Linuxの強制アクセス制御(MAC: mandatory access control)の知識がある 特にSELinux全体の知識がある。Linuxの他の強制アクセス制御の知識も必要である。これには、システムの主な機能が含まれるが、設定や利用に関しては含まれない。 |
主な知識分野:
- Type Enforcement・ロールベースアクセス制御(RBAC: role based access control)・強制アクセス制御・任意アクセス制御の概念を理解している。
- SELinuxを管理・設定する。
- AppArmorとSmackの知識
用語とユーティリティ:
- getenforce
- setenforce
- selinuxenabled
- getsebool
- setsebool
- togglesebool
- fixfiles
- restorecon
- setfiles
- newrole
- setcon
- runcon
- chcon
- semanage
- sestatus
- seinfo
- apol
- seaudit
- audit2why
- audit2allow
- /etc/selinux/*
課題 334:ネットワークセキュリティ
334.1 ネットワークハーデニング (総重量: 4)
総重量 | 4 |
説明 | 一般的な脅威に対して、ネットワークをセキュアに設定できる。これには、特定のノードとプロトコルについて、ネットワークトラフィックを解析が含まれている。 |
主な知識分野:
- ワイヤレスネットワークのセキュリティ機構を理解する。
- ネットワークノードの認証のため、FreeRADIUSを設定する。
- ネットワークトラフィックの分析・フィルタ・統計取得のため、Wiresharkやtcpdumpを利用する。
- ワイヤレスネットワークを解析し、ワイヤレスネットワークのトラフィックを取得するために、Kismetを利用する。
- 不正なRA(rogue router advertisement: ルータアドバタイズメント)とDHCPメッセージの確認と取り扱い。
- aircrack-ngとbettercapの知識
用語とユーティリティ:
- radiusd
- radmin
- radtest
- radclient
- radlast
- radwho
- radiusd.conf
- /etc/raddb/*
- wireshark
- tshark
- tcpdump
- kismet
- ndpmon
334.2 ネットワーク侵入検知 (総重量: 4)
総重量 | 4 |
説明 | ネットワークのセキュリティスキャン・ネットワークモニタ・ネットワークの侵入検知ソフトウエアの設定・利用について理解している。これには、セキュリティスキャナの更新と管理が含まれる。 |
主な知識分野:
- 利用帯域モニタリングの実施
- Snortの利用と設定とルール管理
- NASLを含むOpenVASの利用と設定
用語とユーティリティ:
- ntop
- snort
- snort-stat
- pulledpork.pl
- /etc/snort/*
- openvas-adduser,
- openvas-rmuser
- openvas-nvt-sync
- openvassd
- openvas-mkcert
- openvas-feed-update
- /etc/openvas/*
334.3 パケットフィルタリング (総重量: 5)
総重量 | 5 |
説明 | Linuxパケットフィルタのnetfilterの設定と利用の知識がある。 |
主な知識分野:
- DMZを含む一般的なファイアウォールと構造の理解。
- 一般的なモジュール・テスト・ターゲットを含む、iptables, ip6tablesの利用と理解。
- IPv4とIPv6のパケットフィルタリングの実施。
- コネクショントラッキングとネットワークアドレス変換(NAT)の実施。
- IPセットと、IPセットのnetfilterルールでの利用。
- nftablesとnftの知識
- ebtablesの知識
- conntrackdの知識
用語とユーティリティ:
- iptables
- ip6tables
- iptables-save
- iptables-restore
- ip6tables-save
- ip6tables-restore
- ipset
334.4 バーチャルプライベートネットワーク(VPN) (総重量: 4)
総重量 | 4 |
説明 | OpenVPN, IPsec, WireGuardについて、サイト間VPNでのリモートアクセスでの設定を行い、利用を熟知している。 |
主な知識分野:
- ブリッジ・ルーティングされたVPNの概念を理解している。
- OpenVPN, IPsec, IKEv2, WIreGuardプロトコルの主な違いと概念を理解している。
- OpenVPNサーバとクライアントを設定・操作する。
- IPsecサーバとクライアントを、strongSwanを利用して設定・操作する。
- WireGuardサーバとクライアントを設定・操作する。
- L2TPの知識
用語とユーティリティ:
- /etc/openvpn/
- openvpn
- /etc/strongswan.conf
- /etc/strongswan.d/
- /etc/swanctl/swanctl.conf
- /etc/swanctl/
- swanctl
- /etc/wireguard/
- wg
- ip
課題 335: 脅威と脆弱性評価
335.1 一般的なセキュリティの脆弱性と脅威 (総重量: 2)
総重量 | 2 |
説明 | 主要なセキュリティの脆弱性と脅威について原理を理解している。 |
主な知識分野:
- 独立したノードに対する脅威について、概念上の理解がある。
- ネットワークに対する脅威について、概念上の理解がある。
- アプリケーションに対する脅威について、概念上の理解がある。
- 証明書と信頼に対する脅威について、概念上の理解がある。
- ハニーポットついて、概念上の理解がある。
用語とユーティリティ:
- トロイの木馬型ウイルス
- ウイルス
- ルートキット
- キーロガー
- DoSとDDoS
- Man in the Middle
- ARP and NDP forgery
- Rogue Access Points, Routers and DHCP servers
- Link layer address and IP address spoofing
- バッファオーバーフロー
- SQL and Code Injections
- クロスサイトスクリプティング
- Cross Site Request Forgery
- 権限昇格
- ブルートフォースアタック
- Rainbow tables
- フィッシング詐欺
- ソーシャルエンジニアリング
335.2 ペネトレーションテスト (総重量: 3)
総重量 | 3 |
説明 | ペネトレーションテスト(侵入を試みるテスト)についての理解していて、一般的に利用されているペネトレーションテストツールの理解もしている。さらに、nmapを利用してネットワークのセキュリティ計測を効果的に行うことができる。 |
Key Knowledge Areas:
- ペネトレーションテストとエシカルハッキングの概念の理解。
- ペネトレーションテストの法的な影響の理解
- アクティブ・受領的な情報収集・列挙・アクセス権取得・権限昇格・アクセスメンテナンス・カバートラック(侵入後の痕跡を隠す・消すこと)などの、ペネトレーションテストのフェーズを理解する。
- Metasploitのコンポーネントと構造を理解する。これには、MetasploitモジュールタイプとMetasploitが様々なセキュリティツールをどのように統合しているかの理解も含まれる。
- nmapをネットワークとホストスキャンに利用する。これには、様々なスキャンの方法・バージョンスキャン・オペレーティングシステムの認識も含まれる。
- Nmap Scripting Engineの概念の理解と、存在するスクリプトの実行。
- Kali Linux・Armitage・Social Engineer Toolkit(SET)の知識
用語とユーティリティ:
- nmap