Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/amazon-web-services/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon web services AWS上可疑的loadByUsername调用_Amazon Web Services_Spring Boot_Security_Amazon Cloudfront_Amazon Elastic Beanstalk - Fatal编程技术网

Amazon web services AWS上可疑的loadByUsername调用

Amazon web services AWS上可疑的loadByUsername调用,amazon-web-services,spring-boot,security,amazon-cloudfront,amazon-elastic-beanstalk,Amazon Web Services,Spring Boot,Security,Amazon Cloudfront,Amazon Elastic Beanstalk,我在ElasticBeanstalk上部署了Spring启动应用程序。我即将开始测试,所以还没有那么多人知道应用程序url。昨天我在日志文件中发现有人从我的UserDetailsService实现中调用了loadByUsername方法。关键是此时没有任何其他日志。如果该用户尝试登录,我将找到有关登录方法调用和身份验证成功/失败处理程序的信息。所以我假设这个用户使用了一些Spring或Tomcat漏洞。因此有两个问题: 有人怎么可能猜到我的url域或CloudFront url?人们是否使用机器

我在ElasticBeanstalk上部署了Spring启动应用程序。我即将开始测试,所以还没有那么多人知道应用程序url。昨天我在日志文件中发现有人从我的UserDetailsService实现中调用了loadByUsername方法。关键是此时没有任何其他日志。如果该用户尝试登录,我将找到有关登录方法调用和身份验证成功/失败处理程序的信息。所以我假设这个用户使用了一些Spring或Tomcat漏洞。因此有两个问题:

有人怎么可能猜到我的url域或CloudFront url?人们是否使用机器人以暴力方式扫描CloudFront URL? 此人如何在不调用身份验证处理程序的情况下调用loadByUsername方法?春季是否存在已知的漏洞?还是有人注射了恶意软件?如何保护它? 我使用Spring Boot 1.5.8。我想很高兴提到几天前我在日志中发现有人试图调用一些通用名称,如phpMyAdmin、/api/admin、wp-admin等等。在所有情况下,服务器都返回404

public class UserDetailsManager implements UserDetailsService  {

    @Autowired
    private static final Logger LOG;

    @Autowired
    private UserDao userDao;

    @Override
    public UserDetails loadUserByUsername(String login) throws UsernameNotFoundException {
        LOG.debug("Load by username: {}", login);
        return userDao.getByLogin(login).map(user -> new CustomUser(user.getUsername(), user.getPassword()))
                .orElseThrow(() -> new UsernameNotFoundException("User not found for login " + login));
    }

}
编辑: 我发现,如果用户不使用Spring安全性/登录点进行身份验证,而是使用基本身份验证、Spring ommits身份验证处理程序调用任何受保护的url。这就是为什么没有任何其他日志。 在nginx日志中,我发现来自此用户代理的调用:https://github.com/robertdavidgraham/masscan. 所以现在唯一的问题是一些随机的人是如何知道我的网站的?是否有新创建的Cloudfront URL的注册表

所以现在唯一的问题是一些随机的人是如何知道我的网站的?是否有新创建的Cloudfront URL的注册表

没有,但是Amazon使用的地址范围是众所周知的,如果您访问了由用户代理识别的GitHub项目,您将看到以下内容:

TCP端口扫描程序,异步发送SYN数据包,在5分钟内扫描整个互联网

换句话说,一些脚本小子正在探索你的网站

您真正的问题应该是我的站点上的哪个控制器调用了此服务方法,以及哪个URL触发了该控制器?但这是只有你才能回答的问题,因为只有你知道网站的结构

然而,还有一件事:

我发现,如果用户不使用Spring安全性/登录点进行身份验证,而是使用基本身份验证、Spring ommits身份验证处理程序调用任何受保护的url


身份验证只是保护站点安全的第一步。授权是第二个也是更重要的部分,看起来您还没有实现它。

我假设该用户使用了一些Spring或Tomcat漏洞:可能,但非常小,您应该先查看自己的代码。如果您有访问日志,您应该能够将对此服务方法的调用与进行调用的用户的IP地址关联起来。我在后期编辑中找到了此应用程序行为异常的原因。我从日志中知道该用户的IP。但是我能用这些知识做些什么呢?身份验证只是保护站点安全的第一步。授权是第二个也是更重要的部分,看起来您还没有实现它。我已经两个都有了。问题是,在配置中,我允许调用http基本身份验证。所以当我关掉它时,问题就解决了。没有,但是亚马逊使用的地址范围是众所周知的,所以有人用ip随机扫描所有网站。我以为有人想破坏我的申请。谢谢你的回答。