Network Security
Network Security — TCP/IP, Firewalls ו-IDS
שיעור זה נותן את הבסיס המלא להבנת אבטחת רשתות: איך פרוטוקולים עובדים, איך מגנים עליהם, ואיך תוקפים מנסים לנצל אותם. זה הנושא שמופיע בכל מיון סייבר.
- OSI Model — 7 השכבות ותפקידן
- TCP/IP — Handshake, Ports, Packets
- Firewall — Stateless לעומת Stateful, Rules, DMZ
- IDS/IPS — זיהוי ומניעת חדירה, Signature לעומת Anomaly
- מתקפות רשת — Port Scan, DoS/DDoS, ARP Spoofing, MITM
- VPN — Tunneling, Protocols
- Wireshark — ניתוח תעבורת רשת
- DNS Security — Hijacking, Poisoning, DNSSEC
OSI Model — 7 השכבות
OSI (Open Systems Interconnection) הוא מודל תיאורטי שמחלק תקשורת רשת ל-7 שכבות. כל שכבה מספקת שירות לשכבה שמעליה. בסייבר — חשוב לדעת איזו שכבה כל פרוטוקול ומתקפה שייכים אליה.
| שכבה | שם | פרוטוקולים | מה קורה |
|---|---|---|---|
| 7 | Application | HTTP, HTTPS, DNS, SMTP, FTP | אפליקציה — מה המשתמש רואה |
| 6 | Presentation | TLS/SSL, JPEG, ASCII | הצגה, הצפנה, דחיסה |
| 5 | Session | NetBIOS, RPC | ניהול חיבורים/Sessions |
| 4 | Transport | TCP, UDP | Ports, Segmentation, Reliability |
| 3 | Network | IP, ICMP, ARP | Routing, כתובות IP |
| 2 | Data Link | Ethernet, WiFi, MAC | MAC Addresses, Frames |
| 1 | Physical | כבלים, אות | ביטים על גבי מדיה פיזית |
מלמטה למעלה: Please Do Not Throw Sausage Pizza Away.
בשאלות מיון: HTTP בשכבה 7, IP בשכבה 3, TCP/UDP בשכבה 4.
TCP/IP — בסיס כל תקשורת רשת
הבנת TCP Handshake קריטית להבנת מתקפות כמו SYN Flood. ידיעת ה-Ports חיונית לכל שאלה בנושא Firewall ו-Network Security.
TCP Three-Way Handshake
// TCP Three-Way Handshake
// שלב 1: Client → Server: SYN
// "אני רוצה להתחבר, Seq=100"
// שלב 2: Server → Client: SYN-ACK
// "הסכמתי, Seq=300, ACK=101"
// שלב 3: Client → Server: ACK
// "מאשר, ACK=301"
// → חיבור מבוסס!
// סגירת חיבור TCP: Four-Way Teardown
// FIN → FIN-ACK → ACK
// UDP: לא מבצע Handshake — שולח ומקווה לטוב
// DNS, DHCP, Video Streaming — UDP
// HTTP, SSH, FTP — TCPWell-Known Ports
| Port | פרוטוקול | שימוש | TCP/UDP |
|---|---|---|---|
| 20/21 | FTP | העברת קבצים (לא מוצפן!) | TCP |
| 22 | SSH | Remote Shell מוצפן | TCP |
| 23 | Telnet | Remote Shell לא מוצפן — אסור | TCP |
| 53 | DNS | Name Resolution | UDP/TCP |
| 80 | HTTP | Web לא מוצפן | TCP |
| 443 | HTTPS | Web מוצפן (TLS) | TCP |
| 3306 | MySQL | מסד נתונים | TCP |
| 3389 | RDP | Remote Desktop Windows | TCP |
Firewall — שומר השער
Firewall מסנן תעבורת רשת לפי חוקים (Rules). הכלל הזהב: Default Deny — מה שלא מפורש מותר — אסור.
| סוג | עובד בשכבה | מה בודק | יתרון/חיסרון |
|---|---|---|---|
| Packet Filter (Stateless) | 3-4 (IP, TCP) | IP, Port, Protocol | מהיר | לא מבין Context |
| Stateful Inspection | 4 (TCP) | מצב החיבור (SYN/EST) | מבין Flow | כבד יותר |
| Application Layer (L7) | 7 (HTTP) | תוכן HTTP, DNS, SQL | הכי חכם | איטי יותר |
| Next-Gen Firewall (NGFW) | כל השכבות | IPS + App Control + TLS | הכי מקיף | יקר |
Firewall Rules — iptables דוגמה
# Firewall Rules — נבדקות מלמעלה למטה, ראשון שמתאים — ניצח!
# iptables (Linux Firewall):
# אפשר חיבורים קיימים
iptables -A INPUT -m conntrack --ctstate ESTABLISHED,RELATED -j ACCEPT
# אפשר SSH מכתובת IP ספציפית בלבד
iptables -A INPUT -p tcp --dport 22 -s 10.0.0.5 -j ACCEPT
# אפשר HTTPS לכולם
iptables -A INPUT -p tcp --dport 443 -j ACCEPT
# חסום HTTP (כופה HTTPS)
iptables -A INPUT -p tcp --dport 80 -j DROP
# Default Deny — חסום כל השאר
iptables -P INPUT DROPIDS/IPS — זיהוי ומניעת חדירה
IDS מזהה ומתריע. IPS מזהה וחוסם. ההבדל קריטי — False Positive ב-IPS עלול לשבות שירות לגיטימי.
| IDS (Intrusion Detection) | IPS (Intrusion Prevention) | |
|---|---|---|
| תפקיד | מזהה ומתריע | מזהה וחוסם באופן אקטיבי |
| מיקום | Out-of-band (עותק תעבורה) | Inline (כל התעבורה עוברת דרכו) |
| False Positive | רק התראה מוטעית | חסימה מוטעית — עלולה לשבות שירות |
שיטות זיהוי
| שיטה | איך עובד | יתרון | חיסרון |
|---|---|---|---|
| Signature-based | מחפש דפוסים ידועים (Snort Rules) | מדויק, מהיר | לא מזהה 0-day |
| Anomaly-based | בונה Baseline, מזהה חריגות | מזהה 0-day | הרבה False Positives |
| Heuristic | ניתוח התנהגות חשודה | איזון בין השניים | מורכב לכיוון |
מתקפות רשת נפוצות
Port Scan, DoS/DDoS, ARP Spoofing ו-MITM — אלו המתקפות שמופיעות בכל בחינת סייבר. חשוב להבין את המנגנון ולא רק את השם.
Port Scanning — Nmap
# Nmap — Network Mapper
# סריקה בסיסית (TCP SYN Scan — לא מסיים Handshake)
nmap -sS 192.168.1.1
# זיהוי OS וגרסאות שירות
nmap -O -sV 192.168.1.1
# סריקת רשת שלמה
nmap -sn 192.168.1.0/24 # Host Discovery בלבד
# פלט לדוגמה:
# PORT STATE SERVICE VERSION
# 22/tcp open ssh OpenSSH 8.4
# 80/tcp open http nginx 1.20
# 3306/tcp open mysql MySQL 8.0 ← ⚠️ DB חשוף!DoS ו-DDoS
| סוג מתקפה | מנגנון | הגנה |
|---|---|---|
| SYN Flood | מציף SYN ללא ACK — TCP Queue מתמלאת | SYN Cookies, Rate Limiting |
| HTTP Flood | GET/POST לגיטימיים בנפח עצום | WAF, CAPTCHA, Rate Limiting |
| Amplification | בקשה קטנה → תגובה ענקית לקורבן | BCP38, Ingress Filtering |
| Slowloris | שולח Headers לאט מאוד — תופס Connections | Connection Timeout קצר |
ARP Spoofing ו-MITM
// ARP Spoofing Flow:
// 1. LAN רגיל:
// Victim (192.168.1.10) → Router/GW (192.168.1.1) → Internet
// 2. התוקף שולח ARP Reply מזויף:
// "מי שיש לו 192.168.1.1 — ה-MAC שלי"
// הקורבן מאמין ומעדכן ARP Table
// 3. אחרי Spoofing:
// Victim → Attacker → Router → Internet
// התוקף רואה הכל — MITM!
// כלים: arpspoof, ettercap, bettercap
// הגנות:
// - Dynamic ARP Inspection (DAI) — ב-Managed Switches
// - Static ARP Entries לGateway
// - HTTPS/TLS מגן גם אם יש MITM (Certificate Pinning)VPN ו-Wireshark
VPN יוצר Tunnel מוצפן בין שתי נקודות. Wireshark הוא כלי Packet Capture — חובה לכל מאבטח.
פרוטוקולי VPN
| פרוטוקול | שכבה | הצפנה | יתרון |
|---|---|---|---|
| OpenVPN | 4 (UDP/TCP) | AES-256 + TLS | הכי גמיש, Open Source |
| WireGuard | 3 (UDP) | ChaCha20 | המהיר ביותר, מודרני |
| IPSec/IKEv2 | 3 (IP) | AES-256 | נפוץ ב-Enterprise |
| SSL/TLS VPN | 7 (HTTP) | TLS | עובד דרך Firewall (port 443) |
Wireshark — Filters מרכזיים
# Wireshark Display Filters:
http # כל תעבורת HTTP
dns # שאילתות DNS
tcp.port == 443 # HTTPS
tcp.port == 22 # SSH
# סנן לפי IP
ip.addr == 192.168.1.5
# SYN Packets בלבד (זיהוי Port Scan)
tcp.flags.syn == 1 and tcp.flags.ack == 0
# חיפוש Credentials ב-HTTP (Plain Text!)
http.request.method == 'POST' and http contains 'password'
# DNS ספציפי
dns.qry.name contains 'google'DNS Security — Hijacking ו-Poisoning
DNS הוא "פנקס הכתובות" של האינטרנט — ולכן מטרה אטרקטיבית לתוקפים. DNS Poisoning ו-Hijacking מאפשרים להפנות משתמשים לאתרים זדוניים.
// DNS Query Flow רגיל:
// Browser → Resolver → Root → TLD (.com) → Authoritative → IP
// DNS Poisoning:
// תוקף מזריק Record מזויף ל-Resolver Cache
// browser.com → 1.2.3.4 (IP של תוקף) במקום 5.6.7.8 (IP אמיתי)
// DNS Hijacking:
// תוקף משנה הגדרות ב-Router/ISP/Client
// כל DNS Queries → שרת DNS של התוקף → מפנה לכל מקום
// הגנות:
// DNSSEC: חתימה קריפטוגרפית על DNS Records
// Resolver מאמת שה-Record לא זויף
// DoH (DNS over HTTPS): שאילתות DNS מוצפנות ב-HTTPS
// 1.1.1.1 (Cloudflare), 8.8.8.8 (Google) תומכים ב-DoH
# בדיקת DNS Record:
dig myapp.com A # IPv4 Record
dig myapp.com +dnssec # בדיקת DNSSECתרגול נוסף — מצביעים: Dereferencing ו-Dangling
שאלות העשרה נוספות לחיזוק החומר של השיעור — באותו פורמט בחירה של הקורס.
x אחרי הרצת הקוד?int x=5, y=10; int *p=&x, *q=&y; *p = *q + 3; *q = *p - 1;
int* make_array(int n) {
int arr[n]; // VLA
for (int i=0;i<n;i++) arr[i]=i;
return arr; // ←
}אתגר מעשי — אבטחת רשת — Firewall ו-IDS
שיא השיעור: לרדת לרמת-המכונה — C, אסמבלי, היפוך. ההגשה נבדקת אוטומטית.
סיכום — שיעור 24
- OSI 7 שכבות: Physical→Data Link→Network→Transport→Session→Presentation→Application
- TCP Three-Way Handshake: SYN→SYN-ACK→ACK. UDP: לא Handshake
- Well-Known Ports: SSH:22, HTTP:80, HTTPS:443, DNS:53, MySQL:3306
- Firewall: Stateless→Stateful→L7→NGFW. Default Deny = כלל הזהב
- DMZ: Web/Mail Servers חשופים אבל מבודדים מה-LAN הפנימי
- IDS = מזהה ומתריע | IPS = מזהה וחוסם. Signature vs Anomaly Detection
- SYN Flood: TCP Queue מלאה → DoS. הגנה: SYN Cookies
- ARP Spoofing → MITM: תוקף מתחזה ל-Gateway, רואה כל התעבורה
- VPN: Tunnel מוצפן בין נקודות. WireGuard המהיר, OpenVPN הגמיש
- Wireshark: tcp.flags.syn, http contains 'password', Follow TCP Stream
- DNS Poisoning: Record מזויף ב-Cache. הגנה: DNSSEC + DoH
2. הריץ
nmap -sV 127.0.0.1 — ראה אילו Ports פתוחים3. שיעור 25: Cryptography — Symmetric, Asymmetric, Hash Functions, PKI
שאלות תרגול ותשובות (10)
שאלה 1 · באיזו שכבת OSI פועל פרוטוקול SSH?
- א. שכבה 3 — Network
- ב. שכבה 4 — Transport
- ג. שכבה 7 — Application
- ד. שכבה 2 — Data Link
SSH הוא פרוטוקול אפליקטיבי (שכבה 7) שרוכב על TCP בפורט 22. ARP לעומתו יושב בשכבה 2, ולכן מתקפת ARP Spoofing עובדת רק בתוך אותה רשת מקומית.
שאלה 2 · מה ההבדל העיקרי בין TCP ל-UDP?
- א. TCP יוצר חיבור ומוודא הגעת מידע, UDP שולח בלי אימות אבל מהר
- ב. UDP מאובטח יותר כי הוא מוצפן
- ג. TCP עובד רק ברשת מקומית
- ד. אין הבדל מעשי, רק שמות שונים
TCP מבצע Three-Way Handshake ומוודא הגעה וסדר; UDP הוא "שגר ושכח" — מהיר, מתאים לווידאו ו-DNS, אבל בלי הבטחת הגעה.
שאלה 3 · מה עושה חוק ה-iptables הבא?
sudo iptables -A INPUT -p tcp --dport 22 -j DROP
- א. חוסם תעבורת SSH נכנסת
- ב. מאפשר SSH נכנס מכל כתובת
- ג. חוסם תעבורה יוצאת בפורט 22
- ד. מפנה את פורט 22 לפורט 2222
-A INPUT מוסיף חוק לתעבורה נכנסת, --dport 22 מתייחס ל-SSH ו--j DROP זורק את החבילה בשקט. חשוב: החוקים נבדקים מלמעלה למטה, והראשון שמתאים מנצח.
שאלה 4 · מה ההבדל בין Stateless ל-Stateful Firewall?
- א. Stateful מוצפן ו-Stateless לא
- ב. Stateless בודק כל חבילה בנפרד; Stateful זוכר את מצב החיבור ומזהה תשובות לגיטימיות
- ג. Stateless עובד רק בשכבה 7
- ד. Stateful חוסם הכול כברירת מחדל
חומת אש Stateful מנהלת טבלת חיבורים, ולכן יודעת להבדיל בין חבילת תשובה לחיבור קיים לבין ניסיון חדש ולא מוזמן.
שאלה 5 · מה החיסרון המרכזי בזיהוי מבוסס חתימות (Signature-based) ב-IDS?
- א. הוא מייצר יותר מדי התראות שווא
- ב. הוא לא מזהה מתקפות חדשות שאין להן חתימה מוכרת
- ג. הוא עובד רק על תעבורה מוצפנת
- ד. הוא דורש חיבור לאינטרנט
חתימות מזהות רק את מה שכבר מוכר. מתקפת Zero-Day תעבור מתחת לרדאר — ולכן משלימים עם זיהוי מבוסס התנהגות (Anomaly-based).
שאלה 6 · מה עושה הסריקה הבאה?
nmap -sS -p 1-1000 192.168.1.10
- א. סורקת 1000 פורטים ראשונים בסריקת SYN חצי-פתוחה
- ב. מריצה מתקפת DoS על היעד
- ג. מנסה לפרוץ סיסמאות בפורטים אלה
- ד. מאזינה לתעבורה שעוברת ברשת
-sS שולחת SYN ולא משלימה את החיבור (Half-open) — מהיר ופחות מתועד בלוגים של השרת. זו סריקת מיפוי, לא מתקפה.
שאלה 7 · איזה פילטר ב-Wireshark יציג רק חבילות SYN (לזיהוי Port Scan)?
tcp.flags.syn == 1 && tcp.flags.ack == 0
- א. הפילטר מציג רק בקשות פתיחת חיבור — סימן מובהק לסריקת פורטים
- ב. הפילטר מציג את כל תעבורת ה-TCP
- ג. הפילטר מסנן רק חבילות מוצפנות
- ד. הפילטר חוסם את הסורק
SYN ללא ACK = ניסיון פתיחת חיבור. מאות כאלה בשנייה לפורטים שונים = סריקה. 🎯 דגש למבחן: כדי לנתח ביעילות אל תעברו חבילה-חבילה — לחצו ימני על חבילה ובחרו Follow TCP/UDP Stream. Wireshark יחבר את כל החבילות לשיחה אחת קריאה (למשל כל בקשת ה-HTTP והתשובה).
שאלה 8 · מה ההבדל בין SYN Flood ל-HTTP Flood?
- א. שתיהן זהות, רק בשמות שונים
- ב. SYN Flood מציפה את זיכרון הליבה בחיבורים חצי-פתוחים (שכבה 4); HTTP Flood שורפת משאבי עיבוד עם בקשות תקינות (שכבה 7)
- ג. SYN Flood פועלת רק על UDP
- ד. HTTP Flood מנצלת חולשה בהצפנת TLS
🎯 דגש למבחן: SYN Flood היא מתקפת שכבה 4 — כל SYN שלא הושלם תופס רשומה בטבלת החיבורים בזיכרון הליבה עד שהיא מתמלאת (ההגנה: SYN Cookies). HTTP Flood היא שכבה 7 — הבקשות לגיטימיות לחלוטין, אבל כל אחת מפעילה שאילתות DB ועיבוד בשרת עד שהמעבד נחנק.
שאלה 9 · חבר גולש ב-HTTP (לא HTTPS) ברשת ציבורית בבית קפה. מה הסיכון הקונקרטי?
- א. הדפים ייטענו לאט יותר
- ב. כל אחד ברשת יכול לצותת ולראות סיסמאות ו-Cookies בטקסט גלוי
- ג. הדפדפן יחסום את האתר אוטומטית
- ד. הנתונים יישמרו בזיכרון המטמון של הראוטר
ב-HTTP הכול עובר בטקסט גלוי. מי שמאזין לרשת (או מבצע ARP Spoofing) רואה ב-Wireshark את שם המשתמש, הסיסמה וה-Session Cookie — ויכול להתחזות.
שאלה 10 · מה DNSSEC נועד למנוע?
- א. הוא מצפין את תוכן הגלישה
- ב. הוא חותם דיגיטלית על תשובות DNS ומונע זיוף שלהן (DNS Poisoning)
- ג. הוא מאיץ את זמן פענוח השמות
- ד. הוא חוסם אתרים זדוניים ברשימה שחורה
DNSSEC מוסיף חתימה דיגיטלית לתשובות ה-DNS כדי לוודא שהן הגיעו מהשרת האמיתי ולא זויפו. הוא מאמת מקור — הוא לא מצפין את התוכן.