From 02fed96d715fef28271ed17a79aeae74452a2711 Mon Sep 17 00:00:00 2001 From: Andrew Guschin Date: Mon, 4 Mar 2024 10:50:51 +0400 Subject: =?UTF-8?q?=D0=9F=D1=80=D0=B0=D0=BA=D1=82=D0=B8=D0=BA=D0=B0=20?= =?UTF-8?q?=D0=BA=D0=B0=D1=84=D0=B5=D0=B4=D1=80=D1=8B=208=20=D1=81=D0=B5?= =?UTF-8?q?=D0=BC=D0=B5=D1=81=D1=82=D1=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pract/sem8/Practice.cls | 928 +++++++++++++++++++ pract/sem8/gost780uv.bst | 1408 +++++++++++++++++++++++++++++ pract/sem8/images/01_newuser.png | Bin 0 -> 9726 bytes pract/sem8/images/02_unit.png | Bin 0 -> 23756 bytes pract/sem8/images/03_teachers.png | Bin 0 -> 21905 bytes pract/sem8/images/04_folders.png | Bin 0 -> 47765 bytes pract/sem8/images/05_groups.png | Bin 0 -> 20589 bytes pract/sem8/images/06_sci_group.png | Bin 0 -> 9755 bytes pract/sem8/images/07_dir_catalog.png | Bin 0 -> 26230 bytes pract/sem8/images/08_director_access.png | Bin 0 -> 46873 bytes pract/sem8/images/09_director_deny.png | Bin 0 -> 47386 bytes pract/sem8/images/10_sci_dir_deny.png | Bin 0 -> 90896 bytes pract/sem8/images/11_sci_teach_deny.png | Bin 0 -> 87831 bytes pract/sem8/images/12_sci_deny.png | Bin 0 -> 40037 bytes pract/sem8/images/13_sci_boss.png | Bin 0 -> 48822 bytes pract/sem8/images/14_teach_hr_deny.png | Bin 0 -> 85955 bytes pract/sem8/images/15_teach_boss_deny.png | Bin 0 -> 75144 bytes pract/sem8/images/16_teach_teach_deny.png | Bin 0 -> 78626 bytes pract/sem8/images/17_teach_access.png | Bin 0 -> 45828 bytes pract/sem8/images/18_dir_cat.png | Bin 0 -> 17743 bytes pract/sem8/images/19_sci_cat.png | Bin 0 -> 21439 bytes pract/sem8/images/20_hr_cat.png | Bin 0 -> 19531 bytes pract/sem8/images/21_teach_cat.png | Bin 0 -> 19416 bytes pract/sem8/images/22_supply_cat.png | Bin 0 -> 20918 bytes pract/sem8/images/23_supply_boss_cat.png | Bin 0 -> 18244 bytes pract/sem8/images/24_supply1_cat.png | Bin 0 -> 19583 bytes pract/sem8/images/25_policy_create.png | Bin 0 -> 13668 bytes pract/sem8/images/26_audit_policy.png | Bin 0 -> 32534 bytes pract/sem8/images/27_clear.png | Bin 0 -> 11093 bytes pract/sem8/images/28_block_policy.png | Bin 0 -> 4787 bytes pract/sem8/images/29_deny_journ.png | Bin 0 -> 4462 bytes pract/sem8/images/30_test_journ.png | Bin 0 -> 301193 bytes pract/sem8/images/31_audit_vhod.png | Bin 0 -> 13199 bytes pract/sem8/maker.sh | 35 + pract/sem8/pract.pdf | Bin 0 -> 1286327 bytes pract/sem8/pract.tex | 1010 +++++++++++++++++++++ pract/sem8/thesis.bib | 4 + 37 files changed, 3385 insertions(+) create mode 100644 pract/sem8/Practice.cls create mode 100644 pract/sem8/gost780uv.bst create mode 100755 pract/sem8/images/01_newuser.png create mode 100755 pract/sem8/images/02_unit.png create mode 100755 pract/sem8/images/03_teachers.png create mode 100755 pract/sem8/images/04_folders.png create mode 100755 pract/sem8/images/05_groups.png create mode 100755 pract/sem8/images/06_sci_group.png create mode 100755 pract/sem8/images/07_dir_catalog.png create mode 100755 pract/sem8/images/08_director_access.png create mode 100755 pract/sem8/images/09_director_deny.png create mode 100755 pract/sem8/images/10_sci_dir_deny.png create mode 100755 pract/sem8/images/11_sci_teach_deny.png create mode 100755 pract/sem8/images/12_sci_deny.png create mode 100755 pract/sem8/images/13_sci_boss.png create mode 100755 pract/sem8/images/14_teach_hr_deny.png create mode 100755 pract/sem8/images/15_teach_boss_deny.png create mode 100755 pract/sem8/images/16_teach_teach_deny.png create mode 100755 pract/sem8/images/17_teach_access.png create mode 100755 pract/sem8/images/18_dir_cat.png create mode 100755 pract/sem8/images/19_sci_cat.png create mode 100755 pract/sem8/images/20_hr_cat.png create mode 100755 pract/sem8/images/21_teach_cat.png create mode 100755 pract/sem8/images/22_supply_cat.png create mode 100755 pract/sem8/images/23_supply_boss_cat.png create mode 100755 pract/sem8/images/24_supply1_cat.png create mode 100755 pract/sem8/images/25_policy_create.png create mode 100755 pract/sem8/images/26_audit_policy.png create mode 100755 pract/sem8/images/27_clear.png create mode 100755 pract/sem8/images/28_block_policy.png create mode 100755 pract/sem8/images/29_deny_journ.png create mode 100755 pract/sem8/images/30_test_journ.png create mode 100755 pract/sem8/images/31_audit_vhod.png create mode 100755 pract/sem8/maker.sh create mode 100644 pract/sem8/pract.pdf create mode 100644 pract/sem8/pract.tex create mode 100644 pract/sem8/thesis.bib (limited to 'pract/sem8') diff --git a/pract/sem8/Practice.cls b/pract/sem8/Practice.cls new file mode 100644 index 0000000..c70f25d --- /dev/null +++ b/pract/sem8/Practice.cls @@ -0,0 +1,928 @@ +\LoadClass[14pt]{extarticle} +%\RequirePackage[14pt]{extsizes} +\RequirePackage[ + a4paper, mag=1000, + left=2.5cm, right=1.5cm, top=2cm, bottom=2cm, bindingoffset=0cm, + headheight=0cm, footskip=1cm, headsep=0cm + ]{geometry} +\RequirePackage{setspace} +\RequirePackage{calc} +\RequirePackage{titlesec} +\RequirePackage{titletoc} +\RequirePackage{caption} +\RequirePackage{graphicx} +\RequirePackage[inline]{enumitem} + + + + +% --------------------------------------------------------------------------% +% Input data +% --------------------------------------------------------------------------% +\def\chair#1{\gdef\@chair{#1}}\chair{\hbox to 3cm{\hrulefill}} +\def\worktype#1{\gdef\@worktype{#1}} +\def\worktitle{\@title} +\def\typework#1{\gdef\@typework{#1}} +\def\disserform#1{\gdef\@disserform{#1}} +\def\disserformP#1{\gdef\@disserformP{#1}} +\def\disserformR#1{\gdef\@disserformR{#1}} +\def\disserformV#1{\gdef\@disserformV{#1}} +\def\course#1{\gdef\@course{#1}}\course{2} +\def\group#1{\gdef\@group{#1}}\group{211} +\def\department#1{\gdef\@department{#1}}\department{\cyr\cyrf\cyra\cyrk% +\cyru\cyrl\cyrsftsn\cyrt\cyre\cyrt\cyra\ \CYRK\CYRN\cyri\CYRI\CYRT} +\def\otdelenie#1{\gdef\@otdelenie{#1}} +\def\studentName{\@author} +%\def\studentName#1{\gdef\@studentName{#1}} +\def\satitle#1{\gdef\@satitle{#1}}\satitle{\hbox to 3cm{\hrulefill}} +\def\saname#1{\gdef\@saname{#1}}\saname{\hbox to 3cm{\hrulefill}} +\def\critictitle#1{\gdef\@critictitle{#1}}\critictitle{\hbox to 3cm{\hrulefill}} +\def\criticname#1{\gdef\@criticname{#1}}\criticname{\hbox to 3cm{\hrulefill}} +\def\secrname#1{\gdef\@secrname{#1}}\secrname{\hbox to 3cm{\hrulefill}} +\def\chtitle#1{\gdef\@chtitle{#1}}\chtitle{\hbox to 3cm{\hrulefill}} +\def\chname#1{\gdef\@chname{#1}}\chname{\hbox to 3cm{\hrulefill}} +%\def\year#1{\gdef\@year{#1}} +\def\spectype#1{\gdef\@spectype{#1}} +\def\spectyperod#1{\gdef\@spectyperod{#1}} +\def\workform#1{\gdef\@workform{#1}} +\def\practtype#1{\gdef\@practtype{#1}}\practtype{\cyr\cyru\cyrch\cyre\cyrb% +\cyrn\cyra\cyrya} +\def\term#1{\gdef\@term{#1}}\term{2} +\def\duration#1{\gdef\@duration{#1}}\duration{2} +\def\protnum#1{\gdef\@protnum{#1}}\protnum{\hbox to 1cm{\hrulefill}} +\def\protdate#1{\gdef\@protdate{#1}}\protdate{\hbox to 3cm{\hrulefill}} +\def\practStart#1{\gdef\@practStart{#1}}\practStart{\hbox to 3cm{\hrulefill}} +\def\practFinish#1{\gdef\@practFinish{#1}}\practFinish{\hbox to 3cm{\hrulefill}} +\def\reviewtype#1{\gdef\@reviewtype{#1}}\reviewtype{\CYRO\CYRT% +\CYRZ\CYRERY\CYRV} + +\def\patitle#1{\gdef\@patitle{#1}}\patitle{\@satitle} +\def\paname#1{\gdef\@paname{#1}}\paname{\@saname} + +\def\napravlenie#1{\gdef\@napravlenie{#1}}\napravlenie{\hbox to 3cm{\hrulefill}} +\def\Napravlenie{\@napravlenie} + + +\def\studenttitle#1{\gdef\@studenttitle{#1}}\studenttitle{\cyr\cyrs\cyrt% +\cyru\cyrd\cyre\cyrn\cyrt\cyra} +\def\studentdone#1{\gdef\@studentdone{#1}}\studentdone{\cyrp\cyrr\cyro% +\cyrsh\cyre\cyrd\cyrsh\cyre\cyrg\cyro} +\def\studentfemale{\studenttitle{\cyrs\cyrt\cyru\cyrd\cyre\cyrn\cyrt% +\cyrk\cyri}\studentdone{\cyrp\cyrr\cyro\cyrsh\cyre\cyrd\cyrsh% +\cyre\cyrishrt}} + +%\newcommand{\MakeTitle}{} + +\def\workname#1{\gdef\@workname{#1}} + +%\hbox to 3cm{\hrulefill} + +% --------------------------------------------------------------------------% + + +\newcommand{\signature}[2]{ +\hbox to 7cm{#1\hfill} \hbox to 3cm{\hrulefill} \hbox to 6cm{\hfill #2}} + +\newcommand{\inlinesignature}[2]{% +#1\qquad \hbox to 3cm{\hrulefill}\quad #2} + + +\newcommand{\signatureline}{} + +% --------------------------------------------------------------------------% +\newcommand{\scaleUnivName}{0.97} + +\DeclareOption{times}{% + \renewcommand{\rmdefault}{ftm} + \renewcommand{\scaleUnivName}{1.0} +} + +\DeclareOption{spec}{% + \spectype{\cyr\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro% + \cyrs\cyrt\cyri} + \spectyperod{\cyrs\cyrp\cyre\cyrc\cyri\cyra\cyrl\cyrsftsn\cyrn\cyro% + \cyrs\cyrt\cyri} + \workform{\cyr\CYRS\CYRP\CYRE\CYRC\CYRI\CYRA\CYRL\CYRI\CYRS\CYRT\CYRA} + \disserform{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRA\CYRYA\ \CYRR\CYRA% + \CYRB\CYRO\CYRT\CYRA} + \disserformP{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR% + \CYRA\CYRB\CYRO\CYRT\CYRE} + \disserformR{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRO\CYRISHRT\ \CYRR% + \CYRA\CYRB\CYRO\CYRT\CYRERY} + \disserformV{\CYRD\CYRI\CYRP\CYRL\CYRO\CYRM\CYRN\CYRU\CYRYU\ \CYRR\CYRA% + \CYRB\CYRO\CYRT\CYRU} +} + +\DeclareOption{bachelor}{% + \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya} + \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu} + \workform{\cyr\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRA} + \disserform{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRA% + \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA} + \disserformP{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO% + \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE} + \disserformR{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRO% + \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY} + \disserformV{\CYRB\CYRA\CYRK\CYRA\CYRL\CYRA\CYRV\CYRR\CYRS\CYRK\CYRU% + \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU} +} + +\DeclareOption{master}{% + \spectype{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri\cyrya} + \spectyperod{\cyr\cyrn\cyra\cyrp\cyrr\cyra\cyrv\cyrl\cyre\cyrn\cyri \cyryu} + \workform{\cyr\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRR\CYRA} + \disserform{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRA% + \CYRYA\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRA} + \disserformP{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO% + \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE} + \disserformR{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRO% + \CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRERY} + \disserformV{\CYRM\CYRA\CYRG\CYRI\CYRS\CYRT\CYRE\CYRR\CYRS\CYRK\CYRU% + \CYRYU\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRU} +} + +\DeclareOption{coursework}{% + \worktype{\cyr\CYRK\cyru\cyrr\cyrs\cyro\cyrv\cyra\cyrya\ \cyrr\cyra\cyrb% + \cyro\cyrt\cyra} + \renewcommand{\maketitle}{\CDMakeTitle} + \workname{\MakeUppercase{\@worktype}} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra} +} + +\DeclareOption{diploma}{% + \worktype{\cyr\CYRV\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyra\cyrya\ \cyrk\cyrv% + \cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyra% + \cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra} + \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra} + \renewcommand{\maketitle}{\CDMakeTitle} + \workname{\MakeUppercase{\@disserform}} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra} +} + +\DeclareOption{autoref}{% + \workname{\cyr\CYRA\CYRV\CYRT\CYRO\CYRR\CYRE\CYRF\CYRE\CYRR\CYRA\CYRT\ % + \MakeUppercase{\@disserformR}} + \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra} + \renewcommand{\maketitle}{\CDMakeTitle} + %\workname{\MakeUppercase{\@disserform}} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra} +} + +\DeclareOption{nir}{% + \workname{\cyr\CYRO\CYRT\CYRCH\CYRE\CYRT\ \CYRO\ \CYRN\CYRA\CYRU\CYRCH% + \CYRN\CYRO-\CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL% + \CYRSFTSN\CYRS\CYRK\CYRO\CYRISHRT\ \CYRR\CYRA\CYRB\CYRO\CYRT\CYRE} + \worktype{\ \cyrr\cyra\cyrb\cyro\cyrt\cyra} + \renewcommand{\maketitle}{\CDMakeTitle} + %\workname{\MakeUppercase{\@disserform}} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn\cyra} +} + +\DeclareOption{pract}{% + \worktype{\cyr\CYRO\cyrt\cyrch\cyre\cyrt\ \cyro\ \cyrp\cyrr\cyra\cyrk\cyrt% + \cyri\cyrk\cyre} + \renewcommand{\maketitle}{\MakeTitlePr} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn} +} + +\DeclareOption{review}{% + \reviewtype{\CYRO\CYRT\CYRZ\CYRERY\CYRV} + \worktype{\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk% + \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \cyrv\cyrery% + \cyrp\cyru\cyrs\cyrk\cyrn\cyro\cyrishrt\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf% + \cyri\cyrk\cyra\cyrc\cyri\cyro\cyrn\cyrn\cyro\cyrishrt\ \cyrr\cyra\cyrb% + \cyro\cyrt\cyre} + \workname{\cyr\cyrn\cyra\cyru\cyrch\cyrn\cyro\cyrg\cyro\ \cyrr\cyru\cyrk% + \cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrya\ \cyro\ \MakeLowercase{\@disserformP}} + %\workname{\@worktype\ \MakeLowercase{\@workform}} + \renewcommand{\maketitle}{\MakeTitleReview} + \renewcommand{\signatureline}{% + \par\noindent% + \CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv% + \cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\% + \signature{\@satitle}{\@saname}\\% + } +} + +\DeclareOption{assignment}{% + \reviewtype{\CYRZ\CYRA\CYRD\CYRA\CYRN\CYRI\CYRE} + \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru% + \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro% + \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru} + \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}} + %\workname{\@worktype\ \MakeLowercase{\@workform}} + \renewcommand{\maketitle}{\MakeTitleAssign} + \renewcommand{\signatureline}{% + + \vfill% + \noindent% + \textbf{\CYRS\cyrr\cyro\cyrk\ \cyrp\cyrr\cyre\cyrd\cyro\cyrs\cyrt\cyra% + \cyrv\cyrl\cyre\cyrn\cyri\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:}\ \@practFinish + + \vspace{2em}\raggedright + \noindent \CYRR\cyra\cyrs\cyrs\cyrm\cyro\cyrt\cyrr\cyre\cyrn\cyro\ % + \cyrn\cyra\ \cyrz\cyra\cyrs\cyre\cyrd\cyra\cyrn\cyri\cyri\ \cyrk\cyra% + \cyrf\cyre\cyrd\cyrr\cyrery\ \@chair + + \vspace{1em} + \CYRP\cyrr\cyro\cyrt\cyro\cyrk\cyro\cyrl\ \textnumero\ \@protnum\ \cyro% + \cyrt\ \@protdate + + \vspace{1em} + \raggedright + \noindent + \inlinesignature{\CYRS\cyre\cyrk\cyrr\cyre\cyrt\cyra\cyrr\cyrsftsn}{\@secrname} + + \vspace{2em} + \noindent\raggedright + \CYRD\cyra\cyrt\cyra\ \cyrv\cyrery\cyrd\cyra\cyrch\cyri\ \cyrz\cyra% + \cyrd\cyra\cyrn\cyri\cyrya\ \@practStart + + \vspace{1em} + \noindent\raggedright + \inlinesignature{\CYRZ\cyra\cyrd\cyra\cyrn\cyri\cyre\ \cyrp\cyro\cyrl% + \cyru\cyrch\cyri\cyrl}{\hbox to 3cm{\hrulefill}} + + \vspace{1cm} + } +} + +\DeclareOption{critique}{% + \reviewtype{\CYRR\CYRE\CYRC\CYRE\CYRN\CYRZ\CYRI\CYRYA} + \worktype{\cyrn\cyra\ \cyrv\cyrery\cyrp\cyru\cyrs\cyrk\cyrn\cyru% + \cyryu\ \cyrk\cyrv\cyra\cyrl\cyri\cyrf\cyri\cyrk\cyra\cyrc\cyri\cyro% + \cyrn\cyrn\cyru\cyryu\ \cyrr\cyra\cyrb\cyro\cyrt\cyru} + \workname{\cyr\cyrn\cyra\ \MakeLowercase{\@disserformV}} + %\workname{\@worktype\ \MakeLowercase{\@workform}} + \renewcommand{\maketitle}{\MakeTitleReview} + \renewcommand{\signatureline}{% + \par\noindent% + \CYRR\cyre\cyrc\cyre\cyrn\cyrz\cyre\cyrn\cyrt\\% + \signature{\@critictitle}{\@criticname}\\% + } +} + + +\DeclareOption{referat}{% + \worktype{\cyr\CYRR\cyre\cyrf\cyre\cyrr\cyra\cyrt} + \workname{\MakeUppercase{\@worktype}} + \renewcommand{\maketitle}{\RefMakeTitle} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn} +} + +\DeclareOption{labwork}{% + \worktype{\cyr\CYRL\cyra\cyrb\cyro\cyrr\cyra\cyrt\cyro\cyrr\cyrn\cyra\cyrya\ \cyrr\cyra\cyrb\cyro\cyrt\cyra} + \workname{\MakeUppercase{\@worktype}} + \renewcommand{\maketitle}{\RefMakeTitle} + \typework{\cyr\cyrn\cyra\cyrp\cyri\cyrs\cyra\cyrn} +} + +\DeclareOption{och}{% + \otdelenie{\cyr\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr\cyrm% + \cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya} +} + +\DeclareOption{zaoch}{% + \otdelenie{\cyr\cyrz\cyra\cyro\cyrch\cyrn\cyro\cyrishrt\ \cyrf\cyro\cyrr% + \cyrm\cyrery\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyrya} +} + +\ExecuteOptions{coursework,och,bachelor} +\ProcessOptions + +% --------------------------------------------------------------------------% +\newcommand*{\hm}[1]{#1\nobreak\discretionary{}% +{\hbox{$\mathsurround=0pt #1$}}{}} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% + +\onehalfspacing +\parindent=1.25cm +\pagestyle{headings} +\renewcommand{\@oddhead}{} +\renewcommand{\@oddfoot}{\hfil \thepage} + +% --------------------------------------------------------------------------% +% Table and figure numbering by sections +% --------------------------------------------------------------------------% +\newif\if@secNumbering\@secNumberingfalse +\newcommand{\secNumbering}{ + \renewcommand{\thefigure}{\arabic{section}.\arabic{figure}} + \renewcommand{\thetable}{\arabic{section}.\arabic{table}} + \renewcommand{\theequation}{\arabic{section}.\arabic{equation}} + \@addtoreset{figure}{section} + \@addtoreset{table}{section} + \@addtoreset{equation}{section} + \@secNumberingtrue +} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% +% Table and figure captions +% --------------------------------------------------------------------------% +\def\CaptionName#1{\gdef\@captionname{#1}} +\newlength\tmp %10cm +\setlength{\tmp}{1ex} +\setlength{\belowcaptionskip}{1ex} +\setlength{\abovecaptionskip}{1ex} + +\captionsetup[figure]{name=\CYRR\cyri\cyrs\cyru\cyrn\cyro\cyrk, labelsep=endash, + justification=centering, font={small}, skip=\abovecaptionskip, position=below} +\captionsetup[table]{name=\CYRT\cyra\cyrb\cyrl\cyri\cyrc\cyra, labelsep=endash, format=plain, + justification=RaggedRight, singlelinecheck=false, font={small}, position=top} + +% --------------------------------------------------------------------------% +% Table of contents +% --------------------------------------------------------------------------% +\renewcommand{\tableofcontents}% +{\structformat\section*{\uppercase{\cyr\CYRS\CYRO\CYRD\CYRE\CYRR\CYRZH\CYRA% +\CYRN\CYRI\CYRE}}\secformat\@starttoc{toc} +\thispagestyle{empty}} + +\renewcommand{\@dotsep}{1.5} +\renewcommand{\@pnumwidth}{1.0em} + +\newcommand{\l@abcd}[2]{{\@dottedtocline{0}{0pt}{0pt}{#1}{#2}}} + +\renewcommand{\l@section}{\@dottedtocline{1}{0em}{1.5em}} +\renewcommand{\l@subsection}{\@dottedtocline{2}{1.5em}{2.3em}} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% +% Sections, subsections +% --------------------------------------------------------------------------% +% Numbering +\renewcommand{\thesection}{\arabic{section}} +\renewcommand{\thesubsection}{\arabic{section}.\arabic{subsection}} +\renewcommand{\thesubsubsection}{\arabic{section}.\arabic{subsection}.\arabic{subsubsection}} + +\newcommand{\sectionbreak}{\clearpage} + +% Contents, intro, conclusion +\newcommand{\structformat} +{ + \titlespacing{\section} + {0cm}{3ex plus 1ex minus .2ex}{1.4ex plus.2ex} + \titleformat{\section}[block] + {\centering\bfseries} + {\thesection}{0ex}{} +} + +% Sections, subsections +\newcommand{\secformat} +{ + \titlespacing{\section} + {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex} + \titleformat{\section}[block] + {\hspace{1.25cm}\raggedright\bfseries} + {\thesection}{1ex}{} +} + +\newif\if@hyperrefloaded\@hyperrefloadedfalse +\AtBeginDocument{\@ifpackageloaded{hyperref}% + {\@hyperrefloadedtrue}{\@hyperrefloadedfalse}% +} + +%\RequirePackage{ifthen} +\newcommand{\starsection}[1]{ + \structformat + \section*{#1}% + \if@hyperrefloaded + \phantomsection + \fi + \addcontentsline{toc}{section}{#1} + \setcounter{section}{0} + \secformat +} + + +\setcounter{section}{0} +\secformat + + +\newcommand{\intro}{\starsection{\cyr\CYRV\CYRV\CYRE\CYRD\CYRE% +\CYRN\CYRI\CYRE}} +\newcommand{\abbreviations}{\starsection{\CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA% +\CYRCH\CYRE\CYRN\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH% +\CYRE\CYRN\CYRI\CYRYA}} +\newcommand{\definitions}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE% +\CYRL\CYRE\CYRN\CYRI\CYRYA}} +\newcommand{\defabbr}{\starsection{\CYRO\CYRP\CYRR\CYRE\CYRD\CYRE\CYRL% +\CYRE\CYRN\CYRI\CYRYA, \CYRO\CYRB\CYRO\CYRZ\CYRN\CYRA\CYRCH\CYRE\CYRN% +\CYRI\CYRYA\ \CYRI\ \CYRS\CYRO\CYRK\CYRR\CYRA\CYRSHCH\CYRE\CYRN\CYRI\CYRYA}} +\newcommand{\conclusion}{\starsection{\cyr\CYRZ\CYRA\CYRK\CYRL\CYRYU% +\CYRCH\CYRE\CYRN\CYRI\CYRE}} + +% Section and subsection parameters +\titlespacing{\section} +{0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex} + +\titleformat{\subsection}[block] +{\hspace{1.25cm}\normalfont\bfseries} +{\thesubsection}{1ex}{} +\titlespacing{\subsection} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +\titleformat{\subsubsection}[block] +{\hspace{1.25cm}\normalfont} +{\thesubsubsection}{1ex}{} +\titlespacing{\subsubsection} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% + + +%\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM} +%\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm} + +\makeatletter +\def\redeflsection{\def\l@section{\@dottedtocline{1}{0em}{10em}}} +\renewcommand{\appendix}{\par% + + \renewcommand{\secNumbering}{ + \renewcommand{\thefigure}{\Asbuk{section}.\arabic{figure}} + \renewcommand{\thetable}{\Asbuk{section}.\arabic{table}} + \renewcommand{\theequation}{\Asbuk{section}.\arabic{equation}} + \@addtoreset{figure}{section} + \@addtoreset{table}{section} + \@addtoreset{equation}{section} + + } + \if@secNumbering + \secNumbering + \fi + \setcounter{section}{0}% + \setcounter{subsection}{0}% + \renewcommand{\appendixname}{\cyr\CYRP\CYRR\CYRI\CYRL\CYRO\CYRZH\CYRE% + \CYRN\CYRI\CYRE}% + \def\sectionname{\appendixname}% + \addtocontents{toc}{\protect\redeflsection}% + \gdef\thesection{\Asbuk{section}}% + \titlespacing{\section} + %{0cm}{1ex plus 0.1ex minus .2ex}{1.1ex plus.1ex} + {0cm}{3ex plus 1ex minus .2ex}{0.4ex plus.2ex} + \titleformat{\section}[display] + {\centering\normalfont\bfseries} + {\appendixname\hspace{1ex}\thesection}{0ex}{} + + + \titlecontents{section} + [3ex] + {\hspace{-3ex}} + {\appendixname~\thecontentslabel\hspace{2ex}} + {\hspace{2.3em}} + {\titlerule*[0.98ex]{.}\contentspage} + +} + + + +% --------------------------------------------------------------------------% +% Title pages +% --------------------------------------------------------------------------% +%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA% +%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ % +%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro% +%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ % +%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra% +%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru% +%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \cyrv\cyrery\cyrs% +%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz% +%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\ +%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ % +%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY% +%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL% +%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT\ % +%\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY% +%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT\ % +%\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY% +%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}\\}} + +%\newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA% +%\CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ \hspace{-1em}% +%\CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro% +%\cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ % +%\cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra% +%\cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru% +%\cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs% +%\cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz% +%\cyro\cyrv\cyra\cyrn\cyri\cyrya\\\hspace{-2em} +%{ +%\textbf{<<\CYRS\CYRA\CYRR\CYRA\CYRT\CYRO\CYRV\CYRS\CYRK\CYRI\CYRISHRT\ % +%\CYRN\CYRA\CYRC\CYRI\CYRO\CYRN\CYRA\CYRL\CYRSFTSN\CYRN\CYRERY% +%\CYRISHRT\ \CYRI\CYRS\CYRS\CYRL\CYRE\CYRD\CYRO\CYRV\CYRA\CYRT\CYRE\CYRL% +%\CYRSFTSN\CYRS\CYRK\CYRI\CYRISHRT}} \\% +%{\textbf{\CYRG\CYRO\CYRS\CYRU\CYRD\CYRA\CYRR\CYRS\CYRT\CYRV\CYRE\CYRN\CYRN\CYRERY% +%\CYRISHRT\ \CYRU\CYRN\CYRI\CYRV\CYRE\CYRR\CYRS\CYRI\CYRT\CYRE\CYRT}} \\% +%{\textbf{\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY% +%\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}\\}} + +% \newcommand{\shapka}{{\centering \CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA% +% \CYRU\CYRK\CYRI\ \CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ % +% \CYRF\cyre\cyrd\cyre\cyrr\cyra\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyrg\cyro% +% \cyrs\cyru\cyrd\cyra\cyrr\cyrs\cyrt\cyrv\cyre\cyrn\cyrn\cyro\cyre\ % +% \cyrb\cyryu\cyrd\cyrzh\cyre\cyrt\cyrn\cyro\cyre\ \cyro\cyrb\cyrr\cyra% +% \cyrz\cyro\cyrv\cyra\cyrt\cyre\cyrl\cyrsftsn\cyrn\cyro\cyre\ \cyru% +% \cyrch\cyrr\cyre\cyrzh\cyrd\cyre\cyrn\cyri\cyre\ \\\cyrv\cyrery\cyrs% +% \cyrsh\cyre\cyrg\cyro\ \cyro\cyrb\cyrr\cyra\cyrz% +% \cyro\cyrv\cyra\cyrn\cyri\cyrya\\[0.2em] +\newcommand{\shapka}{{ +\centering +\centerline{\scalebox{\scaleUnivName}[1.0]{\parbox[t]{1.1\textwidth} +{\centering +\textbf{\CYRM\CYRI\CYRN\CYRO\CYRB\CYRR\CYRN\CYRA\CYRU\CYRK\CYRI\ +\CYRR\CYRO\CYRS\CYRS\CYRI\CYRI\\ +\CYRF\CYRG\CYRB\CYRO\CYRU\ \CYRV\CYRO\ +<<\CYRS\CYRG\CYRU\ +\CYRI\CYRM\CYRE\CYRN\CYRI~\CYRN.\,\CYRG.\,\CYRCH\CYRE\CYRR\CYRN\CYRERY% +\CYRSH\CYRE\CYRV\CYRS\CYRK\CYRO\CYRG\CYRO>>}}}}}} + +\newcommand{\CDMakeTitle} +{ +\thispagestyle{empty} +\shapka +%\vspace{0.5cm} +\begin{center} +%\parbox{8cm}{ +%\raggedright +\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair +%} +\end{center} + +\vspace{14pt} +\vspace{1cm} +{\centering +\textbf{\MakeUppercase{\@title}} +\\[0.3cm] +{\@workname} + +} + +\vspace{1.5cm} +\begin{flushleft} +\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg% +\cyrr\cyru\cyrp\cyrp\cyrery\\ +\@spectype\ \@napravlenie\\ +\@department\\ +\@author +\end{flushleft} +\vfill + +\noindent +\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv% +\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\ +\signature{\@satitle}{\@saname}\\[14pt] +\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra% +\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\ +\signature{\@chtitle}{\@chname} + +\vfill +{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date} + +} +\newpage +} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% +% Title page of internship +% --------------------------------------------------------------------------% +\newcommand{\MakeTitlePr} +{ +\thispagestyle{empty} +\begin{center} +\shapka +\end{center} +\vspace{0.5cm} + + +\begin{flushright} + \parbox{7cm}{ + \begin{flushleft} + \CYRU\CYRT\CYRV\CYRE\CYRR\CYRZH\CYRD\CYRA\CYRYU\\ + \CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\ + \@chtitle\\ + \hbox to 7cm{\hrulefill\ \@chname} + \end{flushleft} + } +\end{flushright} + +\vspace{1cm} +\begin{center}\textbf{\MakeUppercase{\@worktype}}\end{center} +\begin{flushleft} + \vspace{12pt} + % TODO: ubrat nahui cifru 2 + \@studenttitle\ 2\ \cyrk\cyru\cyrr\cyrs\cyra\\ + \@department\\ + + { + \centering + \@author\\ + } + \vspace{0.5cm} + + { + \centering + \@practtype\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyra\\ + (\CYRU\cyrch\cyre\cyrb\cyrn\cyra\cyrya\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyra)\\ + } + \vspace{0.5cm} + + \cyrk\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair\\ + \cyrk\cyru\cyrr\cyrs\ \underline{\textit{\@course}}\\ + \cyrs\cyre\cyrm\cyre\cyrs\cyrt\cyrr\ \underline{\textit{\@term}}\\ + \cyrp\cyrr\cyro\cyrd\cyro\cyrl\cyrzh\cyri\cyrt\cyre\cyrl\cyrsftsn\cyrn% + \cyro\cyrs\cyrt\cyrsftsn\ \underline{\textit{\@duration\ \cyrn\cyre\cyrd\cyre\cyrl\cyri, \cyrs\ \@practStart\ \cyrg. \cyrp\cyro\ \@practFinish\ \cyrg.}} +\end{flushleft} +%\parindent=-0.2cm +\vspace{1cm} + +\noindent +\CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp% +\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\\% +\signature{\@satitle}{\@saname}\\[14pt] + +\vfill +{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\\\@date} + +} +% \CYRR\cyru\cyrk\cyro\cyrv\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\ \cyrp% +% \cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri\ \cyro\cyrt\ \cyro\cyrr\cyrg\cyra% +% \cyrn\cyri\cyrz\cyra\cyrc\cyri\cyri\ (\cyru\cyrch\cyrr\cyre\cyrzh\cyrd% +% \cyre\cyrn\cyri\cyrya, \cyrp\cyrr\cyre\cyrd\cyrp\cyrr\cyri\cyrya\cyrt% +% \cyri\cyrya),\\[12pt]% +% \signature{\@patitle}{\@paname} + +% \newpage +% \thispagestyle{empty} +% \vspace*{11cm} +% \CYRT\cyre\cyrm\cyra\ \cyrp\cyrr\cyra\cyrk\cyrt\cyri\cyrk\cyri:<<\@title>> +% \parindent=1.25cm +% \newpage +} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% +% Title page of review +% --------------------------------------------------------------------------% +\newcommand{\MakeTitleReview} +{ +\pagestyle{empty} +\begin{center} +\shapka +\end{center} + + +{ +\centering +\textbf{\MakeUppercase{\@reviewtype}}\\[-0.3em] +\textbf{\@workname}\\[0.3em] +<<{\MakeUppercase{\@title}}>> + +\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ % +\@department\\ + +\centering +{\@author}\\ + +\centering +\@studentdone\ \cyro\cyrb\cyru\cyrch\cyre\cyrn\cyri\cyre\ \cyrp% +\cyro\ \@spectyperod\ \@napravlenie + +} +\vspace{2em} +} +% --------------------------------------------------------------------------% + + +% --------------------------------------------------------------------------% +% Title page of assignment +% --------------------------------------------------------------------------% +\newcommand{\MakeTitleAssign} +{ +\pagestyle{empty} +\begin{center} +\shapka +\end{center} + +{ +\centering +\CYRK\cyra\cyrf\cyre\cyrd\cyrr\cyra\ \@chair + + +\vspace{6em} +\centering +\textbf{\MakeUppercase{\@reviewtype}\\%[-0.3em] +\@workname} + +\vspace{0.3em} +\raggedright +\cyrp\cyro\ \@spectyperod\ \@napravlenie\\ +\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ % +\@department\\ +\MakeUppercase{\@author}\\ +\textbf{\CYRT\cyre\cyrm\cyra\ \cyrr\cyra\cyrb\cyro\cyrt\cyrery:} <<{\MakeUppercase{\@title}}>> + +} + +\vfill + +\noindent +\CYRN\cyra\cyru\cyrch\cyrn\cyrery\cyrishrt\ \cyrr\cyru\cyrk\cyro\cyrv% +\cyro\cyrd\cyri\cyrt\cyre\cyrl\cyrsftsn\\ +\signature{\@satitle}{\@saname}\\[14pt] +\CYRZ\cyra\cyrv\cyre\cyrd\cyru\cyryu\cyrshch\cyri\cyrishrt\ \cyrk\cyra% +\cyrf\cyre\cyrd\cyrr\cyro\cyrishrt\\ +\signature{\@chtitle}{\@chname} + +\vfill +{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date} + +} +\newpage +\begin{center}\bf +C\cyro\cyrd\cyre\cyrr\cyrzh\cyra\cyrn\cyri\cyre\ \cyrr\cyra\cyrb% +\cyro\cyrt\cyrery +\end{center} +} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% +% Referat title page +% --------------------------------------------------------------------------% +\newcommand{\RefMakeTitle} +{ +\thispagestyle{empty} +\shapka + +\vspace{3cm} +{\centering +\textbf{\MakeUppercase{\@title}} +\\[0.3cm] +{\@workname} + +} + +\vspace{1.5cm} +\begin{flushleft} +\@studenttitle\ \@course\ \cyrk\cyru\cyrr\cyrs\cyra\ \@group\ \cyrg% +\cyrr\cyru\cyrp\cyrp\cyrery\\ +\@spectype\ \@napravlenie\\ +\@department\\ +\@author +\end{flushleft} +\vfill + +\noindent +\CYRP\cyrr\cyro\cyrv\cyre\cyrr\cyri\cyrl\\ +\signature{\@satitle}{\@saname} + +\vfill +{\centering{\cyr\CYRS\cyra\cyrr\cyra\cyrt\cyro\cyrv\ \@date} + +} +\newpage +} +% --------------------------------------------------------------------------% + +% --------------------------------------------------------------------------% +% Last page +% --------------------------------------------------------------------------% +\newcommand{\lastpage} +{ +\newpage +\thispagestyle{empty} +\vspace*{11cm} +\@worktype\ <<\@title>>\ \@typework\ \cyrm\cyrn\cyro\cyrishrt\ % +\cyrs\cyra\cyrm\cyro\cyrs\cyrt\cyro\cyrya\cyrt\cyre\cyrl\cyrsftsn\cyrn% +\cyro, \cyri\ \cyrn\cyra\ \cyrv\cyrs\cyre\ \cyri\cyrs\cyrt\cyro\cyrch% +\cyrn\cyri\cyrk\cyri, \cyri\cyrm\cyre\cyryu\cyrshch\cyri\cyre\cyrs% +\cyrya\ \cyrv\ \cyrr\cyra\cyrb\cyro\cyrt\cyre, \cyrd\cyra\cyrn\cyrery\ % +\cyrs\cyro\cyro\cyrt\cyrv\cyre\cyrs\cyrt\cyrv\cyru\cyryu\cyrshch\cyri% +\cyre\ \cyrs\cyrs\cyrery\cyrl\cyrk\cyri.\par +\parindent=9cm +\parbox{8cm}{ +\begin{flushleft} +\hbox to 6cm{\hbox to 3.5cm{\hrulefill}/\hbox to 3.5cm{\hrulefill}/} +\end{flushleft} +} +} + +\AddEnumerateCounter{\Asbuk}{\@Asbuk}{\CYRM} +\AddEnumerateCounter{\asbuk}{\@asbuk}{\cyrm} + +% --------------------------------------------------------------------------% +% enumerations +% --------------------------------------------------------------------------% +\setlist{noitemsep} +%\setlist[1]{labelindent=\parindent} % < Usually a good idea +\setlist[itemize]{ +%leftmargin=52pt, +rightmargin=0pt, +labelsep=7pt, +labelwidth=20pt, +itemindent=0pt, +listparindent=0pt, +topsep=0pt,%4pt plus 2pt minus 4pt, +partopsep=0pt,% plus 1pt minus 1pt, +parsep=0pt,% plus 1pt, +itemsep=0 pt%\parsep +} +\setlist[enumerate]{ +%leftmargin=52pt, +rightmargin=0pt, +labelsep=5pt, +labelwidth=20pt, +itemindent=0pt, +listparindent=0pt, +topsep=0pt,%4pt plus 2pt minus 4pt, +partopsep=0pt,% plus 1pt minus 1pt, +parsep=0pt,% plus 1pt, +itemsep=0pt%\parsep +} +\setlist[itemize,1]{label={\normalfont\bfseries\textemdash}} +%\setlist[enumerate]{labelsep=*, leftmargin=1.5pc} +\setlist[enumerate,1]{label=\arabic*., ref=\arabic*} +\setlist[enumerate,2]{label=\emph{\asbuk*}), ref=\theenumi.\emph{\asbuk*}} +\setlist[enumerate,3]{label=\roman*., ref=\theenumii.\roman*} +\setlist[enumerate,4]{label=\Asbuk*., ref=\theenumiii.\Asbuk*} +%\setlist[description]{font=\sffamily\bfseries} + +%%%\renewcommand{\@listI}{% +%%%\leftmargin=52pt +%%%\rightmargin=0pt +%%%\labelsep=7pt +%%%\labelwidth=20pt +%%%\itemindent=0pt +%%%\listparindent=0pt +%%%\topsep=4pt plus 2pt minus 4pt +%%%\partopsep=0pt plus 1pt minus 1pt +%%%\parsep=0pt plus 1pt +%%%\itemsep=\parsep} + +%%%\renewcommand\theenumi {\@arabic\c@enumi} +%%%\renewcommand\theenumii {\asbuk{enumii}} +%%%\renewcommand\theenumiii{\@roman\c@enumiii} +%%%\renewcommand\theenumiv {\Asbuk{enumiv}} +%%%\newcommand\atheenumi{\asbuk{enumi}} +%%%\newcommand\atheenumii{\asbuk{enumii}} +%%%\renewcommand\labelenumi {\theenumi.} +%%%\renewcommand\labelenumii {\theenumii.} +%%%\renewcommand\labelenumiii{\theenumiii.} +%%%\renewcommand\labelenumiv {\theenumiv.} +%%%\renewcommand\p@enumii {\theenumi} +%%%\renewcommand\p@enumiii {\theenumi.\theenumii} +%%%\renewcommand\p@enumiv {\p@enumiii.\theenumiii} +%%%\renewcommand\labelitemi {\normalfont\bfseries\textemdash} +%%%\renewcommand\labelitemii {\normalfont\bfseries\textendash} +%%%\renewcommand\labelitemiii{\textperiodcentered} +%%%\renewcommand\labelitemiv {\textasteriskcentered} +%%% +%%%\renewcommand{\@listI}{% +%%%\leftmargin=52pt +%%%\rightmargin=0pt +%%%\labelsep=7pt +%%%\labelwidth=20pt +%%%\itemindent=0pt +%%%\listparindent=0pt +%%%\topsep=4pt plus 2pt minus 4pt +%%%\partopsep=0pt plus 1pt minus 1pt +%%%\parsep=0pt plus 1pt +%%%\itemsep=\parsep} +% --------------------------------------------------------------------------% + + +% --------------------------------------------------------------------------% +% References +% --------------------------------------------------------------------------% +\makeatletter +\def\@biblabel#1{#1 } + +\renewenvironment{thebibliography}[1] +{ + \starsection{\cyr\CYRS\CYRP\CYRI\CYRS\CYRO\CYRK\ \CYRI\CYRS\CYRP\CYRO\CYRL% + \CYRSFTSN\CYRZ\CYRO\CYRV\CYRA\CYRN\CYRN\CYRERY\CYRH\ \CYRI\CYRS\CYRT% + \CYRO\CYRCH\CYRN\CYRI\CYRK\CYRO\CYRV} + \list{\@biblabel{\@arabic\c@enumiv}}% + {\settowidth\labelwidth{\@biblabel{#1}}% + \leftmargin\labelwidth + \advance\leftmargin\labelsep + \setlength{\itemsep}{0pt} + \@openbib@code + \usecounter{enumiv}% + \let\p@enumiv\@empty + \renewcommand\theenumiv{\@arabic\c@enumiv}}% + \sloppy + \clubpenalty4000 + \@clubpenalty \clubpenalty + \widowpenalty4000% + \sfcode`\.\@m} +{\def\@noitemerr + {\@latex@warning{Empty `thebibliography' environment}}% + \endlist} + +\makeatother +% --------------------------------------------------------------------------% diff --git a/pract/sem8/gost780uv.bst b/pract/sem8/gost780uv.bst new file mode 100644 index 0000000..54db18b --- /dev/null +++ b/pract/sem8/gost780uv.bst @@ -0,0 +1,1408 @@ +%% +%% This is file `gost780uv.bst', +%% generated with the docstrip utility. +%% +%% The original source files were: +%% +%% plainv.dtx (with options: `gost780uv') +%% +%% Copyright 1996-2003 Maksym Polyakov. +%% Version 2003.05.10 +%% +%% This file may be distributed and/or modified under the +%% conditions of the LaTeX Project Public License, either version 1.2 +%% of this license or (at your option) any later version. +%% The latest version of this license is in +%% http://www.latex-project.org/lppl.txt +%% and version 1.2 or later is part of all distributions of LaTeX +%% version 1999/12/01 or later. +%% +%% Please, send bug reports via e-mail: +%% polyama at auburn dot edu +%% +%% Modified by Konstantin Vorontsov, 2003, voron at ccas dot ru. +%% +%% +%% This bibliography style attempts +%% to format bibliography according to +%% GOST 7.1-84 and GOST 7.80-00 +%% +%% For the Ukrainian|Russian bibliographic entries +%% you need to create field +%% language = {ukrainian|russian}. +%% Default language is English. +%% Field numpages for books must contain number of pages. +%% Optional field url will format url (using hyperref, if loaded). +%% +%% See examples in examples.[pdf|zip] +%% +%% Requires 8-bit bibtex with switch -B and csf file supporting cyrillic. +%% bibtex8 -B -c .csf +%% +%% 06.06.2003 by Konstantin Vorontsov: +%% New ENTRY "annote" added for output annotations. +%% New ENTRY "abstract" is equivalent to "annote" for compatibility with JabRef. +%% New commands \BibUrl, \BibAnnote added +%% for customize urls and annotations. +%% New commands \BibAuthor, \BibTitle added +%% for customize authors and titles. +%% New command \BibSection{cite}{title}{text} added +%% for support sections in unsorted bibliography. +%% + +ENTRY + { address + annote + abstract + author + booktitle + bookauthor + chapter + edition + editor + compiler + howpublished + institution + journal + key + language + month + note + number + organization + pages + numpages + publisher + school + series + text + title + type + url + volume + year + } + {} + { label } + +INTEGERS { output.state before.all mid.sentence after.sentence after.block +after.dblslash after.slash after.column after.semicolumn after.url} + +FUNCTION {init.state.consts} +{ #0 'before.all := + #1 'mid.sentence := + #2 'after.sentence := + #3 'after.block := + #4 'after.dblslash := + #5 'after.slash := + #6 'after.column := + #7 'after.semicolumn := +} + +STRINGS { s t } + +FUNCTION {output.nonnull} +{ 's := + output.state mid.sentence = + { ", " * write$ } + { output.state after.block = + { add.period$ write$ + " " quote$ "--- " * * write$ + newline$ + "\newblock " write$ + } + { output.state before.all = + 'write$ + { output.state after.dblslash = + { "~// " * write$ } + { output.state after.slash = + { "~/ " * write$ } + { output.state after.column = + { ": " * write$ } + { output.state after.semicolumn = + { "; " * write$ } + { add.period$ " " * write$ } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + } + if$ + mid.sentence 'output.state := + } + if$ + s +} + +FUNCTION {output} +{ duplicate$ empty$ + 'pop$ + 'output.nonnull + if$ +} + +FUNCTION {output.check} +{ 't := + duplicate$ empty$ + { pop$ "empty " t * " in " * cite$ * warning$ } + 'output.nonnull + if$ +} + +FUNCTION {fin.entry} +{ add.period$ + write$ + newline$ +} + +FUNCTION {new.block} +{ output.state before.all = + 'skip$ + { after.block 'output.state := } + if$ +} + +FUNCTION {new.dblslash} +{ output.state before.all = + 'skip$ + { after.dblslash 'output.state := } + if$ +} + +FUNCTION {new.slash} +{ output.state before.all = + 'skip$ + { after.slash 'output.state := } + if$ +} + +FUNCTION {new.column} +{ output.state before.all = + 'skip$ + { after.column 'output.state := } + if$ +} + +FUNCTION {new.semicolumn} +{ output.state before.all = + 'skip$ + { after.semicolumn 'output.state := } + if$ +} + +FUNCTION {new.sentence} +{ output.state after.block = + 'skip$ + { output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ + } + if$ +} + +FUNCTION {new.par} +{ output.state before.all = + 'skip$ + { after.sentence 'output.state := } + if$ +} + +FUNCTION {add.blank} +{ " " * before.all 'output.state := +} + +FUNCTION {not} +{ { #0 } + { #1 } + if$ +} + +FUNCTION {and} +{ 'skip$ + { pop$ #0 } + if$ +} + +FUNCTION {or} +{ { pop$ #1 } + 'skip$ + if$ +} + +FUNCTION {non.stop} +{ duplicate$ + "}" * add.period$ + #-1 #1 substring$ "." = +} + +FUNCTION {new.block.checka} +{ empty$ + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.block.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.block + if$ +} + +FUNCTION {new.sentence.checka} +{ empty$ + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {new.sentence.checkb} +{ empty$ + swap$ empty$ + and + 'skip$ + 'new.sentence + if$ +} + +FUNCTION {field.or.null} +{ duplicate$ empty$ + { pop$ "" } + 'skip$ + if$ +} + +FUNCTION {emphasize} +{ duplicate$ empty$ + { pop$ "" } + { "\emph{" swap$ * "}" * } + if$ +} + +FUNCTION {BibAuthor} +{ duplicate$ empty$ + { pop$ "" } + { "\BibAuthor{" swap$ * "}" * } + if$ +} + +FUNCTION {BibTitle} +{ duplicate$ empty$ + { pop$ "" } + { "\BibTitle{" swap$ * "}" * } + if$ +} + +FUNCTION {space.word} +{ " " swap$ * " " * } + +FUNCTION {bbl.edby} % { "\bbledby{}" } +{ language empty$ + {"Ed. by "} + { language "ukrainian" = + {"{\cyr\CYRP\cyrii\cyrd\ \cyrr\cyre\cyrd.\ }"} + { language "russian" = + {"{\cyr\CYRP\cyro\cyrd\ \cyrr\cyre\cyrd.\ }"} + {"language is not defined: " language "edited by" * * warning$ "edited by"} + if$} + if$} + if$ +} + +FUNCTION {bbl.cmplr} +{ language empty$ + {"Compiler "} + { language "ukrainian" = + {"{\cyr\CYRU\cyrk\cyrl\.\ }"} + { language "russian" = + {"{\cyr\CYRS\cyro\cyrs\cyrt.\ }"} + {"language is not defined: " language "compiler" * * warning$ "compiler"} + if$} + if$} + if$ +} + +FUNCTION {bbl.edition} % { "\bbledition{}" } +{ language empty$ + {"edition"} + { language "ukrainian" = + {"{\cyr\cyrv\cyri\cyrd.}"} + { language "russian" = + {"{\cyr\cyri\cyrz\cyrd.}"} + {"language is not defined: " language "edition" * * warning$ "edition"} + if$} + if$} + if$ +} + +FUNCTION {bbl.vvolume} % { "\bblVolume{}" } +{ language empty$ + {"Volume"} + { language "ukrainian" = language "russian" = or + {"\CYRT\cyro\cyrm"} + {"language is not defined: " language "Volume" * * warning$ "Volume"} + if$} + if$ +} + +FUNCTION {bbl.vvol} % { "\bblVol{}" } +{ language empty$ + {"Vol."} + { language "ukrainian" = language "russian" = or + {"\CYRT."} + {"language is not defined: " language "Vol." * * warning$ "Vol."} + if$} + if$ +} + +FUNCTION {bbl.iissue} % { "\bblIssue{}" } +{ language empty$ + {"Issue"} + { language "ukrainian" = + {"\CYRV\cyri\cyrp\cyru\cyrs\cyrk"} + { language "russian" = + {"\CYRV\cyrery\cyrp\cyru\cyrs\cyrk"} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.iiss} % { "\bblIss{}" } +{ language empty$ + {"Iss."} + { language "ukrainian" = + {"\CYRV\cyri\cyrp."} + { language "russian" = + {"\CYRV\cyrery\cyrp."} + {"language is not defined: " language * warning$ "Issue"} + if$} + if$} + if$ +} + +FUNCTION {bbl.of} % { "\bblof{}" } +{ language empty$ + {"of"} + { language "ukrainian" = + {"{\cyr\cyrii\cyrz}"} + { language "russian" = + {"{\cyr\cyri\cyrz}"} + {"language is not defined: " language "of" * * warning$ "of"} + if$} + if$} + if$ +} + +FUNCTION {bbl.etal} % { "\bblof{}" } +{ language empty$ + {"et~al."} + { language "ukrainian" = + {"{\cyr\cyrt\cyra~\cyrii\cyrn.}"} + { language "russian" = + {"{\cyr\cyri~\cyrd\cyrr.}"} + {"language is not defined: " language "at al" * * warning$ "at al."} + if$} + if$} + if$ +} + +FUNCTION {bbl.nnumber} % { "\bblNumber{}" } +{ language empty$ + {"Number"} + { language "ukrainian" = language "russian" = or + {"\CYRN\cyro\cyrm\cyre\cyrr"} + {"language is not defined: " language "Number" * * warning$ "Number"} + if$} + if$ +} + +FUNCTION {bbl.number} % { "\bblnumber{}" } +{ language empty$ + {"number"} + { language "ukrainian" = language "russian" = or + {"{\cyr\cyrn\cyro\cyrm\cyre\cyrr}"} + {"language is not defined: " language "number" * * warning$ "number"} + if$} + if$ +} + +FUNCTION {bbl.nr} % { "\bblno{}" } +{ language empty$ + {"no."} + { language "ukrainian" = language "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "no." * * warning$ "no."} + if$} + if$ +} + +FUNCTION {bbl.nnr} % { "\bblno{}" } +{ language empty$ + {"No."} + { language "ukrainian" = language "russian" = or + {"{\cyr\textnumero}"} + {"language is not defined: " language "No." * * warning$ "No."} + if$} + if$ +} + +FUNCTION {bbl.in} % { "\bblin{}" } +{ language empty$ + {"in"} + { language "ukrainian" = language "russian" = or + {"{\cyr\cyrv}"} + {"language is not defined: " language "in" * * warning$ "in"} + if$} + if$ +} + +FUNCTION {bbl.iin} % { "\bblIn{}" } +{ language empty$ + {"In"} + { language "ukrainian" = language "russian" = or + {"\CYRV"} + {"language is not defined: " language "In" * * warning$ "In"} + if$} + if$ +} + +FUNCTION {bbl.pages} % { "\bblpp." } +{ language empty$ + {"pp."} + { language "ukrainian" = language "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "pp." * * warning$ "pp."} + if$} + if$ +} + +FUNCTION {bbl.page} % { "\bblp." +{ language empty$ + {"p."} + { language "ukrainian" = language "russian" = or + {"{\cyr\cyrs.}"} + {"language is not defined: " language "p." * * warning$ "p."} + if$} + if$ +} + +FUNCTION {bbl.ppages}% { "\bblPp." } +{ language empty$ + {"Pp."} + { language "ukrainian" = language "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "Pp." * * warning$ "Pp."} + if$} + if$ +} + +FUNCTION {bbl.ppage} % { "\bblP." } +{ language empty$ + {"P."} + { language "ukrainian" = language "russian" = or + {"{\cyr\CYRS.}"} + {"language is not defined: " language "P." * * warning$ "P."} + if$} + if$ +} + + +FUNCTION {bbl.techrep} { "Tech. Rep." } +FUNCTION {bbl.mthesis} { "Master's thesis" } +FUNCTION {bbl.phdthesis} { "Ph.D. thesis" } + +INTEGERS { nameptr namesleft numnames } + + +FUNCTION {format.names} +{ + #1 "{vv~}{ll}{~jj},{~f.}" format.name$ +} + + +FUNCTION {format.names.rev} +{ 's := + #1 'nameptr := + s num.names$ 'numnames := + numnames 'namesleft := + { namesleft #0 > } + { s nameptr + "{f.~}{vv~}{ll}{, jj}" + format.name$ 't := + nameptr #1 > + { + nameptr #8 = + numnames #8 > and + { "others" 't := + #1 'namesleft := } + 'skip$ + if$ + namesleft #1 > + { ", " * t * } + { + t "others" = + { " " * bbl.etal * } + { ", " * t * } + if$ + } + if$ + } + 't + if$ + nameptr #1 + 'nameptr := + namesleft #1 - 'namesleft := + } + while$ +} + +FUNCTION {format.authors} +{ author empty$ + { "" } + { author format.names BibAuthor} + if$ +} + +FUNCTION {format.bookauthors} +{ bookauthor empty$ + { "" } + { bookauthor format.names} + if$ +} + +FUNCTION {format.authors.after} +{ author empty$ + { "" } + { author format.names.rev} + if$ +} + +FUNCTION {format.bookauthors.after} +{ bookauthor empty$ + { "" } + { bookauthor format.names.rev} + if$ +} + +FUNCTION {format.editors.after} +{ editor empty$ + { "" } + { bbl.edby editor format.names.rev * + } + if$ +} + +FUNCTION {format.compiler.after} +{ compiler empty$ + { "" } + { bbl.cmplr compiler format.names.rev * + } + if$ +} + +FUNCTION {format.title} +{ title empty$ + { "" } + { title "t" change.case$ BibTitle + } + if$ +} + +FUNCTION {output.address.publisher.date} +{ + address empty$ + 'skip$ + { address output + publisher empty$ + 'skip$ + { new.column + } + if$ + } + if$ + publisher output + year "year" output.check +} + +FUNCTION {output.bibitem} +{ newline$ + "\bibitem{" write$ + cite$ write$ + "}" write$ + newline$ + "\selectlanguageifdefined{" write$ + language empty$ + {"english" write$} + {language write$} + if$ + "}" write$ newline$ + "" + before.all 'output.state := +} + +FUNCTION {n.dashify} +{ 't := + "" + { t empty$ not } + { t #1 #1 substring$ "-" = + { t #1 #2 substring$ "--" = not + { "--" * + t #2 global.max$ substring$ 't := + } + { { t #1 #1 substring$ "-" = } + { "-" * + t #2 global.max$ substring$ 't := + } + while$ + } + if$ + } + { t #1 #1 substring$ * + t #2 global.max$ substring$ 't := + } + if$ + } + while$ +} + +FUNCTION {word.in} +{ bbl.iin + " " * } + +FUNCTION {format.date} +{ year empty$ + { month empty$ + { "" } + { "there's a month but no year in " cite$ * warning$ + month + } + if$ + } + { month empty$ + 'year + { month " " * year * } + if$ + } + if$ +} + +FUNCTION {format.btitle} +{ title BibTitle +} + +FUNCTION {tie.or.space.connect} +{ duplicate$ text.length$ #3 < + { "~" } + { " " } + if$ + swap$ * * +} + +FUNCTION {tie.connect} + {"~" + swap$ * * + } + +FUNCTION {either.or.check} +{ empty$ + 'pop$ + { "can't use both " swap$ * " fields in " * cite$ * warning$ } + if$ +} + +FUNCTION {format.bvolume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect + series empty$ + 'skip$ + { bbl.of space.word * series emphasize * } + if$ + "volume and number" number either.or.check + } + if$ +} + +FUNCTION {format.number.series} +{ volume empty$ + { number empty$ + { series field.or.null } + { series empty$ + { "there's a number but no series in " cite$ * warning$ + bbl.nnr } + { + %new.dblslash + new.sentence + series + bbl.nr + tie.or.space.connect} + if$ + number tie.or.space.connect + } + if$ + } + { "" } + if$ +} + +FUNCTION {is.num} +{ chr.to.int$ + duplicate$ "0" chr.to.int$ < not + swap$ "9" chr.to.int$ > not and +} + +FUNCTION {extract.num} +{ duplicate$ 't := + "" 's := + { t empty$ not } + { t #1 #1 substring$ + t #2 global.max$ substring$ 't := + duplicate$ is.num + { s swap$ * 's := } + { pop$ "" 't := } + if$ + } + while$ + s empty$ + 'skip$ + { pop$ s } + if$ +} + + +FUNCTION {convert.edition} +{ edition +} + +FUNCTION {format.edition} +{ edition empty$ + { "" } + { output.state mid.sentence = + { convert.edition "l" change.case$ " " * bbl.edition * } + { convert.edition "t" change.case$ " " * bbl.edition * } + if$ + } + if$ +} + +INTEGERS { multiresult } + +FUNCTION {multi.page.check} +{ 't := + #0 'multiresult := + { multiresult not + t empty$ not + and + } + { t #1 #1 substring$ + duplicate$ "-" = + swap$ duplicate$ "," = + swap$ "+" = + or or + { #1 'multiresult := } + { t #2 global.max$ substring$ 't := } + if$ + } + while$ + multiresult +} + +FUNCTION {format.pages} +{ pages empty$ + { "" } + { pages multi.page.check + { bbl.ppages pages n.dashify tie.connect } + { bbl.ppage pages tie.connect } + if$ + } + if$ +} + +FUNCTION {format.pages.page} +{ pages empty$ + { numpages empty$ + { "" } + { numpages bbl.pages tie.connect } + if$} + { format.pages} + if$ +} + +FUNCTION {format.vol.num.pages} +{ volume field.or.null + number empty$ + 'skip$ + { + ", no." number tie.or.space.connect * + volume empty$ + { "there's a number but no volume in " cite$ * warning$ } + 'skip$ + if$ + } + if$ + pages empty$ + 'skip$ + { duplicate$ empty$ + { pop$ format.pages } + { ": " * pages n.dashify * } + if$ + } + if$ +} + +FUNCTION {format.volume} +{ volume empty$ + { "" } + { bbl.vvol volume tie.connect } + if$ +} + +FUNCTION {format.number} +{ number empty$ + { "" } + { bbl.nr number tie.connect } + if$ +} + + +FUNCTION {empty.misc.check} +{ author empty$ title empty$ howpublished empty$ + month empty$ year empty$ note empty$ + and and and and and + key empty$ not and + { "all relevant fields are empty in " cite$ * warning$ } + 'skip$ + if$ +} + +FUNCTION {format.thesis.type} +{ type empty$ + 'skip$ + { pop$ + type "t" change.case$ + } + if$ +} + +FUNCTION {format.tr.number} +{ type empty$ + { bbl.techrep } + 'type + if$ + number empty$ + { "t" change.case$ } + { number tie.or.space.connect } + if$ +} + +FUNCTION {author.before} +{ + author empty$ + 'skip$ + {author num.names$ #8 < + {format.authors output + new.sentence} + 'skip$ + if$} + if$ +} + +FUNCTION {bookauthor.before} +{ + bookauthor empty$ + 'skip$ + {bookauthor num.names$ #8 < + {format.bookauthors output + new.sentence} + 'skip$ + if$} + if$ +} + + +FUNCTION {author.after} +{ + author empty$ + 'skip$ + {format.authors.after output + new.semicolumn } + if$ +} +FUNCTION {bookauthor.after} +{ + bookauthor empty$ + 'skip$ + {format.bookauthors.after output + new.semicolumn } + if$ +} + +FUNCTION {editor.organization.after} +{ + compiler empty$ + {} + { format.compiler.after output + new.semicolumn + } + if$ + editor empty$ + {} + { format.editors.after output + new.semicolumn + } + if$ + organization empty$ + {} + { organization output + new.semicolumn + } + if$ +} + +FUNCTION {format.url} +{ url empty$ + { "" } + { + "\BibUrl{" url * "}" * + } + if$ +} + +FUNCTION {fin.entry.std} +{ new.block + note output + new.par + format.url output + new.par + annote empty$ + { + abstract empty$ + { fin.entry } + { + "\BibAnnote{" + output before.all 'output.state := + abstract add.period$ + output before.all 'output.state := + "}" output + write$ + newline$ + } + if$ + } + { + "\BibAnnote{" + output before.all 'output.state := + annote add.period$ + output before.all 'output.state := + "}" output + write$ + newline$ +} + if$ +} + +FUNCTION {bibsection} +{ + newline$ + "\BibSection{" write$ + cite$ write$ + "}{" write$ + title write$ + "}{" write$ + text empty$ + 'skip$ + { newline$ text write$ } + if$ + "}" write$ + newline$ + before.all 'output.state := +} + +FUNCTION {article} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + new.dblslash + journal emphasize "journal" output.check + new.block + format.date output + new.block + format.volume output + format.number output + new.block + format.pages.page output + fin.entry.std +} + +FUNCTION {book} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + new.sentence + format.number.series output + new.block + format.edition output + new.block + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + fin.entry.std +} + +FUNCTION {booklet} +{ output.bibitem + author.before + format.title "title" output.check + new.slash + author.after + editor.organization.after + new.block + howpublished output + address output + format.date output + fin.entry.std +} + +FUNCTION {inbook} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + new.dblslash + bookauthor.before + booktitle "booktitle" output.check + new.slash + bookauthor.after + editor.organization.after + new.block + format.edition output + new.block + format.number.series output + new.sentence + output.address.publisher.date + new.block + format.bvolume output + new.block + format.pages.page output + fin.entry.std +} + +FUNCTION {incollection} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.slash + author.after + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + output.address.publisher.date + new.block + format.bvolume output + format.number.series output + new.block + format.pages.page output + fin.entry.std +} + +FUNCTION {inproceedings} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.dblslash + booktitle "booktitle" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + new.block + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + new.column + publisher output + format.date "year" output.check + } + if$ + new.block + format.pages.page output + fin.entry.std +} + +FUNCTION {conference} { inproceedings } + +FUNCTION {manual} +{ output.bibitem + author empty$ + { organization empty$ + 'skip$ + { organization output.nonnull + address output + } + if$ + } + { format.authors output.nonnull } + if$ + new.block + format.btitle "title" output.check + author empty$ + { organization empty$ + { + address new.block.checka + address output + } + 'skip$ + if$ + } + { + organization address new.block.checkb + organization output + address output + } + if$ + format.edition output + format.date output + fin.entry.std +} + +FUNCTION {mastersthesis} +{ output.bibitem + format.authors "author" output.check + new.block + format.btitle "title" output.check + new.block + bbl.mthesis format.thesis.type output.nonnull + school "school" output.check + address output + format.date "year" output.check + fin.entry.std +} + +FUNCTION {misc} +{ output.bibitem + format.authors output + title howpublished new.sentence.checkb + format.title output + howpublished new.block.checka + howpublished output + new.block + format.date output + fin.entry.std +} + +FUNCTION {phdthesis} +{ output.bibitem + format.authors "author" output.check + new.sentence + format.btitle "title" output.check + new.column + bbl.phdthesis format.thesis.type output.nonnull + new.slash + school "school" output.check + new.block + output.address.publisher.date + new.block + format.pages.page output + fin.entry.std +} + +FUNCTION {proceedings} +{ output.bibitem + format.btitle "title" output.check + new.slash + editor.organization.after + new.block + format.bvolume output + format.number.series output + address empty$ + { publisher output + format.date "year" output.check + } + { address output.nonnull + format.date "year" output.check + new.sentence + publisher output + } + if$ + fin.entry.std +} + +FUNCTION {techreport} +{ output.bibitem + author.before + new.sentence + format.title "title" output.check + new.column + format.tr.number output.nonnull + new.slash + author.after + editor.organization.after + new.block + address output + new.column +%% institution "institution" output.check + institution output + format.date "year" output.check + fin.entry.std +} + +FUNCTION {unpublished} +{ output.bibitem + author.before + format.btitle "title" output.check + new.slash + author.after + editor.organization.after + fin.entry.std +} + +FUNCTION {default.type} { misc } + +MACRO {jan} {"\bbljan{}"} + +MACRO {feb} {"\bblfeb{}"} + +MACRO {mar} {"\bblmar{}"} + +MACRO {apr} {"\bblapr{}"} + +MACRO {may} {"\bblmay{}"} + +MACRO {jun} {"\bbljun{}"} + +MACRO {jul} {"\bbljul{}"} + +MACRO {aug} {"\bblaug{}"} + +MACRO {sep} {"\bblsep{}"} + +MACRO {oct} {"\bbloct{}"} + +MACRO {nov} {"\bblnov{}"} + +MACRO {dec} {"\bbldec{}"} + +MACRO {acmcs} {"ACM Computing Surveys"} + +MACRO {acta} {"Acta Informatica"} + +MACRO {cacm} {"Communications of the ACM"} + +MACRO {ibmjrd} {"IBM Journal of Research and Development"} + +MACRO {ibmsj} {"IBM Systems Journal"} + +MACRO {ieeese} {"IEEE Transactions on Software Engineering"} + +MACRO {ieeetc} {"IEEE Transactions on Computers"} + +MACRO {ieeetcad} + {"IEEE Transactions on Computer-Aided Design of Integrated Circuits"} + +MACRO {ipl} {"Information Processing Letters"} + +MACRO {jacm} {"Journal of the ACM"} + +MACRO {jcss} {"Journal of Computer and System Sciences"} + +MACRO {scp} {"Science of Computer Programming"} + +MACRO {sicomp} {"SIAM Journal on Computing"} + +MACRO {tocs} {"ACM Transactions on Computer Systems"} + +MACRO {tods} {"ACM Transactions on Database Systems"} + +MACRO {tog} {"ACM Transactions on Graphics"} + +MACRO {toms} {"ACM Transactions on Mathematical Software"} + +MACRO {toois} {"ACM Transactions on Office Information Systems"} + +MACRO {toplas} {"ACM Transactions on Programming Languages and Systems"} + +MACRO {tcs} {"Theoretical Computer Science"} + +READ + + +STRINGS { longest.label } + +INTEGERS { number.label longest.label.width } + +FUNCTION {initialize.longest.label} +{ "" 'longest.label := + #1 'number.label := + #0 'longest.label.width := +} + +FUNCTION {longest.label.pass} +{ number.label int.to.str$ 'label := + number.label #1 + 'number.label := + label width$ longest.label.width > + { label 'longest.label := + label width$ 'longest.label.width := + } + 'skip$ + if$ +} + +EXECUTE {initialize.longest.label} + +ITERATE {longest.label.pass} + +FUNCTION {begin.bib} +{ "\begin{thebibliography}{" longest.label * "}" * write$ newline$ + "\def\selectlanguageifdefined#1{" write$ newline$ + "\expandafter\ifx\csname date#1\endcsname\relax" write$ newline$ + "\else\language\csname l@#1\endcsname\fi}" write$ newline$ + "\ifx\undefined\url\def\url#1{{\small #1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAuthor\def\BibAuthor#1{\emph{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibTitle\def\BibTitle#1{#1}\else\fi" write$ newline$ + "\ifx\undefined\BibUrl\def\BibUrl#1{\url{#1}}\else\fi" write$ newline$ + "\ifx\undefined\BibAnnote\def\BibAnnote#1{}\else\fi" write$ newline$ + "\ifx\undefined\BibSection\def\BibSection#1#2#3{}\else\fi" write$ newline$ + preamble$ empty$ + 'skip$ + { preamble$ write$ newline$ } + if$ +} + +EXECUTE {begin.bib} + +EXECUTE {init.state.consts} + +ITERATE {call.type$} + +FUNCTION {end.bib} +{ newline$ + "\end{thebibliography}" write$ newline$ +} + +EXECUTE {end.bib} + +%% +%% End of file `gost780uv.bst'. diff --git a/pract/sem8/images/01_newuser.png b/pract/sem8/images/01_newuser.png new file mode 100755 index 0000000..a3cbfc3 Binary files /dev/null and b/pract/sem8/images/01_newuser.png differ diff --git a/pract/sem8/images/02_unit.png b/pract/sem8/images/02_unit.png new file mode 100755 index 0000000..f190050 Binary files /dev/null and b/pract/sem8/images/02_unit.png differ diff --git a/pract/sem8/images/03_teachers.png b/pract/sem8/images/03_teachers.png new file mode 100755 index 0000000..1ddac63 Binary files /dev/null and b/pract/sem8/images/03_teachers.png differ diff --git a/pract/sem8/images/04_folders.png b/pract/sem8/images/04_folders.png new file mode 100755 index 0000000..8b5101b Binary files /dev/null and b/pract/sem8/images/04_folders.png differ diff --git a/pract/sem8/images/05_groups.png b/pract/sem8/images/05_groups.png new file mode 100755 index 0000000..25fbe40 Binary files /dev/null and b/pract/sem8/images/05_groups.png differ diff --git a/pract/sem8/images/06_sci_group.png b/pract/sem8/images/06_sci_group.png new file mode 100755 index 0000000..5ed23b5 Binary files /dev/null and b/pract/sem8/images/06_sci_group.png differ diff --git a/pract/sem8/images/07_dir_catalog.png b/pract/sem8/images/07_dir_catalog.png new file mode 100755 index 0000000..94d5458 Binary files /dev/null and b/pract/sem8/images/07_dir_catalog.png differ diff --git a/pract/sem8/images/08_director_access.png b/pract/sem8/images/08_director_access.png new file mode 100755 index 0000000..da94fac Binary files /dev/null and b/pract/sem8/images/08_director_access.png differ diff --git a/pract/sem8/images/09_director_deny.png b/pract/sem8/images/09_director_deny.png new file mode 100755 index 0000000..1931ba0 Binary files /dev/null and b/pract/sem8/images/09_director_deny.png differ diff --git a/pract/sem8/images/10_sci_dir_deny.png b/pract/sem8/images/10_sci_dir_deny.png new file mode 100755 index 0000000..bfaa373 Binary files /dev/null and b/pract/sem8/images/10_sci_dir_deny.png differ diff --git a/pract/sem8/images/11_sci_teach_deny.png b/pract/sem8/images/11_sci_teach_deny.png new file mode 100755 index 0000000..d3d6bf6 Binary files /dev/null and b/pract/sem8/images/11_sci_teach_deny.png differ diff --git a/pract/sem8/images/12_sci_deny.png b/pract/sem8/images/12_sci_deny.png new file mode 100755 index 0000000..a563bfb Binary files /dev/null and b/pract/sem8/images/12_sci_deny.png differ diff --git a/pract/sem8/images/13_sci_boss.png b/pract/sem8/images/13_sci_boss.png new file mode 100755 index 0000000..c69977c Binary files /dev/null and b/pract/sem8/images/13_sci_boss.png differ diff --git a/pract/sem8/images/14_teach_hr_deny.png b/pract/sem8/images/14_teach_hr_deny.png new file mode 100755 index 0000000..da21b02 Binary files /dev/null and b/pract/sem8/images/14_teach_hr_deny.png differ diff --git a/pract/sem8/images/15_teach_boss_deny.png b/pract/sem8/images/15_teach_boss_deny.png new file mode 100755 index 0000000..f24283e Binary files /dev/null and b/pract/sem8/images/15_teach_boss_deny.png differ diff --git a/pract/sem8/images/16_teach_teach_deny.png b/pract/sem8/images/16_teach_teach_deny.png new file mode 100755 index 0000000..2e69c47 Binary files /dev/null and b/pract/sem8/images/16_teach_teach_deny.png differ diff --git a/pract/sem8/images/17_teach_access.png b/pract/sem8/images/17_teach_access.png new file mode 100755 index 0000000..b35a6f3 Binary files /dev/null and b/pract/sem8/images/17_teach_access.png differ diff --git a/pract/sem8/images/18_dir_cat.png b/pract/sem8/images/18_dir_cat.png new file mode 100755 index 0000000..f61407b Binary files /dev/null and b/pract/sem8/images/18_dir_cat.png differ diff --git a/pract/sem8/images/19_sci_cat.png b/pract/sem8/images/19_sci_cat.png new file mode 100755 index 0000000..76047ed Binary files /dev/null and b/pract/sem8/images/19_sci_cat.png differ diff --git a/pract/sem8/images/20_hr_cat.png b/pract/sem8/images/20_hr_cat.png new file mode 100755 index 0000000..234bad1 Binary files /dev/null and b/pract/sem8/images/20_hr_cat.png differ diff --git a/pract/sem8/images/21_teach_cat.png b/pract/sem8/images/21_teach_cat.png new file mode 100755 index 0000000..9089e98 Binary files /dev/null and b/pract/sem8/images/21_teach_cat.png differ diff --git a/pract/sem8/images/22_supply_cat.png b/pract/sem8/images/22_supply_cat.png new file mode 100755 index 0000000..027bb51 Binary files /dev/null and b/pract/sem8/images/22_supply_cat.png differ diff --git a/pract/sem8/images/23_supply_boss_cat.png b/pract/sem8/images/23_supply_boss_cat.png new file mode 100755 index 0000000..474e979 Binary files /dev/null and b/pract/sem8/images/23_supply_boss_cat.png differ diff --git a/pract/sem8/images/24_supply1_cat.png b/pract/sem8/images/24_supply1_cat.png new file mode 100755 index 0000000..c238d9e Binary files /dev/null and b/pract/sem8/images/24_supply1_cat.png differ diff --git a/pract/sem8/images/25_policy_create.png b/pract/sem8/images/25_policy_create.png new file mode 100755 index 0000000..541c719 Binary files /dev/null and b/pract/sem8/images/25_policy_create.png differ diff --git a/pract/sem8/images/26_audit_policy.png b/pract/sem8/images/26_audit_policy.png new file mode 100755 index 0000000..910194c Binary files /dev/null and b/pract/sem8/images/26_audit_policy.png differ diff --git a/pract/sem8/images/27_clear.png b/pract/sem8/images/27_clear.png new file mode 100755 index 0000000..15080ca Binary files /dev/null and b/pract/sem8/images/27_clear.png differ diff --git a/pract/sem8/images/28_block_policy.png b/pract/sem8/images/28_block_policy.png new file mode 100755 index 0000000..e73aaf8 Binary files /dev/null and b/pract/sem8/images/28_block_policy.png differ diff --git a/pract/sem8/images/29_deny_journ.png b/pract/sem8/images/29_deny_journ.png new file mode 100755 index 0000000..bbccb10 Binary files /dev/null and b/pract/sem8/images/29_deny_journ.png differ diff --git a/pract/sem8/images/30_test_journ.png b/pract/sem8/images/30_test_journ.png new file mode 100755 index 0000000..075f9b1 Binary files /dev/null and b/pract/sem8/images/30_test_journ.png differ diff --git a/pract/sem8/images/31_audit_vhod.png b/pract/sem8/images/31_audit_vhod.png new file mode 100755 index 0000000..aa9f011 Binary files /dev/null and b/pract/sem8/images/31_audit_vhod.png differ diff --git a/pract/sem8/maker.sh b/pract/sem8/maker.sh new file mode 100755 index 0000000..e847acf --- /dev/null +++ b/pract/sem8/maker.sh @@ -0,0 +1,35 @@ +#!/bin/sh + +watch() { + [ -z "$1" ] && echo "Необходимо указать название основного документа" && help + set -o xtrace + latexmk -pdf -f -shell-escape -interaction=nonstopmode -pvc $1 +} + +doc() { + [ -z "$1" ] && echo "Необходимо указать название основного документа" && help + set -o xtrace + latexmk -pdf -f -shell-escape -interaction=nonstopmode $1 +} + +clean() { + set -o xtrace + rm -rf _minted-* + find . -name "*.aux" -exec rm {} \; + rm -f *.dvi *.fdb_latexmk *.fls *.log *.out *.toc +} + +help() { + echo "Использование:" + echo "./maker.sh watch .tex -> Запуск процесса, пересобирающего документ при изменениях" + echo "./maker.sh doc .tex -> Пересобрать документ" + echo "./maker.sh clean -> Удаление сгенерированных файлов" + exit 1 +} + +case "$1" in + watch) watch $2 ;; + doc) doc $2 ;; + clean) clean ;; + *) help ;; +esac diff --git a/pract/sem8/pract.pdf b/pract/sem8/pract.pdf new file mode 100644 index 0000000..54f866f Binary files /dev/null and b/pract/sem8/pract.pdf differ diff --git a/pract/sem8/pract.tex b/pract/sem8/pract.tex new file mode 100644 index 0000000..7c80341 --- /dev/null +++ b/pract/sem8/pract.tex @@ -0,0 +1,1010 @@ +\documentclass[spec, och, pract]{Practice} +% параметр - тип обучения - одно из значений: +% spec - специальность +% bachelor - бакалавриат (по умолчанию) +% master - магистратура +% параметр - форма обучения - одно из значений: +% och - очное (по умолчанию) +% zaoch - заочное +% параметр - тип работы - одно из значений: +% referat - реферат +% coursework - курсовая работа (по умолчанию) +% diploma - дипломная работа +% pract - отчет по практике +% параметр - включение шрифта +% times - включение шрифта Times New Roman (если установлен) +% по умолчанию выключен + +\usepackage{subfigure} +\usepackage{tikz,pgfplots} +\pgfplotsset{compat=1.5} +\usepackage{float} + +%\usepackage{titlesec} +\setcounter{secnumdepth}{4} +%\titleformat{\paragraph} +%{\normalfont\normalsize}{\theparagraph}{1em}{} +%\titlespacing*{\paragraph} +%{35.5pt}{3.25ex plus 1ex minus .2ex}{1.5ex plus .2ex} + +\titleformat{\paragraph}[block] +{\hspace{1.25cm}\normalfont} +{\theparagraph}{1ex}{} +\titlespacing{\paragraph} +{0cm}{2ex plus 1ex minus .2ex}{.4ex plus.2ex} + +% --------------------------------------------------------------------------% + + +\usepackage[T2A]{fontenc} +\usepackage[utf8]{inputenc} +\usepackage{graphicx} +\graphicspath{ {./images/} } +\usepackage{tempora} + +\usepackage[sort,compress]{cite} +\usepackage{amsmath} +\usepackage{amssymb} +\usepackage{amsthm} +\usepackage{fancyvrb} +\usepackage{listings} +\usepackage{listingsutf8} +\usepackage{longtable} +\usepackage{array} +\usepackage[english,russian]{babel} + +% \usepackage[colorlinks=true]{hyperref} +\usepackage{url} + + +\newcommand{\eqdef}{\stackrel {\rm def}{=}} +\newcommand{\bsl}{\textbackslash{}} + +\renewcommand\theFancyVerbLine{\small\arabic{FancyVerbLine}} + +\newtheorem{lem}{Лемма} + +\begin{document} + +% Кафедра (в родительном падеже) +\chair{теоретических основ компьютерной безопасности и криптографии} + +% Тема работы +\title{отчет} + +% Курс +\course{второй} + +% Группа +\group{231} + +% Факультет (в родительном падеже) (по умолчанию "факультета КНиИТ") +\department{факультета компьютерных наук и информационных технологий} + +% Специальность/направление код - наименование +%\napravlenie{09.03.04 "--- Программная инженерия} +%\napravlenie{010500 "--- Математическое обеспечение и администрирование информационных систем} +%\napravlenie{230100 "--- Информатика и вычислительная техника} +%\napravlenie{231000 "--- Программная инженерия} +\napravlenie{090301 "--- Компьютерная безопасность} + +% Для студентки. Для работы студента следующая команда не нужна. +% \studenttitle{Студентки} + +% Фамилия, имя, отчество в родительном падеже +\author{Гущина Андрея Юрьевича} + +% Заведующий кафедрой +\chtitle{д.~ф.-м.~н.,~доцент} % степень, звание +\chname{М.~Б.~Абросимов} + +%Научный руководитель (для реферата преподаватель проверяющий работу) +\satitle{доцент} %должность, степень, звание +\saname{Н.~Н.~Бондарев} + +% Руководитель практики от организации (только для практики, +% для остальных типов работ не используется) +% \patitle{к.ф.-м.н.} +% \paname{С.~В.~Миронов} + +% Семестр (только для практики, для остальных +% типов работ не используется) +\term{третий} + +% Наименование практики (только для практики, для остальных +% типов работ не используется) +\practtype{Ознакомительная} + +% Продолжительность практики (количество недель) (только для практики, +% для остальных типов работ не используется) +\duration{2} + +% Даты начала и окончания практики (только для практики, для остальных +% типов работ не используется) +\practStart{22 июня 2020} +\practFinish{05 июля 2020} + +% Год выполнения отчета +\date{2020} + +\maketitle + +% Включение нумерации рисунков, формул и таблиц по разделам +% (по умолчанию - нумерация сквозная) +% (допускается оба вида нумерации) +% \secNumbering + +\tableofcontents + +\intro + +В теоретическкой части работы изучается тема сканирования сетей, сниффинга и ARP-спуфинга. В современном мире с увеличением количества устройств, способных соединяться +с интернетом, возрастает проблема атак сканирования и прослушивания сетей, а +также использования таких протоколов, как ARP в деструктивных целях. Многие +пользователи не задумываясь используют миниатюрные IoT-устройства, которые +могут содержать несовершенные методы защиты информации от воздействия +злоумышленников. Таким образом, исправление уязвимостей в сервисах, а также +более вдумчивое конфигурирование сетей выходит на передний план в сфере +обеспечения безопасности в сетевом окружении. + +В рамках практического задания было выполнено моделирование защищённой +информационной системы на примере колледжа. Были рассмотрены нормативные +документы, регулирующие конфигурирование систем, занимающихся обработкой и +хранением конфиденциальной информации. Также было выполнено создание +одиночного домена в Windows Server 2003, реализующего изученные требования +защищённости, относящиеся к моделируемой защищённой ИС. + +\section{Сканирование сети, сниффинг, ARP"=спуфинг. Способы защиты.} + + % Введение + % 1.1 Цель и актуальность исследования + % 1.2 Обзор основных терминов и понятий + + % Сканирование сети + % 2.1 Определение сканирования сети + % 2.2 Типы сканирования сети + % 2.3 Инструменты и техники сканирования сети + % 2.4 Риски и угрозы, связанные со сканированием сети + + % Сниффинг + % 3.1 Понятие сниффинга + % 3.2 Как работает сниффер + % 3.3 Основные уязвимости и риски сниффинга + % 3.4 Популярные инструменты сниффинга + + % ARP-спуфинг + % 4.1 Что такое ARP-спуфинг + % 4.2 Принцип работы ARP-спуфинга + % 4.3 Угрозы и последствия ARP-спуфинга + % 4.4 Защита от ARP-спуфинга + + % Способы защиты от сканирования сети, сниффинга и ARP-спуфинга + % 5.1 Физические меры защиты + % 5.2 Конфигурация сетевых устройств + % 5.3 Программные средства защиты + % 5.4 Обучение и осведомленность пользователей + + % Заключение + % 6.1 Основные выводы и результаты исследования + % 6.2 Перспективы развития темы + + % Список литературы + +\subsection{Сканирование сети} + +Сканирование сети "--- это процесс исследования компьютерных сетей для выявления активных узлов и доступных сервисов. Сканирование сети даёт возможность как злоумышленникам, так и администраторам сети получить информацию о состоянии сети, обнаружить потенциальные уязвимости и проблемы безопасности, а также определить ресурсы и службы, доступные в сети. + +В ходе сканирования используются различные техники и инструменты, которые основываются на отправке и приеме сетевых пакетов. Такие инструменты могут определять открытые порты на узлах, исследовать сетевую топологию, получать информацию о версиях программного обеспечения и операционных системах, а также производить анализ безопасности сети \cite{kader2003}. + +Цель сканирования сети включает следующие аспекты \cite{borshevikov2011}: +\begin{itemize} + \item Определение активных узлов: Сканирование сети позволяет обнаружить все активные узлы в сети, включая компьютеры, серверы, маршрутизаторы и другие сетевые устройства. + \item Определение открытых портов и служб: Сканирование сети может выявить открытые порты на узлах, что позволяет определить доступные сетевые службы и сервисы. + \item Обнаружение уязвимостей: Сканирование сети позволяет выявить потенциальные уязвимости в настройках узлов или используемом программном обеспечении, что помогает администраторам принять соответствующие меры по их устранению и повышению безопасности сети. + \item Изучение сетевой топологии: Сканирование сети может помочь в построении карты сетевой топологии, что позволяет понять структуру и организацию сети. + \item Мониторинг и анализ безопасности: Сканирование сети способствует выявлению подозрительной активности, вторжений или несанкционированного доступа к сети и ее ресурсам. +\end{itemize} + + +Сканирование сети может быть выполнено различными способами, каждый из которых имеет свои особенности и применяется в зависимости от целей исследования. + +Сканирование с помощью протокола ICMP позволяет определить активные узлы сканируемой сети. Зачастую используется злоумышленниками для первоначальной разведки атакуемой сети. + +Следующим шагом при сканировании является сканирование с целью определения открытых портов на целевых узлах. Существуют два основных протокола, используемых для сканирования портов - TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). Значительная часть протоколов и сервисов использует протокол TCP для своей работы и поэтому сканирование TCP-портов обычно более полноценно и позволяет получить информацию о службах, работающих на узлах. Сканирование UDP-портов обычно используется для более специфических целей \cite{kaspersky_scanner}. + +Так как такая атака является самой распространённой при сканировании сети, у неё +есть некоторые модификации, позволяющие скрыть наличие атаки на больший промежуток времени. +Например, используя тот факт, что протокол TCP использует тройное рукопожатие +для установления соединения, злоумышленник может более эффективно сканировать +порты на наличие сервисов. Если злоумышленник будет отправлять только сообщение +SYN и в случае получения ответа разрывать соединение. Таким образом, сканируемый +сервис может не зафиксировать попытку соединения в своём журнале и просто +отбросит его как некорректное. Таким образом можно скрыть сканирование сети +при этом снизив нагрузку на сеть. + +Сканирование ОС и служб: Этот тип сканирования направлен на определение операционных систем и служб, используемых на целевых узлах. При сканировании ОС определяются характерные особенности, такие как настройки стека TCP/IP или TTL (Time to Live) пакетов. Сканирование служб позволяет определить, какие конкретные сервисы работают на открытых портах. + +Сканирование уязвимостей направлено на обнаружение уязвимостей в сетевых устройствах и сервисах. Используя специализированные инструменты и сканеры, можно проанализировать узлы и службы на предмет известных уязвимостей, внесённых в некоторую базу данных, что помогает администраторам принять меры по их устранению и повышению безопасности сети. + +Для выполнения сканирования сети существует широкий спектр инструментов, которые могут быть использованы администраторами сети. + +Nmap является одним из самых популярных инструментов сканирования сети. Он +позволяет определить активные узлы, открытые порты, используемые службы, а +также особенности операционной системы. Nmap поддерживает различные типы +сканирования, включая сканирование TCP и UDP портов. Данный инструмент также +позволяет производить сканирование ОС, служб и сканирование уязвимостей, но +всё же не предназначен для этих целей. Эти возможности реализованы с помощью +скриптов, написанных на встроенном скриптовом языке nmap и позволяют +определять очень ограниченное количество уязвимостей или других дополнительных +целей сканирования. Такие скрипты были реализованы во времена, когда ещё не были +созданы централизованные списки уязвимостей разного ПО. + +На сегодняшний день в таких базах данных уязвимостей насчитывается более +200000 CVE, что невозможно эффективно проверить с помощью скриптов nmap. +По этой причине, данный инструмент в основном используется именно для +изначального сканирования сети для обнаружения активных узлов, построения +топологии сети и выявления открытых портов на активных узлах. + +Для поиска уязвимостей в службах и приложениях отсканированной сети используется +специализированное ПО, которое способно намного более эффективно определять +уязвимости приложений. + +Например, Nessus являющийся мощным инструментом сканирования уязвимостей. Он +выполняет сканирование сети на предмет известных уязвимостей, используя широкую +базу данных сигнатур и патчей. Этот инструмент предоставляет подробные отчеты о +найденных уязвимостях и рекомендации по их устранению. Подобные возможности +также предоставляет инструмент Сканер-ВС, разработанный российской компанией +НПО Эшелон. + +\subsubsection{Способы защиты от сканирования сети} + +Одним из основных инструментов защиты от сканирования сети является установка брандмауэров и сетевых экранов. Брандмауэры и сетевые экраны являются программными или аппаратными устройствами, которые контролируют и фильтруют входящий и исходящий сетевой трафик. Они позволяют настраивать правила доступа к сети и блокировать попытки сканирования путем отклонения нежелательных запросов или блокировки подозрительных IP-адресов. + +Другим эффективным методом защиты от сканирование сети является скрытие портов. +При сканировании сети злоумышленник ищет открытые порты, которые могут быть +использованы для несанкционированного доступа. Отключение неиспользуемых портов +и скрытие активных портов снижает вероятность обнаружения и затрудняет попытки +сканирования. + +Также важно регулярно проводить анализ уязвимостей сетевой инфраструктуры. Существуют специальные программные средства, которые позволяют сканировать сеть на наличие уязвимостей и предупреждать о потенциальных рисках. Регулярные аудиты и исправление уязвимостей позволяют удерживать сеть в безопасном состоянии. + +Помимо общих рекомендаций по защите сети с помощью конфигурации сервисов и +физических устройств также есть специальные программные комплексы, позволяющие +обнаруживать и останавливать атаки на свою сеть. Такие программы называются системами обнаружения вторжений (Intrusion Detection Systems, IDS) и они играют важную роль в предотвращении сканирования сети. IDS анализируют сетевой трафик и события, происходящие в сети, с целью обнаружения аномалий или попыток несанкционированного доступа. Они могут обнаруживать сканирование сети путем анализа характеристик пакетов, сравнения сетевой активности с известными шаблонами атак и предупреждать администратора о потенциальных угрозах. + + +\subsection{Сниффинг} + +Сниффинг (sniffing) представляет собой процесс перехвата и анализа сетевого трафика для получения чувствительной информации, передаваемой по сети. Этот метод используется для прослушивания и записи пакетов данных, которые проходят через сетевое соединение между двумя узлами. + +Злоумышленники могут применять сниффинг для перехвата конфиденциальных данных, таких как пароли, логины, данные кредитных карт или другие конфиденциальные сведения. Они могут использовать специализированные инструменты или программное обеспечение для захвата пакетов данных и дальнейшего анализа содержимого. + +Процесс сниффинга осуществляется на физическом или логическом уровне сетевого соединения. На физическом уровне, злоумышленник может физически подключиться к сетевому кабелю или использовать устройства, такие как хабы или коммутаторы, для перехвата трафика. На логическом уровне, сниффинг может осуществляться с использованием программного обеспечения, которое перехватывает пакеты данных, проходящие через сетевой интерфейс устройства. + +Одним из наиболее распространенных протоколов, который может быть подвержен сниффингу, является протокол Ethernet. Пакеты данных, передаваемые по сети Ethernet, могут быть перехвачены и проанализированы для извлечения информации. Однако, сниффинг может также применяться к любым другим протоколам на любом уровне сетевого стека (например, Wi-Fi, TCP/IP и другие). + +Рассмотрим основные принципы работы снифферов: + +Для выполнения сниффинга, сниффер должен работать в режиме прослушивания, известном как <<промискуитетный режим>> (promiscuous mode). В этом режиме сниффер получает доступ ко всем сетевым пакетам, проходящим через сетевой интерфейс, включая те, которые не предназначены для него. Далее сниффер перехватывает сетевые пакеты, которые передаются по сети через сетевой интерфейс. Для этого он прослушивает сетевой трафик, который проходит через физическое соединение или виртуальные сетевые интерфейсы. + +После перехвата достаточного количества пакетов, сниффер фильтрует и анализирует перехваченные пакеты, чтобы извлечь полезную информацию. Он может анализировать различные атрибуты пакетов, такие как IP-адреса и порты отправителя и получателя, протоколы, используемые для передачи данных, и содержимое пакетов. После анализа пакетов, сниффер декодирует данные и отображает их для пользователя. Это может включать информацию о заголовках пакетов, содержимом запросов и ответов, а также другую сетевую информацию, полезную для диагностики или анализа. + +Снифферы могут быть реализованы как программное обеспечение на компьютере или как специализированные физические устройства, подключаемые к сетевым интерфейсам. В зависимости от потребностей и целей, выбирается соответствующий сниффер и настраивается для выполнения требуемых функций. + +Существует множество инструментов, которые могут быть использованы для выполнения сниффинга и анализа сетевого трафика. + +Wireshark является одним из самых известных и мощных инструментов сниффинга и анализа сетевого трафика. Он предоставляет детальные возможности захвата, отображения и анализа пакетов данных, а также поддерживает широкий спектр протоколов. Wireshark позволяет фильтровать и анализировать сетевой трафик, исследовать заголовки пакетов, просматривать содержимое и анализировать сетевую активность \cite{sniff}. + +Другим похожим инструментом является консольная утилита tcpdump. Она доступна на различных операционных системах и позволяет пользователям перехватывать пакеты данных, отображать их содержимое, анализировать заголовки и применять фильтры для выборочного захвата. Tcpdump является мощным инструментом для анализа сетевого трафика в текстовом формате. + +Cain \& Abel - это несколько менее известный инструмент сетевого анализа, который предоставляет возможности снифинга и восстановления паролей. Он может перехватывать различные протоколы и анализировать сетевой трафик, а также обладает функциональностью для восстановления паролей, включая хешированные пароли Windows, аутентификацию веб-сайтов и другие типы паролей. + + +\subsection{Основные способы защиты от сниффинга сети} + +Одним из основных способов защиты от сниффинга сети является шифрование трафика. Шифрование позволяет защитить передаваемую информацию от несанкционированного доступа, так как даже при перехвате данных злоумышленник не сможет прочитать их без расшифровки. Для шифрования трафика могут использоваться протоколы, такие как SSL/TLS для веб-трафика или VPN (виртуальная частная сеть) для защиты всего сетевого соединения. + +Сегментация сети является эффективным способом предотвращения сниффинга сети. При сегментации сети сетевой трафик разделяется на отдельные сегменты или подсети, что позволяет ограничить доступ злоумышленников к конфиденциальным данным. Каждый сегмент может иметь свои правила доступа и сетевые устройства, что усложняет задачу злоумышленникам, пытающимся перехватить информацию. + +Помимо конфигурации сети и сервисов, для предотвращения прослушки также существуют специализированные средства и программы для обнаружения сниффинга сети. Они могут анализировать сетевой трафик и выявлять аномальные или подозрительные активности, которые могут указывать на наличие сниффера в сети. Такие инструменты помогают оперативно реагировать на угрозы и предотвращать утечку конфиденциальной информации. + +Помимо рассмотренных программных способов обнаружения прослушивания в сети, физическая безопасность сетевых устройств также играет важную роль в защите от сниффинга. Ограничение физического доступа к сетевому оборудованию и серверным комнатам помогает предотвратить несанкционированный доступ к сетевым устройствам и предотвращает возможность установки снифферов. + + +\subsection{ARP-спуфинг} + +ARP-спуфинг (ARP spoofing) - это техника атаки, при которой злоумышленник отправляет ложные ARP-ответы в сеть, с целью перехвата или подмены сетевого трафика. ARP (Address Resolution Protocol) - это протокол, используемый для связи между физическими адресами (MAC-адресами) и IP-адресами в локальной сети \cite{xgu_arp}. + +При выполнении ARP-спуфинга злоумышленник отправляет ложные ARP-ответы, указывая свой собственный MAC-адрес в качестве соответствующего адреса для определенного IP-адреса в сети. Это делает его "арендатором" IP-адреса и позволяет перехватывать или перенаправлять сетевой трафик, предназначенный для этого IP-адреса. + +Такая атака может иметь несколько целей: +\begin{itemize} + \item Перехват сетевого трафика: Злоумышленник может перехватывать сетевой трафик, передаваемый между целевыми узлами в сети. Это может включать пароли, личные данные, финансовую информацию и другие конфиденциальные данные, которые могут быть использованы для дальнейших злоупотреблений. + \item MITM-атака (Man-in-the-Middle): ARP-спуфинг может быть использован для выполнения атаки "человек посередине" (MITM), при которой злоумышленник становится промежуточным звеном между двумя коммуницирующими узлами. Это позволяет злоумышленнику просматривать и изменять передаваемые данные между ними, включая перехват паролей, изменение информации или внедрение вредоносного кода. + \item Отказ в обслуживании (DoS): Атака ARP-спуфинга может привести к отказу в обслуживании (DoS) для целевого узла или всей сети. Это может произойти, когда злоумышленник создает конфликты между MAC-адресами, перенаправляя трафик на несуществующие узлы или блокируя доставку пакетов. +\end{itemize} + + +ARP-спуфинг является одной из наиболее распространенных атак в локальных сетях. Он основан на недостатках протокола ARP, который не предусматривает аутентификацию или проверку подлинности при обмене сообщениями. + + +Эта атака основывается на изменении таблиц ARP (Address Resolution Protocol) в локальной сети для создания ложных соответствий между IP-адресами и MAC-адресами устройств. + + При проведении атаки, злоумышленник выбирает целевой узел или группу узлов в локальной сети, к которым он хочет получить доступ или перехватить их сетевой трафик. После этого злоумышленник мониторит локальную сеть, чтобы определить MAC-адреса других узлов и связанные с ними IP-адреса. Это может быть выполнено с помощью ARP-запросов для получения таблиц ARP устройств в сети. + +Для начала атаки, злоумышленник начинает отправлять ложные ARP-ответы в сеть, где он указывает свой собственный MAC-адрес вместо фактического MAC-адреса целевого узла. Таким образом, злоумышленник создает ложное соответствие между своим MAC-адресом и IP-адресом целевого узла. Когда другие узлы в сети получают ложные ARP-ответы, они обновляют свои таблицы ARP, заменяя правильный MAC-адрес целевого узла на ложный MAC-адрес, указанный злоумышленником. + +После успешного выполнения ARP-спуфинга, злоумышленник может перехватывать или перенаправлять сетевой трафик, предназначенный для целевого узла. Это может включать перехват паролей, изменение или внедрение данных, или выполнение MITM-атаки (Man-in-the-Middle) для анализа и манипулирования сетевым трафиком. + +Для того чтобы минимизировать обнаружение своей деятельности, злоумышленник может предпринять меры для скрытия своих действий и следов. Это может включать удаление или подмену записей в таблицах ARP, использование шифрования или других методов для скрытия передаваемых данных. + +\subsubsection{Способы защиты от ARP-спуфинга} + +Для защиты от ARP-спуфинга и снижения риска подверженности этой атаке можно применять различные меры безопасности: +\begin{itemize} + \item Использование защищенных сетей: Используйте защищеные сети, такие как Virtual LANs (VLANs) или сети, защищенные с помощью шифрования (например, Wi-Fi с протоколом WPA2-PSK или WPA3), чтобы ограничить доступ и возможность атаки злоумышленников. + \item Использование сетевых коммутаторов с функцией порт-безопасности: Сетевые коммутаторы с поддержкой функции порт-безопасности могут помочь в обнаружении и предотвращении ARP-спуфинга. Эта функция позволяет привязывать определенный MAC-адрес к физическому порту коммутатора, что предотвращает подмену MAC-адресов. + \item Использование аутентификации сети: Применение аутентификации сети, такой как 802.1X, может помочь в предотвращении ARP-спуфинга. 802.1X требует, чтобы пользователи аутентифицировались перед получением доступа к сети, что затрудняет злоумышленникам подделываться под другие устройства. + \item Мониторинг ARP-таблиц: Регулярный мониторинг ARP-таблиц на сетевых устройствах, таких как маршрутизаторы или коммутаторы, может помочь в обнаружении подозрительной активности, такой как дубликаты MAC-адресов или неожиданные изменения ARP-записей. + \item Использование ARP-защиты на сетевых устройствах: Многие сетевые устройства имеют функции защиты от ARP-спуфинга, которые могут быть включены для предотвращения подмены ARP-таблиц. Эти функции обычно основаны на контроле соответствия MAC-адресов и IP-адресов в ARP-ответах. + \item Использование сетевых брандмауэров и IDS/IPS: Установка сетевых брандмауэров и систем обнаружения/предотвращения вторжений (IDS/IPS) может помочь в обнаружении и блокировке ARP-спуфинга. Эти системы могут анализировать сетевой трафик и обнаруживать подозрительные паттерны или активности, связанные с ARP-спуфингом. + \item Образование и осведомленность пользователей: Образование пользователей о рисках ARP-спуфинга и соответствующих мероприятиях по безопасности, таких как неоткрытие подозрительных ссылок или использование VPN при подключении к общедоступным Wi-Fi сетям, может помочь в предотвращении атак и повышении осведомленности о безопасности. +\end{itemize} + +Применение комбинации этих мер безопасности поможет снизить риск подверженности ARP-спуфингу и улучшить общую безопасность сети. + +\section{Настройка Защищённой ИС} + +\textbf{Вариант 6.} + +Разрабатываемая система, соответствующая данному варианту: +\begin{itemize} + \item Организация: Колледж + \item Количество сотрудников: 100 + \item Подразделения: + \begin{itemize} + \item Директор колледжа + \item Отдел кадров + \item Учебный отдел + \item Хозяйственный отдел + \item Научный отдел + \end{itemize} + \item Количество обслуживаемых клиентов: 3000 + \item + Вид конфиденциальной информации или ПДн: + ПДн (сотрудники, иные), не конфиденциально + \item Наличие удалённого доступа: Нет +\end{itemize} + +Необходимо настроить подсистему регистрации и учета в домене на базе Windows +Server 2003 с учетом требований безопасности, предъявляемых к ИС, согласно +требуемому уровню защищенности. + + +\subsection{Защищаемые свойства информации} + +Так как система не содержит конфиденциальной информации, то защите подлежат два +свойства информации, являющиеся обязательными: целостность и доступность. + + +\subsection{Требуемый уровень защищённости} + +\subsubsection{Класс АС и соответствующие требования} + +Согласно пунктам 1.8, 1.9 РД <<Автоматизированные системы. Защита от +несанкционированного доступа к информации. Классификация автоматизированных +систем и требования по защите информации.>> от 30 марта 1992 г., устанавливается +девять классов защищенности АС от НСД к информации. Каждый класс характеризуется +определенной минимальной совокупностью требований по защите. Классы +подразделяются на три группы, отличающиеся особенностями обработки информации в +АС. + +Третья группа включает АС, в которых работает один пользователь, допущенный ко +всей информации АС, размещенной на носителях одного уровня конфиденциальности. +Группа содержит два класса "--- 3Б и 3А. + +Вторая группа включает АС, в которых пользователи имеют одинаковые права доступа +(полномочия) ко всей информации АС, обрабатываемой и (или) хранимой на носителях +различного уровня конфиденциальности. Группа содержит два класса "--- 2Б и 2А. + +Первая группа включает многопользовательские АС, в которых одновременно +обрабатывается и (или) хранится информация разных уровней конфиденциальности. Не +все пользователи имеют право доступа ко всей информации АС. Группа содержит пять +классов "--- 1Д, 1Г, 1В, 1Б и 1А. + +Моделируемая система включает в себя многопользовательские АС и не все +пользователи имеют право доступа ко всей информации АС. Таким образом, +моделируемую систему необходимо отнести к первой группе классов подразделений. +Так как данная система не содержит государственную, банковскую или служебную +тайны, а также не содержит конфиденциальную информацию, данная АС относится к +классу 1Д. + + +\subsubsection{Уровень защищённости ИС} + +Согласно Постановлению Правительства РФ от 1 ноября 2012 г. №1119 <<Об +утверждении требований к защите персональных данных при их обработке в +информационных системах персональных данных>>, пункт 6, под актуальными +угрозами безопасности персональных данных понимается совокупность условий и +факторов, создающих актуальную опасность несанкционированного, в том числе +случайного, доступа к персональным данным при их обработке в информационной +системе, результатом которого могут стать уничтожение, изменение, блокирование, +копирование, предоставление, распространение персональных данных, а также иные +неправомерные действия. + +\begin{itemize} + \item + Угрозы 1-го типа актуальны для информационной системы, если для нее в + том числе актуальны угрозы, связанные с наличием недокументированных + (недекларированных) возможностей в системном программном обеспечении, + используемом в информационной системе. + \item + Угрозы 2-го типа актуальны для информационной системы, если для нее в + том числе актуальны угрозы, связанные с наличием недокументированных + (недекларированных) возможностей в прикладном программном обеспечении, + используемом в информационной системе. + \item + Угрозы 3-го типа актуальны для информационной системы, если для + нее актуальны угрозы, не связанные с наличием недокументированных + (недекларированных) возможностей в системном и прикладном программном + обеспечении, используемом в информационной системе. +\end{itemize} + +Так как в данной системе будет использоваться сертифицированное ПО, актуальными +являются угрозы 3-го типа. + +Так как данная система не обрабатывает конфиденциальные ПДн, а только ПДн +сотрудников и иные, то согласно пункту 12.б данного постановления, необходимость +обеспечения 4-го уровня защищенности персональных данных при их обработке +в информационной системе устанавливается если для информационной системы +актуальны угрозы 3-го типа и информационная система обрабатывает иные категории +персональных данных сотрудников оператора или иные категории персональных данных +менее чем 100000 субъектов персональных данных, не являющихся сотрудниками +оператора. + +То есть ИС имеет 4-й уровень защищённости. + +\subsubsection{Класс защищённости ГИС и СВТ} + +Так как не указано иначе, предположим, что колледж является государственным, то +есть моделируемая система является ГИС. + +Согласно приказу ФСТЭК от 11 февраля 2013 г. №17 <<ОБ УТВЕРЖДЕНИИ ТРЕБОВАНИЙ +О ЗАЩИТЕ ИНФОРМАЦИИ, НЕ СОСТАВЛЯЮЩЕЙ ГОСУДАРСТВЕННУЮ ТАЙНУ, СОДЕРЖАЩЕЙСЯ +В ГОСУДАРСТВЕННЫХ ИНФОРМАЦИОННЫХ СИСТЕМАХ>>, пункт 14.2, классификация +информационной системы проводится в зависимости от значимости обрабатываемой в +ней информации и масштаба информационной системы (федеральный, региональный, +объектовый). + +Устанавливаются три класса защищенности информационной системы, определяющие +уровни защищенности содержащейся в ней информации. Самый низкий класс - третий, +самый высокий - первый. + +Уровень значимости информации определяется степенью возможного ущерба +для обладателя информации (заказчика) и (или) оператора от нарушения +конфиденциальности (неправомерные доступ, копирование, предоставление или +распространение), целостности (неправомерные уничтожение или модифицирование) +или доступности (неправомерное блокирование) информации. + +Так как колледж является объектовой ИС с низким уровнем значимости информации, +данную систему можно отнести к третьему классу защищённости. + +Согласно вышеуказанному приказу, технические меры защиты информации реализуются +посредством применения средств защиты информации, в том числе программных +(программно-аппаратных) средств, в которых они реализованы, имеющих необходимые +функции безопасности. При этом, в информационных системах 3 класса защищенности +применяются средства защиты информации 6 класса, а также средства вычислительной +техники не ниже 5 класса. + +Таким образом, определим класс защищённости СВТ равным 5. + + +\subsection{Требования к подсистеме регистрации и учёта} + +Согласно РД <<Автоматизированные системы. Защита от несанкционированного +доступа к информации. Классификация автоматизированных систем и требования по +защите информации.>> от 30 марта 1992 г., требования к классу защищенности 1Д +следующие: + +Для подсистемы регистрации и учета: +\begin{enumerate} + \item + Должна осуществляться регистрация входа (выхода) субъектов доступа в систему + (из системы), либо регистрация загрузки и инициализации операционной системы + и ее программного останова. + \item + Регистрация выхода из системы или останова не проводится в моменты + аппаратурного отключения АС. В параметрах регистрации указываются: + \begin{itemize} + \item + дата и время входа (выхода) субъекта доступа в систему (из системы) или + загрузки (останова) системы; + \item + результат попытки входа: успешная или неуспешная - несанкционированная; + \item + идентификатор (код или фамилия) субъекта, предъявленный при попытке + доступа; + \item + должен проводиться учет всех защищаемых носителей информации с помощью + их маркировки и с занесением учетных данных журнала (учетную карточку); + \item + учет защищаемых носителей должен проводиться в журнале (картотеке) с + регистрацией их выдачи (приема). + \end{itemize} +\end{enumerate} + +Для подсистемы обеспечения целостности: +\begin{enumerate} + \item + Должна быть обеспечена целостность программных средств СЗИ НСД, + обрабатываемой информации, а также неизменность программной среды. + \item + При этом: + \begin{itemize} + \item + целостность СЗИ НСД проверяется при загрузке системы по контрольным + суммам компонент СЗИ; + \item + целостность программной среды обеспечивается использованием трансляторов + с языков высокого уровня и отсутствием средств модификации объектного + кода программ в процессе обработки и (или) хранения защищаемой + информации; + \item + должна осуществляться физическая охрана СВТ (устройств и носителей + информации), предусматривающая контроль доступа в помещения АС + посторонних лиц, наличие надежных препятствий для несанкционированного + проникновения в помещения АС и хранилище носителей информации, особенно + в нерабочее время; + \item + должно проводиться периодическое тестирование функций СЗИ НСД при + изменении программной среды и персонала АС с помощью тест"=программ, + имитирующих попытки НСД; + \item + должны быть в наличии средства восстановления СЗИ НСД, предусматривающие + ведение двух копий программных средств СЗИ НСД и их периодическое + обновление и контроль работоспособности. + \end{itemize} +\end{enumerate} + +Согласно РД от 30 марта 1992 г. <<Средства вычислительной техники. Защита +от несанкционированного доступа к информации. Показатели защищенности от +несанкционированного доступа к информации.>> для установленного класса +защищённости 5 СВТ можно выделить следующие требования: +\begin{enumerate} + \item Дискреционный принцип контроля доступа + \item Очистка памяти + \item Идентификация и аутентификация + \item Гарантии проектирования + \item Регистрация + \item Целостность КСЗ + \item Тестирование + \item Руководство для пользователя + \item Руководство по КСЗ + \item Тестовая документация + \item Конструкторская (проектная) документация +\end{enumerate} + +В соответствии с пунктом 13 Постановления Правительства РФ от 1 ноября 2012 +г. №1119 для обеспечения 4-го уровня защищенности персональных данных при их +обработке в информационных системах необходимо выполнение следующих требований: +\begin{enumerate} + \item + организация режима обеспечения безопасности помещений, в которых размещена + информационная система, препятствующего возможности неконтролируемого + проникновения или пребывания в этих помещениях лиц, не имеющих права доступа в + эти помещения; + \item обеспечение сохранности носителей персональных данных; + \item + утверждение руководителем оператора документа, определяющего перечень лиц, + доступ которых к персональным данным, обрабатываемым в информационной системе, + необходим для выполнения ими служебных (трудовых) обязанностей; + \item + использование средств защиты информации, прошедших процедуру оценки + соответствия требованиям законодательства Российской Федерации в области + обеспечения безопасности информации, в случае, когда применение таких средств + необходимо для нейтрализации актуальных угроз. +\end{enumerate} + +Согласно приказу ФСТЭК от 11 февраля 2013 г. №17 для установленного класса +защищённости 3 ГИС можно выделить следующие требования: +\begin{enumerate} + \item + Идентификация и аутентификация пользователей, являющихся работниками оператора + \item + Управление идентификаторами, в том числе создание, присвоение, уничтожение идентификаторов + \item + Управление средствами аутентификации, в том числе хранение, выдача, инициализация, блокирование средств аутентификации и принятие мер в случае утраты и (или) компрометации средств аутентификации + \item + Защита обратной связи при вводе аутентификационной информации + \item + Идентификация и аутентификация пользователей, не являющихся работниками оператора (внешних пользователей) + \item + Управление (заведение, активация, блокирование и уничтожение) учетными записями пользователей, в том числе внешних пользователей + \item + Реализация необходимых методов (дискреционный, мандатный, ролевой или иной метод), типов (чтение, запись, выполнение или иной тип) и правил разграничения доступа + \item + Управление (фильтрация, маршрутизация, контроль соединений, однонаправленная передача и иные способы управления) информационными потоками между устройствами, сегментами информационной системы, а также между информационными системами + \item + Разделение полномочий (ролей) пользователей, администраторов и лиц, обеспечивающих функционирование информационной системы + \item + Назначение минимально необходимых прав и привилегий пользователям, администраторам и лицам, обеспечивающим функционирование информационной системы + \item + Ограничение неуспешных попыток входа в информационную систему (доступа к информационной системе) + \item + Блокирование сеанса доступа в информационную систему после установленного времени бездействия (неактивности) пользователя или по его запросу + \item + Разрешение (запрет) действий пользователей, разрешенных до идентификации и аутентификации + \item + Реализация защищенного удаленного доступа субъектов доступа к объектам доступа через внешние информационно-телекоммуникационные сети + \item + Регламентация и контроль использования в информационной системе технологий беспроводного доступа + \item + Регламентация и контроль использования в информационной системе мобильных технических средств + \item + Управление взаимодействием с информационными системами сторонних организаций (внешние информационные системы) + \item + Установка (инсталляция) только разрешенного к использованию программного обеспечения и (или) его компонентов + \item + Учет машинных носителей информации + \item + Управление доступом к машинным носителям информации + \item + Уничтожение (стирание) информации на машинных носителях при их передаче между пользователями, в сторонние организации для ремонта или утилизации, а также контроль уничтожения (стирания) + \item + Определение событий безопасности, подлежащих регистрации, и сроков их хранения + \item + Определение состава и содержания информации о событиях безопасности, подлежащих регистрации + \item + Сбор, запись и хранение информации о событиях безопасности в течение установленного времени хранения + \item + Реагирование на сбои при регистрации событий безопасности, в том числе аппаратные и программные ошибки, сбои в механизмах сбора информации и достижение предела или переполнения объема (емкости) памяти + \item + Мониторинг (просмотр, анализ) результатов регистрации событий безопасности и реагирование на них + \item + Генерирование временных меток и (или) синхронизация системного времени в информационной системе + \item + Защита информации о событиях безопасности + \item + Реализация антивирусной защиты + \item + Обновление базы данных признаков вредоносных компьютерных программ (вирусов) + \item + Выявление, анализ уязвимостей информационной системы и оперативное устранение вновь выявленных уязвимостей + \item + Контроль установки обновлений программного обеспечения, включая обновление программного обеспечения средств защиты информации + \item + Контроль работоспособности, параметров настройки и правильности функционирования программного обеспечения и средств защиты информации + \item + Контроль состава технических средств, программного обеспечения и средств защиты информации + \item + Контроль правил генерации и смены паролей пользователей, заведения и удаления учетных записей пользователей, реализации правил разграничения доступом, полномочий пользователей в информационной системе + \item + Обеспечение возможности восстановления программного обеспечения, включая программное обеспечение средств защиты информации, при возникновении нештатных ситуаций + \item + Идентификация и аутентификация субъектов доступа и объектов доступа в виртуальной инфраструктуре, в том числе администраторов управления средствами виртуализации + \item + Управление доступом субъектов доступа к объектам доступа в виртуальной инфраструктуре, в том числе внутри виртуальных машин + \item + Регистрация событий безопасности в виртуальной инфраструктуре + \item + Реализация и управление антивирусной защитой в виртуальной инфраструктуре + \item + Разбиение виртуальной инфраструктуры на сегменты (сегментирование виртуальной инфраструктуры) для обработки информации отдельным пользователем и (или) группой пользователей + \item + Организация контролируемой зоны, в пределах которой постоянно размещаются стационарные технические средства, обрабатывающие информацию, и средства защиты информации, а также средства обеспечения функционирования + \item + Контроль и управление физическим доступом к техническим средствам, средствам защиты информации, средствам обеспечения функционирования, а также в помещения и сооружения, в которых они установлены, исключающие несанкционированный физический доступ к средствам обработки информации, средствам защиты информации и средствам обеспечения функционирования информационной системы и помещения и сооружения, в которых они установлены + \item + Размещение устройств вывода (отображения) информации, исключающее ее несанкционированный просмотр + \item + Обеспечение защиты информации от раскрытия, модификации и навязывания (ввода ложной информации) при ее передаче (подготовке к передаче) по каналам связи, имеющим выход за пределы контролируемой зоны, в том числе беспроводным каналам связи + \item + Запрет несанкционированной удаленной активации видеокамер, микрофонов и иных периферийных устройств, которые могут активироваться удаленно, и оповещение пользователей об активации таких устройств + \item + Защита беспроводных соединений, применяемых в информационной системе + \item + Защита мобильных технических средств, применяемых в информационной системе +\end{enumerate} + +\subsection{Практическое исполнение установленных требований на базе одиночного +домена Windows Server 2003} + +В первую очередь разработаем матрицу доступа к сетевым ресурсам. Столбцы в ней +обозначают каталоги в сети, а строки соответствующих пользователей. Буквой Ч +обозначается доступ пользователя на чтение, буквой З "--- на запись, знаком +минус "--- отсутствие доступа. + +Дир "--- директор, Нач(К,У,Х,Н) "--- начальники отделов кадров, учебного, +хозяйственного, научного, (К/У/Х/Н)1,2 "--- работники соответствующих отделов. + +\begin{table}[H] + \caption{Матрица доступа} + \centering + \footnotesize + \begin{tabular}{|c|c|c|c|c|c|c|c|c|c|c|c|c|c|c|} + \hline + Кат./П-ль & Дир & НачК & К1 & К2 & НачУ & У1 & У2 & НачХ & Х1 & Х2 & НачН & Н1 & Н2 & Общ \\ \hline + Дир & ЧЗ & Ч & Ч & Ч & Ч & Ч & Ч & Ч & Ч & Ч & Ч & Ч & Ч & ЧЗ \\ \hline + НачК & - & ЧЗ & Ч & Ч & - & - & - & - & - & - & - & - & - & ЧЗ \\ \hline + К1 & - & - & ЧЗ & - & - & - & - & - & - & - & - & - & - & ЧЗ \\ \hline + К2 & - & - & - & ЧЗ & - & - & - & - & - & - & - & - & - & ЧЗ \\ \hline + НачУ & - & - & - & - & ЧЗ & Ч & Ч & - & - & - & - & - & - & ЧЗ \\ \hline + У1 & - & - & - & - & - & ЧЗ & - & - & - & - & - & - & - & ЧЗ \\ \hline + У2 & - & - & - & - & - & - & ЧЗ & - & - & - & - & - & - & ЧЗ \\ \hline + НачХ & - & - & - & - & - & - & - & ЧЗ & Ч & Ч & - & - & - & ЧЗ \\ \hline + Х1 & - & - & - & - & - & - & - & - & ЧЗ & - & - & - & - & ЧЗ \\ \hline + Х2 & - & - & - & - & - & - & - & - & - & ЧЗ & - & - & - & ЧЗ \\ \hline + НачН & - & - & - & - & - & - & - & - & - & - & ЧЗ & Ч & Ч & ЧЗ \\ \hline + Н1 & - & - & - & - & - & - & - & - & - & - & - & ЧЗ & - & ЧЗ \\ \hline + Н2 & - & - & - & - & - & - & - & - & - & - & - & - & ЧЗ & ЧЗ \\ \hline + \end{tabular} +\end{table} + +Создал пользователей, указанных в задании. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{01_newuser} + \caption{Создание пользователя} +\end{figure} + +Также создал подразделение <<Колледж>> с подподразделениями отделов. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{02_unit} + \caption{Организационная структура} +\end{figure} + +В соответствующие отделы добавил пользователей. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{03_teachers} + \caption{Пользователи подразделения} +\end{figure} + +Создал сетевой каталог со структурой, соответствующей организации. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{04_folders} + \caption{Сетевой ресурс} +\end{figure} + +Для удобства управления работниками создал группы пользователей, в которые +их добавил. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{06_sci_group} + \caption{} +\end{figure} + +Для каталога директора прописал следующие разрешения: +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{18_dir_cat} + \caption{Каталог директора} +\end{figure} + +Таким образом, доступ к содержимому данного каталога имеет только директор. + +Для каталогов отделов прописал такие разрешения, что к содержимому имеет +доступ только директор и работники соответствующего отдела. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{19_sci_cat} + \caption{Каталог научного отдела} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{20_hr_cat} + \caption{Каталог отдела кадров} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{21_teach_cat} + \caption{Каталог учебного отдела} +\end{figure} + +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{22_supply_cat} + \caption{Каталог хозяйственного отдела} +\end{figure} + +Для начальников отделов прописал доступ на чтение для директора. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{23_supply_boss_cat} + \caption{Каталог завхоза} +\end{figure} + +Для каталогов работников также дополнительно есть доступ на чтение у +начальника соответствующего отдела. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{24_supply1_cat} + \caption{Каталог работника хозяйственного отдела} +\end{figure} + +Проверил корректность выданных разрешений на доступ к директориям. + +Пользователь директора способен изменять содержимое своего каталога. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{08_director_access} + \caption{Изменение каталога директора} +\end{figure} + +Содержимое каталогов других пользователей он менять не может +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{09_director_deny} + \caption{Изменение каталога начальника кадров от имени директора} +\end{figure} + +У начальников отделов нет доступа к каталогу директора. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{10_sci_dir_deny} + \caption{Доступ к каталогу директора от имени начальника учёного отдела} +\end{figure} + +К каталогам других отделов также есть доступ только у соответствующих пользователей. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{11_sci_teach_deny} + \caption{Доступ к каталогу учебного отдела от имени начальника учёного отдела} +\end{figure} + +Начальник соответствующего отдела может открывать каталоги своих подчинённых, +но не менять их содержимое. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{12_sci_deny} + \caption{Изменение каталога учёного 1 от имени его начальника} +\end{figure} + +Свой каталог любой начальник может свободно изменять +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{13_sci_boss} + \caption{Изменение каталога начальника научного отдела} +\end{figure} + +Работники отделов не имеют доступа к каталогам других отделов. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{14_teach_hr_deny} + \caption{Доступ к каталогу отдела кадров} +\end{figure} + +Работники отделов не имеют доступа к каталогу своего начальника. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{15_teach_boss_deny} + \caption{Доступ к каталогу директора} +\end{figure} + +Работники отделов также не имею доступа к каталогам других работников этого +же отдела. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{16_teach_teach_deny} + \caption{Доступ к каталогу начальника учебного отдела от имени работника этого отдела} +\end{figure} + +Свои каталоги работники могут свободно изменять +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{17_teach_access} + \caption{} +\end{figure} + +Таким образом, проверили исполнение дискреционной модели контроля доступа. + +Создадим политики для реализации требований к подсистеме. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{25_policy_create} + \caption{} +\end{figure} + +В первую очередь добавим политики аудита согласно РД <<Автоматизированные +системы. Защита от несанкционированного доступа к информации. Классификация +автоматизированных систем и требования по защите информации.>> от 30 марта 1992 +г. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{26_audit_policy} + \caption{Политики аудита} +\end{figure} + +Для выполнения требований очистки памяти согласно РД от 30 марта 1992 г., а +также приказа ФСТЭК от 11 февраля 2013 г. No17 для установленного +класса защищённости 3 ГИС установим политику очистки страничного файла: +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{27_clear} + \caption{Политика очистки страничного файла} +\end{figure} + +Для реализации требований приказа ФСТЭК от 11 февраля 2013 г. No17 также необходимо +указать политики блокировки учётных записей при превышении количества попыток +входа. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{28_block_policy} + \caption{Политики блокировки учётных записей} +\end{figure} + +В соответствии с установленными политиками, доступ к журналу событий +безопасности для непривилегированного пользователя запрещён +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{29_deny_journ} + \caption{Политики доступа к журналу событий безопасности} +\end{figure} + +Проверим работу данных политик. +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{30_test_journ} + \caption{Доступ к журналу безопасности} +\end{figure} + +При проверке данного журнала на сервере, можно увидеть события входа в +систему пользователей согласно приказу ФСТЭК от 11 февраля 2013 г. No17 +\begin{figure}[H] + \centering + \includegraphics[width=0.8\textwidth]{31_audit_vhod} + \caption{Событие аудита} +\end{figure} + +Остальные требования безопасности Согласно РД <<Автоматизированные системы. +Защита от несанкционированного доступа к информации. Классификация +автоматизированных систем и требования по защите информации.>> от 30 марта +1992 г., РД от 30 марта 1992 г. <<Средства вычислительной техники. Защита +от несанкционированного доступа к информации. Показатели защищенности от +несанкционированного доступа к информации.>>, Постановления Правительства РФ от +1 ноября 2012 г. No1119, приказу ФСТЭК от 11 февраля 2013 г. No17 выполняются +либо за счёт реализации дискреционного контроля доступа, либо за есть по +умолчанию в операционной системе, либо осуществляются в рамках организационных +мер. + +\conclusion + +В теоретической части работы были изучены основные векторы атаки на сетевое +окружение с помощью сканирования сети и сниффинга трафика, а также ARP-спуфинга. +Были рассмотрены основные инструменты, используемые злоумышленниками для +выполнения данных атак, а также основные способы программной и аппаратной +защиты от таких видов атак. + +В рамках практического задания было выполнено создание +одиночного домена в Windows Server 2003, реализующего изученные требования +защищённости, относящиеся к моделируемой защищённой ИС. Помимо этого были +изучены основные нормативные документы, регламентирующие настройку +соответствующих информационных систем, а также проверена созданная реализация +защиты информации в операционных системах семейства Windows. + + +\begin{thebibliography}{99} + \bibitem{borshevikov2011} Боршевников, А. Е. Сетевые атаки. Виды. Способы борьбы / А. Е. Боршевников. — Текст : непосредственный // Современные тенденции технических наук : материалы I Междунар. науч. конф. (г. Уфа, октябрь 2011 г.). — Уфа : Лето, 2011. — С. 8-13. — URL: \url{https://moluch.ru/conf/tech/archive/5/1115/} (дата обращения: 15.07.2020). + + \bibitem{kader2003} Кадер М. Разновидности сетевых атак. [Электронный ресурс] -- URL:~\url{https://www.cnews.ru/reviews/free/security/part7/net_attack.shtml} (дата обращения 15.07.2020) -- Загл. с экрана. Яз. рус. + + \bibitem{kaspersky_ddos} Распределенные сетевые атаки / DDoS [Электронный ресурс] -- URL:~\url{https://www.kaspersky.ru/resource-center/threats/ddos-attacks} (дата обращения 15.07.2023) -- Загл. с экрана. Яз. рус. + + \bibitem{kaspersky_scanner} Сканирование портов [Электронный ресурс] // Энциклопедия <<Касперского>> -- URL:~\url{https://encyclopedia.kaspersky.ru/glossary/port-scanning/} (дата обращения 15.07.2023) -- Загл. с экрана. Яз. рус. + + \bibitem{wiki_scanner} Port scanner [Электронный ресурс] // Википедия [Электронный ресурс] : свободная энциклопедия / текст доступен по лицензии Creative Commons Attribution-ShareAlike ; Wikimedia Foundation, Inc, некоммерческой организации. - Wikipedia®, 2001- . - URL: \url{https://en.wikipedia.org/wiki/Port_scanner} (дата обращения: 15.07.2023). -- Загл. с экрана. - Последнее изменение страницы: 16:56, 9 мая 2020 года. -- Яз. англ. + + \bibitem{xgu_arp} Сканирование портов [Электронный ресурс] -- URL:~\url{http://xgu.ru/wiki/ARP-spoofing} (дата обращения 15.07.2023) -- Загл. с экрана. Яз. рус. + + \bibitem{sniff} Снифферы и не только. Выбираем инструмент для перехвата и анализа трафика. [Электронный ресурс] -- URL:~\url{https://xakep.ru/2021/05/17/sniffers-windows/} (дата обращения 15.07.2023) -- Загл. с экрана. Яз. рус. +\end{thebibliography} + + +% \bibliographystyle{gost780uv} +% \bibliography{thesis} + +\end{document} diff --git a/pract/sem8/thesis.bib b/pract/sem8/thesis.bib new file mode 100644 index 0000000..516b625 --- /dev/null +++ b/pract/sem8/thesis.bib @@ -0,0 +1,4 @@ +@book{jopa, + title = {Wikipedia. Ягодицы [{Э}лектронный ресурс]}, + note = {URL:~https://ru.wikipedia.org/wiki/Ягодицы (Дата обращения 02.07.2020). Загл. с экр. Яз. Англ.} +} \ No newline at end of file -- cgit v1.2.3