290 likes | 379 Views
Kovács Tibor Krisztián. Oracle adatbázis biztonságának fenntartása. Tartalom. Az útmutatókról Útmutatók A felhasználói fiókok és jogosultságaik biztonságossá tételéről Szerepkörök biztonságossá tételéről Jelszavak biztonságossá tételéről Adatok biztonságossá tételéről
E N D
Kovács Tibor Krisztián Oracle adatbázis biztonságának fenntartása
Tartalom • Az útmutatókról • Útmutatók • A felhasználói fiókok és jogosultságaik biztonságossá tételéről • Szerepkörök biztonságossá tételéről • Jelszavak biztonságossá tételéről • Adatok biztonságossá tételéről • Adatbázis konfigurációk biztonságossá tételéről • Hálózat biztonságossá tételéről • Auditáláshoz • Végül a CONNECT szerepkör módosulásáról
Az útmutatókról • Az adatbázis biztonságának fenntartásához készültek az itt leírt útmutatók. • A vállalkozások számára nagyon fontos az információk védelme. Az Oracle DB széleskörűen lefedi az információk biztonsága iránti szükségleteket, olyan élvonalbeli megoldásokkal, mint a mély adatvédelem, auditálás, skálázható védelem, valamint a host és az adatcsere biztosítása.
Az útmutatókról • Az Oracle DB bármely vállalkozási környezet számára felkínált biztonsági szolgáltatások maximalizálásához elkerülhetetlen, hogy az adatbázis maga jól védett legyen. • Ezek az útmutatók tanácsot adnak az Oracle DB konfigurálásához ipari szabványok megkövetelésével és ajánlott biztonsági gyakorlatokkal. • Az itt leírt útmutatók általános szabályozó követelmények megvalósítását mutatják be.
Az útmutatókról • Mindig frissítsük a futtató op rendszert és az adatbázist a legfrissebb javításokkal. • http://www.oracle.com/technology/deploy/security/alerts.htm • http://metalink.oracle.com • Használjuk a My Oracle Support-otvagy írjunk a secalert_us@oracle.come-mail címre biztonsági hibák felfedezése esetén.
Útmutató a felhasználói fiókok és jogaik biztonságossá tételéhez • Az legkevesebb jogosultság elvének gyakorlása • Csak a feltétlen szükséges jogosultságokat biztosítsuk a felhasználóknak. • A CREATE és DROP ANY EDITION jogosultság limitált biztosítása • CREATE ANY JOB, BECOME USER, EXP_FULL_DATABASE, IMP_FULL_DATABASE jogosultság korlátozása • Ne engedjük a nem adminisztratív felhasználók számára a SYS séma objektumainak elérését
Útmutató a felhasználói fiókok és jogok biztonságossá tételéhez • A felesleges jogosultságokat vonjuk meg a PUBLIC felhasználói csoporttól. • Az EXECUTE jogosultságot csak megbízható felhasználók számára biztosítsuk a DBMS_RANDOM PL/SQL csomagon • Korlátozzuk a futási idejű eszközök eléréséhez szükséges jogosultságokat • Zároljuk az alapbeállítású felhasználói fiókokat • Az adatbázisba csatlakozó felhasználókról a következő nézettáblákból szerezhetünk információt:
Útmutató a felhasználói fiókok és jogok biztonságossá tételéhez • DBA_*, DBA_ROLES, DBA_SYS_PRIVS, DBA_ROLE_PRIVS, DBA_TAB_PRIVS, DBA_AUDIT_TRAIL, DBA_FGA_AUDIT_TRAIL • Figyeljük a következő jogosultságok engedélyezettségét • Oracle DB alapból auditált jogosultságai: • ALTER SYSTEM, AUDIT SYSTEM, CREATE EXTERNAL JOB • Ajánlott az alant leírt további jogosultságok vizsgálatais: • ALL PRIVILAGES, BECOME USER, CREATE LIBRARY, CREATE PROCEDURE, DBMS_BACKUP_RESTORE csomag, EXECUTE a DBMS_SYS_SQL-re, SELECT ANY TABLE
Útmutató a felhasználói fiókok és jogok biztonságossá tételéhez • SELECT a PREFSTAT.STATS$SQLTEXT, PREFSTAT.STATS$SQL_SUMMARY, SYS.USER$, SYS.SOURCES$ táblákon • Jogok amik rendelkeznek a WITH ADMIN, WITH GRANT záradékkal, vagy a CREATE kulcsutasítással • Vonjuk meg a hozzáférést a • SYS.USER_HISTORY$ táblához (kivéve SYS és DBA fiókoknak) • A RESOURCE és CONNECT szerepköröket a tipikus alkalmazás fiókoktól • DBA szerepkört azoktól akiknek nincs rá szüksége
Útmutató a felhasználói fiókok és jogok biztonságossá tételéhez • Jogosultságokat csak szerepköröknek biztosítsunk az egyszerűbb kezelés miatt. • Szűkítsük a proxi felhasználók jogosultságait CREATE SESSION-re. • Használjuk a secureapplicationroles-t az alkalmazások kódja által engedélyezett szerepkörök védelmére. • A NOLOGGING záradék használatát az SQL utasításokba ne engedélyezzük.
Útmutató a szerepkörök biztonságossá tételéhez • Egy szerepkört csak akkor biztosítsunk a felhasználóknak ha a szerepkör minden jogosultságára szüksége van. • Felhasználói jogosultságokat ne biztosítsunk fejlesztőknek. • Minden Oracle DB telepítéshez specifikusan hozzunk létre szerepköröket. • A nagy üzleti felhasználók számára hozzunk létre globális szerepköröket.
Útmutató a jelszavak biztonságossá tételéhez • Figyelmesen válasszunk jelszót • 8-30 karakter között • Minimum egy nagybetűvel és egy számmal • Vegyesen nagybetűt és kisbetűt és speciális jeleket • Stb… • Csináljunk mondatokból rövidítéssel, vagy több egyszerű rövidből összetétellel jelszavakat. • Tegyünk róla komplexitás vizsgálattal, hogy a jelszavak kellően összetettek legyenek.
Útmutató a jelszavak biztonságossá tételéhez • Változtassuk meg az alapbeállítású felhasználók alapértelmezett jelszavait. • Az adminisztratív felhasználóknak (SYS, SYSTEM, SYSMAN, DBSNMP) adjunk meg erős és különböző jelszavakat. • Engedélyezzünk alapvető jelszókezelési szabályokat. • Ne tároljuk olvashatóan a felhasználók jelszavait, azaz kódoljuk az azokat tároló oszlopokat.
Útmutató az adatok biztonságossá tételéhez • Védjük az adatszótárt • Az ANY rendszerjoggal rendelkező felhasználóktól az initsid.ora fájlban a 07_DICTIONARY_ACCESSIBILITY init paraméter hamisra állításával • Korlátozzuk az operációs rendszer elérési engedélyét. • A DB host gépén kevés felhasználó legyen, kevés jogosultsággal. • Az Oracle DB telepítési könyvtárát, vagy a DB által használt könyvtárakat senki ne tudja módosítani.
Útmutató az adatok biztonságossá tételéhez • Kódoljuk az érzékeny adatbázis adatokat és a backup fájlokat, melyek ilyen adatokat tartalmaznak.
Útmutató a biztonságos DB telepítéshez • Csak azt telepítsük ami szükséges • Használjuk az egyéni telepítést, hogy ne kelljen karbantartani a nem használt plusz eszközöket. • Ne telepítsük a mintapéldákat, vagy töröljük, esetleg zároljuk azokat éles környezetben. • Telepítés alatt mikor jelszót kell megadni, biztonságos jelszót válasszunk. • Telepítés után azonnal zároljuk az alapbeállításban létrehozott felhasználókat.
Útmutató a hálózat biztonságossá tételéhez • Tegyük biztonságossá a felhasználói bejelentkezést • A felhasználót szigorúan autentikáljuk, azaz ne bízzunk a távoli osautentikációjában. • A bejelentkezés történjen kódoltan. • Tegyük biztonságossá a hálózati kapcsolatot • Használjunk SSL-t • Az Enterprise Manager DatabaseControl segítségével nyomon követhetjük az figyelőben létrejött biztonsági riasztásokat.
Útmutató a hálózat biztonságossá tételéhez • Előzzük meg az online adminisztráció lehetőségét a figyelő jelszavának és a listener.ora fájl írási jogának megvonásával a szerveren. • Ha a figyelő jelszavát nem állítjuk be a listener.ora fájlban, akkor távoli figyelő adminisztrációra nem lesz lehetőség, és elkerülhető a bruteforce betörési lehetőség. • Több IP-vel rendelkező hostgépen a figyelőnek csak egy IP címen való kliensfogadási lehetőséget engedélyezzünk.
Útmutató a hálózat biztonságossá tételéhez • Korlátozzuk a figyelő jogait, hogy ne írhasson vagy olvashasson az adatbázisból, vagy az Oracle szerver címtárából. • Használjunk tűzfalat • Előzzünk meg engedély nélkül végzett adminisztrációkat a figyelőn. • Ellenőrizzük az IP címeket, amiben az Oracle Net eszköz segíthet. • Kódoljuk a hálózaton áthaladó adatokat. • Tegyük biztonságossá a hostoló operációs rendszert az összes szükségtelen szolgáltatás leállításával. (FTP, TFTP, TELNET, stb.)
Útmutató a hálózat biztonságossá tételéhez • Az SSL beállítása. (Az internet szabványos protokollja a biztonságos kommunikációhoz.) • Bizonyosodjunk meg róla hogy a konfigurációs fájlok a megfelelő SSL portot tartalmazzák. • Alapból a 443, de az URL-ben átdefiniálható. • A tnsnames.ora fájlban ellenőrizzük, hogy az ADRESS paraméterben TCPS van feltüntetve PROTOCOL-ként. • Biztosítsuk, hogy a kapcsolat mindkét oldala ugyanazon SSL módot használja.
Útmutató a hálózat biztonságossá tételéhez • Biztosítsuk, hogy a szerver támogassa a használatos kliens cipher, valamint az azonosító kulcsot kódoló algoritmusokat. • Engedélyezzük a DN összehasonlítást mindkét oldalon, a „személy”azonosság meghamísításának elkerülése miatt. • Az RSA privát kulcsunkat kódolt formában tároljuk a server.key fájlban
Útmutató az auditáláshoz • Érzékeny információk auditálása • Az érzékeny adatok (pl. bankkártya szám) feltűnhetnek a finomszemcsézett audit trailben az SQL utasítások szövegein belül. • Az auditálást a AUDIT_TRAIL inicializáló paraméterrel állíthatjuk be, ahol az EXTENDED beállítás esetén engedélyezett az SQL szövegek gyűjtése. • Helyezzük át az audit trailt a SYSTEM táblaterületről a SYSAUX vagy más táblaterületre. • Vagy tiltsuk le az SQL szövegek mentését az audit trailbe.
Útmutató az auditáláshoz • Tartsuk az auditálási információkat kezelhető mértékben. Habár nem igényel sok erőforrást, de limitáljuk az auditált események számát és az audit trail méretét. • Mérlegeljük az auditálási okokat. Gondoljuk ki a megfelelő stratégiát. • Auditáljunk minél céltudatosabban, csak a minimális mennyiségű utasítás, felhasználó vagy objektum vizsgálatával. • A választott auditálási stratégia megvalósítása előtt konzultáljunk a jogi osztállyal is az apróbb kellemetlenségek elkerülése végett .
Útmutató az auditáláshoz • Mindennapi DB aktivitás auditálása • Csak lényeges eseményeket auditáljunk • Minimum a felhasználói bejelentkezéseket, rendszerjogosultságok használatát, és az adatbázis séma változását, ezzel elkerülhető az audit trailben tárolt rekordok zűrzavara. • Archiváljuk és tisztítsuk az audit trailt • Vegyük figyelembe a cégünk titoktartási szempontjait. • Az Oracle DB log fájljaiban is találhatunk további auditálásnál felhasználható információkat.
Útmutató az auditáláshoz • Gyanús tevékenységek auditálása • Először általánosságban auditáljunk, majd célratörően • Auditáljunk általánosan gyanús tevékenységeket • Ritka órákban belépő felhasználókat • Többszöri sikertelen belépési kísérletet • Nem létező felhasználó belépési kísérletét • Figyeljük a fiókjukat megosztó felhasználókat, vagy egy IP-ről belépő több felhasználót. • Védjük az audit trailt, hogy ne lehessen hozzáadni, törölni vagy módosítani benne semmit.
Útmutató az auditáláshoz • Ajánlott auditálási beállítások adatbázis séma vagy struktúra változásokhoz • AUDIT ALTER ANY PROCEDURE BY ACCESS; • AUDIT ALTER ANY TABLE BY ACCESS; • AUDIT ALTER DATABASE BY ACCESS; • AUDIT ALTER SYSTEM BY ACCESS; • AUDIT CREATE ANY JOB BY ACCESS; • AUDIT CREATE ANY LIBRARY BY ACCESS; • AUDIT CREATE ANY PROCEDURE BY ACCESS; • AUDIT CREATE ANY TABLE BY ACCESS; • AUDIT CREATE EXTERNAL JOB BY ACCESS; • AUDIT DROP ANY PROCEDURE BY ACCESS; • AUDIT DROP ANY TABLE BY ACCESS;
Útmutató az auditáláshoz • Ajánlott auditálási beállítások az adatbázis elérésekhez és jogosultságokhoz • AUDIT ALTER PROFILE BY ACCESS; • AUDIT ALTER USER BY ACCESS; • AUDIT AUDIT SYSTEM BY ACCESS; • AUDIT CREATE PUBLIC DATABASE LINK BY ACCESS; • AUDIT CREATE SESSION BY ACCESS; • AUDIT CREATE USER BY ACCESS; • AUDIT DROP PROFILE BY ACCESS; • AUDIT DROP USER BY ACCESS; • AUDIT EXEMPT ACCESS POLICY BY ACCESS; • AUDIT GRANT ANY OBJECT PRIVILEGE BY ACCESS; • AUDIT GRANT ANY PRIVILEGE BY ACCESS; • AUDIT GRANT ANY ROLE BY ACCESS; • AUDIT ROLE BY ACCESS;
A CONNECT szerepkör módosulása • A CONNECT szerepkör még a 7. verzióban jött be, és a példakódok, alkalmazások, dokumentációk és a technikai írások is használták. • A 10.2.-es verziótól kezdődően viszont ez a szerepkör jelentősen megváltozott. • Eredetileg a következő jogosultságokat tartalmazta: • ALTER SESSION, CREATE SESSION, CREATE CLUSTER, CREATE SYNONYM, CREATE DATABASE LINK, CREATE TABLE, CREATE SEQUENCE, CREATE VIEW • Az új verzióban viszont már csak a CREATE SESSION jogot tartalmazza.
VÉGE Köszönöm a figyelmet!