๋ฒ์ : 1.0.1 ์ต์ข ์์ : 2026-04-20 Repository: https://github.com/rebugui/KISA-CIIP-2026
์ด ์ ์ฅ์๋ KISA(ํ๊ตญ์ธํฐ๋ท์งํฅ์) ์ฃผ์์ ๋ณดํต์ ๊ธฐ๋ฐ์์ค ๊ธฐ์ ์ ์ทจ์ฝ์ ๋ถ์ยทํ๊ฐ ๋ฐฉ๋ฒ ์์ธ๊ฐ์ด๋(2026) ์ ๋ฐ๋ฅธ ๊ธฐ์ ์ ์ทจ์ฝ์ ์ง๋จ ์คํฌ๋ฆฝํธ์ ๊ณต๊ฐ ๋ฒ์ ์ ๋๋ค.
| ์นดํ ๊ณ ๋ฆฌ | ํ๋ซํผ | ์ง๋จ ํญ๋ชฉ ์ |
|---|---|---|
| Unix ์๋ฒ | Debian, RedHat, AIX, HP-UX, Solaris | U-01 ~ U-67 (67๊ฐ ร 5 = 335) |
| Windows ์๋ฒ | Windows Server 2019+ | W-01 ~ W-64 (64๊ฐ) |
| ์น์๋ฒ | Apache, Nginx, Tomcat (.sh) | WEB-01 ~ WEB-26 (26๊ฐ ร 3 = 78) |
| ์น์๋ฒ | IIS (.ps1) | WEB-01 ~ WEB-26 (26๊ฐ) |
| DBMS | MySQL, PostgreSQL, Oracle, MSSQL | D-01 ~ D-26 (26๊ฐ ร 4 = 104) |
| PC | Windows PC | P-01 ~ P-18 (18๊ฐ) |
์ด ์ง๋จ ํญ๋ชฉ: 625๊ฐ ์คํฌ๋ฆฝํธ
- ๋จ์ผ ํญ๋ชฉ ์ง๋จ: ๊ฐ๋ณ ์ทจ์ฝ์ ํญ๋ชฉ ์ง๋จ
- ์ผ๊ด ์ง๋จ: ์ ์ฒด ํญ๋ชฉ ์๋ ์ง๋จ ๋ฐ ํตํฉ ๊ฒฐ๊ณผ ์์ฑ
- ํ๋ซํผ ์๋ ๊ฐ์ง: OS ๋ฐ ๋ฏธ๋ค์จ์ด ์๋ ์๋ณ
- ๋ฉํฐ ํฌ๋งท ๊ฒฐ๊ณผ: JSON + ํ ์คํธ ์ด์ค ๊ฒฐ๊ณผ ์ ์ฅ
- ๋ณด์: ํ์ดํธ๋ฆฌ์คํธ ๊ธฐ๋ฐ ๋ช ๋ น์ด ๊ฒ์ฆ, 30์ด ํ์์์
- KISA ๊ฐ์ด๋๋ผ์ธ ๋ด์ฅ: ๊ฐ ์คํฌ๋ฆฝํธ์ ๋ชฉ์ , ์ํ, ํ๋จ๊ธฐ์ค, ์กฐ์น๋ฐฉ๋ฒ ํฌํจ
git clone https://github.com/rebugui/KISA-CIIP-2026.git
cd KISA-CIIP-2026chmod +x lib/*.sh
chmod +x 01.Unix์๋ฒ/*/*_check.sh
chmod +x 03.์น์๋ฒ/*/*_check.sh
chmod +x 08.DBMS/*/*_check.shcd 01.Unix์๋ฒ/RedHat
# ๋จ์ผ ํญ๋ชฉ ์ง๋จ
./U01_check.sh
# ์ ์ฒด ํญ๋ชฉ ์ผ๊ด ์ง๋จ
./01.Unix์๋ฒ_RedHat_run_all.shcd 02.Windows์๋ฒ
# ๋จ์ผ ํญ๋ชฉ ์ง๋จ
powershell -ExecutionPolicy Bypass -File .\W01_check.ps1
# ์ ์ฒด ํญ๋ชฉ ์ผ๊ด ์ง๋จ
.\02.Windows์๋ฒ_run_all.ps1cd 03.์น์๋ฒ/Apache
./03.์น์๋ฒ_Apache_run_all.shcd 08.DBMS/mysql
# ์ง๋จ ์์ (์ฐ๊ฒฐ ์ ๋ณด ์
๋ ฅ ํ๋กฌํํธ)
./D01_check.sh
# ์
๋ ฅ ์์:
# ํธ์คํธ๋ค์ [localhost]: ์ํฐ
# ํฌํธ [3306]: ์ํฐ
# ์ฌ์ฉ์๋ช
: root
# ๋น๋ฐ๋ฒํธ: ********cd 07.PC
# ๋จ์ผ ํญ๋ชฉ ์ง๋จ
powershell -ExecutionPolicy Bypass -File .\P01_check.ps1
# ์ ์ฒด ํญ๋ชฉ ์ผ๊ด ์ง๋จ
.\07.PC_run_all.ps1KISA-CIIP-2026/
โโโ lib/ # ๊ณต์ ๋ผ์ด๋ธ๋ฌ๋ฆฌ
โ โโโ common.sh # ๊ณตํต ํจ์ (ํธ์คํธ๋ค์, ๊ฒฝ๋ก ์์ฑ)
โ โโโ result_manager.sh # ๊ฒฐ๊ณผ ํ์ผ ์์ฑ, JSON/TXT ์ถ๋ ฅ
โ โโโ command_validator.sh # ๋ช
๋ น์ด ํ์ดํธ๋ฆฌ์คํธ ๊ฒ์ฆ
โ โโโ timeout_handler.sh # ํ์์์ ์ฒ๋ฆฌ, ์ฌ์๋ ๋ก์ง
โ โโโ platform_detector.sh # ํ๋ซํผ ์๋ ๊ฐ์ง
โ โโโ dbms_connector.sh # DBMS ์ฐ๊ฒฐ, 3ํ ์ฌ์๋
โ โโโ json_formatter.sh # JSON ํฌ๋งทํ
โ โโโ output_mode.sh # dual/json/text ์ถ๋ ฅ ๋ชจ๋
โ โโโ result_manager.ps1 # PowerShell ๊ฒฐ๊ณผ ์ ์ฅ
โ โโโ output_format.ps1 # PowerShell ์ถ๋ ฅ ๋ชจ๋
โ โโโ ...
โ
โโโ 01.Unix์๋ฒ/
โ โโโ RedHat/ # U-01 ~ U-67 (67๊ฐ)
โ โ โโโ U01_check.sh ~ U67_check.sh
โ โ โโโ 01.Unix์๋ฒ_RedHat_run_all.sh
โ โโโ Debian/ # U-01 ~ U-67 (67๊ฐ)
โ โโโ AIX/ # U-01 ~ U-67 (67๊ฐ)
โ โโโ HP-UX/ # U-01 ~ U-67 (67๊ฐ)
โ โโโ Solaris/ # U-01 ~ U-67 (67๊ฐ)
โ
โโโ 02.Windows์๋ฒ/
โ โโโ W01_check.ps1 ~ W64_check.ps1
โ โโโ 02.Windows์๋ฒ_run_all.ps1
โ
โโโ 03.์น์๋ฒ/
โ โโโ Apache/ # WEB-01 ~ WEB-26 (.sh)
โ โโโ Nginx/ # WEB-01 ~ WEB-26 (.sh)
โ โโโ Tomcat/ # WEB-01 ~ WEB-26 (.sh)
โ โโโ IIS/ # WEB-01 ~ WEB-26 (.ps1)
โ
โโโ 07.PC/
โ โโโ P01_check.ps1 ~ P18_check.ps1
โ โโโ 07.PC_run_all.ps1
โ
โโโ 08.DBMS/
โโโ mysql/ # D-01 ~ D-26 (.sh)
โโโ postgresql/ # D-01 ~ D-26 (.sh)
โโโ Oracle/ # D-01 ~ D-26 (.sh)
โโโ MSSQL/ # D-01 ~ D-26 (.sh)
results/YYYYMMDD/
โโโ hostname_U01_result_20260407_143020.json
โโโ hostname_U01_result_20260407_143020.txt
โโโ hostname_Unix_RedHat_all_results_20260407_150000.json
{
"item_id": "U-01",
"item_name": "root ๊ณ์ ์๊ฒฉ ์ ์ ์ ํ",
"status": "์ํธ",
"diagnosis_result": "GOOD",
"timestamp": "2026-04-07T14:30:20+09:00",
"hostname": "server01",
"inspection_summary": "SSH ์ค์ ํ์ธ ์๋ฃ",
"command_result": "PermitRootLogin no",
"guideline": {
"purpose": "KISA ๋ณด์ ๊ถ๊ณ ์ฌํญ ์ค์",
"threat": "root ์๊ฒฉ ์ ์ ํ์ฉ ์ ์์คํ
ํ์ทจ ๊ฐ๋ฅ์ฑ",
"criteria_good": "PermitRootLogin no ์ค์ ",
"criteria_bad": "PermitRootLogin yes ์ค์ ",
"remediation": "SSH ์ค์ ํ์ผ์์ PermitRootLogin no ์ค์ "
}
}๋ชจ๋ ๋ช ๋ น์ด๋ ํ์ดํธ๋ฆฌ์คํธ ๊ฒ์ฌ๋ฅผ ๊ฑฐ์นฉ๋๋ค:
ํ์ฉ ๋ช ๋ น์ด (40+๊ฐ):
cat, ls, grep, awk, sed, head, tail, find, uname, hostname, df, ps, etc.๊ธ์ง ํจํด (30+๊ฐ):
rm -rf, DROP TABLE, shutdown, kill -9, userdel, etc.- 3ํ ์ฌ์๋: ์ฐ๊ฒฐ ์คํจ ์ 5์ด ๊ฐ๊ฒฉ์ผ๋ก ์ต๋ 3ํ ์ฌ์๋
- 30์ด ํ์์์: ์๋ต ์๋ ์ฐ๊ฒฐ ์๋ ์ข ๋ฃ
- stdin ์
๋ ฅ: ๋น๋ฐ๋ฒํธ ์์ ์
๋ ฅ (
read -s) - SELECT ์ ์ฉ: DBMS ์ฟผ๋ฆฌ๋ SELECT๋ง ํ์ฉ
DEFAULT_TIMEOUT=30s # ๊ธฐ๋ณธ ๋ช
๋ น์ด ํ์์์
PROMPT_TIMEOUT=60s # ์ฌ์ฉ์ ์๋ต ํ์์์| ๋ผ์ด๋ธ๋ฌ๋ฆฌ | ๊ธฐ๋ฅ | ์ฐธ์กฐ ์ |
|---|---|---|
| common.sh | ๊ธฐ๋ฐ ํจ์ (ํธ์คํธ๋ค์, ๊ฒฝ๋ก ์์ฑ) | ์ ์ฒด Unix ์คํฌ๋ฆฝํธ |
| result_manager.sh | ๊ฒฐ๊ณผ ํ์ผ ์์ฑ, JSON/TXT ์ถ๋ ฅ | ์ ์ฒด Unix ์คํฌ๋ฆฝํธ |
| command_validator.sh | ๋ช ๋ น์ด ํ์ดํธ๋ฆฌ์คํธ ๊ฒ์ฆ | ์ ์ฒด Unix ์คํฌ๋ฆฝํธ |
| timeout_handler.sh | ํ์์์ ์ฒ๋ฆฌ, ์ฌ์๋ ๋ก์ง | ์ ์ฒด Unix ์คํฌ๋ฆฝํธ |
| output_mode.sh | dual/json/text ๋ชจ๋ | ์ ์ฒด Unix ์คํฌ๋ฆฝํธ |
| dbms_connector.sh | DBMS ์ฐ๊ฒฐ, 3ํ ์ฌ์๋ | DBMS ์คํฌ๋ฆฝํธ |
| platform_detector.sh | ํ๋ซํผ ์๋ ๊ฐ์ง | ์ ์ฒด Unix ์คํฌ๋ฆฝํธ |
| result_manager.ps1 | PowerShell ๊ฒฐ๊ณผ ์ ์ฅ | Windows/PC ์คํฌ๋ฆฝํธ |
๋ชจ๋ ์คํฌ๋ฆฝํธ๋ Template Method ํจํด์ ๋ฐ๋ฆ ๋๋ค:
#!/bin/bash
# ๋ฉํ๋ฐ์ดํฐ
ITEM_ID="U-01"
ITEM_NAME="root ๊ณ์ ์๊ฒฉ ์ ์ ์ ํ"
# ๋ผ์ด๋ธ๋ฌ๋ฆฌ ๋ก๋
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/common.sh"
source "$(dirname "${BASH_SOURCE[0]}")/../../lib/result_manager.sh"
# KISA ๊ฐ์ด๋๋ผ์ธ ์ ๋ณด
GUIDELINE_PURPOSE="..."
GUIDELINE_THREAT="..."
GUIDELINE_CRITERIA_GOOD="..."
GUIDELINE_CRITERIA_BAD="..."
GUIDELINE_REMEDIATION="..."
# ์ง๋จ ํจ์ (Template Method)
diagnose() {
# 1. ์๋น์ค/์ค์ ๊ฐ์ง
# 2. ํ์ (GOOD/VULNERABLE/MANUAL/N/A)
# 3. ๊ฒฐ๊ณผ ์ ์ฅ
}
# ๋ฉ์ธ ํจ์
main() {
show_diagnosis_start "$ITEM_ID" "$ITEM_NAME"
diagnose
show_diagnosis_complete "$ITEM_ID" "$ITEM_NAME"
}
main "$@"# RedHat
cd 01.Unix์๋ฒ/RedHat
./01.Unix์๋ฒ_RedHat_run_all.sh
# Debian
cd 01.Unix์๋ฒ/Debian
./01.Unix์๋ฒ_Debian_run_all.sh
# AIX
cd 01.Unix์๋ฒ/AIX
./01.Unix์๋ฒ_AIX_run_all.sh
# HP-UX
cd 01.Unix์๋ฒ/HP-UX
./01.Unix์๋ฒ_HP-UX_run_all.sh
# Solaris
cd 01.Unix์๋ฒ/Solaris
./01.Unix์๋ฒ_Solaris_run_all.sh# Windows ์๋ฒ
cd 02.Windows์๋ฒ
.\02.Windows์๋ฒ_run_all.ps1
# Windows PC
cd 07.PC
.\07.PC_run_all.ps1# Apache
cd 03.์น์๋ฒ/Apache
./03.์น์๋ฒ_Apache_run_all.sh
# Nginx
cd 03.์น์๋ฒ/Nginx
./03.์น์๋ฒ_Nginx_run_all.sh
# Tomcat
cd 03.์น์๋ฒ/Tomcat
./03.์น์๋ฒ_Tomcat_run_all.shcd 03.์น์๋ฒ/IIS
.\03.์น์๋ฒ_IIS_run_all.ps1# MySQL
cd 08.DBMS/mysql
./08.DBMS_mysql_run_all.sh
# PostgreSQL
cd 08.DBMS/postgresql
./08.DBMS_postgresql_run_all.sh
# Oracle
cd 08.DBMS/Oracle
./08.DBMS_Oracle_run_all.sh
# MSSQL
cd 08.DBMS/MSSQL
./08.DBMS_MSSQL_run_all.shGNU Affero General Public License v3.0 (AGPL-3.0)
์์ธํ ๋ด์ฉ์ LICENSE ํ์ผ์ ์ฐธ์กฐํ์ธ์.
- ๊ณต๊ฐ Scripts: https://github.com/rebugui/KISA-CIIP-2026 (์ด ์ ์ฅ์)
- KISA ๊ณต์ ํํ์ด์ง: https://www.kisa.or.kr
- ์ด์ ํธ๋ํน: GitHub Issues
- ์ด๋ฉ์ผ: uhyang03@gmail.com
- ์คํ์์ค ๋ณด์ ์ปค๋ฎค๋ํฐ
- ๋ชจ๋ ๊ธฐ์ฌ์๋ถ๋ค
๋ฒ์ : 1.0.1 ์ต์ข ์์ : 2026-04-20 ํธํ์ฑ: KISA CIIP 2026 ๊ฐ์ด๋๋ผ์ธ ์ค์
ํตํฉ ๋ฆฌ๋ทฐ ๋ณด๊ณ ์ ๊ธฐ๋ฐ ์ ๊ฒ ๋ก์ง ์์ (CRITICAL 15๊ฑด, HIGH 3๊ฑด, MEDIUM 23๊ฑด)
- U-01: no-setting ๋ก์ง ์์ (sshd_config ํ์ผ ๋ถ์ฌ์ ์ค์ ์ค์ ๊ฐ ๊ตฌ๋ถ)
- U-03: ์๊ณ๊ฐ ์์ (
-gt 5โ-gt 10) - U-19: ๊ถํ ์๊ณ๊ฐ ์์ (
-gt 600โ-gt 644) - U-01~U-23:
set -euo pipefail์ ์ฉ (22๊ฐ ์คํฌ๋ฆฝํธ) - U-27:
.rhostsํ์ผ ์ ๊ฒ ๋ก์ง ์ถ๊ฐ (์ ์ฒด ์ฌ์ฉ์ ๋์) - U-37: crontab ๊ถํ ๊ฒ์ฌ ๋ณด์ (cron.allow/deny, at.allow/deny ์ถ๊ฐ)
- U-52~U-58, U-64, U-66: 9๊ฐ ์คํฌ๋ฆฝํธ ๊ฐ์ด๋๋ผ์ธ์ ๋ง๊ฒ ์ฌ์์ฑ
- U-52: Telnet ์๋น์ค, U-53: FTP ๋ฐฐ๋, U-54: ์ํธํ FTP, U-55: FTP shell ์ ํ
- U-56: FTP ์ ๊ทผ ์ ์ด, U-57: ftpusers, U-58: SNMP ์๋น์ค
- U-60: SNMP Community String ๋ณต์ก์ฑ ๊ฒ์ฆ ์ถ๊ฐ
- U-63: sudoers ๊ถํ ๊ธฐ์ค 640์ผ๋ก ์์
- U-64: ์ฃผ๊ธฐ์ ๋ณด์ ํจ์น, U-66: ์์คํ ๋ก๊น ์ค์
- Debian U-19: ๊ถํ ๋น๊ต ๋ก์ง ์์ (
= "644"โ-le 644) - U-48: 4๊ฐ ํ๋ซํผ SMTP expn/vrfy ์ ๊ฒ ๋ก์ง์ผ๋ก ์ฌ์์ฑ
- W-47, W-48: ์์ธ ์ฒ๋ฆฌ ์์ (
-ErrorAction StopโSilentlyContinue)
- PC-13: ์ 3์ ๋ฐฑ์ ์ ๋ฐ์ดํธ ๋ ์ง ํ์ธ ๋ก์ง ์ถ๊ฐ
- PC-14: ์ 3์ ๋ฐฑ์ ์ค์๊ฐ ๊ฐ์ ํ์ธ ๋ก์ง ์ถ๊ฐ
- PC-15: ์ 3์ ๋ฐฉํ๋ฒฝ ํ์ธ ๋ก์ง ์ถ๊ฐ
- D-04: ๊ด๋ฆฌ์ ๊ถํ ์ ๊ฒ ๋ก์ง์ผ๋ก ์ฌ์์ฑ (Super_priv, Grant_priv)
- D-08: ํด์ ์๊ณ ๋ฆฌ์ฆ ๊ฒ์ฆ ๋ก์ง์ผ๋ก ์์ (SHA-256+ ํ์ธ)