On 2017-04-12 09:09, Lifepillar wrote:
Hi folks,
in a few weeks I will start a short course on the basics of database
security for a group of high-school students with a background in
elementary relational theory and SQL. I plan to discuss the usage of
grant/revoke, RBAC, DAC, and inference in statistical databases.

I'd like to take the opportunity to also engage students about the topic
of privacy (or lack thereof). So, I am here to ask if you have
interesting/(in)famous stories to share on database security/privacy
"gone wrong" or "done right"(tm), possibly with technical details (not
necessarily to share with the students, but for me to understand the
problems). I am asking to this list because I will use PostgreSQL, so
maybe I can collect ideas that I can implement or demonstrate in
practice, or use as case studies.

Thanks in advance,
Life.

One case that I remember from an ancient version of the book "hacking exposed" was about a MySQL server that was running under the root user. A badly written application allowed some SQL injection that let a hacker issue a SELECT INTO OUTFILE query that "selected" a bash script into the .login file of the root user, and the next time the root user logged in, the script would create a new superuser account
for the hacker.

I remember this particular example mainly because of the way that people I told it to reacted; some were of the opinion that the application was at fault for allowing injection,
some thought the DBA was to blame for running as root,
but the vast majority did not know that MySQL could write files, let alone overwrite system files.

Their responses really made it clear that hackers generally know a lot more about how a setup works than it's maintainer does. Just because you cannot think of a way that a right can be exploited

Ever since then I live by the motto; "If it's not absolutely required to be possible,
then it should be made absolutely impossible.".


As for privacy, the same applies; if a website doesn't have to print the real lastname of a user, then the JSON API should not send that to the client. In fact, the API should refuse to send it, even when asked, unless the user who's asking has rights to do so. Again; denied unless specifically allowed.


--
Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

Reply via email to