cheesemolly95 commited on
Commit
6d857a0
·
verified ·
1 Parent(s): ee79fef

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +7 -7
app.py CHANGED
@@ -12,11 +12,11 @@ def analyze_email(headers, body):
12
 
13
  if re.search(r"SPF.*FAIL", headers, re.IGNORECASE):
14
  score += 10
15
- findings.append("<li>**SPF FAIL**: Сервер не разрешен для этого домена (+10)</li>")
16
 
17
  if re.search(r"DKIM.*FAIL", headers, re.IGNORECASE):
18
  score += 10
19
- findings.append("<li>**DKIM FAIL**: Подпись неверна, содержимое могло быть изменено (+10)</li>")
20
 
21
  # Проверка Return-Path (Спуфинг)
22
  from_match = re.search(r"^From:(.*)", headers, re.MULTILINE | re.IGNORECASE)
@@ -28,7 +28,7 @@ def analyze_email(headers, body):
28
 
29
  if from_email and return_email and from_email != return_email:
30
  score += 5
31
- findings.append(f"<li>**Спуфинг**: Отправитель ({from_email}) не совпадает с Return-Path ({return_email}) (+5)</li>")
32
 
33
  keywords_urgency = ["заблокирован", "срочно", "удаление", "ограничен", "suspension", "urgent", "immediate"]
34
  keywords_action = ["подтвердите", "verify", "update", "login", "вход", "пароль", "password"]
@@ -39,17 +39,17 @@ def analyze_email(headers, body):
39
  for word in keywords_urgency:
40
  if word in body_lower:
41
  score += 2
42
- findings.append(f"<li>**Психологическое давление**: Найдено слово '{word}' (+2)</li>")
43
 
44
  for word in keywords_action:
45
  if word in body_lower:
46
  score += 1
47
- findings.append(f"<li>**Требование действий**: Найдено слово '{word}' (+1)</li>")
48
 
49
  for word in keywords_greed:
50
  if word in body_lower:
51
  score += 2
52
- findings.append(f"<li>**Приманка/Маркетинг**: Найдено слово '{word}' (+2)</li>")
53
 
54
 
55
  ip_links = re.findall(r'https?://(?:[0-9]{1,3}\.){3}[0-9]{1,3}', body)
@@ -63,7 +63,7 @@ def analyze_email(headers, body):
63
  # Проверяем, чтобы это не было частью слова, а именно TLD
64
  if re.search(rf"\w{tld}/\w", body_lower) or re.search(rf"\w{tld}\b", body_lower):
65
  score += 2
66
- findings.append(f"<li>**Подозрительный домен**: Найдена зона '{tld}' (+2)</li>")
67
 
68
  if score == 0:
69
  verdict_text = "Уровень угрозы: НИЗКИЙ. Явных признаков фишинга не обнаружено."
 
12
 
13
  if re.search(r"SPF.*FAIL", headers, re.IGNORECASE):
14
  score += 10
15
+ findings.append("<li>SPF FAIL: Сервер не разрешен для этого домена (+10)</li>")
16
 
17
  if re.search(r"DKIM.*FAIL", headers, re.IGNORECASE):
18
  score += 10
19
+ findings.append("<li>DKIM FAIL: Подпись неверна, содержимое могло быть изменено (+10)</li>")
20
 
21
  # Проверка Return-Path (Спуфинг)
22
  from_match = re.search(r"^From:(.*)", headers, re.MULTILINE | re.IGNORECASE)
 
28
 
29
  if from_email and return_email and from_email != return_email:
30
  score += 5
31
+ findings.append(f"<li>Отправитель ({from_email}) не совпадает с Return-Path ({return_email}) (+5)</li>")
32
 
33
  keywords_urgency = ["заблокирован", "срочно", "удаление", "ограничен", "suspension", "urgent", "immediate"]
34
  keywords_action = ["подтвердите", "verify", "update", "login", "вход", "пароль", "password"]
 
39
  for word in keywords_urgency:
40
  if word in body_lower:
41
  score += 2
42
+ findings.append(f"<li>Психологическое давление: Найдено слово '{word}' (+2)</li>")
43
 
44
  for word in keywords_action:
45
  if word in body_lower:
46
  score += 1
47
+ findings.append(f"<li>Требование действий: Найдено слово '{word}' (+1)</li>")
48
 
49
  for word in keywords_greed:
50
  if word in body_lower:
51
  score += 2
52
+ findings.append(f"<li>Приманка: Найдено слово '{word}' (+2)</li>")
53
 
54
 
55
  ip_links = re.findall(r'https?://(?:[0-9]{1,3}\.){3}[0-9]{1,3}', body)
 
63
  # Проверяем, чтобы это не было частью слова, а именно TLD
64
  if re.search(rf"\w{tld}/\w", body_lower) or re.search(rf"\w{tld}\b", body_lower):
65
  score += 2
66
+ findings.append(f"<li>Подозрительный домен: '{tld}' (+2)</li>")
67
 
68
  if score == 0:
69
  verdict_text = "Уровень угрозы: НИЗКИЙ. Явных признаков фишинга не обнаружено."