Угрозы информационной безопасности и защита данных

Почему данные нужно защищать и от чего именно — системный взгляд на безопасность, а не набор страшилок.

Информационная безопасность — защищённость данных и систем, обеспечивающая их конфиденциальность, целостность и доступность.

Зачем это нужно

Мы доверяем компьютерам деньги, переписку, документы, здоровье. Цена ошибки в защите — украденные аккаунты, потерянные данные, подделанные документы. Информационная безопасность — это не паранойя, а инженерная дисциплина с ясными принципами. Понимание её основ защищает лично вас и обязательно для любого, кто работает с данными. На ЕГЭ и в жизни это тема о том, как мыслить про защиту системно, а не латать дыры наугад.

У безопасности есть фундаментальная асимметрия, которую важно осознать с самого начала: защищающемуся нужно закрыть все возможные лазейки, а нападающему достаточно найти одну. Эта асимметрия объясняет, почему абсолютной защиты не существует и почему безопасность — это всегда процесс, а не разовое действие. Нельзя «установить защиту и забыть»: появляются новые уязвимости, новые приёмы обмана, и систему приходится защищать постоянно. Поэтому профессионалы мыслят не категориями «защищено / не защищено», а категориями риска: какие угрозы наиболее вероятны, что они могут повредить и какие меры дают наибольшую отдачу. Такой системный, трезвый взгляд гораздо полезнее, чем коллекция разрозненных советов «поставь антивирус» и «не открывай вложения». Этот раздел учит именно мыслить о безопасности структурно — а конкретные приёмы становятся понятны и запоминаются сами, когда видишь общую картину.

Три кита безопасности: триада CIA

Вся информационная безопасность держится на трёх свойствах, которые нужно сохранять. По первым буквам английских названий их зовут триадой CIA:

СвойствоЧто значитНарушение
Конфиденциальностьданные видят только те, кому положеноутечка, подсматривание пароля
Целостностьданные не искажены и не подделаныподмена суммы в платеже
Доступностьданные доступны, когда нужнысайт «положили» атакой

Любая угроза бьёт по одному из этих свойств, и любая защита их оберегает. Это рамка, через которую профессионалы смотрят на любую систему: «что здесь с конфиденциальностью? с целостностью? с доступностью?».

Виды угроз

Угрозы делят на несколько типов. Понимание их природы помогает выбрать защиту:

  • Вредоносные программы: вирусы, черви, трояны, шифровальщики — портят, крадут или блокируют данные.
  • Сетевые атаки: перехват трафика, подбор паролей, DDoS (перегрузка сервера запросами ради отказа в обслуживании).
  • Социальная инженерия: фишинг и обман — самое слабое звено часто человек, а не техника.
  • Случайные угрозы: сбои, потеря носителя, ошибки человека — поэтому делают резервные копии.

Аутентификация: как система узнаёт «своего»

Аутентификация — проверка, что пользователь тот, за кого себя выдаёт. Классически — по паролю. Но хранить пароли в открытом виде нельзя: при утечке базы все они станут известны. Поэтому хранят не сам пароль, а его «отпечаток» (хеш) — об этом подробно в следующем уроке. Здесь же смоделируем простую проверку входа и силу пароля:

def password_strength(pwd):
    score = 0
    if len(pwd) >= 8: score += 1
    if any(c.isdigit() for c in pwd): score += 1
    if any(c.isupper() for c in pwd): score += 1
    if any(c.islower() for c in pwd): score += 1
    if any(not c.isalnum() for c in pwd): score += 1
    levels = ["очень слабый", "слабый", "средний", "хороший", "сильный", "очень сильный"]
    return levels[score]

for pwd in ("12345", "qwerty", "Sun2024", "K9$mPx!72z"):
    print(f"{pwd:<12} -> {password_strength(pwd)}")

Вывод:

12345        -> слабый
qwerty       -> слабый
Sun2024      -> хороший
K9$mPx!72z   -> очень сильный

Целостность: контрольная сумма

Как убедиться, что файл не изменился при передаче? Считают контрольную сумму — небольшое число, зависящее от всего содержимого. Если данные изменились хоть на бит, сумма не совпадёт. Простейший вариант — сумма кодов символов. Покажем, как искажение ломает контроль:

def checksum(text):
    return sum(ord(c) for c in text) % 65536   # простая контрольная сумма

original = "Перевести 1000 рублей"
tampered = "Перевести 9000 рублей"   # злоумышленник подменил сумму

print("оригинал :", original, "-> сумма", checksum(original))
print("подделка :", tampered, "-> сумма", checksum(tampered))
print("целостность сохранена:", checksum(original) == checksum(tampered))

Вывод:

оригинал : Перевести 1000 рублей -> сумма 16457
подделка : Перевести 9000 рублей -> сумма 16465
целостность сохранена: False

Принцип эшелонированной защиты

Не существует одной волшебной меры. Безопасность строят слоями: даже если злоумышленник пройдёт один барьер, его остановит следующий. Пароль, двухфакторная аутентификация, шифрование, резервные копии, ограничение прав — каждая мера закрывает свою угрозу. Смоделируем «слоистую» проверку доступа, где для входа нужно пройти несколько условий:

def check_access(password_ok, second_factor_ok, ip_allowed):
    layers = {
        "пароль верный": password_ok,
        "второй фактор": second_factor_ok,
        "доверенный IP": ip_allowed,
    }
    for name, ok in layers.items():
        status = "пройден" if ok else "ОТКАЗ"
        print(f"  слой '{name}': {status}")
    return all(layers.values())

print("Попытка входа:")
granted = check_access(password_ok=True, second_factor_ok=True, ip_allowed=False)
print("Доступ разрешён:", granted)

Вывод:

Попытка входа:
  слой 'пароль верный': пройден
  слой 'второй фактор': пройден
  слой 'доверенный IP': ОТКАЗ
Доступ разрешён: False

Попробуй сам

Соберём «аудитор паролей»: проверим список паролей на типичные слабости и выдадим рекомендации. Это практический навык — оценивать защищённость.

common = {"123456", "password", "qwerty", "admin"}

def audit(pwd):
    problems = []
    if pwd.lower() in common:
        problems.append("есть в списке популярных")
    if len(pwd) < 8:
        problems.append("короче 8 символов")
    if pwd.isdigit():
        problems.append("только цифры")
    if pwd.isalpha():
        problems.append("только буквы")
    return problems if problems else ["надёжный"]

for pwd in ("admin", "12345678", "letmein", "Tr0ub4dor&3"):
    print(f"{pwd:<14}: {', '.join(audit(pwd))}")

Вывод:

admin         : есть в списке популярных, короче 8 символов, только буквы
12345678      : только цифры
letmein       : короче 8 символов, только буквы
Tr0ub4dor&3   : надёжный

Частые ошибки

  • Считают безопасность «делом антивируса». Это система мер; человек и процессы важны не меньше техники.
  • Хранят пароли в открытом виде. При утечке базы это катастрофа; хранят хеши (следующий урок).
  • Полагаются на один барьер. Надёжность даёт эшелонированная защита из независимых слоёв.
  • Недооценивают социальную инженерию. Самая надёжная техника бессильна, если пользователь сам отдаёт пароль мошеннику.

Итоги

  • Информационная безопасность защищает три свойства: конфиденциальность, целостность, доступность (триада CIA).
  • Угрозы бывают вредоносные программы, сетевые атаки, социальная инженерия, случайные сбои.
  • Аутентификация проверяет личность; пароли хранят в виде хешей, а не открытым текстом.
  • Контрольная сумма выявляет искажение данных; защиту строят слоями (эшелонированно).
Проверьте себя
1. Какие три свойства защищает информационная безопасность (триада CIA)?
AСкорость, надёжность, удобство
BКонфиденциальность, целостность, доступность
CШифрование, пароли, антивирус
DСеть, сервер, клиент
2. Зачем считают контрольную сумму файла?
AЧтобы зашифровать файл
BЧтобы обнаружить, что данные изменились при передаче или хранении
CЧтобы ускорить передачу
DЧтобы сжать файл
3. Что такое эшелонированная защита?
AОдин очень надёжный пароль
BНесколько независимых слоёв защиты, где следующий останавливает прошедшего предыдущий барьер
CШифрование всего диска
DЗапрет на доступ в интернет
Поддержать проект