Совершенствование процесса LDAP-аутентификации IBM QRadar

Используйте IBM Directory Integrator в качестве посредника

Платформа IBM QRadar поддерживает различные способы аутентификации, позволяя настраивать механизмы проверки подлинности пользователей и паролей. Наиболее широко используемым источником данных аутентификации в современной динамичной инфраструктуре служит LDAP (Lightweight Directory Access Protocol). IBM QRadar поддерживает LDAP как способ аутентификации, однако поддерживаемый уровень интеграции может оказаться неудовлетворительным. Эта статья посвящена решению с использованием Tivoli Directory Integrator, который работает в качестве посредника, получая безопасные анонимные запросы от QRadar и передавая уже аутентифицированные запросы в LDAP Authentication Server.

Нилеш Патель, старший архитектор решений для обеспечения безопасности, Prolifics, Inc

Нилеш Патель



04.12.2015

Введение

В решении, описанном в этой статье, Tivoli Directory Integrator используется в качестве посредника, который получает безопасные анонимные запросы от QRadar и передает уже аутентифицированные запросы в LDAP Authentication Server.

Платформа IBM QRadar поддерживает различные способы аутентификации, позволяя настраивать механизмы проверки подлинности пользователей и паролей. Наиболее широко используемым источником данных аутентификации в современной динамичной инфраструктуре служит LDAP (Lightweight Directory Access Protocol), и IBM QRadar поддерживает LDAP как способ аутентификации. Однако поддерживаемый уровень интеграции требует «анонимного» доступа к LDAP, что в современном мире изощренных угроз представляется практически невозможным. Вам предоставляется лишь возможность локальной проверки подлинности, для чего необходимо помнить и хранить уникальный пароль.

IBM Tivoli Directory Integrator, входящий в семейство продуктов IBM QRadar, обеспечивает повышенную гибкость развертывания QRadar без дополнительных расходов на лицензию Tivoli Directory Integrator. Эта статья посвящена решению с использованием Tivoli Directory Integrator, который работает в качестве посредника, получая безопасные анонимные запросы от QRadar и передавая уже аутентифицированные запросы в LDAP Authentication Server.


Архитектура

В IBM Tivoli Directory Integrator есть LDAP Server Connector, который работает в звене Feed конвейера Tivoli Directory Integrator. Конвейер предназначен для приема LDAP-запросов от QRadar; последующее звено Flow конвейера посылает аутентифицированные LDAP-запросы в LDAP Authentication Server.

Рисунок 1. Решение усовершенствованной архитектуры LDAP-аутентификации QRadar
Иллюстрация решения

На рисунке 1 видно, что когда пользователь QRadar пытается войти в веб-консоль QRadar, в решение Tivoli Directory Integrator направляются анонимные LDAP-запросы. Эти запросы можно направить через защищенное соединение, что и рекомендуется. Получая анонимные запросы, решение Tivoli Directory Integrator использует специальный код JavaScript для передачи соответствующего аутентифицированного запроса в LDAP Authentication Server. Результаты этих операций возвращаются в QRadar.

Временная диаграмма процесса аутентификации QRadar

На рисунке 2 изображена временная диаграмма процесса аутентификации QRadar с использованием специального решения Tivoli Directory Integrator.

Когда пользователь входит в QRadar, QRadar внутренне направляет анонимный LDAP-запрос bind к решению Tivoli Directory Integrator, которое в свою очередь возвращает в QRadar сообщение LDAP_SUCCESS. Затем QRadar выполняет анонимный поиск в LDAP, чтобы получить BindDN пользователя. BindDN преобразуется в аутентифицированный поисковый запрос от решения Tivoli Directory Integrator к серверу аутентификации. Получив BindDN, QRadar выполняет LDAP-запрос bind с использованием BindDN и пароля, введенного с веб-консоли.

Рисунок 2. Временная диаграмма процесса аутентификации QRadar
Временная диаграмма процесса аутентификации QRadar

Конвейер Tivoli Directory Integrator

В этом разделе описан конвейер Tivoli Directory Integrator (dWorks_QRadarAuthentication_AL) и то, как она использует следующие компоненты Tivoli Tivoli Directory Integrator.

Файл свойств

Конвейер использует свойства Tivoli Directory Integrator для определения входных параметров данного решения. Файл свойств (dWorks-QRadarAuthentication.properties) находится в папке dWorks-QRadarAuthentication\Runtime-dWorks-QRadarAuthentication. Он определяет следующие входные параметры:

  • Anonymous_LDAP_Port: это свойство определяет LDAP-порт для коннектора сервера LDAP. Убедитесь, что указанный порт не используется.
  • Anonymous_LDAP_SSL: это свойство представляет собой логический указатель типа соединения. Для безопасного соединения между QRadar и Tivoli и решением Tivoli Directory Integrator присвойте ему значение True; иначе – False.
  • Non_anonymous_LDAP_Service_Account: это свойство определяет значение LDAP Service Account Distinguished Name (DN). Решение Tivoli Directory Integrator использует этот DN для выполнения аутентифицированных операций с LDAP Authentication Server. Этот параметр помечен как защищенный; то есть когда конвейер запускается впервые, он зашифровывает текст. Убедитесь, что в учетной записи этой службы имеется разрешение поиска по отношению к LDAP Authentication Server.
  • Non_anonymous_LDAP_Service_Account_PW: Это свойство определяет пароль LDAP Service Account DN. Этот параметр помечен как защищенный; то есть когда конвейер запускается впервые, он зашифровывает текст.
  • Non_anonymous_LDAP_URL: это свойство определяет параметры LDAP Authentication Server, такие как имя узла, порт и т.п.
    Для SSL используйте ldaps://<ldap_hostname>:<port>. Для не-SSL используйте ldap://<ldap_hostname>:<port>.

Коннектор LDAP-сервера

Tivoli Directory Integrator обеспечивает коннектор LDAP-сервера для приема запросов на LDAP-соединение от клиента LDAP в конфигурации с хорошо известным портом (Anonymous_LDAP_Port). Коннектор LDAP-сервера работает только в режиме Server и рассылает собственные копии, которые заботятся о любом принятом соединении до тех пор, пока оно не будет закрыто LDAP-клиентом.

На рисунке 3 изображен коннектор LDAP-сервера с именем LDAPServer. Он демонстрирует, как используются различные зацепки.

Рисунок 3. Коннектор LDAP-сервера
Коннектор LDAP-сервера

Кликните, чтобы увидеть увеличенное изображение

Рисунок 3. Коннектор LDAP-сервера

Коннектор LDAP-сервера

Операция bind

BindOperation — это компонент сценария звена конвейера Flow. Он выполняет операцию bind и выполняется, только если ldap.operation имеет значение bind.

/* 
 * Автор : Nilesh Patel <npatel@prolifics.com> 
 * 
 * Copyrights 2015 IBM developerWorks 
 * 
 */ 
 
BindDN = work.getString("ldap.dn") 
BindPW = work.getString("ldap.password"); 
 
if (BindDN.toString().length() == 0 ) { 
	task.logmsg("<!---------- Anonymous bind request -----------!>"); 
	//Это анонимный запрос bind, просто возвращает LDAP_SUCCESS 
	work.setAttribute("ldap.status","0"); 
	return ; 
}	 
 
// Эта часть кода выполняется, только если запрос bind не анонимный.  
// То есть при фактической аутентификации пользователя. 
 
task.logmsg("<!---------- Non-anonymous bind request -----------!>"); 
task.logmsg("<!---------- BindDN = " + BindDN + "-----------!>") 
 
var conn = system.getConnector("Non_Anonymous_LDAP"); 
var connMode = new Packages.com.ibm.di.server.ConnectorMode("Iterator"); 
 
conn.setParam("ldapUrl", "ldap://localhost:389"); 
conn.setParam("ldapUsername", BindDN ); 
conn.setParam("ldapPassword", BindPW ); 
if(work.getObject("ldap.bindmethod")!=null){ 
	conn.setParam("ldapAuthenticationMethod", 	work.getObject("ldap.bindmethod")); 
}else{ 
	task.logmsg("<!-------- using simple auth ---------!>"); 
	conn.setParam("ldapAuthenticationMethod", 	"simple"); 
} 
conn.setParam("ldapSearchbase", 	work.getObject("ldap.searchbase")); 
conn.setParam("ldapSearchFilter", 	work.getObject("ldap.searchfilter")); 
conn.setParam("ldapSearchScope", 	work.getObject("ldap.scope")); 
conn.setParam("ldapTimeLimit", work.getObject("ldap.timelimit")); 
conn.setParam("ldapSizeLimit", work.getObject("ldap.sizelimit")); 

try { 
	conn.initialize ( connMode ); 
	task.logmsg("<!------- Authentication successful - BindDN = " + BindDN + " ------!>"); 
	work.setAttribute("ldap.status","0"); 
	return ; 
}catch(Ex) { 
	task.logmsg("<!-------Authentication failed - BindDN = " + BindDN + "-------!>" +Ex); 
	work.setAttribute("ldap.status","49"); 
	return ;	 
	}

Операция unbind

UnbindOperation — это компонент сценария звена конвейера Flow. Он выполняет операцию unbind, просто присваивая ldap.status значение 0. Он выполняется, только если ldap.operation имеет значение unbind.

/* 
 * Автор: Nilesh Patel <npatel@prolifics.com> 
 * 
 * Copyrights 2015 IBM developerWorks 
 * 
 */ 
//Это операция unbind, возвращает LDAP_SUCCESS 
task.logmsg("<!----------- Starting Unbind operation -------------!>"); 
task.logmsg("<!----------- BindDN = " + work.getString("ldap.dn") + "-----------!>"); 
work.setAttribute("ldap.status","0"); 
task.logmsg("<!----------- Exiting Unbind operation -------------!>");

Операция search

Операция search выполняется с помощью LDAP-коннектора в режиме Iterator. Этот коннектор называется Anonymous_LDAP_lkup. На рисунке 4 изображен коннектор Anonymous_LDAP_lkup LDAP с различными зацепками, параметром инициализации и точками входа.

Рисунок 4. Коннектор LDAP в режиме Iterator для выполнения операций аутентификации
Коннектор LDAP в режиме Iterator для выполнения операций аутентификации

Кликните, чтобы увидеть увеличенное изображение

Рисунок 4. Коннектор LDAP в режиме Iterator для выполнения операций аутентификации

Коннектор LDAP в режиме Iterator для выполнения операций аутентификации

Настройка

Чтобы создать свое собственное решение Tivoli Directory Integrator, выполните следующие действия.

  1. Убедитесь, что Tivoli Directory Integrator Server и LDAP Authentication Server синхронизированы с временем QRadar Server.
  2. Убедитесь, что все пользователи имеют надлежащие учетные записи и роли для проверки подлинности в LDAP Authentication Server.
  3. (Не обязательно, но рекомендуется). Чтобы установить SSL-соединение с сервером QRadar, импортируйте сертификат QRadar Server в Java Keystore на клиентском компьютере Tivoli Directory Integrator.
    1. Загрузите сертификат сервера QRadar в компьютер Tivoli Directory Integrator. Самый простой способ – обратиться по URL-адресу QRadar и загрузить сертификат сервера с помощью веб-браузера.
    2. Импортируйте сертификат в хранилище ключей, указанное параметрами javax.net.ssl.trustStore и javax.net.ssl.keyStore файла solution.properties. Используйте следующую команду:
      $TDI_HOME\jvm\jre\bin\keytool -import -trustcacerts -alias <somealias> 
                      -file <qradar certificate file> -keystore <path of keystore> -storepass 
                      <keystore password>

      Пример исполнения:

      Кликните, чтобы увидеть код

      C:\Users\Administrator\Desktop\certs>"C:\Program Files\IBM\TDI\V7.1.1\jvm\jre\bin\keytool.exe" -import -trustcacerts -file qradar722.localhost.crt -keystore server.jks -storepass secret -alias QRadar722 
      Owner: EMAILADDRESS=npatel@prolifics.com, CN=qradar722.localhost, OU=Security, O 
      =Prolifics, L=Portland, ST=Oregon, C=US 
      Issuer: EMAILADDRESS=npatel@prolifics.com, CN=qradar722.localhost, OU=Security, 
      O=Prolifics, L=Portland, ST=Oregon, C=US 
      Serial number: ecad6ea584f7448d 
      Valid from: 2/20/15 8:58 AM until: 2/19/18 8:57 AM 
      Certificate fingerprints: 
      MD5:  8A:DC:F0:7A:86:77:EE:DE:78:B2:E2:70:2B:5E:0D:FF 
      SHA1: 20:FB:97:8F:C6:D6:17:14:66:7A:88:AD:69:48:C2:CE:B9:96:52:42 
      Trust this certificate? [no]:  yes 
      Certificate was added to keystore 
      C:\Users\Administrator\Desktop\certs>
    3. Скопируйте сертификат Tivoli Directory Integrator в каталог QRadar/opt/qradar/conf/trusted_certificates/.
  1. Чтобы установить SSL-соединение с LDAP Authentication Server, импортируйте сертификат LDAP Server в Java Keystore на клиентском компьютере Tivoli Directory Integrator.
    1. Запросите сертификат LDAP-сервера у администратора LDAP, что позволит получить сертификат от LDAP Authentication Server.
    2. Импортируйте сертификат в хранилище ключей, указанное параметрами javax.net.ssl.trustStore и javax.net.ssl.keyStore файла solution.properties. Используйте следующую команду:
      $TDI_HOME\jvm\jre\bin\keytool -import -trustcacerts -alias <somealias> 
                      -file <qradar certificate file> -keystore <path of keystore> -storepass 
                      <keystore password>

      Пример исполнения:

      Кликните, чтобы увидеть код

          C:\Users\Administrator\Desktop\certs>"C:\Program Files\IBM\TDI\V7.1.1\jvm\jre\bin\keytool.exe" -import -trustcacerts -file ldap.localhost.crt -keystore server.jks -storepass secret -alias ldap 
        Owner: EMAILADDRESS=npatel@prolifics.com, CN=ldap.localhost, OU=Security, O 
        =Prolifics, L=Portland, ST=Oregon, C=US 
        Issuer: EMAILADDRESS=npatel@prolifics.com, CN=ldap.localhost, OU=Security, 
        O=Prolifics, L=Portland, ST=Oregon, C=US 
        Serial number: ecad6ea584f7448d 
        Valid from: 2/20/15 9:35 AM until: 2/19/18 9:34 AM 
        Certificate fingerprints: 
        MD5:  F1:AF:03:F7:52:72:BA:3B:8F:96:83:63:FE:19:3B:43 
        SHA1: 76:DC:5F:19:00:FF:88:F8:1A:3D:13:E2:EC:0A:34:42:3F:FD:C0:17 
        Trust this certificate? [no]:  yes 
        Certificate was added to keystore 
        C:\Users\Administrator\Desktop\certs>
    3. Поместите сертификат Tivoli Directory Integrator в доверенный авторитетный источник LDAP-сервера.
  2. Загрузите специальное решение Tivoli Directory Integrator из раздела Downloads.
  3. Откройте редактор конфигурации Tivoli Directory Integrator и проект dWorks-QRadarAuthentication.
  4. Измените файл свойств Tivoli Directory Integrator, указав параметры LDAP Authentication Server. Файл свойств Tivoli Directory Integrator должен находиться в каталоге dWorks-QRadarAuthentication\Runtime-dWorks-QRadarAuthentication\dWorks-QRadarAuthentication.properties.

    Кликните, чтобы увидеть код

      # Имя файла свойств — dWorks-QRadarAuthentication.properties 
      # 
      # Параметры 
      #	Anonymous_LDAP_Port → порт LDAP коннектора LDAP Server 
      #	Anonymous_LDAP_SSL → логический параметр, указывающий на защищенное соединение 
      #	Non_anonymous_LDAP_Service_Account → LDAP Service Account DN, решение TDI будет использовать   
      #		этот DN для выполнения операций аутентификации через LDAP Authentication Server. Этот  
      #   параметр помечен как защищенный, так что при первом запуске конвейера он будет  
      #   зашифровывать текстовые   
      #		значения. Убедитесь, что учетная запись этой службы имеет разрешения для поиска в LDAP  
      #		Authentication Server. 
      #	Non_anonymous_LDAP_Service_Account_PW → пароль LDAP Service Account DN. Этот параметр  
      #		помечен как защищенный, поэтому после первого AL он будет зашифровывать текстовые значения.  
      #	Non_anonymous_LDAP_URL → свойства LDAP Authentication Server  
      #		Для SSL используйте  ldaps://<ldap_hostname>:<port> 
        #		Для не-SSL используйте ldap://<ldap_hostname>:<port> 
          # 
          ############################################################################################ 
          Anonymous_LDAP_Port=1389 
          Anonymous_LDAP_SSL=FALSE 
          {protect}-Non_anonymous_LDAP_Service_Account={encr}cn=serviceaccount,o=prolifics,c=us 
          {protect}-Non_anonymous_LDAP_Service_Account_PW={encr}password 
          Non_anonymous_LDAP_URL=ldap://192.168.179.135:389
  5. Запустите конвейер Tivoli Directory Integrator

    Кликните, чтобы увидеть код

    C:\>"C:\Program Files\IBM\TDI\V7.1.1\ibmdisrv.bat" -c 
                "C:\Users\Administrator\Documents\TDI\workspace\dWorks-QRadarAuthentication\Runtime-dWorks-QRadarAuthentication\dWorks-QRadarAuthentication 
                .xml" -r "dWorks-QRadarAuthentication_AL" -f 
                "dWorks-QRadarAuthentication=C:\Users\Administrator\Documents\TDI\workspace\dWorks-dWorks-QRadarAuthentication\Runtime-dWorks-QRadarAuthentication\dWorks-QRadarAuthentication 
                .properties"

    Примечание. Так как коннектор LDAP-сервера прослушивает порт, указанный в файле свойств, исполнение конвейера не приведет к возврату к командной строке.

  6. Войдите в консоль QRadar из своей учетной записи локального администратора и перейдите на вкладку Admin.
  7. Выберите из меню навигации System Configuration > User Management.
  8. Щелкните на значке Authentication.
  9. Выберите LDAP из списка Authentication Module. Настройте следующие параметры:
    1. Server URL: Введите URL-адрес, используемый для коннектора LDAP-сервера Tivoli Directory Integrator, например, ldap://<tdi_hostname>/port или ldaps://<tdi_ip>:port.
    2. SSL Connection: выберите True, чтобы для подключения к серверу Tivoli Directory Integrator использовать метод шифрования Secure Socket Layer (SSL).
    3. TLS Authentication: False.
    4. Search Entire Base: выберите один из следующих вариантов:
      • True: для поиска во всех подкаталогах указанного DN.
      • False: для поиска в непосредственном содержимом Base DN. Поиск в подкаталогах не выполняется.
    5. LDAP User Field: Введите идентификатор поля user, который нужно найти, например, cn.
    6. Base DN: Введите базовый DN для требуемых операций поиска, например, o=sample.
  10. Нажмите кнопки Save и Deploy Changes. Пример настройки LDAP-аутентификации QRadar приведен на рисунке 5.

    Рисунок 5. Пример настройки LDAP-аутентификации
    Пример настройки LDAP-аутентификации

Теперь пользователи, указанные в QRadar, смогут войти в веб-консоль QRadar с помощью учетных данных LDAP-сервера.


Заключение

Эта статья посвящена решению с использованием Tivoli Directory Integrator в качестве посредника для получения безопасных анонимных запросов от QRadar и передачи уже аутентифицированных запросов в LDAP Authentication Server.


Загрузка

ОписаниеИмяРазмер
Специализированное решение TDIse-improve-ldap.zip25 КБ

Ресурсы

Комментарии

developerWorks: Войти

Обязательные поля отмечены звездочкой (*).


Нужен IBM ID?
Забыли Ваш IBM ID?


Забыли Ваш пароль?
Изменить пароль

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Профиль создается, когда вы первый раз заходите в developerWorks. Информация в вашем профиле (имя, страна / регион, название компании) отображается для всех пользователей и будет сопровождать любой опубликованный вами контент пока вы специально не укажите скрыть название вашей компании. Вы можете обновить ваш IBM аккаунт в любое время.

Вся введенная информация защищена.

Выберите имя, которое будет отображаться на экране



При первом входе в developerWorks для Вас будет создан профиль и Вам нужно будет выбрать Отображаемое имя. Оно будет выводиться рядом с контентом, опубликованным Вами в developerWorks.

Отображаемое имя должно иметь длину от 3 символов до 31 символа. Ваше Имя в системе должно быть уникальным. В качестве имени по соображениям приватности нельзя использовать контактный e-mail.

Обязательные поля отмечены звездочкой (*).

(Отображаемое имя должно иметь длину от 3 символов до 31 символа.)

Нажимая Отправить, Вы принимаете Условия использования developerWorks.

 


Вся введенная информация защищена.


  • Bluemix

    Узнайте больше информации о платформе IBM Bluemix, создавайте приложения, используя готовые решения!

  • Библиотека документов

    Более трех тысяч статей, обзоров, руководств и других полезных материалов.

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=40
Zone=Security
ArticleID=1023366
ArticleTitle=Совершенствование процесса LDAP-аутентификации IBM QRadar
publish-date=12042015