Oracle Protects Healthcare Customers Against Cyberattacks

Oracle hat die Autonomous Shield-Initiative ins Leben gerufen, um Kunden bei der Migration zu einer umfassenden EHR- und Cloud-Infrastrukturlösung zu unterstützen, die Risiken reduziert und die Systemleistung steigert. Von der fortschrittlichen Automatisierung und Sicherheit der Oracle Cloud Infrastructure profitieren bereits mehr als 1.000 Oracle Health EHR-Kunden.

In the nearly two years since the Cerner acquisition, Oracle has invested tens of thousands of engineering hours and millions of dollars to enhance its core clinical applications and improve cybersecurity for its customers in the healthcare industry. As part of this investment, Oracle has helped more than 1,000 Oracle Health EHR customers dramatically strengthen their defenses against cybercrime by supporting their migration to Oracle Cloud Infrastructure (OCI). Customers that migrated to OCI also reported performance gains of 20 to 60%. Today, Oracle is expanding its commitment to create a safer and more secure healthcare ecosystem by launching the Autonomous Shield initiative to simplify and accelerate Oracle Health EHR migrations to OCI at no additional cost.

Lesen Sie die vollständige Pressemitteilung hier.

Automating Code Signing with multiple E-Business Suite instances - Part 3

Automating Code Signing with multiple E-Business Suite instances - Part 3

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

As you are probably aware by now, since June 1st 2023 all well-known / public Certificate Authorities (CA) no longer provide Code Signing Certificates using pure software based private keys (see https://www.linkedin.com/posts/johannes-michler-099892ab_code-signing-key-storage-requirements-will-activity-7090432157688492032-jGvC).

Since I prefer using such a trusted / public CA to sign Java Applets (that are still crucial for Oracle E-Business Suite or Oracle Forms) I've recently had a look into how we can now sign those Java JAR files. Part 1 of this blog series introduced the topic and an available "Cloud Based" Code Signing Certificate provider: Signing EBS/Forms - Part 1

In a second part I covered how the code signing can be done on an E-Business Suite Application Server running on Oracle Linux 7 on Oracle Cloud Infrastructure (OCI).

This third post will look how we can further automate this by installing the Certum tools onto the E-Business Suite Cloud Manager VM. First, we'll cover the latest changes from Certum, then we'll look into some scripts that can be used on multiple E-Business Suite Application servers to send the .jar files for signing to that central signing instance.

Certum Tool updates (April 2024)

Back in the previous post, I've complained about the incomplete translation of the Certum tools still revealing a lot of polish error messages. While it seems this is fixed at least partially, I realized that the 2.9.9 versions available over there https://files.certum.eu/software/SimplySignDesktop/Linux-RedHat/ leads to fatal crashes (segmentation fault). That is why for now I stuck with the 2.9.8 release.

Installing Certum SimplySignDesktop as a non-root user

When installing the SimplySignDesktop tool according to the official documentation it is necessary to do so globally/as the root user. Since I didn't like the tool to modify my cloud manager VM in that massive way, I've investigated what the installer actually does. With that I was able to get the tool running with a way less privileged user (that I call certum). Run the following as root:

yum install https://rpmfind.net/linux/epel/8/Everything/x86_64/Packages/s/stalonetray-0.8.3-15.el8.x86_64.rpm
yum install libxslt.x86_64 pulseaudio-libs-glib2.x86_64 libwebp.x86_64 xkeyboard-config
useradd certum
sudo su – certum
mkdir .ssh
vi .ssh/authorized_keys
# add the SSH public key(s) of your oracle@ebs-appserver
chmod 700 .ssh
chmod 600 .ssh/authorized_keys

Then connect a SSH Session with X-Forwarding as certum:

wget https://files.certum.eu/software/SimplySignDesktop/Linux-RedHat/2.9.8-9.1.6.0/SimplySignDesktop-2.9.8-9.1.6.0-x86_64-prod-centos.bin
sh SimplySignDesktop-2.9.8-9.1.6.0-x86_64-prod-centos.bin --target /home/certum/
cp /home/certum/SSD-2.9.8-dist/SimplySignDesktop.xml /home/certum/

Create a /home/certum/provider_simplysign.cfg file as follows:

name=SimplySignDesktop/SimplySignPKCS
library=/home/certum/SSD-2.9.8-dist/SimplySignPKCS_64-MS-1.0.20.so
slot=-1

Furthermore, create a script startGUI.sh as follows:

export LD_LIBRARY_PATH=/home/certum/SSD-2.9.8-dist/
export QT_QPA_PLATFORM_PLUGIN_PATH=/home/certum/SSD-2.9.8-dist/plugins
export OPENSSL_CONF=/etc/ssl/
stalonetray &
/home/certum/SSD-2.9.8-dist/SimplySignDesktop

Finally start the Script and sign in with a one-time-token.

Do a test as follows (in new SSH Session):

/home/certum/SS-9.1.6.0-dist/jre/bin/keytool -list -keystore NONE -storetype PKCS11 -providerclass sun.security.pkcs11.SunPKCS11 -providerArg /home/certum/provider_simplysign.cfg -v

This will provide an alias, in our case: 4F4F410D1234A9110B16DA9C83BD6F59

Furthermore, create a /home/certum/mychain.pem file as described in the previous episode.

Passing the jars

On the E-Business Apps-Server first create a ~/sign_1.sh script as follows:

folderstamp=$(date +%Y-%m-%d-%H:%M)
mkdir -p /home/oracle/sign_bkp/${folderstamp}
jar=$1
# Remove Signature from jar files created through ADADMIN in EBS
echo " ** Removing EBS signature from: ${jar} "
cp -i ${jar} /home/oracle/sign_bkp/${folderstamp}/
zip -d ${jar} 'META-INF/*.SF' 'META-INF/*.RSA'
scp ${jar} certum@10.1.2.199:/tmp/signing-dummy.jar

ssh certum@10.1.2.199 "/home/certum/SS-9.1.6.0-dist/jre/bin/jarsigner -keystore NONE -tsa \"http://time.certum.pl\" -certchain /home/certum/mychain.pem -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg /home/certum/provider_simplysign.cfg -storepass 12345 /tmp/signing-dummy.jar 4F4F410D1234A9110B16DA9C83BD6F59"

scp certum@10.1.2.199:/tmp/signing-dummy.jar ${jar}

The script first creates a backup of the jar, then un-signs the .jar files and copies it to the cloud-manager VM (in my case with IP 10.1.2.199). There the jar is signed and finally the signed .jar is copied back to the E-Business Suite Apps Tier.

This allows signing a single .jar file; the script may be helpful when applying a patch with "options=nojarsigning". Then in there should be a file such as /u01/install/APPS/fs_ne/EBSapps/log/adop/176/20240327_132920/apply/mastebsapp01/36177213/log/jarlist.txt containing all the .jar files that require re-signing.

For the initial signing the procedure in the previous episode can be combined with the copying of the .jar to the Cloud Manager VM.

Verifying and patching

As an alternative to signing "just" the files in $NE_BASE/EBSapps/log/adadmin/log/jarlist.txt I found it useful to just sign all .jar files under $JAVA_TOP. For this the following script proved helpful:

folderstamp=$(date +%Y-%m-%d-%H:%M)
mkdir -p /home/oracle/sign_bkp/${folderstamp}
# Select the jar files from jarlist.txt
for jar in $(find $JAVA_TOP/oracle/apps -name \*.jar)
do
# Remove Signature from jar files created through ADADMIN in EBS
echo " ** Removing EBS signature from: ${jar} "
cp -i ${jar} /home/oracle/sign_bkp/${folderstamp}/
zip -d ${jar} 'META-INF/*.SF' 'META-INF/*.RSA'
scp ${jar} certum@10.1.2.199:/tmp/signing-dummy.jar
ssh certum@10.1.2.199 "/home/certum/SS-9.1.6.0-dist/jre/bin/jarsigner -keystore NONE -tsa \"http://time.certum.pl\" -certchain /home/certum/mychain.pem -storetype PKCS11 -providerClass sun.security.pkcs11.SunPKCS11 -providerArg /home/certum/provider_simplysign.cfg -storepass 12345 /tmp/signing-dummy.jar 4F4F410D1234A9110B16DA9C83BD6F59"
scp certum@10.1.2.199:/tmp/signing-dummy.jar ${jar}
done

It is helpful to first to a check if the $jar is already signed as follows:

result=`jarsigner -verify -certs ${jar}| tr -d '[:space:]'`
if [[ "jarverified." != "$result" ]]
then
echo ${jar} needs re-sign; $result
# put the signing here
fi

Summary

Using above scripts, it is amazingly easy to sign all .jar files both initially as well as after applying a patch. The version using a "find" on $JAVA_TOP may sign "a bit more than needed", but in my experience that does not do any harm.

I am still hoping that Oracle will provide a way to "Hook" a script such as sign_1.sh into the signing process called during patching or through adadmin. This would probably be announced in "Signing EBS Jar Files With HSM (Hardware Security Module) - (Doc ID 2806640.1)".

PROMATIS weiter auf Expansionskurs

PROMATIS weiter auf Expansionskurs

Globale Partnerschaft – PROMATIS bündelt Kräfte für die Realisierung ihrer Wachstumsstrategien

Ettlingen, 04.04.2024Der Geschäftsprozessinnovator gibt seinen Beitritt zur International Technology Group B.V. (ITG) bekannt, einem partnerschaftlichen Verbund von Oracle-Serviceanbietern, die sich durch ihr ergänzendes Portfolio optimal verzahnen. Unterstützt durch den Investor IceLake Capital, profitiert PROMATIS somit von einer Verstärkung der Marktposition und der Umsetzung der Wachstumsstrategien in puncto internationale Expansion. Diese globale Partnerschaft positioniert PROMATIS – Spezialist für intelligente Geschäftsprozesse und Oracle Digitalisierungslösungen – für ein beschleunigtes Wachstum mit globaler Skalierbarkeit bei gleichzeitiger Diversifizierung der Leistungen. Für die Kunden ergeben sich durch die neue Unternehmensstruktur enorme Vorteile hinsichtlich Zukunftssicherheit, Innovationskraft und vor allem auch im Unternehmensbereich Managed Services & Support.

Neue Chancen nutzen und Bewährtes bewahren, das war die Intention der PROMATIS für den Beitritt in die ITG, eine Holding des niederländischen Finanzinvestors IceLake Capital. Die bisherigen Gesellschafter der PROMATIS-Gruppe übertrugen ihre Unternehmensanteile in diese international agierende Holding mit Sitz in Amsterdam und unterstreichen damit das stetige Wachstum der Unternehmensgruppe. Dr. Frank Schönthaler, CEO der PROMATIS-Gruppe sowie das gesamte Executive Management werden ihre Funktionen auch in den nächsten Jahren weiter ausüben. Daneben wird Schönthaler in der Holding als Mitglied des Executive Committees vertreten sein. Insofern ist die Kontinuität der PROMATIS-Geschäftstätigkeit mitsamt der Unternehmensstruktur und allen Mitarbeitenden für die kommenden Jahre gesichert.

Neben dem innovativen Digitalisierungsexperten PROMATIS sind zwei weitere starke Oracle-Partner unter der ITG vereint: Quistor und Project Partners. Mit der Zusammenführung drei der wichtigsten Oracle-Lösungsanbieter im internationalen Umfeld, ist es dem Investor IceLake Capital gelungen, eine perfekte Verzahnung für dieses Marktsegment herbeizuführen. Zudem werden mit dem strategischen Verbund außerordentliche Synergiepotenziale identifiziert und erschlossen. Dieser Startschuss in eine neue Ära der Leistungsfähigkeit bedeutet eine erweiterte geografische Reichweite, umfassendes Experten-Knowhow in modernen Business-Applikationen sowie gebündelte Oracle Schlagkraft. Dieses Oracle Competence Center der neuen Dimension ist prädestiniert, den steigenden Kundenanforderungen gerecht zu werden und sich zu einer führenden IT-Plattform zu gruppieren. Durch die Bündelung der gemeinsamen Kräfte werden neue Kapazitäten freigesetzt wie beispielsweise ein fortschrittliches und herausragendes 24/7-Managed-Services-Angebot für funktionalen und technischen Support rund um die Uhr.

„Mit der neuen Größe positioniert sich nun PROMATIS weitaus leistungsstärker, ausgestattet mit wesentlich größeren Fähigkeiten als bisher, was sich sowohl auf die Kapazitäten als auch die finanzielle Stärke auswirkt. Davon profitieren unsere Kunden erheblich und es erschließen sich völlig neue Wege, Prozessinnovationen im Unternehmen zu etablieren“, so Dr. Frank Schönthaler, CEO der PROMATIS Gruppe.

Über PROMATIS:
Der globale Lösungsanbieter PROMATIS hat seinen Sitz in Deutschland in der TechnologieRegion Karlsruhe mit Niederlassungen in Hamburg und Münster/Westf. sowie Ländergesellschaften in Österreich (Wien), Schweiz (Zürich), Kroatien (Zagreb) und USA (Denver, CO). Ein lebendiges Partnernetzwerk in Wirtschaft und Forschung ist Garant für die Umsetzungsstärke und hohe Innovationskraft.

Unsere Erfahrungen umfassen Oracle Cloud Applications (inkl. Fusion), NetSuite ERP und Oracle E-Business Suite sowie den Oracle Technology Stack on Prem, Cloud und hybrid. Mit bewährten Vorgehensmodellen, Projekt-Tools sowie länder- und branchenspezifischen Best Practice-Lösungen sorgen wir für Wirtschaftlichkeit und Zukunftssicherheit unserer Kundenlösungen. Weitere Informationen zu PROMATIS erhalten Sie im Internet unter www.promatis.de

 

Über IceLake:
IceLake Capital ist eine private Beteiligungsgesellschaft, die in außergewöhnliche Unternehmen investiert und sich darauf konzentriert, mittelständische Unternehmen zu internationalen Marktführern in ihren jeweiligen Branchen zu verhelfen. Diese Unternehmen haben eine starke Marktposition und profitieren von der Unterstützung bei der effektiven Umsetzung ihrer globalen Wachstumsstrategien, wie beispielsweise Buy & Builds und internationale Expansion. Weitere Informationen finden Sie unter www.icelakecapital.com

 

Über Quistor:
Quistor wurde 2005 in den Niederlanden gegründet und ist bekannt für seine profunde Erfahrung mit JD Edwards, Oracle Infrastructure as a Service, Oracle Platform as a Service, Oracle Autonomous Data Warehouse und Oracle Analytics Cloud-Technologie. Die Mission des Unternehmens ist es, herausragende Beratungs- und Managed Services zu liefern. Quistor betreut derzeit mehr als 250 Kunden weltweit und beschäftigt rund 250 Mitarbeiter in Niederlassungen in den Niederlanden, Spanien, der Tschechischen Republik, Frankreich, Mexiko, Großbritannien und auf den Philippinen. Quistor hat mehrere Auszeichnungen für seine Kompetenz in den Bereichen Oracle Autonomous Datawarehouse, Oracle ERP und Oracle Cloud erhalten. Weitere Informationen über Quistor finden Sie auf der Website www.quistor.com

 

Über Project Partners:
Project Partners widmet sich seit 1997 projektorientierten Organisationen rund um den Globus. Als Full-Service-Beratungsagentur für Projekttechnologie und -management unterstützt Project Partners Unternehmen zahlreicher Branchen dabei, ihre technologischen Projektlebenszyklen von Anfang bis Ende pünktlich und innerhalb des Budgets zu erfüllen. Project Partners ist spezialisiert auf Oracle ERP-Anwendungen (on Prem und Cloud) und eine Vielzahl von Projektmanagement- und Project Execution Solutions. 78+ globale Berater und 20+ erfahrene Partner unterstützen multigeografische Operationen in 19+ Ländern und führen Implementierungen für Organisationen durch, die 10.000+ Projekte mit tausenden von Benutzern in verschiedenen Sprachen und Währungen verwalten. Die Erfahrung von Project Partners umfasst die Projektmodule von Primavera, Kahua, E-Business Suite, Fusion ERP und JD Edwards. Weitere Informationen finden Sie unter www.projectp.com

Oracle Announces Fiscal 2024 Third Quarter Financial Results

Die Oracle Corporation gab vor einigen Tagen ihre Ergebnisse für das dritte Quartal des Geschäftsjahres 2024 bekannt.

Oracle Corporation (NYSE: ORCL) today announced fiscal 2024 Q3 results. Total quarterly revenues were up 7% year-over-year in both USD and constant currency to $13.3 billion. Cloud services and license support revenues were up 12% in USD and up 11% in constant currency to $10.0 billion. Cloud license and on-premise license revenues were down 3% in both USD and constant currency to $1.3 billion.

Lesen Sie hier vollständige Pressemeldung

Automating Code Signing with multiple E-Business Suite instances - Part 3

Accessing E-Business Suite Cloud Manager APIs - IDCS Token Management

Johannes Michler PROMATIS Horus Oracle


Executive Vice President – Head of Platforms & Development

Previously (https://promatis.com/at/fully-automating-cloning-with-e-business-suite-cloud-manager-rest-api/), I described how you can use (unofficial) APIs to fully automate E-Business Suite environments hosted with Cloud Manager on Oracle Cloud Infrastructure (OCI). As you can see there, the actual call to trigger a clone or also the termination of an environment is rather simple. I've recently used that a lot when I worked on my clone scripts. In that process, I had to create ~10 clones, and doing so with a simple REST call saved me a lot of time.

In said post, we got hold of a "OAuth Bearer Token" that is needed to call those APIs in a very manual way "through the browser". In real life, this does not really come in handy. This blog post will describe how a bearer token (including a refresh token) can be received through the command line.

Preparations

In preparation for using the scripts shown below, we have to enable the usage of "Device Codes" for the Cloud Manager application in IDCS:


Definition of Cloud Manager application in IDCS

Furthermore you should take note of the client_id, the client_secret and the IDCS url. All 3 have also been used during Cloud Manager setup.

A piece of Code

First of all, the following shell script does all the magic needed. You have to replace XXXXX, YYYYY and ZZZZZ with values from your environment:

#!/bin/sh
CLIENT_ID="XXXXX" # as in IDCS
CLIENT_SECRET="YYYYY" # as in IDCS
CLOUDMGR_URL=https://ebsoci.intern.dns
IDCS_BASE_URL=https://idcs-ZZZZZ.identity.oraclecloud.com/oauth2/v1
IDCS_TOKEN_URL=${IDCS_BASE_URL}/token
IDCS_DEVICE_URL=${IDCS_BASE_URL}/device

PASS_ENC=`echo -n "$CLIENT_ID:$CLIENT_SECRET" | base64 -w 0`

#echo PASS_ENC $PASS_ENC

if [ -f "mytoken" ]; then
REFRESH_TOKEN=`cat mytoken | jq '.refresh_token'| tr -d '"'`
echo refresh token: $REFRESH_TOKEN
BEARER_TOKEN=`curl -K -i -H 'Authorization: Basic '"$PASS_ENC"'' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST $IDCS_TOKEN_URL -d 'grant_type=refresh_token&refresh_token='"$REFRESH_TOKEN"`
cp mytoken mytoken.old
else
DEVICE_INFO=`curl -K -i -H 'Authorization: Basic '"$PASS_ENC"'' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST $IDCS_DEVICE_URL -d 'response_type=device_code&scope=urn:opc:idm:t.user.me%20offline_access&client_id='"$CLIENT_ID"`
echo $DEVICE_INFO
DEVICE_CODE=`echo $DEVICE_INFO | jq '.device_code'|tr -d '"'`
echo identified DEVICE_CODE $DEVICE_CODE press enter when done
read HAS_FINISHED
BEARER_TOKEN=`curl -K -i -H 'Authorization: Basic '"$PASS_ENC"'' -H 'Content-Type: application/x-www-form-urlencoded;charset=UTF-8' --request POST $IDCS_TOKEN_URL -d 'grant_type=urn:ietf:params:oauth:grant-type:device_code&device_code='"$DEVICE_CODE"`
fi

echo $BEARER_TOKEN
echo $BEARER_TOKEN > mytoken
ACCESS_TOKEN=`echo $BEARER_TOKEN| jq '.access_token'| tr -d '"'`
echo ACCESS_TOKEN: $ACCESS_TOKEN

# call the rest api to get shapes
#

curl -k -X GET $CLOUDMGR_URL/ebs/shapes/networkProfile/MY_AD2 -H 'Authorization: Bearer '"$ACCESS_TOKEN"''

First running the script

When you call this script for the first time, it gives an output as follows:

{"device_code":"xxxxxx","user_code":"CTHJNLAM","verification_uri":"https://idcs-ZZZZZ.identity.oraclecloud.com:443/ui/v1/device","expires_in":300}

identified DEVICE_CODE 483150ce7704487da495593d1c97c2a4 press enter when done

Just open the verification URI provided in a browser, sign in to IDCS and pass the user_code CTHJNLAM.

Then, return to the shell script and press return. This will allow the script to get a Bearer Token including a Refresh token.

Subsequent runs

On every subsequent run, the "previous" refresh token (stored in the file mytoken) is exchanged for an access token and a new refresh token. That new refresh token is saved (each refresh token is a one-time-use token) and can then be used for the next run.

Using the access token we received through that way, we can conveniently access the Cloud Manager APIs.

Summary

With the above way, you can get a token that is valid for at least a week. For most operations this should be sufficient; if not, these timings can be extended in IDCS. See https://docs.oracle.com/en/cloud/paas/identity-cloud/rest-api/TokenExpiryTable.html for more details on that (OAuth Refresh Token Expiry).

The combination of the procedure described in this and the previous blog post allow a simple and complete end-to-end automation of clones - e.g. on a nightly basis.