PCI/DSS 有一项要求,即应至少每天检查应用程序日志的安全事件。大多数网络/基础设施专业人员可以查看网络设备日志,但不熟悉实际应用程序。对于大多数安全专业人员来说也是如此。
那么,开发人员真的在加紧满足这一要求吗?如果你必须为一个唯一的工作是审查日志的开发人员写一份工作描述,它会包含什么?
PCI/DSS 有一项要求,即应至少每天检查应用程序日志的安全事件。大多数网络/基础设施专业人员可以查看网络设备日志,但不熟悉实际应用程序。对于大多数安全专业人员来说也是如此。
那么,开发人员真的在加紧满足这一要求吗?如果你必须为一个唯一的工作是审查日志的开发人员写一份工作描述,它会包含什么?
安全/严重事件可能应该单独记录,以便更快地注意到它们。可能通过电子邮件发送它们或使用其他技术,以便自动通知适当的人。没有人应该通过查看应用程序日志来查找安全事件。作为一名开发人员,我会定期检查生产错误。我正在努力获得支持以访问错误,我将教他们如何解释最常见的错误,但我仍将处理不太常见的错误。此外,当我查看 prod 错误时,我会评估最常见错误的消息以改进它们。
所以我认为开发应该定期检查产品错误,确保重要(即安全)日志自动发送给适当的人,并将最常见错误的传输处理传输给其他组(支持基础设施、安全等)。如果某人的唯一责任是查看日志,我不会称他们为开发人员。
当我想诊断我已经知道出错(或可能出错)的事情时,我会查看日志。
对于其他问题,我希望得到通知。
对我来说,“一个唯一的工作就是审查日志的开发人员”是一个矛盾的说法:如果你只是在审查日志,那么你就不是在开发,因此你不是开发人员。
我个人不认为开发人员会加紧满足这一要求。大多数开发人员都关心开发工作......不是应用程序专家会处理的事情。
如果我必须为一个唯一的工作是审查日志的开发人员写一份工作描述,那么它将包含一些关于研究应用程序架构并成为软件使用和实现方面的专家的内容。
在我的公司,我们的要求是应用程序需要运行一段时间而不会造成严重麻烦,以便从 QA 获得发布。
将其视为发布后的 beta 阶段。
所以只要我们在这个应用程序就是生活;但尚未在 QA阶段发布,我每天至少查看一次日志。(当然,我们还有其他方法可以收到错误通知,但我学到了很多关于我自己对用户如何以这种方式操作软件的错误假设的知识)。
我认为这是一项系统管理任务,而不是由开发人员承担的任务。如果需要更改代码库以解决缺陷/错误,日志中的任何问题都将在问题跟踪系统中进行标记,然后由开发主管/产品经理分发给开发团队。