מבוא
בסייבר-אבטחה, כוח ברוטלי מתייחס לניסיון שיטתי וממצה לנחש אישורים או מפתחות הצפנה עד להצלחה. זוהי טכניקה בסיסית עבור פעולות צוות אדום, בדיקות חדירה ותרגילי שחזור סיסמאות. כוח ברוטלי אינו קשור ל"קסם פריצה"; זהו יישום של התמדה וחיפוש שיטתי בתוך גבולות מוגדרים. החל מהתקפות מילון ועד גישות היברידיות המנצלות בינה מלאכותית, כוח ברוטלי מדגים כיצד חישוב איטרטיבי יכול להתגבר על הגנות אנושיות ומערכתיות.
גם בעידן האוטומציה והבינה המלאכותית, כוח גולמי נותר רלוונטי. הוא מלמד מהנדסים על חשיפת משטחי תקיפה, יעילות מדיניות סיסמאות ומנגנוני הגבלת קצב. יתר על כן, פלטפורמות אבטחה מודרניות המונעות על ידי בינה מלאכותית מבוססות על טכניקות אלה, ומתזמרות תקיפות באופן מבוקר, ניתן לבקרה וניתן לשחזור.

מדוע כוח ברוטלי הוא חשוב
כוח ברוט משמש הן ככלי בדיקה מעשי והן כנקודת ייחוס קונספטואלית. הוא מדגיש נקודות תורפה באימות, מודד את האנטרופיה במדיניות הסיסמאות ומאמת בקרות הגנה כמו הגבלת קצב. MFAומנגנוני נעילה.
ממדים מרכזיים של רלוונטיות:
- אימות בקרות אבטחה – מאשר אם ההגנות עומדות בפני ניסיונות תקיפה מקיפים.
- מגרש אימונים ל-AI – מספק נתונים אמפיריים עבור סוכני בדיקות חדירה המונעים על ידי בינה מלאכותית.
- יישור צוות אדום-כחול – מגשר בין הבנת טכניקות התקפה לבין יישום אסטרטגיות הגנה.
סיווג ויכולות של כלי כוח ברוט
פעולות כוח ברוטליות ניתן לסווג לפי יעד, אסטרטגיה ורמת אוטומציה.
| קטגוריה | פונקציה מרכזית | תכונות יכולת | דוגמאות לכלים |
|---|---|---|---|
| ניחוש סיסמאות | ניסיון להשתמש בסיסמאות משתמשים בחשבונות | מילון והיברידי, ביצוע מקביל, ניהול ניסיונות חוזרים | הידרא, מדוזה, פטאטור |
| פיצוח מפתחות | שחזור מפתחות הצפנה | האצת GPU, מוטציה מבוססת כללים, מבוזרת | ג'ון הריפר, Hashcat, קין והבל |
| התקפות על טפסים מקוונים | נקודות קצה לכניסה בכוח ברוט | מודעות למגבלת קצב, ניהול הפעלה, טיפול ב-CAPTCHA | Burp Suite Intruder, OWASP ZAP, wfuzz |
| התקפות פרוטוקול | פרוטוקולי התקפה כמו SSH, RDP, FTP | איגום חיבורים, ניסיון חוזר אוטומטי, כוונון סמוי | Ncrack, THC-Hydra, BruteSSH |
הנדסה בפועל: יישום כוח ברוטלי
הפעלה מבטיחה שניתן לשחזר, לבקר ולהרחיב את בדיקות הכוח הגולמי.
פרקטיקות מרכזיות:
- חוזי תפוקה: פלט מובנה (JSON / SARIF / סכימה מותאמת אישית) כולל פרמטרים, חותמות זמן, תוצאות.
- ביצוע במכולות: הפעל כל כלי בסביבות מבודדות.
- מיקרו-שירותים ואוטובוס הודעות: עטוף כלים כמשימות הניתנות להפעלה מרחוק, שרשרת באמצעות Kafka/RabbitMQ.
- שילוב CI/CD: להפעיל התקפות בשלבים מבוקרים.
- ראיות ושרשרת ביקורת: פקודת לכידה, stdout/stderr, קוד יציאה, מידע על המארח.
דוגמה ב-Python — ניסיונות סיסמה מקבילים ופלט JSON מאוחד:
import subprocess, json, concurrent.futures, os, time TARGETS = ["10.0.0.5", "10.0.0.7"] RESULT_DIR = "./out" os.makedirs(RESULT_DIR, exist_ok=True)
def run_brute(tool_cmd): meta = {"cmd": tool_cmd, "started_at": time.time()} try: proc = subprocess.run(tool_cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE, timeout=600, text=True)
meta.update({ "rc": proc.returncode, "stdout": proc.stdout, "stderr": proc.stderr, "duration": time.time() - meta["started_at"]
}) except Exception as e: meta.update({"rc": -1, "stdout": "", "stderr": str(e), "duration": time.time() - meta["started_at"]}) return meta def brute_target(target):
hydra_cmd = ["hydra", "-L", "users.txt", "-P", "passwords.txt", f"ssh://{target}"] hashcat_cmd = ["hashcat", "-m", "0", "hashes.txt", "wordlist.txt"]
res = {"target": target, "runs": {}} res["runs"]["hydra"] = run_brute(hydra_cmd) res["runs"]["hashcat"] = run_brute(hashcat_cmd) return res def main():
out = {"generated_at": time.time(), "results": {}} with concurrent.futures.ThreadPoolExecutor(max_workers=4) as ex: futures = {ex.submit(brute_target, t): t for t in TARGETS} for fut in concurrent.futures.as_completed(futures):
t = futures[fut] out["results"][t] = fut.result() עם open(f"{RESULT_DIR}/brute_results.json", "w") כ- fh: json.dump(out, fh, indent=2) אם __name__ == "__main__": main()
Penligent: בדיקות חדירה חכמות עם למעלה מ-200 כלי פריצה
Penligent הופכת את כוח הגולמי ואת תהליכי בדיקת החדירות הרחבים יותר לתהליכים מתוזמרים על ידי בינה מלאכותית וניתנים לביקורת. באמצעות ניתוח הוראות בשפה טבעית, הפלטפורמה בוחרת באופן אוטומטי את הכלים המתאימים (כולל מנועי כוח גולמי כמו Hydra/Hashcat), מאמתת את הממצאים, קובעת סדרי עדיפויות לסיכונים ומייצרת דוחות מקצועיים.
דוגמה לתרחיש:
פקודה: "בדוק את תת-הדומיין X עבור סיסמאות חלשות וחשיפה ל-SSH"
זרימת עבודה: איתור נכסים → ספירת נקודות קצה → כוח גס מילוני/היברידי → אימות → יצירת דוחות. כל המטא-נתונים, היומנים והתפוקות נרשמים לצורך עקיבות.
בצינורות CI/CD, Penligent מבטיחה משוב אבטחה רציף: כל שינוי בקוד או בתשתית מפעיל סריקות ממוקדות, ממצאים בעלי עדיפות גבוהה מייצרים כרטיסים, והנחיות למיתון נלוות אליהם באופן אוטומטי. כך, התקפות כוח ברוטליות מופעלות בבטחה במסגרת תקני התאימות הארגוניים.
ספר תרגילים להקשחה — בקרות הנדסיות בעדיפות גבוהה
מטריצה מהירה לפי סדר עדיפויות
| עדיפות | בקרה | השפעה | מאמץ |
|---|---|---|---|
| P0 | אכוף MFA עבור כל החשבונות בעלי הרשאות מיוחדות | גבוה מאוד | נמוך-בינוני |
| P0 | חסום אישורים ידועים שדלפו (HIBP) בזמן האימות | גבוה מאוד | בינוני |
| P0 | הגבלת קצב אדפטיבית + ניהול בוטים בנקודות קצה של אימות | גבוה מאוד | בינוני |
| P1 | הצפנת סיסמאות חזקה (Argon2id עם פרמטרים מכוונים) | גבוה | נמוך |
| P1 | זיהוי SIEM עבור חריגות מרובות IP/מהירות | גבוה | בינוני |
| P2 | דירוג סיכונים של הפעלה ומכשיר (SSO/מנוע סיכונים) | בינוני | בינוני-גבוה |
| P2 | כללי WAF + דפי אתגר עבור זרימות חשודות | בינוני | בינוני |
| P3 | חשבונות קנריים / מלכודות הונאה למילוי פרטי הזדהות | בינוני | בינוני |
| P3 | הקשחת SSH / RDP (מארחים מקפצים, גישה מותנית) | בינוני | נמוך-בינוני |
אכיפת אימות רב-גורמי (MFA) — מדיניות מעשית
- מדיניות: MFA חובה לכל התפקידים בעלי הרשאות מיוחדות ולכל הצוות המשתמש בקונסולות provisioning/infra/UI. הפצה הדרגתית לכל המשתמשים. עדיפות לשיטות עמידות בפני פישינג (FIDO2/WebAuthn, מפתחות חומרה) עבור מנהלים.
- טיפים ליישום:
- עבור SSO (OIDC/SAML), נדרש
acrאוauthnContextClassRefשמציין MFA. - אכוף אימות משודרג עבור פעולות מסוכנות (שינוי סיסמה, יצירת מפתח API).
- עבור יישומים ישנים שאינם תומכים ב-MFA באופן מובנה, יש להציב בפניהם SSO או פרוקסי שמאכוף MFA.
- עבור SSO (OIDC/SAML), נדרש
- ניטור: עקוב אחר % של משתמשים בעלי הרשאות עם MFA מופעל, ניסיונות MFA שנכשלו ואירועי Step-up. התראה אם > X% של כניסות עם הרשאות חסרות MFA.
חסימת פרטי התחברות ידועים שדלפו — דוגמה לשילוב HaveIBeenPwned (HIBP)
- גישה: בעת ההרשמה ובכל כניסה (או שינוי סיסמה), יש לבדוק את סיסמת המועמד מול מאגר סיסמאות שהודלפו. יש להשתמש ב-API HIBP של k-anonymity כדי להימנע משליחת הסיסמה המלאה. אם הסיסמה נמצאה בהפרה, יש לחסום אותה ולכפות החלפה.
- זרימת אנונימיות k של HIBP (שרטוט):
- חשב SHA-1(סיסמה) → קידומת (5 התווים ההקסדצימליים הראשונים) וסיומת.
- שאילתה
https://api.pwnedpasswords.com/range/{prefix}→ קבל רשימת סיומות + ספירות. - בדוק אם הסיומת שלך קיימת — אם כן, התייחס אליה כאל הפרה.
- מדיניות: לדחות את N הסיסמאות המדליפות ביותר; באופן אופציונלי, לדחות כל סיסמה עם מספר הדלפות > סף (למשל, > 100). לרשום את המקרים ולהודיע למשתמשים.
קוד (Python) סקיצה:
import hashlib, requests def is_pwned(password): s = hashlib.sha1(password.encode('utf-8')).hexdigest().upper() prefix, suffix = s[:5], s[5:]
r = requests.get(f"") return suffix in r.text # שימוש: בהגדרת/שינוי סיסמה או בבדיקה תקופתית של פרטי הזדהות מאוחסנים (מוצפנים), חסימה אם נפרצו
הגבלת קצב אדפטיבית וניהול בוטים — תצורות קונקרטיות
- עקרונות: הגבלת קצב לפי (א) IP, (ב) חשבון, (ג) IP+חשבון, ו-(ד) ASN/מיקום גיאוגרפי. שילוב של מאגר אסימונים לסובלנות פרץ עם נסיגה הדרגתית במקרה של כשלים חוזרים.
- דוגמה ל-Nginx (מגבלת תעריף בסיסית לפי IP):
# nginx.conf snippet limit_req_zone $binary_remote_addr zone=auth_zone:10m rate=5r/s; server { location /login { limit_req zone=auth_zone burst=10 nodelay; proxy_pass http://auth_service; } }
- Cloudflare / WAF: הפעל את ניהול הבוטים, הגדר אתגר עבור ציונים חשודים; צור כלל WAF מותאם אישית עבור בקשות POST לאימות עם מהירות בקשה גבוהה.
- תגובה מתקדמת: בסף הראשון → להציג 429 או CAPTCHA; בחומרה גבוהה יותר → חסימה זמנית / דרישה לאיפוס סיסמה.
נעילת חשבונות והפחתת התזת סיסמאות — מדיניות מכוילת
- בעיה: נעילה נאיבית לכל חשבון מאפשרת לתוקפים לבדוק מניעת שירות נגד חשבונות. ריסוס סיסמאות מונע נעילה לכל חשבון על ידי ניסיון של מספר סיסמאות נפוצות על פני חשבונות רבים.
- מדיניות מכוילת מומלצת:
- לכל חשבון: לאחר N_failures = 10 כישלונות בתוך 10 דקות → הגבר את האתגר (CAPTCHA / MFA step-up) או נעל זמנית (למשל, 15 דקות).
- זיהוי ריסוס: אם חשבונות רבים ושונים מציגים כשלים בודדים מאותו IP / ASN → הפעל את בקרת ה-IP או דרוש CAPTCHA ב-IP שממנו נשלח.
- פרוגרסיבי: יישום מדיניות של הסלמה במקום נעילה קבועה: אתגר → MFA → נעילה זמנית → בדיקה מנהלית.
- דוגמה לכלל:
אם failures(account) >= 10 && unique_ips(account) >= 5 -> נדרשת איפוס סיסמה ו-MFA.
אחסון סיסמאות והצפנה — פרמטרים מומלצים של Argon2id
- אל תשתמש: SHA רגיל או MD5 ללא מלח. השתמש ב-KDFs מודרניים. Argon2id מומלץ למערכות חדשות; יש לחזור ל-bcrypt במידת הצורך.
- פרמטרים בסיסיים מוצעים (הנחיות לשנת 2025):
עלות זמן = 3,עלות_זיכרון = 64 * 1024KB (64 MB),מקבילות = 2— כוונן כלפי מעלה ככל שהחומרה מאפשרת.- אחסן מלח (≥ 16 בתים) ופרמטרים KDF עם ההאש.
- סיבוב: לספק נתיב הגירה — לחזור על התהליך בכניסה הבאה אם הפרמטרים אינם מעודכנים. לאחסן במטמון/לפקח על זמן ה-bcrypt/Argon2 הממוצע כדי למנוע DOS באמצעות hashing יקר.
כללי SIEM/זיהוי — דוגמאות Splunk ו-KQL
איתור כניסות כושלות רבות לחשבונות שונים מאותו IP (אינדיקטור לריסוס אישורים):
index=auth_logs action=failure | stats dc(user) as users, count as failures by src_ip | where users > 20 AND failures>50
איתור חשבונות חשודים עם כתובות IP ייחודיות רבות תוך 5 דקות:
index=auth_logs earliest=-5m | stats dc(src_ip) as uniq_ips, count as fails by user | where uniq_ips > 5 AND fails > 10
דוגמה ל-KQL (Azure)
SigninLogs | כאשר ResultType != 0 ו-TimeGenerated > ago(10m) | סיכום failures = count(), distinctIPs = dcount(ClientIP) לפי UserPrincipalName | כאשר failures > 10 ו-distinctIPs > 4
ניהול בוטים ושילוב WAF — פריטי ספר המשחקים
- הטמיעו פתרון לניהול בוטים (Cloudflare Bot Management, Akamai, PerimeterX). קשרו את ציון הבוט להחלטות — לדוגמה, ציון > 80 → אתגר, >95 → חסימה.
- עבור נקודות קצה אימות קריטיות: הגדר כללי WAF לבדיקת תבניות גוף POST; חסום חתימות ידועות של Credential Stuffing והגבל כתובות IP חשודות.
- ודא שרישומי WAF מספקים ל-SIEM מספיק הקשר לבקשות כדי לבצע אימות השמעה חוזרת/POC.
הונאה וחשבונות קנרי — הגברת הזיהוי
- צרו חשבונות "קנרי" מנוטרים עם שמות חזקים אך מציאותיים; כל ניסיון כושל לפרוץ אליהם מהווה איום ברמת ודאות גבוהה (מכיוון שהם אינם בשימוש רגיל).
- כלי קנריות ליצירת התראות בעדיפות גבוהה וחסימה אוטומטית של כתובות IP מקוריות. השתמש בנקודות קצה כוזבות לכניסה שמעולם לא מקבלות תעבורה לגיטימית.
בדיקות, מדדים והסכמי רמת שירות (SLA) — כיצד למדוד הצלחה
מדדים מרכזיים שיש לעקוב אחריהם
- זמן ממוצע לזיהוי (MTTD) של אירועי Credential Stuffing.
- זמן תגובה ממוצע (MTTR) לחסימת כתובות IP מקוריות / העברה לטיפול.
- כניסות מיוחדות % עם MFA מופעל.
- שיעור התוצאות החיוביות השגויות של זיהויי כוח ברוט (יעד < 5% לאחר כוונון).
- מספר השתלטויות מוצלחות על חשבונות (יעד: 0); הזמן שחלף בין הזיהוי לבין הבלימה.
בדיקות
- תזמן סימולציות של צוות אדום / בדיקות חדירה סוכניות כדי לאמת את הבקרות. השתמש בסביבת ביניים לבדיקות מבוקרות של פיזור אישורים. שלב את הריצה עם תסריטי אירועים.
סיכום
כוח ברוטלי נותר טכניקה בסיסית, הן ככלי הוראה והן כצורך תפעולי. כאשר הוא מתוכנן, מנוטר ומתוזמר כראוי על ידי בינה מלאכותית, הוא מתפתח משיטת תקיפה פשוטה לאסטרטגיית בדיקת אבטחה ניתנת לשחזור ולביקורת. פלטפורמות כמו Penligent מדגימות כיצד אוטומציה חכמה יכולה להפעיל כוח ברוטלי בבטחה, לשלב אותו בתהליכי בדיקת חדירות רחבים יותר ולחזק את ההגנה באופן רציף.

