Exemple #1
0
 def test_build_all(self, build_downloader: mock.MagicMock, build_batcher: mock.MagicMock,
                    build_analyzer: mock.MagicMock, mock_print: mock.MagicMock):
     """Verify that the top-level build function executes each individual builder."""
     build.build(self._tempdir, downloader=True)
     build_analyzer.assert_called_once()
     build_batcher.assert_called_once()
     build_downloader.assert_called_once()
     mock_print.assert_not_called()
    def test_build_all(self, mock_pip: mock.MagicMock,
                       mock_print: mock.MagicMock):
        """Verify list of bundled files for each Lambda function."""
        build.build(self._tempdir, downloader=True)

        self._verify_filenames(
            os.path.join(self._tempdir, 'lambda_analyzer.zip'),
            {
                # Python source files
                'lambda_functions/__init__.py',
                'lambda_functions/analyzer/__init__.py',
                'lambda_functions/analyzer/analyzer_aws_lib.py',
                'lambda_functions/analyzer/binary_info.py',
                'lambda_functions/analyzer/common.py',
                'lambda_functions/analyzer/file_hash.py',
                'lambda_functions/analyzer/main.py',
                'lambda_functions/analyzer/yara_analyzer.py',

                # Compiled rules file
                'custom-signatures/yara/custom-rules.yar',

                # Natively compiled binaries
                'thor-linux-64',
                'upx',

                # Licenses
                'UPX_LICENSE',
                'docs/License_Acknowledgement.txt',
            },
            subset=True)

        self._verify_filenames(
            os.path.join(self._tempdir, 'lambda_downloader.zip'),
            {
                # Python source files
                'lambda_functions/',
                'lambda_functions/__init__.py',
                'lambda_functions/downloader/',
                'lambda_functions/downloader/__init__.py',
                'lambda_functions/downloader/main.py',

                # Libraries (mock install)
                'cbapi-python.git/',
                'prompt-toolkit/',
                'python-dateutil/'
            })

        mock_pip.assert_called_once()
        mock_print.assert_called()
Exemple #3
0
 def test_build_all(self, mock_print):
     """Verify that the top-level build function executes without error."""
     build.build(self._tempdir)
     self.assertEqual(3, mock_print.call_count)
Exemple #4
0
    def test_build_all(self, mock_pip: mock.MagicMock,
                       mock_print: mock.MagicMock):
        """Verify list of bundled files for each Lambda function."""
        build.build(self._tempdir, downloader=True)

        self._verify_filenames(
            os.path.join(self._tempdir, 'lambda_analyzer.zip'),
            {
                # Python source files
                'lambda_functions/__init__.py',
                'lambda_functions/analyzer/__init__.py',
                'lambda_functions/analyzer/analyzer_aws_lib.py',
                'lambda_functions/analyzer/binary_info.py',
                'lambda_functions/analyzer/common.py',
                'lambda_functions/analyzer/file_hash.py',
                'lambda_functions/analyzer/main.py',
                'lambda_functions/analyzer/yara_analyzer.py',

                # Compiled rules file
                'lambda_functions/analyzer/compiled_yara_rules.bin',

                # Natively compiled binaries
                'cryptography/',
                'libarchive.so.13',
                'libs/',
                'libs/bayshore_file_type_detect.o',
                'libs/bayshore_file_type_detect.yara',
                'libs/bayshore_yara_wrapper.o',
                'libs/bzl.o',
                'libs/pdf_parser.o',
                'libs/zl.o',
                'libfontconfig.so.1',
                'libfreetype.so.6',
                'libjbig.so.2.0',
                'libjpeg.so.62',
                'liblcms2.so.2',
                'liblzma.so.5',
                'liblzo2.so.2',
                'libopenjpeg.so.2',
                'libpcrecpp.so.0',
                'libpoppler.so.46',
                'libpng12.so.0',
                'libstdc++.so.6',
                'libtiff.so.5',
                'libyara.so.3',
                'libxml2.so.2',
                'pdftotext',
                'upx',
                'yara.so',
                'yextend',

                # Licenses
                'UPX_LICENSE',
                'YARA_LICENSE',
                'YARA_PYTHON_LICENSE',
                'YEXTEND_LICENSE'
            },
            subset=True)

        self._verify_filenames(
            os.path.join(self._tempdir, 'lambda_downloader.zip'),
            {
                # Python source files
                'lambda_functions/',
                'lambda_functions/__init__.py',
                'lambda_functions/downloader/',
                'lambda_functions/downloader/__init__.py',
                'lambda_functions/downloader/main.py',

                # Libraries (mock install)
                'cbapi/',
                'prompt-toolkit/',
                'python-dateutil/'
            },
        )

        mock_pip.assert_called_once()
        mock_print.assert_called()