ProHoster > Блог > administratio > Securitas et DBMS: quod meminisse debes cum instrumenta securitatis eligens
Securitas et DBMS: quod meminisse debes cum instrumenta securitatis eligens
Nomen meum est Denis Rozhkov, ego caput progressionis programmatis in Gazinformservice comitatu, in quadrigis producti. Jatoba. Leges et ordinationes corporales quaedam requisita ad securitatem notitiarum repositionis imponunt. Nemo partes tertias ad informationem secretiorem accedere cupit, ideoque hae quaestiones magni momenti sunt ad quodlibet consilium: agnitio et authenticatio, accessus ad notitias procurans, integritatem informationum in systematis, securitatem eventus colligationem. Ideo loqui de quibusdam rebus iucundis de securitate DBMS cupio.
Articulus paratus ex oratione @DatabasesMeetup, constituto Mail.ru Cloud Solutions. Si non vis legere, spectare potes;
Articulus tres partes habebit;
Quam ut hospites.
Quid actionum computum et quomodo notare quae in parte datorum aguntur et cum eo conectuntur.
Quomodo notitias in ipso datorum praesidio et quaenam technologiae huic praesto sint.
Tres partes securitatis DBMS: nexum praesidium, actio audiendi et data tutela
Impetrandum hospites
Per applicationes interretiales vel directe vel indirecte ad database coniungere potes. Pro regula, negotiatio utentis, id est, persona quae cum DBMS operatur, indirecte cum eo correspondet.
Priusquam de nexibus custodiendis colloqueris, quaestionibus maximis respondere debes, qui quomodo mensurae securitatis structuri sint decernunt;
Estne una res usor aequivalens uni DBMS usor?
utrum accessus ad DBMS notitiae praebeatur nisi per API quam imperas, vel tabulae directe accessae;
an segmentum separatum DBMS sortiatur, qui cum ea et quomodo se- quitur;
an in collatione/procuratori et stratis intermediis adhibeantur, quae informationem mutare possunt quomodo connexio aedificatur et quis datorum utens.
Nunc videamus quid instrumenta ad nexus secure adhiberi possint;
Classis firewall database solutiones utere. Additamentum tutelae ad minimum augebit perspicuitatem eorum quae in DBMS fiunt, et ad maximam, additional notitia tutelae praebere poteris.
Tessera usus lobortis. Earum usus pendet ex quo fabricatur architectura tua. Utcumque, una password in lima applicationis configurationis interretialem, quae cum DBMS coniungitur, tutelae satis non est. Sunt plures instrumenta DBMS quae te regere sinunt utentis et tesserae adaequationis exigant.
De usuario rating munera legere potes hic, invenire etiam potes de Assessmen MS SQL Passibilitatem hic.
Ditebunt contextum sessionis cum informationibus necessariis. Si sessionis opaca est, non intellegis qui in DBMS intra eius compagem laborat, potes, intra ambitum operationis peractae, informationes addere de quis quid et quare agit. Haec notitia in computo videri potest.
Configurare SSL si separationem retis inter DBMS et finem utentes non habes, separato VLAN non est. In talibus casibus debitum est canalem inter consumptorem et ipsum DBMS tueri. Instrumenta securitatis etiam in fonte aperto praesto sunt.
Quomodo hoc afficit observantia DBMS?
Inspiciamus exemplum PostgreSQL videre quomodo SSL onus afficit CPU, timiones auget et minuit TPS, et num nimis multas opes consumet si id potes.
Loading PostgreSQL utens pgbench simplex est programma currendi probat. Unam seriem mandatorum saepe exsequitur, fortasse in sessionibus parallelis datorum, ac deinde rate transactionis mediocris computat.
Test I sine SSL et utens SSL - Connexio constituitur pro qualibet re;
scaling factor: 1
query mode: simple
number of clients: 10
number of threads: 1
number of transactions per client: 5000
number of transactions actually processed: 50000/50000
test results:
NO SSL SSL
Connexio constituitur pro omni negotio
latency mediocris
MS 171.915
MS 187.695
tps inter hospites constituendum
58.168112
53.278062
TPS extra hospites constituendum
64.084546
58.725846
cpu
24%
28%
Omnes operationes quae fiunt in uno nexu
latency mediocris
MS 6.722
MS 6.342
tps inter hospites constituendum
1587.657278
1576.792883
TPS extra hospites constituendum
1588.380574
1577.694766
cpu
17%
21%
In oneribus levibus, influxus SSL cum errore mensurae comparandus est. Si summa notitiarum translatum est permagna, res aliter se habere potest. Si unum nexum per transactionem constituimus (hoc rarum est, plerumque nexus inter utentes participatur), magnum numerum nexuum/disiunctio- rum habes, ictum paulo maius esse potest. Hoc est, periculum minui potest, tamen interest, non tam magna est, ut tutelae non utatur.
Nota quod multum interest si modos operantes compares: in eadem sessione vel in diversis laboras. Hoc intelligibile est: opes conduntur in creandis inter se connexionibus.
Causam habuimus cum Zabbix in fiducia modi coniunctus, id est, md5 non repressus, authenticas non opus erat. Tum emptorem rogavit ut md5 authenticas modum praeberet. Hoc onus grave in CPU posuit, et perficientur omissa. Modi ad optimize spectare coepimus. Una possibilium solutionum problematum est ad restrictiones retis deducendi, singulas VLANs pro DBMS fac, uncinos addas ut pateat qui connectit unde et authenticas removeat. Potes etiam optimize obitus authenticas reducere impensas cum sinit authenticas, sed generatim usus variarum methodorum authenticas efficiendi afficit ac requirit ut horum factores rationem habeant cum computandi potestas ministrantium (hardware) pro DBMS designans.
Conclusio: in pluribus solutionibus, etiam parvae nuances in authenticas, possunt multum afficere consilium et malum est cum hoc solum patebit cum in productione perficiatur.
Actio audit
Audit non solum DBMS. Auditio est de obtinendo informationes circa ea quae in diversis segmentis aguntur. Hoc vel firewall database esse potest vel ratio operativa in qua DBMS aedificatur.
In inceptum commerciale gradu DBMSs omnia bene audiendo, sed in fonte aperto - non semper. Hic est quod PostgreSQL habet:
default iniuriarum - constructum- in logging;
extensiones: pgaudit - si logging default tibi non est satis, uti potes separatis uncinis qui aliquas difficultates solvunt.
Additio ad relationem in video:
"Enuntiatio fundamentalis logingis praeberi potest per regulam rationis log_statem = omnia.
Hoc vigilantia et aliis usibus placet, sed gradum singillatim quae ad audiendum necessaria non praebet.
Non satis est omnium rerum in datorum indice peractarum habere.
Debet etiam reperire certas propositiones auditori quae sunt commodae.
Standard logging ostendit quid usor postulavit, dum pgAudit in singulis rebus factis, cum datorum quaestionem quaesivit.
Exempli causa, auditor cognoscere volet certam mensam factam esse in documentis sustentationis fenestrae.
Hoc videri potest sicut munus simplex cum auditione et gressu fundamentali, sed quid si hoc exemplo (intentionaliter confundens) praesentatus esses;
TRUNCUS: constitutionis: DO $$
COEPTO
EXSECUTO 'CREATE TABLE import' || 'ant_table (id int)';
FINIS$$;
Videtur quod tabula usurarum invenire possit notitiam aliquem codicem requirere in casibus in quibus tabulae dynamice creatae sunt.
Hoc non est ideale, ut potius sit nomen tabulae simpliciter quaerere.
Haec ubi pgAudit in promptu venit.
Idem input, hoc output in sextarium producet:
AUDIT: Sessio, 33,1, OFFICIUM, DO,,,"DO$$
COEPTO
EXSECUTO 'CREATE TABLE import' || 'ant_table (id int)';
FINIS$$;"
AUDIT: CONVENTUS, 33,2, DDL, TABULA CREATA, TABLE, public.important_table, CREATE TABLE important_table (id INT)
Non solum scandalum DO est initium, sed etiam textus plenus tabulae CREATUS cum constitutionis speciei, speciei obiectione et nomine pleno, faciliorem reddens inquisitionem.
Quando colligationem SELECT et DML enuntiationes, pgAudit configurari potest ut aperias ingressum separatum pro relatione relationis in enuntiatione.
Nulla parsing requiritur ad inveniendum omnia quae certo mensae attingunt.*) ».
Quomodo hoc afficit observantia DBMS?
Testimonia curramus cum plena audiendi facultate et vide quid ad effectum PostgreSQL eveniat. Maximam database colligationem pro omnibus parametris faciamus.
Nihil fere mutamus in file configuratione, quod maximum est in debug5 modum vertere ut notitias maximam obtineamus.
postgresql.conf
log_destination = 'stderr'
logging_collector = on
log_truncate_on_rotation = on
log_rotation_age = 1d
log_rotation_size = 10MB
log_min_messages = debug5
log_min_error_statement = debug5
log_min_duration_statement = 0
debug_print_parse = on
debug_print_rewritten = on
debug_print_plan = on
debug_pretty_print = on
log_checkpoints = on
log_connections = on
log_disconnections = on
log_duration = on
log_hostname = on
log_lock_wait = on
log_replication_commands = on
log_temp_files = 0
log_timezone = 'Europae/Moscoviae'
In a PostgreSQL DBMS cum parametris 1 CPU, 2,8 GHz, 2 GB RAM, 40 GB HDD, tres onerarias probationes iussa adhibemus;
Totalis database impletionem temporis
43,74 seconds
53,23 seconds
ram
24%
40%
cpu
72%
91%
Test 1 (nexiones 50)
Numerus transactions in X minuta
74169
32445
Transactions/sec
123
54
Mediocris Latency
MS 405
MS 925
Test 2 (CL nexus cum 150 fieri potest)
Numerus transactions in X minuta
81727
31429
Transactions/sec
136
52
Mediocris Latency
MS 550
MS 1432
De magnitudinum
DB magnitudine
2251 MB
2262 MB
Database log size
0 MB
4587 MB
Solum versus: plenum audit non est valde bonum. Notitia ex computo tanta erit quanta in ipso datorum datorum, vel etiam amplius. Moles logging quod generatur cum opus cum DBMS est commune problema in productione.
Intueamur alios parametri:
Celeritas non multum mutat: sine logging - 43,74 secundis, cum logging - 53,23 secundis.
RAM et CPU effectus patiuntur, ut tabellam computum generare debes. Hoc etiam notabile est in fructibus.
Cum numerus nexuum augetur naturaliter, effectus leviter degeneret.
In collegiis cum computo etiam difficilius est;
multum est data;
auditing opus est non solum per syslogum in SIEM, sed etiam in scriniis: si aliquid syslog accidit, fasciculus prope datorum erit in quo notitia salvatur;
ad audiendum, pluteo separato opus est ut in I/O disci non terere, cum multum spatii aggreditur;
Accidit ut informationes securitatis conductorum ubique signa GOST egent, identitatem civitatis requirunt.
Restricting accessum ad notitia
Intueamur technologias quae ad notitias tuendas et accessum in DBMSs mercatorum et fonte aperto usi sunt.
Quid vulgo uti potes;
Encryption et obfuscatio rationum et functionum (Wrapping) - hoc est, singula instrumenta et utilitates quae codicem readabile faciunt unreadable. Vera ergo nec mutari nec reparari potest. Accessus hic interdum saltem requiritur in DBMS parte - restrictiones seu licentiae logicae logicae ratio praecise in modo procedendi et functionis.
Visibilitas notitiarum per ordines limitata (RLS) est cum diversi utentes unam tabulam vident, sed in ea diversa ordinum compositio, hoc est, aliquid alicui in ordine adaequari non potest.
Emendo proponendum data (Masking) est cum utentes in una tabulae columnae vel notitias vel tantum asteriscos vident, hoc est, pro aliquibus utentibus informationes claudentur. De technologia decernit uter ostendatur quid usoris in gradu accessu suo fundatum sit.
Securitas DBA/Applicationis DBA/DBA imperium accessum est, potius de restrictione ad ipsa DBMS accessum, id est, notitiae securitatis conductorum a datorum administratoribus et applicatione administratoribus separari posse. Paucae huiusmodi technologiae in fonte aperto sunt, sed multae earum in DBMSs commercii sunt. Opus est cum multi sunt utentes accessus ad ipsos ministrantes.
Accessum ad lima restringens in gradu tabellae systematis. Potes dare iura et privilegia ad directoria accedere, ut administrator accessum habeat tantum ad data necessaria.
Amet accessus et memoria purgandi - hae technologiae raro adhibitae sunt.
Encryption end-ad-finis directe ex DBMS est encryption clientis lateris cum administratione clavem lateris ministri.
Data encryption. Exempli gratia, encryption columnaris est cum mechanismo uteris, qui encryptas datorum unam columnam facit.
Quomodo hoc afficit observantia DBMS?
Inspiciamus exemplum encryptionis columnaris in PostgreSQL. Modulus pgcrypto est, permittit tibi electos agros in forma encrypta condere. Hoc utile est, cum sola aliqua notitia utilis est. Agros encryptatos legere, cliens decryptionem clavem transmittit, servo decryptas notas reddit et clienti reddit. Sine clave, nemo quidquam cum notitia tua facere potest.
Sit scriptor test cum pgcrypto. Faciamus mensam cum encrypted notitia et notitia iusto. Infra praecepta ad tabulas creandas sunt, in prima linea mandatum utile est - ipsam extensionem cum adnotatione DBMS creandi:
CREATE EXTENSION pgcrypto;
CREATE TABLE t1 (id integer, text1 text, text2 text);
CREATE TABLE t2 (id integer, text1 bytea, text2 bytea);
INSERT INTO t1 (id, text1, text2)
VALUES (generate_series(1,10000000), generate_series(1,10000000)::text, generate_series(1,10000000)::text);
INSERT INTO t2 (id, text1, text2) VALUES (
generate_series(1,10000000),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'),
encrypt(cast(generate_series(1,10000000) AS text)::bytea, 'key'::bytea, 'bf'));
Deinde, ex unaquaque mensa specimen quoddam facere conemur et exsecutionem timings intueri.
Encryption magnum momentum in perficientur habet. Timaeo augeri potest videri, cum decryptionis operationes notitiarum encryptarum (et decryption in logica tua adhuc involuta solet) significantes opes requirunt. Hoc est, idea encryptarum omnium columnarum, quae aliquas notitias continent, minui in effectu est plena.
Autem, encryption non est glans argentea quae omnes difficultates solvit. Decryptae notae et clavis decryptionis in processu decryptae et notulae transmittendi in calculonis collocatae sunt. Ideo claves intercipi possunt ab eo qui servo datorum plenum accessum habet, ut administrator systematis.
Cum una clavis sit pro tota columna pro omnibus utentibus (etsi non omnibus, sed pro clientibus limitata copia), hoc non semper bonum et verum est. Quam ob rem encryption finem facere coeperunt, in DBMS optiones considerare inceperunt pro notitia encrypting in parte clientis et servitoris, et eadem stormata clavis fornices apparuerunt - producta separata quae procurationem key in DBMS praebent. latus.
MongoDb
Liber
-
+
-
-
Available in MongoDB Enterprise only
Mensa longe abest, sed ita se habet: in commercii fructibus, quaestiones securitatis diu solutae sunt, in fonte aperto, fere, quaedam additiones ad securitatem adhibentur, multae functiones desunt. nonnumquam aliquid addere. Exempli gratia, tesserae rationes - PostgreSQL multas extensiones varias habet (1, 2, 3, 4, 5) quae tesseram instrumentorum instrumentorum efficiunt, sed, mea sententia, nulla earum omnes necessitates segmenti corporis domestici comprehendit.
Quid facias, si non habes quod usquam opus est?? Exempli gratia, certa DBMS uti velis quae munera non habet quae emptorem exigit.
Tunc uti potes solutiones tertia-partium quae laborant cum diversis DBMSs, exempli gratia, Crypto DB vel Garda DB. Si de solutionibus ex segmento domestico loquimur, tunc melius sciunt de GOSTS quam in aperto fonte.
Secunda optio scribenda est quid tibi opus sit, notitias accessus efficiendi et encryption in applicatione in gradu procedendi. Verum cum GOST difficilius erit. Sed in genere, notitias prout opus fuerit, occultare potes, pone in DBMS, deinde recupera et minutum illud ut opus est, ius in gradu applicationis. Simul, statim cogita quomodo has applicationes algorithms tueberis. Nostro iudicio, hoc in gradu DBMS fieri debet, quia velocius faciet.