Ilze Auzina

27 papers B 8Journal 3Unranked 15
YearRankTypeTitle / Venue / Authors
2024 conf
LREC/COLING
Roberts Dargis, Arturs Znotins, Ilze Auzina, Baiba Saulite, Sanita Reinsone, Raivis Dejus, Antra Klavinska, Normunds Gruzitis
2024 J jnl
Balt. J. Mod. Comput.
Ilze Auzina, Normunds Gruzitis, Roberts Dargis, Guna Rabante-Busa, Didzis Gosko, Janis Vempers, Raivis Kivkucans, Arturs Znotins
2022 J jnl
Balt. J. Mod. Comput.
Roberts Dargis, Ilze Auzina, Inga Kaija, Kristine Levane-Petrova, Kristine Pokratniece
2022 B conf
LREC
Roberts Dargis, Ilze Auzina, Inga Kaija, Kristine Levane-Petrova, Kristine Pokratniece
2022 ch.
European Language Equality
Inguna Skadina, Ilze Auzina, Baiba Valkovska, Normunds Gruzitis
2022 J jnl
Balt. J. Mod. Comput.
Inguna Skadina, Baiba Saulite, Ilze Auzina, Normunds Gruzitis, Andrejs Vasiljevs, Raivis Skadins, Marcis Pinnis
2022 B conf
LREC
Baiba Saulite, Roberts Dargis, Normunds Gruzitis, Ilze Auzina, Kristine Levane-Petrova, Lauma Pretkalnina, Laura Rituma, Peteris Paikens, Arturs Znotins, Laine Strankale, Kristine Pokratniece, Ilmars Poikans, Guntis Barzdins, Inguna Skadina, Anda Baklane, Valdis Saulespurens, Janis Ziedins
2020 conf
DHN
Inguna Skadina, Ilze Auzina, Normunds Gruzitis, Arturs Znotins
2020 conf
Baltic HLT
Roberts Dargis, Normunds Gruzitis, Ilze Auzina, Kaspars Stepanovs
2020 conf
Baltic HLT
Roberts Dargis, Ilze Auzina, Kristine Levane-Petrova, Inga Kaija
2020 B conf
LREC
Roberts Dargis, Peteris Paikens, Normunds Gruzitis, Ilze Auzina, Agate Akmane
2020 B conf
LREC
Roberts Dargis, Ilze Auzina, Kristine Levane-Petrova, Inga Kaija
2019 conf
CLARIN Annual Conference
Inga Kaija, Ilze Auzina
2018 B conf
LREC
Roberts Dargis, Ilze Auzina, Kristine Levane-Petrova
2018 conf
Baltic HLT
Roberts Dargis, Ilze Auzina
2016 B conf
LREC
Marcis Pinnis, Askars Salimbajevs, Ilze Auzina
2016 conf
Baltic HLT
Ilze Auzina, Kristine Levane-Petrova, Guna Rabante-Busa, Roberts Dargis, Antonio Fábregas
2016 conf
Baltic HLT
Inguna Skadina, Ilze Auzina, Daiga Deksne, Raivis Skadins, Andrejs Vasiljevs, Madara Gailuna, Ieva Portnaja
2016 conf
Baltic HLT
Roberts Dargis, Guna Rabante-Busa, Ilze Auzina, Sergejs Kruks
2016 B conf
LREC
Andrejs Spektors, Ilze Auzina, Roberts Dargis, Normunds Gruzitis, Peteris Paikens, Lauma Pretkalnina, Laura Rituma, Baiba Saulite
2014 conf
Baltic HLT
Ilze Auzina, Marcis Pinnis, Roberts Dargis
2014 B conf
LREC
Marcis Pinnis, Ilze Auzina, Karlis Goba
2014 conf
Baltic HLT
Inguna Skadina, Ilze Auzina, Guntis Barzdins, Raivis Skadins, Andrejs Vasiljevs
2012 conf
Baltic HLT
Peteris Paikens, Ilze Auzina, Ginta Garkaje, Madara Paegle
2010 conf
Baltic HLT
Inguna Skadina, Ilze Auzina, Normunds Gruzitis, Kristine Levane-Petrova, Gunta Nespore, Raivis Skadins, Andrejs Vasiljevs
2010 conf
Baltic HLT
Marcis Pinnis, Ilze Auzina
2010 conf
Baltic HLT
Ilze Auzina
redb/extractors/pe_extractors/pe_sections.py
← Index redb/extractors/pe_extractors/pe_sections.py python
import base64
import hashlib
import inspect
from redb.extractors.enum import Tag
from redb.extractors.pe_extractor import PEExtractor
from redb.models.dataclasses import PESection
from datetime import datetime, timezone
from typing import Any


class PESectionExtractor(PEExtractor):

    def __init__(
        self,
        filepath,
        log,
        exporters=None,
        index_prefix=None,
        elastic_index=None,
        known_benign=False,
        known_malicious=False,
        pe=None,
    ):
        super().__init__(
            filepath,
            log,
            exporters,
            index_prefix,
            elastic_index,
            known_benign,
            known_malicious,
            pe,
        )
        self.elastic_index = self.index_prefix + "-pe_sections"
        self.log.debug(inspect.currentframe().f_code.co_name)

    def tag(self):
        return Tag.PE_SECTION.value

    def _extract_sections(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        sections = []
        for section in self.pe.sections:
            try:
                name = self.process_binary_string(section.Name)
            except Exception as e:
                name = "UnableToDecode"
                self.log.warning(
                    f'Unable to store section Name "{section.Name}" for {self.hash.sha256}'
                    f" exception {e}"
                )
            sec_sha256 = section.get_hash_sha256()
            sec_md5 = section.get_hash_md5()
            # sec_entropy = "%.2f" % section.get_entropy()
            sec_entropy = section.get_entropy()
            pe_section = PESection(
                _id=hashlib.sha256(
                    name.encode()
                ).hexdigest(),  # usecase 8e035beb02a411f8a9e92d4cf184ad34f52bbd0a81a50c222cdd4706e4e45104, all section have same sha256
                section_name=name,
                section_name_b64=base64.b64encode(
                    section.Name.rstrip(b'\x00')
                ).decode(),  # base64.b64decode(b64) to decode
                section_v_addr=section.VirtualAddress,
                section_v_addr_hex=hex(section.VirtualAddress),
                section_v_size=section.Misc_VirtualSize,
                section_size=section.SizeOfRawData,
                section_pointer_to_raw_data=hex(section.PointerToRawData),
                section_md5=sec_md5,
                section_sha256=sec_sha256,
                section_entropy=sec_entropy,
            )
            sections.append(pe_section)
        return sections

    def extract(self):
        self.log.debug(inspect.currentframe().f_code.co_name)
        try:
            sections = self._extract_sections()
            # self.export_to_elastic(sections)  # Let the exporters handle this
            return sections
        except Exception as e:
            self.log.error(f"Error extracting PE sections: {e}")
            return None

    def prepare_export_data(self, exporter_type: str) -> Any:
        if exporter_type == "ElasticsearchExporter":
            return self.extract()
        elif exporter_type == "ClickHouseExporter":
            sections = self.extract()
            if sections is None:
                return None
            
            data = []
            current_time = datetime.now(timezone.utc)
            
            for section in sections:
                data.append([
                    self.sha256,                          # sha256
                    self.md5,                             # md5
                    self.sha1,                            # sha1
                    section.section_name,                 # section_name
                    section.section_name_b64,             # section_name_b64
                    section.section_entropy,              # section_entropy
                    section.section_sha256,               # section_sha256
                    section.section_md5,                  # section_md5
                    section.section_size,                 # section_size
                    section.section_v_addr,               # section_v_addr
                    section.section_v_size,               # section_v_size
                    int(section.section_pointer_to_raw_data, 16),  # section_pointer_to_raw_data - convert from hex
                    current_time                          # analysis_date
                ])
            
            column_names = [
                'sha256', 'md5', 'sha1', 'section_name', 'section_name_b64',
                'section_entropy', 'section_sha256', 'section_md5', 'section_size',
                'section_v_addr', 'section_v_size', 'section_pointer_to_raw_data',
                'analysis_date'
            ]
            
            if not data:
                return None

            column_type_names = [
                'FixedString(64)', 'FixedString(32)', 'FixedString(40)',
                'LowCardinality(String)', 'LowCardinality(String)',
                'Float64', 'FixedString(64)', 'FixedString(32)', 'UInt64',
                'UInt64', 'UInt64', 'UInt64',
                'DateTime64(3, \'UTC\')'
            ]

            return (data, column_names, column_type_names)

    def get_clickhouse_table(self) -> str:
        return "redb_pe_sections"