JavaScript is turned off in your web browser. To take full advantage of Ribose features, please enable JavaScript and refresh the page.

Tech post: AWS: Converting CentOS and Red Hat AMIs to EXT4

(Guest post by Aaron Smith)

It's a well known fact that Red Hat and CentOS use XFS for their default file system so it should come as no surprise that this default is reflected in the most frequently used Red Hat-based AMIs on AWS EC2. These distributions used to default to EXT4 but that time has long past.

However, there are several reasons you may want to use EXT4 as your default file system, and the first of that on AWS EC2 is because of performance. Yet it is something you must explicitly define at time of install or convert the system after the install has finished. You do not get to make this choice with the AMIs on AWS and that can be a real bummer if you are looking to use a file system other than XFS.

It's a great time to be alive though. Why? Because we have the tools to make this happen ourselves. The tool we are specifically interested in here is Packer. Packer can take an existing AMI and build a new AMI based on settings we define as well as apply provisioner scripts to alter the underlying image. Provisioner scripts don't have to be complicated and, in this case, we can write a bash script that will convert a root CentOS or Red Hat partition from XFS to EXT4.

To talk about this process from a Packer standpoint, we will tell Packer to do several things in order:

  1. Spin up an instance from a Red Hat or CentOS AMI of our choosing and attach an extra storage volume

  2. Run the provisioner script that will also do several things:

    1. format the extra volume with EXT4

    2. mount the volume

    3. rsync all relevant files from the XFS root volume to the EXT4 volume

    4. update the EXT4 volume's fstab to reflect the new boot partition

    5. update the EXT4 volume's boot directory and Grub configuration

  3. Build a new AMI using the prepared EXT4 volume (which will now be the root volume for instances based of this AMI)

The Packer builder configuration should look something like this for example:

"variables": {
"version": "7.3",
"aws_access_key_id": "{{env `AWS_ACCESS_KEY_ID`}}",
"aws_secret_access_key": "{{env `AWS_SECRET_ACCESS_KEY`}}",
"aws_security_token": "{{env `AWS_SECURITY_TOKEN`}}",
"packer_build_vpc_id": "{{env `PACKER_BUILD_VPC_ID`}}",
"packer_build_subnet_id": "{{env `PACKER_BUILD_SUBNET_ID`}}"
"min_packer_version": "0.12.3",
"builders": [
"type": "amazon-ebssurrogate",
"ami_virtualization_type": "hvm",
"region": "us-east-1",
"source_ami": "ami-b63769a1",
"ssh_username": "ec2-user",
"ssh_pty": "true",
"access_key": "{{user `aws_access_key_id`}}",
"secret_key": "{{user `aws_secret_access_key`}}",
"token": "{{user `aws_security_token`}}",
"vpc_id": "{{user `packer_build_vpc_id`}}",
"subnet_id": "{{user `packer_build_subnet_id`}}",
"ami_name": "redhat-encrypted {{user `version`}} {{timestamp}}",
"instance_type": "t2.micro",
"encrypt_boot": "true",
"launch_block_device_mappings": [
"device_name": "/dev/sdf",
"delete_on_termination": "true",
"volume_type": "gp2",
"volume_size": "100"
"ami_root_device": {
"source_device_name": "/dev/sdf",
"device_name": "/dev/sda1",
"delete_on_termination": true,
"volume_size": "100",
"volume_type": "gp2"
"provisioners": [
"type": "shell",
"execute_command": "echo 'packer' | {{ .Vars }} sudo -E -S sh '{{ .Path }}'",
"script": "scripts/"

As you can see, we are mounting an additional volume (`/dev/sdf`), running our provisioner script that creates the EXT4 root volume, then mounts that volume as if were the original volume (as `/dev/sda1`) when it comes time to build the new AMI. You'll also see that we are using the `amazon-ebssurrogate` builder type that Packer provides. This type exists precisely for the purpose of what we are trying to do here. That's why you don't see us attaching the source `/dev/sda1` volume. It is assumed that we will be attaching a volume to use as a root volume and provisioning it as we deem necessary based on the source root volume. Lovely.

We've walked through the Packer configuration and now you're probably wondering how the actual XFS to EXT4 conversion happens in the provisioner script. Here's how we do it in our bash script:

readonly __progname="$(basename $0)"

errx() {
echo -e "$__progname: $@" >&2
exit 1

main() {
readonly local dev="/dev/xvdf"
readonly local mntpoint="/mnt"

[ ! -d "${mntpoint}" ] && \
errx "cannot find mountpoint '${mntpoint}'"

parted -a optimal "${dev}" mklabel gpt mkpart primary '0%' '1%' name 1 grub set 1 bios_grub on print || \
exit 1
parted -a optimal "${dev}" mkpart primary '1%' '100%' name 2 rootfs set 2 boot on print || \
exit 1
mkfs.ext3 "${dev}1" || \
exit 1
mkfs.ext4 "${dev}2" || \
exit 1

mount "${dev}2" "${mntpoint}"

# amazon-ebssurrogate: rsync: getcwd(): No such file or directory (2)
# amazon-ebssurrogate: rsync error: errors selecting input/output files, dirs (code 3) at util.c(1008) [Receiver=3.0.9]
cd /
rsync -aAXv --exclude={"/dev/*","/proc/*","/sys/*","/tmp/*","/run/*","/mnt/*","/media/*","/lost+found"} / "${mntpoint}" || \
exit 1

readonly local uuid_d1="$(lsblk -no UUID ${dev}1)"
readonly local uuid_d2="$(lsblk -no UUID ${dev}2)"

echo "UUID=${uuid_d2} / ext4 defaults 0 0" > "${mntpoint}/etc/fstab"

grub2-install --boot-directory="${mntpoint}/boot" "${dev}" || \
exit 1
grub2-mkconfig -o "${mntpoint}/boot/grub/grub.cfg" || \
exit 1

if [ $(cat /etc/redhat-release | awk '{ print $1 }') == 'CentOS' ]; then
readonly local oldid="${uuid_d1}"
readonly local oldid="${uuid_d2}"

find "${mntpoint}/boot/" -type f -exec sed -i "s/${oldid}/${uuid_d2}/g" {} \;

umount "${mntpoint}" || \
exit 1
echo "finished!"

main "$@"
exit 0

If you are familiar with bash, then this should make some sense to you based on what talked about above. The additional volume needs to be partitioned and formated with EXT4. We then mount it and rsync the operating system data from the source volume to the new EXT4 volume. We store the UUIDs of the volumes involved in variables and make the appropriate changes to the `/etc/fstab`, boot files, and GRUB configuration. It is at this point where we can unmount the EXT4 volume and proceed with building the new AMI. Viola!

Read More

New feature: all Ribose emails now cryptographically signed with PGP

With email phishing and spoofing increasingly common today, many people are lulled into a false sense of despair. Yet there are methods to combat them, and the most oft-used one is cryptographic signing of emails.

Since last week, Ribose cryptographically signs all emails to you via PGP to allow you can verify authenticity of our emails. A valid Ribose PGP signature proves that the email has not been modified in transit, and also proves that the sender is indeed Ribose instead of a malicious third party.

To verify email PGP signatures, the current state of things require installation of some sort of plugin, but most of these tools do integrate nicely with your platform (Linux / macOS / Windows). We also have listed out recommended tools on our PGP page below.

With many of our users coming from sensitive industries, some of them have voiced out their concern for encrypted email notifications to prevent data leakage from emails. As a next step, we will be enabling full encryption of emails in an upcoming release, with a facility to upload your public PGP key that will be used to encrypt all messages sent via email. Stay tuned!

For more details on Ribose email signing and how to verify signatures, visit our PGP page at

Read More

Talk at CSA HKM Knowledge Sharing Event in PolyU

We are proud to share that our own Jeffrey Lau will be giving a talk at the Hong Kong Polytechnic University today!
At the talk, an official CSA HKM Knowledge Sharing Event, Jeffrey will be speaking about the Management of SaaS-Specific Risks.
SaaS (software-as-a-service) has almost become a necessity to businesses and daily lives of the modern day, as you know, and today more than ever we have a limitless option of providers to choose from. With how easy it is to sign up and start using such services, sometimes it is also too easy for us to diminish or be unaware of the associated risks. This is especially important for organizations - SaaS, being cloud-based, inherently possess greater risk than traditional IT. Left unchecked they pose a potential threat to an organization's survival. Luckily, there are measures that an organization can take in order to manage them. Jeffrey talks about what these SaaS-associated risks are and what best practices can an organization take to protect itself and its customers against them in today's event.

All the best for today's attendees, we hope the talk may be fruitful and informative for you! If you missed the event, worry not, this won't be the last event that our staff will participate in, so stay tuned for more!

For more information about the event, click here!

Read More

Ribose named Best New Collaboration Service, Best New Social Business Solution and Best Social Collaboration App at 2016 International Business Awards

Company wins three Gold Stevie® Awards in world's premier business awards program

[Hong Kong] – 28 September 2016 – Ribose has won three Gold Stevie® Awards in the "Best New Product or Service of the Year – Software Collaboration/Social Networking Solution", "Best New Product or Service of the Year - Software - Social Business Solution" and "Best Social Mobile App" categories, as well as a Bronze Stevie® Award for "Best New Product or Service of the Year - Software - Security Solution" at The 13th Annual International Business Awards.

The International Business Awards, or "Stevies", are the world's premier business awards program recognizing the most respected individuals and commercial organizations around the world. The 2016 IBAs attracted more than 3,800 nominations from over 60 nations and territories – representing a wide range of public and private, profit and non-profit, small and large organizations from virtually every industry.

Ribose provides a unique and secure cloud collaboration platform that helps users work together effectively, while protecting their highly-valuable collaborative data through pioneering cloud security and privacy – delivered through an intuitive user experience expected in today's consumer software. The platform adopts the world's most stringent specified security requirements by advocating a 'highest-bar' approach to cloud security and privacy. With its accessibility, dependability and security, the Ribose platform gives users the peace of mind to focus on their tasks at hand.

  • Ribose founder Ronald Tse commented, "Ribose is delighted to improve on last year's results at the 13th Annual International Business Awards – winning three Gold Stevie Awards in the extremely competitive Best New Collaboration Service, Best New Social Business Service and Best Social Mobile App categories. We are also pleased to win a Bronze Stevie Award for Best New Security Solution in a very strong field of competitors. These awards stand as proof that our mission of democratizing secure collaboration with a 'highest bar' approach resonates with our users and judges alike, helping us make working together easy and fun – while protecting users' data with the highest, internationally certified levels of security."

  • He continued, "We are both humbled and flattered by the judging panel's recognition of our work, and I'd like to congratulate all of this year's IBA winners and nominees for sharing their experiences and success stories from around the world. It's always been a source of pride for our team at Ribose to be recognized amongst some of the leading names in international business."

Stevie Award winners were determined by the average scores of more than 200 executives worldwide who participated in the judging process from May through early August.

In awarding Ribose the Gold Stevie for Best Social Collaboration App, judges commended Ribose for "being social but at the same time highly protected in a cloud based platform" and for "practical and strong use of technology to enable greater globalization and digitization."

  • Judges who selected Ribose for the Gold Stevie in the Best Collaboration / Social Networking Solution category called it "a great example of customer engagement and involvement in business operations" and "definitely a company to watch out for," praising Ribose for offering a "clever new angle on secured collaboration." Scoring the submission for Best Social Business Solution, the panel highlighted Ribose's "world class cloud platform" and "exceptional security features", backed by "numerous international awards and certifications."

IBA judges also presented Ribose with a Bronze Stevie Award for Best New Product or Service of the Year - Software - Security Solution, commenting, "Ribose empowers customers to devote their full energy to developing their business, while leaving security in their capable hands. It is a true enabler to many industries."

  • "We are delighted to congratulate Ribose on winning three Gold and one Bronze Stevies at the 13th Annual International Business Awards. Building on their remarkably successful debut last year, Ribose has continued to demonstrate its passion and commitment to excellence in secure cloud computing – taking home an impressive four Stevie Awards this year," remarked Michael Gallagher, president and founder of the Stevie Awards.

Details about The International Business Awards and the lists of Stevie Award winners are available at

Read More

Ribose Achieves Cloud Industry’s First Kitemark for Secure Digital Transactions

World's first collaboration platform certified to rigorous application security by BSI

Hong Kong – Ribose has become the world's first cloud Software-as-a-Service platform to achieve BSI's prestigious and highly selective Kitemark for Secure Digital Transactions, which certifies applications to ensure they have the appropriate security controls in place to handle highly sensitive information online through rigorous security testing.

Confidential financial and personal information is increasingly stored and shared, yet services themselves are subject to continuous threats and attacks at all times. According to PwC, 90% of large organizations have already suffered data breaches, and it is imperative for organizations to protect their own confidential information in the cloud through appropriate security.

Protection is especially necessary for collaborative data, which often contain the most valuable, yet most vulnerable assets of the organization – intellectual property, trade secrets or personal information about customers and employees, patient health information, and financial information.

BSI's Kitemark for Secure Digital Transactions is the most rigorous security testing program available to date that validates and evaluates the security of individual applications. Initially piloted by the banking industry, it is the latest member of the BSI Kitemark family, a symbol of trust and product quality that was first granted in 1903 and is highly recognized worldwide. BSI has also long been a pioneer in information security, being the originator of the international information security management system standard, ISO/IEC 27001.

An application certified to this Kitemark demonstrates rigorous validation to banking-grade security, as well as data protection measures of the organization that developed and operates the application, confirming it has been thoroughly tested and meets recognized standards for security, reliability and quality.

In order to receive the Kitemark for Secure Digital Transactions, the application or service must achieve three key criteria. First, a secure service must be developed and operated within a secure environment that emphasizes organizational security and process integrity. This criterion is best validated by requiring the organization itself to achieve and maintain certification to ISO/IEC 27001, covering all parts relating to the service and sensitive information it handles, including application development, infrastructure operations and transaction processing.

The second tenant of the Kitemark for Secure Digital Transactions is to achieve validation of application security, which requires the service to undergo rigorous internal and external penetration tests to the highest levels, ensuring there are no known significant vulnerabilities or security flaws. The application security tests are performed by a world-class, CREST-certified security team with over 30,000 hours of penetration testing experience, to the OWASP ASVS v2.0 standard – the most stringent in industry. Under Level 2 verification, Ribose is tested against 147 application security controls covering all facets of application security through black box and white box testing, from business logic to cryptography, static analysis to OWASP Top 10 vulnerabilities. This assures that the Ribose platform provides security assurance for significant transactions, including those that process healthcare information, implement business-critical or sensitive functions, or process other sensitive assets.

The third criterion is continual independent monitoring and assessment to ensure the security profile of the service provides assurance to the types of data it handles, including ongoing application security tests, organizational security audits, as well as Kitemark compliance audits and risk assessments.

According to Chris Lewis, Certification Director at BSI, "With a shift towards mobile and cloud computing, information security is increasingly becoming a key differentiator. Many organizations have good information security processes established but to achieve the BSI Kitemark for Secure Digital Transactions, their systems have to be regularly and independently tested with stringent penetration tests and monitoring. For Ribose to be first to achieve the BSI Kitemark for Secure Digital Transactions in the cloud industry, it reinforces their commitment to safeguarding their users' private information in their secure cloud services."

Emmanuel Hervé, Vice President of Standards and Professional Services, BSI Asia Pacific, and Managing Director, BSI Hong Kong, remarked, "The BSI name and the BSI Kitemark are recognized as symbols of trust, and we have a strong track record in promoting excellence in cyber and information security. The Kitemark demonstrates Ribose's commitment to the ongoing security of their cloud application and service. In becoming the first cloud service to achieve the new Kitemark for Secure Digital Transactions certification is proof of Ribose's pledge to be a pioneer in cloud security."

Ronald Tse, founder of Ribose, explained, "Our Kitemark certification is a testament to Ribose's unwavering commitment to providing a secure platform that prioritizes the protection of our customers' data. Building on our ISO/IEC 27017 cloud security and ISO/IEC 27018 cloud privacy certifications, this Kitemark provides reassurance that our application itself features appropriate protection for highly sensitive information."

"Ribose's highest bar approach to cloud security gives users the peace of mind to freely collaborate on mission critical projects, knowing their confidential information is protected to international cloud security standards, and now the BSI Kitemark. All of these certifications stand as testament to the security of the Ribose platform," Tse concluded.

Although no certification can ever guarantee 100% security, the BSI Kitemark for Secure Digital Transactions ensures a website or app has the appropriate security controls in place for the information it is handling.

Read More

Get Started

Getting Started