The InfoSec Amnesty Q&A

Foreword (Lesley)

One of the hardest things to accept in information security is that we as individuals will simply never know everything there is to know about the field, or all of its many niches. Despite this absolute reality, we still often feel embarrassed to ask basic questions about topics we don’t understand, due to a misplaced fear of looking unknowledgeable.

The reality is that there are a number of subjects in information security which many people who are otherwise quite competent professionals in the field are confused by. To try to alleviate this problem, I anonymously polled hundreds of infosec students and professionals about what topics they’re still having trouble wrapping their heads around. A few subjects and concepts rose to the top immediately: Blockchain, the Frida framework, DNSSEC, ASLR (and various associated bypasses), and PKI.

Since information security has many areas of specialty, I’ve stepped aside today and asked people specifically working in each niche to tackle breaking down these topics. Where possible, I have provided two perspectives from people with different experiences with the subject matter. Each of these contributors was tremendously generous with his or her time and knowledge. Please visit their social media profiles and personal blogs!

ASLR (Skip Duckwall and Mohamed Shahat)

Perspective One: Skip

1) This is a pretty tough topic, so let’s start with an easy one. Can you tell us a little about yourself, and your expertise related to ASLR / ASLR bypassing?

Yikes, ask the easy ones first, eh?  I’m a former DOD Red team member (contractor) who did some stuff to some things somewhere at some point in time.  My biggest life achievement is being part of a group which got a multi-billion dollar MS client pissed off enough to call MS to the carpet and eventually MS wrote a whitepaper.  Now I’m a consultant.  My experiences with ASLR, etc are mostly from a “I have to explain why these are things to C-level folks and why they should care” standpoint.

2) ASLR bypasses are common in security news, but a lot of infosec folks don’t fully understand what ASLR does, and why bypassing it is a goal for attackers. Can you please give us a “500-words-or-less” explanation of the concepts? (Assume an audience with solid IT fundamentals)

Caveat:  This is a very technical question and in order to answer it in an easy to understand manner, I have to provide some background and gloss over a lot of very pertinent details.  My goal is to provide a GIST and context, not a dissertation ;-).
Ok, while I can assume people have solid IT fundamentals, I need to define a Computer Science fundamental, namely the concept of a stack.  A stack is a conceptual (or abstract) data structure where the last element in is the first element out (LIFO).  You put stuff into a stack by “pushing” it and you pull stuff out by “popping” them.  The wikipedia page for a stack (https://en.wikipedia.org/wiki/Stack_(abstract_data_type) ) is a good read.
This is relevant because stacks are used extensively as the means for an operating system to handle programs and their associated memory spaces.  Generally, the memory associated with a process has three areas (arranged in a stack), namely the Text area (generally the program’s machine code), the data area (used for static variables), and the process stack, which is used to handle the flow of execution through the process.  When a process executes and hits a subroutine, the current information for the process (variables, data, and a pointer to where the execution was last at) gets pushed onto the process stack.  This allows the subroutine to execute and do whatever it needs to do, and if further subroutines occur, the same thing happens.  When the subroutine is finished, the stack gets popped and the previous execution flow gets restored.

One of the earliest types of attacks against programming mistakes was called ‘stack smashing’ (seminal paper here: http://www-inst.eecs.berkeley.edu/~cs161/fa08/papers/stack_smashing.pdf by Aleph One).  In this kind of attack, the attacker would try to stuff too much information into a buffer (a block of data which sits on the process stack) which would overwrite the stack pointer and force the process to execute attacker-generated code included in the buffer.  Given the generally linear nature of how the stacks were handled, once you found a buffer overflow, exploiting it to make bad stuff happen was fairly straightforward.

ASLR (Address Space Layout Randomization) is an attempt to make the class of bugs called buffer overflows much more difficult to exploit.  When a process executes, it is generally given virtual memory space all to itself to work with.  So the idea was, rather than try to have all the process stack be clumped together, what if we just spread it out somewhat randomly throughout the virtual memory space?  This would mean that if somebody did find a buffer overflow, they would not know where the stack pointer was in order to affect the flow of the process and inject their code, raising the bar for attackers. (in theory)

Obviously bypassing ASLR is a goal for attackers because it is a potential gate barring access to code execution 😉

3) What are two or three essential concepts for us to grasp about ASLR and the various  bypass techniques available?

So when it comes to ASLR bypasses there are really only a couple different categories of methods, brute force or information leakage.

In many cases, ASLR implementations were limited somehow.  For example, maybe there were only 16 bits (65535) of randomness, so if you were trying to exploit a service which would automatically restart if it crashed, you could keep trying until you got lucky.  Many ASLR implementation suffer from some problem or another.

Another common problem with ASLR is that there may be segments of code which DON’T use ASLR (think external libraries) which are called from code that is using ASLR. So it might be possible to jump into code at a well known location and then leverage that to further exploit.

Information leakage is the final issue that commonly arises.  The idea is that a different vulnerability (format string vulns are the most common) has to be exploited which will provide the attacker with a snapshot of memory, which can be analyzed to find the requisite information to proceed with the attack.

4) What would you tell somebody in infosec who’s having trouble grasping how ASLR works and how it is bypassed? (For example, what niches in security really need to “get it”? What other things could they study up on first to grasp it better?)

Honestly, unless you are an exploit developer, an application developer, or into operating systems memory design, a gist should be all you need to know. If you are a developer, there’s usually a compiler option somewhere which you’d need to enable to make sure that your program is covered. It is also worth noting that generally 64-bit programs have better ASLR because they can have more randomness in their address space.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

This topic rapidly reaches into the computer science scholarly paper area (Googling ASLR bypass pdfs will find you a lot of stuff). Also, look through Blackhat / DEF CON / other security conference archives, as many people will present their research. If you want to delve deeper, look into how the Linux kernel implements it, read through the kernel developer mailing lists, etc… lots of info available.

Perspective 2: Mohamed

1) Thank you for joining us! Would you mind telling us a little about yourself, and your expertise related to ASLR / ASLR bypassing?

Hi Lesley! My name is Mohamed, I’m a software engineer who has a lot of passion towards security. Some may know me from my blog (abatchy.com) where I write about various security concepts/challenges.

I currently work as an engineer on the Windows Security team where we design/implement security features and do other cool stuff.

2) ASLR bypasses are common in security news, but a lot of infosec folks don’t fully understand what ASLR does, and why bypassing it is a goal for attackers. Can you please give us a “500-words-or-less” explanation of the concepts? (Assume an audience with solid IT fundamentals)

Address space layout randomization (ASLR) is a security mitigation that aims to prevent an attacker from creating a reliable exploit. Its first implementation was over a decade and it became a stable in modern operating systems.

What it does is simple, the address space of a process is randomized on rerun/reboot depending on the implementation, this can be applied to the base address of the executable and libraries it loads as well as other data structures like the stack and the heap among other internal structures as well as the kernel (KASLR).

Executables are expected to be position-independent. In Windows, linking must be done with /DYNAMICBASE flag, while Linux requires -fPIE as a flag for gcc/ld.

How does that help? Well, exploits rely on knowledge about the address space to be able to manipulate the execution flow (I control EIP, where do I go next?) and with this information taken away, attackers can no longer depend on predictable addresses. When combined with other fundamental mitigations like DEP (Data Execution Prevention), exploiting memory corruption bugs becomes much harder.

Before we discuss the common bypassing techniques, it’s important to stress on that bypassing ASLR doesn’t directly enable code execution or pose a risk by itself as this is only a part of the exploit chain and you still need to trigger a vulnerability that results in code execution. Yet, finding an ASLR bypass mean that broken exploits can utilize that bypass again.

There are a few ways to bypass ASLR, some of these techniques are less likely to be applicable in modern OS/software than others:

  1.  Information Disclosure: Most commonly used method to bypass ASLR nowadays, the attacker aims to “trick” the application into leaking an address.

    Example: CVE-2012-0769

  2.  Abusing non-ASLR modules: The presence of a single non-ASLR module means an attacker has a reliable place to jump to. Nowadays, this is becoming less common.

    Example: CVE-2013-3893, CVE-2013-5057

  3.  Partial overwrite: Instead of overwriting EIP, overwrite the lower bytes only. This way you don’t have to deal with the higher bytes affected by ASLR.

    Example: CVE-2007-0038

  4. Brute-forcing: Keep trying out different addresses. This assumes that the target won’t crash, and the virtual memory area is small (ASLR on 64-bit > ASLR on 32-bit).

    Example: CVE-2003-0201

  5. Implementation flaws: Weak entropy, unexpected regression, logical mistakes or others. Lots of great research on this topic.

    Example: CVE-2015-1593, offset2lib

    In real world, attackers will need to bypass more than just ASLR.

3) What are two or three essential concepts for us to grasp about ASLR and the various bypass techniques available?

  1. For ASLR to be efficient, all memory regions within a process (at least the executable ones) must be randomized, otherwise attackers have a reliable location to jump to. It’s possible that not all objects are randomized with the same entropy (randomization), in a way the object with the lowest entropy is the weakest link.
  2. Bypassing ASLR doesn’t mean attackers can execute code. You still need an actual vulnerability that allows hijacking the execution flow.
  3. Some bypasses aim to reduce the effective entropy

4) What would you tell somebody in infosec who’s having trouble grasping how ASLR works and how it is bypassed? (For example, what niches in security really need to “get it”? What other things could they study up on first to grasp it better?)

  1. Understand the memory layout of a process for both Linux/Windows, see how they change on rerun/reboot.
  2. Write a simple C++ program that prints the address of local variables/heap allocations with and without ASLR. Fire up a debugger and check the process layout of various segments.
  3. Research past ASLR vulnerabilities and how they were used to bypass it and recreate them if possible.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

  1. Understand the implementation differences for ASLR in Windows and Linux.
  2. Familiarize yourself with other mitigations like DEP, stack cookies (Windows/Linux), AAAS, KSPP (Linux), policy-based mitigations like ACG/CIG (Windows). This list is in no way comprehensive but serves as a good start.
  3. Solve exploitation challenges from CTFs, recreate public exploits that rely on bypassing ASLR.
  4. Check PaX’s ASLR implementations.

Recommended reads:

  1. Differences Between ASLR on Windows and Linux
  2. On the effectiveness of DEP and ASLR
  3. The info leak era on software exploitation
  4. Exploiting Linux and PaX ASLR’s weaknesses on 32- and 64-bit systems

For hands-on experience I recommend the following:

  1. RPISEC’s MBE course
  2. https://exploit-exercises.com
  3. CTFs

Blockchain (Tony Arcieri and Jesse Mundis)

Perspective One: Tony

1) Thanks for joining us. Would you mind telling us a little about your background, and your expertise with blockchain technology?

I’m probably most known in the space for the blog post: “On the dangers of a blockchain monoculture“, which covers both my (somewhat dated) views of blockchains and how alternative “next generation fintech” systems not based on blockchains might provide better alternatives. I spent the last year working for Chain.com, an enterprise blockchain company targeting cryptographic ledgers-as-a-service, which I recently left to pursue other interests.

2) Would you please give us a 500-words-or-less explanation of what a blockchain is, and why the technology is important to us as security professionals? (Assume an audience with solid IT fundamentals)

“Blockchain” is a buzzword which loosely refers to the immutable, append-only log of transactions used by Bitcoin, collectively agreed upon in a distributed manner using a novel consensus algorithm typically referred to as “Nakamoto consensus”. Other systems have adopted some of the ideas from Bitcoin, often changing them radically, but still referring to their design as a “blockchain”, furthering a lack of clarity around what the word actually refers to.

A “blockchain” is more or less analogous to a Merkle Tree with some questionable tweaks by Satoshi[2], which authenticates a batch of transactions which consist of input and output cryptographic authorization programs that lock/unlock stored values/assets using digital signature keys.

Bitcoin in particular uses a proof-of-work function to implement a sort of by-lottery distributed leader election algorithm. Being a buzzword, it’s unclear whether the use of a proof-of-work function is a requirement of a blockchain (the Bitcoin paper refers to the idea of a blockchain as a “proof-of-work chain”, for example), but in colloquial usage several other systems claiming to be based on a “blockchain” have adopted alternative authorization mechanisms, namely ones based around digital signatures rather than a proof-of-work function.

As a bit of trivia: the term “blockchain” does not appear in the original Bitcoin whitepaper. It appears to be a term originally used by Hal Finney prior to Bitcoin which Satoshi adopted from Hal.

[2]: It really appears like Satoshi didn’t understand Merkle Trees very well: https://github.com/bitcoin/bitcoin/blob/master/src/consensus/merkle.cpp#L9

3) What are a couple really critical concepts we should understand with regards to how blockchain technology functions?

Perhaps the most notable aspect of Bitcoin’s blockchain is its use of authorization programs as part of the “Nakamoto consensus” process: every transaction in Bitcoin involves two programs: an input program which has locked funds which will only unlock them if the authorization program’s requirements are met, and an output program which specifies how funds should be locked after being unlocked. Every validating node in the system executes every program to determine whether or not actions affecting the global state of the system are authorized.

This idea has been referred to as “smart contracts”, which get comparatively little attention with Bitcoin (versus, say, Ethereum) due to its restrictive nature of its scripting language, but every Bitcoin transaction involves unlocking and re-locking of stored value using authorization programs. In other words, “smart contracts” aren’t optional but instead the core mechanism by which the system transfers value. If there is one thing I think is truly notable about Bitcoin, it’s that it was the first wide-scale deployment of a system based on distributed consensus by authorization programs. I would refer to this idea more generally as “distributed authorization programs”.

Bitcoin in particular uses something called the “unspent transaction output” (UTXO) model. In this model, the system tracks a set of unspent values which have been locked by authorization programs/”smart contracts”. UTXOs once created are immutable and can only move from an unspent to spent state, at which point they are removed from the set. This makes the Bitcoin blockchain a sort of immutable functional data structure, which is a clean and reliable programming model.

Ethereum has experimented in abandoning this nice clean side effect-free programming model for one which is mutable and stateful. This has enabled much more expressive smart contracts, but generally ended in disaster as far as mutability/side effects allowing for new classes of program bugs, to the tune of the Ethereum system losing the equivalent of hundreds of millions of dollars worth of value.

4) What would you tell somebody in infosec who’s struggling to conceptualize how a blockchain works? (For example, does everybody in the field really need to “get it”? Why or why not? What other things could they study up on to grasp it better?)

There are other systems which are a bit more straightforward which share some of the same design goals as Bitcoin, but with a much narrower focus, a more well-defined threat model, and both a cleaner and more rigorous cryptographic design. These are so-called “transparency log” systems originally developed at Google, namely Certificate Transparency (CT), General Transparency (GT) a.k.a. Trillian, Key Transparency (KT), and Binary Transparency. These systems all maintain a “blockchain”-like append-only cryptographically authenticated log, but one whose structure is a pure Merkle Tree free of the wacky gizmos and doodads that Satoshi tried to add. I personally find these systems much easier to understand and consider their cryptographic design far superior to and far more elegant than what has been used in any extant “blockchain”-based system, to the point I would recommend anyone who is interested in blockchains study them first and use them as the basis of their cryptographic designs.

Links to information about the design of the “transparency log” systems I just mentioned:

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

Here are some links to specific bits and pieces of Bitcoin I think are worth studying:
– Bitcoin Transactions (a.k.a. UTXO model): http://chimera.labs.oreilly.com/books/1234000001802/ch05.html

Perspective Two: Jesse

1) Let’s start with the easy one. Would you please tell us a little about your background, and your expertise with blockchain technology?

I’m a C / Unix Senior Software Developer with a CISSP, who has worked with encryption and payment technologies throughout my career. I have a recently published paper on the possible implications of the GDPR (General Data Protection Regulation) on blockchain-based businesses, and have a pending patent application involving cryptographic keying material and cryptocurrencies. As an Info Sec professional, I enjoy the chance to share some knowledge with folks who wish to learn more about the field.

2) Would you please give us a 500-words-or-less explanation of what a blockchain is, and why the technology is important to us as security professionals? (Assume an audience with solid IT fundamentals)

A blockchain is fundamentally a ledger of transactions, with each “block” or set of transactions hashed in such a way as to link it to the previous block, forming a “chain.” There are many blockchains, with varying implementations and design goals, but at their core, they all provide for continuity and integrity of an ever-growing ledger of transactions. They provide an unalterable(*) record of events, in a distributed fashion, verifiable by any participant, and can be an important tool for providing “Integrity” in the CIA triad. The Bitcoin blockchain is the most famous, providing a basis for the BTC currency, so I will use it as a blockchain example. However, please understand that blockchain transactions don’t have to be financial in nature – they could be hashes of timestamped signed documents, or just about anything else you might want to keep an unalterable, witnessed record of.

(*) “unalterable” – In this case means that the network integrity as a whole is only secured by substantial ongoing compute power in a proof-of-work blockchain. Without that, you lose the core assurance the technology is trying to provide.

In the proof-of-work bitcoin blockchain, transactions are effectively of the form “At time Z, wallet number X paid wallet number Y the sum of N bitcoins.” Imagine many of these messages being dumped on a common message bus worldwide. “Miners” (who should more descriptively be thought of as “notaries”) collect up a “block” of these transactions, and along with the digital hash of the previous block in the chain, begin searching for a nonce value, which when added to their block, will make the hash of their block have a required number of leading zeros to be considered successful. The winning miner announces this block with their nonce to the world. All other miners confirm the block is valid, throw their in-progress block away, and begin working on a new block, which must now contain the winning block’s hash, thus adding an other link to the chain.

Checking the hash of a block is trivial, but finding the right nonce to create a valid hash takes time inversely proportional to the miner’s computing power. Once the chain has a sufficiently large number of blocks, each chaining back to the previous block, it becomes impractical to refute, change, or delete any records deep enough in the chain, without re-doing all the computational work which follows. An attacker would require a substantial percentage of the entire computational capacity of the network to do this.

In summary, a “block” is a set or group of transactions or entries plus a nonce, and the “chain” is formed by including the hash of the previous block as part of the next block. The weight of all future computations to find nonces for future blocks collectively secure the integrity of all the previous records in the chain.

3) What are a couple really critical concepts we should understand with regards to how blockchain technology functions?

“Blockchain” is not magical security pixie dust, and many new startup businesses pitching blockchain haven’t thought it through. As mentioned above, proof-of-work blockchains need a lot of compute power to secure them. Bitcoin is a fascinating social hack, in that by making the transactions about a new currency, the algorithm was designed to incentivize participants to donate compute power to secure the network in return for being paid fees in the new currency. On the other hand, private blockchains, kept within a single company may be no more secure against tampering than other existing record keeping mechanisms. That is not to say blockchains are useless outside of cryptocurrencies. The blockchain is applicable to “The Byzantine Generals Problem” [1] in that it can create a distributed, trusted, ledger of agreement, between parties who don’t necessarily trust each other. I fully expect the basics of blockchain technology to soon be taught in CS classes, right alongside data structures and algorithms.

[1] https://www.microsoft.com/en-us/research/publication/byzantine-generals-problem/

4) What would you tell somebody in infosec who’s struggling to conceptualize how a blockchain works? (For example, does everybody in the field really need to “get it”? Why or why not? What other things could they study up on to grasp it better?)

Keep it simple. A block is just a set of entries, and the next block is chained back to the previous block via inclusion of the previous block’s hash. The hash on each individual block is the integrity check for that block, and by including it in the next block, you get an inheritance of integrity. A change in any earlier block would be detected by the mismatched hash, and replacing it with a new hash would invalidate all the later blocks. Hashing is computationally easy, but finding a new nonce to make the altered hash valid in a proof-of-work scheme requires redoing all the work for all the blocks after the change. That’s really all you need to keep in mind.

Everyone in the security field does not need to understand blockchain to any deep level. You should have a basic understanding, like I’ve sketched out above, to understand if blockchain makes sense for your given use case. Again, using the more famous Bitcoin blockchain as an example, I’d strongly recommend everyone read the original 2008 Satoshi white paper initially describing Bitcoin[2]. It’s only eight pages, light on math, and very readable. It encapsulates many of the ideas all blockchains share, but I have to say again that while Bitcoin is implemented on the original blockchain, it is far from the only way to “do blockchains” today.

[2] https://bitcoin.org/bitcoin.pdf

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

Blockchain startups, projects, and new cryptocurrencies are all hot. Ethereum is getting a lot of press due to its “smart contracts” which provide compute actions executed on their blockchain. There are over ten thousand hits on github for “blockchain” right now, and over one hundred and fifty for books and videos at Safari Online. The challenge really is to narrow down your interest. What do you want to do with blockchain technology? That should guide your next steps. Just to throw out some ideas, how about finding a more power efficient way to do proof-of-work? Currently the Bitcoin network as a whole is estimated to be running at about 12 petaHashes per second, and consuming 30 TerraWatt-Hours per year. This is environmentally unsustainable. Or, examine some of the proof-of-stake alt-coins. Figure out what kinds of problems can we solve with this nifty, distributed, trust-out-of-trustlessness tool.

In my opinion, blockchain technologies really are a tool searching for the right problem. An alt-currency was an interesting first experiment, which may or may not stand the test of time. Smart contracts don’t seem ready for production business use to me just yet, but what do I know – Ethereum has a 45 billion dollar market cap, second only to Bitcoin right now. I personally don’t see how inventory tracking within an enterprise is really done better with a private blockchain than traditional methods, but I do see how one might be of use for recording land title deed transfers in a government setting. All of these, and many more activities are having blockchain technologies slapped on to them, to see what works. My advice is to find something which excites you, and try it.

The distributed, immutable ledger a blockchain provides feels like it is an important new thing to me for our industry. Maybe one of you will figure out what it’s really good for.

DNSSEC (Paul Ebersman)

1) Nice to meet you, Paul. Could you please tell us a little about yourself, and a bit about your work with DNSSEC?

I’ve been supporting internet connected servers since 1984, large scale DNS since 1990. I’ve been involved with the IETF development of DNS/DNSSEC standards and the DNS-OARC organization. For 3+ years, I was the DNS/DNSSEC SME for Comcast, one of the largest users of DNSSEC signing and validation.

2) Would you please give us a brief explanation of what DNSSEC is, and why it’s important?

The DNS is used to convert human friendly strings, like http://www.example.com into the IP address or other information a computer or phone needs to connect a user to the desired service.

But if a malicious person can forge the DNS answer your device gets and give you the IP address of a “bad” machine instead of the server you think you’re connecting to, they can steal login information, infect your device with malware, etc.

DNSSEC is a technology that lets the owner of a domain, such as example.com, put cryptographic signatures on DNS records. If the user then uses a DNS resolver that does DNSSEC validation, the resolver can verify that the DNS answer it passes to the end user really is exactly what the domain owner signed, i.e. that the IP address for http://www.example.com is the IP address the example.com owner wanted you to connect to.

That validation means that the user will know that this answer is correct, or that someone has modified the answer and that it shouldn’t be trusted.

3) What are a couple really critical concepts we should understand with regards to how DNSSEC functions?

DNSSEC means that a 3rd party can’t modify DNS answers without it being detected.

However, this protection is only in place if the domain owner “signs” the zone data and if the user is using a DNS resolver that is doing DNSSSEC validation.

4) What would you tell somebody in infosec who’s struggling to conceptualize how DNSSEC works?

DNSSEC is end to end data integrity only. It does raise the bar on how hard it is to hijack the DNS zone, modify data in that zone or modify the answer in transit.

But it just means you know you got whatever the zone owner put into the zone and signed. There are some caveats:

– It does not mean that the data is “safe”, just unmodified in transit.
– This is data integrity, not encryption. Anyone in the data path can
see both the DNS query and response, who asked and who answered.
– It doesn’t guarantee delivery of the answer. If the zone data is DNSSEC signed and the user uses a DNSSEC validating resolver and the data doesn’t validate,the user gets no answer to the DNS query at all, making this a potential denial of service attack.

Because it does work for end to end data integrity, DNSSEC is being used to distribute certificates suitable for email/web (DANE) and to hold public keys for various PKI (PGP keys). Use of DNSSEC along with TLS/HTTPS greatly increases the security and privacy of internet use, since you don’t connect to a server unless DNSSEC validation for your answer succeeds.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper?

Start with the documentation for your DNS authoritative server for information on signing your zones. Similarly, read the documentation for your recursive resolver and enable DNSSEC validation on your recursive resolver (or use a public validating resolver, such as 8.8.8.8 or 9.9.9.9).

Here are some good online resources:

For debugging DNSSEC problems or seeing if a zone is correctly signed: https:/www.dnsviz.com

For articles on DNSSEC: https://www.internetsociety.org/deploy360/dnssec/

PKI (Tarah M. Wheeler and Mohammed Aldoub)

Perspective One: Tarah

(Tarah Wheeler, principal security researcher at Red Queen Technologies, New America Cybersecurity Policy Fellow, author Women In Tech. Find her at @tarah on Twitter.)

1) Hi, Tarah! Why don’t we start off with you telling us a little about your background, and your expertise with PKI.

My tech journey started in academia, where I spent my time writing math in Java. As I transitioned more and more to tech, I ended up as the de facto PKI manager for several projects. I handled certificate management while I was at Microsoft Game Studios working on Lips for Xbox and Halo for Xbox, and debugged the cert management process internally for two teams I worked on. On my own projects and for two startups, I used a 2009 Thawte initiative that provided certificates free to open source projects, and then rolled my own local CA out of that experience. I managed certs from Entrust for one startup. I handled part of certificate management at Silent Circle, the company founded by Phil Zimmermann and Jon Callas, the creators of PGP. I was Principal Security Advocate at Symantec, and Senior Director of Engineering in Website Security—the certificate authority that owns familiar words like VeriSign, Thawte, GeoTrust, and others. I was one of the Symantec representatives to the CA/B (Certification Authority/Browser) Forum, the international body that hosts fora on standards for  certificates, adjudicates reliability/trustworthiness of certificate authorities, and provides a discussion ground for the appropriate issuance and implementation of certificates in browsers. Now, I use LetsEncrypt and Comodo certs for two WordPress servers. I have a varied and colorful, and fortunately broad experience with cert management, and it helped me get a perspective on the field and on good vs. bad policy.

2) Would you please give your best, “500 words or less” explanation of what PKIs are and what they’re used for today (assume an audience with solid IT fundamentals)?

PKI or public key infrastructure is about how two entities learn to trust each other in order to exchange messages securely. You may already know that Kerberos and the KDC (Key Distribution Center) work on a shared-secrets principle, where users can go to a central authority and get authorization to communicate and act in a given network. PKI is a more complex system that understands lots of different networks which may or may not share a common trust authority. In PKI, you’re negotiating trust with a root which then tells you all the other entities that you can trust by default. The central idea of public key infrastructure is that some keys you already trust can delegate their trust (and hence yours) to other keys you don’t yet know. Think of it as a very warm introduction by a friend to someone you don’t yet know!

There are five parts of certificate or web PKI.

  1. Certificate authorities, the granting bodies for public/private keys, are in practice a form of verification to grease those wheels when there’s no other method of demonstrating that you are who you say you are…a function of identity. Yeah, I know I said that two entities can trust each other without a common authority, but humans aren’t good at that kind of trust without someone vouching for them. So, we have CAs.
  2. Registration authorities have what is essentially a license to issue certificates based on being trusted by the CA, and dependent upon their ability to validate organizational identity in a trustworthy way. Certificate authorities may perform their own registration, or they might outsource it. CAs issue certificates, and RAs verify the information provided in those certificates.
  3. Certificate databases store requests for certificates as opposed to the certificates themselves.
  4. Certificate stores hold the actual certificates. I wasn’t in charge of naming these bloody things or I’d have switched this one with certificate databases because it’s not intuitive.
  5. Key archival servers are a possible backup to the certificate database in case of some kind of disaster. This is optional and not used by all CAs.

Keys work like this: a pair of keys is generated from some kind of cryptographic algorithm. One common algorithm is the RSA (Rivest-Shamir-Adleman) algorithm, and ECDSA (Elliptic Curve Digital Signature Algorithm) is coming into more common use. Think of those as wildly complicated algebraic equations that spit out an ‘x’ string and a ‘y’ string at the end that are interrelated. You can give the ‘x’ to anyone anywhere, and they can encrypt any message, ‘m’ with that x. Now, while they know the original message, only you can unencrypt the message using your ‘y’ key. That’s why you can send the ‘x’ key to anyone who wants to talk to you, but you should protect the secrecy of your ‘y’ key with your teeth and nails.

The two major uses for PKI are for email and web traffic. On a very high level, remember that traffic over the Internet is just a series of packets—little chunks of bits and bytes. While we think of email messages and web requests as philosophically distinct, at the heart, they’re just packets with different port addresses. We define the difference between messages and web requests arbitrarily, but the bits and bytes are transmitted in an identical fashion. So, encrypting those packets is conceptually the same in PKI as well.

If you want to secure email back and forth between two people, the two most common forms of PKI are PGP (Pretty Good Privacy) and S/MIME (Secure/Multipurpose Internet Mail Extensions). PGP is the first commonly used form of email encryption. Created by Phil Zimmermann and Jon Callas in the early 1990s, PGP is notoriously both secure and difficult to configure for actual human usage, but remains the standard for hyper-secure communication such as with journalists or in government usage. S/MIME is the outsourced version of PKI that your email provider almost certainly uses (once they’ve machine-read your email for whatever commercial/advertising purposes they have) to transmit your email to another person over open Internet traffic. While S/MIME is something most users don’t have to think about, you’ll want to think about whether you trust both your email provider and the provider of the person you’re sending your email to.

The other major use for PKI is a web server authenticating and encrypting communications back and forth between a client—an SSL/TLS certificate that’s installed and working when you see “https” instead of “http” at the beginning of a URL. Most of the time, when we’re talking about PKI in a policy sense or in industry, this is what we mean. Certificate authorities such as DigiCert, Comodo, LetsEncrypt, and others will create those paired keys for websites to use to both verify that they are who they say they are, and to encrypt traffic between a client who’s then been assured that they’re talking to the correct web server and not a visually similar fake site created by an attacker.

This is the major way that we who create the Internet protect people’s personal information in transit from a client to a server.

Quick tangent: I’m casually using the terms “identification” and “authentication,” and to make sure we’re on the same page: identification is making sure someone is who they say they are. Authentication is making sure they’re allowed to do what they say they’re allowed to do. If I’m a night-time security guard, I can demand ID and verify the identity of anybody with their driver’s license, but that doesn’t tell me if they’re allowed to be in the building they’re in. The most famous example in literature of authentication without identification is the carte blanche letter Cardinal de Richelieu wrote for Madame de Winter in “The Three Musketeers,” saying that “By My Hand, and for the good of the State, the bearer has done what has been done.” Notably, D’Artagnan got away with literal murder by being authenticated without proof of identification when he presented this letter to Louis XIII at the end of the novel. Also: yes, this is a spoiler, but Alexandre Dumas wrote it in 1844. You’ve had 174 years to read it, so I’m calling it fair game.

There are a few other uses for PKI, including encrypting documents in XML and some Internet Of Things applications (but far, far fewer IoT products are using PKI well than should be, if I can mount my saponified standing cube for a brief moment).

Why do we use PKI and why do information security experts continue to push people and businesses to use encryption everywhere? It’s because encryption is the key (pun absolutely intended) to increasing the expense in terms of time for people who have no business watching your traffic to watch your traffic. Simple tools like Wireshark can sniff and read your mail and web traffic in open wireless access points without it.

3) What are a couple really critical concepts we as infosec people should understand with regards to how a modern PKI functions?

The difference between identity and security/encryption. We as security people understand the difference, but most of the time, the way we explain it to people is to say “are you at PayPal? See the big green bar? That’s how you know you’re at PayPal” as opposed to “whatever the site is that you’re at, your comms are encrypted on the way to them and back.

There’s a bit of a polite war on between people who think that CAs should help to verify identity and those who think it is solely a function of encryption/security. Extended validation (“EV certs”) certificates show up as those green bars in many desktop browsers, and are often used to show that a company is who they say they are, not just whether your traffic back and forth is safe.

Whether they *should* be used to identify websites and companies is a topic still up for debate and there are excellent arguments on both sides. An extended validation certificate can prove there’s a real company registered with the correct company name to own that site, but in rare cases, it may still not be the company you’re looking for. However, in practice and especially for nontechnical people, identifying the site is still a step up from being phished and is often the shortcut explanation we give our families at holidays when asked how to avoid bad links and giving out credit card info to the wrong site.

4) What would you tell somebody in infosec who’s struggling to conceptualize how PKI works? (For example, does everybody in the field really need to “get it”? Why or why not? What other things could they study up on to grasp it better?)

PKI has become an appliance with service providers and a functional oligopoly of certificate authorities that play well with the major browsers. That isn’t necessarily a bad thing; it’s simply how this technology evolved into its current form of staid usefulness and occasional security hiccups. In reality, most people would do better knowing how best to implement PKI, since vulnerabilities are in general about the endpoints of encryption, not in the encryption itself. For instance: don’t leave 777 perms on the directory with your private keys. If your security is compromised, it’s likely not because someone cracked your key encryption—they just snagged the files from a directory they shouldn’t have been allowed in. Most PKI security issues are actually sysadmin issues. A new 384-bit ECDSA key isn’t going to be cracked by the NSA brute forcing it. It’ll be stolen from a thumb drive at a coffee shop. PKI security is the same as all other kinds of security; if you don’t track your assets and keep them updated, you’ve got Schroedinger’s Vulnerability on your hands.

PKI isn’t the lowest-hanging fruit on the security tree, but having gaping network/system security holes is like leaving a convenient orchard ladder lying about.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

Roll your own certs and create your own CA. Do it for the practice. I was on Ubuntu years ago when I was rolling my own, and I used the excellent help docs. One best security practice is to regularly generate and use new keys, instead of keeping the same key for years and years, for the same reasons that changing your password regularly for high-security sites is a good idea—and that’s true whether you’re creating your own certs and local CA or if you’re simply purchasing a certificate from a CA. As with so much else, rolling your own crypto means that YMMV, so if you’re thinking of doing so formally and for a company or project that holds critical or personal information, get a pro to assess it. Think of this like a hobbyist building cars or airplanes at home. Most may be fine with riding in their own homebrewed contraptions, but wouldn’t put a child in it. If you don’t have the time to be a PKI professional, don’t keep other people’s data safe with your home-brewed certificate authority.

Most of the time, security issues aren’t with the encryption itself, but with how it’s been implemented and what happens on the endpoints—not with the math, but with the people. Focus on keeping your keys safe, your networks segmented, and your passwords unique, and you’ll be ok!

*I would like to thank Ryan Sleevi for feedback, and especially for providing the Kerberos/PKI analogy for comparison. All errors are mine.

Perspective Two: Mohammed

1) Thank you sharing your knowledge! When you reached out to me, you noted you had quite a unique perspective on PKI. Would you mind telling us a little about your background, and your expertise on the subject?

In my first information security job in the government of Kuwait, we had the opportunity to work on the country’s national PKI and Authentication project in its infancy, basically from the start, and together in a small team (5 at the time) we set out on a journey of ultra-accelerated and solid education, training and development for the country’s custom in-house solutions. Deciding that development of internal capability is far more useful, compliant with national security, and of course more fun, we began to develop our own tools and libraries for PKI, authentication, smartcards, and related technology. We produced our first version deployed to the public in 2010, much sooner than most (if not all) countries in the region, so it was for us a “throw them in the sea to learn swimming” type of experience. Developing certificate pinning in 2010 in C++ is not fun, but if there is one thing I learned, it’s this: chase the cutting edge, challenge yourself, and don’t belittle yourself or your background.

2) Would you please give your best, “500 words or less” explanation of what PKIs are and what they’re used for today (assume an audience with solid IT fundamentals)?

PKI (Public Key Infrastructure – ignore the name, it’s counterintuitive) is basically the set of technologies and standards/procedures that help you manage and utilize real-world cryptography.

PKI basically is a (major) field of applied cryptography.

If you ever took a cryptography course, while not being a total math nerd, and found out there’s lots of theory and math gibberish, then I can totally understand and sympathize. I personally believe math is one of the worst ways to get introduced to cryptography (just like grammar is a really bad way to start learning a new language). Cryptography should first be taught in an applied crypto fashion, then as one understands the main concepts and fundamentals, math can be slowly introduced when needed (You probably don’t need to understand Chinese Remainder Theorem to be able to use RSA!).

Ever visited an HTTPS website and wondered how you connected securely without having any shared keys to that website? That’s because of PKI.

Without asymmetric encryption, it would be impossible to create global-scale encrypted communication standards like SSL without presharing your keys with everyone in the world, and without PKI, managing global-scale asymmetric encryption deployments would be impossible at both the technical and management level.

So where is PKI in our world? Everywhere!

If you connected to HTTPS websites: PKI

Used Windows Update: PKI

Ran an application from a verified publisher: PKI

Email security? PKI

Connected through RDP or SSH? PKI

PKI encompasses technologies related to digital certificates, keys, encryption, signing, verification and procedures related to enrollment, registration, validation and other requirements that these technologies depend on.

Think of Let’s Encrypt. It’s now a Certificate Authority (entity that gives you certificates to put on your site and enable https/ssl/tls). To give you a certificate, they have certain procedures to check your identity and right to have a certificate issued to your domain name. This way anybody in the world can securely connect to your website without having to trust you personally through this delegated chain of trust.

For Let’s Encrypt to be trusted globally, proper application of PKI must be done, and must be verified by 3rd parties. If this trust is violated or abused through improper practices, compromise or negligence, you lose total or partial trust globally. DigitNotar went out of business after state actors compromised its CA and issued fake certificates to global websites, allowing them to have semi-automatic exploitation of wide scale communications. Symantec used improper certificate issuance practices and is now scheduled for full distrust in browser on September 2018 (They have already sold their PKI business to DigiCert).

The same idea applies to almost every popular software we run: It’s signed by trusted publishers to verify ownership. Software updates are, too.

Without PKI, you can’t boot your device with even a hint of security.

Fun exercise: Go check your device’s list of trusted Root Certificate authorities (Root CA: All powerful entities having -at least theoretical- power to compromise most of your communications and systems if their power is abused and targeted against you). You’d be surprised to find entries for so many foreign government CAs (sometimes even China) already trusted by your device!

3) What are a couple really critical concepts we as infosec people should understand with regards to how a modern PKI functions?

There are many concepts to understand in PKI, but I’ll list the ones I think are most important based on the mistakes I’ve seen in the wild:

– Learn the importance of securing and non-sharing of private keys (real world blunders: Superfish adware, VMWare VDP and Rapid7 Nexpose appliances ) https://blog.rapid7.com/2017/05/17/rapid7-nexpose-virtual-appliance-duplicate-ssh-host-key-cve-2017-5242/

– Know the secure and insecure protocol/algorithm configurations (real world blunders: Rapid7 CVE-2017-5243 SSH weak configs, Flame malware, FREAK vulnerability (using weak RSA_EXPORT configs) – Even NSA.GOV website was vulnerable! https://blog.cryptographyengineering.com/2015/03/03/attack-of-week-freak-or-factoring-nsa

– Don’t charge the bull; dance around it. Most PKI implementations can be attacked/bypassed not by trying to break the math involved but by abusing wrongly put trust, wide-open policies, bad management and wrong assumptions. Real world blunder: GoDaddy issued wrong certificates because they implemented a bad challenge-response method that was bypassed by 404 pages that reflected the requsted URL – so GoDaddy tool thought the server error was a valid response to their random code challenge: https://www.infoworld.com/article/3157535/security/godaddy-revokes-nearly-9000-ssl-certificates-issued-without-proper-validation.html

4) What would you tell somebody in infosec who’s struggling to conceptualize how PKI works? (For example, does everybody in the field really need to “get it”? Why or why not? What other things could they study up on to grasp it better?)

Learn it in an applied fashion. No math. Take a look at your own setup. Check out the Digital Signature tab in any signed EXE that you have on your system. Open wireshark and checkout the SSL handshake, or wait till an OCSP request/response is made and check how it looks in wireshark. Get familiar a bit with PKI tools such as openssl.
Or write a small program that connects over SSL to some SSL port, then write a small program that listens on an SSL interface. Use ready-made libraries at first.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

Check out the following topics/ideas:

– Certificate Transparency.

– OCSP stapling.

– Code signing.

– Checkout The Update Framework (https://theupdateframework.github.io/ ), to learn how to implement secure software updates.

– Implementing client certificates for server-to-server communications.

– Hardware security modules (HSMs). YubiHSM is an affordable such piece of hardware.

I believe understanding PKI is growing more important as we start automating more and more of our tools and workflows, and that using tools (such as certbot) is not a valid excuse to not learn the fundamentals.

Frida (Dawn Isabel and Jahmel [Jay] Harris)

Perspective One: Dawn

1) Thanks for taking the time to speak with us, Dawn. Would you mind telling us a little about yourself, and your expertise with Frida?

Thanks for the opportunity!  I’ve been in information security for around 12 years, and before that worked as a web application developer.  I currently work as a consultant, primarily testing web and mobile application security.  I’ve been using Frida for a little over a year, and most of my experience with it is on mobile platforms.  I regularly write scripts for Frida to automate testing tasks and to teach others about iOS internals.

2) Assume we work in infosec, but have never used Frida. How would you briefly explain the framework to us? Why is it useful for security professionals? (Assume an audience with solid IT fundamentals)

At a high level, Frida is a framework that enables you to inject your own code (JavaScript) into an application at runtime.  One of the simplest use cases for this is tracing or debugging – if you’ve ever sprinkled “print” statements in a program to debug it, you’ll immediately appreciate using Frida to inject logging into an application to see when and how functions and methods are called!  Security professionals will also use Frida to bypass security controls in an application – for instance, to make an iOS application think that a device is not jailbroken, or to force an application to accept an invalid SSL certificate.  On “jailed” platforms like stock iOS, Frida provides security professionals with a window into the application’s inner workings – you can interact with everything the application can, including the filesystem and memory.

3) What are a couple important things to know about Frida before we start using it?

I think the first thing to understand is that Frida is ultimately a framework for building tools.  Although it comes with several useful command-line tools for exploring applications (the Frida command-line interface (CLI) and frida-trace are both invaluable!), it isn’t a scanner or set-and-forget tool that will output a list of vulnerabilities.  If you are looking for a flexible, open-ended framework that will facilitate your runtime exploration, Frida might be for you! 

The second thing to keep in mind is that Frida is much more useful if you approach it with a specific goal, especially when you are starting out.  For instance, a good initial goal might be “figure out how the application interacts with the network”.  To use Frida to accomplish that goal, you would first need to do a little research around determining what libraries, classes, functions, and methods are involved in network communications in the application.  Once you have a list of those targets, you can use one of Frida’s tools (such as frida-trace) to get an idea of how they are invoked.  Because Frida is so flexible, the specifics of how you use it will vary greatly on the particular problem you are trying to solve.  Sometimes you’ll be able to rely on the provided command-line tools, and sometimes you’ll need to write your own scripts using Frida as a library.

4) What would you tell somebody in infosec who’s having trouble using Frida? (For example, what niches in security really need to “get it”? What other things could they study up on first to grasp it better?)

When I first started using Frida, I tried to jump right in writing scripts from scratch without having a clear idea of what I was trying to accomplish.  Figuring out all the moving parts at once ended up slowing me down, and felt overwhelming!  Based on those experiences, I usually recommend that people who are new to Frida get started by using frida-trace.  The neat thing about frida-trace is that it will generate stubs called “handlers” that print a simple log message when the functions and methods you specify are invoked.  These handlers are injected into the target process by frida-trace, which also handles details like receiving and formatting the log messages.  Editing the handlers is a great way to learn about Frida’s JavaScript API (https://www.frida.re/docs/javascript-api/) and gain visibility into specific areas of an application.  There is a nice walkthrough of the process of editing a handler script in the post “Hacking Android Apps With Frida I” (https://www.codemetrix.net/hacking-android-apps-with-frida-1/).

Once you are comfortable editing the handler code, experiment with creating your own self-contained script that can be loaded into a process using the Frida CLI.  Start by loading some examples that are compatible with your platform, and then try using those as a template to write your own.  There are many example scripts you can try on Frida Codeshare (https://codeshare.frida.re/) – copy the code to a file so you can easily edit it, and load it into the Frida CLI using the “-l” flag.  Initially, aim to gain proficiency using Frida to invoke native methods in the application.  Then practice using the Interceptor to attach to and replace functions.  Incidentally, if you started out by using frida-trace then using the Interceptor will be very familiar – just compare the contents of a handler script to the Interceptor.attach() example shown at https://www.frida.re/docs/javascript-api/#interceptor!

I don’t think you need to have a deep understanding of Frida’s internals to use it, but it is definitely helpful to understand the architecture at a high level.  Frida’s “Hacking” page has a nice diagram that lays out the different components (https://www.frida.re/docs/hacking/).  You’ll also want to know enough JavaScript that you don’t spend a lot of time struggling with syntax and basic programming primitives.  If you’ve never written in a scripting language, running through some JavaScript tutorials will make it easier to use Frida with the provided command-line tools.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

If you want to dive deeper, there are several directions you can go!  Since Frida is an open-source project, there are many ways to contribute depending on your interests.  There are also a lot of great tools built with Frida, many of which take contributions.  For any level of interest, I suggest checking out https://github.com/dweinstein/awesome-frida as a starting point.  You’ll find blog posts and demos showing some concrete examples of Frida’s functionality, as well as links to some of the projects that use it.

If you want to contribute to Frida, or build more complex tools that leverage it, I’d recommend gaining a greater understanding of how it works.  One good starting point is “Getting fun with Frida” (https://www.coresecurity.com/system/files/publications/2016/10/Getting%20fun%20with%20Frida-Ekoparty-21-10-2016.pdf), which discusses concepts in Dynamic Binary Instrumentation (DBI) and discusses prior work.  The 2015 presentation “The Engineering Behind the Reverse Engineering” (slides and video at https://www.frida.re/docs/presentations/) is even more in-depth, and a good follow-up once you grasp the high-level concepts.

Perspective Two: Jay

1) Hi Jay! Thanks for taking the time to chat with us. Would you please tell us a little about yourself, and your expertise with Frida?

My name is Jahmel Harris but some people know me as Jay. I’m a freelance pentester in the UK (digitalinterruption.com) and run Manchester Grey Hats (https://twitter.com/mcrgreyhats) – a group where we put on free workshops, ctfs etc to help teach practical cyber security skills to our members. We live stream so no need to be in the UK to attend! Also, feel free to join our Slack (invite link on Twitter).

I started using Frida when performing mobile application testing and found it worked much better than Xposed which I was using at the time. Although XPosed and Frida allows us to do similar things, Frida allows us to do it in a faster and more iterative way. A simple task could take several hours in Xposed can be done in minutes in Frida. More recently, i’ve been using Frida in bug bounties as many mobile apps go unlooked at due to some (fairly easy to bypass) client side security controls.

2) Assume we work in infosec but have never used Frida. How would you briefly explain the framework to us? Why is it useful for security professionals? (Assume an audience with solid IT fundamentals)

Frida allows us to inject JavaScript into a running application. Why is this useful? Well, it means we have the ability to change the behaviour of applications at runtime. By changing the behaviour of the application, we can add logging which can help us understand the flow, remove security controls or even dump secrets and keys. I find frida helps take testing one step further, especially where mobile apps are concerned. We can test assumptions easier, and change parts of the code without changing the signature. The other advantage is that as it becomes more difficult to jailbreak some devices, Frida can still allow us to perform a thorough test.

3) What are a couple important things to know about Frida before we start using it?

Frida is a great framework but there are some things I remind people:

  1. It is not very mature so you *will* discover bugs. Ole André V. Ravnås (the creator of Frida) is very friendly though and helps where he can so don’t be afraid to reach out to him.
  2. It’s not only for mobile application testing. For some reason I tend to only see Frida being used for Android and iOS application testing. It supports Windows and Linux so can be used for instrumenting Desktop applications too!
  3. Frida is bundled with a few tools such as frida-trace. This is where I start when trying to RE an application. Frida-trace will log functions that are called as well as generate the JavaScript handlers. This makes it super easy to start guessing interesting function names and tracing on them. As an example, if we’re looking at an IRC client, we can put traces on *send* or *irc* and we’re likely to get something interesting. Using Frida it’s then easy to start changing parameters to these functions or even change the behaviour of them *all at runtime without restarting the application!*

4) What would you tell somebody in infosec who’s having trouble using Frida? (For example, what niches in security really need to “get it”? What other things could they study up on first to grasp it better?)

Frida can really help mobile application testers go beyond the basics of app tests. Frida is also invaluable as it allows us perform a lot of useful tests from non rooted and non jailbroken devices which is something we struggle with with each new release of iOS. It’s important to understand though that Frida isn’t an exploitation framework. We still need to know what we’re looking for in an application or the controls we’re trying to disable. As an example, when doing a mobile application test, I might discover the application uses Certificate Pinning. To bypass this using Frida I will need to reverse the application, figure out the Certificate Pinning logic before writing a Frida hook to bypass it which of course requires some basic coding knowledge.

5) What about somebody who has a solid grasp on the basics and wants to delve deeper? (Any self-study suggestions? Are there any open source projects that could benefit from their help?)

As Frida is a framework and not an application per se, anyone using Frida that wants to help should work on more high level tooling using Frida. For example, more general purpose Certificate Pinning bypassing tools or fuzzing tools. The code for Frida is very well written so it’s easy to understand how Frida works and to contribute with bug fixes. As you find bugs or missing functionality in Frida, raise bug reports as it’s likely the same issue will be faced by many people.

Credit Card Security Infographic

CCinfographic

I commissioned the very talented artist Bryan Ward to make a good quality version of my previous credit card security infographic. This is meant as a tool to educate and inform people who post photos of their credit cards on the internet, and you may link to or repost it accordingly. Please give credit and do not use it commercially without permission.

Click the image above to view a larger version in a new window. I can provide a PDF version for printing if requested.

College and Infosec: To Degree or not to Degree?

So, you love to hack, and you’re going to get that dream job in infosec! Except, now what? A wide array of certification firms and colleges are willing to sell you an infosec program, with shiny advertisements and clever sales pitches. Unfortunately, college is massively expensive in the US, and the learning environment isn’t great for everybody. Is it worth the money and effort to get that Bachelor’s in Cybersecurity? Will a degree in an unrelated field do the trick? Will not getting a degree come back to bite you years later?

***

College degrees. I’ve found few topics aside from vulnerability disclosure in information security which raise so much raw emotion and fierce debate. In the interest of giving a well rounded and diplomatic answer about their value, I’ve once again asked several exceedingly qualified people to join me in sharing their time, experience, and ideas on the subject. Through a series of ten questions, each of us has weighed in on some hefty questions about the value of college education in learning about information security, getting an information security job, being promoted, and showing credibility.

Please allow me to introduce today’s contributors, who have generously contributed their time and thoughts:

Daniel Miessler, I’ve been in information security for around 18 years, with most of my time in technical testing (thick, app, web, mobile, IoT) and consulting. I lead OWASP’s Internet of Things security project and run a website, podcast, and newsletter where I talk about infosec, technology, and humans. More at https://danielmiessler.com/about.

Tarah M. Wheeler, Tarah Wheeler (BA, MS, CSM, CSD) is Principal Security Advocate & Senior Director of Engineering, Website Security at Symantec. She is the lead author of the 2016 best selling Women In Tech: Take Your Career to The Next Level With Practical Advice And Inspiring Stories. She co-founded and now serves as board chair for Fizzmint, an end-to-end employee management company. She has led projects at Microsoft Game Studios (Halo and Lips), architected systems at encrypted mobile communications firm Silent Circle, and holds two agile development certifications through the Scrum Alliance. She founded Red Queen Technologies, LLC & Infosec Unlocked. She acquired her startup funds by cleaning out poker rooms in the Northwest and Las Vegas. Reach her at @tarah.

Robert Sheehy, @helpmerob. Helping “people” with “stuff” while holding a senior management role in infosec.

Space Rogue, Looks like everyone else is putting their corporate bio here, uggh. I’m just some guy, ya know? I’ve been around for a while and I’ve done some stuff. I currently work as a Strategist for Tenable, [@spacerog http://www.spacerogue.net]

Chris Sanders, Chris Sanders is an information security author, trainer, and researcher. He is the founder of Applied Network Defense, a practitioner focused information security training company, and the Rural Technology Fund, a nonprofit devoted to providing technical education resources to rural and high poverty schools. He is the author of the best-selling security books Applied Network Security Monitoring and Practical Packet Analysis. He also hosts the Source Code Podcast., [@chrissanders88, http://www.chrissanders.org]

Jessica Hebenstreit (@secitup),  I’ve been doing security for almost 17 years.  I got a lucky break early in my career at Motorola as an Intern and have been doing InfoSec ever since. I’ve done a lot of different roles in a few different verticals.  I always come back to Ops and IR. Creator of the DREAMR framework, speaker and volunteer.  I am active in the security community and enthusiastic about making the industry more inclusive and accessible. https://twitter.com/secitup/  https://www.linkedin.com/in/jessicahebenstreit/

Without further ado, let’s launch into some of the most contentious questions about career paths in the industry!

***

  1. First of all, the elephant in the room – did you go to college or university yourself? If so, did you get your degree before or after you started formally working in security?


    Jessica: In short yes.  However my academic career was varied, and longer than a traditional “4 years”.  I started at Iowa State University in the Computer Science program.  After a couple of major changes (because I am not great at coding and suck at math), along with study abroad experiences and transferring to Arizona State, I graduated with a Bachelor’s degree in Interdisciplinary studies with a focus on International Business and Spanish.  I was fortunate to start working in security as an Intern at Motorola for 3 years prior to graduation.  I was offered a full time role that I began prior to actual graduation.  I also have a Master’s degree that I obtained in 2012.

    Space Rogue: I started school like everyone else but quickly ran out of money despite the GI Bill.. I was able to get good paying IT jobs anyway and figured I didn’t need a degree. Then one of the many recessions in my career hit, I found myself out of work with few opportunities. I could almost always get an interview based on my resume and experience but on more than one occasion after the third or fourth interview I was asked, “So I don’t see a degree on your resume, do you have one?” I would answer truthfully, “No, but I have years of experience and have done all these great things, blah blah.” and I was told “Thank you very much, we’ll call you.” After the fourth time in a row that this happened I decided I needed to get a degree. It took me several years of online and night classes but I finally graduated.

    Chris: I had an opportunity out of high school to take a computer network consulting job that would have put me in the top 1% of earners in Mayfield, KY. Of course, that was making 40K/year as Mayfield is a very rural, high poverty area. I’m fortunate that I had a few teachers who really cared about me and got it through my head that my ceiling was much higher and a degree would help me realize that. I ended up completing my bachelor’s, master’s, and am currently working on my PhD. I couldn’t afford college and didn’t receive nearly enough financial aid to pay for it all, so I worked full time (and then some) while working through all of my degrees.

    Robert: I received a two year degree in computer programming, although I have been considered a hacker since my early teen years. I’ve undertaken a significant number of independent studies since getting my degree, most of which did not result in a formal credential. I’ve taken and passed well over three dozen various IT and infosec certification exams, with close to a dozen still being active. Most of them demonstrate a minimal understanding of baseline requirements and not of advanced expertise. I feel that some people are way too proud of their credentials and certifications.

    Tarah: I went to college before formally working in infosec, though I’d been doing hardware assembly and servicing since 16 and coding since I was about 19. I got degrees in international relations and political science with quantitative elements. I have a BA and an MS, and in my experience, no one at all cares if those degrees are in cybersecurity or not. They’re an absolutely indispensable box tick when it comes to getting past HR, however.

    Lesley: I hold two Associate’s degrees (Avionics and Electronics) which were more an accidental byproduct of completing a lot of coursework than anything else. My Bachelor’s is in Network Engineering. I received it before working in infosec formally and after joining the military (thank you, G.I. Bill!). There weren’t really any security specific degree programs yet at the time.

    Daniel: I did go to college, for four years, but I left before graduating to start my professional career in infosec without a degree. I’ll be completing my bachelors soon and moving on to a Masters. At this point it’ll be just to check the box and for the fun of it.


  2. Based on your experiences hiring entry to intermediate-level infosec professionals and working in the field yourself, where do you fall on the spectrum of extremely pro-college, somewhat pro-college, neutral, somewhat anti-college, or extremely anti-college?


    Chris: Somewhat pro-college. I think everyone can benefit from being surrounded by a group of people who are devoted to learning. However, I recognize that it isn’t for everyone and finding the right faculty/college/program is non-trivial. All things being equal, if I’m choosing between two candidates I will go with the person who has a college degree.

    Tarah: Somewhat pro-college. I don’t think in any way that college is a prerequisite for being in security. I think it’s a startling leveller when it comes to diversity in technology, and one of the challenges employers are always facing is how to justify hiring someone who doesn’t “look” like a hacker or coder. I have, in my several previous positions, had to fight like a dog to get a woman or a person of color or someone queer to get hired, and sometimes the only ammunition I have is that they have a degree, and the more stereotypical (and often less-well qualified or experienced person) doesn’t. When I’ve been the CEO, I could just say “you’re hired,” but when I’ve been in a hierarchy, I have had to, in the past,  justify my decisions to a structure that doesn’t always understand the hacker mindset.

    Space Rogue: Neutral. Personally I would rather hire someone with at least some experience than just a college degree. I am always looking for someone who has done something, anything, real as opposed to just book learning. But I also realize when it comes to hiring managers I’m probably a bit of an anomaly. As infosec as an industry matures it is becoming more and more difficult for entry level people to stand out amongst the crowd. There is a lot of talk about the talent shortage in infosec but that really only applies to the mid and high level. The entry level is awash with people just finishing college with their newly minted degrees all looking for some way to stand out.

    Robert: Neutral. There needs to be experience outside of school for anything beyond entry level. Without experience, a credential can help to demonstrate that the candidate can see through a formal curriculum program to completion.

    Jessica: Somewhat pro-college, I believe some are “late bloomers” and that college right out of high school may not be for everybody.  I think more doors are opened for college degrees. I also think college gives one a variety of experiences and challenges one might not encounter otherwise.  I also realize college is expensive, at least in the US and for that reason alone can be out of reach for some folks.  I am still deeply in debt for my degrees.

    Lesley: Somewhat pro-college. I see more benefits than negatives, but it’s not for everybody and it’s extremely expensive in the US.

    Daniel: Somewhat pro-college. There are skills you can get from university that you don’t usually get other places, but it shouldn’t be considered a must for most infosec positions. This is something Google figured out when they did their big study of what variables make people successful. They expected to find that great colleges produced the best workers. Or people with the best grades, or who interviewed best. But no–they found few correlations with any of this stuff, and they were forced to accept that there’s no magic variable to any of it. Their people who went to college or didn’t, or went to a small school vs. a big famous one, didn’t show much difference in their performance. It turned out to be all about the management of the team that made the difference, but that’s a story for another day.


  3. What are some skills, motivations, and credentials that stand out to you the most on a entry level infosec résumé (before the first phone screen)?


    Space Rogue: I look for anything done outside of school that is relevant to the job. I want to see some kind of passion for the work, at the entry level it doesn’t have to be much but something. If the resume is nothing but degrees and certs and zero extracurricular things they will unlikely get an interview from me. If a person has no relevant work history at all then I want to see non-relevant work history. To me work history, any history, beats formal education every time.

    Chris: I don’t expect much out of an entry-level resume and put very little stock in them. I rely much more heavily on the interview and wind up interviewing most of the people who apply to an entry-level posting. Hiring is the most important decision I make, so it’s well worth the time spent. As far as resume content, it’s an entry-level job, so I don’t expect them to be passionate or display that on the resume yet. I want them curious, and then as their manager it’s my job to help them evolve that into passion. That said, if someone has already started learning about the field I think it’s great to list what they’ve been learning, how they’ve been learning it, and who they’ve been learning it from. I also value resumes that show involvement in service projects. People who have a servant leadership mindset and are willing to give of themselves are the type of people I want to work with.

    Tarah: Have they built a computer from parts to booting? Have they contributed to an open source project…even so much as a pull request to fix a typo? Have they built a website? Have they tried to harden their home network? Have they ever demonstrated that they’re willing to help others by posting blogs or information or answers? I don’t much care if they feel like they’re good people or if they love animals. I care what they can *do*. No one can hire solely on potential; you must demonstrate some of your ability.

    Jessica: Passion for the industry is something I definitely look for.  Personal projects that one can speak to such as those on github, or a blog.  Competing in things like CTFs or other contests, volunteering and other involvement in conferences, competitions or other projects show a passion for industry.  

    Robert: Personal initiative and interest in information security. The best professionals are passionate about what they do.

    Lesley: Speaking, presenting, competing, or working at infosec conferences. Other participation in the security community through projects or meet-ups. Some type of dedicated coursework that demonstrates good systems and networking fundamentals, or equivalent work experience in another IT field. Some college is a plus, but the degree doesn’t have to be technical. Overall, I look for motivation to learn and succeed.

    Daniel: Having a website or other home for projects you’ve created or helped with. Projects show passion, and passion is a powerful force for improvement. If you’re actively working on projects in your field there are few things that are more compelling to a hiring manager than seeing actual fruit of that curiosity and skill.


  4. Can you think of a situation in which you might recommend that an entry-level person who is interested in security not get a degree?


    Space Rogue: I don’t think I could recommend anyone not get a degree ever, not in today’s job market. In the 90’s and early 2000’s almost nobody had an infosec degree because infosec degrees did not exist. Everyone was self taught so if you didn’t have an infosec degree you were no different than anyone else. Infosec or more accurately ’cyber’ degree programs exist at just about every college and university today. If you decide to not get a degree you will be at a pretty big disadvantage compared to everyone else competing for the same entry level job. That said, if your resume makes it to my inbox I won’t really care if you have a degree or not if your resume shows that you have the experience and or skills for the job. But then I’m probably not the hiring manager for the job you are applying for.

    Chris: I had to work 60+ hours a week to pay for college and even then I still have fond memories of standing in Wal-Mart calculating what foods had the best dollar/calorie ratio so I could spend as little on food as possible. You have to REALLY want it sometimes (or just be deathly afraid of failure). If you have hardship to deal with, whether financial or family, you have to figure out how much pain it will cause you and whether the upside reward is worth it. For some people, it simply isn’t.

    Tarah: No. Sure, save money and do some at a community college, do the GI Bill, do a state school and be a big fish in a little pond…but I simply cannot in good conscience knowing what today’s job market looks like and how overheated cybersecurity hiring is going to be for the next ten years recommend that someone not get a degree. Note here that I don’t give a damn what your degree is in. Neither will anyone else past possibly a couple of people in your first entry level jobs. Just get one. And get an MS if you can. It’ll pop your earnings drastically long term and is  a HUGE leveller for diversity in tech.

    Jessica : No, I’ve spent quite a bit of time thinking about this question recently and I really cannot come up with a scenario where I would recommend not getting a degree. Even if you have to go part time while you work and it takes years and years, I strongly believe you will be better off in the end with the degree.  I think there are definitely outliers that find vast success on skill and reputation alone, but those folks are few and far between (you know “outliers”).  I’m seeing more and more organizations that are putting in hard and fast degree requirements, particularly in healthcare and high education, without which you will quickly reach a ceiling.  I’ve seen this ceiling as low as not going past a Senior Analyst/Engineer without a degree.

    Robert: College degrees are only one way to show that you’re well rounded and take your professional development seriously. An individual’s personal situation and experience must be considered in respect to what is the best focus of their professional development efforts. Particularly if student loans are involved, the long term debt accumulation might not be worth it. Focusing instead on a certification could serve as a first helpful step towards gaining that first position in infosec.  If working as a contractor it might be wise then to defer schooling even further in your carrier until obtaining a permanent position that offers tuition assistance. With professional momentum and outside self study, you might get to the point in your career where your professional experience are accepted as substitute for the formal accreditation. World travel, for example, can be used to demonstrate educational sophistication in lieu of a degree.

    Lesley: If they’re only interested in the money or prestige as opposed to the work, or they haven’t done anything to learn about the field before launching into a degree. Also, if they already have a strong network of infosec contacts and going to school would interfere with taking a great opportunity immediately. Lastly, if it’s a significant long-term financial burden, college may simply be unfeasible.

    Daniel: If they already have some significant level of skill that makes them competitive and they’re being offered a job in the field similar to what they’d get when they graduated. Even then, if it would be relatively painless, I’d say get the degree just to have the checkbox, but if it’s overly difficult and you already have the skills required to get a job, go for it. It all depends what you’re looking for. If you just want to get into the field, you can do that. But if you want to make it to the top at a big company, you’ll probably need a bachelor’s and/or masters.


  5. If an entry or intermediate-level infosec person chooses not to get a degree, what are steps do you suggest he or she take to mitigate this when applying for jobs or promotions (which may state college as a requirement or preference)?


    Space Rogue: My first bit of advice is to realise that without a degree there are some jobs where your resume just won’t make it past the first level of HR. However if it is a job that I am hiring for and your resume can actually make it to my inbox then I will want to see some sort of experience. Something that says you are really interested in this line of work, volunteering at an infosec conference, a github project, contributions to an OSS project, participating in the local citysec meetup, something, anything.

    Chris: While this may be an unpleasant fact of life, not having a degree may affect your ceiling because some organizations value it. However, for the job seeker there is a benefit that infosec is in a skilled worker shortage. If you can develop skills in areas where need exists, you can find a job. However, you need to be able to show those skills in some way. For some people that might be a certification, for others it might be a github repo showing a project, and for others it might be a blog. Once you establish one or more of those things, focus on connecting with real people instead of relying on HR gatekeepers and automated systems. Do your research, find people working in or hiring for roles you want, and reach out to them. Even if it doesn’t lead to an immediate job, you might find a mentor or build a long-lasting relationship.

    Lesley: Network, network, network. You’re going to get blocked at a number of HR filters, which are automated and unforgiving. So, your hopes lie with name recognition with hiring managers who can tweak postings for you or somehow bypass the computer. This means proving your competence through projects, community participation, and being articulate. Currently we’re in a skill shortage, which plays in your favor in this scenario. This gap is decreasing, starting with entry level as more people graduate from cybersecurity training and degree programs. Certain geographic markets will take longer to catch up than others, so looking outside your local area may help.

    Robert: It is not a degree by itself that makes someone qualified for a senior position, rather they serves as a proxy to be used by the hiring managers to measure capability. This requirement can be substituted, but constructing the best argument to support your personal experience as a worthy substitution is completely on the individual. Non-traditional education can stand for formal degrees, but it may require a substantial effort to make the case for your specific goals, and are likely to require repeating every few years.  Always address any concerns about an educational deficiency in your resume head on when pursuing a new roll. It can go a long way to submit a well written statement in response to any concerns that you’re willing to obtain whatever credential is expected while working in the position, along with spelling out in detail how your specific personal accomplishments and experience directly address the traits your target is hoping are demonstrated by having the degree requirement.

    Tarah: Get good and get well-known for it. Get a CISSP, which is the bareass minimum you’d need to get past HR without a degree at some infosec jobs. Network your ass off because without a degree, you’ll suffer for recruiters contacting you. Figure out how to get some publicity. You must, must, must begin speaking and teaching widely.

    Jessica: First of all take a long hard look at where you want your career to go long term.    I think these decisions are made with a short to medium term outlook.  Come to peace with the fact that you are likely closing doors and limiting your upward mobility.  That said, get certs CISSP is a must to get past HR, I also recommend several SANS certs, maybe the OSCP, depending on which area in security you want to be.  Lastly, get your name out there, network, get on twitter volunteer and/or speak at every conference you can.

    Daniel: If they’re just starting out and don’t have a degree they’re going to need to show proof of existing skill. That usually means blogging and projects showing your abilities. Show vs. tell is a powerful concept in today’s market.


  6. Conversely, can you think of a situation where you might suggest to an infosec candidate that he or she should get a degree? If so, which skills would this most enhance?


    Daniel: I’d say get a degree if it’s at all easy for you to do so. If it’s paid for. If it’s an easy program. If your friends are there anyway. Etc. If it’s not going to put you out too much, or if you don’t have any skills at all and you need to learn fundamentals in a structured way. The other advantage is just rounding out your writing, general education, etc., which are important for advancing to later career stages.

    Space Rogue: Getting a degree is not going to hurt you. You will never be disqualified from a job because you have a degree. It is possible to get a degree without spending fortune and going into debt. You can either get a degree to actually learn something or you can just get the piece of paper. Either way a degree can only help you. If you are going to spend the time and money to get the degree you should try to actually learn something. I would focus on any hands on classes where you can actually work with production systems, even if they are simulated. Learn to code. Any class that allows, no, encourages you to break things.  

    Lesley: When you can’t fill more than half a page, single spaced on your resume with IT-relevant skills or experience, it’s definitely worth considering. Also, some companies and government agencies value degrees very highly as a corporate culture, and degrees may be tied fundamentally into future promotions or pay raises. If you’re looking to join one of those organizations, or you want to stay in one, it may be time to start planning ahead. Finally, if you have G.I. Bill or your employer pays a significant portion of tuition fees, it’s prudent to not waste free money.

    Chris: If you are capable of getting a degree, you should do it. There are immense benefits to being surrounded by people whose goal is to both teach and learn. Not only might you actually learn something, you’ll also learn how to think differently and be exposed to viewpoints differing from your own. In real life you have the option of filtering out people who you don’t agree with. In academia, that is a lot harder and it forces you to think about things you’re not used to thinking about. This also makes you better at debating, presenting information, and incorporating new information into your existing viewpoints.

    Robert: College can be fun, you can learn a lot, and start networking with other future professionals early. What degree you get likely does not matter for a career in infosec, but I would recommend sizing any opportunity to get a degree if it does not come with a significant debt burden.

    Tarah: Getting a degree cannot possibly hurt you. The Pareto-optimal solution is to get a bachelors in any field as cheaply and as rapidly as you can. Unless you are graduating top of your class in CS at Stanford or MIT, no one cares.

    Jessica: Getting a degree, any degree is not going to hold you back. If you have a desire to someday move into leadership a degree is going to help to facilitate that.  I know a lot of folks in security that do not have technical degrees; archaeology, accounting, psychology, business, women’s studies to name a few. I also know several folks that didn’t get a degree and are now finding roadblocks to advancement because of it and are now going back in their late 30’s and 40’s to get the degree while also now balancing a job,  spouse, kids, etc. which makes it that much more difficult.


  7. Assuming an entry or intermediate level infosec person has decided to get a degree, do you find more value in non-technical degrees or technical degrees? Is there any value in a minor in a different field? Does it matter at all from your perspective or management’s?



    Daniel: I think technical degrees are preferred. CS is preferred but CIS (what I did mine in) are also solid. The more you get away from those the less value it’ll have for infosec jobs. But keep in mind that many companies are just looking for the bachelors checkbox. This matters most if you’re looking to a formal hiring process at a very large or prestigious company, where CS and CE are preferred.

    Space Rogue: If you just want to pass the first entry gate of HR then get a degree in basket weaving or creative writing or philosophy. The automatic system scanning your resume won’t care and will sort your resume into the ‘with degree’ pile. Assuming you focus on a ‘cyber’ degree your minor will depend on what your long term goals are. If you want that CSO/CIO job in 20 years then look at a business or even accounting minor but I wouldn’t discount an art history or western civ minor either. You might be surprised at what lessons from other fields can be applied to infosec.

    Lesley: What you gain from a degree is much more fundamental than technical minutiae, which becomes obsolete quickly. Lots of skills one learns in college are ubiquitous across majors. Business, language, and communication courses provide important insight in our field. From a technical degree, you should concentrate on gaining a solid understanding of how things work at a fundamental level: programming, the telecommunications infrastructure, attack vectors, and common system architectures. Learning how to use a specific tool is rarely helpful after a couple years, and I see few course curricula that aren’t already several years out of date. You should be learning how to think logically, continue learning, and express your thoughts professionally.

    Chris: The unfortunate fact of our industry is that most university degrees don’t actually teach the skills necessary to do the job well. There are a few pockets of excellence and great instructors scattered here and there, but they are rare. Traditional computer science is great at building engineers and programmers, but not information security practitioners. Dedicated programs for information security are often dramatically out of date and focus on the wrong things. For that primary reason, I urge people to get degrees in other things while studying infosec through non-traditional means. This also has an added benefit of bringing “outside” perspective into information security, which is much needed and helps set you apart. I perk up when I meet someone who has a degree in physics, psychology, engineering, english, or something completely unrelated to tech. I can’t wait for the day where I feel good recommending people pursue information security degrees, but that day isn’t today. You can come from anywhere and be an effective infosec practitioner, but the ability to think in a way that is unique from your peers will help you move up quicker in many cases.

    Tarah: There’s a hack here. The hack is to get your degree in whatever you can get paid for or most cheaply–and to take research methodology or EECS or applied math courses alongside. This is what I did. I have a decade and a half of technical coursework that bumped my skills to next level in math, data structures, computer science, electrical engineering, social network and complexity theory, etc. You can pick and choose what you emphasize as you speak to employers. I personally find that people with philosophy degrees make magnificent programmers, and people with math degrees make magnificent philosophers.

    Jessica:  Get any degree.  I think there is something to be said for applying ideas and learnings from one field to security.  I started out in a technical program (computer science), but had a hard time with programming classes (I took intro to C++ 3 times) and math classes (Calculus I 3 times as well!) and it wasn’t feasible for me to continue this path.  I went into my manager at Motorola where I was interning and she said something along the lines of:
    “Jessica – you have a job here but you have to graduate at some point.  I can’t hire you without your degree and you can’t continue as an intern without being in school. You work for a multinational corporation get ANY degree that could be applicable.”

    I then scoured the course catalog and settled on International Business and Spanish.  There is a lot to be said about being well rounded and not having all of your knowledge in one basket.  I’ve also never had an interviewer ask “why International Business and Spanish; not CS/CIS/MIS/etc.?”

    Robert: Since any degree is unlikely to actually provide you the core skills you need to be successful in infosec, the degree pursued is insignificant. I’d recommend taking a topic you find interesting that you will see through to completion.


  8. Considering candidates you’ve interviewed and current cybersecurity curricula at a variety of institutions, would you recommend cybersecurity-specific degrees at all? What would you consider some indicators of a good and/or a bad infosec degree program?




    Daniel: I generally judge programs by big vs. unidentifiable names. If it’s a big name school, or a big CS school, that’s a plus. If it’s a no-name school then it’s just a CS checkbox, which is still positive. Most of the benefit of someone from a big name school is the fact that they got accepted in the first place.

    Space Rogue: To be honest I am not super familiar with the various programs that are out there. I know some are a lot more hands on than others but if I am looking at a resume I am unlikely to research your school to see how good of a program they have because frankly I don’t care. However, if you are looking to actually learn something then look for a program that has additional certifications. Something like the NSA’s National Centers of Academic Excellence in Cyber Defense or other certification.

    Lesley: I see too much focus in most “cyber” programs on specific tools and minutiae, as opposed to critical IT fundamentals which are so important to being a good hacker or defender. Also, I see an unfortunate tendency to gravitate towards the cool, theoretical, and “sexy” as opposed to less exciting but more relevant skills. For instance, my ongoing gag gripe is about every Forensics major I meet doing their thesis on steganography, which is relatively rarely seen in real practice. The same people often aren’t comfortable with memory forensics or timelining. There’s a lot of pragmatism in real life infosec. Overall, ensure that the program has plenty of general IT courses that build a good understanding of how systems work, and references real life cases.

    Chris: Our industry is really good at building excitement around topics like breaking and hacking. Unfortunately, those aren’t the skills you learn first and they aren’t the areas where the most jobs exist. Most cyber security programs gravitate towards those areas and skip over the fundamentals. The ones that do see a need for the fundamentals often think those fundamentals are computer science. While computer science is foundational, you don’t need to be an expert in mathematics or embedded systems to be successful in the vast majority of infosec jobs. For these reasons, I have a hard time recommending cyber security degree programs. I’m hopeful this will change at some point when more experienced practitioners find their way to academia, which is happening. Universities needs more instructors who have been in the trenches, but also understand academics and what foundational knowledge is critical for our field.

    Tarah: Only the power of your alma mater’s network matters here. Unless you’re going to UW, CMU, Stanford, MIT, Berkeley, or a similar program known for tech, your best  move is to learn what you love and add tech as tools for you to use. That will be reflected later in your work and career.

    Jessica: I feel like a lot of the “cyber” programs are reminiscent of the MCSE bootcamps from the early 2000’s and other certification mills.  If that is the program you want, then find a quality one.  Otherwise go for another degree.  Cyber programs also need more folks that have been actual practitioners to teach actual skills that will be used.  Having a good foundation, rooted in theory is fine and in some cases needed; however  I see too many candidates now that can memorize the buzzwords and talk very shallowly about a concept but cannot apply it in a meaningful way.  Additionally, critical thinking and analysis skills are sorely lacking.  Those are hard to teach but it’s really hard to be a good Security practitioner (particularly in a role like SOC or DFIR or Red Team) without those skills.


  9. At this time, (or in the near future), do you foresee any potential benefits in the infosec field in going on to get a graduate degree?



    Daniel: Yes, if you’re interested in working in any sort of formal field. Like government, or a big company in a specific department, like data science. Other than that, the bachelors is usually quite sufficient. The other thing a Masters is good for is that it’s somewhat important for senior roles in big companies, or top roles (CISO) at any company, if you think you might want that later on.

    Space Rogue: If you really want to differentiate yourself in the job market then yes, get a graduate degree. But this really depends on your own personal long term goals. If you really want to be a scapegoa^H^H^H CIO/CSO than a graduate degree will be a big help in achieving that.

    Lesley: I can see two situations where this would be desirable. The first is when it is likely to be required for a desired promotion in the future (I do see Master’s Degrees, especially MBAs, preferred for senior leadership positions). The second is when one’s intention is to stay in academia or dedicated advanced research. I rarely see graduate degrees greatly preferred over a Bachelor’s degree in entry-to-intermediate level infosec hiring.

    Chris: If you are thinking about a masters degree then you should have a sense of how much you enjoy your current work and where you want to go with it. For example, if you want to get into business leadership then something like an MBA might be helpful. The thing here is that you shouldn’t just pursue another degree because you feel it’s a requirement to get someone you want to go. Chances are, with persistence you might be able to get there anyway. You should pursue another degree because it will introduce you to new ways of thinking and teach you things that will be more fulfilling to you on a personal or professional level. I pursued a master’s degree in homeland security because I was interested in national defense and public policy. That provided valuable perspective that I apply in multiple areas of my life. The more successful people I’ve seen often pursue master’s degrees in things a bit outside their normal comfort zone. The key is that it should be about learning, not about checking a box.

    Tarah: Hell, yes. It’s definitely put me at the top of lists. And my MS is in political science, don’t forget. It’s just a box to check. Get a law degree or an MA in English–it just doesn’t functionally matter.

    Jessica: some industries are now requiring this in order to be in a management/leadership position.  I would not have gotten my job at Mayo Clinic without my master’s degree, they require it for Director level positions.  I think there is going to continue to be more rigor there. I know my Master’s has opened other doors for me as well.  I do wish I would have gotten a JD or MBA instead of my MSIT.


  10. Anything further you’d like to add on the topic?


    Space Rogue: In the ongoing twitter debate there have been a lot of comments about the cost of college. While a traditional name brand four year school will cost a pretty penny there are ways to get an accredited degree without going into huge debt and spending a fortune. Without going into super detail here are some thing for you to google on your own.  Look at your state school, often much less expensive than a private institution. Don’t forget you can start out at a local community college and transfer the credits later. Also depending on what program you are looking at many schools will offer credit for life experience, if you know who to ask. One of the best ways to get credits for little money is the College Level Examination Program, again depending on your school you can get up to two years worth of credits for $80 per class. Anyway if all you’re looking for is to check a box and get a degree cost is not a valid excuse.

    Tarah: Either the hiring manager wants to bring you aboard or they don’t. If they do, they might need extra ammunition for their choice of you over someone else. Make it easy on them by sticking every letter you can behind your name (on LinkedIn, not in your Twitter bio). I want to emphasize one last time: degrees and certifications are the big leveler in diversity. I have a growing body of anecdata that is burnishing my now gold-plated theory that women, POC, and queer people benefit disproportionately from getting degrees and certs. That typically manifests itself as a drastic uptick in recruiter approaches at each career level when you update your LinkedIn in a way that doesn’t seem to happen for people who stereotypically look like the media’s conception of hackers. If the hiring manager doesn’t want to hire you (based mostly on the first fifteen seconds of your impression on them) no degree will help you. But chocolate and career coaching might.  🙂

    Jessica:  College is expensive in the US, and the cost is only going to continue to increase.  It will open more doors than would otherwise be opened.  Think of it as future proofing.  I’ve always known I want to be in leadership, but I have colleagues that came to that conclusion later in their careers and are now going school to check the boxes.  Set yourself up for success and an easier path now.  I think as our profession matures it is only going to become a more steadfast requirement, like many professions there are some minimum requirements and I see ours continuing in that direction.  We’ve moved past the infancy of the infosec profession; along with that comes a threshold, which often times and more in the future, means a degree.

    Chris: Most knowledge-based professions have a really well prescribed paths for getting into the field and finding success. If you want to get into medicine, accounting, or law you know exactly what you need to do. Our field couldn’t be farther from that — there is no single path. The beauty of that is you don’t have to go to college. However, like those other professions, you do have to learn how to think. Being aware of how you think and effectively applying that (aka metacognition) is the most critical part of gaining expertise and ensuring you are capable of learning effectively. The beauty of college is that it is the perfect environment for your metacognitive ability to flourish…if you let it. If you view college as an opportunity to do this and seize it you will benefit tremendously. If you view it as merely a checkbox to get a piece of paper, you’ll be disappointed in how far that paper gets you.

    Daniel: Credentials have the value that others place on them. Understand that and you’ll understand a lot about degrees. Make a clear distinction between the education and the credential, and realize that while you can self-educate you can’t self-credential. Understand that you’ll find a full spectrum of respect for degrees in various populations, countries, verticals, sectors, etc. Some will not even notice if you have a degree or not, and others won’t take you seriously unless you do. That being the case, it’s always better to have it than not, so the question is really about what you’re sacrificing to get it, and whether or not that’s worth it.

Starting an InfoSec Career – The Megamix – Chapter 7

 

Chapter 7: Landing the Job

So, we’ve come this far in your infosec journey. You’ve studied hard, attended conferences, played a CTF or two, updated your resume, and networked a bit within the information security community. Great work!

Let’s prepare for your very first information security interview.

 


=== What to Say ===

There have been nigh infinite pieces written on the subject of interviewing, but I’d like to briefly share some basic interview skills that have really served me and my candidates well:

  • Make sure spend at least 30 minutes researching the organization you will be interviewing at. What are their strategic goals or products? Where do they have offices? What’s their corporate culture like? Consider what interests you about their mission, and how you feel you could benefit them as a security professional.
  • Always bring several printed copies of your resume and references to your interview, formatted the way you intended. HR systems will often remove formatting and line breaks before routing your resume to a hiring manager, and your copy may be more pleasant to read. You will also want a copy to reference, yourself.
  • Bring note taking materials to your interview, and make sure you’ve written down a few relevant questions to ask your interviewers about the position and the organization.
  • Arrive 15 minutes early for your interview, and be polite to everybody you meet. You never know if the person you make eye contact with and say “good morning” to in the hall will be interviewing you, later.
  • Make eye contact, and pay attention during the interview. Most of us are introverts, and this can be a challenge. Make the effort to be personable and show that you are listening to your interviewers.
  • Put your phone away and on silent. I shouldn’t have to say this.
  • Answer questions honestly. Most of my colleagues and I would very much prefer, “I’m not sure”, to an evasive answer or an outright lie, particularly on technical questions. Often, knowing where you would look something up is an okay answer to a technical question. When we ask you questions about where you could improve, there should be a real response that verifies you are a human. Everybody has some area they can improve in, and we will never believe you’re utterly perfect.
  • The initial interview is not normally the appropriate place to ask about compensation. Yes, infosec is an understaffed and in demand field. You have better chances than most at landing the job. No, your Masters in Information Security does not guarantee you the position immediately in lieu of a technical interview.
  • Do talk about your (legal) infosec-related hobbies and activities! We want to hear about the security lab you built in your house, the book you read, the CTF that you participated in, or the security related talks and projects you’re participating in. They show you are an interested and involved candidate, and a good fit for our teams.

 

 


=== What to Know ===

The previous chapters in this blog series suggested ways to build your foundational skills in the key areas of networking, systems administration, and security, so I won’t dwell too much on the necessity of knowing the fundamentals of these things such as common ports and protocols, malware types, and operating system functionality in an entry level infosec interview. Suffice to say, this is where the free educational resources, formal training, and your home lab really come into play.

You should ensure, before going to an interview, that you are up to date on the basics of current threats and security news. What you learned at your university is almost certainly not current enough for most interviews. There are a lot of great resources that provide information on ongoing threat activity. For instance, I really like the exploit kit status dashboard at (ProofPoint) EmergingThreats. SANS ISC posts botnet and scanner activity from publicly submitted data, and Sophos posts a nice free malware dashboard that shows their overview of currently detected malware. Threat trackers, coupled with the blogs, news services, and educational resources we’ve previously discussed, should enable you to go to your interview ready to answer general questions about the top threats that are currently plaguing organizations.

 


=== What Not to Say ===

 

 

In May, I surveyed a broad swath of security professionals to share the statements they hear from interview candidates that are the most indicative that the person is inexperienced in professional information security work. I’d like to share a few of the most popular, and why they carry that connotation. Keep in mind, the selected statements by candidates aren’t necessarily technically wrong; they more often tend to oversimplify or ignore administrative and business-related problems in security. It would be wise to choose your words diplomatically before saying any of the following things:

“Antivirus is obsolete, and a waste of money! Get rid of it.”

We can’t all be Netflix, dramatic headlines or not. It’s true that antimalware programs have a lot of problems to contend with in the 2010s. Between a cat and mouse game with well-funded malware authors, and polymorphism and regular botnet updates, simply maintaining a library of static signatures is indeed not effective anymore. Most decent antivirus vendors recognize this, and have implemented new tactics like heuristic engines and HIPS functionality to catch new variants and unknown threats. Antivirus is one component of a solid ‘defense in depth’ solution. It has a reasonable potential to mitigate a percentage of things that slip past network IPS, firewalls, web filters, attachment sandboxes, and other enterprise security solutions.

“Why are you wasting money on $x commercial product? I can do the same thing with this open source project on GitHub”

We love the philosophy and price tag on open source projects, and it’s great that commercial vendors have open source competition that drives them to improve and enhance their products. This doesn’t mean that free tools are always a viable replacement for commercial tools in an enterprise environment. There are intangible things which usually come with the purchase of a good quality commercial security product: support, regular updates, scalability, certifications, and product warranties. Those intangible things can have a tangible cost for an enterprise implementing an open source product in their stead. For instance, the organization may have to hire a full time developer to maintain and tweak the tool to their needs and scale. They may also be solely legally liable if a vulnerability in free open source software is exploited in a breach – a risk many organizations’ legal teams will simply not accept.

“They deserved to get breached because they didn’t remove Java / Flash / USB functionality / Obsolete Software…”

Most organizations exist to provide a product or service, and that’s usually not “security”. As security professionals, we’re just one small part of our organizations and their mission, and we never function in a vacuum. Oversimplified assertions like this are a dead giveaway that a candidate is not used to compromising and negotiating inside a business environment. Yes, in an ideal security world, we would use hardened operating systems with limited administrative rights and no insecure applications. Few of us actually operate in that ideal world, and many of us work at an operational scale alone that renders this unfeasible. We do what we can; navigating the political risk management game where we must to provide the most secure environment we are capable of.

“Just block China/Russia/x… IPs.”

Once again, this indicates a candidate is thinking only as a security person (and a biased security person) and not as a member of a business. Unfortunately, it also shows a lack of technical knowledge, as many attackers use large, global networks of compromised hosts to launch attacks.

“Security Awareness is a waste of money. Users will always be stupid.”

This is an appalling lack of confidence in your own ‘team’. Yes, some end users will probably always click / ignore / fail to report. (Most security people will also click when properly socially engineered.) The point of security awareness is not to create a perfect environment where nobody ever clicks on a phishing message or ignores an alert window – if your management has made that their measure of success, they’re doing security wrong. The point of security awareness is to improve awareness of threats, encourage some employees to report potential threats so you can respond, and decrease day to day problems so you can focus on the more severe ones.

“[Fortune 100] should have already have gotten rid of $OS and gone to $OTHEROS, because it’s more secure / real security people use $OTHEROS.”

This is dogmatic elitism without real business or technical foundation. Any up-to-date operating system can have a valid use case in business and in security work. A good red team or blue team security professional should be able to secure, compromise, and use tools on OSX, Linux, and Windows effectively (and indeed, there are valuable tools unique to each). It’s okay to have an operating system preference and to intelligently discuss the merits of $OperatingSystem for your specific use case. Don’t assume everybody else’s use case is the same.

“Hack them back / have the attackers arrested…”

We all crave the movie ending where the black hat hackers get their comeuppance and are thrown in jail. Unfortunately, unless we work for a LEO, the military, or a huge global telco, we’re rarely likely to get it. “Hacking back” of any sort is usually wildly illegal (especially because attacks are almost always launched from compromised hosts that belong to law-abiding people). Arrests happen when time-consuming coordinated efforts between security firms, global law enforcement, and lawyers are successful. Even the terrifying financial spearphish to your CFO is likely to not be chased down by law enforcement for some time. When permitted, absolutely do share your threat intelligence with law enforcement and working groups to aid in these important efforts. Expect any response received will take significant time.

“Don’t you monitor every brute force attempt against your perimeter? I count the dictionary attacks against my honeypot every night!”

No, monitoring this would be a waste of time in most large organizations. Behavioral trends and specific sequences of events that could indicate a compromise are more valuable to monitor. Time is money.

Any statement beginning with, “Why don’t you just…?” or “It’s simple…”

It pretty much never is that simple, so don’t personally insult your interviewer by assuming it is
.

 


***

This concludes the InfoSec Career Megamix! I hope you’ve enjoyed this blog series and that it has been helpful to you in furthering your own security career. Many thanks to everybody who has commented on my blogs or provided input and suggestions. Please do check out the links to other peoples’ wonderful work on the subject which I have included throughout the blogs.

[You can find the previous chapters in this blog series here:

The Fundamentals

> Education & Certifications

> Fields and Niches

Blue Team Careers in Depth

Red Team Careers in Depth

Self-Study Options]

The Worst InfoSec Resume, Ever

I do quite a bit of InfoSec résumé reviewing and critiquing, both personally and professionally, so I’m repeatedly asked for tips on common problems. In order to ensure that these problems were not exclusive to me, I recently had a lengthy discussion  with a number of InfoSec professionals involved in hiring (thank you!). We discussed our “top 10” pet peeves when reading candidates’ résumés.

So without further ado, here is an illustrated example of some common problems we see on many résumés, and some suggestions about how to fix them.

(If these images are hard to view on your phone or at a specific resolution, you may click them to view them full screen.)

file-page1

file-page2

Starting an InfoSec Career – The Megamix – Chapter 6

[You can find the previous chapters in this continuing blog series here:
Starting an InfoSec Career – The Megamix – Chapters 1-3
Starting an InfoSec Career – The Megamix – Chapters 4-5]

Chapter 6: Self-Study Options

In the previous chapters, I’ve discussed potential career paths, education and certification options, and the fundamental knowledge needed to become a successful InfoSec professional. Unfortunately, college degrees and certification courses aren’t financially or logistically an option for everyone, nor do they provide all of the skills and practical experience needed to become a desirable candidate for an entry level position. Without further ado, let’s delve into some options for improving InfoSec knowledge individually.

==== Home Labs ====

Building a home practice lab is an integral part of improving skill at any area of blue team or red team information security. Since most of us (hopefully) don’t want to break the law and get arrested while learning how to hack, conduct forensic investigations, or reverse engineer systems, we’re obliged to create our own self-contained network environments to practice and learn within. This will also improve network and systems administration skills, which as I noted in Chapter 1 are absolutely fundamental for being a well-rounded InfoSec professional.

A decade ago, a home lab looked significantly different. It almost certainly included multiple computers, and likely a network rack complete with switches, power supplies, KVM, and cabling. While this is still a great option, a rack of computer equipment is noisy, hot, and power consuming. Today, we have the tremendous luxury of virtualization. A single reasonably spec’ed ESXi host server can act as most of our practice environment. While we might still opt for some physical network hardware, we have virtualized network lab environments available for use, as well. I really prefer the virtualized option because as we exploit, infect, and otherwise destroy our hosts, we can simply revert them to an earlier snapshot and start over.

Regarding purchasing the physical equipment or host machine(s), we can get as creative as our budget requires. A great way to purchase server grade computer hardware is via federal and state government auctions. These auctions are fairly underutilized next to commercial sites like eBay, and can offer some great deals during regular equipment replacement schedules. Remember that local businesses, hospitals, and municipal services often replace their hardware and sell the older equipment for a fraction of the original price. For virtualization, we’ll want a decent server grade processor, a lot of memory, and enough disk space for all the operating systems we are interested in using to grow as expected. Everything else is fairly negotiable. Many folks buy a few old servers of the same model, pull all of the memory, NICs, and hard drives out, and put them into one chassis.

The hosts we install in our lab environment shall vary quite a bit based upon our area of interest and what we’re currently trying to accomplish. For instance, in my forensics lab, I selected SIFT and Windows 8 hosts which I use to conduct analysis, and an array of primarily client OSes which I conduct analysis upon. My network monitoring and incident response environment is very different, because network services, network IPS, and firewalls are in play in a more realistic network environment. A penetration testing environment will look different still. Before you purchase equipment or begin the lengthy process of building your lab, consider what you want to learn, and what hosts and services you will need to accomplish this goal.

I’m not going to delve much further into the technical details of building out a lab, as a lot of people have done great writing on this subject already. I recommend looking at Carlos Perez, Matt Barrett, and Adrian Crenshaw’s informative blogs.

==== Self-Study Materials ====

Every person has a different learning style. Some of us are more comfortable learning new skills by watching a video; others need hands on practice or reading materials to understand new concepts best. Fortunately, at this point people who wish to learn InfoSec skills have a plethora of freely available options to fit any learning styles.

For the Visual Learner:

Years of talks at information security conferences have been recorded and are freely available on YouTube. I’d avoid watching Joe from ACME computer shop explaining how to use Kali, but there are more hours of recorded talks on from reputable conferences than anyone will ever have time to watch. Archive.org hosts an immense number of conference talks. Adrian Crenshaw has recorded talks at conferences for years, and has a prolific archive of these videos on his channel. SecurityTube is also a great resource, (although some of their materials are paywalled by PenTester Academy, which may or may not be in your budget).

For the Auditory Learner:

Check out the amazing range of InfoSec podcasts available for free. There are so many more great podcasts than I could discuss in a blog of their own, but some highlights are PaulDotCom, Southern Fried Security Podcast, Security Now, ISC Stormcast, Defensive Security, Liquidmatrix, and Braeking Down.

For the Reading Learner:

There are two major resources you should investigate – textbooks, and blogs. This will, of course, vary quite a bit based your area of interest. My personal ‘essential reading list’ for Information Security professionals would include the following:

There are an immense number of amazing security blogs out there, but a very short list of my favorites includes Dark Reading,  Krebs on Security,  McGrew Security, Graham Cluley, Naked Security, Lenny Zeltser, Troy HuntAndrew Hay,  Threatpost,  and Andy Ellis.

For the Kinesthetic Learner:

As we previously discussed, a home lab is a great option, followed by Capture the Flag exercises and Challenges, which I discuss in the next section.

==== Capture the Flag and Challenges ====

Once you feel ready to leave the safety of your own home lab and delve into another network, a great option is Capture the Flag events, and similar challenges. A large percentage of hacking conferences provide some kind of CTF event, which will pit your skills against challenges they’ve designed as well as other participants, in a structured, legal environment. The challenges usually vary from simple to extremely difficult, and points are awarded to participants as they find or reach ‘flags’ hidden in the challenges. Don’t be daunted; most CTF events are rarely restricted by skill level, and they’re a great way to test what you’ve learned. You’re competing against yourself as much as other teams or participants.

CTFs and challenges are not restricted to red team penetration testers. There are plenty of open and paid practice challenges in many areas available now, both in person and online. DFIR challenges test investigation and forensics skills, while malware challenges test participants’ ability to reverse and analyze malicious code. Check out the great list of online challenges at captf.com.

==== Conferences ====

There are no substitutes for in-person networking or training events. I strongly recommend attending InfoSec / hacking conferences, but I also encourage you to choose the right ones for you. Regrettably, the events with the biggest budgets often get the most hype. That does not translate to them being the best environments to learn in. Cost is often a factor that bears consideration, as well. Tickets to InfoSec conferences range from free (or nearly free) to thousands of dollars. Hotel and airfare costs vary by venue. All these factors should weigh into your decisions, but there’s a conference for everybody.

Hacking conference size and content vary a lot, but there are some commonalities. There are normally one or more tracks of speaker talks, selected by the organizers from outside call-for-paper submissions. Capture the Flag type events are fairly ubiquitous. It’s also not uncommon to see an option for longer, hands-on training classes for an additional fee. You’re likely to see some vendors, as well as hobbyist groups such as locksport organizations or makerspaces sharing their expertise. Evening parties sponsored by the conferences or vendors can provide an opportunity to network and have fun.

Let’s discuss a few popular conferences. A couple caveats. Firstly, I’m quite certain I am going to offend one conference or another by not listing them here – for this list I selected some better known representative examples and it is by no means comprehensive. Secondly, I’m based in the US, so my examples are primarily in North America. Hacking/InfoSec conferences are a global phenomenon, and the types of conferences I list have equivalents in Asia, Europe, Africa, and South America. Please feel free to ask me for assistance in finding ones in other locations as needed.

DEF CON – Las Vegas, NV, USA

One of the oldest, most famous, and largest hacking conventions in the world, DEF CON is held in August on the Las Vegas strip. The attendees are a mix of everybody from the most dubious black hats to corporate security professionals, from journalists to Generals, from researchers to federal agents. Events and talks run the full gambit in every sense of the word. The parties are wild and so are the attendees. DEF CON tickets current cost $230, (cash only!).

>> Pros: This is where you’ll see some of the most cutting edge research released, and meet many top notch pros. Everybody should DEF CON at least once, for the sheer experience.

>> Cons: Over-the-top parties, crowds, and hangovers can overwhelm actual learning and networking. If this is your first hacking conference, or you’re not reasonably cautious, you may be targeted for pranks (or worse).

BLACK HAT– Las Vegas, NV, USA

Black Hat (USA) occurs the week prior to DEF CON, and offers more structured training opportunities on a variety of topics. There’s a heavy vendor presence. Black Hat is more targeted towards security professionals and executives, and offers organized networking events and a bevy of courses and high profile speakers. The talks are well vetted. This doesn’t come cheap; regular tickets are currently $2195. Training courses cost significantly more. If money is a factor, I certainly wouldn’t recommend paying your own way to Black Hat unless there is a course you desperately want to take that isn’t offered anywhere else. Wait for a scholarship or corporate sponsor.

DERBYCON – Louisville, KY, USA

DerbyCon is a relatively new but very popular conference, and acts a bit like a more community and family-friendly alternative to DEF CON. It occurs in September in the heart of downtown Louisville. While it’s not as big of a conference, DerbyCon offers five simultaneous talk tracks, as well as hosting a few special interest working groups and CTF. DerbyCon tickets are $175, and given the reasonable cost of living in Lousiville, this can be a pretty economical conference, without quite as much of the shock value. Although there are bad apples at any hacking conference and basic precautions should always be taken by attendees, DerbyCon is policed pretty well and is a very safe bet for a first con.

SHMOOCON – Washington DC, USA

Shmoocon was founded by a husband and wife team to become a relatively small, friendly, community and education focused conference. It occurs in January, and costs $150, making it the most affordable of the ‘big name con’ admissions. Due to its location and educational reputation, it’s popular with federal government, military, and federal contractors, and the networking, vendors, and talks can reflect this a bit. The downside is that Shmoocon has grown much more popular than its size allows, and tickets sell out quickly – very quickly – a matter of seconds, making attendance a bit of a lottery. If you plan to attend Shmoocon, (I do recommend it), read up on the ticket purchase process well ahead of time.

RSA CONFERENCE – San Francisco, CA, USA

If you missed that RSA occurs in February, you’re not tuned into information security news. I can draw a lot of parallels between RSA Conf and BlackHat, but personally favor Black Hat as an event. They’re both targeted at executives and professionals, throw star-studded vendor parties, come with a hefty price tag (standard RSA tickets are currently $2,295), and get plenty of press. They have the biggest vendor expos, and often boast high profile speakers. I don’t recommend RSA to entry level infosec folks, even if the price tag is in your budget. For the money, I’d attend a course at Black Hat or REcon. The glitz and glamour do not make this the best environment to learn fundamentals or network, and despite some very good speakers, in my opinion RSA Conf continually commits public security faux pas to the ire of hackers and security professionals.

RECON – Montreal, QB, Canada

If reverse engineering malware, hardware, or software is your cup of tea, there’s no better conference to learn more than REcon, which focuses exclusively on sophisticated reversing. Ticket prices for RECon increase through the year leading up to the event, currently starting at 700 CAD and culminating in 1200 CAD in June. Student tickets are discounted. The ticket price is hefty, but includes snacks and lunches. The available hands-on training courses will run you around 2000 – 5000 CAD, so once again, you may want to wait until you’re eligible for some sort of sponsorship for this one. I have not had the pleasure of attending this conference myself, but I’ve heard nothing but glowing reviews from my colleagues in this space.

CIRCLE CITY CON – Indianapolis, IN, USA

Circle City Con is newer than Shmoocon and DerbyCon, but fills the same educational / community friendly conference niche. Circle City Con occurs in June, near the Indianapolis Convention Center. Tickets are currently $150 and include optional training classes, aside from any required materials. Circle City Con is another safe bet for a first conference, and for family participation.

HOPE – NYC, NY, USA

Hackers On Planet Earth is still a bit of a ‘hidden gem’. Although it’s one of the oldest annual hacking cons, it remains reasonably small and attended by industry greats. HOPE occurs in July, and tickets are currently $150. HOPE offers some of the most unique and varied events of any conference outside DEF CON, and boasts film festivals, art, and robotics along with the usual offerings. It’s a bit more eclectic and nuanced than other conferences. HOPE is worth serious consideration, especially for East Coast folks.

GRRCON – Grand Rapids, MI, USA

GrrCON specifically states their goal of avoiding elitism, and as a result they’ve earned a reputation as a positive and friendly environment which is heavily geared towards great networking and security education. GrrCON occurs in October and regular tickets are currently $150. Another location with very reasonable room and board, it would be a great choice for a first con. GrrCON also offers opportunities for family participation.

BSIDES EVENTS (Global)

Perhaps you looked at this long list of conferences, and balked at the locations, travel costs, and ticket prices. All is not lost. Seek out your local BSides event, which occur in many metropolitan areas. BSides events tend to be organized by local hacker groups, and most are one or occasionally two days. BSides also tend to be smaller and less expensive, with tickets usually ranging from $0-50. There’s rarely a good excuse to miss your local BSides – it’s a great opportunity to network with security folks in your area for a nominal fee. BSides events also make a great excuse to travel to cities on your bucket list across the world, learn about hacking, network with people, while enjoying the local culture, sights, and cuisine.

I’d be remiss if I did not briefly discuss hacking conference safety and preparedness. As I’ve mentioned above, the level of ‘threat’ at conferences varies and exists everywhere, but regardless of the event you should take common sense precautions. (All of these precautions should translate into everyday life, because bad gals and bad guys are everywhere!)

  • Consider whether it is necessary for you to even bring a laptop to the conference if you’re not attending a course that requires one. Given insecure networks full of hackers, safely using a laptop adds an extra layer of preparation required and gives you another bulky, expensive item to carry and keep track of.
  • If you must bring a laptop, I highly recommend using a new hard drive with a clean OS image, full disk encryption, and as little personal data as possible that you only use for the conference(s). Ensure you have a standard array of vetted security tools if you plan to connect to any network, including VPN. Ensure wireless and Bluetooth are fully disabled when not in use. Use common sense about what you log into.
  •  It’s hard to function today without a smartphone, but consider ways to make your phone more secure. Burner phones or faraday bags are popular options. At the very least, ensure wireless and Bluetooth are off, and that the phone itself is encrypted. VPN if possible. Do not connect to WIFI. Do not borrow phone chargers.
  • Bring cash for as many purchases as possible. Bring as few credit/debit cards as absolutely necessary, and ensure they’re in a vetted RFID safe wallet (but certainly don’t expect those to be foolproof). Don’t bring unnecessary stuff in your wallet or purse such as your work ID, social security card, or passport. Do not use an ATM within an easy walk of the event. I have rarely been to a conference where the hotel ATM wasn’t obviously and amusingly hacked by the end of the first day.
  • Don’t leave valuables unattended at the bar or in your hotel room, in a hotel full of hackers who can trivially open (any) hotel doors. Double lock your room when you’re inside.
  • Know who you can contact and how to reach them if there’s a security or medical issue at the conference – most hacking cons have a staff of security ‘goons’ who are always present and reachable. Any large event can have its share of bad apples, rowdiness, alcohol overuse, and drugs, and they’re there to keep things from getting out of hand. That being said, hacking conferences should not be treated like Mos Eisley cantina. Look out for the safety and well being of your friends and the people around you, and get them help if needed.

==== Local Hacking Meet-ups ====

Aside from organized conferences, many metropolitan and regional areas have formed hacking meet-ups of varying structure and activeness. I recommend finding your local group as soon as possible and participating as much as you can, as it’s a really important way to network with local hiring managers and security teams. Name recognition in this community is absolutely invaluable when applying for jobs.

There were ways that hackers met two decades ago that still work, but they’ve been  impacted by Web 2.0 and social media as much as anything else. So, I’ll both discuss the more traditional ways to find your local hacker and InfoSec folk, as well as newer options.

The Old Ways

  • DEF CON local groups: They’re named by area code, globally. Unfortunately, in my experience, some are now defunct or inactive. (Check and make sure before showing up.)
  •  2600 : 2600 meetings occur in public spaces to be inclusive to everybody, but be cognizant that they are more ‘hacker’ meetings than ‘information security’ meetings. Their active group list is maintained pretty well.
  • CitySec meetups: A more ‘security professional’ focused set of informal meetings in many global metropolitan areas.

The New Ways

  • Meetup.com: I’ve seen quite a few various information security organizations start posting their meetings through this site over the last few years. It’s always worth a look.
  • ISSA: A formal professional organization with chapters around the world.
  • Twitter – Plenty of these organizations post their scheduled events.
  • LinkedIn – Plenty of these organizations are listed as LinkedIn Groups.

 

 

Hair Dryers, Hacking, and Us

In case you’ve been living under a rock for the past several days, IBM posted, then ultimately removed a video promoting STEM fields for women via “hacking hairdryers”, to a great deal of public outcry from STEM professionals. The unhappiness stemmed not only from perceived sexism, but also tremendously poor timing as the ad was released close to the anniversary of the École Polytechnique massacre of 1989.

I will apologize from momentarily veering away from my usual structured technical guides. However, I’d likely to briefly state my own experience and thoughts on the matter, because I feel there are a couple things that still need to be said.

Before I continue, I’d like to make it clear that I see no purpose in badmouthing IBM further regarding their campaign. I genuinely believe they meant well, and I have many exceptional friends (both male and female) employed in STEM fields there. I’m not offended by their campaign; I merely feel disappointment. The ad (probably generated by an unrelated advertising team) was symptomatic of what I perceive as a systemic misconception about how to interest girls and women (and in a larger sense, minorities) in STEM fields.

I’m fairly straightforward about my interests and experience on social media and my blog. I hope I have properly expressed over the years that I truly have keen interest and skill in an array of tech, without compromise. Tech isn’t merely a career for me – it’s something I live. I also publicly enjoy a fair number of things that are often traditionally categorized as ‘feminine’. I own a gratuitous amount of makeup. I enjoy subversively playing with the ‘sparkly’ and ‘pink’ tropes. I will admit that it took time for me to reconcile these things as a young adult. These things are not mutually exclusive, nor are they particularly interrelated apart from my persona.

I’m not a girl hacker – I’m a hacker. I am not a hacker because somebody taught me to hack on a pink keyboard. I learned to hack, code, and solder the same way most everyone else did. I don’t personally know any female hackers or technical professionals who state that they owe particular success or interest to being approached with anything pink, sparkly, or remotely associated with Barbie. Your mileage may vary.

I owe my skill at tech not to campaigns targeted at me as a girl, but to the fact that by the time that people told me that I could not do things because I was female I was already confident in my ability to do them. By the time my sixth grade science teacher reminded me to, “Remember what happened to Joan of Arc”, I had coded my first text based RPG and soldered circuit boards, and I had found that it was something I enjoyed.

My parents never gave me any presumption of advantage or disadvantage in life to being female. It had no bearing. There was an expectation that I would learn to play a musical instrument and appreciate fine arts, but also help fix the car or TV when they broke and have a solid fundamental understanding of science. My parents both firmly held the assumption these were things an informed human being should do. If I showed an interest in something beneficial, they encouraged it.

Outside of my immediate family, who I firmly believe were instrumental in me freely pursuing an interest in a variety of fields, I also can point directly to youth organizations like the Girl Scouts. Although I can absolutely name cases where I’ve seen them stoop to the same fallacy, even in the 80’s and 90’s, their youth programs still offered a wide array of science and tech teaching that was presented in a great, unbiased, non-condescending way. Our telescopes never needed to be sparkly. We just had to know that we were looking at Saturn through the eyepiece in a cramped observatory on a chilly night, and that was enough.

In my experience it’s absolutely an unfortunate reality that women and girls often do face negative pressures, preconceptions, and lack of encouragement from many sources when they demonstrate any real interest in science, technology, engineering, or mathematics. Trying to advertise these fields through gross gender stereotypes is probably not the way to fix this problem. The ability to excel comes from being told it’s OK to pursue almost any interest by the formative people in a child’s life. This includes family, teachers, mentors, and the community. It comes from being provided exposure to varied interests at a young age. We have to counter the societal negative pressures with positive encouragement for everybody.

Give the kids and young adults in your life the exposure and support to explore and pursue things they wish to.

Get involved with the many great organizations like Hak4Kids and DefCon Kids that provide so much education and motivation to youths.

If you’re able, mentor and sponsor people in your community who don’t have support to grow and learn in tech fields.