diff --git a/packages/eslint-plugin/ROADMAP.md b/packages/eslint-plugin/ROADMAP.md
index 9dfc1952dd82..7dc6efe1c095 100644
--- a/packages/eslint-plugin/ROADMAP.md
+++ b/packages/eslint-plugin/ROADMAP.md
@@ -235,7 +235,6 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
| `function-name` | 🛑 | N/A |
| `import-name` | 🛑 | N/A ([relevant plugin][plugin:import]) |
| `informative-docs` | 🛑 | N/A |
-| `insecure-random` | 🔌 | [custom implementation][insecure-random] |
| `max-func-body-length` | 🌟 | [`max-statements`][max-statements] |
| `no-banned-terms` | 🌟 | [`no-caller`][no-caller] & [`no-eval`][no-eval] |
| `no-constant-condition` | 🌟 | [`no-constant-condition`][no-constant-condition] |
@@ -270,39 +269,39 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
[4] Recommended config: `["error", { "terms": ["BUG", "HACK", "FIXME", "LATER", "LATER2", "TODO"], "location": "anywhere" }]`
[5] Does not check class fields.
-[insecure-random]: https://github.com/desktop/desktop/blob/development/eslint-rules/insecure-random.js
-
### Security
-| `tslint-microsoft-contrib` rule | | ESLint rule |
-| ------------------------------- | :-: | -------------------------------------------------- |
-| `no-disable-auto-sanitization` | 🛑 | N/A |
-| `no-document-domain` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
-| `no-http-string` | 🛑 | N/A |
-| `no-inner-html` | 🛑 | N/A |
-| `no-string-based-set-immediate` | 🛑 | N/A |
-| `no-string-based-set-interval` | 🛑 | N/A |
-| `no-string-based-set-timeout` | 🛑 | N/A |
-| `react-iframe-missing-sandbox` | 🛑 | N/A |
-| `react-no-dangerous-html` | 🔌 | [`react/no-danger`] |
-| `non-literal-fs-path` | 🔌 | [`security/detect-non-literal-fs-filename`] |
-| `non-literal-require` | 🔌 | [`security/detect-non-literal-require`] |
-| `possible-timing-attack` | 🔌 | [`security/detect-possible-timing-attacks`] |
+| `tslint-microsoft-contrib` rule | | ESLint rule |
+| ------------------------------- | :-: | ------------------------------------------------------------------------------------------- |
+| `insecure-random` | 🔌 | [`desktop/insecure-random`] or [`@microsoft/sdl/no-insecure-random`] |
+| `no-disable-auto-sanitization` | 🔌 | [`@microsoft/sdl/no-msapp-exec-unsafe`] and [`@microsoft/sdl/no-winjs-html-unsafe`] |
+| `no-document-domain` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-document-domain`] |
+| `no-http-string` | 🔌 | [`@microsoft/sdl/no-insecure-url`] |
+| `no-inner-html` | 🔌 | [`@microsoft/sdl/no-inner-html`] and [`@microsoft/sdl/no-html-method`] |
+| `no-string-based-set-immediate` | 🌓 | [`@typescript-eslint/no-implied-eval`] |
+| `no-string-based-set-interval` | 🌓 | [`@typescript-eslint/no-implied-eval`] |
+| `no-string-based-set-timeout` | 🌓 | [`@typescript-eslint/no-implied-eval`] |
+| `react-anchor-blank-noopener` | 🔌 | [`react/jsx-no-target-blank`] |
+| `react-iframe-missing-sandbox` | 🔌 | [`@microsoft/sdl/react-iframe-missing-sandbox`] |
+| `react-no-dangerous-html` | 🔌 | [`react/no-danger`] |
+| `non-literal-fs-path` | 🔌 | [`security/detect-non-literal-fs-filename`] |
+| `non-literal-require` | 🔌 | [`security/detect-non-literal-require`] |
+| `possible-timing-attack` | 🔌 | [`security/detect-possible-timing-attacks`] |
### Browser
-| `tslint-microsoft-contrib` rule | | ESLint rule |
-| ----------------------------------- | :-: | -------------------------------------------------- |
-| `jquery-deferred-must-complete` | 🛑 | N/A |
-| `no-backbone-get-set-outside-model` | 🛑 | N/A |
-| `no-cookies` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
-| `no-document-write` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
-| `no-exec-script` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] |
-| `no-jquery-raw-elements` | 🛑 | N/A |
-| `no-unsupported-browser-code` | 🛑 | N/A |
-| `react-this-binding-issue` | 🛑 | N/A |
-| `react-tsx-curly-spacing` | 🔌 | [`react/jsx-curly-spacing`] |
-| `react-unused-props-and-state` | 🌓 | [`react/no-unused-state`] |
+| `tslint-microsoft-contrib` rule | | ESLint rule |
+| ----------------------------------- | :-: | -------------------------------------------------------------------------------------------- |
+| `jquery-deferred-must-complete` | 🛑 | N/A |
+| `no-backbone-get-set-outside-model` | 🛑 | N/A |
+| `no-cookies` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-cookies`] |
+| `no-document-write` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@microsoft/sdl/no-document-write`] |
+| `no-exec-script` | 🌓 | Use [`no-restricted-syntax`][no-restricted-syntax] or [`@typescript-eslint/no-implied-eval`] |
+| `no-jquery-raw-elements` | 🛑 | N/A |
+| `no-unsupported-browser-code` | 🛑 | N/A |
+| `react-this-binding-issue` | 🛑 | N/A |
+| `react-tsx-curly-spacing` | 🔌 | [`react/jsx-curly-spacing`] |
+| `react-unused-props-and-state` | 🌓 | [`react/no-unused-state`] |
### React A11y
@@ -326,7 +325,6 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
| `react-a11y-role` | 🔌 | [`jsx-a11y/aria-role`] |
| `react-a11y-tabindex-no-positive` | 🔌 | [`jsx-a11y/tabindex-no-positive`] |
| `react-a11y-titles` | 🛑 | N/A |
-| `react-anchor-blank-noopener` | 🛑 | N/A |
[1] TSLint rule is more strict
[2] ESLint rule only reports for click handlers
@@ -605,6 +603,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
[`@typescript-eslint/method-signature-style`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/method-signature-style.md
[`@typescript-eslint/no-explicit-any`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-explicit-any.md
[`@typescript-eslint/no-empty-interface`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-empty-interface.md
+[`@typescript-eslint/no-implied-eval`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-implied-eval.md
[`@typescript-eslint/no-inferrable-types`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/no-inferrable-types.md
[`@typescript-eslint/prefer-namespace-keyword`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/prefer-namespace-keyword.md
[`@typescript-eslint/promise-function-async`]: https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/docs/rules/promise-function-async.md
@@ -667,6 +666,7 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
[`react/no-danger`]: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/no-danger.md
[`react/jsx-curly-spacing`]: https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/jsx-curly-spacing.md
+[`react/jsx-no-target-blank`]: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/jsx-no-target-blank.md
[`react/no-unused-state`]: https://github.com/yannickcr/eslint-plugin-react/blob/HEAD/docs/rules/no-unused-state.md
@@ -697,6 +697,19 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
[`jsdoc/require-jsdoc`]: https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-require-jsdoc
[`jsdoc/no-types`]: https://github.com/gajus/eslint-plugin-jsdoc#eslint-plugin-jsdoc-rules-no-types
+
+
+[`@microsoft/sdl/no-cookies`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-cookies.md
+[`@microsoft/sdl/no-document-domain`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-document-domain.md
+[`@microsoft/sdl/no-document-write`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-document-write.md
+[`@microsoft/sdl/no-html-method`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-html-method.md
+[`@microsoft/sdl/no-inner-html`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-inner-html.md
+[`@microsoft/sdl/no-insecure-random`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-insecure-random.md
+[`@microsoft/sdl/no-insecure-url`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-insecure-url.md
+[`@microsoft/sdl/no-msapp-exec-unsafe`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-msapp-exec-unsafe.md
+[`@microsoft/sdl/no-winjs-html-unsafe`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/no-winjs-html-unsafe.md
+[`@microsoft/sdl/react-iframe-missing-sandbox`]: https://github.com/microsoft/eslint-plugin-sdl/blob/main/docs/rules/react-iframe-missing-sandbox.md
+
[`prefer-arrow/prefer-arrow-functions`]: https://github.com/TristonJ/eslint-plugin-prefer-arrow
@@ -710,3 +723,4 @@ Relevant plugins: [`chai-expect-keywords`](https://github.com/gavinaiken/eslint-
[`jsx-a11y/heading-has-content`]: https://github.com/evcohen/eslint-plugin-jsx-a11y/blob/master/docs/rules/heading-has-content.md
[`lodash/chaining`]: https://github.com/wix/eslint-plugin-lodash/blob/master/docs/rules/chaining.md
[`deprecation/deprecation`]: https://github.com/gund/eslint-plugin-deprecation
+[`desktop/insecure-random`]: https://github.com/desktop/desktop/blob/development/eslint-rules/insecure-random.js