-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
175 lines (154 loc) · 7.18 KB
/
index.html
File metadata and controls
175 lines (154 loc) · 7.18 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Ryan Sharpnack | ICS Security Researcher</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<body>
<!-- Matrix Rain Effect Canvas -->
<canvas id="matrix-canvas"></canvas>
<div class="container">
<!-- rest of your content -->
<div class="container">
<header>
<h1 class="glitch" data-text="RYAN_SHARPNACK">RYAN_SHARPNACK<span class="cursor">_</span></h1>
<p class="tagline">ICS_SECURITY_RESEARCHER</p>
<p class="subtitle">35+ CVE Discoveries | Firmware Analysis | Protocol Exploitation</p>
</header>
<div class="disclosure-notice">
<span class="notice-icon">⚠</span> COORDINATED_DISCLOSURE_IN_PROGRESS → Research publishing Q3 2026
</div>
<section class="about">
<h2 class="section-title">// ABOUT</h2>
<p>Security researcher specializing in critical infrastructure protection. Discovering vulnerabilities in Industrial Control Systems (ICS) and SCADA networks to make them stronger.</p>
<p>Current focus: Firmware reverse engineering, protocol exploitation, and penetration testing of operational technology environments.</p>
</section>
<section class="status">
<h2 class="section-title">// RESEARCH_STATUS</h2>
<div class="status-grid">
<div class="status-item">
<span class="status-label">→ Disclosure:</span>
<span class="status-value">Active with CISA ICS-CERT</span>
</div>
<div class="status-item">
<span class="status-label">→ CVEs:</span>
<span class="status-value">35+ (Publishing Q3-Q4 2026)</span>
</div>
<div class="status-item">
<span class="status-label">→ Reports:</span>
<span class="status-value">Coming soon</span>
</div>
</div>
</section>
<section class="research-areas">
<h2 class="section-title">// RESEARCH_AREAS</h2>
<div class="research-grid">
<div class="research-item">
<h3>Firmware Analysis</h3>
<p>Reverse engineering ICS/SCADA firmware binaries (ARM, PowerPC, x86)</p>
</div>
<div class="research-item">
<h3>Protocol Security</h3>
<p>Vulnerability research in Modbus, DNP3, IEC 61850, IEC 60870-5-104</p>
</div>
<div class="research-item">
<h3>Exploit Development</h3>
<p>Proof-of-concept exploits for authentication bypass and privilege escalation</p>
</div>
<div class="research-item">
<h3>Penetration Testing</h3>
<p>Security assessments of operational technology environments</p>
</div>
</div>
</section>
<section class="coming-soon">
<h2 class="section-title">// COMING_SOON</h2>
<ul class="coming-list">
<li><span class="bullet">▸</span> Vulnerability research papers (Post-disclosure)</li>
<li><span class="bullet">▸</span> Conference presentations & slides</li>
<li><span class="bullet">▸</span> Proof-of-concept code (Sanitized)</li>
<li><span class="bullet">▸</span> Educational content & tutorials</li>
</ul>
<p class="subscribe-note">⭐ Star my <a href="https://github.com/ryan-sharpnack/ics-security-research-portfolio" target="_blank">research portfolio</a> for updates when materials publish</p>
</section>
<section class="connect">
<h2 class="section-title">// CONNECT</h2>
<div class="links">
<a href="https://github.com/ryan-sharpnack" target="_blank" class="link-item">
<span class="link-arrow">→</span> GitHub
</a>
<a href="https://linkedin.com/in/ryan-sharpnack-ics-security" target="_blank" class="link-item">
<span class="link-arrow">→</span> LinkedIn
</a>
<a href="https://www.youtube.com/@IndustrialCybersecurity/featured" target="_blank" class="link-item">
<span class="link-arrow">→</span> YouTube
</a>
<a href="https://ryansharpnack.beehiiv.com" target="_blank" class="link-item">
<span class="link-arrow">→</span> Blog
</a>
</div>
</section>
<footer>
<div class="legal">
<h3 class="section-title">// LEGAL_NOTICE</h3>
<p>All research conducted ethically through coordinated disclosure procedures. Unauthorized access to industrial control systems is illegal.</p>
</div>
<p class="copyright">© 2026 Ryan Sharpnack | All rights reserved</p>
</footer>
</div>
</footer>
</div>
<!-- Matrix Rain Animation Script -->
<script>
// Matrix rain effect
const canvas = document.getElementById('matrix-canvas');
const ctx = canvas.getContext('2d');
// Set canvas to full screen
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
// Matrix characters
const matrix = "ABCDEFGHIJKLMNOPQRSTUVWXYZ123456789@#$%^&*()*&^%+-/~{[|`]}";
const characters = matrix.split("");
const fontSize = 14;
const columns = canvas.width / fontSize;
// Array of drops - one per column
const drops = [];
for (let x = 0; x < columns; x++) {
drops[x] = Math.random() * -100; // Start at random heights
}
// Drawing the characters
function draw() {
// Semi-transparent black to create fade effect
ctx.fillStyle = "rgba(0, 0, 0, 0.04)";
ctx.fillRect(0, 0, canvas.width, canvas.height);
// Matrix green text
ctx.fillStyle = "#00ff41";
ctx.font = fontSize + "px monospace";
// Loop over drops
for (let i = 0; i < drops.length; i++) {
// Random character
const text = characters[Math.floor(Math.random() * characters.length)];
// Draw the character
ctx.fillText(text, i * fontSize, drops[i] * fontSize);
// Reset drop to top randomly after it crosses the screen
if (drops[i] * fontSize > canvas.height && Math.random() > 0.975) {
drops[i] = 0;
}
// Increment Y coordinate
drops[i]++;
}
}
// Run the animation
setInterval(draw, 35);
// Resize canvas on window resize
window.addEventListener('resize', () => {
canvas.width = window.innerWidth;
canvas.height = window.innerHeight;
});
</script>
</body>
</body>
</html>