Everything Cloud? Das Event für die Oracle-Community

Everything Cloud? AOUG AK 23 – Die Plattform für die Oracle-Community

AOUG Anwenderkonferenz 2023!

Die AOUG Anwenderkonferenz findet auch dieses Jahr (12-13 Juni) im Austria Trend Hotel Savoyen Vienna statt. Sie ist die ideale Plattform, um sich über aktuelle Trends, Technologien und Lösungen im Oracle Technologie-Umfeld zu informieren.

Nur bei der Anwenderkonferenz:

  • Gibt es die einzigartige Möglichkeit aktuelle Herausforderungen mit einem Oracle-Partner zu besprechen
  • Gedanken und Ideen mit der Community auszutauschen
  • Neueste Technologien zu erforschen
  • Das Wissen anderer Anwender:innen nutzen

Das Publikum ist ein Querschnitt der Branche: Techniker, IT-Leiter, Oracle-Partner, Hersteller und Anbieter von Hard-und Software-Lösungen.

DIE Plattform für die Oracle Community

Die AOUG Anwenderkonferenz ist eine jährliche Veranstaltung, die sich an alle Oracle-Anwender:innen richtet. Hier kommen Expert:innen und Praktiker:innen zusammen, um ihre Erfahrungen und Ideen auszutauschen, neue Trends zu diskutieren und sich über die neuesten Entwicklungen bei Oracle-Produkten zu informieren. Sie bietet eine hervorragende Gelegenheit, sich mit Kolleg:innen aus der Branche zu vernetzen und wertvolle Kontakte zu knüpfen. Hier kann man von den Best Practices anderer Unternehmen lernen und wertvolle Einblicke in neue Technologien gewinnen.

Anwenderkonferenz 23 – “Everything Cloud? – Alles in die Cloud oder vielleicht doch nicht?

Das Spektrum der Vorträge reicht dieses Jahr von den Core Datenbank Themen, über On-Premise und Cloud Infrastrukturen, bis hin zu aktuellen Development Themen. Die Keynote von Dominic Giles, Master Product Manager für die Oracle Datenbank beschäftigt sich mit der Frage: “ Oracle Database: What’s next“. Weiters dürfen wir Mike Dietrich mit einem On-Hands Workshop (Upgrade and migrate to Oracle 23c) und zwei Vorträgen, sowie mehrere Oracle Anwendervorträge aus dem Cloud Umfeld, bei der Konferenz begrüßen.

Auch DBConcepts ist dieses Jahr mit zwei Vorträgen dabei. Roland Brandfellner hält einen Vortag über Automatisches Testen von APEX Applikationen und Andreas Schlögl ist mit dem Thema “cost based or expansion: a troubleshooting case study” dabei.

In 1 ½ Tagen mit insgesamt 36 Vorträgen kann man sich informieren, Gedanken, Herausforderungen und Ideen innerhalb der Community besprechen.

Am 12. Juni abends, werden alle angemeldeten Konferenzteilnehmer:innen zum mittlerweile traditionellen AOUG Bowling Abend mit anschließendem Abendessen in der Luftburg eingeladen.

Falls Sie noch nicht angemeldet sind –> geht es hier zur Anmeldung!

 

Routineaufgaben effizient automatisieren: Erfahrungsbericht und Tipps

Wie so oft in vielen Unternehmensabteilungen, fließt auch bei uns die meiste Zeit in die Erledigung von Routineaufgaben. Komplexe IT-Infrastrukturen und stetig steigende Sicherheitsanforderungen gehören zu unserem Alltag.  Mit der Zunahme von  Mitarbeiter:innen steigt automatisch auch die Anzahl der (mobilen) Endgeräte. Um den Höchstmaß an Datensicherheit zu garantieren, müssen diese stets mit der richtigen Software ausgestattet werden. Abgesehen davon, kommen konstant immer neuere Gerätetypen und komplizierte Einzellösungen hinzu.

Wie wir diesen Herausforderungen begegnen? Seit mittlerweile zwei Jahren setzen wir erfolgreich unternehmensweit auf die modulbasierten “All-in-One-Lösung” für Client Verwaltung von baramundi.

Mit dem Unified Endpoint Management können wir alle Gerätetypen gemeinsam und mit den gleichen Mechanismen managen. Wir haben eine Bedienoberfläche und eine gemeinsame Struktur über alle Plattformen und eine Datenbank.

Routineaufgaben, wie zum Beispiel Installationen und Patch-Management können wir easy automatisieren. Nebenbei setzen wir einheitliche Sicherheitsstandards und können Inventardaten applikationsübergreifend im gesamten Unternehmen nutzen.

Die Zufriedenheit unserer Kunden, in dem Fall Kolleg:innen, gibt uns recht. Früher musste für jede (individuelle) Softwareinstallation an einem Endgerät ein Ticket erstellt werden. Danach hat ein IT-Administrator physisch die Softwareinstallation übernommen. Jetzt können unsere Kolleg:innen eigenständig, benötigte und freigegebene Applikationen selbst rund um die Uhr über den “baramundi Kiosk” selbst installieren.

Auch der “Security-Aspekt” wird durch automatisch eingespielte Updates abgedeckt. Die Software bleibt immer auf dem neuesten Stand und IT-Systeme werden effektiv abgesichert. Hackerangriffen durch veraltete Software wird so erfolgreich ein Riegel vorgeschoben.

Eine weitere fantastische Ergänzung: Mit nur einem Klick im Dashboard haben wir einen umfassenden Überblick über den Zustand unseres gesamten Netzwerks.

Und weil wir so begeistert sind, haben wir eine Partnerschaft mit baramundi geschlossen, um in Zukunft auch unsere HW-Lösungen bei unseren Kunden noch sicherer zu gestallten.

Warum sind Open Source Datenbankmanagementsysteme (DBMS) beliebter als kommerzielle Anbieter?

Warum sind Open Source DBMS beliebter als kommerzielle Anbieter?

Original Blogbeitrag von Simon Riggs aus dem Englischen übersetzt (mit freundlicher Genehmigung von EnterpriseDB)

Die Beliebtheit von Open-Source-Datenbankmanagementlösungen wie Postgres ist in den vergangenen Jahren enorm gestiegen. Postgres konkurriert nicht nur mit den großen kommerziellen Anbietern, vielmehr hat sie diese mittlerweile sogar überholt. Laut einer Umfrage erwarten 80 Prozent der IT-Führungskräfte eine gesteigerte Nutzung von Open-Source-Software für neue Technologien, einschließlich Ihrer DBMS. Zunehmende Migrationen von Oracle-Datenbanken und wachsende Wertschätzung für die Leistungsfähigkeit auch in Branchen, die diesen Projekten früher skeptisch gegenüberstanden, bestätigen diesen Trend. Warum? Dafür gibt es eine Vielzahl von Gründen, die alle mit den Modernisierungs-Anforderungen sowie mit der digitalen Transformation zu tun haben, die große und kleine Unternehmen umtreibt. Die wichtigere Frage lautet „Warum sollte das für Sie wichtig sein?“

Befreien Sie sich von unflexiblen Datenbankbeschränkungen

Einer der Hauptgründe für die Abkehr von kommerziellen Alt-Datenbanken ist die Einschränkung der Gestaltungsmöglichkeiten verbunden mit dem Gefühl, dass dynamische Visionen von inflexiblen Datenbanken nicht umsetzbar sind.
Diese Frustration äußert sich unterschiedlich: Vor allem aber bei dem Thema Lizenzen. Kommerzielle Datenbanklizenzen sind in erster Linie darauf ausgelegt, Unternehmen an den gewählten Lösungsanbieter zu binden. Diese Vereinbarung schränkt sowohl bei der Wahl der Tools und Lösungen, die, in die Datenbank integriert werden, als auch wie die Architektur aufgebaut wird, ein – und beeinflusst somit das Endergebnis.
Zudem können sich Unternehmen aufgrund Lizenz-Preiserhöhungen und starren Beschränkungen in ihrer Transformation und Innovationsfähigkeit beeinträchtigt fühlen.

Bei Datenbanken wie Postgres ist dies jedoch nicht der Fall. Open Source Datenbanken sind keine kommerziellen Unternehmen und haben daher keinen Anreiz Tools, die ein Unternehmen in seinen Technologie-Stack integrieren möchte, einzuschränken. Denn weder Postgres noch eine andere Open Source DBMS ist an der Kontrolle der Daten noch die daraus erzielten Vorteile interessiert. Wenn Open-Source-Datenbanken so unflexibel und kontrollierend wären, hätten sie nie das innovative Potenzial erreicht, das sie so beliebt macht.

Die Postgres-Gemeinschaft ist voll von Gründer:innen, Expert:innen, Evangelist:innen, Entwickler:innen und alltäglichen Nutzer:innen, die ständig die Grenzen dessen ausloten, was das DBMS leisten kann. Die Flexibilität der Datenbank ermöglicht jedem Mitglied der Gemeinschaft innovativ zu sein. Und jede einzelne Innovation fördert wiederum alle Mitglieder. Ganz nach dem Motto: „Eine steigende Flut hebt alle Boote.“

Nutzen Sie die Macht der Open-Source-Gemeinschaft

Man kann gar nicht genug betonen, wie wichtig der Gemeinschaftssinn für die Popularität von Open Source ist. Eines der deutlichsten Beispiele dafür ist die Unterstützung und das Fachwissen, das ein solches Netzwerk bietet.
Kommerzielle Datenbanken weisen oft darauf hin, dass sie mit wichtigen Open-Source-Lösungen wie Postgres oder Linux kompatibel sind. Das mag zwar stimmen, aber Kompatibilität bedeutet nicht automatisch, dass das Support-Team Ihres Anbieters Ihnen helfen kann, wenn Ihr integriertes Postgres ein Problem hat. Am Ende des Tages wird sich der Support eines Datenbankanbieters hauptsächlich auf die Funktionalität seiner Datenbank konzentrieren und nicht auf die Lösung, die Sie zu integrieren versuchen. Dem Gegenüber steht die Open-Source-Gemeinschaft, die immer bereit ist Ressourcen zur Verfügung zu stellen, um selbst die obskursten Fehler zu beheben, einzigartige Probleme zu erforschen und zusammenzuarbeiten, um dabei die Messlatte immer höher zu legen.
Es ist eher unwahrscheinlich, dass Sie eine so schnelle Support-Infrastruktur, wie die Open Source Gemeinschaft finden, die hinter Postgres steht. Diejenigen, die Sie bei Open Source unterstützen, sind nicht nur darauf bedacht, dass Sie Ihre Lizenzen erneuern. Nein, vielmehr verkörpern die Bedeutung des Wortes Support.

Machen Sie das Beste aus Ihren Ressourcen

Marc Linster, der CTO von EDB, hat eine Lieblingsweisheit, wenn es um Open-Source-DBMS geht: „Die Leute kommen wegen der Einsparungen, aber sie bleiben wegen der Innovation.“ Wir glauben, dass diese beiden Kernpunkte untrennbar miteinander verbunden sind.
Beginnen wir mit den Einsparungen. Einer der häufigsten Kritikpunkte an kommerziellen Datenbanken ist, dass angesichts ihrer Einschränkungen die Kosten – die bei jeder Erneuerung immer höher zu werden scheinen – die angebotenen Ergebnisse einfach nicht rechtfertigen. Sie zahlen nicht nur für Tools, die Sie nie verwenden, sondern auch für das Privileg, dass Ihnen gesagt wird, dass einige Tools, die Sie verwenden möchten, nicht zur Verfügung stehen.

Für Unternehmen, die auf Datenbanken wie Postgres zurückgreifen, steht eines oft im Vordergrund – sie sind kostenlos! Sogar Unternehmen, die sich für die Investition in spezialisierte Datenbankpartner wie EDB entscheiden, berichten oft von massiven Einsparungen im Vergleich zu ihren früheren Lizenzen. Einfach weil sie keine Ausgaben für internen Support oder Datenbankadministrationsteams tätigen müssen. Aber wie bei allen guten Investitionen geht der Wert von Open-Source-DBMS über die bloße Kostenersparnis hinaus. Jeder Dollar, den ein Unternehmen nicht für eine teure Datenbank ausgibt, die seine digitale Transformation nicht wirklich unterstützt, kann nun in Modernisierungsinitiativen fließen, die das Unternehmen in eine branchenführende Position bringt.
Jede Sekunde, die DevOps- und Architekturteams nicht mit der Navigation in, einer für Unternehmensziele ungeeigneten Infrastruktur, verbringen müssen, kann in die Innovation und Weiterentwicklung Ihrer Anwendungen investiert werden. Jede Ressource, die Ihnen vorher keinen Nutzen gebracht hat, steht jetzt zur freien Verfügung. So können Sie nicht nur konkurrieren, sondern haben auch das Potenzial, an der Spitze des Feldes zu stehen.

Digitale Innovation mit Open-Source-DBMS vorantreiben

Letztlich ist die Antwort auf die Frage, warum Open-Source-DBMS beliebter sind als kommerzielle Anbieter, ganz einfach: Weil sie sich als bessere Verbündete für Unternehmen erwiesen haben, die in Modernisierung und Weiterentwicklung investieren.
Mit ihrer Flexibilität, ihrem Innovationspotenzial, ihrer robusten Community und ihrer Kosteneffizienz übernehmen Open-Source-Datenbanken wie Postgres die Führung in einer Ära, die von der digitalen Transformation geprägt ist und alle Branchen betrifft.
Und die Antwort auf unsere zweite Frage: „Warum sollte das für Sie wichtig sein?“ In einer sich ständig weiterentwickelnden Welt ist es schon frustrierend genug, mit Trends und Entwicklungen, die Ihre Konkurrenten aufgreifen, Schritt halten zu wollen. Datenbanklösungen wie Posgtreis, verschaffen Ihnen nicht nur Flexibilität und Freiheit im Wettbewerb, sie ermöglichen in jeder Hinsicht erfolgreich zu sein.

Oracle APEX: HTML Tags bei Substitution Syntax

Oracle APEX: HTML Tags bei Substitution Syntax

In Oracle APEX können Page und Application Items auf mehrere Arten verwendet werden. Mittels Bind-Syntax (:PXXX_ITEM) etwa in SQL oder PL/SQL Ausdrücken oder mittels Substitution-Syntax in Texten. Das bedeutet wir können beispielsweise in einem Page Process ein Hidden Page Item mit einem Wert versorgen, wie der Erfolgsmeldung eines Funktionsaufrufs, und dieses dann per Substitution-Syntax als Erfolgsmeldung ausgeben lassen (siehe folgender Screenshot).

Blogbeitrag:Oracle APEX

Wenn nun HTML-Tags in dem Rückgabewert sind, dann werden diese escaped und damit im Klartext angezeigt, was das folgende Verhalten verursacht.

Blogbeitrag:Oracle APEX

Leider gibt es keine offensichtliche deklarative Möglichkeit, dieses Verhalten zu unterbinden. HTML-Tags werden bei der Verwendung der Substitution Syntax aus Sicherheitsgründen (Stichwort XSS – Cross Site Scripting) immer escaped. Man kann allerdings in der Substition-Syntax Zusätze wie !RAW verwenden, wodurch sich das Escape Verhalten beeinflussen lässt. Der !RAW Zusatz zum Beispiel bewirkt, dass der Text as-is, also exakt so wie er gespeichert ist ausgegeben wird (VORSICHT: Bei Texten über die man keine 100%ige Kontrolle hat, weil sie z.B. durch User Eingaben entstehen ist das eine massive Sicherheitslücke in Bezug auf Cross Site Scripting!!!). Die Zusätze bestehen immer aus einem ! und einem vordefinierten Filterbegriff welche direkt VOR dem Punkt am Ende ergänzt, also z.B. &PXXX_ITEM!RAW. Wenn wir also die oben gezeigte Logik auf folgenden Aufruf anpassen

Blogbeitrag:Oracle APEX

 

Abgesehen von RAW gibt es lt. Doku noch folgende Optionen:

  • HTML: escaped HTML-reservierte Zeichen (ident zur Funktion HTML im Package APEX_ESCAPE)
  • ATTR: escaped Zeichen, welche für HTML-Attribute reserviert sind (ident zur Funktion HTML_ATTRIBUTE im Package APEX_ESCAPE)
  • JS: escaped Zeichen, die im Javascript Kontext reserviert sind (ident zur Funktion JS_LITERAL im Package APEX_ESCAPE)
  • STRIPHTML: entfernt alle HTML-Tags aus dem Wert und escaped alle HTML-reservierten Zeichen

Informationen dazu findet ihr hier.

Network Encryption in Oracle

Today I want to share with you one of my security projects which Iwas working on at DBConcepts GmbH.

One of the topics was the encryption of Oracle’s Network Traffic.

The purpose of a secure cryptosystem is to convert plaintext data into unintelligible ciphertext based on a key, in such a way that it is very hard (computationally infeasible) to convert ciphertext back into its corresponding plaintext without knowledge of the correct key.

The setup is as followed:

A high availablity setup using dataguard with a primary and standby database 19c EE Edition. Enterprise Manager Cloud Control 13c, a recovery catalog database and a application server corresponding to each database server are also in the IT Infrastructure and to be secured.

The task is as follows:

  • the secure communication between the application server to the database server
  • the encryption of Dataguard logshipping from the primary to the standby database
  • the encryption of network traffic from the database hosts to the recovery catalog
  • the encryption of JDBC-thin clients connecting to the database

I want to give you a quick overview about the possibilities which oracle offers and how unsecure a not encrypted communication is.

First, there are two encryption options which oracle provides:

  • Oracle’s Native Network Encryption (using TCP Port 1521)
  • TLS/SSL Encryption Standard (using custom TCPS Port f.e. 1522)

Oracle Database 19c supports the usage of a combination of those encryption options.

Let’s get into action:

I did a tcpdump from our monitoring host where an oracle client is installed to connect to a 19c database. It sends select statements to gather information for specific metrics.The tcpdump listens to all outgoing connections with the target database specified as the destination.

(Due to privacy policies hostnames and ip adresses are changed)

The result without a secure communication, which is the default setup for all database installations:

[root@<monitoring01> ~]# tcpdump -i eth0 dst <target db ip adress> -A -v

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes




…

<start of packet>

11:12:34.455642 IP (tos 0x0, ttl 64, id 62432, offset 0, flags [DF], proto TCP (6), length 1161)

    <monitoring01>.30585 > <target db ip adress>.ncube-lm: Flags [P.], cksum 0x5599 (incorrect -> 0xf31b), seq 1684:2793, ack 2135, win 501, options [nop,nop,TS val 3707091369 ecr 1327380418], length 1109

E.....@.@..p

3.



zjfwy... /9.&......U......

................................................................................................................................................@select replace(WAIT_CLASS,'/','') WAIT_CLASS,ROUND(FG,2) FG,ROUN@D(BG,2) FG_AND_BG,DBTIME,to_char(end_time,'yyyy-mm-dd hh24:mi:ss@') end_time from (

select sw.wait_class,wc.END_TIME, wc.WAIT_CLA@SS#, (wc.TIME_WAITED_FG)/(wc.INTSIZE_CSEC/1) fg, (wc.TIME_WAITED@)/(wc.INTSIZE_CSEC/1) bg, 0 dbtime

from V$WAITCLASSMETRIC WC,V$@SYSTEM_WAIT_CLASS SW

where WC.WAIT_CLASS#=SW.WAIT_CLASS#

and wai@t_class!='Idle'

union

select 'CPU',FG.END_TIME, -1, FG.value/100@, BG.value/100, DBTIME.value from V$SYSMETRIC FG, V$SYSMETRIC BG@, V$SYSMETRIC DBTIME

where BG.METRIC_NAME = 'Background CPU Usag@e Per Sec'

and BG.GROUP_ID = 2

and FG.METRIC_NAME = 'CPU Usage P@er Sec'

and FG.GROUP_ID = 2

and DBTIME.METRIC_NAME = 'Average Ac@tive Sessions'

and DBTIME.GROUP_ID = 2

and BG.END_TIME = FG.END_3TIME

and FG.END_TIME = DBTIME.END_TIME

order by 1)

.....................................................

<End of packet>

11:12:34.509827 IP (tos 0x0, ttl 64, id 62433, offset 0, flags [DF], proto TCP (6), length 52)

…v

As you see this is pretty scary. Every SQL-Statement and every response from the database is sent over the network in plaintext. In terms of privary and security Data modification attacks and replay attacks are possible.

Examples:

  • Intercepting a $100 bank deposit, changing the amount to $10,000, and retransmitting the higher amount is a data modification attack.
  • Repetitively retransmitting an entire set of valid data is a replay attack, such as intercepting a $100 bank withdrawal and retransmitting it ten times, thereby receiving $1,000.

This is were encryption comes to place to secure your company and enviroment against unauthorized parties intercepting data in transit.

After the implementation of security and encryption, this is the final result:

There is no plain text send over the network, only ciphertext !

[root@<monitoring01> ~]# tcpdump -i eth0 dst <target db ip adress> -A -v

tcpdump: listening on eth0, link-type EN10MB (Ethernet), capture size 65535 bytes



<start of packet>

11:23:46.582209 IP (tos 0x0, ttl 64, id 3746, offset 0, flags [DF], proto TCP (6), length 696)

<monitoring01>.59236 > <target db ip adress>.ssh: Flags [P.], cksum 0x53c8 (incorrect -> 0xb685), seq 1633:2277, ack 3158, win 130, options [nop,nop,TS val 3707763496 ecr 1328052548], length 644

E.....@.@...

3.



zjf.d..............S......

...(O(yD...U

J3R.Ok.J._.W/....ZpZ

*.:/..d.#.......Bl.&.Z5a.3.....B.....m.S....U..NtS.......y..x......*>.b....$...^ij........Z6..KPK......~v\.WvHm.6.$&9.%;.x..x#a.:..5.... .X=[M...?......xv3i&(.|.-+.p.~.n...i.J.wW...qS"d....Z...........eY1.L..V..F5..(..E.O...'.os.

Y.xIG8......K....5rh.F@..D=..~............].U.Fi..7.u......e..y/..C'..... |...{o_..6b>`..}.X.f...H..K=`v.>

.....i.....B ..d*os.h&.....:....W.G....C.s...2.V..HWA(o..e ....$x.....|. ....Kwz.....:p.Nz.Aqz..5..+V+dtria..lv7T..k.n..5E.....



<end of packet>

11:23:46.582899

…v

Hardening the systems and implementing security features is a must !

 

to be continued …

Wie Sie sich vor Hackerangriffen schützen können | Unsere 3 Tipps

Die Schlagzeilen von Hackerangriffen brechen nicht ab. Allein 2022 zierten diverse Cyberattacken von Unternehmen die heimischen Schlagzeilen. Ein Beispiel: Die im November gehackte Webseite von Hofer Reisen, ein Teil der Verkehrsbüro-Gruppe zu der unter anderem die Austria Trend Hotels, Ruefa-Reisebüros, sowie in Kitzbühel ansässige Eurotours gehören, wurde in diversen Tageszeitungen (Krone, Kurier, etc.) erwähnt.

Auch das oberösterreichische Unternehmen Rotax war im August 2022, aufgrund einer großangelegten Cyberattacke auf den Mutterkonzern Bombardier Recretional Product (BRP) in Kanada gezwungen Teile der Produktion auszusetzen. BRP bestätigte, dass eine Schadsoftware eingeschleust wurde.

Der wohl weit überwiegende Teil von Hackerangriffen erfolgt durch Phishing und Social Engineering Attacken. Laut einer Umfrage von Statista wurden 2022 mehr als 50 Prozent aller befragten österreichischen Unternehmen mit Pishing Emails attackiert.

Die Cyberkriminellen machen auch vor Krankenhäuser nicht halt: Im Dezember 2022 wurde ein Kinderkrankenhaus in Kanada gehackt und erpresst. (Spiegel, 01.01.2023). Nicht zu vergessen sind die massiv zerstörerischen Cyberattacken auf die ukrainische Regierungs-Technologie sowie den Finanzsektor.

Dass Hackerangriffe Unternehmen in den Ruin treiben können, zeigt der Angriff auf den deutschen Fahrradhersteller mit den Marken Prophete, VSF Fahrradmanufaktur, Rabeneick und Kreidler, der das Unternehmen letztlich sogar in die Insolvenz trieb. Die Ransomware-Attacke legte das Unternehmen Ende November 2022 bis zu fast vier Wochen lang still und verpasste, dem bereits angeschlagenen Unternehmen, den finalen Stoß.

Im recht frischen neuen Jahr geht es gleich schlecht weiter: Die Britische Post kämpft nach einem Hackerangriff mit massiven Problemen bei der Auslieferung ins Ausland (Spiegel 13.01.2023). Zeitgleich wird in Österreich die Uni Innsbruck Opfer eines Cyberangriffs, der glücklicherweise erfolgreich abgewehrt wurde.

Die oben genannten Beispiele sind nur zwei von den bereits 31 im Jänner erfolgten Angriffen auf unterschiedliche Branchen weltweit. Gartner prognostiziert, dass bis 2025, 45 Prozent der Unternehmen weltweit Angriffe auf ihre Softwarelieferketten erlebt haben werden (das ist eine Verdreifachung gegenüber 2021).

Die sich vergrößernden Angriffsflächen gehörten laut der Sicherheits- und Risikotrendanalyse von Gartner zu den sieben Trends im Jahr 2022. Diese Angriffsflächen (Remote Arbeiten in Kombination mit verstärkter Nutzung der Public Cloud sowie hochgradig vernetzte Lieferketten und die Verwendung von cyber-physischen Systemen), die immer komplexer und anspruchsvoller werden, bedürfen einen erweiterten Ansatz bei der Sicherheitsüberwachung.

Zeitgleich aber agieren die Cyberkriminellen immer ausgeklügelter und raffinierter. Während die IT-Hardware / Software über die vergangenen Jahre immer sicherer wird, sind die Sicherheitsstandards von IoT und OT-Geräte bei weitem nicht auf demselben Niveau. Genau diesen Schwachpunkt nutzen die Hacker aus, um sich Zugang zu den Netzwerken zu verschaffen mit dem Ziel den Unternehmensbetrieb zu stören.

Investitionen in Cybersicherheit können schwerwiegende IT -Sicherheitsvorfälle verhindern

Gleich vorweg die schlechte Nachricht: Es gibt leider keinen 100-prozentigen Schutz. Im Wesentlichen geht es darum gut vorbereitet zu sein (Business Recovery Plan), Wahrscheinlichkeiten für einen Angriff (Security Hygiene), sowie die Auswirkungen bei einem Angriff zu minimieren (Backup). Sowie die Wiederherstellungszeit (Restore) nach einem Angriff zu verkürzen, um so schnell wie möglich wieder „up and running“ zu sein.

 

Unsere drei Tipps für Cybersicherheit für Unternehmen a.k.a  your line of defense

 

  1. Business Recovery Plan

Generell sind Unternehmen gut beraten, wenn sie über einen Wiederherstellungsplan verfügen. Naturkatastrophen, Cyberattacken oder wirtschaftliche Ausfälle, können unerwartete Bedrohungen darstellen. Allerdings wollen wir uns in diesem Blogbeitrag nicht mit allen Aspekten des allgemeinen Plans beschäftigen, sondern lediglich hervorstreichen, dass geschäftskritische Prozesse im Vorfeld definiert werden sollten. Mit dieser Vorgehensweise erhält man einen guten Überblick über die Dauer der Wiederherstellung im Fall der Fälle. Wir empfehlen sich folgende Fragen zu stellen:

  • Existieren aktuelle Backups?
  • Ist eine Backup Recovery Umgebung vorhanden?
  • Ist das Unternehmen in der Lage, die wichtigsten Applikationen wiederherzustellen? Welche sind die wichtigsten Applikationen? Was ist die Priorität? In welcher Reihenfolge müssen sie wieder laufen? Gibt es Zugang zu den Applikationen bzw. wie kommen wir an diese heran?

Unser Tipp: Erstellen Sie eine Checkliste damit Sie wissen was in welcher Reihenfolge zu tun ist. Definieren Sie die

  • Reihenfolge und die Priorität der Applikationen
  • Stellen sie Backups sicher und schaffen Sie ein Umfeld zur schnellen Wiederherstellung, denn die wichtigste Applikation sollte so schnell wie möglich „up & running“ sein.

Überlegen Sie sich auch für den Zweifelsfall, was es tatsächlich bedeuten würde, bei einer Ransomware Attacke den Lösungsgeldforderungen nachzukommen. Denn Statistiken zeigen, dass nur 8 Prozent der Unternehmen, die das Lösegeld bezahlt haben, vollständig ihre Daten wiederherstellen konnten. Im Durchschnitt gelang nur der Hälfte der Unternehmen ihre Daten wiederherzustellen. Und es gibt auch keine Garantie, dass nach Bezahlung alles sofort wieder „up & running“ ist.

  1. Security Hygiene:
  • Netzwerksegmentierung
  • Gut gepflegte Systeme
  • Patching
  • Korrekte Konfigurationen
  • Vollständige, aktuelle und überprüfte Software-Backups
  • Starke Administrator Passworte (Aus dem „Digital Defense Report“ von Microsoft geht unter anderem hervor, dass Angriffe auf Passwörter mit 921 Angriffen/Sekunde um 74 Prozent gegenüber dem Vorjahr gestiegen sind)
  • Geschulte Mitarbeiter:innen
  • Regelmäßige Fire-drills
  • Benutzung von den richtigen Sicherheitstools
  • Konsequentes und kontinuierliches Monitoring dieser Tools (24/7×365)
  1. Backup & Recovery

Wie bereits im vorherigen Punkt erwähnt, ist der Einsatz von den Sicherheitstools der essenzieller Erfolgsfaktor bei der Verteidigung gegen die Cyberkriminellen. Wir empfehlen als umfangreiche Backup– und Recovery Lösung, je nach Anforderung Commvault Metallic und Commvault Complete. Unsere Erfahrung zeigt, dass die kontinuierliche Sicherheit der Daten, Geräte und Netzwerke für den Unternehmenserfolg wichtiger denn ist.

Warum Commvault?

Erstens verringern Sie mit den Lösungen von Commvault im Bereich Ransomware das Risiko von Cyberangriffen und erhöhen die Sicherheit Ihrer Daten. Zweitens sind die Lösungen im Gegensatz zu „Punktprodukten“, die die Komplexität und die Kosten erhöhen, nur eine einzige leistungsstarke Backup-Softwarelösung. Und Drittens, ist sie eine Sicherungs- und Wiederherstellungslösung, die definitiv mit den wechselnden Anforderungen Ihrer Daten mithalten kann. Weitere gute Gründe für die Commvault Lösungen:

  • Datensicherung in der Cloud. Über 80 Prozent der Unternehmen nutzen heute mehrere Da die Commvault Unterstützung für mehr als 40 Cloud-Speicheroptionen in öffentlichen und privaten Clouds bietet, hat man die Flexibilität eine hybrid Cloud-Umgebung zu erstellen.
  • Virtuelle Maschinen. Die Virtualisierung bietet eine leistungsstarke und flexible Möglichkeit zur Bewältigung der explosionsartigen Zunahme von Daten und Anwendungen. Das Erstellen und Bereitstellen von virtuellen Servern, Speicher und Anwendungen in privaten und öffentlichen Clouds bringt jedoch eigene Herausforderungen mit sich. Mit Commvault können VMs in der gesamten Umgebung gesichert, wiederhergestellt und verwaltet werden. Egal wo sie sich befinden. Wildwuchs á la eigenständigen Einzelprodukte, Datensilos, redundante Infrastruktur sind damit Geschichte.
  • Anwendungen und Datenbanken. Gerade bei einer Vielzahl von Datenbanken und Anwendungen unterschiedlicher Generationen möchte man vermeiden, dass diese von mehreren unterschiedlichen Produkten geschützt werden. Die Servicepalette von Commvault ist im Vergleich aufgrund ihrer Tiefe und Breite einfach unübertroffen: Man kann Workloads in die Cloud migrieren, Datenbanken effizient sichern und den Zugriff auf Daten beschleunigen.
  • Endgeräte. Der Schutz von Datenbanken und Unternehmensanwendungen ist wichtig, aber was ist mit den Endgeräten? Fast die Hälfte der Daten, einschließlich wichtiger Kundeninformationen und geistigem Eigentum, befindet sich auf Desktops, Laptops und mobilen Geräten. Viele dieser Geräte sind häufig das Ziel von Cyberangriffen wie Ransomware, weshalb ihr Schutz ein Muss ist. Commault complete data protection ist genau hierfür gedacht: Einmal auf den Endgeräten installiert, können User:innen ihre Dateien selbst wiederherstellen. Et voilà.
  • Wiederherstellung im Katastrophenfall. Bedenken Sie, dass nicht alle Daten gleich sind: Sie müssen die Wiederherstellungsanforderungen und -kosten gegen die für das Unternehmen geltenden Service Level Agreements abwägen. Und während die Wiederherstellungszeiträume an die Wichtigkeit der Daten gebunden sein sollten, brauchen Sie gleichzeitig eine einzige Lösung, um die Komplexität zu reduzieren. Die Lösung von Commvault ist nicht nur benutzerfreundlich und einfach – die Wiederherstellung der Daten ist auch ortsungebunden.

Weitere gute Gründe für Commvault:

Umfangreiche Abdeckung der Arbeitslast – Einheitliches Kundenerlebnis -„All-in-one“ (Null Abhängigkeit von zusätzlichen oder 3rd Party Tools oder Infrastruktur von Drittanbietern) –Einfacher und sicherer/Air-Gap – Aktive Überwachung (Frühwarnung vor Bedrohungen direkt auf dem Client mit branchenweit einzigartigen Honeypots) –Zero-Trust-Sicherheit -Automatisierte Vorgänge (Schnelle Isolierung verdächtiger Dateien und Clients zur Begrenzung potenzieller Angriffsflächen und Auswirkungen.) –Flexible rapid recovery. – Vermeidung erneuter Infektionen (Chirurgisches Löschen verdächtiger und bösartiger Dateien aus der Umgebung und aus den Sicherungskopien).

 

 

Quellen:

bericht_cybersicherheit_2021.pdf
Microsoft Digital Defense Report 2022 Executive Summary
Cyberangriff auf 34 Firmen in Oberösterreich | kurier.at
Österreich – Arten von Cyberangriffen auf Unternehmen 2022 | Statista
Hackerangriffe aktuell heute 2022/2023 – eine Übersicht | KonBriefing.com
Ransomware: Erpresser entschuldigen sich bei Kinderkrankenhaus in Kanada -DER SPIEGEL
Cyber-Angriff auf Rotax: Die Auswirkungen | FACTORY (factorynet.at)
Motorenhersteller Rotax setzt wegen Cyberattacke Produktion aus (futurezone.at)
Mark Harris | Sr Director Analyst, Podcast/Think Cast, 31.08.21
Business Recovery Plans — ENISA (europa.eu)

Oracle SQL MATCH_RECOGNIZE

Ein sehr mächtiges und effizientes Konstrukt gibt es seit der Oracle Version 12C: MATCH_RECOGNIZE. Vereinfacht gesagt lassen sich mit MATCH_RECOGNIZE regular expressions auf Zeilen anwenden, um so bestimmte Muster zu erkennen. Beispielsweise lassen sich somit in der Finanzwelt bestimmte Aktienkurs-Verläufe erkennen. Dieser Blogbeitrag soll dazu dienen, sich diesem Thema anhand einfacher und fiktiver Beispiele langsam anzunähern.
Grundlegender Aufbau:

 

 

PATTERN_PARTITION_CLAUSE

Diese ist optional. Hier kann man die Daten sortieren (ORDER BY) und in Gruppen aufteilen (PARTITION BY). Um bei jeder Ausführung der Query konsistente Ergebnisse zu erhalten, sollte zumindest ein ORDER BY eingebaut werden.

PATTERN_MEASURES_CLAUSE

Dieser Abschnitt definiert die Spalten, welche im SELECT Teil ausgegeben werden. Es gibt einige inbuilt functions, welche hier verwendet werden können. Dazu später mehr.

PATTERN_DEF_DUR_CLAUSE

Hier wird die eigentliche magic definiert. In diesem Abschnitt werden die patterns definiert, welche über jede Zeile ausgeführt werden. Gibt es ein match, sprich wird genau dieses Muster identifiziert, wird die Zeile ausgegeben.

 

Wir schauen uns anhand einiger Beispiele die einzelnen Abschnitte näher an. Zu diesem Zwecke habe ich eine Tabelle mit Aktiendaten erstellt, welche wie folgt definiert ist (Das Skript kann am Ende des Artikels heruntergeladen werden):

 

 

 

 

 

 

Die Tabelle beinhaltet Aktienkurse eines fiktiven Unternehmens. Wir starten mit einer simplen Abfrage, anhand welcher ich auf die Struktur näher eingehen möchte: Alle Handelstage, an denen es einen oder mehrere Handelstage gibt, welche einen Startkurs größer als 17 haben:

 

 

 

 

 

 

 

 

 

Nachfolgend eine Erklärung der einzelnen Codeteile:

PARTITION BY: Unterteilt die Daten je nach Titel in einzelne Gruppen. In unserem Fall haben wir nur einen Titel in unseren Testdaten, wodurch es sowieso nur eine Gruppe gibt, nämlich die der „Datenbank AG“.

ORDER BY: Sortiert die Daten in der jeweiligen Gruppe je nach Handelstag aufsteigend.

MEASURES: Definiert, welche Spalten im result set zusätzlich ausgegeben werden. Hier sehen zwei inbuilt functions: CLASSIFIER() und MATCH_NUMBER(). CLASSIFIER () gibt an, welche pattern variable für diese Zeile gematched hat. MATCH_NUMBER () vergibt für gematchte Gruppe eine eigene Nummer, welche bei 1 startet und sich für jede neue Gruppe um 1 erhöht.

ALL ROWS PER MATCH: Definiert, dass bei aufeinanderfolgenden matches jede Zeile ausgegeben wird. Das pendant dazu wäre ONE ROW PER MATCH, welches auch der Default Wert ist. Hier wird dann nur die erste Zeile der jeweiligen Gruppe ausgegeben. In unserem Beispiel sehen wir, dass für Gruppe 4 jede einzelne Zeile ausgegeben wird; würden wir stattdessen ONE ROW PER MATCH verwenden, würden wir für Gruppe 4 nur die erste Zeile sehen. Das Ganze hat dann auch Auswirkungen auf die oberen drei Bereiche: Bei ALL ROWS PER MATCH, so wie wir es verwenden, könnte ich den den PARTITION BY, ORDER BY und MEASURES Bereich ganz weglassen, da sowieso alle Spalten im result set ausgegeben werden. Verwende ich hingegen ONE ROW PER MATCH, muss ich entweder Spalten im MEASURES Bereich angeben und/oder die ORDER BY / PARTITION BY Klausel angeben. Das Prinzip ist dem GROUP BY also sehr ähnlich.

PATTERN: Hier liste ich die einzelnen Variablen auf, welche im DEFINE Bereich definiert sind und auf die jeweilige Zeile zutreffen müssen. In unserem Beispiel ist das die Variable „start_1“ mit einem regular expression chracter „+“. Dies bedeutet, dass es einen oder mehrere Handelstage geben muss, an denen der Startkurs höher als 17 ist.

DEFINE: Hier werden die Variablen mit ihren conditions definiert, welche im PATTERN Bereich verwendet werden können.

 

 

 

 

 

 

 

Wie können wir das Ergebnis interpretieren?

Auf die Handelstage 01.12.2022, 03.12.2022 und 09.12.2022 folgen jeweils Tage, an denen der Startkurs kleiner als 17 ist. Der 13.12. ist der erste Tag einer Reihe von Handelstagen, wo der Startkurs höher als 17 ist.

Im nächsten Beispiel wollen wir alle Handelstage ausgeben, an denen exakt zwei Mal in Folge der Startkurs höher ist als der Schlusskurs am Vortag.

 

 

 

 

 

 

 

Hier sehen wir, dass das SQL im Prinzip ähnlich aufgebaut ist als im Beispiel eins. Im DEFINE Bereich ist unsere pattern Variable mit der dazugehörigen condition definiert. Diese besagt, dass der Startkurs der jeweiligen Zeile höher sein muss als der Schlusskurs der darüberliegenden Zeile. Hierzu verwende ich die Funktion PREV(), welche dann genau auf die darüberliegende Zeile verweist. An diesem Beispiel sehen wir auch, dass es Sinn macht, die Daten zu sortieren, da wir nicht immer wissen, in welcher Reihenfolge die Daten aus der Datenbank abgefragt werden (das Ergebnis ist also nicht deterministisch). Im PATTERN Bereich holen wir uns die Variable und wandeln diese nun mit „{2}“ zu einem regulären Ausdruck um. Dies bedeutet, dass wir zwei Handelstage in Folge haben wollen, auf welche die condition zutrifft. Zur Kontrolle definieren wir im MEASURES Bereich die Spalte „schlusskurs_vortag“. Da MATCH_RECOGNIZE wie eine INLINE VIEW zuerst ausgeführt wird, können wir diese im SELECT Teil verwenden und ausgeben.

 

 

 

 

 

Wie können wir das Ergebnis interpretieren?

Wir sehen nun immer zwei Handelstage in Folge, an denen der Startkurs höher ist als der Schlusskurs am Vortag.

Für das nächste Beispiel überlegen wir uns folgendes Muster: An Handelstag eins soll der Startkurs zwischen 16 und 17 sein, an Handelstag zwei soll der Startkurs größer als 17 sein, an Handelstag drei soll der Startkurs wieder zwischen 16 und 17 sein.

 

 

 

 

 

 

 

 

Dieses SQL enthält eine Erweiterung, nämlich AFTER MATCH SKIP TO LAST. Diese Syntax bedeutet, dass wenn es ein match gibt, die Suche nach einem neuen Match bei der letzten pattern Variable beginnt.

 

 

 

 

 

Wie können wir das Ergebnis interpretieren?

Wir sehen nun alle Handelstage, die genau unserem Muster entsprechen. Würden wir AFTER MATCH SKIP TO LAST weglassen, würden nur die ersten drei Handelstage im result set erscheinen, da die Suche erst am 22.12.2022 weitergehen würde.

In unserem letzten Beispiel wollen wir eine typische V-Formation erkennen. Dies bedeutet, dass der Aktienkurs zunächst einbricht und sich nach Erreichen der Talsohle wieder erholt.

 

 

 

 

 

 

 

 

 

 

 

 

Hier haben wir im DEFINE Bereich drei pattern Variablen definiert, wobei man die Definition der ersten Variable „strt“ auch weglassen könnte, da sie sowieso jede Zeile matched. Diese dient für uns lediglich als Einstiegspunkt in unsere Mustersuche.

 

 

 

 

 

 

 

Wie können wir das Ergebnis interpretieren?

Wir sehen in unserem result set anhand der Gruppennummer, welche Handelstage eine V-Formation bilden und somit zu einer Gruppe gehören. Das Ende der jeweiligen V-Formation ist zugelich der Beginn einer neuen Kursbewegung nach unten.

Wir haben uns nun anhand einiger Beispiel angesehen, was MATCH_RECOGNIZE ist und was für Abfragen wir damit durchführen können.

 

 

Oracle Database 19c SIG

Underestimated Powertools – Yes we can!

They have a nimbus of substitute solutions: Partition View , DBMS_PARALLE_EXECUTE , and Snapper. They are used, for example, in the Standard Edition, or when the Oracle options are not available. The exact application of the tools is sometimes poorly documented. The nimbus does not do these tools justice. Each of these can do things that the official option cannot. In this lecture you will not only learn how to really use these tools in practice, but you will also learn about their hidden strengths.

Check out the video here:

and the slides here

TOO_MANY_ROWS Exception

TOO_MANY_ROWS Exception

Wird in einem PL/SQL Block das Ergebnis einer Select Abfrage mittels INTO in eine Variable geschrieben, so muss das Statement EXAKT 1 Zeile zurück liefern. Wird keine Zeile zurückgegeben, so wird eine NO_DATA_FOUND Exception ausgelöst. Ist die Where-Klausel nicht exakt genug und es werden mehrere Zeilen zurück geliefert, so wird eine TOO_MANY_ROWS Exception ausgelöst. Der Unterschied zwischen diesen beiden Fehlern ist jedoch ein potentiell sehr relevanter:

Tritt der Fall einer NO_DATA_FOUND Exception auf, so bleibt der Wert der Variable unverändert – sprich wenn die Variable NULL ist, denn bleibt der Wert NULL, ist der Wert beispielsweise 2, so bleibt er 2 (siehe auch die Ergebnisse des Beispielskriptes).

Tritt der Fall einer TOO_MANY_ROWS Exception auf, so ändert sich der Wert der Variable – und zwar auf eventuell unvorhersehbare Weise. Der Wert der Variable wird auf den ersten gefundenen Wert der Abfrage gesetzt. Mit Order By kann das kontrolliert werden, aber ohne ist es nicht vorhersehbar, welcher Wert eingetragen wird.

Das wirklich wichtige an diesem Verhalten ist, dass bei einem größeren Block mit nachfolgenden Schritten berücksichtigt werden muss, dass bei einem TOO_MANY_ROWS Fehler die Variable einen Wert hat trotz der Exception.

Das folgende Skript verdeutlich diese Möglichkeiten:

declare
  v_value number := 2;
begin
  -- create no data found exception - v_value is NULL
  dbms_output.put_line('v_value am Ende = ' || v_value);
  begin
    with numbers as
     (select level eindeutig from dual connect by level <= 10),
    base as
     (select eindeutig, mod(eindeutig, 3) mehrdeutig from numbers)
    select eindeutig into v_value from base where eindeutig = 11;
  exception
    when no_data_found then
      dbms_output.put_line('v_value bei no_data_found = ' || v_value);
  end;
  -- create too many rows exception - v_value is NOT NULL
  begin
    with numbers as
     (select level eindeutig from dual connect by level <= 10),
    base as
     (select eindeutig, mod(eindeutig, 3) mehrdeutig from numbers)
    select eindeutig into v_value from base where mehrdeutig = 1;
  exception
    when too_many_rows then
      dbms_output.put_line('v_value bei too_many_rows ohne order = ' || v_value);
  end;
  -- create too many rows exception - v_value is NOT NULL
  begin
    with numbers as
     (select level eindeutig from dual connect by level <= 10),
    base as
     (select eindeutig, mod(eindeutig, 3) mehrdeutig from numbers)
    select eindeutig into v_value from base where mehrdeutig = 1 order by 1 desc;
  exception
    when too_many_rows then
      dbms_output.put_line('v_value bei too_many_rows mit order = ' || v_value);
  end;
end;

 

DBConcepts Sommerfest – die beste Veranstaltung des Jahres

Das DBC Sommerfest hat sich mittlerweile zu einem fixen Bestandteil des Sommers von vielen unseren Gästen etabliert. Auch dieses Jahr gibt es viel zu berichten.

Vergangenen Donnerstag (25.08.2022) haben sich im Laufe des Spätsommernachmittags zahlreiche Gäste zu unserem alljährlichen DBConcepts Sommerfest eingefunden und nutzten die Gelegenheit sich in einer malerischen Kulisse an der Alten Donau bei bestem Sommerwetter in einem entspannten Rahmen zu unterhalten.

Nach einer Stärkung am abwechslungsreichen Buffet, das keine Wünsche offenließ, starte das mit großer Spannung erwartete DBConcepts Pub Quiz.

Achtzehn Teams fanden sich innerhalb kürzester Zeit zusammen und bildeten 4er Teams mit den kreativsten Namen und stellten ihr Wissen unter erschwerten Bedingungen (Handynutzung war Tabu sowie ein Zeit Limit für die Beantwortung der Fragen) unter Beweis. Nach einundzwanzig Fragen aus unterschiedlichsten Kategorien und einer Schätzfrage entschied das „Team die 4 Fragezeichen“ das Rennen für sich, setzte sich knapp gegen das Team „Margarethen“ durch und nahm den Hauptgewinn, Sonos Roam Lautsprecher mit nach Hause.

Ich freue mich jedes Jahr auf dieses stimmige Fest – und auch heuer wieder tat es richtig gut, dabei zu sein: inspirierende Örtlichkeit, herzlicher Empfang, ungezwungenes Beisammensein, anregende Gespräche und bestelltes Schönwetter, was will man mehr“, so Roland F. ein Gast.

Auch Melanie R. erklärte:“ Ich war heuer bei vielen Sommerfesten – aber das DBC Sommerfest war eindeutig das beste!

Wir freuen uns sehr über das Feedback und über das nette Beisammensein mit allen Gästen! Eines ist sicher – Nächstes Jahr ist die DBC Sommer Party wieder ein fixer Bestandteil des Sommers – also gleich den letzten Donnerstag im August in die Kalender notieren und reservieren!“ so Klaus-Michael Hatzinger abschließend.

Fotos vom Abend finden Sie hier.