Clark Wilson Integrity Model: Rules What is the conceptual difference between certification rules and enforcement rules in the Clark Wilson model?

Am I on a wrong path when I assume that certification rules ensure external integrity and enforcement rules ensure internal integrity?

I would say that the conceptual difference is one of primary functionality.

Certification Rules lay out how the system certifies that a particular data object is in a valid state (according to another set of rules).  Enforcement Rules make sure that already-certified data object stays certified (maintains its integrity) as the system interacts with it.

To be more specific using Clark Wilson IM vernacular:

Certification rules specify how to guarantee that a CDI has been subjected to integrity verification procedures.  Enforcement rules specify how the system must maintain the certified CDI as transactions happen.


Bluetooth Low Energy (BLE) and Man-in-the-Middle attacks? In the "official" Bluetooth blog, they talk about the BLE pairing mechanism, and how during phase 2 (authentication) the exchange of keys are used to protect against MITM attacks.  I don't see how that is possible.

If the attacker creates a device (dx) that sits between BLE device 1 (d1) and BLE device 2 (d2), and simply passes everything through, then as d1 and d2 are exchanging keys, dx is invisible to d1 and d2.  After pairing, dx can monitor communications and then, when it decides to attack, it can prevent some packets from getting through, and replay packets it saw previously (all without ever decrypting the packets).

How does BLE pairing, or specifically exchanging keys, have any impact on this?

From the Bluetooth Sig Proprietary Information Security :

  Signed Data Bluetooth with its low energy features supports the
  ability to send authenticated data over an unencrypted transport
  between two devices with a trusted relationship. This means that in
  some circumstances where the communication channel is not encrypted,
  the device could still have a method to maintain and ensure the data
  authentication. This is accomplished by signing the data with a CSRK.
  The sending devices place a signature after the Data Protocal Data
  Unit (PDU). The receiving device verifies the signature and, if the
  signature is verified, the Data PDU is assumed to come from the
  trusted source. The signature is composed of a Message Authentication
  Code generated by the signing algorithm and a counter. The counter is
  used to protect against a replay attack and is incremented on each
  signed Data PDU sent.

During the pairing mechanism, both device generates a random sequence number. Sequence number (counter) is incremented on each pach packet. They are usefull to re-order packets if they are not received in the right one, but they are also usefull against replay attacks.

For example, (d1) and (d2) are pairing. (d1) has choosen a random sequence number, 123456  and send "hi" to (d2). (dx) intercept it.
(dx) can try 2 things :

Replay the packet with sequence number 123456, in this case, it will be rejected by (d2) because sequence number should be superior than the last one (depending of the protocol, it must be previous_sequence_number+1 or previous_sequence_number+previous_message_length) .
Replay the packet with sequence number 123457, in this case, the signature will be invalid and the message will be rejected.


Did someone connect to MySQL from outside? I have an Ubuntu server with a MySQL database that is only accessed from localhost.

Is there any default mechanism in MySQL (or Ubuntu) that logs connection attempts, so I can check if the database has been (attempted) accessed from the outside?
If not, is it possible to enable such a mechanism?

The best would be to have a logging mechanism that logs only remote attempts, and not local (legitimate) access which there would be millions of, so it would be easy to spot the remote ones.

To enable log:

In /etc/my.cnf:

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

There are botnets scanning for ports 3306, so if you didn't had a password for root account then definitely yes.

Such access is not normally logged because on servers with PHP there's usually one new connection per each request, so logging it is a bit of overhead.

Make sure you have root password setup. You can use MySQL Workbench to inspect users. Check if new connections are accepted only from localhost (e.g. users permitted are only from localhost - 127.0.0.1).

On the side note, if you use MySQL for development of you own application you may be better with upgrading it to newer version. It is because MySQL as part of OS is VERY old because of old applications compability. Newer versions allow for creation of different class of apps, especially if it comes to reporting and documents. You can add new repo and do apt-get update. In Centos7 for example there's MariaDB, and in latest Fedora there's version 10.1 by default.


Remote OS Command Injection - scanned by ZAP A web scan by ZAP indicated that my website is vulnerable to a Remote OS command injection. Details are below:
This is the URL the scanner found vulnerable:
https://[redacted]/[redacted]?address=ZAP%22%26sleep+15%26%22&email=foo-bar%40example.com&message=&name=ZAP&phone=9999999999

This is the exploit:
ZAP"&sleep 15&"

Is this considered a true exploit or just a false positive?

In my case every time I see this vulnerability it is false positive, this command is "sleep", so if the response long, and takes approximately 15 seconds, which can happen for various reasons (network problems, VPN problems) OWASP ZAP return this as vulnerability.
You should run this request several times and see if every response takes approximately 15 seconds, if not, I would classify this as false positive.


How to trace who sent mail with attachment Yesterday someone emailed me a malicious .bat script.

I have his email (he used Gmail) and of course I can't track him using mail header. So I checked the .bat file details but I only see my computer name.

So how can I track him down using the file's information? Is there anyway else?

You should contact Gmail abuse, if the headers clearly show the message is actually from Gmail and the message is against their policies or terms of use. If the From: address is spoofed, you can use mail headers to track the actual originating server, but it's likely a hijacked server without any actual connection to the offender. It's still worth to contact them, just to give them an advice to check their systems and remove possible malware.

The file may or may not contain some clues, but if it only causes harm without any benefit to the attacker, there's probably nothing. However, most malware try to benefit somehow, for example sending your confidential information somewhere, and following that information might get you somewhere. On frauds involving money the money is usually easier to track, but that would be job for the police. Frankly, that's when the damage has already occurred, and we try to prevent it.

Best way to handle this would still be to remove the message and move on. Spammers have been among us for decades and they aren't going anywhere. Sometimes they even come up  with something new, like the "self-abusing" blackmail scam; with Bitcoin involved it's impossible to track the money, and the perpetrator doesn't need access to the mailbox for the originating address.


Extract information about certificate from a .pfx file without the password Im trying to find a way to retrieve specific information about a certificate (expiration date, fingerprint etc) without the need to provide the password to decrypt the private key.

Just to be clear, I have no need to decrypt the private key, or obtain any information about or from it, only from the certificate.

Is this possible via openssl?

Assuming the file is actually encrypted (its optional - at least in the file spec) I don't believe so.

Newer .pfx files are PKCS Archives. These support encryption both at the file and container level - but seeing as the entire key would be in a single container I don't believe it would be possible.


What is the best way to enhance weak keys for mysql aes_encrypt() function I need to store data in mysql database using aes_encrypt() function.

The key in the case of above mentioned function is padded with zero when its length is less than 16 bytes.

My question is: How can I perform a key stretching with something like PBKDF2 in mysql to enhance the strength of weak keys.

Also I would like to know that if I use a hex value directly from a function like SHA2('Key', 512) as my key for the aes_encrypt() function, will it reduce the strength of the key because there will only be 16 characters in the character set every time a key is generated.

The key in the case of above mentioned function is padded with zero when its length is less than 16 bytes.

That's indeed something you need to address. AES keys should always be 128, 192 or 256 bits in size, and indistinguishable from random to an attacker.

  My question is: How can I perform a key stretching with something like PBKDF2 in mysql to enhance the strength of weak keys.

I'd strongly suggest not to perform such a function within the database queries itself. PBKDF2 (or any other function) needs to be as fast as possible to make the possible advantage of attackers as small as possible. Otherwise the work factor (the iteration count for PBKDF2) cannot be large enough.

Try and find an optimized version of PBKDF2 and integrate it with your software.

  Also I would like to know that if I use a hex value directly from a function like SHA2('Key', 512) as my key for the aes_encrypt() function, will it reduce the strength of the key because there will only be 16 characters in the character set every time a key is generated.

The output of SHA-2 functions consist of bytes, not hexadecimals. It might be that your implementation automatically translates this to hexadecimals. In that case you need to specify raw output explicitly or you need to decode the hexadecimals to use it as AES key.

The problem with just SHA-2 is that it doesn't expect a salt nor a work factor. This means that dictionary attacks and rainbow tables are valid attack vectors. This is why you need a Password Based Key Derivation Function such as PBKDF2.

PBKDF2 is only not needed if the input "password" has sufficient strength. But for AES encryption, you'd need something close to 128 bits of randomness, and that's unlikely to be provided by any password in itsef.


Publish an image to github with rsa keypairs, what are the security risks? (NOT PRODUCTION) I have Dockerfile for an image that I would like to publish to docker hub so it can be easily available to users without building the image themselves.
The whole thing is meant for labbing and tutorial purpose, NOT production.

The container run from that image can be accessed by SSH using public key, for that, the public key need to be generated and placed in Dockerfile directory before exported to docker hub, without it dockerhub cannot build the image.

I would like to generate a separated key pair (public+private) from my PC, and make them both available for users.
Of course the keypair is only for the image I am publishing.

Though each key pairs are different, is there any security risk for exposing the secret key?

Must assume key harvested on upload. Suggest first-run-script.
There seem to be bots that filter for Amazon EC2 keys on GitHub
Therefore I would assume that your RSA keys will be harvested by a similar bot. As soon as you upload the image.

The whole thing is meant for labbing and tutorial purpose, NOT production.

This has never stopped people from deploying.
If you want more peace of mind, then incorporate a technical antidote to this.
Like a first-run-script that does individual key generation upon first startup. (Either for SSH pubkey-auth or SSH password-auth.)


Is it legal to post card data from an ecommerce checkout to a PCI compliant 'store' Let's say I want to charge a user's credit card with their permission after a sale takes place. But, I don't want to have to ask them their credit card a second time.

Is it legal to store the credit card information as they're filling it out on the checkout, for say 6 hours or something, on a PCI compliant data store, and then only if they perform the action which lets them know their card will be billed again, then and only then charge it.

And then just delete records of cards after some number of time?

Yes, PCI allows you to store a customer's card provided you do so in compliance with the PCI DSS.  Specifically, Requirement 3: Protect stored cardholder data outlines what you may (card number) and may not (CVV, mag stripe) store and describes acceptable methods of protecting the data (§3.4).

In essence, you'll need to properly encrypt card numbers, and have acceptable key management processes for your encryption keys.  Alternately, your Card Processor likely supports tokenization, where they keep (and protect) the card and you keep a token that allows you to charge against that card.  This offloads the chore of protecting the cards from you to your processor.

You can get the most recent version of PCI DSS from the PCI SSC Document Library.


Can we make sure that the new Lavabit certificate is not under control of the FBI? After the Lavabit shutdown, Ladar Levison (founder of Lavabit) announced that he’s "looking into setting up a site where users can download their data".

Such a site is now online: https://liberty.lavabit.com/ (currently it only offers to change your password)

The page says:

  Due to concerns about the continued integrity of customers’ passwords, we are offering a short window of five days in which users can change their password before we allow anyone to download an archive of their stored emails. The download functionality will be available starting Friday, October 18th at 7pm CT.

  Since the SSL certificates formerly used to protect access to Lavabit have been compromised, we recommend manually validating the serial number and fingerprint your computer received before using this website.

  Serial: 00:C9:FA:44:62:08:82
  Fingerprint: 8C:18:BF:AB:8C:D1:24:A3:76:8C:FC:C0:4A:89:1D:23:3A:25:DF:77

Now I wonder: Can this site be trusted?

What is the reason for allowing password changes only for five days in this context?
Does it make sense to check this Serial and Fingerprint, as they are printed on the same webpage the cert is used on?
Is there a way to make sure that this new site resp. the SSL certificate is not under control of the FBI?

Can this site be trusted?

No.

Well, not if you consider GoDaddy subverted or subvertable. As
even the published serial number or website could be an FBI plant ;-).

But if you want your emails, you'll need to connect to the site.

  What is the reason for allowing password changes only for five days in this context?

We are assuming that the government can't coerce Ladar Levison via a gag order to provide the new private key or update his site's listed serial number within the time frame provided.

  Does it make sense to check this Serial and Fingerprint, as they are printed on the same webpage the cert is used on?

No, but Ladar is probably discreetly distributing the current serial throughout the internet.

For example, if the cited serial changes compared to the (original revision) post on Stack Exchange then the spooks may be performing a man-in-the-middle. Still, it doesn't protect against Ladar giving up the current private key though  (assuming he doesn't take a 5-day vacation in Rocky Mountains without mobile phone contact and the only copy of the server's access credentials).

  Is there a way to make sure that this new site resp. the SSL certificate is not under control of the FBI?

No. Of course any centralised email product requires trusting the provider hasn't had the new key beaten out of them - or that the new server layout and email communiqué isn't the Feds in disguise. In practice Ladar should speak the serial number (and show on a paper placard) in a YouTube video while showing his face and other 'biometric' credentials.


Retrieve RAR Password through Extracted File So I was wondering about something, but for the simplicity, consider this example:

You have a file with n encrypted files in it, of which one is called 'Note.txt'
You also happen to have another file (not in the RAR) called 'Note.txt' which is an exact copy of the file within the RAR, but this is not encrypted!

Is it possible to 'reverse-retrieve' the password used to encrypt the files within the RAR?

What your describing here is a called a known-plaintext attack (KPA). WinRAR, as old as V3.0, uses AES-128 to encrypt files. As far as we know, AES isn't susceptible to KPAs.


Long passwords and key derivation functions Not being a security expert, I have a rather theoratical question that I have been thinking about for quite a while now:

Let's imagine an encryption software that takes a user-provided password, passes it through a key derivation function and then uses its output as a key for AES-256 in order to encrypt a file. Assuming a key space of 100 characters and further assuming that an attacker knows the setup and is aware of the length of the password, is it correct to say that adding more characters to a 39-character password does not increase the user's security because 2^256 < 100^39 and, thus, the attacker would rather try to brute-force the actual derived key instead of the user-entered password?

(I'm aware that brute-forcing a random password of that length is completely unfeasible now and in the foreseeable future.)

If the attacker knows for sure that the (character space size) ^ (password length) is greater than 2 ^ (AES key length), then, yes, it's a better idea for the attacker to brute-force the AES key. Given such an assumption of the attacker's knowledge, it's a mathematical fact that the search size for the AES key will be smaller.

Such an assumption of attacker knowledge could possibly be satisfied, for example, by a physically-nearby attacker who listens to you type out your lengthy passphrase on a keyboard for a very long time (i.e., more than 39 keystrokes).

However, if the password is not selected truly at random from the space of all possible passwords (for example, it's known that the password is made entirely or partially of English words) then the true search space of the password (given such a weakening assumption) may be much smaller than the theoretical maximum of (character space size) ^ (password length), and thus may be smaller than the search space of all AES keys.


How to detect Rowhammer vulnerability? Related to How to know whether a RAM module is vulnerable to rowhammer before buying?, how can I check whether my already installed memory modules are susceptible to this attack, without having to use any Windows/Mac-only tools?

There's a PoC module for detecting Rowhammer, but it seems many people have had problems compiling it and the issue has gone cold (no response since October 2015).

The Exploiting the DRAM rowhammer bug to gain kernel privileges article linked to in @J.A.K.'s answer had a link to Google's rowhammer-test program for checking for this vulnerability on "Linux or Mac OS X" and "x86-32 or x86-64". It runs indefinitely, stopping only if it detects a bit flip. One forum post recommends running for at least 30 minutes before considering the RAM safe.


Code deployment in PCI CDE The PCI DSS v3 standard states the following:

  Network Segmentation

  To be considered out of scope for PCI DSS, a system component must be properly isolated (segmented) from the CDE, such that even if the out-of-scope system component was compromised it could not impact the security of the CDE.

Say we have a cloud based system that we want to be PCI compliant, and the source code for this system is in another cloud based system like Bitbucket. Can an Octopus Deploy server that is connected to or inside the CDE connect to our source control repository via HTTPS and then deploy, or would this bring Bitbucket into scope, as a compromised repository could affect the security of the CDE? What would be a compliant way to do this automatically?

I dont know if this is PCI compliant, but you could sign the code inside the PCI compliant enviroment before uploading code to the cloud deployment system. Since the code is signed, it should in PCI sense be unmodifiable (e.g. if the repo is compromised, CDE wouln't accept data from it), thus you should be able to show that the cloud system CANNOT compromise the CDE.

You could ask your PCI assessor if a setup with signed code that is signed inside the PCI compliant system would be okay.


when to escape user input I wonder when is the best way to handle escaping user input.

Two options come to my mind

1) User sends data to server we escape it and then store it into database
2) we store data as it is and escape it when we send data to user.

To me it seems a lot easier escaping and then saving data to database but lets suppose someone finds flow in our website and manages to avoid escaping we have a problem of finding all data that we stored to database un-escaped

on the other hand if we just store data as it is but escape it once we send it to user even if someone finds flow in our website all we have to do is fix bug as our system already assumes that data saved in database in not escaped.

Although second approach seems easier it seems a lot more prone to error. Suppose we generate HTML on server and send it to user and then decide to switch to just sending content to user via ajax, it is easy to forget that we need to escape all the data before sending it to user or implementing new API, or something third.

So I wonder what is preferable way of handling this?

User input is a string. Escaping is done when you want to insert some characters into some HTML / SQL / Whatever code which insists on interpreting some characters into special functionalities. For instance, you have a '<' and you want it to be shown back to the user as a '<', but if you brutally paste the string inside the HTML then the Web browser on the client side will look at the '<' and think that it begins some HTML tag, instead of representing a simple '<'.

In general, you want to keep strings as strings, and delegate any encoding or escaping to specialized functions which do that well. For instance, for SQL, you use prepared statements. With HTML from a PHP context, you would use htmlspecialchars().

The point to notice here is that the kind of conversion, encoding or escaping that you need to perform depends on what you are trying to do with the string. If you need the string to put it in some HTML then you'll use HTML entities (the &lt; for '<' and so on). If you store in the database the already escaped string, then you are betting that you will use the string only by including it in some HTML.

So you should strive to apply encoding/escaping only upon usage. It is more flexible and makes semantics simpler. Within your database, store the string as a string.


Approaches to cracking an encrypted zip file I'm taking part in a capture-the-flag exercise; the level of difficulty is competent, but non-expert. I'm not a security practitioner, but I do have a development background and a reasonable knowledge of standard tools and techniques.

One task involves a number of steps to recover an encrypted zip file, which I have done. The zip then contains a single file, flag.txt - the target. The final step is to break the encryption.

The zip file is small, 190 bytes in total, and analysis of the zip file header with a hex editor shows it was created with the v2.0 PKzip format (which I understand is relatively insecure). The target file itself is 28 bytes long.

I've run a dictionary attack with the rockyou wordlist, and a brute-force attack of the full lowercase/uppercase/numeric/special character set up to five characters, without any luck (both with fcrackzip on kali Linux). The challenge is not at a level where we should be using specialist kit (e.g. GPU-based cracking), so if brute-force was the answer then i'd expect a very simple password.

So I must be missing a trick. Can anybody suggest what it could be? I'm aware that the PKZip v2 format has a known-plaintext attack, but I believe this is most commonly used in the case that the zip contains one or more commonly-available files (e.g. a widely-available jpg or jar file) that can be found elsewhere to provide the plaintext, and I don't have that here. Are there other attacks that I haven't found? Or is known-plaintext the only remaining answer, and I need to try and figure out what could be in the file? As I understand it, it is just about large enough for known-plaintext to be applied?

Thank you for any thoughts

A few suggestions:

Try building a dictionary based on all strings you can find on the system.
Check that the ZIP file really is encrypted, and not just using a dummy header.
Make sure the header is not corrupt, or a cracking tool may fail even if it has the right key.
It's possible that the key is hidden somewhere, and you have to find it to get that flag.
Depending on the level of access you have, the key might be in memory.

Without more information about the specific task, there's really not much anyone can do to help.


Rightscorp Scaleable Copyright - How would they avoid making this a massive security risk? I recently read an article about a new copyright protection system that RightsCorp America is trying to get ISPs to help implement. From the Article:

  “Single notices can be read and bypassed similar to the way a software
  license agreement works [but] once the internet account receives a
  certain number of notices over a certain time period, the screen
  cannot be bypassed until the settlement payment is received.”

Basicly saying that the company would have the direct technology to block out and hijack all user's traffic except to payment sites and block it until payment is recieved.

The question is now: Wouldn't that require Browser Providers to implement a massive backdoor in browsers? (or ISPS?)

They claim ISPs do not have the right to refuse to support this due to DMCA third party liability clauses.

Wouldn't that require Browser Providers to implement a massive backdoor in browsers? (or ISPS?)

There is no need to implement anything in the browser to block internet access. This can be fully implemented at the ISP level, similar to how capture portals at public hotspots deny access until the user provided some sort of login, payment or acknowledgment of the usage terms.

The main problem with this kind of ISP wide restrictions is that they only properly work with HTTP. With HTTPS the user instead gets only strange error messages because the certificates do not match.


Is it safe to backup data (images, documents, videos, etc...) from a possibly infected computer? If I had a possibily infected computer, where I had some images and documents that I wanted do backup to a thumb drive, is it possible that that the used thumb drive could be infected and when connected to other computer, infect that computer in the process?

The way you phrased your question implies a basic misunderstanding, or perhaps I’m being pedantic, so bare with me.

In general media devices like thumb drives are not themselves infected, rather it’s individual files on the media that may be infected.

  This ignores device firmware rewrites, but that is very low
  probability in most cases.

The crux of the risks are the files you are moving. They may contain the malware and placing them on another machine may transfer the malware to that machine.

With normal modern configurations, there should be no automatic running of code simply by plugging in the thumb drive, although you may get a pop up asking you to do so to which you should obviously decline.

The big risk is from the files. While there have been a few exploits that managed to leverage data content only such as images via flaws in readers, these are rare. The more common threat is executable files. The catch here is that it’s sometimes difficult to know what is executable. Many “Documents” such as MS Office or PDFs can contain executables. These are you primary vectors for malware transfer.

The thumb drive itself can be sufficiently cleaned up with a long format (not a quick format).


ownCloud on an encrypted partition on the server I would like to implement a private cloud-storage on a Linux VPS. For example, I can use ownCloud.

I can do the root login on the VPS by ssh.

My question is if I can securely encrypt the /var/www directory in a way that the service provider cannot (easily) access my files (so I'll have to manually enter a password at every VPS reboot to mount /var/www). I assume that I cannot (easily) modify the existing partitions because I cannot umount them.

The purpose is to implement a cloud-storage that is enough safe for a working team to store very sensitive data (I cannot trust any commercial cloud-storage service that is zero-knowledge, because none of them has a fully open-source client).

Thank you very much for any help.

P.S.: CryFS on the clients seems interesting, but it's restricted on Linux machines, so it's not suitable for sharing files between people using different operating systems.

My question is if I can securely encrypt the /var/www directory in a way that the service provider cannot (easily) access my files (so I'll have to manually enter a password at every VPS reboot to mount /var/www). I assume that I cannot (easily) modify the existing partitions because I cannot umount them.

No, because when your server software can decrypt it, the key must be in RAM, and since the RAM is just virtualized, your VPS hoster can access it trivially.

You can, however, encrypt the data on your clients and just upload the encrypted data. That's the proper way of storing data on other people's computers. (Remember, there's no cloud, just other people's computers.)


What kind of completely online business can I run doing infosec/cyber security? I have been working in the field the past 2-3 years and I have a total of 10 years experience with computer science. I want something I could do part time from any country in the world. I would rather not do straight coding, either. Thanks!

Go bug bounty hunting.

Participating in companies' bug bounty programs is something you

can do part-time (in fact, whenever you like),
doesn't require your physical presence anywhere and
certainly isn't coding only.

One way to get started is by creating an account at a bug hunting platform such as Bugcrowd or HackerOne where you can find tons of companies that offer monetary rewards for reporting vulnerabilities in their products and services. Or you can directly check out individual vulnerability reward programs, such as the ones of Google and PayPal.

(The bug hunting community has grown significantly in recent years, so being able to compete will require you some creativity and thorough knowledge of the technologies you're pentesting, though.)


Can a sniffer installed by user on his machine eaves drop on my application and reverse engineer it? (Fiddler 2 HTTPS Sniffing) I have a web service and an application that connects to it.
I do not expose the web service via any discovery protocol to the outside world.
I have two security mechanisms:

My software uses SSL and encrypts all messages using a public/private key mechansim.
I use WCF WIF integration username/password authentication, so my application has a unique user name and password which allows it to access the web service.

Now, if the user installs a sniffer such as Fiddler on his machine and installs the special certificate that allows fiddler to sniff https traffic:

Will it allow it to analyze my web service methods structure?
Will the user be able to reverse engineer the user name and password of my application and access my web service?
Will the user then be able to build his own messages (REST/SOAP) and interact with my web service?

Will it allow it to analyze my web service methods structure?

Yes, SSL/TLS only secures the transport of the data between your and the user's machines.

  Will the user be able to reverse engineer the user name and password of my application and access my web service?

If your application includes credentials to speak to the server, then most likely yes (this is true in general and has nothing to do with SSL).

  Will the user then be able to build his own messages (REST/SOAP) and interact with my web service?

Yes.


What is the purpose of "Variant" LMKs? What is the purpose of "Variant" LMKs?

The JPOS project (http://jpos.org/wiki/HSM_basics) gives this description:

  To make things more secure HSM's use variants. A variant is a hex
  value for each type of key.

Q1) How do variants make things more secure?

Q2) Is increased security the only reason why variant's are used?  I thought another reasons for Variants was to increase the number of keys without requiring more memory storage in the HSM?

In some HSMs certain kinds of keys have certain commands possible on them, for example you would not be able to use a PIN key to decrypt the value.

I'm not sure if this relates to the jPOS use case: https://github.com/jpos/jPOS/blob/master/jpos/src/main/java/org/jpos/security/jceadapter/JCESecurityModule.java#L1820

I'd like to know too


Is there any open source ransomware? I'm working on malware analysis at my university and I'm trying to develop ransomware. I'm planning to publish the source code after it's finished. Is there any open source ransomware sample so I can take a look?

There is an open source ransomware called Hidden Tear. The code encrypts files with the following extensions: ".txt", ".doc", ".docx", ".xls", ".xlsx", ".ppt", ".pptx", ".odt", ".jpg", ".png", ".csv", ".sql", ".mdb", ".sln", ".php", ".asp", ".aspx", ".html", ".xml", ".psd" by default with AES 256 bit encryption.

It is open source so it could be easily customized to not only look for additional files but also the way encryption is done.


Web Proxy through browser vs through system - is there a difference? I read that when using a web proxy - your ISP can still see the DNS queries so it knows which site you're visiting, just not which pages and the pages' content assuming you're using HTTPS.

But what about using a proxy through a browser? Is that any different? (e.g. Firefox -> Options -> General -> network proxy -> settings.) Does the browser send the DNS queries through the proxy as well?

If the DNS lookups are done by the proxy or by the client itself depend on the kind of proxy configured and less if the proxy is configured in the browser or global to the system. When using a HTTP proxy (which works for HTTPS requests too) the DNS lookup is done by the proxy. If this is a SOCKS4 proxy it needs to be done by the client. With SOCKS4a and SOCKS5 it depends on the actual client and maybe additional configuration.

Anyway, even if the DNS lookup is done by the proxy the ISP can still see which domain name gets accessed, no matter if you access HTTPS sites or not. In none of the proxy protocols the traffic between client and proxy gets encrypted by default. This means the target domain can be extracted from the SNI extension of the TLS handshake. Note that some proxies might be able to use a HTTP proxy over HTTPS. But this is not the case for most browsers and needs special add-ons or advanced configuration access for other browsers (like in Firefox).

Thus, to hide which domain you access you should use a VPN and not a proxy or make sure that you access the proxy itself by HTTPS and not only the site you visit.


Why I am getting logs from Class E IP addresses (Research - Reserved), and my IPS being blocked with threat name "IP Address Spoofed" Source       : 252.205.75.128

Destination : 221.58.178.105

Both IP's do not belong to us. Direction was Inbound.
How is this possible?

Then why are these IP addresses routed to my network ?

Scanning into your boundary devices from the public internet from unknown IP’s is normal behaviour. Everyone from government agencies, research and education institutes to the bad guys looking to do harm are continually scanning the internet for a variety of reasons.

If your boundary devices or alerting devices such as your IDS/IPS are fagging this up, it is up to you have you manage it. You can either allow them to continue to alert you or you can tune it out once you have deemed it to be benign.

In my experience it is typical for denied connections on boundary devices to be tuned out of alerting tools such as SIEM or IDS/IPS.

If it isn’t benign, then you will want/need to take the appropriate remediative action as per your incident response plan. So for example; If IP’s within your network are being scanned from the public internet, then your IPS is doing its job correctly by alerting you are potential threat, a threat that you should investigate and take action on if needed.


Session management: Are the features of application server enough? HTTP is a stateless protocol. However, when the user logs into a web application, he likes that some session information be preserved, such that he does not have to login again when he wants to go back and forth between web pages of the same application.

Associated to each session is a lifespan. Moreover, some sessions are "transient," meaning that they are closed as soon as the user closes the web page (even if the session is not yet timed out).

Many application servers provide the notion of session. For instance, the documentations of WebLogic (which we are currently working with) discusses "Using Sessions and Session Persistence" (See Chapter 10 of Developing Web Applications, Servlets, and JSPs for Oracle WebLogic Server 11g Release 1).

The question is:

  Given the variety of possible attacks on sessions (session hijacking, session fixation, etc.), is it enough to rely on the session management features of the application server? In other words, can the application be "session agnostic," and everything be handled by proper configuration of the application server? (One can also assume that connections are over a properly implemented HTTPS connection.)

I believe the answer is NO, but I need a concrete justification as to what we can and what we can't expect from the application server.

Pointing to best practices and possible threats/attacks on session management is highly appreciated.

Edit (concerning Andrew's comment): In your response, please assume that everything else (firewall, file-system, database, etc.) is configured correctly. Now, can application server be configured in such a way that the application itself need not manage sessions? That is, can we write a totally "session agnostic" application, and put it in an environment which (by proper use of application server, firewall, etc.) prevents session hijacking, session fixation, and other session-related attacks?

No.  It is not enough to just use the application framework's session management features and do nothing more.  It is definitely a good idea to use the application framework's session management (do not roll your own session management) -- but you will need to take some additional steps as well.

The exact division of responsibility between the developer and the session management layer will depend upon the particular session management layer, but here are some issues that are typically the responsibility of the developer and are not handled by the session management layer:

You must implement or enable CSRF defense (CSRF tokens).  Normally the session management layer will not do this for you.
If you want to use https, you should set the secure attribute on all cookies.  If you are using https sitewide, it is your responsibility to enable HSTS.
You should configure the session management layer so it will not accept session ID's in a GET parameter.  This is important, to avoid session fixation vulnerabilities.
You will likely need to tell the system to generate a new CSRF token immediately after logging in, to defend against login CSRF.
If you want to use the HTTPOnly cookie attribute, it is your responsibility to set it.  It is debateable whether this cookie attribute provides any measurable increase in security against a sophisticated attacker, but some people recommend it as a "can't hurt" security practice.

I recommend reading the resources that OWASP makes available.  This will help you understand what you need to do to secure your web application.


Why does some malware limit their scope to certain countries? I've noticed that some reports on malware mention that a certain malware or exploit kit (RIG TK, step 2 for example), limit their scope to certain countries or actively avoid infecting other countries such as Russia. I've read about the victims keymap being used to identify the their location, but don't know how else it could be done (I imagine via IP, system language, etc.).

I imagine that it's partially due to nationalistic/political ideals and partially to try and make it harder to detect or analyze by researchers. Why else would someone avoid infecting specific countries or limit their infection to others?

Not sure if @Fis is joking, but he's not far off.

One thing we know about Russia for example is that the government doesn't care at all if a Russian hacker defrauds US citizens or institutions, but if that hacker (accidentally or not) targets a Russian bank, the fury of the State will come down upon him hard. Israel has similar "do it over there, but don't do it here" laws.
Damage control. If you write malware to steal USD from US banks and it spreads like wildfire in Africa and Southeast Asia, security researchers will be alerted and your target audience will catch on prematurely. And you'll end up with a bunch of Zimbabwe dollars you can't do anything with. It's safer to perform some sanity checks to see if the malware is in the correct environment before detonating the payload.


Security concerns of downloading websites contents I recently started using Firefox for Android and saw I can download pages as PDF and near every image or video for any site and I'm using that quite a lot so what is the risk of downloading such things from websites?

Lets say I download an image with embedded malicious code? Will malicious JavaScript or others be downloaded when I save an page as PDF? I only open my PDFs via Google Drive built in support if that matters.

In general, no: you should not be excessively worried about such an attack.  To exploit this would require a bad guy to figure out a way to embed malicious code in their images, videos (or whatever) that activates after that image (or whatever) has been converted to a PDF and is then viewed.

Bear in mind that the thing doing the to-PDF conversion in this scenario is your phone: you would want to be much less trusting of a PDF generated by a third party.


Would adding `--data-string` to a UDP scan change the results? I'm doing UDP scans on some internal servers and want to add a custom token (randomly generated string) to packets as much as possible in order to later filter out my scans from real non-testing traffic.
To attach my token to my nmap scans, I'm using --data-string
sudo nmap $ip -sUV --data-string "my_token"

However, UDP services are sometimes quite finicky and may crash from getting unexpected malformed packets. Would attaching my token with --data-string change how services respond, or even crash?

Would attaching my token with --data-string change how services respond, or even crash?

Basically you ask if

a different payload might lead to a different reaction of the service
especially if the payload is not conforming to the application protocol expected by the service
and if the service might crash as a result of such broken payload

Of course it does. Some services will simply drop invalid payload (i.e. no response), some badly written services might even crash on broken payload.


download file/folder anonymously on a ssh session I rent a paid VPS hosted online and want to transform it to a sort of treasure chest where I can upload and download files privately. For this purpose I want to do this operation over the Tor network. This is done automatically when you download something with the Tor Browser Bundle but it seems impossible to do with SSH.

Is there any solution to my problem ?

Note : I am aware of SCP and SFTP but it seems that you have to specify your personal IP address when downloading.

EDIT : Thanks @Begueradj and @mikeazo but I know well how to torify an application, my problem is actually to download files using this torify ssh session. If I am connected to the VPS via ssh and want to download a file called file.txt then Would scp login@server:Remote_Path_To/File Local_Path_To/File be sufficient or do I have to specify my private ip adress ?

If you are Windows OS, there is a way to use torify your SSH using Putty client. Here are the configurations you need to set:

If you are using a Linux distribution, it depends on which one you are using.

For example, if you are runnin Ubuntu you can (How to use SSH with Tor?):

  Add the following block to the top of your ~/.ssh/config file.

Host *
CheckHostIP no
Compression yes
Protocol 2
ProxyCommand connect -4 -S localhost:9050 $(tor-resolve %h localhost:9050) %p

Check the original documentation of the quoted answer.

In all cases, I advice you to read the How To Torify section (SSH).


Does DUKPT support offline mode? I have been working on the payment side with RSA and AES encryption which I got a fairly well technical understanding of encrypting credit card details.

Recently, We adopted a new chip and pin device which supports DUKPT and combined with 3DES seems to be stronger than RSA and AES.

DUKPT is something completely new for me and what I understood are:
- the server stores Master Key (KSN) not sharable
- the chip and pin device stores 2 keys of 8 bytes each, but it is also requiring the KSN.

Does the device really need the KSN to get generate the IPEk or there is a misunderstanding from my interpretation?

NOTE: the device will work on offline mode and any communication required with the server to encrypted the data will no longer be possible. Is it ok  for DUKPT?

I'm not fully sure what you mean by offline mode but I'm going to guess you mean offline PIN verification. The PIN can be validated within the terminal based on the PIN entered by the customer and the PIN on the Integrated Chip within the credit/debit card. This is not a DUKPT related process and offline for this process is fine.

DUKPT will be used to provide a key management system whereby sensitive data from each transaction is encrypted using a specific and unique key. Once a key is used a counter increases such that the appropriate KSN (Key Serial Number) and related key can be identified for decrypting the data later on. The next transaction will use the next available key for encryption.

I'd suggest reading up a bit more on DUKPT functionality (search DUKPT on google) to cover Base Derived Keys (BDK), IPEK and Future Keys. Chip and PIN terminals will often be loaded with thousands of keys to permit DUKPT. Without DUKPT a terminal is more likely to use a static symmetric key for encryption and public keys for signing transactions.


Why strip accept-encoding? It seems that there are multiple "security" products which strip or mangle 'Accept-encoding' headers, thus forcing non-compressed responses from HTTP servers.

I've been trying to imagine if there's any good reason for doing this - it's relatively simple to detect which browser is making the request and thus make a compressed response hence it doesn't provide much protection against zip-bombs.

One explanation: Compressed data is harder to parse in real-time. If the product is performing some sort of content filtering on the live HTTP streams it is easier to deal with non-compressed streams. It may be scanning for malware, or blocking unapproved content (some of those products are enterprise oriented).

If the firewall is trying to parse the stream, it is advantageous to not have to deal with compressed streams. That requires buffering and decompressing the data after enough of it has been assembled, as well as a little CPU overhead in having to decode the compressed stream a total of twice. (Also, it's simply more effort.)


How to pass an email address securely to a web application X embedded inside a web application Y The scenario I'm trying to address is this:

There is a web application Y which has an authenticated user. Inside Y, web application X is hosted (which belongs to a different domain).

When X is launched from Y, we want the authenticated email address from Y to go to X.

X is launched by hitting a url belonging to domain X.com

Is it a concern if we simply launch X using the url and appending the email address as a query string to the same url?

Depends on how the execution is.

If your sending the email as an plain text (none-encrypted) there are severe issues concerning integrity (Did the client-side change the email address?)
Assuming both domains are in your control this can be solved by encrypting the email address with your private key.


Incoming email with smime.p7s attachment This is a scenario I have at work.

We're receiving emails with .p7s attached files from a single user of a company(hence the company domain for eg. abc.com) our users interact with via mail. We use IBM Lotus Notes for our email.

There are other users of the same domain who also send our users emails but in those emails we do not see a p7s file.

Also since we use a attachment filtration policy on our email gateway, the gw quarantines the email because of the file extension. The attachment filtration policy specifically contains p7s, p7m, pif, scr file formats, which were put there by some previous fella before. Which just raises another question about whether we should block this filetype at the email gateway?

Also we asked the same user to send us a simple plain text email for testing to our gmail accounts and the .p7s file wasn't attached to this email.

I read up on smime.p7s usage, but cannot understand why is it that only that one particular user's incoming email shows this file while others do not.

Also I guess I can just whitelist the .p7s extension and the emails won't be quarantined by the gw, would that be a security risk of some sort?

I would suggest changing the policy to not quarantine "bad" mails, instead, use the policy word "DISCARD". But for p7s I would suggest stripping the attachment out, as these are signatures. However, they can contain S/MIME encrypted mails causing viruses to leak through. Stripping the attachment out and letting the rest through is safe.

For p7m, pif, scr, its better to DISCARD the whole mail silently without notifying either sender or receivr, without quaratine.


How do I access a website on my phone without it being able to determine that it was accessed from the same phone and location? How is it possible to create an account in a website with completely different credentials without the website being able to link the user of the first account and this new one?
Tor is not a viable option because the website does not allow it. Ive tried VPNs but the website was still able to link my phone to the new account being created, even though I gave the browser no GPS or any other permission.
Is there a browser VPN or any tool which would completely cover every way that is used to find out if the website is being accessed from the same phone, no matter how advanced of a security feature that site implements?
Perhaps a tool which would show the website fake identity, instead of blank ones, which would raise a red flag.
My phone is already rooted.

Given a site can use browser fingerprinting methods, there no tool that would completely cover everything. The paradox is that the more you try to make your browser look like something it isn't, the more unique it becomes. You can use tools like Panopticlick or AmIUnique to investigate your current browser.
Therefore, even with Tor, it's better to use the Tor Browser with its default settings. The Tor Blog has a good article on the subject, Browser Fingerprinting: An Introduction and the Challenges Ahead:

What Makes Fingerprinting A Threat To Online Privacy?
It is pretty simple. First, there is no need to ask for
permissions to collect all this information. Any script running in
your browser can silently build a fingerprint of your device without
you even knowing about it. Second, if one attribute of your browser
fingerprint is unique or if the combination of several attributes is
unique, your device can be identified and tracked online. In that
case, no need for a cookie with an ID in it, the fingerprint is
enough. Hopefully, as we will see in the next sections, a lot of
progress have been made to prevent users from having unique values in
their fingerprint and thus, avoid tracking.
Tor + Fingerprinting
In the end, the approach chosen by Tor developers is simple: all Tor
users should have the exact same fingerprint. No matter what device or
operating system you are using, your browser fingerprint should be the
same as any device running Tor Browser (more details can be found in
the Tor design document).

If you only need two accounts and they shouldn't be linked, it's relatively easy (in theory) to:

Use different browsers to prevent browser fingerprinting.
Remember to systematically use a different IP address when using the second account.
Always close the browser before opening the other to prevent background activity.

However, it's only a matter of time when you do a mistake that could help linking the accounts.


Implement a passcode to authenticate app users This question is related to this one.

We're busy implementing 5 digit passcode authentication for our app (Android, iPhone), but we're running into a complexity. We're unsure how we can safely identify the device from which the app makes the request. We can send and register the device id (UUID) with the user, but that id is no secret, so anyone knowing that UUID could try to authenticate with the server using the passcode.

The answer in the related question mentions this:
"During device registration, the application on the device (be it a phone or a laptop) generates some secret value and sends it to the bank; it also stores it."

That sounds reasonable, but how do we store that secret value on the phone? We could use Local Storage, but how secure is that? Is that sufficient?

Another way would be to set a (persistent) cookie upon registering the passcode. But I'm not sure how safe that is either.

I see this system implemented in many apps, but there's not much information to be found on the web.

You don't need to do anything special here.

Storing the token locally in app storage is sufficient.

It is worth considering periodic token expiry requiring more complete authentication via SMS token, email token, or a username and password.


Linux (!) Network Architecture for CTF-scenario My boss recently enrolled me in an InfoSec training. I am part of the network team, but have limited experience in InfoSec.

My first assignment is to draw a layout of a network that will be used later in a CTF-wargame between the participants of the course.

The network must count

a mail server
a web server
an 'old' Windows XP-box (supposed to run a legacy web app, and i as sysadmin have no root access to this box)

All of the above must be publicly reachable. Furthermore we must also include the following:

two user PC's (they do not have to accept incoming traffic, but must
be able to acces the internet)
a MySQL-server (to store the data of the legacy web app on the XP box, so at least accesible by that box)
a CISCO Catalyst switch

This network will be 'under attack' during the various stages of the training, and we are asked to 'harden' it by use of firewalls, routing rules, monitoring & protection devices, ...

I have zero experience in designing such a network, but decided to give it my best shot, so i kindly ask the Stackexchange-panel for help :)

I was thinking of separating the email/web server and the XP-box (+ MySQL ?) on 3 separate VLAN's and putting the user PC's behind a well-configured firewall.

EDIT: question was too broad, so narrowed it down:

Everything would run on Linux (was thinking of virtualizing the XP on Linux as well), so what would be a good Linux/Apache/MySQL setup ?

A lot to ask, I know, but I hope to get some answers to ge me on the right track. All help (answers, links to best practices, hints & tips,...) more than welcome !! Thanks in advance :)

To avoid stating the obvious and you even mentioned it in your post, I would take your chart editor of choice. I use lucid chart for myself and clients. Then I would make the diagram. Have all of the systems you described group together and behind a router and firewall. Then have the router leading to a internet / attacker.

Now you have your chart your boss asked for, after this write down each program and OS each machine has to have according to your parameters.
For example, beside the machine for XP write: XP service pack # legacy web app name
 and so on for each machine.

After this you should have a detailed network diagram of how the systems see each other. Remember if you are giving any of these machines internet access and they are intentionally compromised than you may open yourself up for real attacks. I would suggest having a regularly "secured" computer off the network to allow for internet access, and leave all of the other systems on a private network with no outside access.

And as part of the network team does this mean you are defending or attacking? Or are you a neutral party that facilitates the red and blue teams?


Test registration form using brute force I need to test if my website registration form can have problems with brute force attacks, because this form requires an invite code. Is there any tool for this kind of test?

I'm positive there are quite advanced tools available for this. Form fuzzers come immediately to mind.

If you're just trying to check for what happens with 10,000x form posts come in, you might be able to script something fairly trivially.

I haven't tested this, but you might have luck with something similar to:

for ((i=1; i<= 100; i++)); do
    curl -s "localhost:1337" -c "cookiejar" -d "user=foo&pass=bar"
done

Edit: I wanted to circle back on this w/a couple of links: You can find all of these on OWASP's Testing for Brute Force page which has a lot of information on what you're trying to accomplish.

Bruter: http://sourceforge.net/projects/worawita/
THC Hydra: http://www.thc.org/thc-hydra/
John the Ripper: http://www.openwall.com/john/
Brutus: http://www.hoobie.net/brutus/
Basic Auth Bruteforcer: https://market.android.com/details?id=com.firebird.basicauthbruteforcer
Cain & Abel: http://www.oxid.it/cain.html

Note: Chrome gave me some trouble when trying to go to thc.org. If you want to get past all that, just see the Hydra GitHub Project instead.


Server Infection: post-cleanup best practices I've read through How do I deal with a compromised server? and have followed the steps to cleaning-up/mitigating any future damage.

I'm just wondering if there are any post-clean up steps that are considered "best practice", such as:

Informing the customers of the infection and clean up
submitting the shells/infected files to any security firms
reporting details of the exploit used to any security firms
investigation/reporting of attacking ip address

I'm not sure if any of this information could be helpful to them or not, so currently I've just been meticulously record keeping.

This question could be highly opinionated in terms of "best practices."

However, there may be certain industry/contractual or legal requirements for customer notification or forensic investigation. To get the optimal response, you will need to seek guidance for legal counsel specific to a given incident. In the general sense, you should do what is right and in the best interests of your customers/users, but if you are operating a business you may have to balance that with your desire to have a going concern.

A good general place to start would be with NIST SP 800-61: "Computer Security Incident Handling Guide". You may also want to see SP 800-86: "Guide to Integrating Forensic Techniques into Incident Response".

There are also some CERT/SANS/etc resources:

Cert Publications (e.g., Handbook for Computer Security Incident Response Teams)
Business-Person Simple Guidance
SANS Reading Room: Incident Handler's Handbook

Some references for laws and industry requirements (USA Specific Examples):

GLBA (Financial Inudstry): FDIC FIL-27-2005 Guidance, FTC Guidance
HIPAA (Health Care): HHS Guidance on Breach Notification Rule
PCI (Credit Cards): VISA Guidance(additional), SANS Paper on PCI Breach Response (Opinion/Research)
California Breach Notification Law: Legal Requirements (go to 1798.82.  (a))

This report by Congressional Research Service also provides a summary of some US federal laws. This Berkley Law Paper may also be of interest for US federal laws.


What do I need to be aware of to select a transfer method for digital forensic data? I have a question which relates to use of forensics technology to gather evidence from mobile / portable workstation / devices?

I would try to better explain this scenario, by considering a work environment where us(as technical security team) gets call for investigation to the xyz location to gather some kind of digital evidence. Right now, we don't have the forensics means to do so , just relying on basic manual means to gather the data.E.g searching file histroy, temp folders.

Now, after a month of deliberation working out the benefits of using forensics technology, we have come up with a strategy where we would be using hard-disk duplicators to fetch data from remote workstation / laptop and writing to write protected hard-disks.

Now, where I'm stuck in the whole process, is how to optimise the transfer of data from the drives into the analysis system. The analysis system in this case would be using EnCase software. I want to know from the list below what would be the optimal way to transfer evidence to analysis systems.

Workstation / laptop connected to external hard-drive
Workstation / laptop connected to USB interface
Workstation / laptop connected to network-connected hard-drive.
Also other methods not mentioned in here.

Considering , that in our environment the volume of disk drives fetches to terabytes. For example an image of a terabyte drive when copied to analysis system through whatever channels should be fast enough for forensics software to run complex queries e.g finding deleted files, or access to computer through remote terminal.

I want to know of the method mentioned above what provides the fastest analysis of evidence. Considering, that there is no shortage of space of storing digital evidence in the analysis system.

When computers want to have fast access to hard disks, they use SATA. USB, Firewire... are fine for external disks, but given the choice (i.e. when we are talking about the disk which goes inside the computer), computers use SATA. Therefore, you want to use SATA.

So, for your analysis, you want to:

Copy the whole disk to inspect onto a new hard disk. Hard drive duplicators usually use SATA, so you will want to extract the source disk and plug it into the duplicator, along with the destination disk. Good mechanical hard drives top at about 100 to 150 MB/s, so for a 1 TB disk this will take at least two hours. SSD are faster, and make SATA even more important.
Plug the copy into the machine which will do the analysis (internal connection, SATA again).

I would recommend against booting the machine to analyze, even on a CDROM or USB key, because this entail fiddling with the BIOS settings, thus "polluting" the crime scene. Also, this would limit your options to USB, and USB-2.0 tops at 60 MB/s (theoretical limit, rarely achieved).

For even faster analysis, make the target disk an SSD (which will have to be big enough to accommodate a complete copy of the source disk, and large SSD are expensive -- but sooooo fast !).


How can I tell if BitLocker is successfully enabled on remote hosts? All machines from my network should have BitLocker successfully applied to them.

Is there a way that I can remotely query the machines to see if:

Bitlocker has been enabled,
Bitlocker has fully encrypted the drive.

Ideally I am looking for a way to do it without admin rights.

With this PowerShell command, you can check the BitLocker status on a volume:

Manage-bde -status -cn <computername/ip> <drive letter>

Where the -cn argument is optional. Examples:

Manage-bde -status C:
Manage-bde -status -cn 192.168.1.2 C:

The command can also be run remotely.

Reference:
https://docs.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-2012-R2-and-2012/ff829849(v=ws.11)


Third Party Risk Management: Validating responses from vendors? I am designing a 3PRM (Third-Party Risk Management) process in a FS company, and I'm curious about how other companies validate their supplier questionnaires.

The system I'm anticipating is (after I've issued supplier questionnaires, and received the responses) dividing up the responses for degrees of validation.

I'm considering three tiers:

Tier 1: Suppliers that can be assured based purely on their questionnaire responses: that is, given the level of risk to the company, we don't require anything more than the answers to the questionnaires (plus copies of any certifications that they claim to have, such as ISO27001, etc)

Tier 2: Suppliers that we require additional evidence in order to be assured that they are secure: that is, we might need to see (for example) copies of the policies that they claim to be upholding, plus evidence that they are being upheld, etc.

Tier 3: Suppliers will require a site visit to verify their responses: that is, suppliers that represent a sufficient risk that we need to be certain that they are secure, by checking it for ourselves.

My questions would be:

What criteria should we use to distinguish between these three tiers? What sort of benchmarks or cut-offs would be appropriate (based on risk to the company, the kinds of service being supplied, etc)?
What kinds of evidence would be reasonable to ask for in relation to Tier 2 suppliers?

I'm guessing "FS" is Financial Services. Although I don't have experience in that industry, I've worked with similar processes in other industries and can outline what I've seen, both from the companies that I've worked for as well as from the companies that use us as a vendor.

The first step is typically an internal assessment. You build a business case, identifying why you need a vendor. You'll identify one or more possible vendors as well. If you have the capability to build, a build-vs-buy decision may be part of this internal assessment as well. This is often based on publicly available information to narrow down the scope and determine which vendors to engage with. This would also look at the intended use of the product or service and what, if any, additional work is necessary.

If the internal assessment requires a further assessment from a quality perspective (meaning more than just engaging with the vendor's sales teams to negotiate a contract), the next step would be a standard questionnaire. Many of the questions have overlap with various standards like ISO27001, SOC2, etc. If the organization has such a certification, I typically expect to see the answer indicating that the question is addressed by the certification report (and if they are really nice, citing a specific section or sections that I could read). If they do not have an appropriate certification that covers the case, then I would expect a specific answer to the question.

Based on the risks identified in the internal assessment and the answers to the questionnaire in the second step (which may include internal certifications), the third step would be an audit. This typically happens if the vendor doesn't have the relevant certifications. Except for the highest risk systems, a questionnaire plus relevant certification almost always eliminates the need for an audit.

The differences in what you propose and what I've often seen is that Tier 1 is something that doesn't require significant assessment or certification - the lowest criticality and risk vendors. Tier 2 receives a questionnaire, and they would be expected to produce relevant certification reports or undergo an assessment. Tier 3 would undergo an assessment, either due to lack of certification, questions raised by the certification report, or the level of risk identified in the initial vendor assessment. I'd point out that assessments may be done virtually, such as over Microsoft Teams, WebEx, or some other conferencing application.

The biggest differentiation is a risk. It's up to you to define what you consider to be your risks, though, and how much tolerance you have for different kinds of risk. Things like the cost of the product or service, the impact of not having access to the product or service, how integrated the product or service is to your core business are all some examples of things that you would have to consider. I'm not sure that anyone here could tell you what is most concerning to you other than you.

Just like we can't tell you how to perform a risk assessment, I'm not sure that we can tell you what evidence to collect if you were to perform your own assessment. As someone who has performed vendor assessments, I usually leave it up to the vendor to provide a description of their process, ideally before the assessment so I have time to review it. Then, at the assessment, I want to see how many times the process has been executed and a sampling of evidence from it. I leave the generation and demonstration of evidence up to the organization being assessed since it's their process and they know best how to demonstrate it.


How to recover from ransomware using Restore Points? While reading about ways to recover from a ransomware on a Windows machine it's often recommended to use the System Restore functionality, e.g. to restore from a Restore Point.

I know that the Restore Points are located in the hidden System Volume Information folder on the root of the C: drive. If enabled, will it "survive" a ransomware? By default, only SYSTEM is permitted on that folder, but there are ways to grant permissions to basically any user using the built-in cacls command?

Some ransomware do compromise system restore points, others don't. To do it, they would need to have admin priveliges. But it is not at all unimaginable that malware would have that.

So should you rely on system restore points stored on your hard drive as protections against malware before the infection? Absolutely not! You need to have an external backup.

But could you rely on them to restore lost data after an infection, if you have no other backups? Yes, possibly, but only as a last resort. Be aware that your system may still be infected even after the restoration if the ransomware has infected the system image (or the ransomware could simply have encrypted them as well). You might also want to try to identify the ransomware, and do some research to figure out if that particular strand of malware compromise system restore points or not.

Also, as Tsar points out, system restore points don't contain user data  most of the time. So you might not get much back from them.


What to do about compromised passwords through malicious sites or site hacks So my question or hypothesis is that: most people use only a few passwords for all online services, getting one of these passwords means you could access that person's sites easily which don't have any other login security (e.g. 2-factor). A website that takes passwords and emails can store those passwords maliciously, or a hacked site can do so...

Two options come to mind:

Hash the password client-side. Yes, "then the hash becomes the password", but if each site uses a slightly different hashing algorithm, then the same plaintext password will result in a different hash, and knowing the hash from one site does not help an attacker get into another site.
Could we implement a zero-knowledge algorithm for passwords?

This is not a definitive answer, just some thoughts.
1. Client-side hashing.
I see what you're going for: protecting the plain-text password. An idea like this relies on every site using a different hashing scheme (otherwise you can make lists of which sites use the same hashing scheme and know that their hashes / passwords will be interchangeable).
So I guess this would help a little, but certainly doesn't solve the problem, and relies on devs changing their hashing schemes from the default (which is dangerous for other reasons if they don't really understand how password hashing works).
2. Zero-knowledge proof based on password
I am not an expert in Zero-knowledge proofs, but my understanding is that they are a subset of Public Key Algorithms. Symmetric-key algorithms (like AES encryption) can easily be combined with passwords ... public key, not so much. My intuition is that if you flesh out this idea fully, you're basically going to re-invent client-authenticated SSL, so just use that?
Misc comments
IMO passwords as a whole are a sinking ship; they are a broken system. This is because we are at the point in history where hacker's ability to brute-force passwords is starting to surpass the human brain's ability to remember complex passwords.
Rather than trying to patch a sinking ship, I suggest that we (as an industry) move as quickly as we can to adopt non-password-based auth systems. Things like 2FA or ssh keys do not have the same fundamental problems as passwords, and are the kinds of solutions we should be embracing.

P.S. At time of writing, the question has 3 close votes as "too broad". I've done a dangerous thing here where I edited the OP's question to be less broad, then posted an answer to the newly-worded question. I hope this is acceptable.


Email Spoofed. Explain? So, I think my email id might have gotten hacked. Can some one offer their comments and suggestions on this email ? It seems this email went from my mail id to my friend's email id. The subject is personal and I have not provided it. Also, this email is neither in my 'Sent' folder nor in my 'Trash' Folder.

Delivered-To: myFriend@gmail.com
Received: by 10.220.187.65 with SMTP id cv1cs37222vcb;
    Tue, 28 Jun 2011 12:25:05 -0700 (PDT)
Received: by 10.236.176.38 with SMTP id a26mr5411029yhm.410.1309289105028;
    Tue, 28 Jun 2011 12:25:05 -0700 (PDT)
Return-Path: <MyEmailId@gmail.com>
Received: from ROCKY (host216-212-117-146.birch.net [216.212.117.146])
    by mx.google.com with ESMTP id l25si2327155yhm.109.2011.06.28.12.25.04;
    Tue, 28 Jun 2011 12:25:05 -0700 (PDT)
Received-SPF: neutral (google.com: 216.212.117.146 is neither permitted nor denied by domain of MyEmailId@gmail.com) client-ip=216.212.117.146;
Authentication-Results: mx.google.com; spf=neutral (google.com: 216.212.117.146 is neither permitted nor denied by domain of MyEmailId@gmail.com) smtp.mail=MyEmailId@gmail.com
Message-Id: <4e0a2a91.a5b5ec0a.0aa1.ffffdca7SMTPIN_ADDED@mx.google.com>
MIME-Version: 1.0
From: "MyFullName"
<MyEmailId@gmail.com>
To: MyFriend@gmail.com
X-Priority: 1
 Priority: urgent
Importance: high
Date: 28 Jun 2011 15:25:18 -0400
Subject: Email from MyEmailId@gmail.com
Content-Type: text/plain; charset=us-ascii
Content-Transfer-Encoding: quoted-printable

<Subject>

Here MyEmailId and MyFriend are two email addresses that are not real. Everything else is.  I have not posted the Subject as it is personal.

So if my email id was spoofed, how could the spoofer know my personal details ? What are the possibilities ? I run outlook. I installed MacKeeper yesterday (software for cleaning up mac) . Any connections ?

There is no hack necessary to send mail with your mail address - anyone can send mails with any sender address to anyone, if the receiving mail server does not have stronger policies. (This is caused by the open structure of the Internet.)

A hack would be necessary to read your mail.

If you want to make sure that no one can send mails in your name, sign your mails (using PGP or S/MIME), and tell all your correspondents that they should discard any non-signed mail claiming to come from you.

Some analysis of the header lines.

The additional two Received lines do not add much.

Received: by 10.220.187.65 with SMTP id cv1cs37222vcb;
    Tue, 28 Jun 2011 12:25:05 -0700 (PDT)
Received: by 10.236.176.38 with SMTP id a26mr5411029yhm.410.1309289105028;
    Tue, 28 Jun 2011 12:25:05 -0700 (PDT)

These are private addresses, inside a local network, and they don't say from where they receivded the message. (These are the last stations that the message went through before arriving at your friend). If your friend used the Gmail web interface, these most likely are Gmail-internal servers.

Then we have these:

Return-Path: <MyEmailId@gmail.com>
Received: from ROCKY (host216-212-117-146.birch.net [216.212.117.146])
    by mx.google.com with ESMTP id l25si2327155yhm.109.2011.06.28.12.25.04;
    Tue, 28 Jun 2011 12:25:05 -0700 (PDT)

The return path shows what was mentioned in the SMTP dialogue as MAIL FROM. This was added by the receiving mail server, most likely the one in the next line: mx.google.com. This server got the mail from a SMTP client who identified itself in the SMTP dialogue as ROCKY, had the IP address 216.212.117.146 (which has a reverse DNS mapping to host216-212-117-146.birch.net).

This seems to be an IP address in the US (assigned by ARIN to Birch Telecom and from them to Premier Mortgage Funding. Either they have a bot-infected computer there, or they really sent the mail. (Or someone earlier in the list was spoofing the whole header.)

Do you know anyone at this location? Does the contents of the mail in any way relate to mortgage funding?

Received-SPF: neutral (google.com: 216.212.117.146 is neither permitted nor denied by domain of MyEmailId@gmail.com) client-ip=216.212.117.146;
Authentication-Results: mx.google.com; spf=neutral (google.com: 216.212.117.146 is neither permitted nor denied by domain of MyEmailId@gmail.com) smtp.mail=MyEmailId@gmail.com

These lines are added by the same server, most likely. The server did an SPF check on the mail address and sender's IP address, and has neither a positive nor negative result.

Google's SPF DNS records look like this (line breaks by me):

gmail.com.         259  IN   TXT     "v=spf1 redirect=_spf.google.com"

_spf.google.com.   236  IN   TXT     "v=spf1 ip4:216.239.32.0/19 ip4:64.233.160.0/19
                                             ip4:66.249.80.0/20 ip4:72.14.192.0/18
                                             ip4:209.85.128.0/17 ip4:66.102.0.0/20
                                             ip4:74.125.0.0/16 ip4:64.18.0.0/20
                                             ip4:207.126.144.0/20 ip4:173.194.0.0/16
                                             ?all"

Some IP ranges (which likely include GMail's web servers) are explicitely whitelisted, and the rest is mentioned as neutral by the ?all tag at the end.

If the mail were sent from GMails web interface (or via Gmails SMTP authenticated submission port), then there would likely be a "spf=positive" or similar result in the header instead.

Message-Id: <4e0a2a91.a5b5ec0a.0aa1.ffffdca7SMTPIN_ADDED@mx.google.com>

This message-Id is also added by the accepting mail server.

From: "MyFullName"  <MyEmailId@gmail.com>
To: MyFriend@gmail.com

(I suppose name and mail address were on one line.) Now it gets interesting. The sender knew your full name, as well as a fitting mail address. Do a Google search - is this combination public knowledge (i.e. findable on the web)? If not, then it is likely that either someone's address book got "hacked" (i.e. someone got some malware which is collecting these addresses), or some website where you entered these sold your data.

X-Priority: 1
 Priority: urgent
Importance: high

These header lines would give the mail a quite good chance to get stuck im my filter, I think :-)

Subject: Email from MyEmailId@gmail.com

This is also a typical spam subject line.

<Subject>

  I have not posted the Subject as it is personal.

Do I understand right, the text of the mail contains personal details, and not a generic spammy message?
Could this be some text copied from a mail you (or someone else) wrote before?

Other than this, it could be someone who knows you and your friend and who wants to play a prank to both of you.


Best practices for automatic login URL's? An automatic login URL is a mechanism whereby an existing but logged out user of your website or application can click a link with a random token and be automatically recognized and logged-in to your website. Often these mechanisms are used in other fashions such as password resets.

I am wondering what some "defense in depth" security measures are that you suggest when building an "automatic login" mechanism that reduces risk of user account compromise.

Is there anything that can be done beyond the typical measures?

Token with short expiration time
Token that can only be used once

In addition to ensuring a token is single use, has a short expiration and that the token is sufficiently random and long:

I'd recommend limiting the number of valid tokens in existence at any given time (preferably to 1). That way your exposure to compromised codes is limited to a fixed number.
Having the code in the parameters of a GET request will expose the code in most HTTP logs (eg. browser history). This is mostly mitigated by making the codes single use, but ideally you'd only send them the login link without the code embedded and make them copy the code from the email to the login page manually.


Devices with cryptic names and Chinese ip addresses connected to my router Please see image.

Does anyone have any idea of whats going on?

They come and go as attached devices in my attached devices list.

I also attached my routers log for you all to see.
http://pastie.org/8997306

Looking at the OUI, it appears you have 3 Apple MACs connected, 1 Netgear MAC, and 3 unknown MACs.

The Apple and Netgear MACs may be spoofed; please compare them against your own devices.  Then, if you can, compare their traffic against the legitimate device's traffic to see if those MAC's are being spoofed.

The unknown MACs are almost certainly spoofed.  Note that I don't see 120.91 in the log snippet at all, which is interesting.

  BC-3B-AF   (hex)      Apple
  BC3BAF     (base 16)      Apple
                1 Infinite Loop
                Cupertino CA 95014
                UNITED STATES

  30-F7-C5   (hex)      Apple
  30F7C5     (base 16)      Apple
                1 Infinite Loop
                Cupertino CA 95014
                UNITED STATES

  C4-3D-C7   (hex)      NETGEAR
  C43DC7     (base 16)      NETGEAR
                350 EAST PLUMERIA DRIVE
                SAN JOSE CALIFORNIA 95134
                UNITED STATES

Sorry!

The public MA-L listing contains no match for the query 63-20-3D
Please back up to the search page and try again.

Sorry!

The public MA-L listing contains no match for the query 20-62-3C
Please back up to the search page and try again.

Sorry!

The public MA-L listing contains no match for the query 42-40-3A
Please back up to the search page and try again.

If you're concerned (I would be, but I'm overly concerned about security), I would:

Tell everyone the Internet will be down for awhile.
Make note of all your custom settings

Not passwords or SSIDs; those are all going to change.
Yes, SSID's - those are the salt for WPA/WPA2, and precomputed tables can be made using those salts, as Pyrit does.

Download the newest firmware for your router
Factory reset your router (probably a tiny button you have to hit with a pin)
Update the firmware on your router
Factory reset your router again (probably excessive, but you don't lose anything but 90 seconds of your time)
DISABLE WPS to prevent Reaver attacks.

If you can't disable WPS, buy a new router that can, or use a non-router access point like a Ubiquiti.

Set a new SSID, something unique.

Add some randomness if you can handle it - the purpose is to get out of the range of SSID's an attacker may have precomputed tables of.

Verify your wifi is set to WPA2-AES
Set a new Wifi password, something 100% random and at least 20 characters long.

You can use something like "openssl rand 20 -base64" and add in some more symbols; especially symbols NOT above numbers.
Personally, I recommend putting it into all your devices now, and then destroying any other records.  When you add a new device, make a new password and reset everything; this is a primitive password change schedule.

Disable access to the router's web interface from the WAN.
Disable access to the router's web interface from Wifi - you can afford to plug in a cable when you need to get into the router's interface.
Set a new admin password, just like the wifi password.
Watch your logs and device list for awhile.
Run Rescue CD's or other antimalware products on all your devices, just in case.


When logging into my work WiFi (we are allowed to do this) what exactly can they see? My work lets us log onto their WiFi with our personal phones. We don’t have to log on every time; it just connects automatically. I have nothing downloaded on my phone from my work that they could ‘spy’ on me with.
Am I right in thinking if it is a secure site, for example, google.com if I search let's say for Facebook on the google domain it would just come up as google.com on the network traffic log providing there was no man in the middle attack from my employer?
Which brings me to my next question:
how do you know if your employer is doing man-in-the-middle attacks?
Lastly, when logged onto Facebook can they see my messages that I send over their network in clear text?
I’ve probably been logged into the WiFi for about 3 years and never thought about what they could actually see until my friend mentioned why she uses a VPN.

If you use plain HTTP, then of course they can read everything. But the major sites like Google and Facebook don't support HTTP, only HTTPS.
Technically it is possible that they fake CA certificates, implement a man-in-the-middle and read all your traffic. But this is possible only in case they control your phone an install their certificates or if they trick you to install one of their certificates.
In a normal case there are many preinstalled CA certificates on your phone. If you don't accept their certificates (certificates faked by your company, in case your company fakes them), then you can be sure that your traffic to the sites in public internet cannot be read. What they see is only target host and port, the amount of data, duration. Based on timing and data volume in some cases it is possible with high probability to identify the data type like text messages, images, music, or videos. But not the content itself.


Mobile app vulnerability scanner for Android and iOS I want to choose the best vulnerability scanner for mobile applications (Andorid & iOS) to secure our mobile apps.
What tools and products do you suggest? I had not any experience with any of them, so I don't know which one is better.

Mobile Applications unlike web applications, are native apps which are installed on to the mobile operating system using a package. A mobile app is likely to follow a server client approach where the native app speaks to a server [eg: Facebook, Ebay]

Automated source code audit is possible on both the server side code and the client side code. Almost all the commercial scanners like IBM Appscan, HP Fortify and Checkmarx has modules which support such analysis for android native app code and the server side JAVA code and objective C.

However dynamic scanning of mobile applications is a lot more tricky. It will be almost impossible for a scanner to crawl though the API methods available. Manual testing would yield much more accurate results.


What ports should I filter on a default Magento installation I have recently installed a Magento on Ubuntu 14.04 on Digital Ocean and I'm wondering what ports should I filter to keep it safe. Well, actually the question should be: what ports I keep open to the internet?

A list of ports, identified with they should be inbound or outbound, would be enough. A better answer would be a list of iptables commands to secure the server :)

So, I am going to assume that your server does nothing except ecommerce. Therefore, the only ports you need are:

80 - Default HTTP, so that you can accept connections and redirect to...
443 - SSL / TLS for secure transactions.
SSH, but... it's better to choose a high random port instead of the standard 22.

Put SSH on a high random port

In /etc/ssh/sshd_config, change the port directive to a high random port. You can manually choose an "Unassigned" port from the IANA list of ports, or, you can be lazy and use a script I wrote that downloads the current port list, finds the unassigned ports, and randomly picks one for you.

This doesn't necessarily "increase security," but lowers the number of probes that are looking for low hanging fruit on 22.

For the sake of argument, let's say you have chosen 32637 as the port. This is important in the latter part of the answer.

Configure iptables

Firstly, we need to do this as a script so that it can be completed at once.

Here's a gist for you to lock down the server. But the code is also below:

#!/bin/bash

#Default deny
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT

#Allow established sessions
iptables -A INPUT -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT

#Allow localhost
iptables -A INPUT -i lo -j ACCEPT
iptables -A OUTPUT -o lo -j ACCEPT

#Allow tcp/80 (HTTP)
iptables -A INPUT -p tcp --dport 80 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

#Allow tcp/443 (HTTPS)
iptables -A INPUT -p tcp --dport 443 -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

#Allow SSH on our random port
iptables -A INPUT -p tcp --dport 32637  -m conntrack --ctstate NEW,ESTABLISHED -j ACCEPT

Here's how it works:

We start by default blocking everything from everywhere. Since you are running eCommerce and only need 80 and 443, we default block everything else.
Next we allow established sessions to remain active and work. This is so we don't disconnect ourselves during the process. But it's also useful for sessions that will be established later to remain established.
Next, we allow localhost. I assume you're talking to a DB server (MySQL?) for Magento.
The last three rules explicitly allow 80, 443, and 32637, which are HTTP, HTTPS, and SSH on our high random port configured above.

And, of course, if you want to reset iptables, here you go:

iptables -F
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT

inbound or outbound

Everything above is inbound.

Regarding outbound blocking: here, we are assuming that your server is not compromised, will need to send email confirmations, and is otherwise well maintained. There is no outbound blocking. If your server is clean and well run, there's really no reason to do that.

Unless you have a reason... but a default Magento (web application installation) that is properly maintained and secured doesn't really need it because it should not be sending out rouge connections, scans, or requests.


Where to download thousands of virus samples for AV testing? I'm making an antivirus test just for my own, and I need thousands of malware samples (about 10k-30k, but the more the better). Please don't even mention Eicar test file because this will be a detection rate testing. I saw several AV testing sites, but I don't blindly trust them, so I just would like to get a clearer view of the quality of the products.

A quick Google search turned up this post which links to a number of malware sample databases:

Contagio Malware Dump: Free; password required
KernelMode.info: Free; registration required
Malshare: Free
Malware.lu’s AVCaesar: Free; registration required
MalwareBlacklist: Free; registration required
Malware DB: Free
Malwr: Free; registration required
Open Malware: Free
SecuBox Labs: Free
theZoo aka Malware DB: Free
Virusign: Free
VirusShare: Free
@MalwareChannel: Free

However, the problem with most of these is that the samples tend to be quite dated, anywhere from a few weeks to years old. Thus while they're still useful for analysis purposes, they might not be as useful for testing the real-world effectiveness of antivirus programs. Detecting old malware is rather simple compared to keeping up to date with new malware, and most new samples that are widely distributed don't last more than a couple days before they are flagged by nearly all antivirus programs.

If you want to perform a more realistic test with new, just-discovered samples, you'll probably need  a live feed rather than a database. PCMag uses a feed supplied by a company called MRG-Effitas in their AV software testing, for instance. Google also turned up the Cyveillance Malicious URL Data Feed. Unfortunately, it seems these feeds are provided as a commercial service and not generally offered to individuals, though it wouldn't hurt to try contacting these companies.

If all this sounds like too much trouble, you might want give the third-party test results another look. By referencing results from several labs you can usually get a reasonably good idea of the effectiveness of any AV program you are considering.


How to determine whether an SSL certificate is single-domain or multi-domain First of all I know this sounds really stupid, but I am going to explain the situation.

I created an SSL certificate for a website at StartSSL. I created a regular Class 1 SSL Certificate for a web server validating let's say for  thedomain.com.

So, when you create the certificate, StartSSL gives you the option to add 4 additional alternative names to get the most out of the certificate. The idea is that the certificate was issued for thedomain.com like this.

thedomain.com
www.thedomain.com
mailer.thedomain.com
links.thedomain.com
landing.thedomain.com

The end result normally shows something like this:

Subject
CN = thedomain.com
C = MX

And shows the alternative names like this:

Subject Alternative Name
DNS Name=thedomain.com
DNS Name=www.thedomain.com
DNS Name=mailer.thedomain.com
DNS Name=links.thedomain.com
DNS Name=landing.thedomain.com

So it's basically one domain with 3 or 4 subdomains if you count the www. It's not even a wildcard single domain.

So, everything is going as planned and I go to the hosting provider (Hostgator) for the site to ask them to install it for a 10 USD fee (the option in cPanel is hidden in their shared hosting) and everything is going as planned but then they respond to the installation ticket that the certificate is multidomain and that the charge for multidomain certificate installation is 25 USD.

I've tried several times to tell them it's not a multidomain certificate, but they keep telling me it is. I am not an expert, but I am pretty sure that if it were a multidomain it would be something like

thedomain.com
thedomain.net
thedomain.org

Can you guys help me out clearing this topic so I could also show the guys from hostgator this discussion to end the problem once and for all.

It will be considered as Multi Domain. Multi Domain also called as Multiple Domains. Now your details are like under:

Subject Alternative Name

DNS Name=thedomain.com
DNS Name=www.thedomain.com
DNS Name=mailer.thedomain.com
DNS Name=links.thedomain.com
DNS Name=landing.thedomain.com

Here every domain name will be count as an individual domain. Multi Domain SSL certificate gives you facility to protect more than one domain under the one shelter. Whether it has same TLD or different TLDs. In terms of SSL Certificate the alternative names you have provided while getting your certificate called as Subject Alternative Names or SAN. That understands every alternative name as different domain name. So in my suggestion your hosting provider is telling you right.

I do agree with point made by @INV3NT3D that Wildcard SSL Certificate would be better choice for you. You have to issue certificate on *.thedomain.com and everything in place of “ * ” (asterisk) will be covered.


How prevent online payment fraud? What is the solution of independent payment authorization from hackers between bank and merchant?

Some banks used SOAP protocol. I need another solution.

In many cases the merchant can check the amount before shipping the item. However many payment gateways implement a checksum value that is hashed with a secret key and if the hash don't match the value the transaction is aborted. There are several flaws with this approach, I gave a presentation at blackhat asia last year that illustrate some of them. You can find the slides + code on my github: https://github.com/wireghoul/presentations/tree/master/BHAsia2014 and the talk is on YouTube, just search for solutum cumulus mediocris.