= Audit trail = Audit trail for private resources. '''As an ''' adminstrator<
> '''I want ''' to be able to see who has accessed private data<
> '''so that ''' I can be sure that only authorized people have seen that data<
> == Rationale == Part of being serious about security is understanding that sometimes mistakes will happen, and we need to do whatever we can to limit the damage of these mistakes. If ever we suspect someone of gaining access to a restricted resource, we need to determine how much the confidentiality and integrity of this resource has been compromised. A key first step is to see who has read from and who has written to the resource. == Stakeholders == * Launchpad developers, especially maintenance team and folk who have handled security issues in the past * LOSAs * GSAs? * Launchpad technical architect == Constraints == * Someone needs to be able to see who has accessed a given thing * Must be able to get this log in a time of panic * Does not have to be on the web UI * Must be restricted to administrators and owners of private resources * Must function for resources that have been or currently are public * Must be able to give who has accessed a single resource * Must not be restricted to web application access, must include * web service / API * librarian access * codehosting * SSH server * Loggerhead * Web access * Anonymous smart server * PPAs * and access to anything in the web application * Must '''not''' be a Big Brother spying on people thing == Subfeatures == This is a sub-feature of [[LEP/PermissionsAndNotifications]] == Workflows == === Who stole the cookies from the cookie jar? === A branch containing proprietary code has been accidentally marked as public. The owner of the branch contacts us through email or IRC and asks us to make sure the branch is private and see if anyone has looked at the branch. Someone from Canonical (a LOSA?) performs an action (visits a web page? runs a script?) that gets a log of all the times when someone has accessed that branch. The log includes who accessed it (where known), how (read or write), when (timestamp) and from where (IP address) over the time period requested by the Canonical operator. The operator examines the log and reports back to the owner on the branch if any unauthorized or suspicious looking activity occurs in the requested time frame. == Success == When we can get access logs on any resource in Launchpad without having to think hard about how to do it. The tough ones will be branches (many methods of access) and projects (so much associated with them). == Thoughts? == * flacoste & jml think that the best solution is an admin script. * What about currency of data? : how fresh does the report need to be ?-- RobertCollins * We probably don't log usernames in logs, and will need to across the site. -- RobertCollins * Do we need change audits, or just access? The use case given is unclear -- RobertCollins