PCI-DSS 通知¶
为审计目的,在各种 PCI-DSS 事件的通知中添加原因字段。
问题描述¶
目前 Keystone 在各种 PCI-DSS 合规性事件的 CADF 通知中不包含发送原因。例如,如果:keystone.conf [security_compliance] lockout_failure_attempts 设置为 5,并且用户尝试登录 6 次失败,则第 6 次尝试的通知并未说明用户因尝试登录达到最大次数而被锁定。在通知中包含此原因对于技术支持和审计目的将非常有益。
提议的变更¶
为以下合规性事件的通知中添加原因代码和原因类型
PCI-DSS 8.1.6¶
通过在不超过六次尝试后锁定用户 ID 来限制重复访问尝试。
这将把以下原因代码和原因类型附加到现有的 identity.authenticate 失败通知。
原因代码 |
原因类型 / 消息 |
|---|---|
401 |
超过最大 <number> 次登录尝试次数。 |
PCI-DSS 8.2.3¶
密码/口令必须满足以下条件:(i)至少需要七个字符的最小长度,并且 (ii) 包含数字和字母字符。或者,密码/口令必须具有至少与上述参数等效的复杂性和强度。
这将把以下原因代码和原因类型附加到现有的 identity.update.user 失败通知。
PATCH /v3/users/{user_id}
POST /v3/users/{user_id}/password
原因代码 |
原因类型 / 消息 |
|---|---|
400 |
密码不符合预期要求:<regex_description>。 |
PCI-DSS 8.2.4¶
至少每 90 天更改一次用户密码/口令。
这将创建一个新的通知,用于
POST /v3/users/{user_id}/password
原因代码 |
原因类型 / 消息 |
|---|---|
401 |
<user> 的密码已过期,必须更改 |
PCI-DSS 8.2.5¶
不允许个人提交与其之前使用的最后四个密码/口令相同的新的密码/口令。
这将把以下原因代码和原因类型附加到现有的 identity.authenticate 失败通知。
POST /v3/users/{user_id}/password
原因代码 |
原因类型 / 消息 |
|---|---|
400 |
更改的密码不能与最后 <number> 个密码相同。 |
其他¶
用户尝试在最小密码年龄期限之前更改密码。这可以防止用户擦除密码历史记录以重新使用旧密码。
这将创建一个新的通知,用于
POST /v3/users/{user_id}/password
原因代码 |
原因类型 / 消息 |
|---|---|
400 |
在满足最小年龄 <number> 天之前,无法更改密码。 |
备选方案¶
事件可以记录并通过日志文件进行解析。
安全影响¶
无。
通知影响¶
应为触发的每个 PCI-DSS 事件发出 CADF 通知。一个示例通知是
{
"priority": "INFO",
"_unique_id": "3c030dc463114aa0ad17d703942b1a0e",
"event_type": "identity.authenticate",
"timestamp": "2016-10-07 01:30:53.075097",
"publisher_id": "identity.controller",
"payload": {
"typeURI": "http://schemas.dmtf.org/cloud/audit/1.0/event",
"initiator": {
"typeURI": "service/security/account/user",
"host": {
"address": "192.168.1.1"
},
"user_id": "6c3d3615c1fd4e868503f0f3f4366874",
"id": "6c3d3615c1fd4e868503f0f3f4366874"
},
"target": {
"typeURI": "service/security/account/user",
"id": "a53ea0be-cb4b-529b-8648-09999df8f511"
},
"observer": {
"typeURI": "service/security",
"id": "9bdddeda6a0b451e9e0439646e532afd"
},
"eventType": "activity",
"eventTime": "2016-10-07T01:30:53.072992+0000",
"action": "authenticate",
"outcome": "failure",
"id": "272aad18-5fbe-580b-b39a-5f9c3ea42f79",
"reason": {
"reasonCode": "401",
"reasonType": "Maximum number of X login attempts exceeded."
}
},
"message_id": "e95a0285-ac25-43d6-b4d9-406997bba38c"
}
其他最终用户影响¶
无。不会有其他最终用户影响。
性能影响¶
无。不会有额外的性能影响。
其他部署者影响¶
无。不会有其他部署者影响。
开发人员影响¶
无。不会有开发人员影响。
实现¶
主要负责人
gagehugo <gagehugo@gmail.com>
其他贡献者
jaugustine <ja224e@att.com>
lamt <tinlam@gmail.com>
工作项¶
为列出的 PCI-DSS 事件添加通知原因。
添加单元测试。
依赖项¶
此蓝图依赖于以下内容
文档影响¶
在 https://docs.openstack.org/developer/keystone/event_notifications.html 中概述的通知结构将被更新,以包含原因代码。