|
8 | 8 | <meta property="og:type" content="website"> |
9 | 9 | <meta property="og:title" content="Crosswalk — 25 Frameworks × 41 Entries × Classifier Pipeline"> |
10 | 10 | <meta property="og:description" content="Map AI security risks to industry frameworks. Score coverage across EU AI Act, FedRAMP, DORA, NIST, ISO, and 20 more. Submit any standard for automated mapping. Free, open-source."> |
11 | | -<meta property="og:url" content="https://genai-security-project.github.io/GenAI-Data-Security-Initiative/"> |
12 | | -<meta property="og:image" content="https://genai-security-project.github.io/GenAI-Data-Security-Initiative/og-image.svg"> |
| 11 | +<meta property="og:url" content="https://genai-security-project.github.io/crosswalk/"> |
| 12 | +<meta property="og:image" content="https://genai-security-project.github.io/crosswalk/og-image.svg"> |
13 | 13 | <meta property="og:image:width" content="1200"> |
14 | 14 | <meta property="og:image:height" content="630"> |
15 | 15 | <meta name="twitter:card" content="summary_large_image"> |
16 | 16 | <meta name="twitter:title" content="Crosswalk"> |
17 | 17 | <meta name="twitter:description" content="25 frameworks × 41 entries × 114 incidents. Score your AI security coverage in 60 seconds."> |
18 | | -<meta name="twitter:image" content="https://genai-security-project.github.io/GenAI-Data-Security-Initiative/og-image.svg"> |
| 18 | +<meta name="twitter:image" content="https://genai-security-project.github.io/crosswalk/og-image.svg"> |
19 | 19 | <link rel="icon" href="data:image/svg+xml,<svg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 100 100'><text y='.9em' font-size='90'>🛡️</text></svg>"> |
20 | 20 | <style> |
21 | 21 | /* ══════════════════════════════════════════════════════════════════════════════ |
|
1070 | 1070 | <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" id="theme-icon-light"><circle cx="12" cy="12" r="5"/><path d="M12 1v2M12 21v2M4.22 4.22l1.42 1.42M18.36 18.36l1.42 1.42M1 12h2M21 12h2M4.22 19.78l1.42-1.42M18.36 5.64l1.42-1.42"/></svg> |
1071 | 1071 | <svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" id="theme-icon-dark" style="display:none"><path d="M21 12.79A9 9 0 1111.21 3 7 7 0 0021 12.79z"/></svg> |
1072 | 1072 | </button> |
1073 | | - <a href="https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/tree/main/crosswalk" target="_blank" rel="noopener" class="nav-icon-btn" aria-label="GitHub repository" title="GitHub"> |
| 1073 | + <a href="https://github.com/GenAI-Security-Project/crosswalk" target="_blank" rel="noopener" class="nav-icon-btn" aria-label="GitHub repository" title="GitHub"> |
1074 | 1074 | <svg width="18" height="18" viewBox="0 0 24 24" fill="currentColor"><path d="M12 0C5.37 0 0 5.37 0 12c0 5.31 3.435 9.795 8.205 11.385.6.105.825-.255.825-.57 0-.285-.015-1.23-.015-2.235-3.015.555-3.795-.735-4.035-1.41-.135-.345-.72-1.41-1.23-1.695-.42-.225-1.02-.78-.015-.795.945-.015 1.62.87 1.845 1.23 1.08 1.815 2.805 1.305 3.495.99.105-.78.42-1.305.765-1.605-2.67-.3-5.46-1.335-5.46-5.925 0-1.305.465-2.385 1.23-3.225-.12-.3-.54-1.53.12-3.18 0 0 1.005-.315 3.3 1.23.96-.27 1.98-.405 3-.405s2.04.135 3 .405c2.295-1.56 3.3-1.23 3.3-1.23.66 1.65.24 2.88.12 3.18.765.84 1.23 1.905 1.23 3.225 0 4.605-2.805 5.625-5.475 5.925.435.375.81 1.095.81 2.22 0 1.605-.015 2.895-.015 3.3 0 .315.225.69.825.57A12.02 12.02 0 0024 12c0-6.63-5.37-12-12-12z"/></svg> |
1075 | 1075 | </a> |
1076 | 1076 | <button class="nav-icon-btn hamburger" id="hamburger" aria-label="Open menu"> |
|
1110 | 1110 | <!-- Footer --> |
1111 | 1111 | <footer class="site-footer"> |
1112 | 1112 | OWASP GenAI Data Security Initiative · CC BY-SA 4.0 · |
1113 | | - <a href="https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/tree/main/crosswalk" target="_blank" rel="noopener">GitHub</a> |
| 1113 | + <a href="https://github.com/GenAI-Security-Project/crosswalk" target="_blank" rel="noopener">GitHub</a> |
1114 | 1114 | </footer> |
1115 | 1115 |
|
1116 | 1116 | <!-- Data scripts --> |
|
1322 | 1322 |
|
1323 | 1323 | // Placeholder entries — replace with real submissions |
1324 | 1324 | var LEADERBOARD = [ |
1325 | | - { rank: 1, company: 'Example Corp', industry: 'Financial Services', score: 72, frameworks: 14, tier: 'Tool-Verified', date: '2026-03-28', badge: 'https://genai-security-project.github.io/GenAI-Data-Security-Initiative/#/badge?score=72&fw=14' }, |
| 1325 | + { rank: 1, company: 'Example Corp', industry: 'Financial Services', score: 72, frameworks: 14, tier: 'Tool-Verified', date: '2026-03-28', badge: 'https://genai-security-project.github.io/crosswalk/#/badge?score=72&fw=14' }, |
1326 | 1326 | { rank: 2, company: 'Acme AI Labs', industry: 'Technology', score: 65, frameworks: 11, tier: 'Self-Assessed', date: '2026-03-28', badge: '' }, |
1327 | 1327 | { rank: 3, company: 'SecureHealth Inc', industry: 'Healthcare', score: 58, frameworks: 9, tier: 'Self-Assessed', date: '2026-03-28', badge: '' } |
1328 | 1328 | ]; |
|
1776 | 1776 | icon: '\uD83D\uDEE1\uFE0F', |
1777 | 1777 | title: 'Run the eval tools', |
1778 | 1778 | desc: 'Clone the repo, run Garak + PyRIT + LAAF against your models, generate compliance reports.', |
1779 | | - link: 'https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/tree/main/crosswalk', |
| 1779 | + link: 'https://github.com/GenAI-Security-Project/crosswalk', |
1780 | 1780 | cta: 'View on GitHub \u2192', |
1781 | 1781 | who: 'Red teamers, AppSec engineers, developers' |
1782 | 1782 | } |
|
3072 | 3072 | return; |
3073 | 3073 | } |
3074 | 3074 |
|
3075 | | - var baseUrl = 'https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/blob/main/crosswalk/shared/RECIPES.md'; |
| 3075 | + var baseUrl = 'https://github.com/GenAI-Security-Project/crosswalk/blob/main/shared/RECIPES.md'; |
3076 | 3076 | visible.forEach(function(recipe) { |
3077 | 3077 | var card = el('div', { |
3078 | 3078 | className: 'incident-card', |
|
4953 | 4953 | if (selected.size > 0) { |
4954 | 4954 | sharePanel.style.display = 'block'; |
4955 | 4955 | var fwParam = Array.from(selected).join(','); |
4956 | | - var shareUrl = 'https://genai-security-project.github.io/GenAI-Data-Security-Initiative/#/score?fw=' + encodeURIComponent(fwParam); |
| 4956 | + var shareUrl = 'https://genai-security-project.github.io/crosswalk/#/score?fw=' + encodeURIComponent(fwParam); |
4957 | 4957 |
|
4958 | 4958 | // Render score card on canvas |
4959 | 4959 | renderScoreCanvas(scoreCanvas, { |
|
5163 | 5163 | ctx.fillStyle = '#64748b'; |
5164 | 5164 | ctx.font = '14px system-ui, -apple-system, sans-serif'; |
5165 | 5165 | ctx.textAlign = 'left'; |
5166 | | - ctx.fillText('genai-security-project.github.io/GenAI-Data-Security-Initiative', 40, H - 18); |
| 5166 | + ctx.fillText('genai-security-project.github.io/crosswalk', 40, H - 18); |
5167 | 5167 |
|
5168 | 5168 | ctx.textAlign = 'right'; |
5169 | 5169 | var today = new Date(); |
|
5241 | 5241 | preview.innerHTML = svgStr; |
5242 | 5242 | modal.appendChild(preview); |
5243 | 5243 |
|
5244 | | - var badgeUrl = 'https://genai-security-project.github.io/GenAI-Data-Security-Initiative/#/badge?score=' + score + '&fw=' + fwCount; |
| 5244 | + var badgeUrl = 'https://genai-security-project.github.io/crosswalk/#/badge?score=' + score + '&fw=' + fwCount; |
5245 | 5245 |
|
5246 | 5246 | // Markdown |
5247 | 5247 | modal.appendChild(el('div', { className: 'badge-modal-code-label' }, 'Markdown')); |
|
5261 | 5261 | // HTML |
5262 | 5262 | modal.appendChild(el('div', { className: 'badge-modal-code-label' }, 'HTML')); |
5263 | 5263 | var htmlCode = el('div', { className: 'badge-modal-code' }); |
5264 | | - var htmlText = '<a href="https://genai-security-project.github.io/GenAI-Data-Security-Initiative/"><img src="' + badgeUrl + '" alt="Crosswalk Score"></a>'; |
| 5264 | + var htmlText = '<a href="https://genai-security-project.github.io/crosswalk/"><img src="' + badgeUrl + '" alt="Crosswalk Score"></a>'; |
5265 | 5265 | htmlCode.textContent = htmlText; |
5266 | 5266 | htmlCode.addEventListener('click', function() { |
5267 | 5267 | if (navigator.clipboard) { |
|
5332 | 5332 | content.appendChild(introBlock); |
5333 | 5333 |
|
5334 | 5334 | // Submit button |
5335 | | - var submitUrl = 'https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/issues/new?title=[Leaderboard]+Company+Name&body=**Company:**%0A**Industry:**%0A**Score:**%0A**Frameworks+selected:**%0A**Validation+tier:**%0A**Evidence+attached:**+yes/no%0A'; |
| 5335 | + var submitUrl = 'https://github.com/GenAI-Security-Project/crosswalk/issues/new?title=[Leaderboard]+Company+Name&body=**Company:**%0A**Industry:**%0A**Score:**%0A**Frameworks+selected:**%0A**Validation+tier:**%0A**Evidence+attached:**+yes/no%0A'; |
5336 | 5336 | var submitBtn = el('a', { href: submitUrl, target: '_blank', rel: 'noopener', className: 'btn-primary', style: 'margin-bottom:32px;display:inline-flex;' }); |
5337 | 5337 | submitBtn.textContent = 'Submit Your Score \u2192'; |
5338 | 5338 | content.appendChild(submitBtn); |
|
5419 | 5419 |
|
5420 | 5420 | var steps = [ |
5421 | 5421 | ['1.', 'Go to the ', '#/score', 'Score page', ' and assess your coverage'], |
5422 | | - ['2.', 'Submit your results via ', 'https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/issues/new?template=leaderboard_submission.md', 'GitHub Issue', ''], |
| 5422 | + ['2.', 'Submit your results via ', 'https://github.com/GenAI-Security-Project/crosswalk/issues/new?template=leaderboard_submission.md', 'GitHub Issue', ''], |
5423 | 5423 | ['3.', 'Include: company name, industry, score, frameworks selected, validation tier', '', '', ''], |
5424 | 5424 | ['4.', 'For Tool-Verified status: attach your Garak/PyRIT/LAAF JSON outputs to the issue', '', '', ''], |
5425 | 5425 | ['5.', 'For Independent Attestation: include assessor name and contact for verification', '', '', ''], |
|
5529 | 5529 | content.appendChild(el('h3', {}, 'Contributing')); |
5530 | 5530 | var contrib = el('p'); |
5531 | 5531 | contrib.appendChild(document.createTextNode('Contributions are welcome! Visit the ')); |
5532 | | - contrib.appendChild(el('a', { href: 'https://github.com/GenAI-Security-Project/GenAI-Data-Security-Initiative/tree/main/crosswalk', target: '_blank', rel: 'noopener' }, 'GitHub repository')); |
| 5532 | + contrib.appendChild(el('a', { href: 'https://github.com/GenAI-Security-Project/crosswalk', target: '_blank', rel: 'noopener' }, 'GitHub repository')); |
5533 | 5533 | contrib.appendChild(document.createTextNode(' to open issues, suggest new mappings, report incidents, or submit pull requests. See the CONTRIBUTING.md file for guidelines.')); |
5534 | 5534 | content.appendChild(contrib); |
5535 | 5535 |
|
|
5543 | 5543 | // Submit-a-Standard page |
5544 | 5544 | // ══════════════════════════════════════════════════════════════════════════════ |
5545 | 5545 | function renderSubmit(container) { |
5546 | | - var REPO = 'GenAI-Security-Project/GenAI-Data-Security-Initiative'; |
| 5546 | + var REPO = 'GenAI-Security-Project/crosswalk'; |
5547 | 5547 | var page = el('div', { style: 'max-width:800px;margin:0 auto;' }); |
5548 | 5548 |
|
5549 | 5549 | page.appendChild(el('h2', {}, 'Submit a Standard')); |
|
5667 | 5667 | if (fw.version && !verInput.value) verInput.value = fw.version; |
5668 | 5668 | if (fw.url && !urlInput.value) urlInput.value = fw.url; |
5669 | 5669 | if (fw.publisher && !pubInput.value) pubInput.value = fw.publisher; |
5670 | | - statusDiv.innerHTML = '<span style="color:#22c55e;">Valid: ' + fw.controls.length + ' controls in "' + fw.name + '"</span>'; |
| 5670 | + statusDiv.textContent = ''; |
| 5671 | + var okSpan = document.createElement('span'); |
| 5672 | + okSpan.style.color = '#22c55e'; |
| 5673 | + okSpan.textContent = 'Valid: ' + fw.controls.length + ' controls in "' + fw.name + '"'; |
| 5674 | + statusDiv.appendChild(okSpan); |
5671 | 5675 | submitBtn.disabled = false; |
5672 | 5676 | submitBtn.style.opacity = '1'; |
5673 | 5677 | return fw; |
5674 | 5678 | } catch (e) { |
5675 | | - statusDiv.innerHTML = '<span style="color:#ef4444;">JSON parse error: ' + e.message + '</span>'; |
| 5679 | + statusDiv.textContent = ''; |
| 5680 | + var errSpan = document.createElement('span'); |
| 5681 | + errSpan.style.color = '#ef4444'; |
| 5682 | + errSpan.textContent = 'JSON parse error: ' + e.message; |
| 5683 | + statusDiv.appendChild(errSpan); |
5676 | 5684 | submitBtn.disabled = true; |
5677 | 5685 | submitBtn.style.opacity = '0.5'; |
5678 | 5686 | return null; |
|
5732 | 5740 | // Reviewer UI page |
5733 | 5741 | // ══════════════════════════════════════════════════════════════════════════════ |
5734 | 5742 | function renderReview(container) { |
5735 | | - var REPO = 'GenAI-Security-Project/GenAI-Data-Security-Initiative'; |
| 5743 | + var REPO = 'GenAI-Security-Project/crosswalk'; |
5736 | 5744 | var page = el('div', { style: 'max-width:900px;margin:0 auto;' }); |
5737 | 5745 |
|
5738 | 5746 | page.appendChild(el('h2', {}, 'Mapping Review Queue')); |
|
0 commit comments