<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>DEV Community: Ayesha Abbas</title>
    <description>The latest articles on DEV Community by Ayesha Abbas (@ayesha_abbas).</description>
    <link>https://dev.to/ayesha_abbas</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F4006791%2Fabc39188-1fe4-424b-b8d3-3d24581fb753.jpg</url>
      <title>DEV Community: Ayesha Abbas</title>
      <link>https://dev.to/ayesha_abbas</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://dev.to/feed/ayesha_abbas"/>
    <language>en</language>
    <item>
      <title>Linux Doesn't Care What You Name Your Files (And That's a Security Problem)</title>
      <dc:creator>Ayesha Abbas</dc:creator>
      <pubDate>Sat, 04 Jul 2026 06:45:45 +0000</pubDate>
      <link>https://dev.to/ayesha_abbas/linux-doesnt-care-what-you-name-your-files-and-thats-a-security-problem-3ie9</link>
      <guid>https://dev.to/ayesha_abbas/linux-doesnt-care-what-you-name-your-files-and-thats-a-security-problem-3ie9</guid>
      <description>&lt;p&gt;While working through How Linux Works as part of my daily Linux study, I learned something that quietly rearranged how I think about files: Linux doesn't check whether a filename matches its content. At all.&lt;/p&gt;

&lt;p&gt;You could rename a shell script to definitely_a_pdf.pdf, and Linux will run it exactly the same as if you'd been honest. The extension is just decoration, a label you're free to lie about.&lt;/p&gt;

&lt;p&gt;That's also exactly how a lot of phishing attacks work. invoice.pdf.exe disguised as invoice.pdf. A convincing icon. A victim who trusts a filename instead of checking what the file actually is.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;How files are actually identified&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Every real file format has a signature, "magic bytes", at the very start of its content, completely independent of the filename:&lt;/p&gt;

&lt;p&gt;PDFs start with %PDF-&lt;br&gt;
JPEGs start with FF D8 FF&lt;br&gt;
Linux executables (ELF) start with 7F 45 4C 46&lt;/p&gt;

&lt;p&gt;Run file somefile.txt on Linux and it reads these bytes directly, telling you what something actually is, not what its name claims.&lt;/p&gt;

&lt;p&gt;&lt;em&gt;&lt;strong&gt;So I built a small detector&lt;/strong&gt;&lt;/em&gt;&lt;/p&gt;

&lt;p&gt;Instead of just reading about this, I wrote masq_detector, a small Python CLI that scans a directory, checks each file's real content against its claimed extension, and flags mismatches, specifically prioritizing files that are both disguised and directly executable.&lt;/p&gt;

&lt;p&gt;pythonif is_dangerous_content and extension_mismatch:&lt;br&gt;
    severity = "HIGH"&lt;/p&gt;

&lt;p&gt;That and wasn't there in my first version, I originally used or, which meant any executable got flagged, including perfectly honest .exe installers sitting in my Downloads folder. Running it against my real Downloads directory surfaced that false positive immediately, which was a good reminder that testing against real data catches design flaws that testing against toy examples never will.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What it actually does under the hood&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;It leans on the Unix file command for the actual content detection, no reason to reinvent decades of battle-tested magic-byte parsing. What I built is the layer on top: comparing that output against expected keywords per extension, and deciding what counts as a genuine threat versus a harmless mismatch.&lt;/p&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foxf68qlgcfmq5quqf1kh.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foxf68qlgcfmq5quqf1kh.png" alt=" " width="800" height="347"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Honest limitations&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;No ML, no fancy heuristics, just straightforward signature comparison&lt;br&gt;
Linux/macOS only, since it depends on the file command&lt;br&gt;
A learning project, not a production security tool&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why this mattered to me&lt;/strong&gt;&lt;br&gt;
I'm a CS student working toward graduation in 2028, currently deep in Linux and networking self-study, with cloud security as the direction I'm exploring next and a DAAD-funded Masters in Germany as the long-term goal. Small, fully-understood projects like this one feel like the right way to build toward that, not by making something impressive, but by making something I can actually explain, line by line.&lt;/p&gt;

&lt;p&gt;Code: github.com/AyeshaAbbas-engg/masq_detector&lt;/p&gt;

&lt;p&gt;What's a Linux "wait, that's how it works?" moment you've had recently? I'm collecting these.&lt;/p&gt;

</description>
    </item>
    <item>
      <title>5 Linux Commands Every Cybersecurity Student Must Know</title>
      <dc:creator>Ayesha Abbas</dc:creator>
      <pubDate>Sun, 28 Jun 2026 17:28:59 +0000</pubDate>
      <link>https://dev.to/ayesha_abbas/5-linux-commands-every-cybersecurity-student-must-know-n2c</link>
      <guid>https://dev.to/ayesha_abbas/5-linux-commands-every-cybersecurity-student-must-know-n2c</guid>
      <description>&lt;p&gt;I'm Ayesha Abbas, a CS student, specializing &lt;br&gt;
in cybersecurity and cloud security. I use Linux every &lt;br&gt;
single day for my projects and studies. Here are 5 commands &lt;br&gt;
that I consider absolutely essential for anyone getting &lt;br&gt;
started in cybersecurity.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;netstat | See All Network Connections&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;netstat shows you every active network connection on &lt;br&gt;
your system. As a cybersecurity student this is goldmine &lt;br&gt;
information.&lt;/p&gt;

&lt;p&gt;netstat -tulpn&lt;/p&gt;

&lt;p&gt;This shows all open ports and which process is using them.&lt;br&gt;
If something suspicious is listening on a port you didn't &lt;br&gt;
open, you have a problem.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;grep | Find Anything Inside Files&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;grep searches for patterns inside files. You will use &lt;br&gt;
this hundreds of times every week.&lt;/p&gt;

&lt;p&gt;grep -r "password" /var/log/&lt;/p&gt;

&lt;p&gt;This searches every log file for the word "password". &lt;br&gt;
Useful for log analysis, finding config values, and &lt;br&gt;
security auditing.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;chmod | Control File Permissions&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;chmod controls who can read, write, or execute a file. &lt;br&gt;
Wrong permissions = security vulnerability.&lt;/p&gt;

&lt;p&gt;chmod 600 private_key.pem&lt;/p&gt;

&lt;p&gt;This makes your SSH key readable only by you. If your &lt;br&gt;
key has wrong permissions, SSH will refuse to use it.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;nmap | Scan Networks Like a Pro&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;nmap is the most famous network scanning tool in &lt;br&gt;
cybersecurity. It maps open ports and services on &lt;br&gt;
any target.&lt;/p&gt;

&lt;p&gt;nmap -sV 192.168.1.1&lt;/p&gt;

&lt;p&gt;This scans your router and shows every open port and &lt;br&gt;
what service is running on it. Essential for &lt;br&gt;
understanding your network.&lt;/p&gt;

&lt;p&gt;Note: Only scan networks you own or have permission &lt;br&gt;
to scan.&lt;/p&gt;




&lt;ol&gt;
&lt;li&gt;ss | The Modern netstat&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;ss is faster and more detailed than netstat. It shows &lt;br&gt;
socket statistics in real time.&lt;/p&gt;

&lt;p&gt;ss -tulpn&lt;/p&gt;

&lt;p&gt;Use this to quickly see what's running on your machine. &lt;br&gt;
I use this every morning when I boot up my Ubuntu system.&lt;/p&gt;




&lt;p&gt;Final Thoughts&lt;/p&gt;

&lt;p&gt;These 5 commands are just the beginning. Linux has &lt;br&gt;
hundreds of powerful tools for cybersecurity. but &lt;br&gt;
master these first and you will already be ahead of &lt;br&gt;
most beginners.&lt;/p&gt;

&lt;p&gt;I am currently studying networking and Linux full time &lt;br&gt;
as part of my preparation for international research &lt;br&gt;
programs. &lt;/p&gt;

&lt;p&gt;Find my projects on GitHub:&lt;br&gt;
&lt;a href="https://github.com/AyeshaAbbas-engg" rel="noopener noreferrer"&gt;https://github.com/AyeshaAbbas-engg&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;Stay secure. Keep learning.&lt;br&gt;
— Ayesha Abbas &lt;/p&gt;

</description>
      <category>linux</category>
      <category>cybersecurity</category>
      <category>ubuntu</category>
      <category>networking</category>
    </item>
  </channel>
</rss>
