FortiSIEM Discussions
RebecaGoncalves
New Contributor

JDBC events are not received from MSSQL DB.

Por favor si pueden ayudarme en este caso.

 

Fortisiem no recopila eventos que ocurren dentro del administrador de base de datos, sino eventos relacionados con Windows. 

Configuramos todo del lado de SQL Server: creamos el usuario, las tablas, los triggers, las audorias. Y podemos visualizar los eventos relacionados con la auditoría desde el gestor de base de datos pero no desde Fortisiem. ¿Qué podría faltar?

 

Anexo parte de la configuración: 

 

1. Configuración de la auditoría de inicio de sesión mediante SQL Server Management Studio:

 Habilitar el seguimiento de auditoría C2.

g1.png

2. Creación de la base de datos PH_Events y las tablas dbo.DDLEvents y dbo.LogonEvents con los siguientes Scripts:

CREAR TABLA PH_Events.dbo.DDLEvents

(

    Evento XML XML,

    Nombre de la base de datos VARCHAR(MAX),

    EventTime FECHA Y HORA PREDETERMINADA (GETDATE()),

    Tipo de evento VARCHAR(MAX),

    SPID VARCHAR(MÁXIMO),

    Nombre del servidor VARCHAR(MAX),

    Nombre de inicio de sesión VARCHAR(MAX),

    NombreObjeto VARCHAR(MAX),

    Tipo de objeto VARCHAR(MAX),

    Nombre del esquema VARCHAR(MAX),

    Texto de comando NVARCHAR(MAX)

)

 

IR

CREAR TABLA PH_Events.dbo.LogonEvents

(

    Evento XML XML,

    Fecha y hora del evento,

    Tipo de evento VARCHAR(MAX),

    SPID VARCHAR(MÁXIMO),

    Nombre del servidor VARCHAR(MAX),

    Nombre de inicio de sesión VARCHAR(MAX),

    Tipo de inicio de sesión VARCHAR(MAX),

    SID VARCHAR(MÁXIMO),

    Nombre de host VARCHAR(MAX),

    Se agrupa VARCHAR(MAX),

    Nombre de la aplicación VARCHAR(MAX)

)

3. Creación del usuario y su rol con el siguiente Script:

UTILIZAR PH_Events

IR

CREAR USUARIO [AOPerfLogin] PARA INICIAR SESIÓN [AOPerfLogin]

IR

ALTERAR ROL [db_owner] AGREGAR MIEMBRO [AOPerfLogin]

IR

 

4.  Creación de los triggers con los siguientes Scripts:

Gatillo I.-

USO maestro;

IR

CREAR DISPARADOR PH_Database_Level_Events en BASE DE DATOS

PARA EVENTOS DE NIVEL DE BASE DE DATOS DDL

COMO

DECLARA @eventData COMO XML;

ESTABLECER @eventData = EVENTDATA();

INSERTAR EN PH_Events.dbo.DDLEvents(EventTime, EventType, SPID, ServerName, LoginName, ObjectName, ObjectType, SchemaName, DatabaseName, CommandText, XMLEvent)

VALORES(cast(@eventData.query('data(//PostTime)') como varchar(MAX)),

       cast(@eventData.query('data(//EventType)') como varchar(MAX)),

           convertir(@eventData.query('data(//SPID)') como varchar(MAX)),

           cast(@eventData.query('data(//ServerName)') como varchar(MAX)),

       cast(@eventData.query('data(//NombreDeInicioDeSesión)') como varchar(MAX)),

       cast(@eventData.query('data(//ObjectName)') como varchar(MAX)),

           convertir(@eventData.query('data(//ObjectType)') como varchar(MAX)),

           cast(@eventData.query('data(//SchemaName)') como varchar(MAX)),

           cast(@eventData.query('data(//NombreDeBaseDeDatos)') como varchar(MAX)),

           cast(@eventData.query('datos(//TSQLCommand/CommandText)') COMO NVARCHAR(MAX)),

       @datosdeeventos

);

IR

 

Gatillo II.-

USO maestro;

IR

CREAR DISPARADOR PH_DDL_Eventos_de_Nivel_de_Servidor

EN TODOS LOS SERVIDORES

PARA EVENTOS DE PUNTO FINAL DDL, EVENTOS DE INICIO DE SESIÓN DDL, EVENTOS DE SERVIDOR GDR DDL, EVENTOS DE SERVIDOR DE AUTORIZACIÓN DDL,

CREAR_BASE_DE_DATOS, MODIFICAR_BASE_DE_DATOS, ELIMINAR_BASE_DE_DATOS, CONCEDER_BASE_DE_DATOS, DENEGAR_BASE_DE_DATOS, REVOCAR_BASE_DE_DATOS

COMO

DECLARA @eventData COMO XML;

ESTABLECER @eventData = EVENTDATA();

insertar en PH_Events.dbo.DDLEvents(EventTime, EventType, SPID, ServerName, LoginName, ObjectName, ObjectType, SchemaName, DatabaseName, CommandText, XMLEvent)

valores(cast(@eventData.query('data(//PostTime)') como varchar(MAX)),

       cast(@eventData.query('data(//EventType)') como varchar(MAX)),

       convertir(@eventData.query('data(//SPID)') como varchar(MAX)),

       cast(@eventData.query('data(//ServerName)') como varchar(MAX)),

       cast(@eventData.query('data(//NombreDeInicioDeSesión)') como varchar(MAX)),

       cast(@eventData.query('data(//ObjectName)') como varchar(MAX)),

       convertir(@eventData.query('data(//ObjectType)') como varchar(MAX)),

       cast(@eventData.query('data(//SchemaName)') como varchar(MAX)),

       cast(@eventData.query('data(//NombreDeBaseDeDatos)') como varchar(MAX)),

       cast(@eventData.query('datos(//TSQLCommand/CommandText)') COMO NVARCHAR(MAX)),

       /** NOMBRE_BD(),**/

       @eventData);

IR

 

Gatillo III.-

Utilice master;

IR

CREAR DISPARADOR PH_LoginEvents EN TODOS LOS SERVIDORES

CON EJECUTAR COMO YO PARA INICIAR SESIÓN

COMO

COMENZAR

DECLARAR @evento XML

ESTABLECER @evento = EVENTDATA()

INSERTAR EN PH_Events.dbo.LogonEvents(HoraDeEvento,TipoDeEvento,SPID,NombreDeServidor,NombreDeInicioDeSesión,TipoDeInicioDeSesión,SID,NombreDeHost,IsPooled,NombreDeAplicación,XMLEvent)

VALORES(CAST(CAST(@event.query('/EVENT_INSTANCE/PostTime/text()') COMO VARCHAR(64)) COMO FECHAHORA),

CONVERTIR(@event.query('/EVENT_INSTANCE/EventType/text()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/SPID/text()') COMO VARCHAR(128)),

CAST(@event.query('/EVENT_INSTANCE/ServerName/text()') COMO VARCHAR(128)),

CAST(@event.query('/EVENT_INSTANCE/NombreDeInicioDeSesión/texto()') COMO VARCHAR(128)),

CAST(@event.query('/EVENT_INSTANCE/TipoDeInicioDeSesión/texto()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/SID/text()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/ClientHost/text()') COMO VARCHAR(128)),

CONVERTIR(@event.query('/EVENT_INSTANCE/IsPooled/text()') COMO VARCHAR(128)),

NOMBRE_DE_LA_APLICACIÓN(),

@evento)

FIN;

 

5. Creación de auditorías y propiedades de especificación de auditorías de servidor dentro de SQL Server Management Studio.

 

 

g.png

 

g2.png

Agradecería mucho su ayuda.

3 REPLIES 3
AlexC-FTNT
Staff
Staff

I fail to see the connection to FortiGate here. How is this related?


- Toss a 'Like' to your fixxer, oh Valley of Plenty! and chose the solution, too00oo -
RebecaGoncalves

We want to view the events in the Fortisiem related to the databases, not the FortiGate.

AlexC-FTNT

Hi Rebeca. You posted in FortiGate support forum. There is no database in FortiGate that can be accessed, or produce events. So let me ask to move this to FortiSiem forum


- Toss a 'Like' to your fixxer, oh Valley of Plenty! and chose the solution, too00oo -
Announcements

Welcome to your new Fortinet Community!

You'll find your previous forum posts under "Forums"