Это потрясающе заставляющий задуматься вопрос, и я удивлен, что вы не получили лучших ответов.
Краткое описание
Все, что вы сделали бы для внешнего приложения, а затем еще немного.
Процесс мышления
Если я вас правильно понимаю, то вы задаете вопрос, который очень задают себе немногие разработчики. У большинства компаний плохая защита в глубине, и как только злоумышленник входит, он входит. Очевидно, вы хотите поднять его на уровень.
Итак, о какой атаке мы думаем?
Если я злоумышленник и нападаю на ваше интранет-приложение, значит, я каким-то образом получил доступ к вашей сети. Это может быть не так сложно, как кажется - я мог бы попытаться использовать фишинг (нацеливание электронной почты на людей в вашей организации, содержащее либо вредоносные вложения, либо ссылки на сайты, которые устанавливают вредоносное ПО), чтобы установить троян на внутреннюю машину.
Как только я это сделаю (и получу контроль над внутренним ПК), я попробую все те же атаки, что и любые интернет-приложения.
Однако это еще не конец истории. У меня есть больше вариантов: если у меня есть один из компьютеров вашего пользователя, то я вполне могу использовать кейлоггер для сбора имен пользователей и паролей, а также просматривать всю вашу электронную почту на предмет имен и телефонных номеров.
Вооружившись этим, я могу войти в ваше приложение напрямую. Я даже могу узнать имя пользователя / пароль администратора. Даже если я этого не сделаю, список имен и номеров телефонов, а также ощущение компании lingo дает мне хороший шанс на социальную разработку моего пути к более широкому доступу в вашей компании.
Рекомендации
- Прежде всего, перед всеми техническими решениями: ОБУЧАЙТЕ СВОИХ ПОЛЬЗОВАТЕЛЕЙ БЕЗОПАСНОСТЬЮ
Общие ответы по защите веб-приложения:
- Использовать многофакторную аутентификацию
- например. имя пользователя / пароль и какое-то устройство с псевдослучайными числами.
- Очистить все ваши входные данные.
- для защиты от межсайтовых скриптов и внедрения SQL.
- Использовать SSL (иначе известный как HTTPS).
- это очень сложно настроить (РЕДАКТИРОВАТЬ: на самом деле это улучшается), но это обеспечивает гораздо лучшую безопасность.
- Придерживайтесь принципов "Разделение обязанностей" и "Наименее привилегия"
- Другими словами, гарантируя, что все пользователи имеют только те разрешения, которые им необходимы для выполнения своей работы (и никто другой), вы гарантируете, что у них есть абсолютная минимальная способность наносить ущерб.