首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >域名别名是否为黑客提供了安全保障?

域名别名是否为黑客提供了安全保障?
EN

Security用户
提问于 2018-01-17 23:04:05
回答 2查看 233关注 0票数 2

我们有一个由私有API运行的应用程序。我们有一个承载API的服务器,以及一个管理员面板,工作人员可以在其中登录并更改应用程序的内容。API和管理面板运行在同一个web域上。让我们假设域是appname.com,URL是appname.com/apiappname.com/admin

最初,服务器或域上没有公共网页。然而,我们在appname.com/resetpassword添加了一个密码重置页面,以便忘记密码的应用程序用户可以请求密码重置电子邮件。

在我们添加密码重置页面之后,项目负责人(他不是技术人员)开始担心,将密码重置页面放在与API和管理站点相同的域上,可能会使服务器暴露给黑客,否则黑客可能不会注意到该域,因为它没有其他公共页面。他们要求我们将密码重置页面放在另一个域上,这样黑客就不会知道如何找到主域。

这种逻辑对我来说毫无意义,原因有几点:

  1. 我从来没有见过其他人做类似的事情,尽管很难想到直接的相似之处。
  2. 即使站点上没有公共页面,后端的域名也不难猜测。
  3. 如果我们在将来添加一个公共网站,它在逻辑上将位于同一个域,此时该域将不再是一个秘密。
  4. 任何足以突破服务器上的安全措施的黑客都可以通过跟踪从应用程序发送的数据包,轻松找到API,从而找到站点域。

但是,项目负责人坚持认为密码重置页不能位于主域中。我认为最简单的解决方案是设置一个域别名,类似于appname-passwordreset.com,它直接和独占地指向密码重置页面。然而,这会给我们买点什么吗?appname.comappname-passwordreset.com会有相同的IP地址。使用后一个别名是否可以实际防止黑客找到或侵入服务器?

注意:我意识到,另一种选择是只允许用户从应用程序内部请求密码重置电子邮件。然而,密码重置电子邮件必须有一个链接到一个网页,从而使我们回到原来的问题。

EN

回答 2

Security用户

回答已采纳

发布于 2018-01-18 00:32:29

对于攻击者(或安全研究人员或黑客)来说,找出应用程序的API请求的主机名是非常简单的。有多种技术可以用来解决这个问题。

  1. 反编译应用程序并在源中查找主机名。也许你混淆了应用程序和所有的字符串?
  2. MITM他们的设备和您的API之间的通信量,并查看请求。但也许你是用证书钉钉做TLS的?
  3. 被动地嗅一闻交通,看看ClientHello中的SNI值。好的,您可以将SSL库配置为不使用SNI。
  4. 主机名位于已清空发送回的证书中。但我想如果你在做你自己的主机名验证的话,你可以假装。
  5. 当应用程序开始建立连接时,被动地嗅探DNS流量。

此时,您可能会变得愚蠢,使用硬编码的IP或DNSCrypt或其他技术,但攻击者也可以使用根设备并转储应用程序的内存,或者根据发送的流量从IP中找出主机名。

如果隐藏您的主机名是被破坏和不受攻击之间的区别,那么您已经失败了,只是不知道而已。认为隐藏主机名是有用的,这只是让您的项目头陷入一种虚假的安全感。

票数 3
EN

Security用户

发布于 2018-01-18 01:30:54

你的想法对我来说没什么意义。请解释一下,考虑到您的应用程序是由API运行的,即使上面没有公共页面,它的服务器也是公开的。任何攻击者都可以执行MITM攻击来查看应用程序请求数据的位置,因此服务器无论如何都会暴露出来。不管是从服务器上的公共页面,还是在应用程序中,找出API的位置对攻击者来说都不算什么大不了的。如果黑客想要反转引擎,用适当的工具计算API几乎是很简单的(请参阅米特姆代理)。与其将安全性集中在试图隐藏主机名(这是浪费时间)上,不如设计一个只能与适当的身份验证(即OAuth)一起使用的安全API。

票数 0
EN
页面原文内容由Security提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://security.stackexchange.com/questions/177850

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档