tturner makes some excellent points. You don't have to know the industry full circle (writing exploits, AND exploiting machines, AND analyzing the post forensics, AND etc, etc,) but it will help you understand as much as you can, which 1) makes you more valuable to a company 2) helps make your own job easier
On my RWSP review, I believe I pointed out the need for "teamwork" in order to pass that exam. There can BE NO all inclusive expert however, there can be those who are versatile. This is one of the reasons I'm a stickler for understanding things from the ground up (http://www.ethicalhacker.net/component/ ... /#msg34503
). The more you know, the better prepared you will be.
It all boils down to "determine what it is you want to do." If you want to focus on exploit writing, so be it, as I explained in the Assembly post (http://www.ethicalhacker.net/component/ ... /#msg34507
) there is A LOT of overlap in many fields. Certainly understanding as much as you can from the core level will help you. NO ONE and I mean NO ONE I have come across is an expert in all levels of security. While I may know some bad ass exploit writers, fact is, they'll often suck initially at response/forensics because they haven't been exposed. However, they do have the capacity to figure things out if they understand other aspects of the OSI (networking, process intercommunications, etc)
So tturner makes some excellent points to those in this arena. I'm always (rinse and repeat... ALWAYS) trying to learn something, anything while ALWAYS retaining knowledge of the underlying scope...
SOAP, XML, JAVA, ASP, C# do you think I know these areas enough to make a career in the field, heck no. But I do know enough to state they all have the same fundamentals: they're networked and they either receive or send data somehow. Now I need to figure out how and why. Forget trying to program in the language, I just need a bare understanding of the interprocessing of the application from the host and network layers. The rest is what Google is for.
To add more to tturners excellent post, I will say this... DO NOT BE INTIMIDATED BY ANYONE or ever feel "I will never get to that level." 1) There is no level, there is only what you're willing to learn - with that said, you are either your best friend or your own anchor. 2) Read, read, read, break break break and FIX FIX FIX. In doing so, you're exposing yourself to many processes in the mix. Even purposefully misconfiguring machines is a learning experience! 3) Have fun. When you view the field as a fun, challenging game, it becomes more interesting. I play Chess against myself... I do my best not to deceive myself but play as I were competing against myself. It's a PITA but the experience allows me to go back and remember what I was thinking at the time, what I intended on doing, how I would have done things differently.
So when I POST something like: "This is what I would do..." it's a suggestion based on experience I may have in the industry. What worked for me. I in no shape form or fashion try to discourage anyone in fact, I would hope that I do the opposite (encourage) those to look at things differently from the ground up.