Claude Platform Docs

Сверка сохранённых событий Security posture с текущими результатами

Раз в день сравнивайте активности подтверждения, сохранённые в вашей SIEM, с текущими результатами конечной точки и решайте, какие несоответствия требуют внимания человека.

Лента активности может доставить активность с опозданием, а конечная точка не хранит историю, поэтому каждый источник может показывать изменение, которого нет в другом. Ежедневное сравнение выявляет, чего не хватает в хранилище вашей системы «security information and event management» (управление информацией и событиями безопасности), или SIEM. Лента записывает не каждое изменение, поэтому подтверждение может быть старше первой активности в ленте для соответствующей меры безопасности, а в редких случаях у изменения вообще нет активности. Если вы сообщаете только текущие результаты, эта проверка вам не нужна.

Вам нужен Compliance Access Key, охватывающий организацию, с read:compliance_org_data для конечной точки и read:compliance_activities для ленты активности либо с read:org_audit для обеих.

Выполнение проверки

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

  1. Получите связанные организации с помощью Список организаций. Вы получите uuid каждой из них.
  2. Вызовите конечную точку по одному разу для каждой организации. Вы получите 200 или — при каждом запуске — 404 для организации, которую конечная точка не обслуживает (см. Доступность Security posture). Ответ 404 означает, что организация не прочитана в этом запуске. Ведите список организаций, вернувших 200, и для каждой из них — evaluated_at её первого ответа 200: это ваш первый запуск для этой организации.
  3. Исключите из сравнения то, что перечислено в правилах исключения.
  4. Сгруппируйте оставшиеся сохранённые активности подтверждения организации по мерам безопасности и для каждой меры возьмите самую новую по created_at. Вы получите для каждой меры одну активность или ни одной.
  5. Для каждой оставшейся меры найдите её строку в таблице решений. Вы получите «Совпадает», «Ожидаемо» или «Требует разбора».
  6. Реагируйте на заключение «Требует разбора» только тогда, когда следующий запуск, прочитавший организацию, снова его покажет; на строку 6 реагируйте сразу, а для строк 10 и 11 вместо этого следуйте правилам для записей-заполнителей. Запуск, который не прочитал организацию, не засчитывается и не перезапускает ожидание.

Распределяйте вызовы во времени и обрабатывайте ответ 429 так, как описано в разделе 429 Too Many Requests; организация, вызовы для которой завершаются ошибкой после ваших повторных попыток, не прочитана в этом запуске, а неудачный вызов не является изменением.

Сопоставление полей

Сопоставляйте запись в ответе с сохранённой активностью по следующим полям.

В ответеВ активностиКак они связаны
organization_idorganization_uuidОдно и то же значение; собственное поле organization_id активности имеет префикс org_.
controls[].idcontrolОдин и тот же идентификатор, кроме случая из правила S2.
attestation.attested_atcreated_at самой новой активности attested, changed или renewedТо же время, если ответ содержит подтверждение; сравнивайте как значения времени, а не как строки.
statusstatusПока подтверждение действует, attested_completed соответствует completed, а attested_accepted_risk и failed_check_accepted_risk — accepted_risk; значению control_failed не соответствует ничего.

Исключение того, что нельзя сравнить

Перед сравнением исключите следующее.

#ЧтоПравило
S1Сохранённая активность подтверждения, у которой action не равно attested, changed, renewed, cleared или lapsedНе учитывайте её во всей проверке; каждое новое значение action один раз пометьте для разбора.
S2Сохранённая активность подтверждения, в которой указана mdm_cowork_required_organizationСчитайте её активностью для mdm_chat_required_organization.
S3Сохранённая активность подтверждения, для меры которой в ответе нет записиСравнивать нечего; сообщайте о мере как об отсутствующей в ответе, но никогда — со статусом «Пройдено» (passed).
S4Запись, у которой status равен descriptive, not_applicable или not_evaluatedПропустите её; запуск, в котором она имеет статус not_evaluated, не засчитывается для этой меры.

Определение смысла каждого несоответствия

Каждая оставшаяся мера подходит ровно под одну строку.

#Самая новая сохранённая активностьЗапись в ответеЗаключениеЧто делать
1attested, changed или renewedattested_at равно её created_at; state равно in_force; status соответствует её значению.СовпадаетНичего.
2clearedattestation равно null, кроме случая из строки 11.СовпадаетНичего.
3lapsed, со значением «Принятый риск» (accepted_risk)attestation равно null или содержит время более ранней активности с state check_passing или setting_changed.СовпадаетНичего.
4lapsed, со значением completed или control_failedattestation равно null.СовпадаетНичего.
5attested, changed или renewedattested_at равно её created_at; state равно review_due, check_passing или setting_changed.ОжидаемоНе действует: реагируйте один раз на каждое новое состояние, не дожидаясь активности; возврат к in_force сбрасывает это.
6attested, changed или renewed со значением «Выполнено» (completed) и created_at позже вашего первого запускаПри первом запуске, в котором сравнивается эта активность, attestation равно null, а status равен failed с current_value.Требует разбораСтраница Security posture может показывать неуспешную проверку как «Пройдено»: пометьте для разбора без ожидания.
7attested, changed или renewed со значением completedattestation равно null; status не равен not_attested и не равен failed при current_value, равном null; строка 6 не подходит.ОжидаемоСравнивать нечего; ответ никогда этого не содержит.
8attested, changed или renewed со значением «Не пройдено» (control_failed)attestation равно null; status принимает одно из трёх значений: failed; любой статус, который выставляет автоматическая проверка; или, начиная с даты окончания (review_date, в UTC), not_attested.ОжидаемоСравнивать нечего; отреагируйте один раз, когда status перестанет быть failed, начиная с даты окончания.
9attested, changed или renewed со значением accepted_riskattestation равно null, а status равен passed, matches_profile или exceeds_baseline.ОжидаемоСохраните запись-заполнитель (правило 7 для записей-заполнителей).
10Нет, или все сохранённые активности старше attested_atattestation присутствует.Требует разбораСледуйте правилам для записей-заполнителей.
11Нет, или есть активность, значение которой не control_failedcurrent_value равно null, а status равен failed.Требует разбораВ вашем хранилище нет подтверждения со значением «Не пройдено» (control_failed): следуйте правилам для записей-заполнителей и отреагируйте один раз, когда status перестанет быть failed.
12attested, changed, renewed или cleared, более поздняя, чем attested_at, при наличии другой активности почти с тем же временемattestation присутствует.ОжидаемоИзменения, внесённые почти одновременно, могут быть сохранены в любом порядке.
13То же, но без такой второй активностиattestation присутствует.Требует разбораОбратитесь в службу поддержки Anthropic — один раз.
14attested, changed или renewedattested_at равно её created_at; state равно in_force; status не соответствует её значению.Требует разбораОбратитесь в службу поддержки Anthropic — один раз.
15attested, changed или renewed; ни одна из предыдущих строк не подходитattestation равно null.Требует разбораСкорее всего, подтверждение снято: сохраните запись-заполнитель (правило 7 для записей-заполнителей) и один раз пометьте для разбора.
16Нетattestation равно null, и строка 11 не подходит.СовпадаетНичего.
17Любая другаяЛюбая другая.Требует разбораОдин раз пометьте для разбора.

Ведение записи-заполнителя, когда два источника нельзя сопоставить

Запись-заполнитель заменяет то, чего нет в одном из двух источников, и вы храните её отдельно от сохранённых активностей. Для строк 10 и 11 прочитайте ленту повторно и сохраните и пометьте запись-заполнитель, только если в течение 15 дней, то есть в пределах охвата ежедневного повторного чтения, ничего не поступит. При первом запуске сохраните её сразу, без разбора.

Записи-заполнители для строки 10, которые однозначно определяются по мере и attested_at:

  1. Прочитайте ленту повторно, начиная с самой новой сохранённой активности для этой меры или, если вы не сохранили ни одной, с attested_at включительно; 15 дней отсчитываются от attested_at. Создайте запись-заполнитель на основе записи из ответа с отметкой об отсутствии активности; в таблице решений считайте её активностью attested с этим attested_at, значение которой соответствует её status, если он есть.
  2. При каждом запуске, в котором ответ содержит подтверждение, обновляйте её status и state.
  3. Когда поступит активность, у которой created_at равно этому attested_at, замените ею запись-заполнитель.
  4. Когда в двух запусках подряд ответ не содержит подтверждения, закройте запись-заполнитель; пометьте это для разбора, кроме случаев, когда это объясняется более поздней сохранённой активностью или незакрытым несоответствием по строке 10 для этой меры, или когда оба запуска показывают descriptive.
  5. Запуск, который не прочитал организацию или показывает not_evaluated, не засчитывается в эти два запуска и не начинает их отсчёт заново.
  6. Если ответ снова содержит подтверждение, повторно откройте ту же запись-заполнитель.

Записи-заполнители для строк 9, 11 и 15, которые однозначно определяются только по мере:

  1. Для строки 11 эти 15 дней отсчитываются от первого запуска, в котором появляется этот status. Пока запись-заполнитель не закрыта, больше ничего не помечайте для этой меры; закройте её, когда выполнится одно из трёх условий: поступит более поздняя активность, ответ будет содержать подтверждение или два запуска подряд подойдут под другую строку.
  2. Когда запись-заполнитель для строки 9 закрывается, потому что ответ содержит подтверждение со статусом failed_check_accepted_risk, один раз пометьте её для разбора: риск действует.

Разобранный пример

Эти два запуска читают организацию из примера ответа на странице «Справочник по результатам»; запуск 1 — ваш первый запуск.

  • Запуск 1, directory_sync_enabled. Сохранено: attested, accepted_risk, создана в 2026-10-20T15:04:00.220114Z. Ответ: failed_check_accepted_risk, in_force, тот же attested_at. Строка 1: «Совпадает».
  • Запуск 1, allowed_invite_domains. Сохранено: ничего. Ответ: descriptive, attestation null. Правило S4: исключается из сравнения.
  • Запуск 1, oauth_conditional_access. Сохранено: ничего. Ответ: attestation с state review_due. Строка 10: «Требует разбора». При первом запуске сразу сохраните запись-заполнитель, без разбора.
  • Запуск 2, oauth_conditional_access. Запись-заполнитель: та же, что в запуске 1. Ответ: тот же. Строка 5: «Ожидаемо». Отреагируйте один раз на review_due.

Что проверка не может обнаружить

Ежедневная проверка не может обнаружить отсутствующую активность для подтверждения, которое ответ не включает для автоматически проверяемой меры. Ответ никак не указывает на такое подтверждение или содержит только status failed, который выглядит как статус, выставляемый автоматической проверкой.

Когда организация перестаёт отвечать

Организация, которая вернула 200, а затем возвращает 404 в нескольких запусках подряд, требует однократного внимания человека. Спросите пользователя с доступом к странице Security posture, отключили ли эту страницу для организации (см. Доступность Security posture). Если страницу не отключили, обратитесь к своему представителю Anthropic. Возможно, организация была удалена, либо ваш доступ, Security posture или конечная точка перестали действовать для организации. В любом случае закройте записи-заполнители и незакрытые несоответствия организации без разбора, продолжайте вызывать организацию и снова откройте их, если организация вернёт 200.

Эта страница была полезной?