<?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>Forem: pkdev23</title>
    <description>The latest articles on Forem by pkdev23 (@pkdev23).</description>
    <link>https://forem.com/pkdev23</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.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F3560113%2Fd2ebc875-f486-424f-8776-b497ed872982.png</url>
      <title>Forem: pkdev23</title>
      <link>https://forem.com/pkdev23</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/pkdev23"/>
    <language>en</language>
    <item>
      <title>Detecting File Changes in 2 Seconds: Python File Integrity Monitoring</title>
      <dc:creator>pkdev23</dc:creator>
      <pubDate>Sun, 12 Oct 2025 09:17:30 +0000</pubDate>
      <link>https://forem.com/pkdev23/detecting-file-changes-in-2-seconds-python-file-integrity-monitoring-3mo0</link>
      <guid>https://forem.com/pkdev23/detecting-file-changes-in-2-seconds-python-file-integrity-monitoring-3mo0</guid>
      <description>&lt;h2&gt;
  
  
  Detecting File Changes in 2-3 Seconds: Python File Integrity Monitoring
&lt;/h2&gt;

&lt;p&gt;I built &lt;strong&gt;CoNum&lt;/strong&gt; - an open-source file integrity monitor that detects unauthorized changes in 2 - 3 seconds and generates forensic-grade reports.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub:&lt;/strong&gt; &lt;a href="https://github.com/pkdev23/conum" rel="noopener noreferrer"&gt;https://github.com/pkdev23/conum&lt;/a&gt;&lt;/p&gt;




&lt;h2&gt;
  
  
  The Problem
&lt;/h2&gt;

&lt;p&gt;Traditional file monitoring solutions are either:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Too expensive&lt;/strong&gt; (Tripwire: $5,000+/year)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Too slow&lt;/strong&gt; (polling-based tools take minutes)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Too complex&lt;/strong&gt; (OSSEC takes days to configure)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Too limited&lt;/strong&gt; (Git hooks only work on commits)&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;I needed something that detects critical file changes &lt;strong&gt;instantly&lt;/strong&gt; - for production configs, SSH keys, deployment scripts, and &lt;code&gt;.env&lt;/code&gt; files.&lt;/p&gt;




&lt;h2&gt;
  
  
  CoNum in 30 Seconds
&lt;/h2&gt;

&lt;h3&gt;
  
  
  What It Does
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;⚡ &lt;strong&gt;2-3 seconds detection&lt;/strong&gt; using filesystem events (not polling)&lt;/li&gt;
&lt;li&gt;🔔 &lt;strong&gt;Email alerts&lt;/strong&gt; with PDF reports showing line-by-line changes&lt;/li&gt;
&lt;li&gt;🛡️ &lt;strong&gt;Risk scoring&lt;/strong&gt; (0-10) based on keywords and patterns&lt;/li&gt;
&lt;li&gt;💾 &lt;strong&gt;Local SQLite database&lt;/strong&gt; for complete audit trail&lt;/li&gt;
&lt;li&gt;📤 &lt;strong&gt;SIEM-ready export&lt;/strong&gt; (JSONL, CEF, CSV formats)&lt;/li&gt;
&lt;/ul&gt;

&lt;h3&gt;
  
  
  How It Works
&lt;/h3&gt;

&lt;ol&gt;
&lt;li&gt;Monitor critical files with Watchdog (filesystem events)&lt;/li&gt;
&lt;li&gt;Calculate SHA-256 hashes for tamper detection&lt;/li&gt;
&lt;li&gt;Store changes in SQLite with forensic details&lt;/li&gt;
&lt;li&gt;Alert immediately via email with detailed reports&lt;/li&gt;
&lt;/ol&gt;

&lt;h3&gt;
  
  
  Why It’s Different
&lt;/h3&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Code-focused&lt;/strong&gt; (not OS files like Tripwire/OSSEC)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;2-second detection&lt;/strong&gt; (not minutes)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;5-minute setup&lt;/strong&gt; (not days)&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Free/$249&lt;/strong&gt; (not $5,000+/year)&lt;/li&gt;
&lt;/ul&gt;




&lt;h2&gt;
  
  
  Real-World Use Cases
&lt;/h2&gt;

&lt;p&gt;✅ &lt;strong&gt;Detect SSH backdoors&lt;/strong&gt; - Monitor &lt;code&gt;authorized_keys&lt;/code&gt; for unauthorized access&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Track config changes&lt;/strong&gt; - Alert on &lt;code&gt;.env&lt;/code&gt;, &lt;code&gt;nginx.conf&lt;/code&gt;, database configs&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Compliance auditing&lt;/strong&gt; - Generate reports for SOC 2, ISO 27001, PCI-DSS&lt;br&gt;&lt;br&gt;
✅ &lt;strong&gt;Incident response&lt;/strong&gt; - Know exactly what files changed during a breach and how they were changed&lt;br&gt;
✅ &lt;strong&gt;Deployment verification&lt;/strong&gt; - Ensure scripts weren’t tampered with&lt;/p&gt;




&lt;h2&gt;
  
  
  Quick Comparison
&lt;/h2&gt;

&lt;div class="table-wrapper-paragraph"&gt;&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Feature&lt;/th&gt;
&lt;th&gt;CoNum&lt;/th&gt;
&lt;th&gt;Tripwire&lt;/th&gt;
&lt;th&gt;OSSEC&lt;/th&gt;
&lt;th&gt;Git Hooks&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Price&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;Free/$249&lt;/td&gt;
&lt;td&gt;$5,000+/year&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;td&gt;Free&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Setup&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;5 min&lt;/td&gt;
&lt;td&gt;Days&lt;/td&gt;
&lt;td&gt;Hours&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Detection&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;2 sec&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;td&gt;Minutes&lt;/td&gt;
&lt;td&gt;Commit-only&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;SIEM&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;&lt;strong&gt;Dashboard&lt;/strong&gt;&lt;/td&gt;
&lt;td&gt;✅&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;td&gt;❌&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;&lt;/div&gt;




&lt;h2&gt;
  
  
  Installation
&lt;/h2&gt;



&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;git clone https://github.com/pkdev23/conum.git
&lt;span class="nb"&gt;cd &lt;/span&gt;conum
pip &lt;span class="nb"&gt;install&lt;/span&gt; &lt;span class="nt"&gt;-r&lt;/span&gt; requirements.txt
python conum_rack.py
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;That’s it. No Docker, no complex configs, no external databases.&lt;/p&gt;




&lt;h2&gt;
  
  
  Tech Stack
&lt;/h2&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Python 3.11+&lt;/strong&gt; with Watchdog for filesystem events&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SHA-256 hashing&lt;/strong&gt; for integrity verification&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SQLite with WAL&lt;/strong&gt; for crash-safe storage&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;Tkinter GUI&lt;/strong&gt; for native macOS/Windows interface&lt;/li&gt;
&lt;li&gt;
&lt;strong&gt;SMTP&lt;/strong&gt; for email alerts with PDF reports&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Platforms:&lt;/strong&gt; macOS, Windows &lt;/p&gt;




&lt;h2&gt;
  
  
  Get Started
&lt;/h2&gt;

&lt;p&gt;&lt;strong&gt;Free Version:&lt;/strong&gt; Monitor up to 4 files&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Pro Version:&lt;/strong&gt; 16 files, SIEM export, risk scoring ($249)&lt;/p&gt;

&lt;p&gt;👉 &lt;strong&gt;Full details, screenshots, and source code:&lt;/strong&gt;&lt;br&gt;&lt;br&gt;
&lt;a href="https://github.com/pkdev23/conum" rel="noopener noreferrer"&gt;https://github.com/pkdev23/conum&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;GitHub Issues:&lt;/strong&gt; &lt;a href="https://github.com/pkdev23/conum/issues" rel="noopener noreferrer"&gt;https://github.com/pkdev23/conum/issues&lt;/a&gt;&lt;br&gt;&lt;br&gt;
&lt;strong&gt;Email:&lt;/strong&gt; &lt;a href="mailto:pk_dev@gmx.at"&gt;pk_dev@gmx.at&lt;/a&gt;&lt;/p&gt;




&lt;p&gt;&lt;em&gt;If this sounds useful, please ⭐ star the repo on GitHub!&lt;/em&gt;&lt;/p&gt;

&lt;h3&gt;
  
  
  Tags
&lt;/h3&gt;

&lt;h1&gt;
  
  
  python #security #devops #opensource
&lt;/h1&gt;

</description>
      <category>python</category>
      <category>security</category>
      <category>git</category>
      <category>devops</category>
    </item>
  </channel>
</rss>
