PostgreSQL 9.1 released
From: | Josh Berkus <josh-AT-postgresql.org> | |
To: | pgsql-announce-AT-postgresql.org | |
Subject: | [ANNOUNCE] PostgreSQL 9.1 Released | |
Date: | Mon, 12 Sep 2011 06:25:44 -0700 | |
Message-ID: | <4E6E0858.5010406@postgresql.org> | |
Archive‑link: | Article |
The PostgreSQL Global Development Group announces the release of PostgreSQL 9.1. This latest version of the leading open source database offers innovative technology, unmatched extensibility, and new features such as synchronous replication, K-Nearest Neighbor indexing, and foreign data wrappers. "PostgreSQL 9.1 provides some of the most advanced enterprise capabilities of any open source database, and is backed by a vibrant and innovative community with proven customer success. PostgreSQL is well positioned for building and running applications in the cloud," said Charles Fan, Sr. VP R&D, VMware. Responding to Users Version 9.1 delivers several features which users have been requesting for years, removing roadblocks to deploying new or ported applications on PostgreSQL. These include: * Synchronous Replication: enable high-availability with consistency across multiple servers * Per-Column Collations: support linguistically-correct sorting per database, table or column. * Unlogged Tables: greatly improves performance for ephemeral data "Heroku runs the largest PostgreSQL database-as-a-service in the world," said James Lindenbaum, Heroku co-founder. "The release of synchronous data replication with 9.1 provides our customers with innovative new ways of protecting mission-critical data, and validates PostgreSQL as one of the fastest-moving datastores available." Advancing the State of the Art Our community of contributors innovates with cutting-edge features. Version 9.1 includes several which are new to the database industry, such as: * K-Nearest-Neighbor Indexing: index on "distance" for faster location and text-search queries * Serializable Snapshot Isolation: keeps concurrent transactions consistent without blocking, using "true serializability" * Writeable Common Table Expressions: execute complex multi-stage data updates in a single query * Security-Enhanced Postgres: deploy military-grade security and Mandatory Access Control "OpenERP has always relied on the enterprise-class features of PostgreSQL to provide a fast, reliable and scalable foundation for the Business Applications supporting our customers' operations every day. Data integrity in highly concurrent and transactional contexts is a critical topic for us, and we're very enthusiastic about the new Serializable Snapshot Isolation of PostgreSQL 9.1!" said Olivier Dony, OpenERP Community Manager. Extending the Database Engine PostgreSQL's extensibility enables users to add new functionality to a running production database, and use them for tasks no other database system can perform. Version 9.1 adds new extensibility tools, including: * Foreign Data Wrappers: attach and query other databases from PostgreSQL * Extensions: easily create, load, and manage new database features In PostgreSQL's 25th year of database development, our community continues to advance database technology with every annual release. Download version 9.1 now and experience the most advanced open source database system in the world. More information on PostgreSQL 9.1: * Release notes http://www.postgresql.org/docs/9.1/static/release-9-1 * Presskit http://www.postgresql.org/about/press/presskit91 * Guide to 9.0: http://wiki.postgresql.org/wiki/What's_new_in_PostgreSQL_9.1 Download 9.1 now: * Main download page: http://www.postgresql.org/download * Source code: http://www.postgresql.org/ftp/source/v9.1.0 * One-click installer, including Windows installer: http://www.enterprisedb.com/products/pgdownload.do ---------------------------(end of broadcast)--------------------------- -To unsubscribe from this list, send an email to: pgsql-announce-unsubscribe@postgresql.org
Posted Sep 12, 2011 16:36 UTC (Mon)
by cmorgan (guest, #71980)
[Link] (5 responses)
Posted Sep 13, 2011 1:24 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link] (4 responses)
Posted Sep 13, 2011 11:06 UTC (Tue)
by Lennie (subscriber, #49641)
[Link] (3 responses)
In all other cases your data is lost (well, it will truncate the table on startup).
Posted Sep 13, 2011 17:20 UTC (Tue)
by dlang (guest, #313)
[Link] (2 responses)
with unlogged tables in postgres the table does not need to be held in memory at all times.
in both cases you do not have safety if the database crashes, but there are many cases where this is acceptable (a database of currently logged in sessions and associated data for example, if you crash people just login again and it's not a major problem)
It would be good to see benchmarks of this, I would expect that for the trivial queries that memcache can handle it will beat postgres, the question is by how much.
remember that unlogged tables still have all the power of postgres, they aren't just a key-value pair like memcached.
Posted Sep 13, 2011 19:22 UTC (Tue)
by Lennie (subscriber, #49641)
[Link] (1 responses)
But maybe it is good to have more choice.
There is a lot of choice at the moment.
Posted Sep 13, 2011 22:07 UTC (Tue)
by dlang (guest, #313)
[Link]
instead this is a way to create temporary tables that you can re-generate easily and make them faster by doing away with some of the safety.
you still have all the power of SQL, including transaction related features. the only thing that you are giving up is safety in the face of a server crash. If you have a table that you can either reload from disk, or recreate from other data, getting a speed increase in using it can be worth the hassle of recreating it if the system crashes.
Posted Sep 12, 2011 16:52 UTC (Mon)
by dpquigl (guest, #52852)
[Link] (37 responses)
There are many really cool uses for SEPostgres that are not government related at all. I had met with Stephen Frost (Postgres Security Guy) and a bunch of the other Postgres developers in the last year to help make Kaigai's case for SEPostgres acceptance. In those meetings we came up with uses cases like PCI Compliance (credit card processing), and HIPA compliance as possible commercial applications of this technology. There are even use cases for this technology in web applications. Kaigai's work on SELinux+ for Apache allows him to control database access based on individual sites (Look up Kaigai's LAPP work). That usage is pretty cool because it means a vulnerability in one web application won't allow it to start reading tables of another web application or start creating tables and inserting data.
Posted Sep 12, 2011 18:05 UTC (Mon)
by Pc5Y9sbv (guest, #41328)
[Link] (15 responses)
Posted Sep 12, 2011 19:31 UTC (Mon)
by dpquigl (guest, #52852)
[Link]
Posted Sep 12, 2011 22:30 UTC (Mon)
by SEJeff (guest, #51588)
[Link] (13 responses)
Remember, security is like an onion. It works best in layers and tastes pretty good fried.
Posted Sep 12, 2011 22:50 UTC (Mon)
by nix (subscriber, #2304)
[Link] (2 responses)
The more I look at that analogy the better it gets.
Posted Sep 12, 2011 23:09 UTC (Mon)
by jamesmrh2 (guest, #31680)
[Link] (1 responses)
I thought they were good for warding off evil.
Posted Sep 12, 2011 23:15 UTC (Mon)
by SEJeff (guest, #51588)
[Link]
nix: Nice addition and so true!
Posted Sep 12, 2011 23:27 UTC (Mon)
by Pc5Y9sbv (guest, #41328)
[Link] (9 responses)
The "owner" of the database (or namespace), who would set RBAC policies, would be the sys op. The sys op would also be the one creating the SEPostgres policies. I think this is an important pragmatic fact.
Posted Sep 13, 2011 12:49 UTC (Tue)
by SEJeff (guest, #51588)
[Link] (8 responses)
Hi, I think you're still completely missing the point of MAC. MAC does *not* replace DAC. MAC complements DAC. With SELinux in a full MLS strict enforcing mode, you can pretty much eliminate the concept of "root" or "sys op" entirely. What if someone in "rogue webapp A" manages to exploit a flaw and install a shell on your webserver and somehow gets root privileges with said shell? With SELinux that "root" shell could be as good as worthless and would still disallow access to data from "secure webapp B" in the proper enforcing mode. Please do take some time and try to understand the subtle differences between DAC and MAC. It takes awhile to wrap your head around.
You're thinking far to course where MAC lets you do things much much more fine-grained. As a SELinux fan, I also use Posix ACLs quite a bit for scary permissioning problems. Does that mean that ACLs should replace standard DAC? Nope. It should be used as a means to complement and further secure what already exists.
Posted Sep 13, 2011 15:47 UTC (Tue)
by Pc5Y9sbv (guest, #41328)
[Link] (5 responses)
I don't think "discretionary" vs. "mandatory" is a binary distinction when we're talking about fine-grained database resources not managed by the kernel. I still don't see how Postgres RBAC is any less mandatory than SEPostgres when it comes to isolating databases, schema, or tables between application tenants.
If I can subvert an application (database client process) I am not able to override the RBAC nor the SEPostgres policies being enforced on database resources. But, if I can subvert all per-site instances of the multi-tenant application, i.e. due to an application exploit rather than a site-specific configuration flaw, I can break down the per-site isolation to access whichever tenant's data I want, simply by controlling the right database client instance that already has privileges granted by RBAC and SEPostgres. Also, if I manage to subvert the database manager process, it seems I would be equally able to suppress the RBAC or the SEPostgres enforcement within that process to access database resources.
What am I missing here?
Posted Sep 13, 2011 16:13 UTC (Tue)
by dpquigl (guest, #52852)
[Link] (1 responses)
Posted Sep 13, 2011 16:46 UTC (Tue)
by raven667 (subscriber, #5198)
[Link]
Just to be clear, for a sysadmin managing an SELinux system it isn't that hard to work with and so it very likely provides a useful protection that is worth the effort. For the sysadmin who just needs to tweak policies or write rules for home-grown software I did not find it nearly as difficult as one would be led to believe. I think more effort has been spent in complaining about it than in learning how to use it.
Posted Sep 13, 2011 16:19 UTC (Tue)
by dpquigl (guest, #52852)
[Link] (2 responses)
Posted Sep 13, 2011 17:24 UTC (Tue)
by Pc5Y9sbv (guest, #41328)
[Link] (1 responses)
If I attack the application, I might subvert just one instance, for example by hijacking the web client that has site-level "super user" privileges to access data I shouldn't see or by using a code exploit that depends on invalid/unsafe data stored in that application instance. Neither RBAC nor SEPostgres helps here, because it still looks like the application code accessing its normal database content.
If I find an exploit in the web application code, not depending on the site-specific data content, I can repeat the attack on whichever site I want, and I can also access whatever data that Postgres would normally supply to that application instance. This is no different than if the "site" instances were each on physically separate servers with completely independent Postgres servers too. We see these sorts of exploits published all the time, due to the many layers of libraries and frameworks used for convenience on the web.
To do fine-grained restrictions, you would need to assign roles and/or context to each remote web user. This is a bootstrapping problem of getting from Internet-originated TCP stream containing an HTTP request to a restricted context suitable for evaluating the request. This means trusting Apache httpd and whatever web application components are involved in authentication and context establishment, much as we trust sshd today in establishing SE-Linux context for remote users.
To make SEPostgres "more mandatory", it would require pushing the access enforcement back into the kernel, e.g. by applying different SE-Linux contexts to different filesystem objects storing portions of the data, and having the query engine run in a more limited context for each client/query and making it tolerate refusals to access some elements of the data store. For example, each table is a separate file that could be protected to different levels, but you'd have to change the storage format to support column or row-level protections. You could then have the query engine act as if denied data does not exist. But this would probably require relaxing certain data integrity constraints, since they require a unified, global view of the existing data to validate them. But, you are still trusting parts of Postgres to act like sshd in establishing the right process context for clients.
Posted Sep 13, 2011 19:45 UTC (Tue)
by dpquigl (guest, #52852)
[Link]
Your 5th paragraph is an interesting idea but would require major rearchitecting of the database to do that. The idea at the base of it though is should the database server be in the TCB. If you can have it be in the TCB then having it act as the object manager is acceptable. I don't think however that we're trusting Postgres to establish the process context. In this case the context is still coming from the kernel. Postgres uses a function called getpeercon which has the kernel return the context of the user on the other end of the connecting socket. In the case of a CLI program its the program's context in the case of apache its the worker thread context. From there Postgres uses a call in libselinux that takes this context and the label on the database object in question and gives it to the kernel to make an access control decision. After that it is up to Postgres to enforce the decision.
Your design makes me think that you've worked on MLS databases before (I'm actually wondering who you are) since it would allow you to do separation of different sensitivity levels and compartments. There are people who currently try to do that with Postgres and what they have encountered is that once you start developing the lattice you get a ton of servers each with their own contexts. Instead by making Postgres be the object manager and assigning labels to the database objects themselves it allows more relevant decisions to be made. Like whether this Top Secret trusted procedure can be executed by a secret level process. Or another example that a secret process can run a trusted procedure that has access to TS data because the procedure is known to scrub it down to a S level. The idea is that by virtue of being a database Postgres has better knowledge about the objects in itself. It definitely is better suited to make decisions than the kernel is. So we make it what's called a userspace object manager. The kernel still gets to make the access control decision however the userspace object manager enforces it.
The reason the kernel can still make these decisions is because of the Flask architecture which separates the policy from the mechanism. Inside flask the policy exists as a set of masks which say if I'm given identifier a and it wants to act on an object of a certain type with identifier b here are the permissions it has (which is a bitmask). it knows nothing about what the object classes are for the user space components. It just knows that user space asked it for a decision based on 3 integers and a bitmask.
Posted Sep 13, 2011 15:59 UTC (Tue)
by foom (subscriber, #14868)
[Link] (1 responses)
No, if someone in "rogue webapp A" manages to exploit a flaw to get root, *that same flaw* can be used to become "super-root", bypassing all SELinux access control. SELinux *does not* protect you if the attacker has a kernel exploit.
Posted Sep 13, 2011 16:03 UTC (Tue)
by SEJeff (guest, #51588)
[Link]
http://www.coker.com.au/selinux/play.html for an example of why "root" is not so powerful in a full MLS SELinux environment.
Posted Sep 13, 2011 1:29 UTC (Tue)
by Cyberax (✭ supporter ✭, #52523)
[Link] (19 responses)
(PS: and yes, I have actual military experience)
Posted Sep 13, 2011 4:57 UTC (Tue)
by dpquigl (guest, #52852)
[Link] (18 responses)
1) In the entire history of SELinux there probably haven't even been 80 people that have worked on it.
There will always be people who don't like SELinux for some reason or another. However considering SELinux stopped exploitation of a KVM vulnerability in May of this year I believe it actually is working when it is needed the most. The presentation at blackhat states you need a kernel level privesc to bypass SELinux in addition to the KVM vulnerability. Which definitely raises the bar (although not to an impossible level).
Posted Sep 13, 2011 12:45 UTC (Tue)
by SEJeff (guest, #51588)
[Link] (2 responses)
Lets see how many people have worked on SELinux via our friend git log...
jeff@omniscience:~/git/linux-2.6/security$ (master) git log --pretty="%an" selinux/ | tr 'A-Z' 'a-z' | sort -u | wc -l
That shows 133 separate patch authors to code in the security/selinux/ subdirectory. That doesn't even begin to count the number of NSA analysts who worked on the design, a painstaking and > 1 person effort no doubt. If I manually remove a few duplicates (middle initials), that still leaves 128 separate patch authors.
I also think it is amusing (#2) that with all of the R&D MSFT has put into Windows, they have exactly 0 shipping MAC solutions. Linux has 4 integrated upstream I can think of without looking.
Sun at least had the Trusted Solaris Extensions, which didn't catch on as much as the competing Linux-based solutions did. There is also TrustedBSD but still no MAC in windows.
Pot, meet kettle, you're both black. Please provide examples instead of baseless claims :)
Posted Sep 13, 2011 14:33 UTC (Tue)
by dpquigl (guest, #52852)
[Link] (1 responses)
Something that people don't realize is the actual core group of developers over the development of SELinux has never been that large. People seem to think there is a huge group of people at the agency working on it when in reality its just a hand full of people. The initial design for type enforcement was done by one person a long time ago and the design for Flask and SELinux was done by two people at the agency (My former bosses). The initial implementation for SELinux was done by one man(Steve Smalley).
It is true that windows does not have a MAC implementation but I didn't say they did. However with Vista they did introduce a mandatory integrity system and lucky for Microsoft they hired the creator of AppArmor onto their security team so maybe they will come up with one. You're right TSOL and Solaris TX would have been better comparisons. Its a shame that Sun took a step back with TX and moved to zone based labeling instead of doing fine-grained labeling again like in TSOL. I was told that they are fixing that in Solaris-TX however that last I heard that wasn't done yet.
Posted Sep 13, 2011 14:41 UTC (Tue)
by dpquigl (guest, #52852)
[Link]
git log --pretty="%an" selinux/ | sort -nr | uniq -c
Posted Sep 13, 2011 15:21 UTC (Tue)
by PaXTeam (guest, #24616)
[Link] (1 responses)
no, it didn't, unless there's some magic capability that prevents use-after-free bugs from being exploited in which case i'm sure many other projects would like to hear about it and make use of it ;).
> [...]I believe it actually is working when it is needed the most.
this is just spreading a false sense of security. as a sidenote, MAC wasn't even designed for exploit prevention, it's no wonder it can't do much about exploits.
> The presentation at blackhat states you need a kernel level privesc to bypass SELinux [...]
that's a tautology, you obviously need a kernel bug to bypass a kernel feature. whether an attacker *wants* to go there is independent of his ability to exploit the kvm bug itself which already gives him plenty of privileges he didn't otherwise have, despite SELinux and whatnot.
Posted Sep 13, 2011 15:40 UTC (Tue)
by dpquigl (guest, #52852)
[Link]
Posted Sep 14, 2011 1:32 UTC (Wed)
by Cyberax (✭ supporter ✭, #52523)
[Link] (12 responses)
And in the end, SELinux doesn't really matter that much. New local kernel exploits are discovered at least several times a years if not monthly. And SELinux can't do a thing against them (except make the life of admin harder during investigation and cleanup - been there, done that).
Just look at the recent hacks of kernel.org and linux.com - had they used SE* products? Nope, because they are way too complex. And probably would have been useless in the end.
Can we do better? Probably not. Linux fundamentally is not secure, and can't be made secure until it's rewritten in a safe language. That's not going to happen soon (if ever).
Ditto for PostgreSQL. Can SELinux be used to make it really secure? I doubt it - there's no way to really isolate security roles. However, ability to attach labels to database objects really rocks - I can use it in my application to do fast per-user views.
Posted Sep 14, 2011 22:25 UTC (Wed)
by cmccabe (guest, #60281)
[Link] (11 responses)
Higher-level languages are not immune to security problems. Just look at the huge number of Javascript cross-site scripting exploits, SQL injection attacks, and insecure shell scripts out there.
A microkernel architecture would help a little bit, but again, it's not a cure-all. For example, if you somehow compromise the filesystem component of a microkernel, you can probably simply add another root user to /etc/passwd and reboot. If you can modify the ACPI bytecode, you can get root that way. If you have access to the PCI bus, you can probably modify memory anywhere, which is again equivalent to root.
What it comes down to is that security is hard. Careful use of static analysis can probably blunt the sharpest edges of C, and various sandboxing technologies can help for higher level code, but there are no magic bullets.
Posted Sep 14, 2011 23:54 UTC (Wed)
by nix (subscriber, #2304)
[Link] (1 responses)
Security: never gonna happen. So, in brief, we're all doomed.
Posted Sep 16, 2011 9:53 UTC (Fri)
by mpr22 (subscriber, #60784)
[Link]
Posted Sep 15, 2011 1:16 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (8 responses)
I'm a security pessimist. Right now there's no way to secure Linux, in practice almost every vulnerability in almost any software can in principle be exploited to gain full root access.
But that shouldn't be so! We have safe languages which IMMEDIATELY limit the number of attacks. Even the worst SQL injection attack won't be able to give attacker root access and install a backdoor in your system, if database and kernel are written in safe a language.
Secure hardware is another issue, but we already have IOMMU which should help.
Posted Sep 15, 2011 4:58 UTC (Thu)
by dpquigl (guest, #52852)
[Link] (4 responses)
[1]http://web.nvd.nist.gov/view/vuln/search-results?query=JR...
Posted Sep 15, 2011 12:52 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (3 responses)
Additionally, JVM's trust model and Code Access Security in CLR are braindead and should die.
Posted Sep 15, 2011 18:58 UTC (Thu)
by dlang (guest, #313)
[Link] (2 responses)
Posted Sep 15, 2011 20:30 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link] (1 responses)
There will be problems with insecurely JIT-ed machine code, but I believe they can also be solved.
Posted Sep 22, 2011 4:53 UTC (Thu)
by cmccabe (guest, #60281)
[Link]
But lets assume that "this time is different" and you really succeed in rewriting absolutely everything in ${LANGUAGE}. Well, once you have this perfect operating system (we'll assume it's bug-free, despite being written by humans), running on perfect hardware which somehow exists, you'll still get hacked.
Why? Because you'll give a login to someone who has a password sniffer installed on his computer. Or put his password on a post-it note near the monitor. Or who uses the same login for multiple accounts, one of which gets hacked. Or who uses a password that can be guessed. Or who you never should have trusted in the first place. Or any one of the million ways that your security can be breached that have nothing to do with what language your operating system is written in.
Posted Sep 15, 2011 7:32 UTC (Thu)
by dlang (guest, #313)
[Link] (1 responses)
Posted Sep 15, 2011 12:53 UTC (Thu)
by Cyberax (✭ supporter ✭, #52523)
[Link]
And picking on Linux is fair, because it's what I'm using.
Posted Sep 22, 2011 4:43 UTC (Thu)
by cmccabe (guest, #60281)
[Link]
But "most secure we have" does not equal "magic bullet." If you've ever written some Java code that throws an exception when the user gives you bad data, and then not caught that exception-- congratulations, your server now has a denial-of-service vulnerability. If you've ever not checked the credentials of a user before serving them data-- congratulations, there's another security hole.
If you like Java, you should check out Google Go, which is also statically typed, but actually fixes a lot of the problems that Java has (in my opinion.)
[1] Well, actually you can load classes dynamically in Java. But from what I understand, this ability can be locked down when necessary.
Posted Sep 13, 2011 4:56 UTC (Tue)
by jberkus (guest, #55561)
[Link]
Posted Sep 13, 2011 4:41 UTC (Tue)
by butlerm (subscriber, #13312)
[Link] (1 responses)
CREATE OR REPLACE VIEW account_entry AS
This allows a secure multi-tenant database (e.g. for software as a service applications) with an arbitrary number of record owners, each of whom cannot see or modify the rows that belong to any other owner, nor inadvertently give them away. No need for a separate database for each tenant. Just a simple implementation of row level security.
Posted Sep 13, 2011 4:55 UTC (Tue)
by jberkus (guest, #55561)
[Link]
See also the Veil project for a framework built around this concept:
Posted Sep 13, 2011 19:08 UTC (Tue)
by Richard_J_Neill (subscriber, #23093)
[Link] (3 responses)
Applications which use backslashes to escape quotes in strings will break.
This used to work; now it will fail. I'm not certain whether or not this allows a different class of SQL injection attack.
Incidentally, Postgresql are, according to the SQL spec, correct: the following are the "right" way to do it:
However, it seems a little risky to change such a well-established default.
Posted Sep 13, 2011 19:16 UTC (Tue)
by Richard_J_Neill (subscriber, #23093)
[Link] (2 responses)
$sql = "SELECT 'Some \'$quoted\' text' ...";
where $quoted comes from user-input, having being sanitised with addslashes()
is now vulnerable, if the user input is, for example:
This is built up as:
$sql = "SELECT 'Some \';DROP TABLE students --\' text' ...";
and if the backslashes aren't interpreted as escapes, we have all sorts of fun...
Posted Sep 15, 2011 8:44 UTC (Thu)
by rleigh (guest, #14622)
[Link] (1 responses)
Regards,
Posted Sep 15, 2011 18:29 UTC (Thu)
by dlang (guest, #313)
[Link]
Posted Sep 14, 2011 6:51 UTC (Wed)
by paxillus (guest, #79451)
[Link] (3 responses)
UPDATE accounts SET (contact_last_name, contact_first_name) =
This is not currently implemented the source must be a list of independent expressions. "
This is what I would like to see soon ...
Posted Sep 15, 2011 10:42 UTC (Thu)
by brunowolff (guest, #71160)
[Link] (2 responses)
Posted Sep 15, 2011 10:49 UTC (Thu)
by andresfreund (subscriber, #69562)
[Link] (1 responses)
UPDATE accounts SET contact_last_name = salesmen.last_name, contact_first_name = salesmen.last_name FROM salesmen WHERE salesmen.id = accounts.sales_id;
Posted Sep 15, 2011 17:26 UTC (Thu)
by paxillus (guest, #79451)
[Link]
PostgreSQL 9.1 released
PostgreSQL 9.1 released
PostgreSQL 9.1 released
PostgreSQL 9.1 released
PostgreSQL 9.1 released
PostgreSQL 9.1 released
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
In the given scenario of a multi-tenant web service, where the owner would be the system operator, isn't the distinction between MAC and DAC a bit elusive?
The "owner" of the database (or namespace), who would set RBAC policies, would be the sys op. The sys op would also be the one creating the SEPostgres policies. I think this is an important pragmatic fact.
"""
DAC vs. MAC in SEPostgres
DAC vs. MAC in SEPostgres
DAC vs. MAC in SEPostgres
DAC vs. MAC in SEPostgres
DAC vs. MAC in SEPostgres
DAC vs. MAC in SEPostgres
SEPostgres
SEPostgres
SEPostgres
1) It requires one to have a rank of at least colonel and staff of 80 people to make it work.
2) It costs 100 times more than 'civilian' models.
3) It's full of brain-dead solutions.
4) And in the end it doesn't work when it's needed most.
SEPostgres
2) If you take the R&D dollars put into SELinux I guarantee companies such as Microsoft and Sun have spent far more on their security products.
3) I'd like a real example of this rather than baseless claims.
4) Again examples instead of baseless claims.
SEPostgres
133
1.) SELinux
2.) AppArmour
3.) SMACK
4.) Tomoyo
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
> it's rewritten in a safe language. That's not going to happen soon (if ever).
SEPostgres
And bug-free silicon to run it on.
SEPostgres
SEPostgres
SEPostgres
[2]http://blog.cr0.org/2010/04/javacalypse.html
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
SEPostgres
PostgreSQL 9.1 released
SELECT * FROM z_account_entry a
WHERE a.owner = package.current_owner
WITH CHECK OPTION;
PostgreSQL 9.1 released
http://veil.projects.postgresql.org/
Backslash escaped quotes
For example, at the psql prompt, type:
SELECT 'I\'m singly quoted';
SELECT 'I''m singly quoted';
SELECT E'I\'m singly quoted';
Backslash escaped quotes
";DROP TABLE students --"
Backslash escaped quotes
Roger
Backslash escaped quotes
PostgreSQL 9.1 released
(SELECT last_name, first_name FROM salesmen
WHERE salesmen.id = accounts.sales_id);
http://www.postgresql.org/docs/current/static/sql-update....
PostgreSQL 9.1 released
PostgreSQL 9.1 released
PostgreSQL 9.1 released