Monthly Archives: January 2023

Malware Analysis: An Introduction and Practicing What I Preach (or Stress Management Part 2)

Photo by Michael Geiger on Unsplash

My Project is….(Drum Roll Please)

Its been a while, huh? Well … about two weeks to be precise. Now maybe that isn’t that long a period of time, but it really does feel like ages to me. That is because many things have changed and shifted in CS 467 : Capstone Project. The last time I posted, we had not yet been assigned to project teams and a lot was still uncertain. Fast forward two weeks, and we are just past the planning stages of our assigned projects. We are now truly entering into the main event. I am tempted to call it the “development” period, but I won’t. For many teams, it actually is the development period for their projects, the time when they build out their software. However, that isn’t really the case for myself and my team. I have been assigned to the project “Malware Analysis”. I will get into what the goal of the project is shortly. However, the aspect of the project I have been hinting at, is that it is a research project. My team isn’t focused on building a product. We have been given an overall goal and have been tasked with generating a final report based around how we accomplished it.

You could probably tell by the project name that we will be dealing with malicious software (Malware). The project has multiple interconnected goals. The first goal is to create a safe virtual environment that an analyst can analyze malware on. This environment should be composed of multiple virtual machines that all connect to each other through a virtual network. The second goal is to use this Virtual Lab to perform actual Malware Analysis on malware samples. There are two basic types of analysis, Static and Dynamic. These are our focus. The Malware Analysis project will culminate in a final report that basically details the steps required to accomplish these two tasks. The idea is that our report can serve as a foundation for further Malware Analysis tasks, for us or for other analysts [1].

Photo by Glenn Carstens-Peters on Unsplash

Bringing it Together

Now, this blog post does have a purpose beyond just introducing my project (though it is an intriguing subject). If you recall my previous post, Blog Post 1: A Wide Open Vista, I discussed how I generally react to and deal with new (stressful) situations. I likened the feeling to emerging from a forest, where you were able to follow a path and your viewpoint was limited, onto a trackless and wide plain. I found myself in this exact situation this week. I decided that this gave me an opportunity, within this blog post, for some continuity with my previous post. I also have some new thoughts on the subject to share.

There is a difficulty, and therefore value, in bringing methods into practice. As I mentioned above, this week was the real start to the Capstone Project in many ways. Yes, my team and I spent quite a bit of time last week doing background research and fleshing out how we could accomplish those three goals for our project. However, that was for a specific and narrow goal. That goal was the completion of what amounted to a Project Plan Proposal. I had my comfort blanket, a bullet point list of what needed to be included in the report. This week, though a lot of what I’m doing is similar to my tasks last week, something feels different. This is probably for three reasons. Firstly, I no longer have my bullet point list for what to do. We did generate a breakdown of what each team member would be doing each week, but that isn’t quite the same. I only have three decently vague overall goals. Secondly, it is time to actually begin setting up the Malware Analysis virtual lab. I have emerged onto the wide open plain in my analogy from last time. Thirdly, it is hitting me that I will be purposefully interacting with Malware. This is exciting, but also a bit intimidating.

Photo by Hans-Peter Gauster on Unsplash

A Good Thing

I have mentioned this previously, but I will say it again. This sort of feeling is normal. I would venture that everyone feels this way, to some extent, whenever they are starting anything new that they want to succeed in. I feel this way all the time and that is okay. In fact, it is a good thing. This week, I recognized that a large reason I felt this way is that I care. I want to accomplish the project’s goals alongside my team and help us write a great final report. What could be wrong with that?

One of the hardest parts about new situations is getting started. You can feel stuck, not knowing where to begin. I mentioned in that first blog post that when I am in a new situation, I try to focus on “movement”. To me, that means doing anything that pushes me towards my goal. It doesn’t have to be the most efficient use of my time, the important point is that I build up momentum (an object in motion tends to stay in motion…). It is then easier to see where I am going and what I need to do to get there. In the Project Plan, our team broke down what we should each be accomplishing each week. However, somehow, this week I found myself not knowing where to begin. So, following my own advice, I just started. It didn’t really matter where I began, just that I did. So I started by downloading the hypervisor our team had decided to use to set up or virtual lab. We had decided on VMware Workstation Pro 17, for several reasons. I got it setup and designated where I would be storing our virtual machines. I could then move onto looking into where my team could download Disc Image Files (ISOs) for the Operating Systems we wanted to use on the virtual machines. This then led me to researching how VMware Workstation Pro 17 allows users to configure virtual networks. I went on from there. The technicalities aren’t the important part here. Once I got going, it became much easier to decide what I would do next.

Lastly, I wanted to mention something that I did not cover in the last blog post. Having a team can be great when you are faced with uncertainty. I recommend talking to them if you are feeling unsure about your direction. The process of bouncing ideas off of my teammates and discussing what each of us was doing helped me immensely in determining where I was going this week.

Photo by sydney Rae on Unsplash

Closing Thoughts

I started off this week a bit worried to be honest. I am sure I’m not the only one. However, I am now feeling quite positive and confident (I hope you are too). Yet, I am hesitant to offer advice to anyone. Chances are that I do not know you well. However, I can say that my methods work well for me. This last week has only further demonstrated that for me. I believe part of it is getting to know yourself. Luckily, I am mostly aware of where my stress is stemming from. That allows me to target it. That being said, maybe my thoughts will resonate with someone else. I hope we all have a great term!

References

  1. “Malware Analysis, EECS Project Portal. , https://eecs.engineering.oregonstate.edu/capstone/submission/pages/viewSingleProject.php?id=pf4xE8KXc0Jf8Td8. [Accessed: Jan 25, 2023]

Blog Post 1: A Wide Open Vista

Photo by Chris Linnett on Unsplash

The Calm Before The Storm (Or Is It?)

It is the first week of class and it is time for our first Blog Post. What do we write about? Most of us haven’t chosen or been assigned projects and groups. It almost feels like the class hasn’t really started as of yet. What could we possibly write about? Yet, the class has started. In fact, this first week will frame the rest of the class. Likewise, this Post will set the scene for the rest of the content I will be posting on this blog. This week offers a generous opportunity for all of us to take inventory of where we are at this point in our studies. This includes both technical aspects and emotional/personal. As I do this for myself, I find my mind lingering on how I react to new situations.

For many of us, those who haven’t yet worked as a Software Engineer or Developer, this type of class could be a completely new experience. New experiences can be stressful. I want to take the opportunity, in this Blog Post to discuss how I handle stress management and feeling “stuck”. Specifically, when faced with a new situation that I do not yet have the context or previous experience to understand and/or predict. I will use this class and my preparations for it as some examples. In my opinion, being able to prepare for and deal with uncertainty in a healthy way is an important personal and professional skill. I will share my perspective and what actions help me when I am feeling lost and stressed.

It is also important to mention that every person is different. They handle stress and anxiety in different ways. It is not my intention to tell anyone how to feel or what works for them in terms of stress reduction. I only want to explain what methods help me manage my stress and how I approach these types of situations.

Emerging From the Forest

Photo by Lucas Parker on Unsplash

As I begin this class, I find myself met with a plethora of conflicting emotions. I imagine I am not alone. The first and most prevalent, is excitement. I love what this class represents. It is the culmination of everything we have learned up until this point. Not only specific technical skills (languages, algorithms, etc.), but how to learn new skills. It is also an opportunity to build something I can be proud of. However, the open ended and self-guided nature of this class also brings up feelings of uncertainty and confusion. Whenever I am faced with a new situation, I experience similar emotions. I am sure that you would all agree that this happens all the time while studying Computer Science. When you aren’t familiar with what you are doing or the dynamics of the interactions you will be having, it is natural to experience stress and anxiety. That’s why it is important to develop methods to deal with these emotions in a healthy and productive manner. So while I still experience these emotions, I’ve become very comfortable with being uncomfortable.

The first step I take while preparing for a new or stressful situation like this is to admit to myself that I am not perfect. I allow myself to doubt, to worry. What if I don’t have the skills to properly complete the capstone project I am assigned to? What if I don’t get along with the people on my team? These might be questions someone would ask themselves at the start of a capstone project. I don’t feel the need to block these questions out of my mind. Pretending these worries do not exist will not make them go away (at least that doesn’t work for me). Doubts only become negative and toxic when you allow them to control how you feel and function. I acknowledge my doubts, then move on. I try to focus on solutions instead of dwelling.

I let my doubts define the actions I need to take to overcome them. I actually write myself a list. If you are concerned that you don’t have the skills to complete a project, figure out what skills you need to teach yourself. If you are worried that you will not get along with teammates, research how professionals handle team conflicts. Again, focus on solutions, don’t dwell on uncertainties. For myself, even the act of dissecting my doubts and creating a plan to combat them makes me feel more confident in myself. That, in turn, reduces my stress and anxiety regarding the situation. In fact, I followed this exact method this morning. I was feeling worried because recently I had to take multiple terms off (not in a row) from the program for personal reasons. I started to doubt my abilities and memory. However, I wrote a list of my doubts and how I could overcome them. I realized things were nowhere near as bad as I had imagined, and I now have a plan for how to address any skills I need to brush up on.

Furthermore, when I am dealing with stress that is manifesting due to uncertainty, my philosophy is to focus on “movement”. What do I mean by that? I find that I think best in these situations by making any type of progress. If I don’t know where exactly to start, I just pick a likely starting place and begin. It is easy to get caught up like a deer in headlights. What should I do? Where do I begin? Sometimes the most important thing you can do for yourself when you are stuck is to just do something. Make some sort of progress, even if in the end it ends up that it wasn’t all that important for your goal. As you progress you will be able to determine what is and is not necessary. Maybe you start by researching a new technology for your project. While you are researching it, you discover that it won’t work for your needs. However, in your research you learned of alternatives that might be just what you are looking for. Don’t let yourself get stuck at the beginning of a task. In my opinion, that is the easiest portion of a project to get stuck on. For this class, I was feeling nervous, so I started this blog. I couldn’t start the project, but at least I could get my thoughts and feelings out.

Finally, I find it helpful to remind myself that new experiences are one of the best parts about being alive. Yes, there might be some hard days ahead, but I am investing in my future. I didn’t learn to read or cook in one day. There were challenges and more than one dish my family had to force down on my behalf. Now these skills comprise two of my favorite hobbies. You never know when you might be learning or participating in something that could change your life for the good. I hope that CS467 turns out to be that sort of experience.

Wrapping It Up

Photo by Max Duzij on Unsplash

All of the previous classes I have taken in this program have been much more guided than this class. I was told what to study and given the exact documents and resources I needed to succeed. It was like I was walking on a path through a forest. I found my way by staying on the track laid out before me. Sometimes a rock obstructed the way, but I was always able to find where the path picked up. However, now I have emerged from the forest and in front of me a large trackless plain stretches out to all horizons. This isn’t only represented by this class, but by especially by my future software engineer career. This is a good thing. I believe that it is in these types of circumstances that we truly grow. If you keep the training wheels on forever, you wont ever really learn how to ride a bike. New experiences can be one of the best parts of life. I look forward to learning and will continue to practice and develop my stress management techniques to help me along the way.

Blog Post 0: Self Introduction

Hey everyone!

I am new to the practice of blogging. Of course, I am familiar with what a blog is. I have even read several of them over the years. I just never really considered that I would ever write one. In fact, I used to wonder about how blog writers kept coming up with topics, post after post. Well….. here I am (wish me luck!). It sometimes seems strange how often I find myself performing tasks that I never considered I might be required to do or even want to do. Well, for better or worse, I am excited to give this a shot and I will do my utmost to inject a bit of my personality into these posts. Hopefully, that will make them engaging to read.

I thought the best way to begin would be to write a short post introducing myself. My name is Claude and I was born, raised and currently live in the New England region of the USA. I love to cook, read, and travel. In terms of cooking, I like to cook dishes from places I’ve visited and places I want to visit. I enjoy books of all types and lengths, though I would say that I generally read speculative fiction for pleasure. I particularly enjoy really long fantasy books/series (think Lord of the Rings or The Wheel of Time) and pretty much always have a book that I’m currently reading. Who knows, maybe I will find a way to incorporate those passions into this blog. Stay tuned!

My first degree was in Physics at the University of Richmond. My original goal was to pursue a PhD in a subfield of Physics and go into academia. I had even taken the GRE, applied to several different programs and been accepted to a few of them. However, as sometimes happens in life, I realized that my heart wasn’t truly invested in the path I had laid out for myself. Additionally, I didn’t have the desire to teach at the middle school/high school level. I might get more into this situation during a later post (we will see).

I was actually introduced to programming through physics. When I decided not to pursue a PhD in Physics, I performed a self inventory of what I had learned in college and what I was interested in. Through a bit of experimentation, I discovered that I really enjoyed the sense of building something with programming. I enjoyed the technical aspects of CS and programming, but also fell in love with the inherent creativity it offers. I explored a bit on my own, and eventually ended up applying to this program.

Professionally, before and after entering this program, I worked for a local construction company. I functioned in a managerial position. I wore many hats but an important aspect of my job was moving the company further into the digital world. This involved aspects of inventory management, online presence, advertising and a whole lot more. I would say that the greatest benefit I received from this job was truly learning to work as part of a team. I recently stepped back from that position in order to focus on finishing my CS degree.

I am very excited to get to know many of you throughout this class. If you happen to find my blog and are not in CS467, welcome as well! If you think we have similar interests, feel free to reach out to me. I’d love to discuss cooking, travel, or reading with you.