λͺ¨λΈ λ°μ΄ν° μ€λΉ λ° νκ°
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.
λͺ¨λΈ λ°μ΄ν° μ€λΉλ λ¨Έμ λ¬λ νμ΄νλΌμΈμμ μ€μν λ¨κ³λ‘, μμ λ°μ΄ν°λ₯Ό λ¨Έμ λ¬λ λͺ¨λΈ νλ ¨μ μ ν©ν νμμΌλ‘ λ³ννλ κ³Όμ μ ν¬ν¨ν©λλ€. μ΄ κ³Όμ μλ μ¬λ¬ μ£Όμ λ¨κ³κ° ν¬ν¨λ©λλ€:
- λ°μ΄ν° μμ§: λ°μ΄ν°λ² μ΄μ€, API λλ νμΌκ³Ό κ°μ λ€μν μΆμ²μμ λ°μ΄ν°λ₯Ό μμ§ν©λλ€. λ°μ΄ν°λ ꡬ쑰μ (μ: ν μ΄λΈ)μΌ μλ μκ³ λΉκ΅¬μ‘°μ (μ: ν μ€νΈ, μ΄λ―Έμ§)μΌ μλ μμ΅λλ€.
- λ°μ΄ν° μ 리: μ€λ₯κ° μκ±°λ λΆμμ νκ±°λ κ΄λ ¨ μλ λ°μ΄ν° ν¬μΈνΈλ₯Ό μ κ±°νκ±°λ μμ ν©λλ€. μ΄ λ¨κ³μμλ κ²°μΈ‘κ° μ²λ¦¬, μ€λ³΅ μ κ±° λ° μ΄μμΉ νν°λ§μ΄ ν¬ν¨λ μ μμ΅λλ€.
- λ°μ΄ν° λ³ν: λͺ¨λΈλ§μ μ ν©ν νμμΌλ‘ λ°μ΄ν°λ₯Ό λ³νν©λλ€. μ¬κΈ°μλ μ κ·ν, μ€μΌμΌλ§, λ²μ£Όν λ³μ μΈμ½λ© λ° νΉμ± 곡νκ³Ό κ°μ κΈ°μ μ ν΅ν΄ μλ‘μ΄ νΉμ± μμ±μ΄ ν¬ν¨λ μ μμ΅λλ€.
- λ°μ΄ν° λΆν : λ°μ΄ν°μ μ νλ ¨, κ²μ¦ λ° ν μ€νΈ μΈνΈλ‘ λλμ΄ λͺ¨λΈμ΄ λ³΄μ§ λͺ»ν λ°μ΄ν°μ μ μΌλ°νλ μ μλλ‘ ν©λλ€.
λ°μ΄ν° μμ§
λ°μ΄ν° μμ§μ λ€μν μΆμ²μμ λ°μ΄ν°λ₯Ό μμ§νλ κ³Όμ μ ν¬ν¨νλ©°, μ¬κΈ°μλ λ€μμ΄ ν¬ν¨λ μ μμ΅λλ€:
- λ°μ΄ν°λ² μ΄μ€: κ΄κ³ν λ°μ΄ν°λ² μ΄μ€(μ: SQL λ°μ΄ν°λ² μ΄μ€) λλ NoSQL λ°μ΄ν°λ² μ΄μ€(μ: MongoDB)μμ λ°μ΄ν° μΆμΆ.
- API: μΉ APIμμ λ°μ΄ν°λ₯Ό κ°μ Έμ€λ©°, μ΄λ μ€μκ° λλ μμ¬μ λ°μ΄ν°λ₯Ό μ 곡ν μ μμ΅λλ€.
- νμΌ: CSV, JSON λλ XMLκ³Ό κ°μ νμμ νμΌμμ λ°μ΄ν° μ½κΈ°.
- μΉ μ€ν¬λν: μΉ μ€ν¬λν κΈ°μ μ μ¬μ©νμ¬ μΉμ¬μ΄νΈμμ λ°μ΄ν° μμ§.
λ¨Έμ λ¬λ νλ‘μ νΈμ λͺ©νμ λ°λΌ λ°μ΄ν°λ λ¬Έμ λλ©μΈμ λνν μ μλλ‘ κ΄λ ¨ μΆμ²μμ μΆμΆλκ³ μμ§λ©λλ€.
λ°μ΄ν° μ 리
λ°μ΄ν° μ 리λ λ°μ΄ν°μ μμ μ€λ₯λ λΆμΌμΉλ₯Ό μλ³νκ³ μμ νλ κ³Όμ μ λλ€. μ΄ λ¨κ³λ λ¨Έμ λ¬λ λͺ¨λΈ νλ ¨μ μ¬μ©λλ λ°μ΄ν°μ νμ§μ 보μ₯νλ λ° νμμ μ λλ€. λ°μ΄ν° μ 리μ μ£Όμ μμ μλ λ€μμ΄ ν¬ν¨λ©λλ€:
- κ²°μΈ‘κ° μ²λ¦¬: κ²°μΈ‘ λ°μ΄ν° ν¬μΈνΈλ₯Ό μλ³νκ³ ν΄κ²°ν©λλ€. μΌλ°μ μΈ μ λ΅μλ:
- κ²°μΈ‘κ°μ΄ μλ ν λλ μ΄ μ κ±°.
- νκ· , μ€μκ° λλ μ΅λΉκ° λ체μ κ°μ κΈ°λ²μ μ¬μ©νμ¬ κ²°μΈ‘κ° λ체.
- K-μ΅κ·Όμ μ΄μ(KNN) λ체 λλ νκ· λ체μ κ°μ κ³ κΈ λ°©λ² μ¬μ©.
- μ€λ³΅ μ κ±°: κ° λ°μ΄ν° ν¬μΈνΈκ° κ³ μ νλλ‘ μ€λ³΅ λ μ½λλ₯Ό μλ³νκ³ μ κ±°ν©λλ€.
- μ΄μμΉ νν°λ§: λͺ¨λΈμ μ±λ₯μ μ곑ν μ μλ μ΄μμΉλ₯Ό κ°μ§νκ³ μ κ±°ν©λλ€. Z-μ μ, IQR(μ¬λΆμ λ²μ) λλ μκ°ν(μ: λ°μ€ νλ‘―)μ κ°μ κΈ°λ²μ μ¬μ©νμ¬ μ΄μμΉλ₯Ό μλ³ν μ μμ΅λλ€.
λ°μ΄ν° μ 리 μμ
import pandas as pd
# Load the dataset
data = pd.read_csv('data.csv')
# Finding invalid values based on a specific function
def is_valid_possitive_int(num):
try:
num = int(num)
return 1 <= num <= 31
except ValueError:
return False
invalid_days = data[~data['days'].astype(str).apply(is_valid_positive_int)]
## Dropping rows with invalid days
data = data.drop(invalid_days.index, errors='ignore')
# Set "NaN" values to a specific value
## For example, setting NaN values in the 'days' column to 0
data['days'] = pd.to_numeric(data['days'], errors='coerce')
## For example, set "NaN" to not ips
def is_valid_ip(ip):
pattern = re.compile(r'^((25[0-5]|2[0-4][0-9]|[01]?\d?\d)\.){3}(25[0-5]|2[0-4]\d|[01]?\d?\d)$')
if pd.isna(ip) or not pattern.match(str(ip)):
return np.nan
return ip
df['ip'] = df['ip'].apply(is_valid_ip)
# Filling missing values based on different strategies
numeric_cols = ["days", "hours", "minutes"]
categorical_cols = ["ip", "status"]
## Filling missing values in numeric columns with the median
num_imputer = SimpleImputer(strategy='median')
df[numeric_cols] = num_imputer.fit_transform(df[numeric_cols])
## Filling missing values in categorical columns with the most frequent value
cat_imputer = SimpleImputer(strategy='most_frequent')
df[categorical_cols] = cat_imputer.fit_transform(df[categorical_cols])
## Filling missing values in numeric columns using KNN imputation
knn_imputer = KNNImputer(n_neighbors=5)
df[numeric_cols] = knn_imputer.fit_transform(df[numeric_cols])
# Filling missing values
data.fillna(data.mean(), inplace=True)
# Removing duplicates
data.drop_duplicates(inplace=True)
# Filtering outliers using Z-score
from scipy import stats
z_scores = stats.zscore(data.select_dtypes(include=['float64', 'int64']))
data = data[(z_scores < 3).all(axis=1)]
λ°μ΄ν° λ³ν
λ°μ΄ν° λ³νμ λ°μ΄ν°λ₯Ό λͺ¨λΈλ§μ μ ν©ν νμμΌλ‘ λ³ννλ κ³Όμ μ ν¬ν¨ν©λλ€. μ΄ λ¨κ³μλ λ€μμ΄ ν¬ν¨λ μ μμ΅λλ€:
-
μ κ·ν λ° νμ€ν: μμΉμ νΉμ±μ μΌλ°μ μΈ λ²μλ‘ μ€μΌμΌλ§νλ κ²μΌλ‘, μΌλ°μ μΌλ‘ [0, 1] λλ [-1, 1]μ λλ€. μ΄λ μ΅μ ν μκ³ λ¦¬μ¦μ μλ ΄μ κ°μ νλ λ° λμμ΄ λ©λλ€.
-
μ΅μ-μ΅λ μ€μΌμΌλ§: νΉμ±μ κ³ μ λ λ²μλ‘ μ¬μ‘°μ νλ κ²μΌλ‘, μΌλ°μ μΌλ‘ [0, 1]μ λλ€. μ΄λ λ€μ 곡μμ μ¬μ©νμ¬ μνλ©λλ€:
X' = (X - X_{min}) / (X_{max} - X_{min}) -
Z-μ μ μ κ·ν: νκ· μ λΉΌκ³ νμ€ νΈμ°¨λ‘ λλμ΄ νΉμ±μ νμ€ννμ¬ νκ· μ΄ 0μ΄κ³ νμ€ νΈμ°¨κ° 1μΈ λΆν¬λ₯Ό μμ±ν©λλ€. μ΄λ λ€μ 곡μμ μ¬μ©νμ¬ μνλ©λλ€:
X' = (X - ΞΌ) / Ο, μ¬κΈ°μ ΞΌλ νκ· μ΄κ³ Ολ νμ€ νΈμ°¨μ λλ€. -
μλ λ° μ²¨λ: μλ(λΉλμΉμ±)μ 첨λ(μ μ μ λΎ°μ‘±ν¨)λ₯Ό μ€μ΄κΈ° μν΄ νΉμ±μ λΆν¬λ₯Ό μ‘°μ ν©λλ€. μ΄λ λ‘κ·Έ, μ κ³±κ·Ό λλ Box-Cox λ³νκ³Ό κ°μ λ³νμ μ¬μ©νμ¬ μνν μ μμ΅λλ€. μλ₯Ό λ€μ΄, νΉμ±μ΄ μ곑λ λΆν¬λ₯Ό κ°μ§λ©΄ λ‘κ·Έ λ³νμ μ μ©νμ¬ μ κ·νν μ μμ΅λλ€.
-
λ¬Έμμ΄ μ κ·ν: λ¬Έμμ΄μ μΌκ΄λ νμμΌλ‘ λ³ννλ κ²μΌλ‘, λ€μκ³Ό κ°μ μμ μ΄ ν¬ν¨λ©λλ€:
- μλ¬Έμ λ³ν
- νΉμ λ¬Έμ μ κ±° (κ΄λ ¨λ κ²λ§ μ μ§)
- λΆμ©μ΄ μ κ±° (μλ―Έμ κΈ°μ¬νμ§ μλ μΌλ°μ μΈ λ¨μ΄, μ: βtheβ, βisβ, βandβ)
- λ무 μμ£Ό λ±μ₯νλ λ¨μ΄μ λ무 λλ¬Όκ² λ±μ₯νλ λ¨μ΄ μ κ±° (μ: λ¬Έμμ 90% μ΄μμ λνλκ±°λ λ§λμΉμμ 5ν λ―Έλ§μΌλ‘ λνλλ λ¨μ΄)
- 곡백 λ€λ¬κΈ°
- μ΄κ° μΆμΆ/νμ μ΄ μΆμΆ: λ¨μ΄λ₯Ό κΈ°λ³Έν λλ λΏλ¦¬ ννλ‘ μ€μ΄λ κ² (μ: βrunningβμ βrunβμΌλ‘).
-
λ²μ£Όν λ³μ μΈμ½λ©: λ²μ£Όν λ³μλ₯Ό μμΉμ ννμΌλ‘ λ³νν©λλ€. μΌλ°μ μΈ κΈ°μ μλ λ€μμ΄ ν¬ν¨λ©λλ€:
- μ-ν« μΈμ½λ©: κ° λ²μ£Όμ λν΄ μ΄μ§ μ΄μ μμ±ν©λλ€.
- μλ₯Ό λ€μ΄, νΉμ±μ΄ βredβ, βgreenβ, βblueβ λ²μ£Όλ₯Ό κ°μ§λ©΄ μΈ κ°μ μ΄μ§ μ΄λ‘ λ³νλ©λλ€:
is_red(100),is_green(010),is_blue(001). - λ μ΄λΈ μΈμ½λ©: κ° λ²μ£Όμ κ³ μ ν μ μλ₯Ό ν λΉν©λλ€.
- μλ₯Ό λ€μ΄, βredβ = 0, βgreenβ = 1, βblueβ = 2.
- μμ΄ μΈμ½λ©: λ²μ£Όμ μμμ λ°λΌ μ μλ₯Ό ν λΉν©λλ€.
- μλ₯Ό λ€μ΄, λ²μ£Όκ° βlowβ, βmediumβ, βhighβμΈ κ²½μ° κ°κ° 0, 1, 2λ‘ μΈμ½λ©ν μ μμ΅λλ€.
- ν΄μ± μΈμ½λ©: ν΄μ ν¨μλ₯Ό μ¬μ©νμ¬ λ²μ£Όλ₯Ό κ³ μ ν¬κΈ° 벑ν°λ‘ λ³ννλ©°, μ΄λ κ³ μ°¨μ λ²μ£Όν λ³μμ μ μ©ν μ μμ΅λλ€.
- μλ₯Ό λ€μ΄, νΉμ±μ΄ λ§μ κ³ μ λ²μ£Όλ₯Ό κ°μ§λ©΄ ν΄μ±μ ν΅ν΄ μ°¨μμ μ€μ΄λ©΄μ λ²μ£Όμ λν μΌλΆ μ 보λ₯Ό 보쑴ν μ μμ΅λλ€.
- λ¨μ΄ κ°λ°© (BoW): ν μ€νΈ λ°μ΄ν°λ₯Ό λ¨μ΄ μ λλ λΉλμ νλ ¬λ‘ νννλ©°, κ° νμ λ¬Έμμ ν΄λΉνκ³ κ° μ΄μ λ§λμΉμ κ³ μ ν λ¨μ΄μ ν΄λΉν©λλ€.
- μλ₯Ό λ€μ΄, λ§λμΉμ βcatβ, βdogβ, βfishβλΌλ λ¨μ΄κ° ν¬ν¨λμ΄ μλ€λ©΄, βcatβκ³Ό βdogβλ₯Ό ν¬ν¨νλ λ¬Έμλ [1, 1, 0]μΌλ‘ ννλ©λλ€. μ΄ νΉμ ννμ βunigramβμ΄λΌκ³ νλ©° λ¨μ΄μ μμλ₯Ό ν¬μ°©νμ§ μμΌλ―λ‘ μλ―Έ μ 보λ₯Ό μμ΅λλ€.
- λ°μ΄κ·Έλ¨/νΈλΌμ΄κ·Έλ¨: BoWλ₯Ό νμ₯νμ¬ λ¨μ΄μ μνμ€(λ°μ΄κ·Έλ¨ λλ νΈλΌμ΄κ·Έλ¨)λ₯Ό ν¬μ°©νμ¬ μΌλΆ λ§₯λ½μ μ μ§ν©λλ€. μλ₯Ό λ€μ΄, βcat and dogβλ βcat andβμ λν΄ [1, 1]λ‘, βand dogβμ λν΄ [1, 1]λ‘ ννλ©λλ€. μ΄ κ²½μ° λ λ§μ μλ―Έ μ λ³΄κ° μμ§λμ§λ§(ννμ μ°¨μ μ¦κ°) ν λ²μ 2κ° λλ 3κ°μ λ¨μ΄μ λν΄μλ§ κ°λ₯ν©λλ€.
- TF-IDF (μ©μ΄ λΉλ-μ λ¬Έμ λΉλ): λ¬Έμ μ§ν©(λ§λμΉ) λ΄μμ λ¬Έμμμ λ¨μ΄μ μ€μμ±μ νκ°νλ ν΅κ³μ μΈ‘μ μ λλ€. μ΄λ μ©μ΄ λΉλ(λ¨μ΄κ° λ¬Έμμ λνλλ λΉλ)μ μ λ¬Έμ λΉλ(λͺ¨λ λ¬Έμμμ λ¨μ΄κ° μΌλ§λ λλ¬Έμ§)λ₯Ό κ²°ν©ν©λλ€.
- μλ₯Ό λ€μ΄, βcatβμ΄λΌλ λ¨μ΄κ° λ¬Έμμμ μμ£Ό λνλμ§λ§ μ 체 λ§λμΉμμλ λλ¬Όκ² λνλλ©΄, ν΄λΉ λ¬Έμμμμ μ€μμ±μ λνλ΄λ λμ TF-IDF μ μλ₯Ό κ°μ§λλ€.
-
νΉμ± μμ§λμ΄λ§: κΈ°μ‘΄ νΉμ±μμ μλ‘μ΄ νΉμ±μ μμ±νμ¬ λͺ¨λΈμ μμΈ‘λ ₯μ ν₯μμν€λ κ²μ λλ€. μ΄λ νΉμ±μ κ²°ν©νκ±°λ λ μ§/μκ° κ΅¬μ± μμλ₯Ό μΆμΆνκ±°λ λλ©μΈ νΉμ λ³νμ μ μ©νλ κ²μ ν¬ν¨ν μ μμ΅λλ€.
λ°μ΄ν° λΆν
λ°μ΄ν° λΆν μ λ°μ΄ν°μ μ νλ ¨, κ²μ¦ λ° ν μ€νΈλ₯Ό μν λ³λμ νμ μ§ν©μΌλ‘ λλλ κ³Όμ μ ν¬ν¨ν©λλ€. μ΄λ λͺ¨λΈμ΄ λ³΄μ§ λͺ»ν λ°μ΄ν°μμ μ±λ₯μ νκ°νκ³ κ³Όμ ν©μ λ°©μ§νλ λ° νμμ μ λλ€. μΌλ°μ μΈ μ λ΅μλ λ€μμ΄ ν¬ν¨λ©λλ€:
- νλ ¨-ν μ€νΈ λΆν : λ°μ΄ν°μ μ νλ ¨ μΈνΈ(μΌλ°μ μΌλ‘ λ°μ΄ν°μ 60-80%), νμ΄νΌνλΌλ―Έν° μ‘°μ μ μν κ²μ¦ μΈνΈ(λ°μ΄ν°μ 10-15%), ν μ€νΈ μΈνΈ(λ°μ΄ν°μ 10-15%)λ‘ λλλλ€. λͺ¨λΈμ νλ ¨ μΈνΈμμ νμ΅νκ³ ν μ€νΈ μΈνΈμμ νκ°λ©λλ€.
- μλ₯Ό λ€μ΄, 1000κ°μ μνλ‘ κ΅¬μ±λ λ°μ΄ν°μ μ΄ μλ€λ©΄, 700κ° μνμ νλ ¨μ μ¬μ©νκ³ , 150κ°λ₯Ό κ²μ¦μ, 150κ°λ₯Ό ν μ€νΈμ μ¬μ©ν μ μμ΅λλ€.
- κ³μΈ΅ν μνλ§: νλ ¨ μΈνΈμ ν μ€νΈ μΈνΈμ ν΄λμ€ λΆν¬κ° μ 체 λ°μ΄ν°μ κ³Ό μ μ¬νλλ‘ λ³΄μ₯ν©λλ€. μ΄λ μΌλΆ ν΄λμ€κ° λ€λ₯Έ ν΄λμ€λ³΄λ€ μν μκ° νμ ν μ μ λΆκ· ν λ°μ΄ν°μ μμ νΉν μ€μν©λλ€.
- μκ³μ΄ λΆν : μκ³μ΄ λ°μ΄ν°μ κ²½μ°, λ°μ΄ν°μ μ μκ°μ κΈ°μ€μΌλ‘ λΆν λμ΄ νλ ¨ μΈνΈλ μ΄μ μκ°λμ λ°μ΄ν°λ₯Ό ν¬ν¨νκ³ ν μ€νΈ μΈνΈλ μ΄ν μκ°λμ λ°μ΄ν°λ₯Ό ν¬ν¨νλλ‘ ν©λλ€. μ΄λ λͺ¨λΈμ λ―Έλ λ°μ΄ν°μ λν μ±λ₯μ νκ°νλ λ° λμμ΄ λ©λλ€.
- K-κ²Ή κ΅μ°¨ κ²μ¦: λ°μ΄ν°μ μ Kκ°μ νμ μ§ν©(κ²Ή)μΌλ‘ λλκ³ λͺ¨λΈμ Kλ² νλ ¨μν€λ©°, λ§€λ² λ€λ₯Έ κ²Ήμ ν μ€νΈ μΈνΈλ‘ μ¬μ©νκ³ λλ¨Έμ§ κ²Ήμ νλ ¨ μΈνΈλ‘ μ¬μ©ν©λλ€. μ΄λ λͺ¨λΈμ΄ λ°μ΄ν°μ λ€μν νμ μ§ν©μμ νκ°λλλ‘ νμ¬ μ±λ₯μ λν λ³΄λ€ κ°λ ₯ν μΆμ μΉλ₯Ό μ 곡ν©λλ€.
λͺ¨λΈ νκ°
λͺ¨λΈ νκ°λ λ³΄μ§ λͺ»ν λ°μ΄ν°μμ λ¨Έμ λ¬λ λͺ¨λΈμ μ±λ₯μ νκ°νλ κ³Όμ μ λλ€. μ΄λ λͺ¨λΈμ΄ μλ‘μ΄ λ°μ΄ν°μ μΌλ§λ μ μΌλ°νλλμ§λ₯Ό μ λννκΈ° μν΄ λ€μν λ©νΈλ¦μ μ¬μ©νλ κ²μ ν¬ν¨ν©λλ€. μΌλ°μ μΈ νκ° λ©νΈλ¦μλ λ€μμ΄ ν¬ν¨λ©λλ€:
μ νλ
μ νλλ μ 체 μΈμ€ν΄μ€ μ€μμ μ¬λ°λ₯΄κ² μμΈ‘λ μΈμ€ν΄μ€μ λΉμ¨μ λλ€. μ΄λ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€:
Accuracy = (Number of Correct Predictions) / (Total Number of Predictions)
Tip
μ νλλ κ°λ¨νκ³ μ§κ΄μ μΈ λ©νΈλ¦μ΄μ§λ§, ν ν΄λμ€κ° λ€λ₯Έ ν΄λμ€λ³΄λ€ μ°μΈν λΆκ· ν λ°μ΄ν°μ μλ μ ν©νμ§ μμ μ μμΌλ©°, λͺ¨λΈ μ±λ₯μ λν μ€ν΄λ₯Ό λΆλ¬μΌμΌν¬ μ μμ΅λλ€. μλ₯Ό λ€μ΄, λ°μ΄ν°μ 90%κ° ν΄λμ€ Aμ μνκ³ λͺ¨λΈμ΄ λͺ¨λ μΈμ€ν΄μ€λ₯Ό ν΄λμ€ Aλ‘ μμΈ‘νλ©΄ 90%μ μ νλλ₯Ό λ¬μ±νμ§λ§, ν΄λμ€ Bλ₯Ό μμΈ‘νλ λ°λ μ μ©νμ§ μμ΅λλ€.
Precision
Precisionμ λͺ¨λΈμ΄ λ§λ λͺ¨λ κΈμ μ μμΈ‘ μ€μμ μ§μ§ κΈμ μ μμΈ‘μ λΉμ¨μ λλ€. μ΄λ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€:
Precision = (True Positives) / (True Positives + False Positives)
Tip
μ λ°λλ μλ£ μ§λ¨μ΄λ μ¬κΈ° νμ§μ κ°μ΄ μλͺ»λ κΈμ μ΄ λΉμ©μ΄ λ§μ΄ λ€κ±°λ λ°λμ§νμ§ μμ μλ리μ€μμ νΉν μ€μν©λλ€. μλ₯Ό λ€μ΄, λͺ¨λΈμ΄ 100κ°μ μ¬λ‘λ₯Ό κΈμ μΌλ‘ μμΈ‘νμ§λ§ κ·Έ μ€ 80κ°λ§ μ€μ λ‘ κΈμ μΈ κ²½μ°, μ λ°λλ 0.8(80%)μ΄ λ©λλ€.
Recall (λ―Όκ°λ)
Recall, λλ λ―Όκ°λ λλ μ§μ κΈμ λΉμ¨λ‘λ μλ €μ§ κ²μ λͺ¨λ μ€μ κΈμ μ¬λ‘ μ€μμ μ§μ κΈμ μμΈ‘μ λΉμ¨μ λλ€. μ΄λ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€:
Recall = (True Positives) / (True Positives + False Negatives)
Tip
리μ½μ μ§λ³ νμ§λ μ€νΈ νν°λ§κ³Ό κ°μ΄ κ±°μ§ λΆμ μ΄ λΉμ©μ΄ λ§μ΄ λ€κ±°λ λ°λμ§νμ§ μμ μλ리μ€μμ μ€μν©λλ€. μλ₯Ό λ€μ΄, λͺ¨λΈμ΄ 100κ°μ μ€μ μμ± μ¬λ‘ μ€ 80κ°λ₯Ό μλ³νλ©΄ 리μ½μ 0.8(80%)μ΄ λ©λλ€.
F1 Score
F1 μ μλ μ λ°λμ 리μ½μ μ‘°ν νκ· μΌλ‘, λ λ©νΈλ¦ κ°μ κ· νμ μ 곡ν©λλ€. κ³μ° λ°©λ²μ λ€μκ³Ό κ°μ΅λλ€:
F1 Score = 2 * (Precision * Recall) / (Precision + Recall)
Tip
F1 μ μλ λΆκ· ν λ°μ΄ν°μ μ λ€λ£° λ νΉν μ μ©νλ©°, μ΄λ κ±°μ§ κΈμ κ³Ό κ±°μ§ λΆμ μ λͺ¨λ κ³ λ €ν©λλ€. μ λ°λμ μ¬νμ¨ κ°μ κ· νμ ν¬μ°©νλ λ¨μΌ λ©νΈλ¦μ μ 곡ν©λλ€. μλ₯Ό λ€μ΄, λͺ¨λΈμ μ λ°λκ° 0.8μ΄κ³ μ¬νμ¨μ΄ 0.6μΈ κ²½μ°, F1 μ μλ μ½ 0.69κ° λ©λλ€.
ROC-AUC (μμ μ μ‘°μ νΉμ± - 곑μ μλ λ©΄μ )
ROC-AUC λ©νΈλ¦μ λ€μν μκ³κ° μ€μ μμ μ§μ§ κΈμ λΉμ¨(λ―Όκ°λ)κ³Ό κ±°μ§ κΈμ λΉμ¨μ νλ‘ν νμ¬ ν΄λμ€ κ°μ κ΅¬λ³ λ₯λ ₯μ νκ°ν©λλ€. ROC 곑μ μλ λ©΄μ (AUC)μ λͺ¨λΈμ μ±λ₯μ μ λννλ©°, κ°μ΄ 1μ΄λ©΄ μλ²½ν λΆλ₯λ₯Ό λνλ΄κ³ , κ°μ΄ 0.5μ΄λ©΄ 무μμ μΆμΈ‘μ λνλ λλ€.
Tip
ROC-AUCλ μ΄μ§ λΆλ₯ λ¬Έμ μ νΉν μ μ©νλ©°, λ€μν μκ³κ°μμ λͺ¨λΈμ μ±λ₯μ λν ν¬κ΄μ μΈ λ·°λ₯Ό μ 곡ν©λλ€. μ νλμ λΉν΄ ν΄λμ€ λΆκ· νμ λ λ―Όκ°ν©λλ€. μλ₯Ό λ€μ΄, AUCκ° 0.9μΈ λͺ¨λΈμ κΈμ λ° λΆμ μΈμ€ν΄μ€λ₯Ό ꡬλ³νλ λ₯λ ₯μ΄ λμμ λνλ λλ€.
νΉμ΄λ
νΉμ΄λλ μ§μ§ λΆμ λΉμ¨λ‘λ μλ €μ Έ μμΌλ©°, λͺ¨λ μ€μ λΆμ μΈμ€ν΄μ€ μ€ μ§μ§ λΆμ μμΈ‘μ λΉμ¨μ λλ€. μ΄λ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€:
Specificity = (True Negatives) / (True Negatives + False Positives)
Tip
νΉμ΄μ±μ μλ£ ν μ€νΈλ μ¬κΈ° νμ§μ κ°μ΄ μλͺ»λ κΈμ μ΄ λΉμ©μ΄ λ§μ΄ λ€κ±°λ λ°λμ§νμ§ μμ μλ리μ€μμ μ€μν©λλ€. μ΄λ λͺ¨λΈμ΄ λΆμ μ μΈ μ¬λ‘λ₯Ό μΌλ§λ μ μλ³νλμ§λ₯Ό νκ°νλ λ° λμμ΄ λ©λλ€. μλ₯Ό λ€μ΄, λͺ¨λΈμ΄ 100κ°μ μ€μ λΆμ μ¬λ‘ μ€ 90κ°λ₯Ό μ¬λ°λ₯΄κ² μλ³νλ©΄ νΉμ΄μ±μ 0.9(90%)κ° λ©λλ€.
Matthews Correlation Coefficient (MCC)
Matthews Correlation Coefficient (MCC)λ μ΄μ§ λΆλ₯μ νμ§μ μΈ‘μ νλ μ§νμ λλ€. μ΄λ μ§μ§ λ° μλͺ»λ κΈμ κ³Ό λΆμ μ κ³ λ €νμ¬ λͺ¨λΈμ μ±λ₯μ λν κ· ν μ‘ν κ΄μ μ μ 곡ν©λλ€. MCCλ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€:
MCC = (TP * TN - FP * FN) / sqrt((TP + FP) * (TP + FN) * (TN + FP) * (TN + FN))
where:
- TP: μ§μμ±
- TN: μ§μμ±
- FP: κ°μμ±
- FN: κ°μμ±
Tip
MCCλ -1μμ 1κΉμ§μ λ²μλ₯Ό κ°μ§λ©°, 1μ μλ²½ν λΆλ₯λ₯Ό λνλ΄κ³ , 0μ 무μμ μΆμΈ‘μ λνλ΄λ©°, -1μ μμΈ‘κ³Ό κ΄μ°° κ°μ μμ ν λΆμΌμΉλ₯Ό λνλ λλ€. μ΄λ λͺ¨λ λ€ κ°μ§ νΌλ νλ ¬ κ΅¬μ± μμλ₯Ό κ³ λ €νλ―λ‘ λΆκ· ν λ°μ΄ν° μΈνΈμ νΉν μ μ©ν©λλ€.
νκ· μ λ μ€μ°¨ (MAE)
νκ· μ λ μ€μ°¨ (MAE)λ μμΈ‘ κ°κ³Ό μ€μ κ° κ°μ νκ· μ λ μ°¨μ΄λ₯Ό μΈ‘μ νλ νκ· λ©νΈλ¦μ λλ€. μ΄λ λ€μκ³Ό κ°μ΄ κ³μ°λ©λλ€:
MAE = (1/n) * Ξ£|y_i - Ε·_i|
μ΄λμ:
- n: μΈμ€ν΄μ€ μ
- y_i: μΈμ€ν΄μ€ iμ μ€μ κ°
- Ε·_i: μΈμ€ν΄μ€ iμ μμΈ‘ κ°
Tip
MAEλ μμΈ‘μ νκ· μ€λ₯μ λν κ°λ¨ν ν΄μμ μ 곡νμ¬ μ΄ν΄νκΈ° μ½κ² λ§λλλ€. μ΄λ νκ· μ κ³± μ€μ°¨(MSE)μ κ°μ λ€λ₯Έ λ©νΈλ¦μ λΉν΄ μ΄μμΉμ λ λ―Όκ°ν©λλ€. μλ₯Ό λ€μ΄, λͺ¨λΈμ MAEκ° 5μΈ κ²½μ°, μ΄λ νκ· μ μΌλ‘ λͺ¨λΈμ μμΈ‘μ΄ μ€μ κ°μμ 5 λ¨μλ§νΌ λ²μ΄λλ€λ κ²μ μλ―Έν©λλ€.
νΌλ νλ ¬
νΌλ νλ ¬μ μ§μ§ μμ±, μ§μ§ μμ±, κ±°μ§ μμ± λ° κ±°μ§ μμ± μμΈ‘μ μλ₯Ό 보μ¬μ€μΌλ‘μ¨ λΆλ₯ λͺ¨λΈμ μ±λ₯μ μμ½νλ νμ λλ€. μ΄λ λͺ¨λΈμ΄ κ° ν΄λμ€μμ μΌλ§λ μ μνλλμ§λ₯Ό μμΈν 보μ¬μ€λλ€.
| μμΈ‘λ μμ± | μμΈ‘λ μμ± | |
|---|---|---|
| μ€μ μμ± | μ§μ§ μμ± (TP) | κ±°μ§ μμ± (FN) |
| μ€μ μμ± | κ±°μ§ μμ± (FP) | μ§μ§ μμ± (TN) |
- μ§μ§ μμ± (TP): λͺ¨λΈμ΄ μμ± ν΄λμ€λ₯Ό μ¬λ°λ₯΄κ² μμΈ‘νμ΅λλ€.
- μ§μ§ μμ± (TN): λͺ¨λΈμ΄ μμ± ν΄λμ€λ₯Ό μ¬λ°λ₯΄κ² μμΈ‘νμ΅λλ€.
- κ±°μ§ μμ± (FP): λͺ¨λΈμ΄ μμ± ν΄λμ€λ₯Ό μλͺ» μμΈ‘νμ΅λλ€ (μ 1μ’ μ€λ₯).
- κ±°μ§ μμ± (FN): λͺ¨λΈμ΄ μμ± ν΄λμ€λ₯Ό μλͺ» μμΈ‘νμ΅λλ€ (μ 2μ’ μ€λ₯).
νΌλ νλ ¬μ μ νλ, μ λ°λ, μ¬νμ¨ λ° F1 μ μμ κ°μ λ€μν νκ° λ©νΈλ¦μ κ³μ°νλ λ° μ¬μ©ν μ μμ΅λλ€.
Tip
AWS ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training AWS Red Team Expert (ARTE)
GCP ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:HackTricks Training GCP Red Team Expert (GRTE)
Azure ν΄νΉ λ°°μ°κΈ° λ° μ°μ΅νκΈ°:
HackTricks Training Azure Red Team Expert (AzRTE)
HackTricks μ§μνκΈ°
- ꡬλ κ³ν νμΈνκΈ°!
- **π¬ λμ€μ½λ κ·Έλ£Ή λλ ν λ κ·Έλ¨ κ·Έλ£Ήμ μ°Έμ¬νκ±°λ νΈμν° π¦ @hacktricks_liveλ₯Ό νλ‘μ°νμΈμ.
- HackTricks λ° HackTricks Cloud κΉνλΈ λ¦¬ν¬μ§ν 리μ PRμ μ μΆνμ¬ ν΄νΉ νΈλ¦μ 곡μ νμΈμ.


