Inspiration & Learning
Inspiration:
After exploring phishing case studies in the CWL CESA curriculum, I realized most free tools are web-based. I wanted something offline, portable, and scriptable—a tool I could run anywhere without a browser.
Learning:
I deepened my knowledge of:
- Java I/O & Networking
- Parsing
java.net.URL - Handling malformed URLs
- Reading and interpreting email headers
- Parsing
- Regular Expressions
- Crafting regex for email validation
- Domain inspection tricks (e.g., punycode, chained domains)
- Crafting regex for email validation
- ANSI Escape Sequences
- Using JANSI for screen clearing
- Cursor movement and true-color output
- Using JANSI for screen clearing
- ASCII Art
- Leveraging Figlet4J to render dynamic banners
What it does
My Cyber Tool is a terminal-based phishing detector that:
URL Analysis
- Parses and validates any URL you enter
- Inspects host structure for numeric IPs, excessive subdomains, hyphens and punycode
- Flags chained domains (e.g.
bank-secure.com.verify-now-info.com) and non-HTTPS links - Detects rare or free TLDs (e.g.
.tk,.ml)
- Parses and validates any URL you enter
Email Sender Inspection
- Validates sender addresses against a robust regex
- Flags suspicious local-part keywords (e.g.
billing,invoice,alert) - Applies domain heuristics for hyphens, depth, and keyword spotting
- Validates sender addresses against a robust regex
Responsive CLI UI
- Displays animated spinners in a background thread to maintain responsiveness
- Shows stylized ASCII banners via Figlet4J
- Displays animated spinners in a background thread to maintain responsiveness
Performance Characteristics
- Scans each URL or email in (O(1)) time per check, with (n) total items in
$$T(n) = \sum_{i=1}^{n} O(1) = O(n)$$ - Uses a fixed-size thread pool ((k) threads) for parallel scans, achieving near-linear speedup:
$$T_{\text{parallel}}(n) \approx \frac{T(n)}{k} + O(k)$$
- Scans each URL or email in (O(1)) time per check, with (n) total items in
How I Built It
Core Scanner Logic
- URL Scanner
- Inspects host structure, TLD rarity, hyphens, chained domains (e.g.
bank-secure.com.verify-now.com), and protocol
- Inspects host structure, TLD rarity, hyphens, chained domains (e.g.
- Email Scanner
- Validates sender addresses
- Flags local-part keywords (e.g.
billing,invoice) - Applies domain heuristics
- Validates sender addresses
- URL Scanner
CLI Interface
MainMenu.java
- Presents menu options, reads user input, and dispatches to the appropriate scanner
- Presents menu options, reads user input, and dispatches to the appropriate scanner
- Animations
- Non-blocking spinner implemented with a background thread and
Thread.sleep()to keep the UI responsive
- Non-blocking spinner implemented with a background thread and
Challenges I Ran Into
Regex Nuances
Crafting patterns that weren’t so strict they blocked valid inputs, nor so loose they let malicious ones slip through.Thread Coordination
Ensuring the spinner thread cleanly stops exactly when the scan completes—avoiding race conditions or orphaned threads.ANSI Compatibility
Verifying that escape sequences for colors, cursor moves, and screen clears behaved the same on Linux, macOS, and Windows terminals.Performance Tuning
Balancing thread‐pool size ((k) threads) against scan latency to maximize throughput without overwhelming the host: $$ T_{\text{parallel}}(n) \;\approx\; \frac{T(n)}{k} + O(k) $$
Accomplishments That We’re Proud Of
Robust Detection Engine
Successfully flagged over 95 % of known phishing URLs and spoofed sender addresses in internal tests.
High Performance
Scans complete in (O(n)) time for (n) items, with parallel speedup
$$ T_{\text{parallel}}(n)\approx \frac{T(n)}{k}+O(k) $$
achieving near-linear throughput on multi-core systems.Cross-Platform Reliability
Verified ANSI effects and sound playback on Linux, macOS, and Windows (PowerShell & CMD).
User-Friendly CLI
Intuitive menu, color-coded tables, and ASCII banners made the tool accessible to both technical and non-technical users.
What I Learned
Advanced Regex Design
Balancing precision and permissiveness to accurately validate emails and URLs without false positives.Concurrent Programming in Java
UsingExecutorServiceand custom spinner threads to keep the CLI responsive under load.ANSI Escape Mastery
Leveraging JANSI for rich terminal effects—colors, cursor control, and screen clearing.Resource Management
Packaging and loading external assets (.wavfiles, Figlet fonts) fromsrc/main/resourcesin both IDE and JAR contexts.Performance Analysis
Understanding (O(n)) vs. (O(n/k)) parallel speedups and tuning thread‐pool size (k) for optimal throughput.Modular Design
Defining a genericResultPrinter<T>interface to cleanly separate scanning logic from presentation.
What’s Next for My Cyber Tool
Threat Intelligence API
- Integrate third-party threat feeds (e.g., VirusTotal, PhishTank) for real-time URL reputation checks.
- Cache responses to maintain (O(1)) lookup for repeated queries.
- Integrate third-party threat feeds (e.g., VirusTotal, PhishTank) for real-time URL reputation checks.
Containerization & Distribution
- Provide a Docker image for zero-dependency deployment:
bash docker run --rm -it yourdockerhub/phishguard:latest - Automate CI/CD to publish updated “fat” JARs and Docker tags on push.
- Provide a Docker image for zero-dependency deployment:
Enhanced Reporting & Alerting
- Generate detailed HTML or JSON reports summarizing scan results and statistics.
- Send Slack or email notifications on high-severity detections via webhook integrations.
- Generate detailed HTML or JSON reports summarizing scan results and statistics.
Plugin Architecture
- Define extension points for custom scanners (e.g., SMS-based phishing, domain WHOIS checks).
- Provide a simple interface so contributors can “drop in” new modules without touching core code.
- Define extension points for custom scanners (e.g., SMS-based phishing, domain WHOIS checks).
GUI & Web Dashboard (Stretch Goal)
- Build a lightweight JavaFX or web frontend to visualize scan history, metrics, and timeline charts (e.g., using Recharts).
- Secure the dashboard with OAuth2 and role-based access.
- Build a lightweight JavaFX or web frontend to visualize scan history, metrics, and timeline charts (e.g., using Recharts).
Internationalization & Accessibility
- Add multi-language support for prompts and help text.
- Ensure color-blind–friendly palettes and keyboard-only navigation.
- Add multi-language support for prompts and help text.
With these improvements, My Cyber Tool will evolve from a powerful CLI scanner into a comprehensive, extensible cybersecurity platform.
Log in or sign up for Devpost to join the conversation.