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.

Yn y dirwedd bygythiadau modern, mae meddalwedd wystlo (ransomware) wedi esblygu o amgryptio cyfleusgar i ymgyrchoedd aml-estyniad hynod dargedig. Mae Bygythiadau Parhaus Uwch (APTs) a syndicetau meddalwedd wystlo bellach yn chwilio’n weithredol am seilwaith wrth gefn ac archifau cronfa ddata yn ystod eu hamser preswylio. Os yw ymosodwr yn peryglu eich prif gronfa ddata ac ar yr un pryd yn dileu neu’n amgryptio eich storfeydd wrth gefn, mae eich sefydliad yn wynebu colled data drychinebus.

Ar gyfer Gweinyddwyr Cronfeydd Data (DBAs) a pheirianwyr DevOps, nid yw’r strategaeth wrth gefn 3-2-1 draddodiadol yn ddigonol mwyach. Er mwyn gwarantu goroesiad data, rhaid i dimau seilwaith fabwysiadu’r rheol 3-2-1-1, lle mae’r “1” olaf yn cynrychioli storio annewidiol (immutable storage).

Mae’r erthygl hon yn darparu trosolwg technegol cynhwysfawr o bensaernïo, gweithredu, a rheoli storfa annewidiol ar gyfer archifau cronfa ddata er mwyn sicrhau gwytnwch llwyr yn erbyn meddalwedd wystlo.

Mecanweithiau Storio Annewidiol

Mae storfa annewidiol yn dibynnu ar bensaernïaeth Ysgrifennu-Unwaith-Darllen-Llawer (WORM). Unwaith y caiff data ei ysgrifennu i darged annewidiol, ni ellir ei addasu, ei amgryptio, na’i ddileu gan unrhyw ddefnyddiwr—gan gynnwys gweinyddwyr sydd â breintiau gwraidd neu gyfrifon gwasanaeth sydd wedi’u peryglu—nes bod clo amser wedi’i orfodi’n fathemategol yn dod i ben.

Modd Cydymffurfio vs. Modd Llywodraethu

Wrth weithredu annewidioldeb, yn enwedig mewn storfa gwrthrychau cwmwl fel AWS S3, Azure Blob, neu SANs ar y safle sy’n gydnaws ag S3, rhaid i chi ddeall y gwahaniaeth rhwng dulliau cadw:

  • Modd Llywodraethu (Governance Mode): Yn atal defnyddwyr safonol rhag dileu neu newid gwrthrychau. Fodd bynnag, gall defnyddwyr sydd â chaniatâd IAM penodol (e.e., s3:BypassGovernanceRetention) ddiystyru’r clo. Mae hyn yn ddefnyddiol ar gyfer profi ond yn annigonol ar gyfer amddiffyniad rhag meddalwedd wystlo, gan fod ymosodwyr yn aml yn dyrchafu breintiau i weinyddwr parth neu wraidd.
  • Modd Cydymffurfio (Compliance Mode): Y safon aur ar gyfer amddiffyniad rhag meddalwedd wystlo. Unwaith y caiff gwrthrych ei gloi yn y Modd Cydymffurfio, ni ellir byrhau ei gyfnod cadw, ac ni all neb ddileu’r gwrthrych, gan gynnwys cyfrif gwraidd AWS. Gorfodir y clo ar lefel y clwstwr storio.

Pensaernïo Piblinell Wrth Gefn Annewidiol

Mae pensaernïaeth archifo cronfa ddata gadarn yn gwahanu gweithrediadau cronfa ddata gweithredol oddi wrth y haen archif annewidiol. Ni allwch gymhwyso annewidioldeb i ffeiliau cronfa ddata gweithredol (fel .mdf/.ldf yn SQL Server neu’r cyfeiriadur pg_data yn PostgreSQL) oherwydd bod cronfeydd data angen mynediad darllen/ysgrifennu cyson.

Yn lle hynny, cymhwysir annewidioldeb i:
1. Ffeiliau Wrth Gefn Llawn a Differol: Y cipluniau sylfaenol o’r gronfa ddata.
2. Logiau Trafodion / Ffeiliau WAL: Y llif parhaus o newidiadau cronfa ddata sydd eu hangen ar gyfer Adferiad Pwynt-mewn-Amser (PITR).

Targedau Storio ar gyfer Annewidioldeb

Gallwch weithredu storfa annewidiol ar draws haenau seilwaith gwahanol:
* Storfa Gwrthrychau Cwmwl: AWS S3 Object Lock, Azure Blob Immutable Storage, Google Cloud Storage Retention Policies.
* Storfa Gwrthrychau ar y Safle: MinIO, Cloudian, neu Pure Storage FlashBlade sy’n cefnogi APIs S3 Object Lock.
* Storfa Bloc/Ffeil: ZFS gyda chipluniau darllen-yn-unig a gweinyddiaeth ddirprwyedig, neu briodweddau ffeil Linux.

Gweithredu Storfa Annewidiol: Camau Technegol

1. Storfa Gwrthrychau Cwmwl: AWS S3 Object Lock

I amddiffyn dympiadau cronfa ddata a logiau trafodion yn AWS, rhaid i chi alluogi Object Lock ar adeg creu’r bwced.

Yn gyntaf, crëwch y bwced gyda Object Lock wedi’i alluogi:

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

Nesaf, ffurfweddwch y polisi cadw diofyn. Ar gyfer archifau cronfa ddata, mae clo cydymffurfio o 30 diwrnod yn sylfaen safonol, gan sicrhau bod gennych fis o backups na ellir eu newid.

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

Pan fydd eich sgript neu asiant wrth gefn cronfa ddata yn gwthio ffeil i’r bwced hwn, mae S3 yn cyfrifo’r Retain Until Date yn awtomatig yn seiliedig ar stamp amser creu’r gwrthrych ynghyd â 30 diwrnod.

2. Annewidioldeb ar y Safle: ZFS a Priodweddau Linux

Os ydych chi’n archifo cronfeydd data i weinydd wrth gefn Linux ar y safle, gallwch gyflawni annewidioldeb ffug gan ddefnyddio’r gorchymyn chattr, neu annewidioldeb gwirioneddol gan ddefnyddio chipluniau ZFS.

Defnyddio Linux chattr:
Mae’r faner +i (annewidiol) yn atal addasu, dileu, neu ailenwi ffeiliau.

# Dympio'r gronfa ddata
pg_dump -U postgres -Fc mydb > /backups/mydb_$(date +%F).dump

# Gwneud y backup yn annewidiol
sudo chattr +i /backups/mydb_$(date +%F).dump

# Gwirio'r briodwedd
lsattr /backups/mydb_$(date +%F).dump
# Allbwn: ----i---------e------- /backups/mydb_2023-10-27.dump

Nodyn: Er bod chattr yn atal sgriptiau meddalwedd wystlo sylfaenol, gall ymosodwr soffistigedig sydd â mynediad gwraidd redeg chattr -i yn syml. Felly, rhaid cyfuno hyn ag RBAC llym a rhwydweithiau wrth gefn ynysig.

Defnyddio Chipluniau ZFS:
Mae ZFS yn darparu amddiffyniad llawer cryfach. Trwy gymryd chiplun a gosod “dal” arno, rydych chi’n atal y chiplun rhag cael ei ddinistrio.

# Cymryd chiplun o'r set ddata wrth gefn
zfs snapshot tank/db_backups@archive_$(date +%F)

# Gosod dal ar y chiplun i atal dileu
zfs hold keep_30_days tank/db_backups@archive_$(date +%F)

# Ni all hyd yn oed y gwraidd ddinistrio'r chiplun hwn heb ryddhau'r dal
zfs destroy tank/db_backups@archive_$(date +%F)
# Allbwn: cannot destroy 'tank/db_backups@archive_...': dataset is busy

Strategaethau Archifo Penodol i Gronfeydd Data

Er mwyn cyflawni Adferiad Pwynt-mewn-Amser (PITR), rhaid i chi archifo logiau trafodion yn barhaus i’ch storfa annewidiol.

Archifo WAL PostgreSQL gyda pgBackRest

Mae pgBackRest yn offeryn wrth gefn hynod ddibynadwy ar gyfer PostgreSQL sy’n cefnogi storfa gydnaws ag S3 yn frodorol. I amddiffyn eich Logiau Ysgrifennu-Ymlaen (WAL), ffurfweddwch pgBackRest i wthio’n uniongyrchol i’ch bwced S3 annewidiol.

Yn eich 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

# Sicrhau bod y cadw yn cyd-fynd â'ch ffurfweddiad S3 Object Lock
repo1-retention-full=2
repo1-retention-archive=2

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

Ystyriaeth Hanfodol: Os yw’ch bwced S3 yn gorfodi clo Cydymffurfio o 30 diwrnod, ond bod pgBackRest yn ceisio dod i ben a dileu ffeiliau WAL ar ôl 14 diwrnod yn seiliedig ar repo1-retention-archive, bydd y galwadau API dileu yn methu. Rhaid i chi sicrhau bod polisi cadw eich meddalwedd wrth gefn yn fwy na neu’n hafal i’r clo annewidiol ar lefel storio.

Microsoft SQL Server: Wrth Gefn i URL

Mae SQL Server yn cefnogi backups brodorol yn uniongyrchol i storfa gwrthrychau gydnaws ag S3. Gallwch ffurfweddu swydd SQL Server Agent i ysgrifennu ffeiliau .bak a .trn yn uniongyrchol i fwced annewidiol.

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

Awtomeiddio a Threfnu gyda CloudSave

Mae rheoli baneri cadw annewidiol, cylchdroi allweddi mynediad, a sicrhau cydamseriad rhwng polisïau cadw cronfa ddata a chloeon storio trwy sgriptiau personol yn dueddol iawn o gael gwallau. Gall un camgymeriad mewn swydd cron neu alwad API adael eich archifau yn agored neu arwain at gostau storio cwmwl yn codi’n gyflym oherwydd gwrthrychau wedi’u cloi sydd wedi’u gadael ar ôl.

Mae llwyfannau wrth gefn menter fel CloudSave yn symleiddio’r bensaernïaeth hon. Mae CloudSave yn integreiddio’n frodorol ag AWS S3 Object Lock, Azure Blob Immutable Storage, ac APIs gydnaws ag S3 ar y safle.

Wrth ffurfweddu cynllun wrth gefn cronfa ddata yn CloudSave:
1. Mae’r llwyfan yn trin y tawelwch VSS (Volume Shadow Copy Service) ar gyfer SQL Server neu’r API pg_start_backup() ar gyfer PostgreSQL yn awtomatig.
2. Mae’n ffrydio’r data wrth gefn wedi’i ddad-ddyblygu a’i amgryptio yn uniongyrchol i’r targed storio.
3. Mae CloudSave yn cymhwyso’r galwadau API WORM (e.e., PutObjectRetention) yn ddeinamig ar sail pob gwrthrych, gan alinio hyd y clo storio yn berffaith â’r amserlen gadw a ddiffiniwyd gan y polisi.
4. Os yw ymosodwr yn peryglu consol rheoli CloudSave, ni allant o hyd ddileu’r backups, gan fod y clo cydymffurfio yn cael ei orfodi gan y seilwaith storio sylfaenol, nid y meddalwedd wrth gefn.

Arferion Gorau ar gyfer Archifau Cronfa Ddata Annewidiol

Er mwyn sicrhau bod eich pensaernïaeth annewidiol yn wirioneddol wydn, cadwch at yr arferion gorau peirianneg systemau canlynol:

1. Cydamseriad NTP Llym

Mae cloeon annewidiol wedi’u rhwymo’n fathemategol i stampiau amser. Os yw’r gwasanaeth NTP (Protocol Amser Rhwydwaith) ar eich arae storio neu weinydd wrth gefn wedi’i beryglu neu’n drifftio, gall achosi i gloeon ddod i ben yn gynamserol neu beidio byth â dod i ben o gwbl. Sicrhewch fod eich seilwaith storio yn defnyddio ffynonellau NTP dilys a diswyddo.

2. Ynysu Rolau a Chredlythyrau IAM

Rhaid i’r credlythyrau a ddefnyddir i ysgrifennu i’r bwced annewidiol gael caniatâd s3:PutObject a s3:PutObjectRetention yn unig. Ni ddylent byth gael caniatâd s3:DeleteObject neu s3:PutBucketObjectLockConfiguration.

Enghraifft o bolisi IAM lleiaf-fraint ar gyfer asiant wrth gefn cronfa ddata:

{
    "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. Maint y Cyfnod Cadw

Peidiwch â gosod cloeon cydymffurfio am gyfnodau hir iawn (e.e., 7 mlynedd ar gyfer cydymffurfio) ar eich haen adfer cyflym sylfaenol. Mae cronfeydd data yn cynhyrchu symiau enfawr o ddata WAL/trafodion. Bydd cloi’r data hwn am flynyddoedd yn arwain at dwf cost storio esbonyddol.
Yn lle hynny, defnyddiwch ddull haenog:
* Haen Adfer Gweithredol: 14 i 30 diwrnod o gadw annewidiol ar gyfer Llawn a Logiau.
* Haen Archifo Hirdymor: Backups llawn misol wedi’u symud i Glacier/Deep Archive gyda Vault Lock am 1-7 mlynedd.

4. Profi Adferiad Rheolaidd mewn VPCs wedi’u Ynysu (Air-Gapped)

Mae annewidioldeb yn gwarantu na ellir dileu’r data, ond nid yw’n gwarantu bod y data yn rhydd o lygredd rhesymegol. Rhaid i chi awtomeiddio adferiad eich archifau cronfa ddata annewidiol i mewn i VPC neu VLAN ynysig, wedi’i ddatgysylltu (air-gapped). Rhedwch DBCC CHECKDB (SQL Server) neu pg_amcheck (PostgreSQL) ar y data a adferwyd i wirio cyfanrwydd strwythurol.

Casgliad

Mae amddiffyniad rhag meddalwedd wystlo yn ymarfer o ragdybio toriad. Erbyn yr amser y mae rhybudd yn tanio yn eich SIEM, mae’n debygol bod actorion bygythiad eisoes wedi ceisio peryglu eich seilwaith wrth gefn. Trwy bensaernïo eich archifau cronfa ddata gan ddefnyddio storfa annewidiol yn y Modd Cydymffurfio, rydych chi’n tynnu’r ymosodwyr o’u prif bŵer. P’un a ydych chi’n defnyddio APIs cwmwl brodorol, daliadau ZFS, neu lwyfan trefnu menter fel CloudSave, nid yw gweithredu storfa WORM yn ddewisol mwyach—mae’n biler gorfodol o weinyddiaeth cronfa ddata fodern ac adferiad ar ôl trychineb.