Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p>That's a stunningly thought-provoking question, and I'm surprised that you haven't received better answers. </p> <h2>Summary</h2> <p>Everything you would do for an external-facing application, and then some. </p> <h2>Thought Process</h2> <p>If I'm understanding you correctly, then you are asking a question which <em>very</em> few developers are asking themselves. Most companies have poor defence in depth, and once an attacker is in, he's in. Clearly you want to take it up a level. </p> <p>So, what kind of attack are we thinking about?<br> If I'm the attacker and I'm attacking your intranet application, then I must have got access to your network somehow. This may not be as difficult as it sounds - I might try spearphishing (targetting email to individuals in your organisation, containing either malware attachements or links to sites which install malware) to get a trojan installed on an internal machine. </p> <p>Once I've done this (and got control of an internal PC), I'll try all the same attacks I would try against any internet application. </p> <p>However, that's not the end of the story. I've got more options: if I've got one of your user's PCs, then I might well be able to use a keylogger to gather usernames and passwords, as well as watching all your email for names and phone numbers.<br> Armed with these, I may be able to log into your application directly. I may even learn an admin username/password. Even if I don't, a list of names and phone numbers along with a feel for company lingo gives me a decent shot at socially engineering my way into wider access within your company. </p> <h2>Recommendations</h2> <ul> <li>First and foremost, before all technical solutions: <strong>TRAIN YOUR USERS IN SECURITY</strong></li> </ul> <p>The common answers to securing a web app: </p> <ul> <li>Use multi-factor authentication <ul> <li>e.g. username/password and some kind of pseudo-random number gadget. </li> </ul></li> <li>Sanitise all your input. <ul> <li>to protect against cross-site scripting and SQL injection. </li> </ul></li> <li>Use SSL (otherwise known as HTTPS). <ul> <li>this is a pain to set up (EDIT: actually that's improving), but it makes for much better security. </li> </ul></li> <li>Adhere to the principals of "Segregation of Duties" and "Least Priviledge" <ul> <li>In other words, by ensuring that all users have only the permissions they need to do their jobs (and nobody else's jobs) you make sure they have the absolute minimum ability to do damage.</li> </ul></li> </ul>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload