Skip to content

Unraveling the Cause and Impact of Third-Party Contractor Breaches

The increasing demand for more mobile workforces and accelerated operations and supply chains has led to an increased reliance on contractors and third-parties. In turn, however, there has been a surge in third-party contractor breaches. Unchecked, this evolving threat can potentially cripple the strongest of cybersecurity frameworks. Contractor breaches have surfaced as a key vulnerability, demanding a fresh perspective to mitigate these risks and fortify defenses.

The Escalation of Contractor Breaches

The upward trend of third-party contractor breaches is no random occurrence, but a product of the increasingly interwoven digital connections in today’s corporate sphere. This intertwined ecosystem necessitates the exchange of sensitive data and privileges with external partners, inadvertently creating a minefield of potential breaches.

Fueling this upswing is the disparate enforcement of cybersecurity protocols among these external entities. It’s a troubling reality that not all partners possess the required strict cybersecurity measures, thereby transforming them into the Achilles’ heel of an otherwise solid corporate security framework.

This vulnerability is further compounded by the rising sophistication of cybercriminals. Harnessing advanced technologies, they persistently probe for weak links, leveraging contractor access to bypass stringent corporate defenses.

Moreover, the escalating shift towards remote work adds another layer to this complexity. As businesses gravitate towards a distributed workforce, the risk of breaches amplifies, given the wide array of networks, devices, and locations involved. In this landscape, contractor networks form a substantial and sensitive portion, necessitating comprehensive security measures.

A clear understanding of this rising phenomenon is the first step towards implementing effective countermeasures. Cybersecurity leaders must be proactive in acknowledging this trend, addressing the unique vulnerabilities it presents, and fortifying their defenses to ensure the integrity of their corporate networks and enterprise applications.

Notable Contractor Breach Incidents

To underline the sheer scale and potential devastation of third-party contractor breaches, it’s instructive to highlight some of the most high-profile incidents. One significant example is the 2020 SolarWinds hack. Cybercriminals infiltrated the company’s software update system, a sophisticated maneuver that allowed them unauthorized access to a multitude of clients, including key US government agencies.

Another sobering example is the 2013 incident involving the retail giant, Target Corporation. In this case, a third-party HVAC contractor’s network credentials were compromised, granting the attackers access to sensitive information. The resulting breach exposed 40 million credit and debit card accounts, delivering a harsh blow to both the financial and reputational capital of the company.

These instances underscore the gravity of the situation and the critical need to strengthen defenses against contractor breaches. Each incident serves as a stark reminder of the need for robust cybersecurity measures across all levels of the corporate network, including those of third-party contractors.

The Repercussions of Contractor Breaches

The fallout from a contractor breach isn’t merely limited to the tangible financial hit; the effects can ripple out, touching numerous aspects of the organization. Direct costs from containment, remediation, and regulatory penalties are undoubtedly impactful, but they are merely the tip of the iceberg.

Beneath the surface lurks a multitude of long-term consequences that can subtly undermine an organization’s strength. Chief among them is the erosion of customer trust, a priceless asset that can take years to build but seconds to shatter. Once the veil of data security is pierced, restoring consumer confidence can prove to be an uphill battle, leading to significant customer attrition.

The aftermath of a breach also significantly taints an organization’s reputation, tarnishing its image in the eyes of its stakeholders. The resulting blow can cripple the organization’s competitive edge and shrink its market share. It could also lead to the loss of business opportunities as potential partners may hesitate to associate with a company perceived as a cybersecurity risk.

Moreover, breaches can have serious legal implications, especially if they involve personal data. Organizations may find themselves on the receiving end of lawsuits, which can drain resources, not only financially but also in terms of time and focus.

The employee morale too could take a hit as breaches often lead to stress and distrust within the workforce, impacting productivity and collaboration.

The severity and broad scope of these repercussions underline the importance of recognizing the potential dangers that third-party contractor breaches pose. A proactive approach, backed by robust solutions such as Network Access Control (NAC), is essential in protecting organizations from these deep-seated threats and ensuring the continued trust of customers and stakeholders.

NAC as a Defensive Shield Against Contractor Breaches

In the battle against third-party contractor breaches, Network Access Control (NAC) emerges as a robust and essential ally. This innovative technology plays a crucial role in bolstering a company’s cybersecurity measures, providing the capacity to regulate network accessibility meticulously.

NAC operates as a gatekeeper, scrutinizing and governing network access based on pre-defined policies. This feature is of paramount importance when dealing with third-party contractors who need access to specific portions of the network. By enabling granular control, NAC allows businesses to limit access to specific network segments, forming a protective barrier around their most sensitive and valuable information.

The deployment of NAC goes beyond just restricting access. It provides companies with a lens to view and manage all devices and users accessing their network, providing a comprehensive and real-time picture of the network’s security status. This visibility is invaluable in identifying potential threats, highlighting unusual activity, and initiating swift, appropriate responses.

In addition to control and visibility, NAC brings a layer of automated enforcement to the table. It continuously monitors the network, ensuring that all connected devices and users adhere to the organization’s security policies. Non-compliance automatically triggers responses, such as blocking access or isolating the offending device, preventing potential breaches before they can inflict damage.

Embracing NAC is a strategic decision, one that requires thorough planning and thoughtful integration into the overall cybersecurity framework. But, when done right, it has the potential to drastically reduce the risk of third-party contractor breaches, fortifying the company’s defenses, and ensuring the integrity of its corporate networks and enterprise applications.

As the sophistication and frequency of cyber attacks continue to rise, solutions like NAC are no longer optional; they have become a necessity. Incorporating NAC into an organization’s cybersecurity arsenal signifies a proactive approach to threat management, a commitment to safeguarding vital business data, and a dedication to maintaining customer trust.

Implementing NAC for Enhanced Cybersecurity

In the labyrinth of cybersecurity, implementing Network Access Control (NAC) serves as a strategic maneuver, a step towards fortifying your business against the rising tide of third-party contractor breaches. This process isn’t a mere add-on; it’s an integral thread in the complex fabric of your cybersecurity plan.

The journey commences with an in-depth analysis of your valuable data assets. Understand their nature, their sensitivity, and their role in your business operations. Once you have a clear picture, define the permissions around these assets, establishing who can access what and when. This foundational step forms the basis of your NAC policies, guiding the level of access provided to internal employees and external contractors alike.

As your NAC structure begins to take shape, it’s vital to maintain an eagle-eye perspective. Monitor the adherence to these policies diligently, keeping tabs on all the devices and users that tap into your network. With NAC, you’re not just a spectator but an enforcer. You have the power to instantly act on any non-compliance, neutralizing potential threats before they transform into full-blown breaches.

In our modern world where automation is becoming the norm, NAC’s capabilities should not be left behind. Integrating artificial intelligence and machine learning into your NAC framework can equip you with proactive threat detection and response, ensuring your defense is always a step ahead of potential cybercriminals.

In an era where the connection is synonymous with vulnerability, the robust security that NAC provides is invaluable. It’s not just a defensive shield but a beacon of trust for your customers, a testament to your commitment to safeguarding their data.

As we chart a course towards a future defined by cybersecurity, the necessity for measures like NAC cannot be overstated. Embracing NAC is more than just an investment in technology; it’s an investment in the integrity of your business, a promise to guard what’s most valuable against the ever-evolving threats of the digital world.

About Version 2 Digital

Version 2 Digital is one of the most dynamic IT companies in Asia. The company distributes a wide range of IT products across various areas including cyber security, cloud, data protection, end points, infrastructures, system monitoring, storage, networking, business productivity and communication products.

Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, different vertical industries, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About Portnox
Portnox provides simple-to-deploy, operate and maintain network access control, security and visibility solutions. Portnox software can be deployed on-premises, as a cloud-delivered service, or in hybrid mode. It is agentless and vendor-agnostic, allowing organizations to maximize their existing network and cybersecurity investments. Hundreds of enterprises around the world rely on Portnox for network visibility, cybersecurity policy enforcement and regulatory compliance. The company has been recognized for its innovations by Info Security Products Guide, Cyber Security Excellence Awards, IoT Innovator Awards, Computing Security Awards, Best of Interop ITX and Cyber Defense Magazine. Portnox has offices in the U.S., Europe and Asia. For information visit http://www.portnox.com, and follow us on Twitter and LinkedIn.。

Hybrid Work 是未來主流 準備好迎接新時代工作模式的來臨嗎?

一場世紀疫情,改變了全球公司企業的工作模式。隨著一切復常,Hybrid Work(混合辦公)也逐漸成為常態,這種上班模式能夠讓員工靈活自主地安排工作時間和地點,同時也能平衡辦公室的功能和運作。 然而,隨之而來的是一系列與網路安全相關的挑戰,例如自攜裝置(BYOD)和安全連接等問題。

在面對這些挑戰時,公司和員工應該如何減輕相關的網絡風險,並保護企業和客戶的資料安全呢? 雖然沒有通用的解決方案,但以下幾項措施可幫助保護公司免受損害:

一)減少攻擊面:員工使用未受監控的裝置,特別是在沒有限制的情況下,可能對企業數據構成重大威脅。 在這個時代,惡意攻擊者不斷尋找企業的弱點,因此減少潛在入侵點的數量至關重要。 企業需要監控所有存取其網絡的裝置,並設定安全標準和配置要求,以確保員工的裝置達到基本的安全水準。

二)更新軟件和操作系統:及時安裝安全性更新以修補已知漏洞的重要性不可小覷。每天都有關於廣泛使用軟件新漏洞的報導,因此確保裝置上的軟件和操作系統永遠保持最新狀態,可以減少已知漏洞被利用的風險,提供更好的防禦能力。

三)強化身分驗證和存取控制:在混合辦公環境中,員工可能使用不同的裝置和網絡連接進行工作。 為了保護敏感資料和系統,加強身分驗證和存取控制至關重要。企業可以實施多重身分驗證,如密碼加指紋或短訊驗證碼,確保只有授權人員能夠存取資料和系統。此外,使用虛擬專用網絡(VPN)建立安全的遙距連接,可加密資料傳輸並提供額外的保護層。

四)教育和培訓員工:教育和培訓員工是預防網絡風險的關鍵,企業應提供有關網絡安全的培訓,教育員工如何識別和應對釣魚郵件、惡意軟件等常見威脅。員工應該了解不隨意點擊陌生連結或下載可疑附件的重要性,並遵守企業制定的安全政策和最佳實踐。

總結起來,隨著混合辦公模式的普及,公司和員工都需要重新思考網絡安全的措施。減少攻擊面、更新軟件和作業系統、強化身分驗證和存取控制,以及教育和培訓員工都是重要的步驟。這樣可以幫助保護企業和客戶的資料安全,並降低潛在的網路風險。

About Version 2

Version 2 Digital is one of the most dynamic IT companies in Asia. The company distributes a wide range of IT products across various areas including cyber security, cloud, data protection, end points, infrastructures, system monitoring, storage, networking, business productivity and communication products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, different vertical industries, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

關於ESET
ESET成立於1992年,是一家面向企業與個人用戶的全球性的電腦安全軟件提供商,其獲獎產品 — NOD32防病毒軟件系統,能夠針對各種已知或未知病毒、間諜軟件 (spyware)、rootkits和其他惡意軟件為電腦系統提供實時保護。ESET NOD32佔用 系統資源最少,偵測速度最快,可以提供最有效的保護,並且比其他任何防病毒產品獲得了更多的Virus Bulletin 100獎項。ESET連續五年被評為“德勤高科技快速成長500 強”(Deloitte’s Technology Fast 500)公司,擁有廣泛的合作夥伴網絡,包括佳能、戴爾、微軟等國際知名公司,在布拉迪斯拉發(斯洛伐克)、布裏斯托爾(英國 )、布宜諾斯艾利斯(阿根廷)、布拉格(捷克)、聖地亞哥(美國)等地均設有辦事處,代理機構覆蓋全球超過100個國家。

Hybrid Work 是未來主流 準備好迎接新時代工作模式的來臨嗎?

一場世紀疫情,改變了全球公司企業的工作模式。隨著一切復常,Hybrid Work(混合辦公)也逐漸成為常態,這種上班模式能夠讓員工靈活自主地安排工作時間和地點,同時也能平衡辦公室的功能和運作。 然而,隨之而來的是一系列與網路安全相關的挑戰,例如自攜裝置(BYOD)和安全連接等問題。

在面對這些挑戰時,公司和員工應該如何減輕相關的網絡風險,並保護企業和客戶的資料安全呢? 雖然沒有通用的解決方案,但以下幾項措施可幫助保護公司免受損害:

一)減少攻擊面:員工使用未受監控的裝置,特別是在沒有限制的情況下,可能對企業數據構成重大威脅。 在這個時代,惡意攻擊者不斷尋找企業的弱點,因此減少潛在入侵點的數量至關重要。 企業需要監控所有存取其網絡的裝置,並設定安全標準和配置要求,以確保員工的裝置達到基本的安全水準。

二)更新軟件和操作系統:及時安裝安全性更新以修補已知漏洞的重要性不可小覷。每天都有關於廣泛使用軟件新漏洞的報導,因此確保裝置上的軟件和操作系統永遠保持最新狀態,可以減少已知漏洞被利用的風險,提供更好的防禦能力。

三)強化身分驗證和存取控制:在混合辦公環境中,員工可能使用不同的裝置和網絡連接進行工作。 為了保護敏感資料和系統,加強身分驗證和存取控制至關重要。企業可以實施多重身分驗證,如密碼加指紋或短訊驗證碼,確保只有授權人員能夠存取資料和系統。此外,使用虛擬專用網絡(VPN)建立安全的遙距連接,可加密資料傳輸並提供額外的保護層。

四)教育和培訓員工:教育和培訓員工是預防網絡風險的關鍵,企業應提供有關網絡安全的培訓,教育員工如何識別和應對釣魚郵件、惡意軟件等常見威脅。員工應該了解不隨意點擊陌生連結或下載可疑附件的重要性,並遵守企業制定的安全政策和最佳實踐。

總結起來,隨著混合辦公模式的普及,公司和員工都需要重新思考網絡安全的措施。減少攻擊面、更新軟件和作業系統、強化身分驗證和存取控制,以及教育和培訓員工都是重要的步驟。這樣可以幫助保護企業和客戶的資料安全,並降低潛在的網路風險。

About Version 2

Version 2 Digital is one of the most dynamic IT companies in Asia. The company distributes a wide range of IT products across various areas including cyber security, cloud, data protection, end points, infrastructures, system monitoring, storage, networking, business productivity and communication products. Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, different vertical industries, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

關於ESET
ESET成立於1992年,是一家面向企業與個人用戶的全球性的電腦安全軟件提供商,其獲獎產品 — NOD32防病毒軟件系統,能夠針對各種已知或未知病毒、間諜軟件 (spyware)、rootkits和其他惡意軟件為電腦系統提供實時保護。ESET NOD32佔用 系統資源最少,偵測速度最快,可以提供最有效的保護,並且比其他任何防病毒產品獲得了更多的Virus Bulletin 100獎項。ESET連續五年被評為“德勤高科技快速成長500 強”(Deloitte’s Technology Fast 500)公司,擁有廣泛的合作夥伴網絡,包括佳能、戴爾、微軟等國際知名公司,在布拉迪斯拉發(斯洛伐克)、布裏斯托爾(英國 )、布宜諾斯艾利斯(阿根廷)、布拉格(捷克)、聖地亞哥(美國)等地均設有辦事處,代理機構覆蓋全球超過100個國家。

23.12.7 Voyager released

Changes compared to 23.12.6

Enhancements

  • Added server log messages to Comet Server startup to indicate when certain subprocesses have finished initializing
  • Added a S3-compatible (Object Lock) storage vault template type
  • Improved Microsoft 365 incremental backups of SharePoint Sites and OneDrive to be more efficient and quicker

Bug Fixes

  • Fixed an issue causing the Comet Backup desktop app to enable Object Lock on a Storage Vault when Object Lock was not enabled
  • Fixed an issue with “unknown header” messages when connecting to a Storage Vault that has multiple files in the keys subdirectory
  • Fixed an issue causing some reporting filters to consistently use the first option instead of the selected option
  • Fixed an issue with the Recent Activity Email so it now correctly counts jobs which span multiple days
  • Fixed an issue with the Recent Activity Email so it now matches the same period as the Recent Activity Report in the Comet Server web interface
  • Fixed an issue with remote software updates for Windows clients
  • Fixed an issue with the Linux deb package not being present when listing the available software downloads via the API

About Version 2 Digital

Version 2 Digital is one of the most dynamic IT companies in Asia. The company distributes a wide range of IT products across various areas including cyber security, cloud, data protection, end points, infrastructures, system monitoring, storage, networking, business productivity and communication products.

Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, different vertical industries, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About Comet
We are a team of dedicated professionals committed to developing reliable and secure backup solutions for MSP’s, Businesses and IT professionals. With over 10 years of experience in the industry, we understand the importance of having a reliable backup solution in place to protect your valuable data. That’s why we’ve developed a comprehensive suite of backup solutions that are easy to use, scalable and highly secure.

Libdrop: File sharing through NordVPN

The Libdrop library allows NordVPN users to share files over Meshnet. In this article, we explain how we developed our file transfer system and the role Libdrop plays in it.

What is Libdrop?

Libdrop is a cross-platform library developed in the Rust programming language. It is compatible with Windows, MacOS, Linux, iOS, and Android. File sharing within the NordVPN environment is facilitated by the Libdrop library, which is available as an open-source resource on GitHub.

The goal of Libdrop implementation is to allow smooth and secure file sharing between users over Meshnet. The library should be easily integrated into the NordVPN application so API users can issue transfer requests, with the rest of the processes being carried out in the library.

Libdrop protocol

The Libdrop protocol enables peer-to-peer file sharing via both IPv4 and IPv6. In this process, the sender presents files to the receiver, who then selects specific files for download. Downloads are then initiated.

The transfer is live until one of the peers goes down or the transfer is explicitly canceled by either of the peers, after which the files are no longer available for download. This provides the user with a time window where they can decide which files they want to download now and in the future while the transfer is still up.

High-level overview of communication between two peers.

Communication and low-level details

Let’s take a closer look at the technical details of the communication process, and how we developed our current setup.

gRPC

At first glance, it seemed evident that our easiest course of action would be to focus on the HTTP server and client because this is very easy to use and understand, as well as being a time-proven technology. We could make a REST endpoint and just proceed with a regular HTTP download.

To enhance speed and control, we opted for gRPC. Because gRPC is a binary protocol it has less overhead. It is also strongly typed, making errors harder to introduce. gRPC technology automatically generates the code needed for both the client and the server, making it an excellent fit. In fact, Libdrop was originally built on gRPC.

Initially, it was very comfortable to use — both the client and the server code just worked. We could issue a certain call via the wire and expect the appropriate function to be called on the peer.

However, as time went on, we found that debugging gRPC presented some challenges, and the “black box” nature of it began to concern us. The generated code also had little control over the socket itself because it was abstracted too far away to gain direct access. Consequently, we transitioned from gRPC to WebSockets in pursuit of a more adaptable solution.

WebSockets

Unlike gRPC, WebSockets is not strongly typed, which offers a degree of flexibility. This flexibility comes at the cost of making it easier for bugs to appear. However, there’s no automatic code generation, which is a plus.

The ability to easily introduce versioning was another advantage. We just need to have the URL in the form of “ws://{addr}/drop/{version}/query.” It also helped that WebSockets is a fairly easy-to-understand technology that works in tandem with HTTP so the traffic can be inspected easily as well as debugged.

Choosing WebSockets turned out to be a wise decision. It led to a reduction in code complexity and greatly enhanced our understanding of the data flow. Plus, having written the code ourselves, we felt fully in control of the system.

Simplified representation of backward compatibility between Libdrop versions.

Rust and Tokio

Due to the nature of the Libdrop library’s heavy IO and event-driven architecture, the codebase contains a lot of asynchronous flows which could have been a tough problem. However, Rust’s great implementation of async alongside the Tokio library proved to be a great combination in dealing with this and avoiding potential crashes.

Rust shines because the borrow checker is really persistent about lifetimes and safety while developing because it prevents you from compiling incorrect code that breaks ownership rules.

We are also fairly safe from panics as we spend most of the time in Tokio tasks and those are executed in catch_unwind. This means that if the Tokio task panics it will simply yield an error instead of tearing the whole thread down.

Still, not every place in the codebase runs in a Tokio task, and so for those cases where a Tokio task is not involved, we tune Rust linter to detect unwrap() calls in the codebase that could potentially invoke a panic handler.

NordVPN uses Rust in numerous libraries and panics are handled in custom panic handlers. These handlers wrap the error and emit it via callback so the API user receives it and can properly log it.

API and the dilemma: To block or not to block?

We’ll now explore the choices we made around our API.

SWIG

For the API we used SWIG, which was already battle-tested and proven by libraries such as Libtelio. SWIG automatically generates FFI binding code for all target platforms, but it’s not without limitations. While it’s very easy to pass primitives such as integers and strings, higher-order structures are not that comfortable. In a compromise, we accept certain parameters as JSON strings.

JSON strings, while slightly less optimal, are a great solution to the problem. All mainstream languages know how to parse it or have a popular library ready to do so. The downsides to JSON strings are less type safety and a need for greater control to avoid breaking the conformity.

Event-driven architecture and reporting

One question that arose around the API was whether or not we should block it. Based on the API users we opted to not make the API block and communicate via events. This provides more complexity on the API design side but it provides an event-driven API and means that API users don’t need to care about threads. App developers are usually experienced in working with callbacks so this architecture suits them well.

Callbacks are used for event notification and reporting so the API user can receive reports and log them where appropriate. Events are for reporting. Both events and reports are passed on as JSON-encoded strings.

Errors are reported when the parameters to the API are incorrect or when a runtime error is encountered.

Types of events

Events are emitted for various milestones:

A transfer was requested.

The transfer was successfully queued (the API returned no error) and contains all the paths collected.

A file upload/download was started, finished, or failed.

A file upload or download progressed.

User experience and history tracking with SQLite

When considering how to track transfer records and states, our team opted for a local SQLite database that users can easily inspect.

We chose SQLite for its flexibility and cross-platform availability, and because it offers a strong query system that makes it user-friendly.

The widespread use of SQLite in various applications gave us added confidence in its reliability and performance, making it an easier choice over alternatives like JSON files or custom binary formats.

Database limitations: A read-only resource

The SQLite database does not control Libdrop’s operations in any way. Its role is purely read-only. The SQLite database serves to offer our users a convenient API for accessing transfer histories and logs, without impacting the underlying functionality of Libdrop.

In cases where we fail to open or migrate the SQLite database successfully we can remove it entirely and try again. If it fails again we can then use an in-memory database that provides proper functionality while the app is alive.

Security and validation

Security in Libdrop has several key focuses:

  • Ensuring that the right sent file reaches the receiver.

  • Ensuring that a transferred file is immediately picked up and scanned by NordVPN’s Threat Protection feature.

  • Ensuring that foreign apps cannot make calls directly to the peer.

  • File validation: Ensuring integrity from start to finish

As part of our commitment to ensuring a reliable file transfer process, we take several precautions. The moment a file is selected for upload, we immediately fetch its metadata, specifically capturing its size and checksum. This information is then shared with the receiver to ensure both parties have synchronized data right from the start.

During the actual upload, we keep a close eye on the data transfer. We compare the size of the transferred data with that of the received data, allowing us to detect any inconsistencies. If a discrepancy is found, the transfer is terminated, ensuring that only accurate and complete files proceed.

At the receiving end, a fresh checksum is calculated once the correct amount of data is received. If this calculated checksum doesn’t align with the initially shared checksum, the transfer is terminated. In such cases, the transfer is reported and stored as a failed transfer on both ends.

Threat Protection

In both Windows and MacOS, files often carry metadata indicating their origin. Without this information, antivirus software would need to scan each and every file for threats, which isn’t efficient.

Applications regularly produce many files, the majority of which are legitimate and harmless so it’s common practice to embed specific markers within these files. This allows antivirus tools to identify and scan files faster.

On Windows and MacOS, we immediately attach these markers once files are downloaded. This ensures that the Threat Protection scanner can promptly identify and assess them, leaving no gap during which they might be accessed without a prior security check.

MacOS uses kMDItemWhereFroms while Windows uses Zone.Identifier.

Socket security

Finding the protocol and communication method used by Libdrop is straightforward. The port we use is 49111, and the address is in the format ws://{addr}/drop/ (this can all be seen in the source code provided on GitHub).

While it’s true that you can bypass Libdrop by directly connecting to this URL with cURL or similar tools, this is a situation we’d like to avoid. Our aim is to maximize usability and minimize the risks for users.

Since we considered user experience, we also explored the idea of automatically accepting files from trusted peers. However, we recognized the potential risk of someone abusing this feature to spam others, and so decided against it.

To enhance security, we implemented an authorization system based on Meshnet keys. These keys are retrievable via API after successful user authentication. Since NordVPN is consistently aware of peer public keys, we’re able to use this information to validate connections at the Libdrop communication level. If a user fails the authorization process, the transfer is terminated — no questions asked from the receiver side.

To accomplish this, we employ HMAC with SHA-256 and generate a shared key using the Diffie-Hellman algorithm. When initiating a connection, the NordVPN app provides the public key of the peer. Combined with the private key we already possess from the time of initializing Libdrop, we’re able to calculate this shared key. Both sides of the transaction do the same, and the process is only deemed successful if the keys match.

We’re aware that this system isn’t bulletproof. For instance, users might find a way to exploit a Linux CLI app. However, we believe these improvements represent a significant step towards creating a safer and more reliable experience for our users.

Permissions and user access

Integrated into the NordVPN application, Libdrop operates under the constraints of user permissions as enforced by the operating system. This ensures that users can only share files to which they have ownership rights. To initiate a file transfer, a connection between peers must first be established. Enabling file sharing for a specific Meshnet peer allows one to start receiving files from that device. Disabling file-sharing permissions for a Meshnet peer will halt incoming transfers from that particular device. You can read more about file-sharing permissions here.

On the Linux platform, we faced an additional challenge because the app needed to run as root due to Libtelio’s requirements. Running Libdrop as root was out of the question, as it would have unrestricted access to the entire file system. To navigate this, we set Libdrop up to run as a user process that communicates with the NordVPN daemon.

Fortunately, mobile devices didn’t present the same issue, thanks to their robust sandboxing. Likewise, applications on Windows and MacOS operate with user permissions, so there were no concerns on those platforms either.

It’s worth noting that Libdrop isn’t designed for multi-user scenarios, as it uses a hardcoded port number, 49111. However, it can technically bind to different network interfaces without any problems.

File aggregation

To simplify the user experience and streamline integration, we designed Libdrop to automatically enumerate files in the paths provided. These paths can point to either individual files or directories, allowing for greater flexibility. This setup posed several challenges, however:

  • How can we recreate the directory hierarchy?

  • What do we do when we encounter a symlink?

  • What happens if there are too many files?

  • What are the issues with Android permissions?

Let’s take a closer look at how we overcame these challenges.

Recreating the directory hierarchy

For hierarchies, we used the same rename logic as we did with the files, but only for the root level directory. We only communicate the path with the peer starting at the root level of the provided path, meaning that if there’s a directory structure of C:\Files\Photos\Cats\Cute and the user adds C:\File\Photos then we only send Photos\*, the receiver is unaware of the C:\Files portion. This was important because, if the receiver was aware of that portion, personal details could be leaked.

Interestingly, directory separators are not cross-platform. Windows supports both \ and / while Unix-based OSs (Android, iOS, MacOS, Linux) support only /. Initially, we just communicated with the path as-is, which then produced some fun results. Sending a path, “Photos\Cats\1.jpg,” from Windows to a Linux machine would produce a file with that name instead of two directories and one file when transferring a directory.

As an easy solution, we chose the following approach: when the user sends a directory and we aggregate a path, we split it with the native path separator and then glue it back together using the universal one — /. We can then use that path going forward.

We decided that, when a symlink is encountered, we would return an error. This reduces the chances of possible security issues arising around certain files.

Symlinks reduce the visibility of operations, creating situations in which a user might think they are sending one set of files while in reality a different group of files are picked up.

What happens if there are too many files?

In Libdrop we allow for certain configuration values when initializing the library, ensuring that it can be flexible across multiple platforms. To help with interoperability, we decided to add two values: file limit and file depth limit.

Including these two values means that deep directories result in an error. An error is also generated when the file limit is reached. We think it’s better to be explicit than implicit, and so we’d rather generate an error than send an incomplete file transfer.

Android permission issue

Using the transfer system on Android presented us with some challenges. In order to use the POSIX file system, the API needs appropriate permissions in the application manifest. Direct file system access requires that the application is placed within a single specific category, but this was a problem because NordVPN is not just a file or backup manager.

A solution was found when we did an experiment and found that upon selecting the file in Android, it was possible to detach the file descriptor. This enabled us to use POSIX with the provided descriptor:

Testing and dogfooding

We used Python and Docker to load the compiled library and imitate conversation between two peers. This allowed us to reproduce the bugs by writing test cases, easing our concerns about bigger changes in the codebase.

The testing framework allowed us to generate scenarios quickly using a Python API where we can imitate all the actions a user might take alongside the events we would expect as a result.

Tests can’t perfectly replicate what happens in real life so we still constantly seek QA feedback alongside the relevant aggregated logs. Still, having an easy-to-use test framework proved to be very beneficial and boosted our confidence during development.

Meshnet protocol and wire safety

NordVPN’s file-sharing feature is built on Meshnet, a peer-to-peer protocol. This design allows for the shortest possible data path between computers, eliminating the need for third-party cloud storage or service providers.

One caveat is that both Meshnet nodes must be online simultaneously for the transfer to take place. All traffic between Meshnet nodes, including file sharing, is authenticated and encrypted via WireGuard’s cryptography, ensuring that even Nord Security cannot access the contents of the files or the traffic being transmitted. You can read more about the Wireguard protocol here.

Thanks to Libtelio and Meshnet, Libdrop doesn’t need to use any encryption of its own because double-encryption would be unnecessary. If you’re considering implementing Libdrop into your own product, you should integrate transport layer security (TLS), which should be fairly trivial to implement.

In summary, NordVPN’s File Sharing feature offers a secure, efficient, user and API-user-friendly method for peer-to-peer file transfers through the Meshnet.

About Version 2 Digital

Version 2 Digital is one of the most dynamic IT companies in Asia. The company distributes a wide range of IT products across various areas including cyber security, cloud, data protection, end points, infrastructures, system monitoring, storage, networking, business productivity and communication products.

Through an extensive network of channels, point of sales, resellers, and partnership companies, Version 2 offers quality products and services which are highly acclaimed in the market. Its customers cover a wide spectrum which include Global 1000 enterprises, regional listed companies, different vertical industries, public utilities, Government, a vast number of successful SMEs, and consumers in various Asian cities.

About NordLayer
NordLayer is an adaptive network access security solution for modern businesses – from the world’s most trusted cybersecurity brand, Nord Security.

The web has become a chaotic space where safety and trust have been compromised by cybercrime and data protection issues. Therefore, our team has a global mission to shape a more trusted and peaceful online future for people everywhere.

About NordLayer
NordLayer is an adaptive network access security solution for modern businesses – from the world’s most trusted cybersecurity brand, Nord Security.

The web has become a chaotic space where safety and trust have been compromised by cybercrime and data protection issues. Therefore, our team has a global mission to shape a more trusted and peaceful online future for people everywhere.

×

Hello!

Click one of our contacts below to chat on WhatsApp

×