Показать сообщение отдельно

  #2  
Старый 25.01.2008, 01:44
NeMiNeM
Постоянный
Регистрация: 22.08.2005
Сообщений: 540
Провел на форуме:
4372175

Репутация: 1221


По умолчанию

[Аудит системы отключен?]

Если же аудит отключен и вы используете Oracle 10g, доказательства входов в систему всё же можно найти. V$ACTIVE_SESSION_HISTORY использует кольцевой буфер в SGA, чтоб сохранять каждую секунду образцы информации об активных сессиях. Эти сессии передаются от SGA в таблицу WRH$_ACTIVE_SESSION_HISTORY очень часто, как часть Automatic Workload Repository(автоматический репоиторий нагрузки). Эти данные полезны исследователю, поскольку они эффективно записывают информацию о входах в систему.

Код:
SQL> SELECT USER_ID, SESSION_ID, SAMPLE_TIME FROM 
SYS.WRH$_ACTIVE_SESSION_HISTORY ORDER BY SAMPLE_TIME; 

USER_ID SESSION_ID   SAMPLE_TIME 
------- ----------   ----------------- 
0       149          27-MAR-07 06.58.26.127 
24      142          27-MAR-07 07.02.16.140 
.. 
.. 
1227 rows selected.
Здесь мы видим, что пользователь 24 (dbnsmp) вошёл в 07.02 утра 27 марта 2007 года.
При отсутствии информации аудита эти данные могут быть очень важные при расследовании атаки на систему.


[Наконец то! Попался!]

Когда пользователь успешно входит в систему в журнале аудита создается строка с номером ACTION# 100 (LOGON). Столбец TIMESTAMP# указывает на время входа в систему.
Вот так это выглядит:

Код:
SQL> SELECT USERID, ACTION#, RETURNCODE, TIMESTAMP# FROM SYS.AUD$; 

USERID                ACTION# RETURNCODE TIMESTAMP# 
--------------------- ---------- ---------- ------------------- 
DBSNMP                100          0 2007-03-27 03:31:49
Позже пользователь покидает систему. Если мы посмотрим в журнал то увидим что значение ACTION# изменилось с (LOGON) на 101 (LOGOFF), но время осталось тоже самое! Вот:

Код:
SQL> SELECT USERID, ACTION#, RETURNCODE, TIMESTAMP# FROM SYS.AUD$; 

USERID           ACTION# RETURNCODE TIMESTAMP# 
---------------- ---------- ---------- ------------------- 
DBSNMP           101          0 2007-03-27 03:31:49
При создании графика событий это очень важно, ведь мы не видим времени выхода пользователя. С другой стороны, если посмотреть в таблицу AUD$ - в ней есть столбец LOGOFF$TIME, который фиксирует дату выхода. Запрос такой:

Код:
SQL> select userid,action#,TIMESTAMP#,LOGOFF$TIME from aud$; 

USERID        ACTION# TIMESTAMP#          LOGOFF$TIME 
---------- ---------- ------------------- ------------------- 
SCOTT             101 2007-04-04 22:56:37 2007-04-04 23:00:00
[Заключение]

У нас есть возможность найти свидетельства атак как в лог-файле TNS-слушателя, так и в журнале аудита. Мы также увидели, что разные инструменты оставляют разный след в системе. Внимательно анализируйте код ответа в журнале аудита. Множество записей 1017 (и возможно 1005) с ACTION# 100 и кодом возврата 0 указывают на удачную брут-форс атаку.
Помните, что в Oracle есть много учетных записей и паролей по-умолчанию и они будут первой целью атакующего.


Оригинал в формате pdf

NeMiNeM
Специально для antichat.ru

ps: В статье/переводе возможны ошибки. Просьба не кричать, а спокойно указать и исправить Спасибо.


============================

Другие статьи с цикла Oracle Forensics на античате:
Часть 1: Анализируем Redo-логи by NeMiNeM
Часть 2: Нахождение удалённых объектов by VERte][
Часть 3: Поиск доказательств атак на механизм аутентификации by NeMiNeM
Часть 4: Live Response by Robin_Hood
Часть 5: О нахождении свидетельств кражи данных by Дрэгги