- Ihar, 2017 IGNITE Threat Researcher Intern
This summer I had an opportunity to intern at FireEye as a Threat Researcher Intern on FireEye Labs team. I worked on the platform to identify malicious email campaigns. I have had a great time overall, and learned a lot of new technologies along the way, met interesting and skilled people, and, as a result, we implemented a system able to identify phishing campaigns at their early stage.
How it all started, and why I chose FireEye
As a Computer Science student at Columbia University, I heard about a graduate course Malware Analysis & Reverse Engineering taught by Michael Sikorski, from Mandiant, FireEye.
I took the course in the fall ’16 and throughout the course I learned foundations of and tools for Malware Analysis from the first-hand industry professionals. We had a lot of exposure to disassembly and debugging. Beyond the subject itself, I also learned about the challenges in the wild and the approaches one might undertake to tackle them. The “detective” type of work that we did each week as a part of each new assignment essentially boiled down to analyzing samples of malware targeting Windows OS in a dedicated environment.
I think what made me choose FireEye is that feeling of engagement when you’re up at 5am in an empty library tête-à-tête with your best reverse engineering tools for the purpose of trying to understand malware’s behavior, and it doesn’t get boring or tedious.
What attracted me to FireEye is that the company’s primary focus is cyber security, and they know everything about it. Learning from white hat professionals and getting some meaningful work done, for the good, sounded like a great opportunity for me. Another important aspect of this decision was that I wanted to get the exposure of working at a bigger size company, see how different departments and teams connect and communicate, and add this experience to my background.
Most interesting things that I learned along the way
At the core of my project was the integration of existing systems to build a new one. My time was divided roughly on a 70/30 ratio, in which I dedicated 70 percent of my time to development (programming), and the rest to discussing the specification for the project and finding the right tools to get the job done. One of the most useful skills I picked up here was learning to navigate my way across different teams, initiating conversation with other employees and interns. Another important skill I learned is being able to quickly translate my ideas into a minimum viable prototype, and estimate its potential prior to moving into development of a full-fledged solution. If the prototype does not meet the spec, you should be ready to discard it and move on without wasting any time. This will ensure you stay on track to meet the given specification by the deadline.
Favorite part of my internship
What I enjoyed the most is the independent development process. You get to own your project, get to brag about it, and also you assume the responsibility for it. I liked the open-door policy at the company, which allowed for transparency and the welcoming feeling in the office. You can always set up a time to discuss your progress/plans and questions with a senior team member or virtually any executive in the office to introduce yourself. Your co-workers treat you as a mature team member, despite your junior position level, and they want to see you succeed. You become an expert in your project, and it is a fascinating feeling when you share with them your current progress whether it be a success or challenge.
Advice to a student pursuing an internship at FireEye
Take advantage of the knowledge base on your team, ask your coworkers what they have been working on recently and share your project idea, questions and ask for their feedback. I owe much of my project’s success to my coworkers, whom provided valuable pieces of advice on direction and potential ways to improve.
Find the work-life balance. Don’t just stay at your desk all the time, take advantage of activities and events offered on site.
Have frequent sync-up meetings with your mentor, especially if your project has ever-shifting specifications and if you rely on other team members and the systems that they developed. It never hurts to update those involved in your projects with the latest progress and request follow-up feedback to make sure you stay on track.
Attend company events with executive speakers, and ask for one-on-one introduction meetings for networking when applicable.
It has been a memorable summer at FireEye. This internship has fulfilled all my expectations: networking, social outings, lots of coding, new technologies learned and connections made. I would certainly recommend applying for an internship at FireEye, and speaking out about what you’d like to work on for the best job placement / team match experience.