Adding ebpf capability now

This commit is contained in:
Harshavardhan Musanalli
2025-09-28 12:10:52 +02:00
parent 1f01c38881
commit 4b442ab169
24 changed files with 3154 additions and 25 deletions

118
test_ebpf_capabilities.sh Normal file
View File

@@ -0,0 +1,118 @@
#!/bin/bash
# eBPF Capability Test Script for NannyAgent
# This script demonstrates and tests the eBPF integration
set -e
echo "🔍 NannyAgent eBPF Capability Test"
echo "=================================="
echo ""
AGENT_PATH="./nannyagent-ebpf"
HELPER_PATH="./ebpf_helper.sh"
# Check if agent binary exists
if [ ! -f "$AGENT_PATH" ]; then
echo "Building NannyAgent with eBPF capabilities..."
go build -o nannyagent-ebpf .
fi
echo "1. Checking eBPF system capabilities..."
echo "--------------------------------------"
$HELPER_PATH check
echo ""
echo "2. Setting up eBPF monitoring scripts..."
echo "---------------------------------------"
$HELPER_PATH setup
echo ""
echo "3. Testing eBPF functionality..."
echo "------------------------------"
# Test if bpftrace is available and working
if command -v bpftrace >/dev/null 2>&1; then
echo "✓ Testing bpftrace functionality..."
if timeout 3s bpftrace -e 'BEGIN { print("eBPF test successful"); exit(); }' >/dev/null 2>&1; then
echo "✓ bpftrace working correctly"
else
echo "⚠ bpftrace available but may need root privileges"
fi
else
echo " bpftrace not available (install with: sudo apt install bpftrace)"
fi
# Test perf availability
if command -v perf >/dev/null 2>&1; then
echo "✓ perf tools available"
else
echo " perf tools not available (install with: sudo apt install linux-tools-generic)"
fi
echo ""
echo "4. Example eBPF monitoring scenarios..."
echo "------------------------------------"
echo ""
echo "Scenario 1: Network Issue"
echo "Problem: 'Web server experiencing intermittent connection timeouts'"
echo "Expected eBPF: network_trace, syscall_trace"
echo ""
echo "Scenario 2: Performance Issue"
echo "Problem: 'System running slowly with high CPU usage'"
echo "Expected eBPF: process_trace, performance, syscall_trace"
echo ""
echo "Scenario 3: File System Issue"
echo "Problem: 'Application cannot access configuration files'"
echo "Expected eBPF: file_trace, security_event"
echo ""
echo "Scenario 4: Security Issue"
echo "Problem: 'Suspicious activity detected, possible privilege escalation'"
echo "Expected eBPF: security_event, process_trace, syscall_trace"
echo ""
echo "5. Interactive Test Mode"
echo "----------------------"
read -p "Would you like to test the eBPF-enhanced agent interactively? (y/n): " -n 1 -r
echo ""
if [[ $REPLY =~ ^[Yy]$ ]]; then
echo ""
echo "Starting NannyAgent with eBPF capabilities..."
echo "Try describing one of the scenarios above to see eBPF in action!"
echo ""
echo "Example inputs:"
echo "- 'Network connection timeouts'"
echo "- 'High CPU usage and slow performance'"
echo "- 'File permission errors'"
echo "- 'Suspicious process behavior'"
echo ""
echo "Note: For full eBPF functionality, run with 'sudo $AGENT_PATH'"
echo ""
$AGENT_PATH
fi
echo ""
echo "6. eBPF Files Created"
echo "-------------------"
echo "Monitor scripts created in /tmp/:"
ls -la /tmp/nannyagent_*monitor* 2>/dev/null || echo "No monitor scripts found"
echo ""
echo "eBPF data directory: /tmp/nannyagent/ebpf/"
ls -la /tmp/nannyagent/ebpf/ 2>/dev/null || echo "No eBPF data files found"
echo ""
echo "✅ eBPF capability test complete!"
echo ""
echo "Next Steps:"
echo "----------"
echo "1. For full functionality: sudo $AGENT_PATH"
echo "2. Install eBPF tools: sudo $HELPER_PATH install"
echo "3. Read documentation: cat EBPF_README.md"
echo "4. Test specific monitoring: $HELPER_PATH test"