Articles from article category
Setting up security scanners for your SFTPPlus MFT Server
Wed 20 June 2018 | article security
Introduction
The following is a short guide on how you can set up a security scanner for your SFTPPlus MFT Server installation. For this guide, we have chosen a free and open source scanner, OWASP Zed Attack Proxy or zaproxy, as an example.
Of course, there are a number of other software and tools that you can use and all with varying mileage.
We can also cover these other tools, depending on interest. Therefore, if you would like to see more of these types of posts from SFTPPlus, please make sure to contact us. If you are not familiar with the terms, or need to do some background reading, you can scroll down to the Other resources section first.
To be kept up to date with the latest developments, please sign up to our security advisories.
About OWASP Zed Attack Proxy or zaproxy
For our server-side scan of the SFTPPlus MFT service (HTTPS and HTTP) and Local Manager, we used the OWASP Zed Attack Proxy or zaproxy which is a free and open source penetration testing tool released by OWASP and developed for website application security testing.
After running the application, you can generate a report for further consumption. The report contains OWASP ZAP specific terminology. These are listed below for your reference.
WASC ID This is the ID provisioned by the Web Application Security Consortium (WASC) Threat Classification project. Read more about WASC here.
CWE ID This is the ID provisioned by the Common Weakness Enumeration (CWE) project. Read more about CWE here.
Confidence This is the description of how confident the result is in the validity of the finding.
- False Positive - for potential issues that one will later find is actually not exploitable.
- Low - for unconfirmed issues.
- Medium - for issues that zaproxy is somewhat confident in.
- High - for findings that zaproxy is highly confident in.
- Confirmed - for confirmed issues.
Risk Description of how serious the risk is. The risk shown is from the report generated by zaproxy.
Source This is the ZAP policies code. Read more here.
Using zaproxy to conduct an active scan on SFTPPlus services
Prerequisite
As a standard prerequisite, you will need the zaproxy application, a version of SFTPPlus Server software and consent to conduct these types of scanning activities if you are doing so on behalf of a group or organization.
For this example, we will be conducting an active scan of the SFTPPlus HTTP service available on the default port 10080. There are also other web-browser based services that you can scan such as the SFTPPlus Local Manager on port 10020 and the HTTPS service available on the default port 10443.
In addition, scanning can affect availability. We recommend a backup of your database.
What is an active scan?
Active scanning will attempt to find potential vulnerabilities by using known attacks against the selected target, in this case the SFTPPlus HTTP service. It should be noted that active scanning can only find certain types of vulnerabilities. Logical vulnerabilities, such as broken access control, will not be found by any active or automated vulnerability scanning. Manual penetration testing should always be performed in addition to active scanning to find all types of vulnerabilities.
Also, scanning will unearth results that also need to be consumed and understood by the relevant parties.
Setting up an active scan
In order to attack the authenticated part of the HTTP service, we will need to add the HTTP session token in the zaproxy application.
Go to 'Tools' -> 'Options' -> 'HTTP Sessions' -> add chevah_http_session in the Token Name. Make sure that this token is enabled then select 'OK'.
See screenshot below:
Make sure that the 'HTTP Sessions' tab is open. To view the 'HTTP Sessions' tab, go to 'View' -> select 'Show Tab' -> then 'HTTP Sessions'. At this stage, the pane is empty but it will soon be populated with the correct values in the later steps.
In the 'Quick Start' pane, add http://localhost:10080 in the 'URL to attack' field. This is the URL for the SFTPPlus HTTP web-browser based file manager service. Do not press 'Attack', instead scroll down and select 'Launch Browser' for Chrome.
See screenshot below:
The reason why you cannot go straight to attacking/scanning the resource is because it still requires authentication. If not authenticated with zaproxy, you will see an error Failed to attack the URL: received a 401 response code.
After selecting 'Launch Browser', a new Chrome browser will launch and you will start seeing activity in the 'Sites' pane. The browser should have 'Explore your application with ZAP' as the landing page.
Open the URL http://localhost:10080 in the Chrome browser and login to the test file transfer account.
Once logged in, you should now see http://localhost:10080 in the 'Sites' pane.
In the 'Sites' pane, right-click over the http://localhost:10080 URL and select 'Include in Context' then 'Default Context'.
In the 'HTTP Sessions' pane, you should now see that there is a new session added for the site localhost:10080 with values populated in the 'Session Tokens' Values' field.
If you do not see any values, launch the SFTPPlus HTTP service again and log in.
Back in the 'Sites' pane, right click over the localhost URL, select 'Attack' -> 'Active Scan'.
For one of our tests, we only wanted to scan the HTTP headers to see if the version of SFTPPlus would be able to escape possible CSRF attacks. In this case, for the 'Input Vectors' tab, only the 'HTTP Headers, All Requests' vector was selected. You can choose other vectors according to your own requirements or you can opt to choose all vectors.
Allow the scan to work. The times can vary.
Alerts are located in the 'Alerts' tab. You can read what the Alert is about from this pane. Please note that alerts may include alerts from associated third party services.
You can generate the report after the scan has completed.
Select 'Report' on the top menu > 'Generate HTML Report' and save the file.
Other reporting file formats can be used such as JSON, XML, Markdown.
Example scan result
Below is an example scan of what you may find. Please note that results will differ depending on factors such as your installation, configuration and SFTPPlus version:
Low Risk: Web Browser XSS Protection Not Enabled Details: URL: Risk: Low Confidence: Medium CWE ID: 933 - Security Misconfiguration - https://cwe.mitre.org/data/definitions/933.html WASC ID: 14 - Server Misconfiguration http://projects.webappsec.org/w/page/13246959/Server%20Misconfiguration Source: Passive (10016 - Web Browser XSS Protection Not Enabled) Description: Web Browser XSS Protection is not enabled, or is disabled by the configuration of the 'X-XSS-Protection' HTTP response header on the web server Other info: The X-XSS-Protection HTTP response header allows the web server to enable or disable the web browser's XSS protection mechanism. The following values would attempt to enable it: X-XSS-Protection: 1; mode=block X-XSS-Protection: 1; report=http://www.example.com/xss The following values would disable it: X-XSS-Protection: 0 The X-XSS-Protection HTTP response header is currently supported on Internet Explorer, Chrome and Safari (WebKit). Note that this alert is only raised if the response body could potentially contain an XSS payload (with a text-based content type, with a non-zero length). Solution: Ensure that the web browser's XSS filter is enabled, by setting the X-XSS-Protection HTTP response header to '1'. Reference: https://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet https://blog.veracode.com/2014/03/guidelines-for-setting-security-headers/
Upon seeing reports in regards to XSS vulnerabilities, we have fixed user input escaping where error messages where done without the user input and also added validation of the user input.
Therefore, the HTML rendering code for the HTTP service has been added to ensure that this is not the case to secure user input.
As part of this change, we have also added new automated tests for the HTTP service as part of our quality assurance reviews.
Example SFTPPlus audit log during a scan
As you can see, the scan generated some potential CSRF attacks which SFTPPlus version 3.34.1 detected and therefore disconnected against:
| 40018 2018-06-07 11:05:43 Process Unknown 127.0.0.1:58871 Forcing client disconnection at "/unwanted.js" after receiving 0 bytes in body. Response: 400 Possible CSRF
The above is just an example of what you may see in the audit log and is not related to the scan result in the previous section.
The reason why you are seeing this in the audit trail is that we now enforce requests from the same origin including basic requests such as GET and even older HTTP requests such as POST.
This is to ensure that requests from the outside boundary (the Internet) are not interacting with the safe confines of the HTTP file service or the Local Manager.
We have ensured that the browser is forced to download data, rather than execute data, after checking the Origin and Referrer headers are of the same source.
What to do if you find an issue
The first step is to check if you have the latest version of SFTPPlus. New versions will contain not only new features, but also defect fixes including security bug fixes.
The second step is to look at the type of alert and to do a manual confirmation of the feasibility of the alert (for example, if it's a false positive) and to confirm the results from zaproxy. The alerts are meant to be guidance for further investigations.
If there is a bug found, please do not hesitate to contact SFTPPlus Support with your defect report.
Keep up to date by signing up to our security advisories
SFTPPlus continues to be focused on automated, non-interactive file transfers in a secure fashion. Our security practices have been designed to make this a reality for our clients.
To be kept up to date with the latest security advisory and news, please subscribe to out newsletter here.
Other resources
The details in this resource is for guidance only. Influences such as own security policies, requirements, and threat models should be considered when adopting this type of guidance.
This resource is written as of SFTPPlus version 3.34.1.
SFTPPlus MFT bewerten
Die in diesem Artikel aufgeführten Funktionen sind nur einige ausgewählte Funktionen aus vielen heute verfügbaren Integrations- und Konfigurationsoptionen. Sprechen Sie mit dem Support-Team über Ihre Anforderungen an die Datenaustausch-Software.
SFTPPlus MFT Server unterstützt FTP, Explizites FTPS, Implizites FTPS, SFTP, SCP, HTTP und HTTPS.
SFTPPlus MFT ist als On-Premise-Lösung erhältlich, die auf Windows, Linux und macOS unterstützt wird.
Es ist auch in der Cloud als Docker-Container, AWS- oder Azure-Instanzen und viele andere Cloud-Anbieter verfügbar.
Fordern Sie mit dem unten stehenden Formular eine Testversion an.
IPv6 support for HTTP/S, FTP/S, SFTP and SCP File Transfer Services
Mon 04 June 2018 | article infrastructure
Why get ready for IPv6?
According to the Akamai Q1 2017 State of the Internet Connectivity Report, "approximately 5 million IPv4 addresses were depleted from available pools at the Regional Internet Registries in the first quarter, leaving approximately 39 million addresses remaining."
In response to the steady depletion of IPv4 addresses, we see greater adoption of many large mobile and broadband networks actively rolling out IPv6 connectivity. According to World IPv6 Launch, among the top 10 participating networks with more than half IPv6 deployment rates include Comcast, ATT, Verizon Wireless and Deutsche Telekom AG.
Now is a good time to brush up on your knowledge of deploying IPv6 in your organization. For those with a lack of knowledge or training in IPv6 implementation, there is an even greater urgency when addressing the potential security impact of the rollout in the organization. Such scenarios are amplified when administrators do not have the required level if minimal expertise in IPv6 to ensure there is protection against threats. If you are in the front-line of IPv6 deployment and file transfers in your own organization, you will find this post of useful interest.
A brief introduction to IPv6
IPv6 was first introduced by IETF in 1998, via RFC 2460, which has since been updated via RFC 8200 published in July 2017. This is the new version of the Internet Protocol and a successor to IPv4.
The main updates are as follows:
Expanded addressing capabilities
This involves increasing the IP address size from 32 bits to 128 bits. This allows greater support in addressing hierarchy, more addressable notes, scalability of multicasting, and addition of anycast address.
Simplified header formats
This involved dropping or making optional some of the IPv4 header fields.
Improved support for extensions and options
The way IP header options are encoded allows for more efficient forwarding and greater flexibility for new options.
Flow labeling capability
This allows sender requests to be treated in the network as a single flow.
Authentication and privacy capabilities
Extensions are added in order to support authentication, data integrity, data confidentiality.
While it has been some length of time since the first introduction, each day brings forward the pressing need to implement IPv6 as IPv4 addresses become exhausted. Greater adoption for IPv6 by vendors, including increase in knowledge and support, means that deployment is now more feasible for administrators than ever before.
IPv6 and SFTPPlus
Enabling IPv6 on SFTPPlus for HTTP/S, FTP/S, SFTP and SCP
SFTPPlus supports configuring IPv6 addresses for the HTTP, HTTPS, FTPS, FTP, SFTP and SCP file transfer services.
We have written a starter guide with details on how you can enable IPv6 with SFTPPlus. Please to go to the documentation section on IPv6 support.
When configuring a new service on SFTPPlus, an IPv6 address can be used. To accept connections on all available IPv6 interfaces, simply use the :: address like the simplified test configuration below:
[services/ftps] enabled: Yes name: FTPS Service on an IPv6 address. address: ::1 port: 10021
Please consult the configuration documentation for more details about each type of file transfer service.
Enabling IPv6 on SFTPPlus Local Manager
Similar to enabling IPv6 on file transfer services, you can set the SFTPPlus Local Manager to listen in on an IPv6 address via the same address field as the services.
Administrators can add this via the SFTPPlus Local Manager Services section:
Enabling authentication methods with IPv6
We support IPv6 address when authentication file transfer accounts via the ldap authentication method and via the HTTP API authentication method.
IPv6 implementation and security considerations
The following are some considerations in implementing IPv6 securely.
Conduct an inventory audit
Tag which file transfer scenarios (server, client, protocol) require IPv6 implementation and support.
Communicate with your vendors
Notify your vendors as to what level of support is provided for IPv6. If not supported, inquire if there will be plans on the product roadmap for the support.
We have added IPv6 support for file transfer services, as of SFTPPlus version 3.33.0, in response to customer needs to roll out such support.
Conduct a security-focused audit on IPv6 deployment
Both IPv4 and IPv6 share similar properties when it comes to security. In this case, take an audit of which of these properties can be carried over within an IPv6 deployment.
Last but not least - do not overlook security risks and requirements for IPv6
Network administrators overlooking the effects of IPv6 in their network will face security risks. IPv6 packets is susceptible to attacks like MITM (Man-in-the-Middle) attacks. Bad actors may also attempt to eavesdrop by making use of upper-layer protocols such as TLS (Transport Layer Security) or SSH (Secure Shell). Another potential security threat is bypassing IPv4-only firewalls and ACLs using functional IPv6 tunneling protocols as described in the Carnegie Mellon University CERT/CC blog post here.
IPv6 troubleshooting
The following are introductory advice for those troubleshooting IPv6 within a file transfer scenario.
- Ensure that the protocols to be used are fully tested with SFTPPlus.
- Ensure that FTP proxies, firewalls and other layer 7 technologies properly support IPv6.
- Ensure that any other boundary facing technologies are implementing IPv6 correctly.
It is also good to keep note of future changes to the protocol. For example, design changes to the new IPv6 extension header could mean security implications based on how the new changes work with existing extension headers.
Those evaluating SFTPPlus and customers with a valid support contract can leverage help from the SFTPPlus Support team for queries in regards to SFTPPlus and IPv6 deployment.
Other resources
- World IPv6 Launch
- SANS Institute InfoSec Reading Room guide on IPv6 Attack and Defense
- IETF specification on IPv6 on RFC 8200
- List of IPv6 RFCs and Standards Working Groups
- Infosec Today on basic IPv6 Security Considerations
- Internet Society IPv6 Case Studies
This resource is written as of SFTPPlus version 3.34.0.
The details in this resource is for guidance only. Influences such as own security policies, requirements, and threat models should be considered when adopting this type of guidance.
SFTPPlus MFT bewerten
Die in diesem Artikel aufgeführten Funktionen sind nur einige ausgewählte Funktionen aus vielen heute verfügbaren Integrations- und Konfigurationsoptionen. Sprechen Sie mit dem Support-Team über Ihre Anforderungen an die Datenaustausch-Software.
SFTPPlus MFT Server unterstützt FTP, Explizites FTPS, Implizites FTPS, SFTP, SCP, HTTP und HTTPS.
SFTPPlus MFT ist als On-Premise-Lösung erhältlich, die auf Windows, Linux und macOS unterstützt wird.
Es ist auch in der Cloud als Docker-Container, AWS- oder Azure-Instanzen und viele andere Cloud-Anbieter verfügbar.
Fordern Sie mit dem unten stehenden Formular eine Testversion an.
Data Loss Prevention - Systems, Software and Strategies
Thu 19 April 2018 | article infrastructure
What is Data Loss Prevention (DLP)?
Data Loss Prevention (or DLP for short) is the application of technology and policies in order to detect and prevent potential data breaches and data ex-filtration. Data that is of particular interest include sensitive emails, documents and other information leaving the organizational boundary. Data Loss Prevention is one out of many options used in today's arsenal of defense against threats and attacks, and also a layer to harden overall data security.
While SANS may write that DLP is primarily concerned with identifying sensitive data, we have taken on board a more holistic look beyond identification.
Data loss prevention can be in the form of the following:
- Network-based DLP.
- Endpoint DLP which monitors on the application level such as email client used.
- Network policies enforced for information leaving the network.
- UI, for example in the form of pop up tips, that will help reinforce data protection awareness training.
- Common dictionaries and regular expressions syntax used to create content protections rules.
- Staff awareness training.
- Using file tagging to secure data that can contain intellectual property or trade secrets.
The above is not an exhaustive list.
Data loss prevention tend to be interchanged with data leak prevention when the situation involves the lost data being acquired by an unauthorized third party. However for this article, we will also include both data loss and data leak scenarios under the overall DLP umbrella term.
Upon application of DLP, you can ensure compliance with regulations governing use of data and ensure obligations for best practices are being met. These compliance and regulations include Health Insurance Portability and Accountability Act (HIPAA), (Payment Card Industry) PCI compliance, and General Data Protection Regulation (GDPR) to name a few.
Data loss prevention in file transfers
Within the territory of file transfer, data loss happens via information being inadvertently or intentionally sent to an unauthorized individual through the use of either file transfer software or file transfer protocols. It can also happen due to human ignorance or negligence - for example, uploading sensitive documents using an unapproved cloud provider.
Imagine a scenario where an employee in a large company has just transferred a series of files containing confidential data. Or another scenario where a small business owner has data residing on USB (unencrypted) and has since been lost.
It is with these two scenarios where we see data loss prevention not being applied for both data in transit (the transfer of files containing confidential information) and data at rest (the files residing within the USB).
Types of data in file transfers
As an introduction, the following paragraphs (from Wikipedia) summarizes the differences between data at-rest, data in-use and date in-motion.
Data at-rest
"Data at rest" specifically refers to old archived information. This information is of great concern to businesses and government institutions simply because the longer data is left unused in storage, the more likely it might be retrieved by unauthorized individuals. Protecting such data involves methods such as access control, data encryption and data retention policies.
Data in-use
"Data in use" refers to data that the user is currently interacting with. DLP systems that protect data in-use may monitor and flag unauthorized activities. These activities include screen-capture, copy/paste, print and fax operations involving sensitive data. It can be intentional or unintentional attempts to transmit sensitive data over communication channels.
Data in-motion
"Data in motion" is data that is traversing through a network to an endpoint destination. Networks can be internal or external. DLP systems that protect data in-motion monitor sensitive data traveling across a network through various communication channels.
Data Loss Prevention and SFTPPlus MFT
DLP monitoring network activity
The DLP software is integrated into the network using a network TAP (terminal access point) port to perform real-time scanning and analysis of network traffic.
In addition to DLP inspection for data in-transit, DLP inspection can also be applied for data at-rest, such as within an FTPS or SFTP file server.
DLP and SFTPPlus MFT configuration options
For managed file transfer, data in-motion is of priority concern and is within the realm of control for file transfer software. Data at-rest is also another concern, but controls can also be distributed to controls permissioned by the OS file system.
The use of secure file transfer protocols as well as other processes for secure file transfer should form part of the stock for data loss prevention - transmission security. These services and configuration options can be configured using SFTPPlus.
An SFTPPlus feature, Digital signature validation can be configured to check if files have a valid signature:
SIGNED_CONTENT,SIGNATURE
The signature validation process is based on the RSA Digital Signature Algorithm PKCS#1 v2.1 also known as RSASSA-PSS and documented in RFC 3447.
Post process actions may also be added as part of the automated, client transfer rule in order to contain policy rules. A file dispatcher can then be set so that a transfer is quarantined via a separate folder if it has failed a policy rule.
A UUID prefix can also be appended to a file name in order to create unique names so that for each data uploaded, even if duplicate, there is a unique filename.
For authorization control, SFTPPlus administrators can apply permissions to specific groups or users. These permissions will help determine the access to which resources within the file transfer home directory of that user, and other the specific access rights. Permissions can also be set depending on regular expressions (regex), such as disallowing certain file formats. Through the options covered above, administrators can secure data or set permissions to ensure certain resources are not being inappropriately accessed or changed.
For more details about the above configuration options, please consult our documentation or talk to the Support team.
Audit trails for DLP
While operating, SFTPPlus will emit a set of events. Each event has a unique ID and defines a specific operation carried out by the server.
An example of an audit trail upon first connection to an FTP service is below:
| 20076 2018-03-07 19:44:05 ftp-only-1 Process 0.0.0.0:0 Service “ftp” started on “0.0.0.0:10023” using “ftp” protocol. | 10033 2018-03-07 19:44:10 ftp-only-1 Unknown 127.0.0.1:51290 New FTP/FTPS client connection made.
Administrators can gather a comprehensive picture of data-handling activities performed by users through the detailed, server-side audit trail. For example, see below audit trail for an attempt to access an authorized resource:
| 40007 2018-03-28 11:10:25 Process alice 127.0.0.1:52064 HTTP/HTTPS file access successfully started in "/ftps-folders/alice_files" as "/".
Through this online record of server events, organizations can be made aware for the purposes of any legal framework or compliance obligations.
Please see our Users Guides for specific examples pertaining to audit trails for HIPAA/HITECH, and GPG/PMO obligations. More articles are being written for other compliance and regulations.
SFTPPlus MFT bewerten
Die in diesem Artikel aufgeführten Funktionen sind nur einige ausgewählte Funktionen aus vielen heute verfügbaren Integrations- und Konfigurationsoptionen. Sprechen Sie mit dem Support-Team über Ihre Anforderungen an die Datenaustausch-Software.
SFTPPlus MFT Server unterstützt FTP, Explizites FTPS, Implizites FTPS, SFTP, SCP, HTTP und HTTPS.
SFTPPlus MFT ist als On-Premise-Lösung erhältlich, die auf Windows, Linux und macOS unterstützt wird.
Es ist auch in der Cloud als Docker-Container, AWS- oder Azure-Instanzen und viele andere Cloud-Anbieter verfügbar.
Fordern Sie mit dem unten stehenden Formular eine Testversion an.
Understanding the exchange between SFTP Client and SFTP Server
Thu 08 March 2018 | article
Why read this?
As part of meeting the Accounting component of the AAA (Authorization, Authentication and Accounting) framework, each event and action on the server and/or the client-side are recorded by SFTPPlus. These events have an associated Event ID which is also publicly searchable both on our website and on the internal documentation included in the software package that you have downloaded.
System and network administrators touching on logs - be it in the most verbose format or not - may find this article describing the breakdown of such logs helpful.
For this example, we will be touching on SFTPPlus SFTP transfers from both the client-side and server-side only. Please do not hesitate to get in touch with us if you are interested in learning more about other file transfer protocols.
This article was written as of SFTPPlus version 3.31.0.
SFTPPlus SFTP Server-side Perspective
Initial configuration notes
If you are currently evaluating SFTPPlus, please follow our documentation to learn more about how you can configure your database and event handlers to suit your specifications.
Read more about configuring databases with SFTPPlus.
Read more about configuring event handlers. These provide further ways to configure SFTPPlus to create logging actions based on the events recorded.
Even if you are an existing customer, you can follow our documentation links above in order to refresh your knowledge on configuring SFTPPlus version 3. For those on legacy versions, please consult the documentation relevant to your version.
Example logs from SFTPPlus
The following are snippets when logging in for the first time from a GUI client to an SFTPPlus 3.30.0 SFTP server.
A new connection has been made to the service sftp-1. Knowing the service name is useful in case there are multiple other SFTP services running:
| 30014 2018-02-27 17:28:53 sftp-1 Unknown 127.0.0.1:58032 New SSH connection made. | 2018-02-27 17:28:53 30014 New SSH connection made.
The following are authentication methods associated with the server and confirmation of which methods are not active. There may be more methods, depending on how many of these are set up and enabled. To simplify the login process, please make sure to disable all unused authentication methods.:
| 20138 2018-02-27 17:28:55 some-http-auth-uuid Unknown 127.0.0.1:58032 Ignoring http authentication "auth-over-remote-http" for "user" since it is not active. | 2018-02-27 17:28:55 20138 Ignoring http authentication "auth-over-remote-http" for "user" since it is not active. | 20138 2018-02-27 17:28:55 ldap-uuid Unknown 127.0.0.1:58032 Ignoring ldap authentication "LDAP against local test server" for "user" since it is not active.
The following logs list out a successful authentication of user using the ssh-key:
| 20137 2018-02-27 17:28:55 test-server-uuid Unknown 127.0.0.1:58032 Account "user" of type "application" authenticated as "user" by application authentication "Application Accounts" using ssh-key. | 2018-02-27 17:28:55 20137 Account "user" of type "application" authenticated as "user" by application authentication "Application Accounts" using ssh-key.
The following log message confirms the type of permissions allowed for the account and an active transfer that is already running:
| 20182 2018-02-27 17:28:55 Process user 127.0.0.1:58032 Account "user" logged in with permissions [[u'allow-full-control'], [u'/main_folder/*', u'allow-full-control'], [u'*.PDF', u'allow-read']]. Files uploaded as: test.txt
The following confirms that the user has logged into and now has access to the folder as the root ("/") folder:
| 30011 2018-02-27 17:28:55 Process user 127.0.0.1:58032 Subsystem SFTP successfully started in "/root/home/node/user/" as "/". | 2018-02-27 17:28:55 30011 Subsystem SFTP successfully started in "/root/home/node/user/" as "/". | 30060 2018-02-27 17:28:55 Process user 127.0.0.1:58032 Canonical file name requested for ".". | 2018-02-27 17:28:55 30060 Canonical file name requested for ".". | 30060 2018-02-27 17:28:55 Process user 127.0.0.1:58032 Canonical file name requested for "/.". | 2018-02-27 17:28:55 30060 Canonical file name requested for "/.". | 30019 2018-02-27 17:28:55 Process user 127.0.0.1:58032 Listing folder "/". | 2018-02-27 17:28:55 30019 Listing folder "/". | 30020 2018-02-27 17:28:55 Process user 127.0.0.1:58032 Successfully listed folder "/". | 2018-02-27 17:28:55 30020 Successfully listed folder "/".
SFTPPlus SFTP Client-side Perspective
Initial configuration notes
If you are currently evaluating SFTPPlus, please follow our client side documentation.
The SFTPPlus Client software utilizes the command-line client-shell to access remote file servers using the interactive shell.
Even if you are an existing customer, you can follow our documentation links above in order to refresh your knowledge on configuring SFTPPlus version 3. For those on legacy versions, please consult the documentation relevant to your version.
Example logs from SFTPPlus
Let's connect with SFTPPlus Client using the SFTP protocol on port 10022. The following log details the UUID of the sftp service and confirms the connections:
| $ ./bin/client-shell.sh sftp://user@localhost:10022 -p pass --ssh-server-fingerprint 06:cb:46:2b:9a:9a:c4:10:54:f0:ea:2f:b6:05:cb:a0 | SFTPPlus (3.31.0) file transfer client shell | > connect | 20140 2018-03-05 16:40:59 51e1db00-8214-4b68-96fe-58470b8b2fc5 Process 0.0.0.0:0 Connecting resource "sftp". | 30072 2018-03-05 16:40:59 Process user localhost:10022 Location sftp connected to the SSH server. | 30076 2018-03-05 16:40:59 Process user localhost:10022 Client SFTP subsystem initialized for location sftp. | 20141 2018-03-05 16:40:59 51e1db00-8214-4b68-96fe-58470b8b2fc5 Process 0.0.0.0:0 Resource "sftp" successfully connected. | 20156 2018-03-05 16:40:59 51e1db00-8214-4b68-96fe-58470b8b2fc5 Process 0.0.0.0:0 Successfully started location "sftp" of type sftp.
On the event that the SFTP connections fails, the log will state a number of details. The event ID is 30073. The event will communicat the host key algorithm that is in use to identify the server-side, the cipher used to receive data, the HMAC for both sent and received data, key exchange algorithm, cipher used for sent data and the name of the location associated for this event. Below is an example of the event that has been emitted has part of this new SFTP connection.:
| 30073 2018-03-05 16:36:16 Process user localhost:10022 Connection to SSH server was lost for location sftp. Protected using host-key:ssh-rsa key-exchange: diffie-hellman-group-exchange-sha256 in-hmac:hmac-sha2-256 in-cipher:aes256-ctr out-hmac:hmac-sha2-256 out-cipher:aes256-ctr
Providing that the SFTP connection succeeds, supported actions are logged as either a success like below:
| > gattrs remote_get | 60071 2018-03-05 16:41:22 Process Process 0.0.0.0:0 Successfully got attributes for "Reports_2018" on "sftp". | name: Reports_2018 | path: Reports_2018 | size: 128 | modified: 2018-02-16 16:15:21 | is_file: False | is_folder: True
Or error details are caught with an explanation message as to why:
| > get unknown_file | 20145 2018-03-05 16:42:08 Process Process 0.0.0.0:0 Failed to resolve text for event id "60054" with data "{'path': 'unknown_file\xc8\x9bu', 'location': u'sftp', 'avatar': <chevah.server.identity.avatar.ProcessAvatar object at 0x10efc3110>, 'details': "'ascii' codec can't decode byte 0xc8 in position 9: ordinal not in range(128)"}". 'ascii' codec can't decode byte 0xc8 in position 9: ordinal not in range(128)
SFTPPlus SFTP Exchange - Detailed Verbose OpenSSH Logs
Initial configuration notes
Following from that, you can use the built-in the client-side or server-side software that you are utilizing. SFTPPlus offers logging functionalities both for the client-side and server-side. Network administrators using other software, such as sftp -vvv, for client or server may wish to use additional logging functionalities.
Example with sftp -vvv output
These lines mean that SSH protocol 2.0 is being utilized with the version of OpenSSH:
debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_7.6
This line indicates which protocol version is in use service-side and which version:
debug1: Remote protocol version 2.0, remote software version SFTPPlus_3.30.0
This indicates which algorithms are preferred. You may opt to only select the strongest availability supported in your system first. In this case the ordering is logical as it moves from the more secure algorithm down to a less secure algorithm.:
| debug3: order_hostkeyalgs: prefer hostkeyalgs: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512,rsa-sha2-256,ssh-rsa
These are the key exchange algorithms that are available.:
| debug2: KEX algorithms: curve25519-sha256,curve25519-sha256@libssh.org, ecdh-sha2-nistp256,ecdh-sha2-nistp384,ecdh-sha2-nistp521, diffie-hellman-group-exchange-sha256,diffie-hellman-group16-sha512, diffie-hellman-group18-sha512,diffie-hellman-group-exchange-sha1, diffie-hellman-group14-sha256,diffie-hellman-group14-sha1,ext-info-c
These are the host key algorithms.:
| debug2: host key algorithms: ssh-rsa-cert-v01@openssh.com,rsa-sha2-512, rsa-sha2-256,ssh-rsa,ecdsa-sha2-nistp256-cert-v01@openssh.com, ecdsa-sha2-nistp384-cert-v01@openssh.com, ecdsa-sha2-nistp521-cert-v01@openssh.com,ssh-ed25519-cert-v01@openssh.com, ecdsa-sha2-nistp256,ecdsa-sha2-nistp384,ecdsa-sha2-nistp521,ssh-ed25519
These are the ciphers used from client to server (ctos) and from server to client (stoc):
| debug2: ciphers ctos: chacha20-poly1305@openssh.com,aes128-ctr,aes192-ctr, aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com | debug2: ciphers stoc: chacha20-poly1305@openssh.com,aes128-ctr, aes192-ctr,aes256-ctr,aes128-gcm@openssh.com,aes256-gcm@openssh.com
These are the ciphers used from client to server (ctos) and from server to client (stoc):
| debug2: MACs ctos: umac-64-etm@openssh.com,umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com, hmac-sha2-256,hmac-sha2-512,hmac-sha1 | debug2: MACs stoc: umac-64-etm@openssh.com,umac-128-etm@openssh.com, hmac-sha2-256-etm@openssh.com,hmac-sha2-512-etm@openssh.com, hmac-sha1-etm@openssh.com,umac-64@openssh.com,umac-128@openssh.com, hmac-sha2-256,hmac-sha2-512,hmac-sha1
These are the compression algorithms used from client to server (ctos) and from server to client (stoc):
debug2: compression ctos: none,zlib@openssh.com,zlib debug2: compression stoc: none,zlib@openssh.com,zlib
This is the key exchange initialized proposal from the host server:
| debug2: peer server KEXINIT proposal | debug2: KEX algorithms: diffie-hellman-group-exchange-sha256, diffie-hellman-group-exchange-sha1,diffie-hellman-group1-sha1, diffie-hellman-group14-sha1 | debug2: host key algorithms: ssh-dss,ssh-rsa | debug2: ciphers ctos: aes256-ctr,aes256-cbc,aes192-ctr,aes192-cbc,aes128-ctr,aes128-cbc, 3des-ctr,3des-cbc | debug2: ciphers stoc: aes256-ctr,aes256-cbc,aes192-ctr,aes192-cbc,aes128-ctr,aes128-cbc, 3des-ctr,3des-cbc | debug2: MACs ctos: hmac-sha2-256,hmac-sha1 | debug2: MACs stoc: hmac-sha2-256,hmac-sha1 | debug2: compression ctos: none,zlib | debug2: compression stoc: none,zlib
These are the key exchange algorithms used from server to client and client to server:
| debug1: kex: algorithm: diffie-hellman-group-exchange-sha256 | debug1: kex: host key algorithm: ssh-rsa | debug1: kex: server->client cipher: aes128-ctr MAC: hmac-sha2-256 compression: none | debug1: kex: client->server cipher: aes128-ctr MAC: hmac-sha2-256 compression: none
This is the SSH version 2 key exchange Diffie-Hellman Group Exchange request. This specifies the size of the SSH prime moduli being calculated by the SFTP server as indicated in the SFTPPlus /configuration/ file. When you first initialize SFTPPlus version 3, the Time Type Tests Tries Size Generator Modulus is generated and saved in ssh-service.moduli. This file contains primes ranging in size from 1023 to 8191 bits. An example of the contents for the .moduli file is below:
| 20060827134212 2 6 100 3071 2 D3230D237572ECE9F92358715EBAC3A4D89F2D6B4DC39F056450263BEF1665FBD 7B93916ABC867B7064802159D273C7EB01C5F9281A3D6DCCB7CF997D385998EC0E1FA3319AFE771A90ADBACEB414A02 0630D7C7F161FAFEC6C9FC06D3205C712AAE8848A1B2C21DFF301C7FFC0B75D13F060A313C32AFEEAF1493F641760EB EF38829B3371699D2A3264D0ECEB4E5C19581ED8C57699F559B9828BBFE147952E289F0E171C9C60335DD2F492CB409 A4DB97BDF86E2DBA605064DB040A3DF5678E24F66718CA115C95C892FF7AEDFAABC2E6414716298CEC1A604270FEADF 191B7C8A59C238C395A65442C0B963BF83025BED3951A271B7440EC7687C31DE63355DA7FEAC15DC962C7BF7614EB59 B077B9889AD8703DFE98AC99615B722A0ABE89956D1058E025C7733420CB51D7E1608EFF2C0A30C9A5EB77CCA02C6B0 0CE781B172001C6C458630890062E27CE307D513A7686A69D1D548DE8334B13136D9E842A5E17FD67522C93823E03F0 8AEE8024AF5D88B2EE01D4D9980084EFD5D943
In the following example below, a SSH moduli prime from 2048 to 8192 bits are used. Specifically, a moduli with a range from 4092 to 8192 are sent for the SSH message key exchange Diffie-Hellman group exchange request as indicated on debug1 line below (SSH2_MSG_KEX_DH_GEX_REQUEST(2048<8192<8192)) Once sent, the server uses the moduli file, the same file that was initialized as part of the SFTPPlus installation steps, in order to crack the shared secret. The server provides its host key back to the client along with the algorithm used as indicated by the final line as Server host key: ssh-rsa SHA256:hdSfa7gb2O984malHerkwerj3m20dHb6Yuwl0&hbxFj.
See the rest of the output below:
| debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(2048<8192<8192) sent | debug3: receive packet: type 31 | debug1: got SSH2_MSG_KEX_DH_GEX_GROUP | debug2: bits set: 4092/8192 | debug3: send packet: type 32 | debug1: SSH2_MSG_KEX_DH_GEX_INIT sent | debug3: receive packet: type 33 | debug1: got SSH2_MSG_KEX_DH_GEX_REPLY | debug1: Server host key: ssh-rsa SHA256:hfSfa0gb2O884malLerkwerj3m20dBb6Yuwl0&hbxGj
The client then checks to see if the host key is located within the known_hosts file:
| debug3: hostkeys_foreach: reading file "/root/home/node/.ssh/known_hosts" | debug3: record_hostkey: found key type RSA in file /root/home/node/.ssh/known_hosts:8 | debug3: load_hostkeys: loaded 1 keys from [12.345.678.90]:10022
A few more steps occur to verify this server host name and port:
ddebug1: Host '12.345.678.90]:10022' is known and matches the RSA host key. ddebug1: Found key in /root/home/node/.ssh/known_hosts:8
This is the server rekey interval:
debug1: rekey after 4294967296 blocks debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS debug3: receive packet: type 21 debug1: SSH2_MSG_NEWKEYS received debug2: set_newkeys: mode 0 debug1: rekey after 4294967296 blocks
The following are SSH keys found:
debug2: key: imported-openssh-key (0x7e403ff95550), agent debug2: key: /root/home/node/.ssh/id_rsa (0x0) debug2: key: /root/home/node/.ssh/id_dsa (0x0) debug2: key: /root/home/node/.ssh/id_ecdsa (0x0) debug2: key: /root/home/node/.ssh/id_ed25519 (0x0)
The following are authentication methods that can continue, the preferred authentication order, remaining preferred:
| debug3: send packet: type 5 | debug3: receive packet: type 6 | debug2: service_accept: ssh-userauth | debug1: SSH2_MSG_SERVICE_ACCEPT received | debug3: send packet: type 50 | debug3: receive packet: type 51 | debug1: Authentications that can continue: password,publickey | debug3: start over, passed a different list password,publickey | debug3: preferred publickey,keyboard-interactive,password | debug3: authmethod_lookup publickey | debug3: remaining preferred: keyboard-interactive,password | debug3: authmethod_is_enabled publickey | debug1: Next authentication method: publickey | debug1: Offering public key: RSA SHA256:F8zPRFytcYU8PERggkPDs+D32TRgvVm4H3BBJduo+de /root/home/node/.ssh/id_rsa | debug3: send_pubkey_test | debug3: send packet: type 50 | debug2: we sent a publickey packet, wait for reply
The server will go through the exchange to authenticate until the final preferred method is reached - the password method. Upon success, the client enters an interactive session with the server.
There will also be additional verbose logs after entering an interactive session, such as a brief snippet below:
debug2: fd 6 setting TCP_NODELAY debug3: ssh_packet_set_tos: set IP_TOS 0x08 debug2: client_session2_setup: id 0 debug1: Sending environment. debug3: Ignored env _system_type debug1: Sending env LANG = en_CA.UTF-8 debug2: channel 0: request env confirm 0 debug3: send packet: type 98 debug3: Ignored env _system_arch debug3: Ignored env XPC_FLAGS debug3: Ignored env _system_version debug3: Ignored env XPC_SERVICE_NAME debug3: Ignored env rvm_version debug3: Ignored env _system_name debug1: Sending subsystem: sftp
SFTPPlus MFT bewerten
Die in diesem Artikel aufgeführten Funktionen sind nur einige ausgewählte Funktionen aus vielen heute verfügbaren Integrations- und Konfigurationsoptionen. Sprechen Sie mit dem Support-Team über Ihre Anforderungen an die Datenaustausch-Software.
SFTPPlus MFT Server unterstützt FTP, Explizites FTPS, Implizites FTPS, SFTP, SCP, HTTP und HTTPS.
SFTPPlus MFT ist als On-Premise-Lösung erhältlich, die auf Windows, Linux und macOS unterstützt wird.
Es ist auch in der Cloud als Docker-Container, AWS- oder Azure-Instanzen und viele andere Cloud-Anbieter verfügbar.
Fordern Sie mit dem unten stehenden Formular eine Testversion an.
SFTPPlus is not affected by the Meltdown and Spectre Vulnerabilities
Wed 21 February 2018 | article security
Security advisory about the Meltdown and Spectre are vulnerabilities
Meltdown and Spectre are vulnerabilities based on CPU design flaws which require the attacker to be able to execute application code which is created to exploit these vulnerabilities.
SFTPPlus secure file transfers does not allow any arbitrary application code execution. It will only read and write data without executing it. This is standard behaviour for doing file transfers over FTPS or HTTPS.
The SSH implementation of SFTPPlus is only allowed for the SFTP and SCP protocols. Shell access or any other SSH execution is denied. The SCP protocol is implemented using an embedded SCP protocol and no external scp application is called.
For the purpose of managed file transfers, SFTPPlus allows the execution of pre-configured application code with the pre and post transfer hooks. As long as the SFTPPlus is configured with trusted applications, this does not constitute an attack vector.
If you are running SFTPPlus Itanium architectures, for example with HPUX, you are not affected by these vulnerabilities, no mater what other software is in used on those systems.
SPARC architecture (example with Solaris 10) and POWER (example with AIX 7.1) are affected by the Spectre, while not being affected by Meltdown.
The embedded devices based on ARM64 CPUs are also affected by Spectre.
Administrators using the SFTPPlus MFT Client with pre and post transfer hooks should review the configuration and make sure that the hooks will trigger calls to trusted applications.
This article was written as of SFTPPlus version 3.31.0.
SFTPPlus MFT bewerten
Die in diesem Artikel aufgeführten Funktionen sind nur einige ausgewählte Funktionen aus vielen heute verfügbaren Integrations- und Konfigurationsoptionen. Sprechen Sie mit dem Support-Team über Ihre Anforderungen an die Datenaustausch-Software.
SFTPPlus MFT Server unterstützt FTP, Explizites FTPS, Implizites FTPS, SFTP, SCP, HTTP und HTTPS.
SFTPPlus MFT ist als On-Premise-Lösung erhältlich, die auf Windows, Linux und macOS unterstützt wird.
Es ist auch in der Cloud als Docker-Container, AWS- oder Azure-Instanzen und viele andere Cloud-Anbieter verfügbar.
Fordern Sie mit dem unten stehenden Formular eine Testversion an.