Categories
Database Backup

** Learn how to protect enterprise database archives from ransomware using immutable storage. Discover technical implementation steps for AWS S3 Object Lock, ZFS, PostgreSQL, and SQL Server.

אין דער מאָדערנער סכנה-לאַנדשאַפֿט, האָט זיך ראַנסאָמווער (ransomware) אַנטוויקלט פֿון אָפּאָרטוניסטישער ענקריפּשאַן צו העכסט-צילגעריכטע, מולטי-עקסטאָרשאַן קאַמפּיינז. אַדוואַנסד פּערסיסטענט טרעץ (APTs) און ראַנסאָמווער-סינדיקאַטן זוכן איצט אַקטיוו נאָך באַקאַפּ-אינפראַסטרוקטור און דאַטאַבייס-אַרכיוון בעת זייער “דוועל-טיים” (די צייט וואָס זיי זענען אין סיסטעם). אויב אַן אַטאַקירער קאָמפּראָמיטירט אייער הויפּט-דאַטאַבייס און גלײַכצײַטיק מעקט אויס אָדער ענקריפּט אייערע באַקאַפּ-רעפּאָזיטאָריעס, שטייט אייער אָרגאַניזאַציע פֿאַר קאַטאַסטראָפֿאַלע דאַטן-פֿאַרלוסט.

פֿאַר דאַטאַבייס-אַדמיניסטראַטאָרן (DBAs) און דעוואָפּס-אינזשענירן, איז די טראַדיציאָנעלע 3-2-1 באַקאַפּ-סטראַטעגיע מער נישט גענוג. כּדי צו גאַראַנטירן דאַטן-איבערלעבונג, מוזן אינפראַסטרוקטור-טימז אַדאָפּטירן די 3-2-1-1 הערש, וווּ די לעצטע “1” רעפּרעזענטירט אימיוטאַבלע סטאָרידזש (אומענדערלעכע סטאָרידזש).

דער אַרטיקל גיט אַ פֿולשטענדיקן, טעכנישן טיפֿן אַרײַנקוק אין אַרכיטעקטור, ימפּלעמענטאַציע און פֿאַרוואַלטונג פֿון אימיוטאַבלע סטאָרידזש פֿאַר דאַטאַבייס-אַרכיוון, כּדי צו פֿאַרזיכערן אַבסאָלוטע ראַנסאָמווער-ווידערשטאַנד.

די מעכאַניק פֿון אימיוטאַבלע סטאָרידזש

אימיוטאַבלע סטאָרידזש באַזירט זיך אויף אַ “שרײַב-איין-לייען-פֿיל” (WORM) אַרכיטעקטור. אַמאָל דאַטן ווערן געשריבן צו אַן אימיוטאַבלע ציל, קענען זיי נישט ווערן מאָדיפֿיצירט, ענקריפּטירט אָדער מעקן דורך קיין באַנוצער—אַרײַנגערעכנט אַדמיניסטראַטאָרן מיט רוט-פּריווילעגיעס אָדער קאָמפּראָמיטירטע סערוויס-אַקאַונץ—ביז אַ מאַטעמאַטיש דורכגעפֿירטע צייט-שלאָס לויפֿט אויס.

קאָמפּליאַנסע מאָדע קעגן גאָווערנאַנס מאָדע

ווען מען ימפּלעמענטירט אימיוטאַביליטי, ספּעציעל אין וואָלקן-אָביעקט-סטאָרידזש ווי AWS S3, Azure Blob, אָדער S3-קאָמפּאַטיבלע אָן-פּרעמיסעס SANs, מוזט איר פֿאַרשטיין דעם חילוק צווישן ריטענשאַן-מאָדעס:

  • גאָווערנאַנס מאָדע: פֿאַרמייַדט נאָרמאַלע באַנוצער פֿון מעקן אָדער ענדערן אָביעקטן. אָבער, באַנוצער מיט ספּעציפֿישע IAM-דערלויבענישן (למשל, s3:BypassGovernanceRetention) קענען איבערשרײַבן דעם שלאָס. דאָס איז נוצלעך פֿאַר טעסטינג, אָבער נישט גענוג פֿאַר ראַנסאָמווער-שוץ, ווײַל אַטאַקירער עסקאַלירן אָפֿט פּריווילעגיעס צו דאָמיין-אַדמין אָדער רוט.
  • קאָמפּליאַנסע מאָדע: דער גאָלדענער סטאַנדאַרט פֿאַר ראַנסאָמווער-פֿאַרטיידיקונג. אַמאָל אַן אָביעקט איז פֿאַרשלאָסן אין קאָמפּליאַנסע מאָדע, קען זײַן ריטענשאַן-פּעריאָד נישט פֿאַרקירצט ווערן, און דער אָביעקט קען נישט מעקן ווערן דורך קיינעם, אַרײַנגערעכנט דעם AWS רוט-אַקאַונט. דער שלאָס ווערט דורכגעפֿירט אויף דער סטאָרידזש-קלאַסטער מדרגה.

אַרכיטעקטור פֿון אַן אימיוטאַבלע באַקאַפּ-פּײַפּליין

אַ שטאַרקע דאַטאַבייס-אַרכיווירן-אַרכיטעקטור צעשיידט אַקטיווע דאַטאַבייס-אָפּעראַציעס פֿון דער אימיוטאַבלע אַרכיוו-טיער. איר קענט נישט אַפּליייִרן אימיוטאַביליטי צו אַקטיווע דאַטאַבייס-טעקעס (ווי .mdf/.ldf אין SQL Server אָדער דעם pg_data דירעקטאָרי אין PostgreSQL), ווײַל דאַטאַבייסן פֿאָדערן קעסיידערדיקן לייען/שרײַב-צוטריט.

אַנשטאָט דעם, ווערט אימיוטאַביליטי אַפּליייִרט צו:
1. פֿולע און דיפֿערענציעלע באַקאַפּ-טעקעס: די באַזע-סנאַפּשאָץ פֿון דער דאַטאַבייס.
2. טראַנזאַקציע-לאָגס / WAL-טעקעס: דער קעסיידערדיקער שטראָם פֿון דאַטאַבייס-ענדערונגען וואָס איז נויטיק פֿאַר “פּוינט-אין-טײַם ריקאַווערי” (PITR).

סטאָרידזש-צילן פֿאַר אימיוטאַביליטי

איר קענט ימפּלעמענטירן אימיוטאַבלע סטאָרידזש איבער פֿאַרשיידענע אינפראַסטרוקטור-טיערס:
* וואָלקן-אָביעקט-סטאָרידזש: AWS S3 Object Lock, Azure Blob Immutable Storage, Google Cloud Storage Retention Policies.
* אָן-פּרעמיסעס אָביעקט-סטאָרידזש: MinIO, Cloudian, אָדער Pure Storage FlashBlade וואָס שטיצן S3 Object Lock APIs.
* בלאָק/טעקע-סטאָרידזש: ZFS מיט לייען-נאָר סנאַפּשאָץ און דעלעגירטע אַדמיניסטראַציע, אָדער לינוקס טעקע-אַטריבוטן.

ימפּלעמענטירן אימיוטאַבלע סטאָרידזש: טעכנישע דורכגאַנגען

1. וואָלקן-אָביעקט-סטאָרידזש: AWS S3 Object Lock

כּדי צו באַשיצן דאַטאַבייס-דאַמפּס און טראַנזאַקציע-לאָגס אין AWS, מוזט איר אַקטיווירן Object Lock בעת דער באַקעט-שאַפֿונג.

ערשטנס, שאַפֿט דעם באַקעט מיט Object Lock אַקטיווירט:

aws s3api create-bucket 
    --bucket prod-db-archive-immutable 
    --region us-east-1 
    --object-lock-enabled-for-bucket

דערנאָך, קאָנפֿיגורירט די נאָרמאַלע ריטענשאַן-פּאָליסי. פֿאַר דאַטאַבייס-אַרכיוון איז אַ 30-טאָגיקער קאָמפּליאַנסע-שלאָס אַ נאָרמאַלע באַזע, וואָס פֿאַרזיכערט אַז איר האָט אַ חודש פֿון אומענדערלעכע באַקאַפּס.

aws s3api put-object-lock-configuration 
    --bucket prod-db-archive-immutable 
    --object-lock-configuration '{
        "ObjectLockEnabled": "Enabled",
        "Rule": {
            "DefaultRetention": {
                "Mode": "COMPLIANCE",
                "Days": 30
            }
        }
    }'

ווען אייער דאַטאַבייס-באַקאַפּ-סקריפּט אָדער אַגענט שיקט אַ טעקע צו דעם באַקעט, רעכנט S3 אויטאָמאַטיש דעם Retain Until Date באַזירט אויף דעם אָביעקט-שאַפֿונג-צייטשטעמפּל פּלוס 30 טעג.

2. אָן-פּרעמיסעס אימיוטאַביליטי: ZFS און לינוקס אַטריבוטן

אויב איר אַרכיווירט דאַטאַבייסן צו אַן אָן-פּרעמיסעס לינוקס באַקאַפּ-סערווער, קענט איר דערגרייכן פּסעוודאָ-אימיוטאַביליטי ניצנדיק דעם chattr באַפֿעל, אָדער אמתע אימיוטאַביליטי ניצנדיק ZFS סנאַפּשאָץ.

ניצנדיק לינוקס chattr:
דער +i (אימיוטאַבלע) פֿלאַג פֿאַרמייַדט טעקע-מאָדיפֿיקאַציע, מעקן אָדער אומנאָמען.

# Dump the database
pg_dump -U postgres -Fc mydb > /backups/mydb_$(date +%F).dump

# Make the backup immutable
sudo chattr +i /backups/mydb_$(date +%F).dump

# Verify the attribute
lsattr /backups/mydb_$(date +%F).dump
# Output: ----i---------e------- /backups/mydb_2023-10-27.dump

באַמערקונג: כאָטש chattr האַלט אָפּ באַסיקע ראַנסאָמווער-סקריפּטן, קען אַ סאָפֿיסטיקירטער אַטאַקירער מיט רוט-צוטריט פשוט לויפֿן chattr -i. דעריבער, מוז דאָס זײַן קאָמבינירט מיט שטרענגע RBAC און אפֿגעזונדערטע באַקאַפּ-נעצווערק.

ניצנדיק ZFS סנאַפּשאָץ:
ZFS גיט אַ פֿיל שטאַרקערע פֿאַרטיידיקונג. דורך נעמען אַ סנאַפּשאָט און לייגן אַ “האָלד” אויף אים, פֿאַרמייַדט איר אַז דער סנאַפּשאָט זאָל ווערן פֿאַרניכטעט.

# Take a snapshot of the backup dataset
zfs snapshot tank/db_backups@archive_$(date +%F)

# Place a hold on the snapshot to prevent deletion
zfs hold keep_30_days tank/db_backups@archive_$(date +%F)

# Even root cannot destroy this snapshot without releasing the hold
zfs destroy tank/db_backups@archive_$(date +%F)
# Output: cannot destroy 'tank/db_backups@archive_...': dataset is busy

דאַטאַבייס-ספּעציפֿישע אַרכיווירן-סטראַטעגיעס

כּדי צו דערגרייכן “פּוינט-אין-טײַם ריקאַווערי” (PITR), מוזט איר קעסיידער אַרכיווירן טראַנזאַקציע-לאָגס צו אייער אימיוטאַבלע סטאָרידזש.

PostgreSQL WAL אַרכיווירן מיט pgBackRest

pgBackRest איז אַ העכסט פֿאַרלאָזלעכער באַקאַפּ-מכשיר פֿאַר PostgreSQL וואָס שטיצט נאַטיוו S3-קאָמפּאַטיבלע סטאָרידזש. כּדי צו באַשיצן אייערע “רייט-אַהעד לאָגס” (WAL), קאָנפֿיגורירט pgBackRest צו שיקן גלײַך צו אייער אימיוטאַבלע S3-באַקעט.

אין אייער pgbackrest.conf:

[global]
repo1-type=s3
repo1-s3-bucket=prod-db-archive-immutable
repo1-s3-region=us-east-1
repo1-s3-endpoint=s3.amazonaws.com
repo1-s3-key=AKIAIOSFODNN7EXAMPLE
repo1-s3-key-secret=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY

# Ensure retention aligns with your S3 Object Lock configuration
repo1-retention-full=2
repo1-retention-archive=2

[prod_cluster]
pg1-path=/var/lib/postgresql/14/main

וויכטיקע באַטראַכטונג: אויב אייער S3-באַקעט דורכפֿירט אַ 30-טאָגיקן קאָמפּליאַנסע-שלאָס, אָבער pgBackRest פּרוּווט אויסצולויפֿן און מעקן WAL-טעקעס נאָך 14 טעג באַזירט אויף repo1-retention-archive, וועלן די מעקן-API-רופֿן דורכפֿאַלן. איר מוזט פֿאַרזיכערן אַז די ריטענשאַן-פּאָליסי פֿון אייער באַקאַפּ-סאָפֿטוועיר איז גרעסער אָדער גלײַך צו דעם סטאָרידזש-מדרגה אימיוטאַבלע שלאָס.

Microsoft SQL Server: באַקאַפּ צו URL

SQL Server שטיצט נאַטיווע באַקאַפּס גלײַך צו S3-קאָמפּאַטיבלע אָביעקט-סטאָרידזש. איר קענט קאָנפֿיגורירן אַ SQL Server Agent דזשאָב צו שרײַבן .bak און .trn טעקעס גלײַך צו אַן אימיוטאַבלע באַקעט.

CREATE CREDENTIAL [s3://prod-db-archive-immutable.s3.us-east-1.amazonaws.com]
WITH IDENTITY = 'S3 Access Key',
SECRET = 'AccessKeyID:SecretAccessKey';
GO

BACKUP DATABASE [ProductionDB]
TO URL = 's3://prod-db-archive-immutable.s3.us-east-1.amazonaws.com/ProductionDB_Full.bak'
WITH FORMAT, COMPRESSION, STATS = 10;
GO

אָטאָמאַטיזירן און אָרקעסטרירן מיט CloudSave

פֿאַרוואַלטן אימיוטאַבלע ריטענשאַן-פֿלאַגס, ראָטירן אַקסעס-קייען, און פֿאַרזיכערן סינכראָניזאַציע צווישן דאַטאַבייס-ריטענשאַן-פּאָליסיס און סטאָרידזש-שלאָסן דורך קאַסטאָם סקריפּטן איז העכסט פֿעלער-אַנפֿאַלן. אַ איין מיסקאָנפֿיגוראַציע אין אַ קראָן-דזשאָב אָדער API-רוף קען לאָזן אייערע אַרכיוון אויסגעשטעלט אָדער פֿירן צו הימלישע סטאָרידזש-קאָסטן צוליב פֿאַרלאָזטע, פֿאַרשלאָסענע אָביעקטן.

ענטערפּרייז באַקאַפּ-פּלאַטפֿאָרמעס ווי CloudSave פֿאַרפּוצן די אַרכיטעקטור. CloudSave אינטעגרירט נאַטיוו מיט AWS S3 Object Lock, Azure Blob Immutable Storage, און אָן-פּרעמיסעס S3-קאָמפּאַטיבלע APIs.

ווען מען קאָנפֿיגורירט אַ דאַטאַבייס-באַקאַפּ-פּלאַן אין CloudSave:
1. די פּלאַטפֿאָרמע האַנדלט אויטאָמאַטיש די VSS (Volume Shadow Copy Service) קווייעסענס פֿאַר SQL Server אָדער דעם pg_start_backup() API פֿאַר PostgreSQL.
2. עס שטראָמט די דעדופּליקירטע, ענקריפּטירטע באַקאַפּ-דאַטן גלײַך צו דעם סטאָרידזש-ציל.
3. CloudSave אַפּליייִרט דינאַמיש די WORM API-רופֿן (למשל, PutObjectRetention) אויף אַ פּער-אָביעקט באַזע, פּערפֿעקט אַלײַנינג דעם סטאָרידזש-שלאָס-דויער מיט דעם פּאָליסי-דעפֿינירטן ריטענשאַן-פּלאַן.
4. אויב אַן אַטאַקירער קאָמפּראָמיטירט די CloudSave פֿאַרוואַלטונג-קאָנסאָל, קענען זיי נאָך נישט מעקן די באַקאַפּס, ווײַל דער קאָמפּליאַנסע-שלאָס ווערט דורכגעפֿירט דורך דער אונטערליגנדיקער סטאָרידזש-אינפראַסטרוקטור, נישט דורך דעם באַקאַפּ-סאָפֿטוועיר.

בעסטע פּראַקטיקעס פֿאַר אימיוטאַבלע דאַטאַבייס-אַרכיוון

כּדי צו פֿאַרזיכערן אַז אייער אימיוטאַבלע אַרכיטעקטור איז טאַקע ווידערשטאַנדפֿיק, האַלט זיך צו די פֿאָלגנדיקע סיסטעמען-אינזשעניריע בעסטע פּראַקטיקעס:

1. שטרענגע NTP-סינכראָניזאַציע

אימיוטאַבלע שלאָסן זענען מאַטעמאַטיש געבונדן צו צייטשטעמפּלען. אויב דער NTP (Network Time Protocol) סערוויס אויף אייער סטאָרידזש-עריי אָדער באַקאַפּ-סערווער ווערט קאָמפּראָמיטירט אָדער דריפֿט, קען דאָס פֿאַרורזאַכן אַז שלאָסן זאָלן אויסלויפֿן צו פֿרי אָדער קיינמאָל נישט אויסלויפֿן. פֿאַרזיכערט אַז אייער סטאָרידזש-אינפראַסטרוקטור ניצט אַוטענטיקירטע, רעדונדאַנטע NTP-קוואַלן.

2. אפֿזונדערן IAM-ראָלעס און קרעדענשאַלס

די קרעדענשאַלס וואָס ווערן גענוצט צו שרײַבן צו דעם אימיוטאַבלע באַקעט מוזן נאָר האָבן s3:PutObject און s3:PutObjectRetention דערלויבענישן. זיי זאָלן קיינמאָל האָבן s3:DeleteObject אָדער s3:PutBucketObjectLockConfiguration דערלויבענישן.

בײַשפּיל פֿון אַ “לעסט-פּריווילעדזש” IAM-פּאָליסי פֿאַר אַ דאַטאַבייס-באַקאַפּ-אַגענט:

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "s3:PutObject",
                "s3:GetBucketObjectLockConfiguration"
            ],
            "Resource": [
                "arn:aws:s3:::prod-db-archive-immutable",
                "arn:aws:s3:::prod-db-archive-immutable/*"
            ]
        }
    ]
}

3. גרייסן דעם ריטענשאַן-פּעריאָד

זעצט נישט קיין קאָמפּליאַנסע-שלאָסן פֿאַר איבערמיסיק לאַנגע פּעריאָדן (למשל, 7 יאָר פֿאַר קאָמפּליאַנסע) אויף אייער הויפּט-גיך-ריקאַווערי-טיער. דאַטאַבייסן גענערירן מאַסיווע אַמאַונץ פֿון WAL/טראַנזאַקציע-לאָג-דאַטן. פֿאַרשלאָסן די דאַטן פֿאַר יאָרן וועט פֿירן צו עקספּאָנענציעלער סטאָרידזש-קאָסטן-וואַקסונג.
אַנשטאָט דעם, ניצט אַ טיערדן צוגאַנג:
* אָפּעראַציאָנעלע ריקאַווערי-טיער: 14 ביז 30 טעג פֿון אימיוטאַבלע ריטענשאַן פֿאַר פֿולע און לאָגס.
* לאַנג-טערמין אַרכיוו-טיער: כוידעשלעכע פֿולע באַקאַפּס געריקט צו Glacier/Deep Archive מיט Vault Lock פֿאַר 1-7 יאָר.

4. רעגולערע ריקאַווערי-טעסטינג אין לופֿט-געשלאָסענע VPCs

אימיוטאַביליטי גאַראַנטירט אַז די דאַטן קענען נישט מעקן ווערן, אָבער עס גאַראַנטירט נישט אַז די דאַטן זענען פֿרײַ פֿון לאָגישער קאָרופּציע. איר מוזט אָטאָמאַטיזירן די רעסטאָראַציע פֿון אייערע אימיוטאַבלע דאַטאַבייס-אַרכיוון אין אַן אפֿגעזונדערטער, לופֿט-געשלאָסענער VPC אָדער VLAN. לויפֿט DBCC CHECKDB (SQL Server) אָדער pg_amcheck (PostgreSQL) אויף די רעסטאָרירטע דאַטן כּדי צו וועריפֿיצירן סטראַקטשעראַלע אָרנטלעכקייט.

סך-הכּל

ראַנסאָמווער-פֿאַרטיידיקונג איז אַן עקסערסייז אין אַננעמען אַ “ברעטש” (דורכבראָך). ביז אַן אַלערט פֿײַערט אין אייער SIEM, האָבן טרעט-אַקטאָרן מסתּמא שוין פּרוּווט צו קאָמפּראָמיטירן אייער באַקאַפּ-אינפראַסטרוקטור. דורך אַרכיטעקטירן אייערע דאַטאַבייס-אַרכיוון ניצנדיק אימיוטאַבלע סטאָרידזש אין קאָמפּליאַנסע מאָדע, נעמט איר אַוועק פֿון אַטאַקירער זייער הויפּט-הענטל. צי איר ניצט נאַטיווע וואָלקן-APIs, ZFS-האָלדס, אָדער אַן ענטערפּרייז-אָרקעסטראַציע-פּלאַטפֿאָרמע ווי CloudSave, איז ימפּלעמענטירן WORM-סטאָרידזש מער נישט קיין אָפּציע—עס איז אַ מאַנדאַטאָרישער זייל פֿון מאָדערנער דאַטאַבייס-אַדמיניסטראַציע און דיזאַסטער-ריקאַווערי.