Hot answers tagged

36

It's like, "Put the jewelry box outside the house so that robbers won't bother getting in for the TV?" Yes, it is exactly like that. If you don't care about the value of the database, relatively speaking, then sure it makes sense to leave it outside - if the assumption is that the application is horridly insecure, but you need to put it up anyway ...


27

SANS' "Making Your Network Safe for Databases" (http://www.sans.org/reading-room/whitepapers/application/making-network-safe-databases-24) reads a little dated in some sections, but provides a decent "for dummies" level of guidance in the direction you're after. You could also exhaust yourself poking through the US NIST's resource centre ...


14

If the database holds card details, it can be very easily argued that you aren't fulfilling the PCI DSS requirement on appropriate protection. It also fails the sanity checks on single points of failure, and protecting your core assets. If the data is worth billions, why would you not spend a few thousand more to add layers of protection? Industry good ...


12

ARM processors are a 32-bit architecture, and are relatively inefficient at doing 64-bit arithmetic operations: when they must compute a 64-bit addition, they must do so with two 32-bit additions and some carry propagation. This is somehow equivalent to x86 used in 32-bit mode (except that recent enough x86 have access to SSE2 opcodes, which offer ...


11

If you're looking for non-language/framework specific stuff, you could start with a pair of books on security engineering Security Engineering by Ross Anderson Engineering Security by Peter Gutmann Usefully both are available for free online. If you're looking for more platform specific stuff, if you haven't already I'd recommend looking through ...


9

Most of these operations are "trivial": they replace combinations of two or three existing opcodes. For instance, the BLSR type of instruction is, as specified in the page you link to, equivalent to a subtraction followed by a bitwise AND. This could already be done. Extra operations don't harm, and compilers will benefit from them, and, undoubtly, some ...


9

If you are suggesting that the database server gets moved from being in the same security zone as the web server to being in the same security zone as some internal systems, then one could reasonably conclude that you are reducing security. If status quo is that web server and database server are both in the DMZ, and no connections are permitted from DMZ to ...


8

The biggest risk in any language is to have developers who do not master the said language. Secure development requires thinking of all "corner cases" and it does not work unless the developer knows what he does at all points. A competent C programmer who does not know Java will do more secure code in C than in Java (and vice versa). A case can be made that ...


6

Actually, almost all of the CPU on the market, save for the very small ones meant for low-power embedded devices, offer "hardware-enforced isolation". This is called a MMU. Synthetically, the MMU splits the address space into individual pages (typically 4 or 8 kB each; it depends on the CPU architecture and version), and whenever some piece of code accesses ...


6

These are the golden rule of computer security: "It is impossible to hide anything from a competent user with system administrator privilege" and "any competent user with physical access to the device can always elevate himself to system administrator". You cannot hide any information from someone with physical control of the machine. If the secret you are ...


5

To some extent, all the Web/Cloud hype is about a new model (or, maybe, an old model with a new layer of paint). With "apps", applications are quite contained and isolated from each other. With the "apps" model as is employed on iOS / Android system, a further twist is applied in that only "allowed" apps can be installed. The user can still choose which apps ...


5

If you know what you're doing, using WCF isn't difficult. If you know what you're doing, using WCF with an STS isn't terribly difficult. If you don't know what you're doing it's all terribly difficult. Who am I kidding, it's WCF, so it's all difficult. :) Generally speaking your architecture falls into the federated trust category, as you're using the STS ...


5

AvID has already covered the main question, but coming at this from a slightly different angle most firewalls will support multiple interfaces and can provide control of traffic between the interfaces. Configuring the multiple interfaces to host each of the aspects of the solution (frontend, middleware, backend) would reduce the risk of onward compromise of ...


4

My gut feeling is that the MVC model, or, for that matter, any cleanly defined model, tends to decrease security risks. Although things are not that clear. From a very general point of view, security issues are a special kind of bug, on the implementation or on the structure (possibly the specification). Knowledge dilution is a huge risk factor: bugs happen ...


4

You might want to read this http://www.x86-64.org/documentation/abi.pdf Essentially x86 and x64 are different in the way that they work. The new ABI describes the new ways in which it does with Leaf and Non Leaf calls, exception handling and unwinding. Since the purpose is to essentially overflow - you need to understand the new ABI how its working and ...


4

A few things from a Secure OS: https://en.wikipedia.org/wiki/OpenBSD_security_features Exploit Mitigation Techniques: an Update After 10 Years: http://www.openbsd.org/papers/ru13-deraadt/ http://tech.yandex.com/events/ruBSD/2013/talks/103/ http://www.openbsd.org/papers/ or: on Youtube: "passwords^12"


4

Most malware depends on both knowledge of the operating system and the (hardware) instruction set. That is, most malware is written for a particular class of hardware running a particular operating system. The instruction set of a typical mainframe, e.g. IBM zSeries, is quite different from the Intel x86 instruction set. Although mainframes can and do run ...


4

Assuming you are attempting to persuade them to do it rather than (necessarily) convince them it is correct: Explain that when their large customers and prospects come to do a security audit they will fail. If the obstacle is the business then that will be the only sufficient, and only necessary, reason.


4

You at least need : documents to describe processes involved in certificates life cycles : *request for a new certificate *certificate revocation *certificate renewal both for administrators and users (probably two different documents for each process) a general architecture document, describing CA levels and their purpose That's in my opinion ...


4

If you distinguish between web server, application server and database then you actually mean front end, business logic and back end (storage). This is also called a multi-tier architecture with presentation tier, application tier and data tier. In this case the application server will not simply pass through any requests from the web server but only allow ...


3

The greatest problems of today's desktop PC environment: allowing arbitrary applications access to all the data that a user has; giving applications unlimited access to the Internet and sensitive hardware (mike, the camera, GPS chip, Bluetooth etc.); proliferation of idiot users; emergence of a business culture where stealing and selling users' personal ...


3

First, there is something weird with your example. Current processors which implement the amd64 mode (aka x86_64 aka x64 aka a bunch of other names) don't use the full 64 bits of address registers. They use 48-bit addresses, and make it mandatory that bits 48 to 63 are identical (as if it was "sign extension"). Thus, an address like 7fffffff_ff480a90 will ...


3

What I have done in the past when porting something between languages or working on something that will need to work really closely with a different language is to look up specific language issues on the OWASP website. C / C++ is: https://www.owasp.org/index.php/Category:C Java is: https://www.owasp.org/index.php/Category:Java Hopefully that helps as a ...


3

You need an application layer as a filter because most* database systems do not allow permission handling which is fine-grained enough to handle multiple users. Usually* you can create users with different read- and write permissions, but usually* these are designed for up to a few dozen users and do not scale well for thousands or even millions of users. ...


3

"More secure" is unconstructive Thinking something is "more secure" often leads to poor decision making. All sorts of things are more secure while being a bad idea. It's more useful to ask "Does this add meaningful security?" and "Is the security gained a reasonable tradeoff between cost and benefit?" Tiers don't add much security Most infosec books ...


2

In slightly different words to Thomas: You do potentially increase the attack surface any time you increase the number of devices, layers, roles, developers purely as you have more variables. That said, you do at least have a framework which should ensure that security issues, including those brought by a more complex structure, are identified and ...


2

On first glance, it appears to be ingenious and a double layer of security. On further thought, it is quite similar to tokenization of credit cards, with 1 pro and 1 con as opposed to tokenization: pro - there are two layers of encryption in two separate systems con - full credit card numbers, although encrypted, are still stored in the business system ...


2

Since your DMZ host is basically a firewall, the design you described does not make sense, you are completely right. This is no better than one-interface firewall (which is the weakest possible architecture). When using a 2-interface firewall, the two interfaces have be on different networks - e.g. "internet" and the DMZ or the DMZ and the intranet. At the ...


2

Let's look at them in turn. Remote Access. Secure enough if you do it properly, usually not considered because it is the most expensive option and it really has no advantages over other options if you aren't doing anything fancy. Native client with secure networking built in. Secure enough if you do it properly, but it requires you to write security ...


2

If you're looking for more specific application security architecture guidance, I'd be inclined to look at OWASP materials as they're more focused in this area. Project like the OWASP Developer Guide, OWASP Application Security Verification Standard or OWASP Software Assurance Maturity Model could be of use in this context



Only top voted, non community-wiki answers of a minimum length are eligible