Перейти к содержанию
Shell

#1 Используем SEP для борьбы с локальными администраторами

Recommended Posts

Shell

У меня часто спрашивают - а что НЕ умеет твой SEP? Часто этот вопрос вводит в ступор, потому как по сути SEP дает мне довольно таки огромный потенциал разрешения моих задач и целей.

Итак, ближе к сути: Нужно вылавливать не лигитимных пользователей, которым не разрешено быть в группе локальных администраторов.

Для этого мной решено использовать:

1) vbscript который будет запускаться в политике Host Integrity по расписанию и записывать данные в БД на SQL в центральном офисе.

2) собственно, саму отдельную БД на SQL 2008

3) обрабатывающие процедуры.

В скрипте сразу закладывается логика - какие пользователи разрешены (экономлю трафик), на каких компьютерах (по MAC, ибо много у которых меняется IP) не запускать скрипт.

Итак, делаем новую политику в Host Integrity, выбираем Custom Requirements. Все далее как на скриншоте ниже (в окне имени файла вводим любое имя.vbs, ставим удаление скрипта после его исполнения (скрипт будет во временной директории ОС), в строке выполнения команды пишем cscript %F%)

2f258c21605f.jpg

Теперь редактируем под себя и вставляем сам скрипт:

'НЕ ЗАПУСКАТЬ НА СЕРВЕРАХ И КОНТРОЛЛЕРАХ ДОМЕНА!'или убрать сначала блокировку учеток в группе админов...'On  Error Resume  Nexterrors = 0 'выставляем счетчик для результата в host integritySet objRun = CreateObject("wscript.Shell")strUserName = objRun.ExpandEnvironmentStrings("%USERNAME%")Dim strComputer, member, strUsername, IsMemberDim grp, obj, objRunstrComputer = "."'объявляем массив разрешенных имен пользователейdim AllowUsersAllowUsers = "Administrator,Администратор,shell,Boss"AllowUsers = Split(AllowUsers,",")'объявляем массив разрешенных локальных пользователейdim LocalAccountsLocalAccounts = "Administrator,Администратор"LocalAccounts = Split(LocalAccounts,",")'объявляем массив mac-адресов не подлежащих проверке.dim MacAddressesMacAddresses = "00:21:9b:e5:76:f8,00:26:2d:81:70:70,00:0e:a6:f5:41:fb"'00:23:54:BD:F3:08 MyMacAddresses = Split(MacAddresses,",")'задаем параиетры соединения с БДSet objConn = CreateObject("ADODB.Connection")Set objRecordset = CreateObject("ADODB.Recordset")Set objRecordsetLast = CreateObject("ADODB.Recordset")Set objRecordsetChange = CreateObject("ADODB.Recordset")ServerName = "10.0.0.2" 'имя или IP-адрес сервераDSN = "LocalAdmins" 'имя базы данныхUID = "vbs" 'логин пользователя SQL-сервераPWD = "Sfgs%4F#D" 'пароль пользователя SQL-сервераConnectString = "Provider=SQLOLEDB;" & _                "Data Source=" & ServerName & _                ";Initial Catalog=" & DSN & _                ";UID=" & UID & ";PWD=" & PWDobjConn.ConnectionString = ConnectStringobjConn.ConnectionTimeOut = 15objConn.CommandTimeout = 30'получаем имя компаSet WshNetwork = WScript.CreateObject("WScript.Network")'WScript.Echo " " &WshNetwork.ComputerName CompName = LCase(WshNetwork.ComputerName)'получаем полное имя доменаSet objSystemInfo = CreateObject("ADSystemInfo") 'wscript.echo objSystemInfo.DomainDNSNameDomainName = LCase(objSystemInfo.DomainDNSName)'получаем IP и MACSet objWMIService = GetObject( _     "winmgmts:\\" & strComputer & "\root\cimv2")Set IPConfigSet = objWMIService.ExecQuery _("Select * From Win32_NetworkAdapterConfiguration Where IPEnabled = True")For Each IPConfig in IPConfigSet    If Not IsNull(IPConfig.IPAddress) Then         For i=LBound(IPConfig.IPAddress) _            to UBound(IPConfig.IPAddress)                If Not (IPConfig.IPAddress(i)="0.0.0.0") Then            IPAddress = IPAddr + IPConfig.IPAddress(i)            MACAddress = IPConfig.MACAddress            'Wscript.Echo "IP Address: " & IPAddress & " MACAddress: " & IPConfig.MACAddress                End if        Nextend ifnext'проверяем mac-адреса на исключенияFor Each address in MacAddresses    If LCase(address) = LCase(MACAddress) then    'Wscript.echo "Этот компьютер находится в исключениях проверки по критерию MAC"    Wscript.quit(0) 'и завершаем скрипт если MAC перечислен    Exit for    End ifNext'проверяем не заблокирован ли пользовательFunction dis(Username)    Set Accounts = GetObject("WinNT://" & strComputer & "")    Accounts.Filter = Array("user")        For each user in Accounts            If LCase(user.Name) = LCase(Username) then                If user.AccountDisabled = False then                dis = 0                'wscript.echo "Пользователь " & Username & " Не заблокирован"                Else                dis = 1                'wscript.echo "Пользователь " & Username & " Уже блокирован"                exit for                end if            end if        nextEnd function'ищем группу администраторов и проверяем её членовSet colGroups = GetObject("WinNT://" & strComputer & "") 'UPcolGroups.Filter = Array("group")Dim Result ()ReDim Result(1)For Each objGroup In colGroups    If  objGroup.Name = "Administrators" or objGroup.Name ="Администраторы" Then          i=0        For Each objUser in objGroup.Members                'проверяем языковое соответствие учетных записей администраторов                   if LCase(objUser.Name) = "administrators" and LCase(objGroup.Name) = "администраторы" or LCase(objUser.Name) = "администратор" and LCase(objGroup.Name) = "administrators" then                    Set ExistLocalAccounts = GetObject("WinNT://" & strComputer & "")                    ExistLocalAccounts.Filter = Array("user")                        For Each user In ExistLocalAccounts                            For Each allowuser In LocalAccounts                            c = 0                                If LCase(user.Name) = LCase(allowuser) then exit for                                    If user.AccountDisabled = False then                                    notallowaccs = user.Name                            c = 1                                    end if                        next                            if c = 1 then                            'wscript.Echo "Итог: НЕТ В БАЗЕ ЛОКАЛЬНОГО ПОЛЬЗОВАТЕЛЯ " & notallowaccs & " <--- Незаблокирован"                            'user.AccountDisabled = True                            'user.SetInfo                            errors = 1                            end if                                    Next                    Disabled = dis(objUser.Name)                    'wscript.echo "Обнаружено языковое несоответствие учетной записи администраторов"                    objConn.Open                    Set objRecordset = objConn.Execute("insert into CommonAdmins (CompName,DomainName,IPAddress,MacAddress,UserName,Disabled,GroupName,date) values ('" & CompName &"','"& DomainName &"','"& IPAddress &"','"& MACAddress &"','" & objUser.Name & "','"& Disabled &"','"& objGroup.Name &"', getdate())")                    objConn.Close                 end if         GroupName = objGroup.Name         IsMember = objUser.Name         Result(i)=IsMember         i=i+1         ReDim Preserve Result(i)         Next     End IfNextReDim Preserve Result(i-1)'сравниваем полученный массив пользователей-админов с разрешенными локальными админами.for each adminuser in Result    for each admins in AllowUsers     x = 0     if LCase(adminuser) = LCase(admins) then exit for    x = 1    next        if x = 1 then        isMember = adminuser        'WScript.Echo "Итог: НЕТ В БАЗЕ " & IsMember        errors = 1        Disabled = dis(IsMember)        objConn.Open        Set objRecordset = objConn.Execute("insert into CommonAdmins (CompName,DomainName,IPAddress,MACAddress,UserName,Disabled,GroupName,date) values ('" & CompName &"','"& DomainName &"','"& IPAddress &"','"& MACAddress &"','" & IsMember & "','"& Disabled &"','"& GroupName &"', getdate())")        objConn.Close         end ifnextIf errors = 1 Then   'WScript.echo "Выходим с кодом 1 для Host Integrity"        WScript.Quit(1) ' --- Quit with errorsElse    WScript.Quit(0) ' --- Quit with not errorsEnd If

Теперь готовим саму БД.

Делаем отдельную БД (или изменяем в параметрах скрипта ниже и выше на свои) с именем LocalAdmins. В ней создадим маленькую табличку

USE [LocalAdmins]GOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOSET ANSI_PADDING ONGOCREATE TABLE [dbo].[CommonAdmins](    [iPAddress] [varchar](15) NULL,    [MACAddress] [varchar](17) NULL,    [userName] [varchar](128) NULL,    [Disabled] [nchar](10) NULL,    [GroupName] [varchar](50) NULL,    [Date] [datetime] NULL,    [incRegister] [int] NOT NULL,    [DomainName] [varchar](128) NULL,    [CompName] [varchar](128) NULL) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[CommonAdmins] ADD  CONSTRAINT [DF_CommonAdmins_UserName]  DEFAULT (NULL) FOR [userName]GOALTER TABLE [dbo].[CommonAdmins] ADD  CONSTRAINT [DF_CommonAdmins_Disabled]  DEFAULT (NULL) FOR [Disabled]GOALTER TABLE [dbo].[CommonAdmins] ADD  CONSTRAINT [DF_CommonAdmins_IncRegister]  DEFAULT ((0)) FOR [incRegister]GO

Теперь создадим 2 процедуры. Как и в предыдущей теме, я использую две процедуры. Первая будет работать по таблице, вторая - отсылать письма по подготовленным критериям и уже отфильтрованной таблице первой процедурой.

Первая процедура :

Use LocalAdmins;GOAlter PROCEDURE Clean_LocalAdminsASBEGINDECLARE @comp varchar(128), @domain varchar(128), @ip varchar(15), @users varchar(128),@group varchar(50), @date datetime, @inc int;DECLARE LACursor0 CURSOR LOCAL FOR SELECT DISTINCT CompName,DomainName,convert(varchar(15),IPAddress),UserName,GroupName,Date,IncRegister  FROM CommonAdminsorder by dateDECLARE @count int--Заменяем IP в случае выдачи скриптом из диапазона Reserved\BcastUpdate CommonAdminsSet IPAddress = 'APIPA'Where IPAddress like '%169.254.%'--меняем домен для корректной регистрации объекта инцидентаUpdate CommonAdminsSet DomainName = 'sk.domain.gk'where IPAddress like '%10.1.2.%' or IPAddress like '%10.1.1.%' or IPAddress like '%10.1.3.%'Update CommonAdminsSet DomainName = 'office.domain.gk'where IPAddress like '%10.0.17.%' or IPAddress like '%10.0.18.%'--иногда, увы скрипт не отрабатывает из за выключения питания или потери канала. Удаляем неполные данныеDELETE from CommonAdminswhere (IPAddress is NULL and MACAddress is NULL) or UserName is NULL and (GroupName is NULL)    OPEN LACursor0    FETCH NEXT FROM LACursor0 INTO @comp,@domain,@ip,@users,@group,@date,@incWHILE @@FETCH_STATUS = 0    BEGIN--считаем количество новых записей - если есть новые, делаем их актуальными, увеличиваем инкремент (IncRegister) чтобы потом контролировать--отсылку письма    Select @count = COUNT(*) from CommonAdminsWhere CompName = @comp and DomainName = @domain and convert(varchar(15),IPAddress) = @ip and UserName = @users and GroupName = @group        if @count > 1 --or @count =  0        BEGIN        Update CommonAdmins        SET IncRegister = + @count        WHERE CompName = @comp and DomainName = @domain and convert(varchar(15),IPAddress) = @ip and UserName = @users and GroupName = @group        Delete from CommonAdmins where CompName = @comp and DomainName = @domain and UserName = @users and GroupName = @group and Date < @date        END            FETCH NEXT FROM LACursor0 INTO @comp,@domain,@ip,@users,@group,@date,@inc    END;        CLOSE LACursor0;    DEALLOCATE LACursor0;--удаляем неактуальные данные, старее 120 часов :)Delete from CommonAdmins where Date < DATEADD (HOUR, -120, getdate())ENDGO

Вторая процедура, которая будет отсылать письмо

-- ================================================Use LocalAdmins;GOAlter PROCEDURE IncMailASBEGINDECLARE @comp varchar(128), @domain varchar(128), @ip varchar(15), @users varchar(128),@group varchar(50), @date datetime, @inc intDECLARE LACursor1 CURSOR LOCAL FOR SELECT CompName,DomainName,IPAddress,UserName,GroupName,Date,IncRegister FROM CommonAdmins ORDER by UserNameDECLARE @xml NVARCHAR(MAX)DECLARE @body NVARCHAR(MAX)DECLARE @dopsubj varchar(10)--создаем отчеты    OPEN LACursor1    FETCH NEXT FROM LACursor1 INTO @comp,@domain,@ip,@users,@group,@date,@incWHILE @@FETCH_STATUS = 0    BEGIN        --PRINT @comp + @domain + @ip + @users + @group + CONVERT(VARCHAR, @date, 104)    --SELECT @comp + ', '+ @domain + ', '+ @ip + ', ' + @users + ', ' + @group + ', ' + CONVERT(VARCHAR, @date, 102)+ ', '+ CONVERT(VARCHAR, @date, 8) + ', ' + @inc                IF (@inc = 0 or @inc > 120)    and @users not like 'S-1-5-21%'        BEGIN     -- готовим письмо и отсылаем            if @inc >= 120            BEGIN            SET @dopsubj = ' ПОВТОРНО '            END            ELSE            SET @dopsubj = ' '                        --Оформляем и пишем письмо        SET @body ='Инцидент ' + @dopsubj + ' по классу информационная безопасность по объекту ' + @domain + ' "Пользователь - локальный администратор".        Пользователь ' + @users + ' на АРМ ' + @comp + ' с IP адресом ' + @ip +'  - локальный администратор ' + ' (Обнаружено событие ' + convert(varchar(24),@date) + ' по Мск).        Необходимо:1) В аттаче к инциденту прикрепить письменную объяснительную ИТ специалиста по факту инцидента.2) Обеспечить функционирование ПО без повышенных привилегий.3) Удалить пользователя из локальных администраторов.                            Письмо создано автоматически.                В группе локальных администраторов должны быть только следующие учетные записи:1)    2)3)'DECLARE @subj varchar(128)= 'Локальный администратор ' + ' Пользователь - локальный администратор. '+ ' Object: ' + @domain + ' '        EXEC msdb.dbo.sp_send_dbmail        @recipients=N'helpdesk@company.ru',        @copy_recipients =N'ваш_емайл@company.ru',        @body = @body,        @body_format = 'TEXT',        @subject =@subj,        @profile_name = 'Database Mail'        END--обновляем данные о том что инцидент выслан по данному пользователю        Update CommonAdmins        Set IncRegister = @inc + 1        Where CompName = @comp and UserName = @users and GroupName = @group        FETCH NEXT FROM LACursor1 INTO @comp,@domain,@ip,@users,@group,@date,@inc    END;        CLOSE LACursor1;    DEALLOCATE LACursor1;ENDGO

Ставим шедуллер в SQL Agent на вызов этих процедур

Use LocalAdmins;GOexec Clean_LocalAdminsexec IncMail

Выше описанный метод оттестирован (в настоящее время маленькие доработки) и работоспособен.

Минусы? Конечно есть что я просто физически не успеваю реализовать. Например, то что скрипт получает имя пользователей в несовсем удобном формате (нет приставки Domain\User или Computer\User - есть возможность обдурить скрипт :) , не отмечаются группа или пользователь ну и так, по мелочи)

В скриптах есть заремаренные дополнительные функции которые вы можете открыть если нужно (например, автоматическая блокировка учетной записи - аккуратнее с этим на серверах, т.к. блокируются и IIS_\IWAM_ - внесите сначала все то что нужно).

На вопросы отвечу позже, через пару неделек ;)

P.S. не забудьте создать пользователя vbs с паролем указанным в скрипте. Только дайте ему права минимальные на БД.

  • Upvote 15

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
deviss

Я в восхищении. Теоретически, конечно, это можно решить другими средствами, но интеграция в SEP - это замечательно.

Сами выработали практику? Читая документацию как-то не доводилось сталкиваться с подобными решениями.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shell
Я в восхищении. Теоретически, конечно, это можно решить другими средствами, но интеграция в SEP - это замечательно.

Сами выработали практику? Читая документацию как-то не доводилось сталкиваться с подобными решениями.

Да, приходится вырабатывать коленочные решения :) На групповые политики не приходится рассчитывать так как поддоменов море и нужно учитывать человеческий фактор :)

В планах потом скрипт перегнать на c++\c# и доработать немного. В данное время не успеваю - нужно было что то временное но работающее сделать.

Еще один вопрос не решенным остался - не получилось вернуть из скрипта код ошибки для host integrity. К примеру, если локальные админы найдены - вернуть host complince error...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

  • Сообщения

    • petrowpetrovp
      Вся актуальная информация про большой теннис, доступна на этом сайте. Ежедневные обновления, позволяет вам всегда быть вы курсе последних событий. Кроме новостей теннисе, вы сможете больше узнать про ставки на данный вид спорта, а также про букмекеров, которые предлагают выгодно заключать пари с высокими коэффициентами.
    • AM_Bot
      В киберпространстве Standoff 365 воссоздаются операционные и бизнес-процессы реальных промышленных, энергетических, транспортных, финансовых компаний и целых отраслей. Участие в Standoff 365 — быстрый и действенный способ оценить на практике уровень информационной защищённости компании, найти все слабые места в ИТ-инфраструктуре и подготовиться к отражению кибератак.     ВведениеВозможности платформы Standoff 365Платформа Bug Bounty3.1. Для кого предназначена платформа Bug Bounty3.2. Особенности платформы Bug Bounty3.3. Работа на платформе Bug BountyОнлайн-киберполигон4.1. Для кого предназначен онлайн-киберполигон4.2. Особенности онлайн-киберполигона4.3. Процесс работы на онлайн-киберполигонеОткрытые киберучения Standoff5.1. Для кого предназначены киберучения Standoff5.2. Варианты участия в киберучениях StandoffВыводыВведениеСогласно исследованию Positive Technologies, во II квартале 2022 года:Объём целенаправленных атак на российские компании составил 71 %.Количество атак APT-группировок обновило предыдущий рекордный показатель, зафиксированный в IV квартале 2021 года (91 против 86).Госучреждения вновь столкнулись с наибольшим количеством кибератак: в 46 % случаев они были атакованы с использованием вредоносных программ, среди которых 63 % составили шифровальщики, и некоторые жертвы были вынуждены заплатить выкуп.Значительно выросло число атак на промышленные учреждения — на 53 % по сравнению с предыдущим кварталом.Число атак на веб-ресурсы организаций продолжает расти: нынешний показатель составил 28 %, на п. п. выше, чем в предыдущем квартале.Подобная статистика объясняет, почему бизнес уделяет всё больше внимания кибербезопасности, причём это касается как отдельных предприятий, так и целых отраслей. В полной цифровых вызовов среде компаниям необходимо постоянно повышать свою киберустойчивость, и помочь в этом могут специалисты по исследованию информационных систем: белые хакеры, редтимеры, пентестеры.Идея онлайн-платформы Standoff 365 выросла из популярных в сфере информационной безопасности соревнований Standoff — зрелищной кибербитвы, где одни команды выступают в роли хакеров, а другие защищаются от их атак. Standoff появился в 2016 году и с тех пор непрерывно развивался, усложняя правила и инфраструктуру. Сначала это был виртуальный город, где для исследования на проникновение и защиту предлагались несвязанные между собой виртуальные объекты. Сегодня это — виртуальное государство с объектами и целыми отраслями, которые взаимодействуют друг с другом.Платформа Standoff 365 — закономерное продолжение развития принципов ИБ 2.0: компании, отрасль и государство нужно полностью защитить от недопустимых событий.Вот почему миссия платформы — объединить разнопрофильных экспертов в области кибербезопасности со всего мира, в том числе хакеров и багхантеров, чтобы помочь бизнесу и государству предотвратить недопустимое.Возможности платформы Standoff 365В состав Standoff 365 входят:Краудсорсинговая платформа для размещения программ по возмездному поиску уязвимостей (bug bounty). Она позволяет исследователям безопасности искать бреши и пути к недопустимым событиям в ИТ-инфраструктурах компаний-участников за вознаграждение. Компании, размещающие на платформе свои программы баг-баунти, регулярно получают актуальную информацию об уязвимостях инфраструктуры и возможности реализовать недопустимое для бизнеса событие.Киберполигон, который позволяет проводить киберучения и исследовать атаки на информационную инфраструктуру и приложения в онлайн- и офлайн-режимах. Противостояние специалистам по взлому (этичным хакерам) даёт возможность объективно оценить и развить навыки по кибербезопасности, в особенности по мониторингу и расследованию инцидентов.Ключевые особенности платформы Standoff 365:тысячи практикующих специалистов с различным опытом и экспертизой, исследователей безопасности, участников CTF-соревнований и пентестеров;возможность проведения киберучений на готовой или собственной ИТ-инфраструктуре;исследование безопасности ИТ-систем в состоянии «как есть» в режиме 24×7;непрогнозируемый вектор атак;комплексный подход к обеспечению киберустойчивости: от поиска и устранения существующих уязвимостей до навыков мониторинга кибератак и понимания того, как действуют злоумышленники.Платформа Bug BountyПлатформа Standoff 365 Bug Bounty аккумулирует программы поиска уязвимостей за вознаграждение от российских компаний. На ноябрь 2022 года там представлено 25 публичных программ.Для компаний это — быстрый и эффективный способ оценивать и развивать информационную безопасность собственных ИТ-систем при участии большого количества исследователей, профессионалов и энтузиастов, не ограниченных временем и географическим положением.Для кого предназначена платформа Bug BountyСвою программу на платформе Standoff 365 Bug Bounty может запустить любая компания, которой важно повышать информационную безопасность своих продуктов и сервисов.В результате она получает:интерес со стороны уже собранных на платформе профессионалов;продуманный интерфейс коммуникаций с исследователями, простой процесс выплат и дополнительные услуги, такие как проверка сданных отчётов;достоверный анализ слабых мест в защите своего продукта или ИТ-системы;подтверждение того, что компания надёжно защищена от недопустимых событий, даже при целевых атаках;репутацию компании, которая надёжно защищена от киберугроз, и соответствующий имидж продукта.Особенности платформы Bug BountyБелые хакеры могут искать как уязвимости в классическом формате, так и цепочки реализации недопустимых для компании событий.Компании указывают элементы инфраструктуры или область уязвимостей, которые предоставляются для исследования, а также определяют размер выплат в зависимости от степени критической значимости уязвимости.Платформа может осуществлять первичную обработку отчётов и взять на себя организацию выплат исследователям безопасности. Следует также отметить, что она имеет выстроенный процесс по привлечению багхантеров.Работа на платформе Bug BountyЗапуск собственной программыПосле заключения договора и пополнения счёта для выплат исследователям компания получает доступ к личному кабинету, где создаёт свою страницу с описанием и прямую ссылку на неё, а также назначает (указывает адреса электронной почты) дополнительных пользователей, которые получат права на платформе.Компания может выбирать для каждой программы свой формат (по уязвимостям, по недопустимым событиям, по тому и другому вместе). Правила программы должны описывать область исследования, ограничения, критерии оценки отчётов, суммы вознаграждений и другие условия.Также у компании есть возможность проверить, могут ли быть реализованы недопустимые для её бизнеса события. Эта возможность — уникальная особенность платформы Standoff 365 Bug Bounty. Недопустимые события необходимо сформулировать и описать в программе, а хакеры будут пытаться реализовать их применительно к исследуемым активам компании. Рисунок 1. Описание публичной программы баг-баунти на платформе Исследователи безопасности знакомятся с описанием, охватом работ, вознаграждениями и решают, интересно ли им поучаствовать. Рисунок 2. Отчёт исследователя в случае обнаружения уязвимости В случае обнаружения уязвимости исследователь безопасности пишет отчёт.Обработка отчётовВ этой части интерфейса компания может принимать и изучать присланные отчёты, а также добавлять ссылки на внутренние системы и референсы, которые будут видны только коллегам. Полям можно присваивать идентификатор CVE и уровень критической значимости, а также выбирать статус отчёта для удобства дальнейшей работы. Здесь же можно начать чат с исследователем безопасности (он получит уведомление о сообщении на электронную почту). Рисунок 3. Административная панель платформы Новый отчёт отражается в списке сданных. Рисунок 4. Административная панель платформы Здесь представители компании могут изучить подробности, присвоить CVE, уровень опасности и отметить статус работ по отчёту. Рисунок 5. Чат с исследователем в административной панели Также можно вступить в переписку с исследователем. Рисунок 6. История взаимодействия с исследователем История взаимодействия с исследователем сохраняется в кабинете компании. Рисунок 7. Письмо исследователю о принятии отчёта Исследователь получает письмо о том, что отчёт принят.Если найденная уязвимость не входит в описанный охват работ или отчёт признаётся дубликатом, он не оплачивается.Если же отчёт признан валидным и проверка подтверждает наличие уязвимости, он принимается. С этой же страницы можно запустить процесс назначения выплаты (через систему подтверждений от двух ответственных лиц со стороны компании). В этот момент статус отчёта меняется на «Уязвимость принята».Выплата вознаграждения Рисунок 8. Первый этап назначения вознаграждения за найденную уязвимость Рисунок 9. Окно подтверждения выплаты Процесс выплаты вознаграждения запустится после того, как его подтвердит второй представитель компании. Рисунок 10. Процесс выплаты вознаграждения в личном кабинете исследователя Так процесс выплаты вознаграждения отображается в личном кабинете исследователя. Рисунок 11. Письмо о подтверждении вознаграждения Исследователь безопасности узнаёт о награде из письма. Рисунок 12. Отображение переписки по вознаграждению Вся история взаимодействий отражена в кабинете вендора.Важно отметить, что платформа Standoff 365 Bug Bounty не берёт собственной комиссии с выплат и отправляет получателям полную сумму вознаграждений (за удержанием НДФЛ). Возможность получать более крупные выплаты по сравнению с другими агрегаторами привлекает на платформу больше исследователей безопасности.Онлайн-киберполигонКиберполигон Standoff 365 появился как онлайн-версия киберучений Standoff, которые проводятся с 2016 года в формате многодневных офлайн-мероприятий.Пока киберполигон открыт только для атакующих: он позволяет исследовать копии ИТ-систем реальных компаний из различных отраслей экономики, искать уязвимости и пути реализации критических событий безостановочно в режиме 24×7×365.В 2023 году доступ к киберполигону получат и специалисты защиты. Они смогут изучать и расследовать инциденты, отслеживать перемещения атакующих внутри инфраструктуры, изучать техники и тактики злоумышленников и нарабатывать практический опыт предотвращения недопустимых событий.Для кого предназначен онлайн-киберполигонНаибольшую пользу из присутствия на онлайн-киберполигоне извлекают компании, которые занимаются редтимингом и пентестами наряду с отдельными исследователями безопасности.Особенности онлайн-киберполигонаДоступ к онлайн-киберполигону открыт постоянно из любой точки мира.Полная свобода действий: нет сценариев и скриптованных атак.Можно изучить на практике технологические и бизнес-процессы копий реальных объектов и отраслей экономики.Полигон непрерывно расширяется и прирастает новыми объектами из различных сегментов экономики.Ради удобства исследователей функциональность киберполигона регулярно совершенствуется. Так, недавно появились автоматическое принятие отчётов, автоматизированный доступ к сегментам и системам, а также возможность вернуть системы к исходному состоянию после их взлома другими участниками. Рисунок 13. Страница с инструментами для работы на киберполигоне Исследователь безопасности получает полезные инструменты.Процесс работы на онлайн-киберполигонеСейчас на Standoff 365 исследователи могут тестировать защищённость трёх сегментов: корпоративного, энергетического и банковского. Корпоративный сегмент состоит из почтового сервера, веб-приложений, ERP- и CRM-систем; энергетический — из электросети и электроустановок. В банковском осуществляются финансовые операции между предприятиями и гражданами, межбанковские переводы, работает система ДБО.Атакующие должны находить уязвимости, реализовывать недопустимые события, выполняя задания, и получать за это баллы.За атаку на адреса, которые не входят в предоставленный список, организаторы могут отстранить участника от киберучений. Кроме того, участникам запрещается проводить DoS- и DDoS-атаки на службы, сервисы и приложения инфраструктуры полигона. Рисунок 14. Описание сегмента киберполигона Правила для атакующихИсследователи получают баллы следующими способами:За реализацию недопустимых событий. Задания могут быть связаны, например, с получением конфиденциальной информации, отключением одного или нескольких сервисов или несанкционированным изменением информации на тестовом сайте.За нахождение уязвимостей. Участник может представить отчёт об изъянах, найденных в информационной инфраструктуре.Рисунок 15. Страница с рейтингом участников Исследователь видит своё место в рейтинге. Рисунок 16. Общая статистика достижений исследователя безопасности на платформе Баллы за выполнение заданий начисляются автоматически. На основе полученных баллов формируется рейтинг участников; самые активные в дальнейшем будут получать приглашения в закрытые программы и на профильные мероприятия (например, на встречи Standoff Talks в качестве экспертов). Организаторы вправе дисквалифицировать участника, если он пытается выдать отчёт другого исследователя за свой.Недопустимые событияВ качестве заданий используются приближенные к реальности ситуации. Задание дано в карточке уязвимости или недопустимого события, там же указана стоимость задания в баллах. Рисунок 17. Описание недопустимых событий и хода действий Недопустимые события и ход действий уже описаны; осталось реализовать их.Чтобы заработать баллы за реализацию недопустимого события, нужно сдать отчёт с верным ответом на задание. Ответ должен содержать набор символов (флаг), который участнику необходимо найти в анализируемой информационной системе. Флаг — это подтверждение того, что задание выполнено. Рисунок 18. Отчёт о недопустимом событии Исследователь смог реализовать недопустимое событие и сдаёт флаг.Правильность флага проверяется автоматически при попытке сдать отчёт. Если в отчёте будет указан неверный флаг, то на экране появится соответствующее сообщение и сдать отчёт не получится. После нахождения другого флага участник может попробовать сдать отчёт повторно.Поиск уязвимостейЧтобы заработать баллы за найденную уязвимость, нужно сдать отчёт с указанием типа уязвимости, системы, в которой она была найдена, и верным ответом на задание. Здесь ответ участника также должен содержать флаг, без которого задание не будет считаться выполненным.Принимаются отчёты только об определённых типах уязвимостей: удалённом выполнении кода (RCE), внедрении SQL-кода (SQLi), обходе каталога (Path Traversal), подмене запросов на стороне сервера (SSRF).Открытые киберучения StandoffОткрытые киберучения Standoff проводятся дважды в год и могут быть приурочены к любой конференции, как это было на Positive Hack Days или HITB в Абу-Даби.Мероприятие Standoff — культовое в индустрии кибербезопасности. Благодаря охвату в федеральных, отраслевых и региональных СМИ и интернет-каналах (более 30 млн совокупно на ноябрь 2021 года, когда состоялись предыдущие самостоятельные открытые киберучения) о нём регулярно узнаёт широкий круг специалистов в сферах ИТ и ИБ.Для кого предназначены киберучения StandoffПомимо очевидных преимуществ киберучений участие в Standoff даёт компаниям возможность публично заявить о своём бизнесе как о современном, эффективном и безопасном.Варианты участия в киберучениях StandoffПринять участие в открытых киберучениях Standoff можно на стороне защитников или атакующих.Команды защитников тренируются своевременно выявлять инциденты и обеспечивать доступность сервисов собственной ИТ-инфраструктуры. Они в настоящем времени наблюдают атаки на свои системы и учатся понимать ход мысли атакующих, а также обучаются эффективному взаимодействию внутри команды: быстрому детектированию и расследованию инцидентов.Основная задача атакующих — реализация недопустимых событий, предусмотренных для каждой компании. В ходе мероприятия они практикуются в исследовании ИТ-систем и поиске уязвимостей, знакомятся с реальным оборудованием и ПО, которое используют специалисты SOC, а также учатся общаться на языке бизнеса — оформлять и сдавать отчёты.ВыводыКибератаки на компании, как правило, случаются неожиданно. Последствиями могут стать утечка персональных данных, сбой оборудования или другие события, влекущие за собой финансовый и репутационный ущерб. Гарантированно избежать подобных ситуаций могут только киберустойчивые компании.Киберустойчивость — это готовность столкнуться с компьютерными атаками, умение грамотно реагировать на такие атаки и восстанавливать ИТ-инфраструктуру компании. Эти навыки необходимы для стабильной работы и развития бизнеса. Чтобы построить киберустойчивую организацию, нужно хорошо понимать, как работают хакеры.Вот почему киберучения, проводимые с участием хакеров, а также программы баг-баунти — обязательные элементы для исследования информационной безопасности компаний. Платформа Standoff 365 объединила в себе различные инструменты, чтобы компании любого уровня могли плодотворно сотрудничать с исследователями безопасности и развивать киберустойчивый бизнес в полной цифровых вызовов среде.Читать далее
    • demkd
      проверил, работает, но стоит помнить что кэш используется только при массовой проверке и только для файлов не получивших статус проверенного ранее.
      для проверки отдельного файла кэш не используется по очевидным причинам.
    • PR55.RP55
      Определять время применения GPO Определять время применения GPO - с привязкой к событию. ( например запуск... скрипта ) Писать в Инфо.
    • PR55.RP55
      Настройка vtCacheDays= не работает. ( залез, а в папке сотни файлов  ) пробовал менять настройки\даты - не работает.  
×