MongoDB
 sql >> база данни >  >> NoSQL >> MongoDB

Регистриране на одит за MongoDB

Един от аспектите на сигурността при управлението на база данни е да се разбере кой е осъществил достъп до базата данни, кога и какво е правил. Въпреки че вече сме осигурили услугата MongoDB,  все още искаме да знаем кой какво прави и да открием дали има нещо странно. При разследване на нарушаване на данните регистрационният файл за одит ни позволява да анализираме историческа дейност, да разберем от коя крайна точка е дошъл нападателят и какви операции е извършил, след като е бил в базата данни.

В този блог ще прегледаме регистрирането на одит за MongoDB и внедряването.

Активиране на регистриране на одит в MongoDB

За да активираме регистрирането на одит в MongoDB, трябва да отидем до конфигурационния файл mongod.conf, раздел auditLog:

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongodb/audit_mongodb.bson

Има 3 типа дестинации на регистрационни файлове, които са:файл, системен журнал и конзола. В идеалния случай можем да изпратим регистрационния файл за одит във файл в поддържан формат JSON или BSON. Можем също да активираме дневника за одит по време на стартиране на услугата MongoDB, както е показано по-долу:

mongod --dbpath /var/lib/mongodb --auditDestination file --auditFormat BSON --auditPath /var/lib/mongodb/audit_mongodb.bson

Филтър за одит в MongoDB

В секцията auditLog все още има параметър, наречен филтър. Можем да филтрираме модела на действие, който искаме да регистрираме. Например, ако искаме да регистрираме удостоверяване в конкретна база данни, можем да използваме командата по-долу:

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongodb/audit_mongodb.bson
   filter: '{ atype: "authenticate", "param.db": "user_profile" }'

Той ще проследява всяко удостоверяване към базата данни user_profile. Друг пример:искаме да проследим действията; пуснете индекс, преименувайте колекцията и пуснете колекцията в база данни user_profile. Командата ще бъде:

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongodb/audit_mongodb.bson
   filter: { atype: { $in: [ "dropIndex", "renameCollection", "dropCollection" ] }, "param.ns": /^user_profile\\./ } }

Можем също така да наблюдаваме процеса на одит за конкретни роли, ще трябва да дефинираме ролите и базата данни във филтъра:

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongodb/audit_mongodb.bson
   filter: { roles: { role: "readWrite", db: "user_profile" } }

Той ще регистрира всяко действие, свързано с потребителя, който има роли readWrite в базата данни user_profile.

За регистриране на одит на операции за запис и четене първо трябва да активираме auditAuthorizationSuccess в MongoDB. Можем да изпълним командата по-долу:

db.adminCommand( { setParameter: 1, auditAuthorizationSuccess: true } )

Или друга опция е да промените следното в mongod.conf, както следва:

auditLog:
   destination: file
   format: BSON
   path: /var/lib/mongodb/audit_mongodb.bson
   filter: { roles: { role: "readWrite", db: "user_profile" } }
setParameter: { auditAuthorizationSuccess: true }

Percona Server за MongoDB предоставя функциите за регистриране на одита безплатно, докато в MongoDB той е достъпен само в Enterprise Edition. Моля, имайте предвид, че активирането на параметъра ще повлияе на производителността на базата данни на вашия MongoDB, особено в производствената среда.

Какво следва?

Можем да изпратим дневника за одит на MongoDB до система за управление на регистриране, например:стек ELK (Elasticsearch, Logstash и Kibana) или можем да използваме системата за управление на регистрационни файлове от доставчика за целите на анализа.

Най-простият начин е да използвате помощната програма jq tools в средата на Linux, за да прочетете регистрационния файл във формат JSON или BSON.


  1. Redis
  2.   
  3. MongoDB
  4.   
  5. Memcached
  6.   
  7. HBase
  8.   
  9. CouchDB
  1. Запитване на масив от масиви в MongoDB

  2. Пролетни данни MongoDb:MappingMongoConverter премахва _class

  3. 10 въпроса, които да зададете (и да отговорите), когато хоствате MongoDB на AWS

  4. Актуализирайте елемент в масив, който е в масив

  5. Какъв е правилният начин за индексиране в MongoDB, когато съществува голяма комбинация от полета